codd's是什么
E.F Codd was a Computer Scientist who invented the Relational model for Database management. Based on relational model, the Relational database was created. Codd proposed 13 rules popularly known as Codd's 12 rules to test DBMS's concept against his relational model. Codd's rule actualy define what quality a DBMS requires in order to become a Relational Database Management System(RDBMS). Till now, there is hardly any commercial product that follows all the 13 Codd's rules. Even Oracle follows only eight and half(8.5) out of 13. The Codd's 12 rules are as follows.
EF Codd是一位计算机科学家,他发明了数据库管理的关系模型 。 基于关系模型,创建了关系数据库 。 Codd提出了13条规则(通常被称为Codd的12条规则)来针对他的关系模型测试DBMS的概念。 考德的规则实际上定义了DBMS成为关系数据库管理系统(RDBMS)所需的质量。 到现在为止,几乎没有任何一种商业产品能够遵循13条Codd的所有规定。 甚至Oracle在13个数据库中仅遵循了八分之二(8.5)。Codd的12条规则如下。
零规则 (Rule zero)
This rule states that for a system to qualify as an RDBMS, it must be able to manage database entirely through the relational capabilities.
该规则指出,要使一个系统符合RDBMS的资格,它必须能够完全通过关系功能来管理数据库。
规则1:信息规则 (Rule 1: Information rule)
All information(including metadata) is to be represented as stored data in cells of tables. The rows and columns have to be strictly unordered.
所有信息(包括元数据)都应表示为表单元格中的存储数据。 行和列必须严格无序。
规则2:保证访问 (Rule 2: Guaranted Access)
Each unique piece of data(atomic value) should be accesible by : Table Name + Primary Key(Row) + Attribute(column).
每个唯一的数据(原子值)都应该可以通过以下方式访问: 表名+主键(行)+属性(列) 。
NOTE: Ability to directly access via POINTER is a violation of this rule.
注意:通过POINTER直接访问的能力违反了此规则。
规则3:NULL的系统处理 (Rule 3: Systematic treatment of NULL)
Null
has several meanings, it can mean missing data, not applicable or no value. It should be handled consistently. Also, Primary key must not be null, ever. Expression on NULL
must give null.
Null
有多种含义,可能意味着缺少数据,不适用或没有价值。 应该一致地处理它。 另外,主键永远不能为null。 NULL
表达式必须为null。
规则4:有效的在线目录 (Rule 4: Active Online Catalog)
Database dictionary(catalog) is the structure description of the complete Database and it must be stored online. The Catalog must be governed by same rules as rest of the database. The same query language should be used on catalog as used to query database.
数据库字典(catalog)是完整数据库的结构描述,必须在线存储。 目录必须受与数据库其余部分相同的规则支配。 在目录上应使用与查询数据库相同的查询语言。
规则5:功能强大且结构合理的语言 (Rule 5: Powerful and Well-Structured Language)
One well structured language must be there to provide all manners of access to the data stored in the database. Example: SQL, etc. If the database allows access to the data without the use of this language, then that is a violation.
必须使用一种结构良好的语言来提供对存储在数据库中的数据的所有访问方式。 例如: SQL等。如果数据库允许不使用这种语言就访问数据,那是违反的。
规则6:查看更新规则 (Rule 6: View Updation Rule)
All the view that are theoretically updatable should be updatable by the system as well.
理论上所有可更新的视图也应由系统更新。
规则7:关系层操作 (Rule 7: Relational Level Operation)
There must be Insert, Delete, Update operations at each level of relations. Set operation like Union, Intersection and minus should also be supported.
每个关系级别上都必须有插入,删除,更新操作。 还应支持诸如联合,交点和减号之类的设置操作。
规则8:物理数据独立性 (Rule 8: Physical Data Independence)
The physical storage of data should not matter to the system. If say, some file supporting table is renamed or moved from one disk to another, it should not effect the application.
数据的物理存储对系统无关紧要。 如果说某个文件支持表已重命名或从一个磁盘移动到另一个磁盘,则它不会影响应用程序。
规则9:逻辑数据独立 (Rule 9: Logical Data Independence)
If there is change in the logical structure(table structures) of the database the user view of data should not change. Say, if a table is split into two tables, a new view should give result as the join of the two tables. This rule is most difficult to satisfy.
如果数据库的逻辑结构(表结构)发生更改,则用户的数据视图不应更改。 说,如果一个表被拆分为两个表,一个新的视图应给出结果作为两个表的联接。 此规则最难满足。
规则10:诚信独立 (Rule 10: Integrity Independence)
The database should be able to enforce its own integrity rather than using other programs. Key and Check constraints, trigger etc, should be stored in Data Dictionary. This also make RDBMS independent of front-end.
数据库应该能够强制执行自己的完整性,而不是使用其他程序。 键和检查约束,触发器等应存储在数据字典中。 这也使RDBMS独立于前端。
规则11:分配独立 (Rule 11: Distribution Independence)
A database should work properly regardless of its distribution across a network. Even if a database is geographically distributed, with data stored in pieces, the end user should get an impression that it is stored at the same place. This lays the foundation of distributed database.
无论数据库在网络中的分布如何,数据库都应正常工作。 即使数据库是按地理分布的,并且数据是分段存储的,最终用户也应该给人一种印象,即它存储在同一位置。 这奠定了分布式数据库的基础。
规则12:非颠覆规则 (Rule 12: Nonsubversion Rule)
If low level access is allowed to a system it should not be able to subvert or bypass integrity rules to change the data. This can be achieved by some sort of looking or encryption.
如果允许对系统进行低级别访问,则它不应能够颠覆或绕过完整性规则来更改数据。 这可以通过某种外观或加密来实现。
codd's是什么