快好知 kuaihz订阅看过栏目

 

存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。数据完整性(Data Integrity)是指数据的精确性(Accuracy) 和可靠性(Reliability)。它是应防止 数据库中存在不符合语义规定的数据和防止因 错误信息的输入输出造成无效操作或错误信息而提出的。数据库采用多种方法来保证数据完整性,包括 外键、约束、规则和 触发器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。

基本简介

存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。

详细释义

数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或 错误信息。保证输入的数据符合规定,成为了 数据库系统,尤其是多用户的 关系数据库系统首要关注的问题。数据完整性因此而提出。本章将讲述数据完整性的概念及其在SQL Server 中的实现方法。

数据完整性(Data Integrity)是指数据的精确性(Accuracy) 和可靠性(Reliability)。它是应防止 数据库中存在不符合语义规定的数据和防止因 错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类: 实体完整性(Entity Integrity)、 域完整性(Domain Integrity)、 参照完整性(Referential Integrity)、 用户自定义完整性(User-definedIntegrity)。

数据库采用多种方法来保证数据完整性,包括 外键、约束、规则和 触发器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。

完整约束

完整性约束主要有实体完整性约束、参照完整性约束、函数依赖约束、统计约束四类。

实体完整性 实体完整性是指一个关系中所有主属性(即主码的属性)不能取空值。所谓“空值”就是“不知道”或“无意义”的值。如主属性取空值,就说明某个不可标识的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是完整的实体。

参照完整性约束 参照完整性约束是指参照关系中外码的取值或者是空值(外码的每个属性均为空值)或者是取被参照关系中某个元组的主码值。下面举例说明。现有两个关系模式:学生(学号,姓名,性别,专业号,年龄)和专业(专业号,专业名)。在实现参照完整性时要注意以下几个问题:①外码是否可以接受空值。因为外码能否为空是依赖于应用环境的,如有两个关系模式分别为选修(学号,课程好,成绩)学生(学号,姓名,性别,年龄,所在系),选修关系中的外码“学号”不能为空,如果为空,说明某个不知学号的学生选修了某门课程,这与学校的应用环境不符。②删除被参照关系的元组时的考虑。有时需要删除被参照关系的某个元组,而参照关系中又有若干原组的外码值与被删除的被参照关系中的主码值相对应,这时要进行级联删除,即将参照关系中的所有外码值与被参照关系中要删除元组主码值相对应的元组一起删除,如果参照关系同时又是另一个关系的被参照关系则这种级联删除应该级联删除应该级联下去。③修改被参照关系中主码时的考虑。遇到这种情况时,做法同删除被参照关系的元组类似,要做级联修改,既修改被参照关系中主码值的同时,用相同的方法修改参照关系中相应的外码值。

函数依赖约束 大部分函数依赖约束都是隐含在关系模式结构中,特别是规范化程度较高的关系模式(如3NF或BCNS)都由模式来保持函数依赖。在实际应用中,为了不使信息过于分离,一般不能过分地追求规范化。这样在关系的字段间就可以存在一些函数要显式地表示出来。

系统约束 即某个字段值与一个关系多个元组的统计值之间的约束关系。如,本部门经理的工资不得高于本部门职工的平均工资的5倍。其中职工的平均工资值是一个统计计算值。在许多场合,统计数据往往可以公开,而个别数据却是保密的,但是个别数据值可以从统计数据推断出来,所以要采取一定的防范措施防止数据泄密。

投稿
非常不爽,删了吧! 相关词条:其他 状态 使用