技术文章和资源

技术文章(时间排序)

热门类别

Python PHP MySQL JDBC Linux

Codd 的 DBMS 规则

dbmsmysqldata analysis

关系型数据库模型的先驱 Edgar F. Codd 提出了一组十三条规则(编号为 0 到 12),以指定数据库管理系统需要具备哪些条件才能被视为关系型数据库管理系统 (RDBMS)。它们也被称为"Codd 的十二诫"。

规则 0:基本原则

任何声称是关系数据库管理系统的系统都必须能够仅使用其关系功能来管理数据库。

规则 1:信息规则

关系数据库中每条信息的清晰逻辑表示都由表中的值提供。

规则 2:保证访问规则

通过结合使用表名、主键值和列名,可以确保关系数据库中的每个数据(原子值)在逻辑上都是可访问的。

规则 3:系统处理空值

完全关系 DBMS 支持空值,用于以系统的方式表达缺失信息和不适用信息,无论数据类型如何,并且与空字符串、空白字符串、零和任何其他整数。

规则 4:基于关系模型的动态在线目录

授权用户可以使用与查询普通数据相同的关系语言查询数据库描述,因为数据库描述在逻辑上以与常规数据相同的方式存储。

规则 5:综合数据子语言规则

关系系统可能支持多种语言和不同的终端使用模式(例如,填空模式)。但是,必须至少有一种语言能够全面支持上述所有内容,并且其命题可以根据某些明确定义的语法以字符串形式表达 −

  • 数据定义。

  • 视图定义。

  • 数据操作(交互式和通过程序)。

  • 完整性约束。

  • 授权。

  • 事务边界(开始、提交和回滚)。

规则 6:视图更新规则

系统可以更新所有可以更新的视图。

规则 7:关系操作规则/可能用于高级插入、更新和删除

将基本关系或派生关系作为单个操作数处理的能力适用于数据插入、更新和删除以及数据检索。

规则 8:物理数据独立性

对无论是存储表示还是访问技术,都不会在逻辑上影响应用程序或终端操作。

规则 9:逻辑数据独立性

当对基表进行任何类型的信息保存更改时,应用程序和终端操作将继续在逻辑上不受影响地运行。

规则 10:完整性独立性

关系数据子语言(而不是应用程序)必须能够定义和存储特定于某个关系数据库的完整性限制。

规则 11:分布独立性

数据在不同站点之间的分布必须对最终用户隐藏。数据绝不应该让用户产生数据分布在多个站点上的感觉。

规则 12:不可颠覆规则

如果关系系统具有低级(一次一条记录)语言,则高级关系语言中定义的完整性限制和规则不能使用低级语言(一次多条记录)来颠覆或绕过。

结论

根据 Codd 的 DBMS 规则,无论数据库在网络中的分布如何,它都应该正常工作。最终用户永远无法分辨出数据分布在多个站点上;相反,他们应该始终相信数据只存在于一个位置。


相关文章