长期以来,我一直对4D SAS的数据库产品感兴趣,尽管好久没碰过它。
在考虑使用哪些工具进行应用程序开发时,尤其是需要数据库组件的工具时,在考虑 MySQL 和 PostgreSQL 等开源工具与 4D 或 Pervasive SQL 等专有解决方案时应该寻找什么?
SO 社区在使用各种数据库工具(如 4D、Pervasive、FilemakerPro 等)方面有哪些好的(和坏的!)经验?
有什么不好的经历吗?
长期以来,我一直对4D SAS的数据库产品感兴趣,尽管好久没碰过它。
在考虑使用哪些工具进行应用程序开发时,尤其是需要数据库组件的工具时,在考虑 MySQL 和 PostgreSQL 等开源工具与 4D 或 Pervasive SQL 等专有解决方案时应该寻找什么?
SO 社区在使用各种数据库工具(如 4D、Pervasive、FilemakerPro 等)方面有哪些好的(和坏的!)经验?
有什么不好的经历吗?
在没有上下文的情况下很难列出相关的优点和缺点。
我的建议如下:在决定使用专有数据库时,请确保该决定基于强有力的事实,而不仅仅是对异国工具的技术兴趣。平衡使用专有数据库的好处和非专有解决方案的优势。
答案因系统而异。
一个先决条件是您的系统被很好地识别,具有明确的范围,可预测的演变,因此您的分析结果将是稳健的。然后,如果您的专有解决方案为您的系统带来了真正的好处,您对支持感到满意并且您可以负担总体成本,那么您应该是专有解决方案的良好候选人。
4D 是一个仅适用于 MacOS/Windows 的跨平台专有数据库系统,具有独立和客户端-服务器两种类型。您最好将其与仅适用于 Windows 的 Alphafive.com 软件进行比较。我已经使用它 17 年了,它为我和我的部门提供了很好的服务。从我的头顶上掉下来...
优点:
缺点:
我学习 ASP.NET 已经将近一年了,并且在 Ruby on Rails 上学习了几周。虽然 SQL 数据存储很简单,但用户界面却很困难——但当您的应用程序仍可通过操作系统升级运行时,这是值得的。如果最新版本出现问题,您始终可以使用旧版浏览器。
我建议您考虑其中任何一个,具体取决于您有多少资金可用于实施该项目——Rails 是两者中更便宜的。然后,任何带有网络浏览器的系统都可以访问数据,并且您可以根据需要即时修复界面页面,而不是让整个系统停机几分钟来进行一次简单的更新。这些技能在未来可能更具市场价值。
我只会说一件事..注意您决定的“实际”成本..大多数专有数据库系统仅限于 Windows.. 或者有时仅限于 Mac/Windows。
这意味着除了为数据库系统支付大量资金外,您还必须在服务器操作系统上支付大量资金才能运行它......
此外,将数据库系统与当前的开源解决方案进行比较。是不是真的值得吗?在从 Microsoft Sql Server(它有一个免费版本,但无论如何)迁移到 PostgreSQL 之后,我被人们为 SQL Server 支付这么多钱而震惊。我的意思是,Postgres 对我来说更干净,而且大部分都可以正常工作您期望的方式(与某些 SQL 服务器语法不同)并且它内置了更多功能(有人在 Ruby 中编程存储过程吗?)
因此,基本上,将专有软件与开源软件进行比较,并根据总定价(包括操作系统)和功能集来决定采用哪一个。
考虑以下问题:
我发现最后一点在我的第一份全职工作中特别有用。我们的客户使用的是 CA-Ingres,公司里没有人知道它足以编写查询来验证数据。所以我想出了从 Ingres 导出数据并将其导入 MS SQL Server 的想法(我在 Sybase Professional Services 工作过一段时间就知道了),这样我们就可以在那里编写验证查询。如果从 Ingres 导出数据真的很难,我的想法根本不会是一个选择。
从 4D 的网页中,我了解到我们正在寻找一个完整的开发+部署环境,而不是一个独立的数据库。因此,您可以考虑的替代方案包括 django、ruby-on-rails、hibernate 等。当然,真正的问题是专有系统是否可以在产品生命周期内为您节省足够的资金来证明产品成本的合理性。这将取决于您可用的人力资源类型。
4D 是垂直应用的不错选择。我曾在一家公司工作,该公司使用 4D 为全科医生和专家构建医疗记录和计费应用程序。4D 的快速设计和部署特性使该应用程序能够根据市场需求和医疗记录存储的立法变化快速移动。环境本身并不是最先进的,但它是集成的、跨平台的并且非常高效。
如果您要进入一个供应商锁定度高且进入门槛高的市场,那么我认为专有的集成开发环境是一个不错的选择。
在我职业生涯的不同阶段,我使用并非常擅长 FileMaker Pro、FoxPro、4D 和其他一些商业产品。现在我主要使用PHP/MySQL,没有使用过任何产品的最新版本。
我一直很喜欢 FileMaker,因为大多数会使用计算机的人都可以使用 FileMaker 并设计自己的系统。他们不必知道编程或数据库设计。但是,如果需要,您可以“编程” FileMaker、在其上放置 Web 前端或进行其他更复杂的设置。很多时候,我“交给”了一个由非技术人员在 FileMaker 中创建的系统,该系统需要制作成一个完整的数据管理系统。好的部分是所有“规范”和数据流都已经设计成一个系统。原型已经创建!
我总是发现 4D 和 FoxPro 需要一定数量的额外编程和/或数据库知识才能真正做任何事情。4D 和 FileMaker 是真正完整的独立系统,而不仅仅是数据库系统。尽管它们都具有连接到其他后端数据库系统(即 MySQL、Oracle)的能力,但这并不是它们的强项。
不利的一面是,由于一切都是紧密耦合的,因此在 4D 和 Filemaker 中制作更复杂的动态系统可能会很困难。由于它们的成本,您确实希望使用它们创建多个系统。这意味着你需要真正“买入”才能让你的钱物有所值。
关键概念始终是遵守标准:如果您计划使用 4D 的自定义和/或特殊设计的功能(但讨论可能更笼统,并涵盖任何其他免费或商业工具),那么,只需使用它并利用你的优势。
毫不奇怪,这就是为什么过去像 Oracle 或 IBM 的 DB2 这样的大型数据库系统在特定业务领域被广泛接受的原因,例如商业交易。
采用非常封闭的解决方案的另一个主要原因是遗留支持。您引用的其中一种产品(Pervasive SQL)在 90 年代后期充当了基于 BTrieve 的应用程序的不费力端口,并且由于全球庞大的 BTrieve 社区而获得了普及。
最后但并非最不重要的一点是,您不仅要根据许可证价格(单座、网络环境、站点许可证等)评估 TCO(总拥有成本),还要考虑技术支持、更新和可用性方面的问题为您的平台。我认识的许多业务部门都不得不针对与数据库相关的问题更改其基本操作系统。
提示:如果您不寻求极致性能,请为经过验证或支持在虚拟化环境中使用的自定义解决方案添加奖励。它将为您的数据库管理员节省更多的头痛。
在所有其他情况下,请依赖开源/免费软件数据库。MySql 和 Postgres 用于大型项目,SQLite 用于单个应用持久层。相当标准和非常好的(社区)支持。物有所值,物有所值。
我对您列出的专有数据库产品没有任何经验:4D、Pervasive、FilemakerPro。
我很想知道这些产品提供什么让它们比你列出的开源替代品更吸引你:MySQL 和 PostgreSQL。
我感兴趣的是什么让那些比更流行的专有替代品更吸引你:Oracle、SQL Server、DB2 等。
没有你提供更多细节,很难给你建议。
我个人觉得使用广泛使用的开源解决方案比使用狭窄的封闭源解决方案更安全。使用得越广泛,它就越可能经过实战考验。越开放,我对自己命运的控制就越多,以防万一遇到错误。
我已经向开源项目报告了错误并得到了快速修复。我已经向制作营利性专有软件的公司报告了错误,但一无所获。