OLAP学习笔记(一)科德十二定律

综述

科德十二定律(Codd’s 12 rules)
OLAP学习笔记(一)科德十二定律_第1张图片
是由关系型数据库理论奠基者埃德加·科德(Edgar Codd)为保持其关系数据库构想的完整性而提出的,被普遍认为是全关系系统必须遵循的基本准则。

原文内容

这十二条定律内容如下:
OLAP学习笔记(一)科德十二定律_第2张图片

分条详解

第零准则(The foundation rule:)

Rule 0: For any system that is advertised as, or claimed to be, a relational data base management system, that system must be able to manage data bases entirely through its relational capabilities. (所有称作关系数据库管理系统(RDBMS)的系统必须能够完全通过它自身的关系能力来管理数据库。)

这条定律是判断一个数据库系统(DBMS)是否可以称为关系数据库系统(RDBMS)的重要依据,不满足这条定律的数据库系统就不能称作关系数据库系统。这条定律规定了关系数据库系统必须支持数据库在关系层面的的添加、更新和删除操作,另外也确定了第一条和第二条准则的必要性。

对于只包含一行或零行信息的特殊情况,关系数据库系统也必须保持其原有的关系

任何在其手册中推荐用户转而使用非关系性能来“达到可接受的表现”的表述,除非为了与之前用非关系数据库编写的程序有更好的兼容性之外,这类表述都表明这款产品的失败,因为此类话语表明制作商没有完全实现他们通过关系化方法达到良好的性能的目标。

第一准则:信息准则(The information rule: )

Rule 1: All information in a relational data base is represented explicitly at the logical level and in exactly one way — by values in tables. (关系数据库中的所有信息都应该在逻辑层面上通过表格中的数值清晰地表示出来。)

表格的名称、行名和列名以及某个区间的名字都应该通过表格中的字符串表示,具有这类信息的表格通常是系统内部目录的一部分,这一目录本身就是一个对应的关系数据库——它是动态的,表示元数据。这一条准则不仅提高了使用者的使用效率,同样也使开发者定义整合在数据库系统内的附加的软件包的工作更加简单。

第二准则:保证访问准则(The guaranteed access rule:)

Rule 2: Each and every datum (atomic value) in a relational data base is guaranteed to be logically accessible by resorting to a combination of table name, primary key value and column name. (关系数据库中的每一个内容应保证能够通过表格名称、列名称和主码的组合获得。)

取得关系表中数据的方法有很多,我们应该至少保证其中有一个确定的独立于特定关系数据库的方法,因为很多源自计算机技术的概念在关系数据库模型中被故意忽视。

第三准则 空值的系统化处理 (Systematic treatment of null values: )

Rule 3: Null values (distinct from the empty character string or a string of blank characters and distinct from zero or any other number) are supported in fully relational DBMS for representing missing information and inapplicable information in a systematic way, independent of data type. (空值【区分于空字符串、空白字符组成的字符串和其他数字】在完全关系数据库系统中是支持的,它可以通过一个系统的方法,独立于数据类型地表示缺失数据和无法获取的数据。)

为了保持数据库的完整性,在数据库管理者认为这一约束条件是适宜的时候声明“不允许使用空值”是完全可能的做法。

过去的技术限定了为每一列或每一个区域定义一个特殊的数值来表示缺失信息。然而这在关系型数据库中会造成十分混乱的局面,因为用户必须为不同的列和区间使用不同的方法,这一工作是非常繁琐的。

第四准则:基于关系模型的动态的联机数据字典 (Dynamic online catalog based on the relational model:)

Rule 4: The data base description is represented at the logical level in the same way as ordinary data, so that authorized users can apply the same relational language to its interrogation as they apply to the regular data. (数据库的表述应该在逻辑层面和普通数据有相同的表示方式,这样被授权的用户就可以在调查数据的时候使用与对于普通数据的操作相同的关系型语言)

这样的一个结果是关系型数据库的每个用户只需学习一种数据模型,这是非关系型数据库无法提供的优势。

另一个结果是被授权的用户可以在开发者做得不够好的时候轻松地扩展数据目录,以至达到一个完备的、动态的关系数据映射。

第五准则:统一的数据子语言 (The comprehensive data sublanguage rule: )

Rule 5: A relational system may support several languages and various modes of terminal use (for example, the fill-in-the-blanks mode). However, there must be at least one language whose statements are expressible, per some well-defined syntax, as character strings and that is comprehensive in supporting all of the following items:(关系数据库系统可以支持多种语言以及多种模式的终端操作。然而它必须具备一种可以通过定义十分完善的语句作为字符串来表述的特性,而且可以实现以下所有的特性:)

  • Data definition.(数据的定义)
  • View definition.(视图的定义)
  • Data manipulation (interactive and by program).(与程序交互实现的数据处理)
  • Integrity constraints.(完整性的约束条件)
  • Authorization.(授权性)
  • Transaction boundaries (begin, commit and rollback).(处理事项的规定界限)

第六准则:视图更新准则(The view updating rule: )

Rule 6: All views that are theoretically updatable are also updatable by the system. (所有理论证明可以实现的视图,均可以通过系统更新得到。)

若存在一个独立于时间的算法,它可以显性地决定一数据库关系的系列连续的变化,而且可以精确地产生我们需要的视图变化,这样我们就说它产生的视图是理论上可以实现的。

第七准则:高级的插入、修改和删除操作(Possible for high-level insert, update, and delete: )

Rule 7: The capability of handling a base relation or a derived relation as a single operand applies not only to the retrieval of data but also to the insertion, update and deletion of data. (通过一个关于数据库关系或派生的关系的操作码,不仅可以数据的检索,还可以实现数据的插入、更新和删除。)

这样要求可以让系统更仔细地优化其执行时间内操作的效率。这令系统可以决定充分利用哪个访问路径来取得效率最高的代码。这对于取得一个可以高效操作分步式数据库的方式也是十分重要的。在此情形下,用户通过避免遥远地传输请求,可以节省很多的沟通成本。

第八准则:数据的物理独立性(Physical data independence: )

Rule 8: Application programs and terminal activities remain logically unimpared whenever any changes are made in either storage representations or access methods. (不论存储表示或者存取方法怎样变化,应用程序和终端活动应该在逻辑层面上保持不变。)

以达到这一点,数据库系统必须在逻辑层和语义层之间、物理层和终端层之间具有分明的界限。应用程序必须只能在逻辑层面进行操作。

第九准则:数据逻辑独立性(Logical data independence: )

Rule 9: Application programs and terminal activites remain logically unimpared when information-preserving changes of any kind that theoretically permit unimpairment are made to the base tables. (当任何种类的保存数据的操作在理论层面不受损害之时,应用程序和终端操作应保持数据不变性。)

为了实现这一目标,数据库系统应能够在任何理论上可更新的视图中处理添加、更新和删除的语句。这一准则允许逻辑性数据库设计地可以在提升性能的条件下实现动态变化。

这一独立性准则允许关系型数据库设计者能够在他们设计时产生小的错误,而这些错误不会有很严重的后果,因此它也简化了关系化数据库的建设流程。

第十准则:数据完整的独立性 (Integrity independence: )

Rule 10: Integrity constraints specific to a particular relational data base must be definable in the relational data sublanguage and storable in the catalog, not in the application programs. (对于特定关系型数据库的完整性约束条件,必须对于关系型数据的亚语言是可以定义的,而且是可以存储在目录而不是应用程序中的。)

除去每个关系型数据库都适用的对象独立性和指示独立性之外,明确反映生意条款和政府规则的附加的独立性约束的需要是十分显著的。

假设关系模型是如实反映的,那么附加的独立性约束是针对高阶的数据亚语言和目录中存储的定义而定义的,而不是针对应用程序本身。

下面的两个独立性是对于每个关系型数据库都适用的:

  • 对象独立性:主码的成分不允许具有空值
  • 指示独立性:对于关系型数据库每一个非空的键值对,必须在相同的域内存在一个对应的主码

第十一准则:分布独立性(Distribution independence: )

Rule 11: A relational DBMS has distribution independence.(关系式数据库系统具有分布独立性。)
分部独立性意味着数据库系统具有数据亚语言,可以保持应用程序和终端活动在以下情形不会破坏数据库的逻辑构造:

  • 当数据分布首次开始启动的时候(原本的数据库系统只操作非分布式数据);
  • 当数据被再次分布之时(若数据库系统操作分布式数据)

注意这一定义的措辞是如何严谨,以致分布式和非分布式数据库系统都可以支持这一准则。

分布式处理与分布式数据的区别在于前者是由工作传输到数据,后者是由数据传输到工作。唯一实现所有分布式数据可以如同在本地一般便捷地操作的系统就是关系式数据库系统。

第十二准则:无破坏准则(The nonsubversion rule: )

Rule 12: If a relational system has a low-level (single-record-at-a-time) language, that low level cannot be used to subvert or bypass the integrity rules and constraints expressed in the higher level relational language (multiple-records-at-a-time). (如果关系数据库具有一个一次只能处理一个数据的低级语言,其不能违反完整性准则和高级关系语言表达的约束)

关系数据库中,完整性的保持是独立于逻辑数据结构的。这一准则对于“再生”系统是十分难于遵守的,因为这样的系统已经支持了关系数据库约束之下的一个接口。

参考资料

  • 科德十二定律 - 维基百科,自由的百科全书
  • Codd’s 12 rules - From Wikipedia, the free encyclopedia
  • Codd’s Twelve Rules |
    Department of Electronics, Computing & Mathematics
  • Codd’s 12 Rules For the Relational database - Queryhelp
  • Edgar F. Codd - From Wikipedia, the free encyclopedia
  • Codd’s 12 rules - w3resource

你可能感兴趣的:(OLAP,数据库)