我想知道使用数据库的权衡以及其他选择是什么?另外,哪些问题不适合数据库?

我关心关系数据库。

有帮助吗?

解决方案

数据库的概念是非常广泛的。我会做一些简化的东西我在这里。

有关某些任务,最常见的数据库是关系数据库。它是一种基于关系模型的数据库。关系模型假定你描述你的数据行,属于表,每个表中的列给定的固定号码。你一个“每行”的基础上提交数据,这意味着你必须在含相对于你的表的所有列的数据单杆提供了一排。每个提交的行通常得到的标识符是在表级别独一无二的,有时在数据库级别。你可以说,你的表给定的小区必须引用另一个表的行,所以要保持所谓的“参照完整性”在关系数据库中创建实体之间的关系,例如。

这优良样板工程,但它并不是唯一一个在那里。在某些情况下,数据有大树更好的组织。该文件系统是一个分层数据库。开始于一个根源,一切顺利这个根目录下,在树状结构。另一种模式是该键/值对。的Sleepycat BDB基本上是键/值的实体的存储。

LDAP是具有两个优点另一个数据库:存储比较通用的数据,它是由设计分布,它的优化用于读取

图形数据库和triplestores允许你存储的曲线图,并执行同构搜索。这通常需要,如果你有一个非常通用的数据集可以包括你的实体的一种描述广泛的层面上,如此广泛,基本上是未知的。这是明确反对的关系模型,在那里你有一个非常精确的一组列创建表,你知道每个列是要遏制。

一些关系基于列的数据库中存在为好。相反,由行提交的数据,您可以通过整列提交。

因此,要回答你的问题:数据库是存储数据的方法。从技术上讲,甚至是文本文件是数据库,虽然不是特别漂亮的一个。背后的数据库模型的选择,主要是相对于什么是您的应用程序的典型需求。

设置答案CW,因为我可能会说一些严格不正确。随意编辑。

其他提示

这是一个相当宽的问题,但数据库是非常适合于关系数据管理。替代方案将几乎总是意味着要设计自己的数据存储和检索引擎,这对于大多数标准/小应用程序是不值得的。

这是不适合于一个数据库中的典型的方案是大量的数据,它们被组织为逻辑文件相对少量的存储器,在这种情况下,简单的文件系统类的系统可以是足够的。

不要忘了看看NOSQL数据库。这是很新的技术,非常适合的东西,不以关系数据库适合/缩放。

如果您的数据存储和查询使用数据库。

从技术上讲,最东西都适合于数据库。计算机是由处理数据和数据库都是为了保存。

唯一要考虑的就是成本。部署,维护的费用,一次性投资成本,但它通常是值得的。

如果你只需要存储非常简单的数据,平面文件将是一个替代(文本文件)。

请注意:你所使用的通用术语“数据库”,但也有很多很多不同的类型和这些实施

  • 为了 搜索应用程序, 全文搜索引擎 (其中一些集成到传统的 DBMS,但有些则没有),可以是一个很好的替代方案,允许更多功能(各种语言意识、拥有半结构化数据的能力、排名...)以及更好的功能表现。

  • 另外,我见过应用程序 配置数据 存储在数据库中,虽然这在某些情况下是有意义的, 使用纯文本文件 (或 YAML、XML 等)并在初始化期间加载底层对象可能更可取,因为这种替代方案具有自包含的性质,并且易于修改和复制此类文件。

  • A 平面日志文件, ,可以是记录到 DBMS 的一个很好的替代方案,当然取决于使用情况。

也就是说,在过去 10 年左右的时间里,DBMS 系统总体上添加了许多功能,以帮助它们处理不同形式的数据和不同的搜索功能(例如:前面提到的全文搜索、XML、BLOB 的智能存储/处理、强大的用户定义函数等) 这使得它们更加多才多艺, ,因此服务相当普遍。 然而,他们的优势仍然主要在于关系数据.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top