8

长期以来,我一直对4D SAS的数据库产品感兴趣,尽管好久没碰过它。

在考虑使用哪些工具进行应用程序开发时,尤其是需要数据库组件的工具时,在考虑 MySQL 和 PostgreSQL 等开源工具与 4D 或 Pervasive SQL 等专有解决方案时应该寻找什么?

SO 社区在使用各种数据库工具(如 4D、Pervasive、FilemakerPro 等)方面有哪些好的(和坏的!)经验?

有什么不好的经历吗?

4

10 回答 10

3

在没有上下文的情况下很难列出相关的优点和缺点。

我的建议如下:在决定使用专有数据库时,请确保该决定基于强有力的事实,而不仅仅是对异国工具的技术兴趣。平衡使用专有数据库的好处和非专有解决方案的优势。

答案因系统而异。

一个先决条件是您的系统被很好地识别,具有明确的范围,可预测的演变,因此您的分析结果将是稳健的。然后,如果您的专有解决方案为您的系统带来了真正的好处,您对支持感到满意并且您可以负担总体成本,那么您应该是专有解决方案的良好候选人。

于 2009-09-28T22:24:06.003 回答
2

4D 是一个仅适用于 MacOS/Windows 的跨平台专有数据库系统,具有独立和客户端-服务器两种类型。您最好将其与仅适用于 Windows 的 Alphafive.com 软件进行比较。我已经使用它 17 年了,它为我和我的部门提供了很好的服务。从我的头顶上掉下来...

优点:

  1. 界面和代码与数据引擎密切相关,这使得开发丰富的跨平台用户界面变得非常快速和容易。
  2. 专有的关系数据引擎在两个平台上本地运行,以及本地客户端界面(但需要多用户许可证)。自动关系很有帮助(但有时会妨碍)。
  3. 可以通过 SOAP 和 ODBC 以及 SQL 驱动程序访问外部系统(受限)。
  4. 可以通过 SOAP 或 http 请求和网页从外部系统访问 4D。
  5. 基于 Pascal 的本机过程编程语言,易于学习。
  6. 中小型部门的优秀工具。
  7. 最新版本接受 SQL 命令子集和原始数据访问,因此它的向后兼容性记录非常好。
  8. 4D 中的安全性很容易。
  9. 您可以通过多种方式构建解决方案进行部署,不受是否安装 MS Access 的限制。

缺点:

  1. 接口和代码与数据引擎密切相关,这可能导致抽象和“黑盒”编码的使用受限,除非您将其作为开发目标。
  2. 编译为一个整体结构文件,强制重启单个修复。
  3. 语言仍然只是程序性的——这使得面向对象的程序员更难接受。每种方法都需要 4D 中的单独“文件”,因此您不能在单个例程中包含一个以上的功能或过程——这需要一些时间来适应它。
  4. 虽然公司看起来状况良好,正在成长和发展,但您根本不知道他们对自己的状况保持不变。
  5. 公司从未真正推销过自己——相信其开发人员基础通过站点部署和产品升级来传播和发展产品。网站显然只对已经使用该产品的开发人员有用——它根本无法吸引新用户。
  6. 产品升级似乎总是关注该工具如何更好地为开发人员而不是那些开发人员的客户。
  7. SQL 缺少视图、复合索引和其他常见的 SQL 特性。
  8. 当用户请求特定数据列的报告时,我经常不得不编写另一个程序来提供该特定数据——我不能总是只查询数据并生成文本文件。
  9. 不能像基于 Web 浏览器的应用程序那样轻松处理新的操作系统版本。旧版本在 Mac OS 10.6 上损坏,最新版本需要最新的 Mac OS 10.6。尚未在 Windows 7 上认证任何版本。

我学习 ASP.NET 已经将近一年了,并且在 Ruby on Rails 上学习了几周。虽然 SQL 数据存储很简单,但用户界面却很困难——但当您的应用程序仍可通过操作系统升级运行时,这是值得的。如果最新版本出现问题,您始终可以使用旧版浏览器。

我建议您考虑其中任何一个,具体取决于您有多少资金可用于实施该项目——Rails 是两者中更便宜的。然后,任何带有网络浏览器的系统都可以访问数据,并且您可以根据需要即时修复界面页面,而不是让整个系统停机几分钟来进行一次简单的更新。这些技能在未来可能更具市场价值。

于 2009-12-30T19:42:21.973 回答
2

我只会说一件事..注意您决定的“实际”成本..大多数专有数据库系统仅限于 Windows.. 或者有时仅限于 Mac/Windows。

这意味着除了为数据库系统支付大量资金外,您还必须在服务器操作系统上支付大量资金才能运行它......

此外,将数据库系统与当前的开源解决方案进行比较。是不是真的值得吗?在从 Microsoft Sql Server(它有一个免费版本,但无论如何)迁移到 PostgreSQL 之后,我被人们为 SQL Server 支付这么多钱而震惊。我的意思是,Postgres 对我来说更干净,而且大部分都可以正常工作您期望的方式(与某些 SQL 服务器语法不同)并且它内置了更多功能(有人在 Ruby 中编程存储过程吗?)

因此,基本上,将专有软件与开源软件进行比较,并根据总定价(包括操作系统)和功能集来决定采用哪一个。

于 2009-12-31T15:17:50.640 回答
1
  • 专注于任何数据库的专业人士:它具有很好的非便携式功能,可帮助您完成工作
  • 在任何数据库上归零的缺点:有时不同的数据库是合适的(例如使用内存中的 SQLite 实例运行测试),但该选项现在已关闭
  • 专有商业数据库的缺点:如果您需要许多实例,许可成本可能会杀死您
于 2009-09-23T06:43:21.937 回答
1

考虑以下问题:

  • 在维护中进行更改有多容易(或困难)?应用程序在维护上花费的时间可能比在开发上花费的时间要多得多,因此如果更改很难,则可以保证长期的痛苦。
  • 支持的质量如何?一个有据可查、专有或其他方面的系统将更容易使用。
  • 用户社区有多大(或小)?拥有更大用户社区的系统意味着如果出现问题以及何时出现问题,会有更多人寻求帮助。
  • 这个专有数据库系统的导入/导出功能有多强大?

我发现最后一点在我的第一份全职工作中特别有用。我们的客户使用的是 CA-Ingres,公司里没有人知道它足以编写查询来验证数据。所以我想出了从 Ingres 导出数据并将其导入 MS SQL Server 的想法(我在 Sybase Professional Services 工作过一段时间就知道了),这样我们就可以在那里编写验证查询。如果从 Ingres 导出数据真的很难,我的想法根本不会是一个选择。

于 2009-09-23T21:18:39.430 回答
1

从 4D 的网页中,我了解到我们正在寻找一个完整的开发+部署环境,而不是一个独立的数据库。因此,您可以考虑的替代方案包括 django、ruby-on-rails、hibernate 等。当然,真正的问题是专有系统是否可以在产品生命周期内为您节省足够的资金来证明产品成本的合理性。这将取决于您可用的人力资源类型。

于 2009-09-28T08:26:13.493 回答
1

4D 是垂直应用的不错选择。我曾在一家公司工作,该公司使用 4D 为全科医生和专家构建医疗记录和计费应用程序。4D 的快速设计和部署特性使该应用程序能够根据市场需求和医疗记录存储的立法变化快速移动。环境本身并不是最先进的,但它是集成的、跨平台的并且非常高效。

如果您要进入一个供应商锁定度高且进入门槛高的市场,那么我认为专有的集成开发环境是一个不错的选择。

于 2009-09-28T12:56:47.107 回答
1

在我职业生涯的不同阶段,我使用并非常擅长 FileMaker Pro、FoxPro、4D 和其他一些商业产品。现在我主要使用PHP/MySQL,没有使用过任何产品的最新版本。

我一直很喜欢 FileMaker,因为大多数会使用计算机的人都可以使用 FileMaker 并设计自己的系统。他们不必知道编程或数据库设计。但是,如果需要,您可以“编程” FileMaker、在其上放置 Web 前端或进行其他更复杂的设置。很多时候,我“交给”了一个由非技术人员在 FileMaker 中创建的系统,该系统需要制作成一个完整的数据管理系统。好的部分是所有“规范”和数据流都已经设计成一个系统。原型已经创建!

我总是发现 4D 和 FoxPro 需要一定数量的额外编程和/或数据库知识才能真正做任何事情。4D 和 FileMaker 是真正完整的独立系统,而不仅仅是数据库系统。尽管它们都具有连接到其他后端数据库系统(即 MySQL、Oracle)的能力,但这并不是它们的强项。

不利的一面是,由于一切都是紧密耦合的,因此在 4D 和 Filemaker 中制作更复杂的动态系统可能会很困难。由于它们的成本,您确实希望使用它们创建多个系统。这意味着你需要真正“买入”才能让你的钱物有所值。

于 2009-09-28T13:25:17.033 回答
1

关键概念始终是遵守标准:如果您计划使用 4D 的自定义和/或特殊设计的功能(但讨论可能更笼统,并涵盖任何其他免费或商业工具),那么,只需使用它并利用你的优势。

毫不奇怪,这就是为什么过去像 Oracle 或 IBM 的 DB2 这样的大型数据库系统在特定业务领域被广泛接受的原因,例如商业交易。

采用非常封闭的解决方案的另一个主要原因是遗留支持。您引用的其中一种产品(Pervasive SQL)在 90 年代后期充当了基于 BTrieve 的应用程序的不费力端口,并且由于全球庞大的 BTrieve 社区而获得了普及。

最后但并非最不重要的一点是,您不仅要根据许可证价格(单座、网络环境、站点许可证等)评估 TCO(总拥有成本),还要考虑技术支持、更新和可用性方面的问题为您的平台。我认识的许多业务部门都不得不针对与数据库相关的问题更改其基本操作系统。

提示:如果您不寻求极致性能,请为经过验证或支持在虚拟化环境中使用的自定义解决方案添加奖励。它将为您的数据库管理员节省更多的头痛。

在所有其他情况下,请依赖开源/免费软件数据库。MySql 和 Postgres 用于大型项目,SQLite 用于单个应用持久层。相当标准和非常好的(社区)支持。物有所值,物有所值。

于 2009-09-28T13:26:25.300 回答
-1

我对您列出的专有数据库产品没有任何经验:4D、Pervasive、FilemakerPro。

我很想知道这些产品提供什么让它们比你列出的开源替代品更吸引你:MySQL 和 PostgreSQL。

我感兴趣的是什么让那些比更流行的专有替代品更吸引你:Oracle、SQL Server、DB2 等。

没有你提供更多细节,很难给你建议。

我个人觉得使用广泛使用的开源解决方案比使用狭窄的封闭源解决方案更安全。使用得越广泛,它就越可能经过实战考验。越开放,我对自己命运的控制就越多,以防万一遇到错误。

我已经向开源项目报告了错误并得到了快速修复。我已经向制作营利性专有软件的公司报告了错误,但一无所获。

于 2009-09-27T03:31:53.837 回答