Snowberg

 

全关系系统的十二条基本准则

 

全关系型的系统应该完全地支持关系模型的所有特征,这是个原则。关系模型的奠基人E.F.Codd具体地给出了全关系型的关系系统应遵循的十二条基本准则。从实际意义上看,这十二条准则可以作为评价或购买关系型产品的标准。从理论意义上看,它是对关系数据模型的具体而又深入的论述,是从理论和实际紧密结合的高度对关系型DBMS的评述。

 
准则0 一个关系型的DBMS必须能完全通过它的关系能力来管理数据库。
 

准则0是下面十二条准则的基础。准则0的一个推论是:任何声称是关系型的DBMS必须在关系这个级别上支持数据的插入、修改和删除(即一次多个记录的操作级别)。 
不管一个系统是否还具有非关系的管理数据的能力,它必须满足准则0。任何不满足准则0的DBMS不配称为关系型DBMS。

准则0的另一个推论是:关系型DBMS必须遵循信息准则和保证访问(存取)准则。

  准则1 信息准则。
 

关系型DBMS的所有信息都应在逻辑一级上用一种方法即表中的值显式地表示。

进一步地,表名、列名和域名等都用系统内部表(即数据字典表)中的值表示。数据字典本身是一个动态的用来描述元数据的关系数据库。

满足信息准则不仅为了提高用户的生产率,使得DBA维护数据库的工作更简单、更有效,而且也为了使软件厂商在定义其他软件包时能够检索存储在数据字典中的信息,需要的话可以借助DBMS的操作把新的信息存入字典中,简便合理。

  准则2 保证访问准则。依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项(分量值)。
 

保证访问准则表明关系系统所采用的是相联寻址(association addressing)的访问模式,而不是那种面向机器的寻址方法。这是关系系统独有的方式。

  准则3 空值的系统化处理。
 

全关系型的DBMS应支持空值的概念,并用系统化的方式处理空值。

以往处理空值的办法常常是对每个允许取空值的字段定义一种特殊的值来表示空值。这不是系统化的好办法。因为这样的话,用户必须对每个字段或域采用不同的方法来处理空值。这种方法必然会大大降低用户生产率。

  准则4 基于关系模型的动态的联机数据字典。
 

数据库的描述在逻辑级上应该和普通数据采用同样的表示方式,使得授权用户可以使用查询一般数据所用的关系语言来查询数据库的描述信息。

  准则5 统一的数据子语言准则。
 

一个关系系统必须有一种语言,它的语句可以表示为具有严格语法规定的字符串,并能全面地支持以下功能:

· 数据定义,视图定义 
· 数据操作(交互式或程序式) 
· 完整性约束 
· 授权 
· 事务处理功能(事务开始、提交、滚回)

关系方法是高度动态的,即很少需要停止数据库的活动。非关系系统则不是这样。

  准则6 视图更新准则。
 

所有理论上可更新的视图也应该允许由系统更新。

什么叫‘一个视图是理论上可更新的视图’呢?它是指对此视图的更新要求,存在一个与时间无关的算法,该算法可以无二义性地把更新要求转换为对基本表的更新序列。

  准则7 高级的插入、修改和删除操作。
 

关系系统的操作对象是单一的关系。以关系为操作对象不仅简化了用户查询,提高了用户生产率,而且也为系统提供了很大的余地来进行查询优化,提高了系统的运行效率。它允许系统来选择存取路径,以便得到最有效的运行代码。

  准则8 数据物理独立性。
 

无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。

  准则9 数据逻辑独立性。
 

当对基本关系进行理论上信息不受损害的任何变化时,应用程序和终端活动都保持逻辑上的不变性。

对基本关系来讲,什么样的变化在理论上是保持信息不受损害的变化呢?我们举两个例子来说明。把一个基本表按行的内容或者按列名分解为两个表,若这两个表都保留原基本表的主码,则这种变换在理论上是保持信息不受损失的。用无损连接方法(连接5.4.2)把两个表合成一个表也不会破坏信息的变换。

为了尽可能提高数据逻辑独立性,DBMS必须能对理论上可更新的视图执行插入、修改和删除操作,即必须满足准则6。

  准则l0 数据完整性的独立性。
 

关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的,而不是在应用程序中加以定义的。

  准则11 分布独立性。
 

所谓分布独立性是指关系型DBMS具有这样的数据库语言,使应用程序和终端活动无论在最初的数据还是以后的数据重新分布时都能在逻辑上保持不变。

  准则12 无破坏准则。
 

如果一个关系系统具有一个低级(指一次一个记录)语言,则这个低级语言不能违背或绕过完整性准则。

在关系方法中,为获得数据完整独立性(准则l0)就要让完整性约束条件和数据的逻辑结构相独立。用准则12就很容易帮助我们识别那些贴着‘关系’标签的非关系系统。因为这一系统已经在关系接口之下有一个应用接口,因此很难满足准则12。这时DBA不能控制他们的数据库,不能保证数据库的完整性状态。

 

Copyright 1998, All rights reserved.

posted on 2011-10-21 22:12  Snowberg  阅读(574)  评论(0编辑  收藏  举报

导航