Language agnostic 选择特定数据库管理系统的因素有哪些?

Language agnostic 选择特定数据库管理系统的因素有哪些?,language-agnostic,database,Language Agnostic,Database,为什么有这么多数据库管理系统?我不是数据库专家,也从未想过使用mySQL以外的其他数据库 编程语言提供了不同的范例,因此为您的目的选择一种特定的语言是有意义的 问题: 选择特定数据库管理系统的因素有哪些?数据库系统也提供了不同的范例。例如,MySQL或MSSQL是关系型的,而db4o是面向对象的,MongoDB是面向文档的。不同的人有不同的笔划: .NET用户喜欢Microsoft SQL Server提供的同构堆栈 Oracle是“请仅在企业应用程序中使用”DBMS MySQL和Postgr

为什么有这么多数据库管理系统?我不是数据库专家,也从未想过使用mySQL以外的其他数据库

编程语言提供了不同的范例,因此为您的目的选择一种特定的语言是有意义的

问题:
选择特定数据库管理系统的因素有哪些?

数据库系统也提供了不同的范例。例如,MySQL或MSSQL是关系型的,而db4o是面向对象的,MongoDB是面向文档的。

不同的人有不同的笔划:

  • .NET用户喜欢Microsoft SQL Server提供的同构堆栈
  • Oracle是“请仅在企业应用程序中使用”DBMS
  • MySQLPostgreSQL被开源人群使用
  • SQLite非常适合嵌入式DBMS
  • Microsoft Access非常适合一个人使用的Microsoft Office集成数据库(或不太了解的人)

我对非关系型DBMS几乎一无所知:NoSQL、MongoDB、db4o、CouchDB、BigTable。我推荐一个不同的问题来解决这些问题,因为它们的目标不同于传统的RDBMS。

DBMS已经存在了很多年,在过去、现在和未来对IT基础设施都非常重要。所以很多人都想进入这个行业。有很多办公套件、互联网浏览器等

What are factors to choose a specific DB management system ?
  • 许可证
  • 平台
  • 演出
  • 支持的编程语言
  • 等等等等

根据数据库的关键属性分类,明显缺少例如面向列(LucidDB)、独立于平台(derby)、内存(hsqldb,尽管derby也适用于此)和其他数据库。

如果范例相同,这也是一个市场共享问题。。(它被跳过了吗?!)否则,彼得的答案是相当可观的。

这个答案并没有真正回答“为什么”,它只回答“谁”

是的,但我想“为什么”的答案可能是,有那么多的“谁”都认为他们可以“比其他人做得更好”

“更好”具有填补特定“谁”选择的空白的意义:

  • 与传统的两阶段锁定相比,MVCC锁定几乎是无懈可击的读取成功保证
  • 不收费,而不是百万美元的费用
  • 易于与语言XYZ交互,这是其他语言所没有的

我个人最关心的问题是对CREATE断言的支持。自1992年以来,它就一直在SQL标准中,没有一头大象知道如何支持它。我知道。

在大多数情况下,如果你是为RDBMS/SQLish市场写文章,你可能会问的第一个问题是,“我已经知道什么?我的员工知道什么?”如果你对此有答案,那么你可能应该首先选择SQL引擎。我的内部数据库极客对这个答案感到畏缩,但事实是,除非你的开发人员是真正获得关系数据库的一小部分人,否则你将和其他人一样使用标准数据库错误的深沟,主要问题是你是否能让你的系统运行得足够快

如果你吞下了一罐NoSQL精选饮料,这可能是真的,因为在那里你也必须选择你理解的东西


然而,如果你已经能够理解所有这些差异,那么你就会明白答案是“视情况而定”。通常的四个维度归结为以下四个方面:给定工作负载概要文件的执行速度(这取决于数据库在特定类型的问题上是否优秀:例如,在高并发性写入的情况下,有些数据库的查找速度更快);目标区域的SQL一致性(例如,Oracle有有趣的——即错误的——空处理,MySQL到处都是,Postgres将不带引号的标识符包装为小写);立即和长期的资金成本(包括硬件要求、雇用人员的成本、许可证);还有可能是您想要的功能(如果您想要Oracle的RAC,您必须购买Oracle)。

和PostgreSQL适用于需要功能完整、成熟、快速和可扩展数据库的用户;-)啊,对。PostgreSQL。我忘了它的存在。那只是RDBMS世界的一部分。然后是面向文档的数据库、XML数据库、高性能内存数据库、非关系嵌入式数据库、Lotus Notes以及Google和Facebook使用的超级可伸缩系统,还有……Lotus Notes:这里有龙。“MySQL和PostgreSQL被开源人群使用。”对我来说,这并不能回答“为什么”,它更像是一个重言式。那么,我如何在这些范式之间做出选择呢?我什么时候需要面向对象或面向文档的数据库?这怎么不是社区wiki?选择DBMS的三个最重要因素是(a)成本,(b)成本和(c)功能。哈,只是开玩笑而已。(c) 这也是成本。