数据库替代?

pra*_*ent 3 database performance tradeoff

我想知道使用数据库的权衡以及其他选项是什么?还有什么问题不适合数据库?

我关心的是关系数据库.

Ste*_*ini 6

数据库的概念非常广泛.我将在这里介绍一些简化.

对于某些任务,最常见的数据库是关系数据库.它是一个基于关系模型的数据库.关系模型假设您在行中描述您的数据,属于每个表具有给定和固定列数的表.您在"每行"的基础上提交数据,这意味着您必须在单个镜头中提供一行,其中包含与您的表的所有列相关的数据.每个提交的行通常都会获得一个标识符,该标识符在表级别是唯一的,有时在数据库级别.您可以在关系数据库中的实体之间创建关系,例如通过声明表中的给定单元格必须引用另一个表的行,以便保留所谓的"参照完整性".

这个模型工作正常,但它不是唯一的那个.在某些情况下,数据更好地组织为树.文件系统是分层数据库.从一个根开始,一切都在这个根下,在树状的结构中.另一个模型是键/值对.Sleepycat BDB基本上是键/值实体的存储.

LDAP是另一个有两个优点的数据库:存储相当通用的数据,它是按设计分发的,并且它是为读取而优化的.

图形数据库和三重存储允许您存储图形并执行同构搜索.如果您拥有一个非常通用的数据集,可以包含对您的实体的广泛描述,那么这通常是必需的,因此基本上是未知的.这与关系模型明显相反,在关系模型中,您使用非常精确的列集创建表,并且您知道每列将包含的内容.

还存在一些基于关系列的数据库.您可以按整列提交数据,而不是按行提交数据.

所以,回答你的问题:数据库是一种存储数据的方法.从技术上讲,即使是文本文件也是一个数据库,尽管不是特别好的数据库.数据库背后的模型选择主要取决于应用程序的典型需求.

将答案设置为CW,因为我可能会说严格不正确的事情.随意编辑.