第五章数据库完整性.ppt.Convertor.docVIP

  • 1
  • 0
  • 约7.21万字
  • 约 11页
  • 2017-08-10 发布于河南
  • 举报
第五章数据库完整性.ppt.Convertor

数据库原理 咸阳师范学院信息工程学院 第五章 数据库完整性 本章主要教学内容: 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.6 触发器 重点及难点: 了解什么是数据库完整性 掌握数据库的三类完整性 第五章 数据库完整性 数据库的完整性 数据的正确性和相容性 防止不合语义的数据进入数据库。 完整性:真实地反映现实世界 1.提供定义完整性约束条件的机制 2.提供完整性检查的方法 3.违约处理 提供定义完整性约束条件的机制 完整性约束条件:数据模型的组成部分,约束数据库中数据的语义 DBMS应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数据库中 提供完整性检查的方法 检查用户发出的操作请求是否违背了完整性约束条件 违约处理 如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 第五章 数据库完整性 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.6 触发器 5.7 小结 5.1 实体完整性 5.1.1实体完整性定义 5.1.2实体完整性检查和违约处理 5.1.1实体完整性定义 关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。 对单属性构成的码有两种说明方法 列级约束条件 表级约束条件 对多个属性构成的码有一种说明方法 表级约束条件 实体完整性定义 例1 将Student表中Sno属性定义为码 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY,   /*在列级定义主码*/ Sname CHAR(20) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) ); 或者 实体完整性定义 CREATE TABLE Student (Sno CHAR(9), Sname CHAR(20) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY (Sno)   /*在表级定义主码*/ ); 实体完整性定义 例2 将SC表中的Sno,Cno属性组定义为码 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno,Cno)    /*只能在表级定义主码*/ ); 5.1实体完整性 5.1.1实体完整性定义 5.1.2实体完整性检查和违约处理 5.1.2实体完整性检查和违约处理 当用户程序对基本表插入一条记录或者对主码列进行更新操作时,RDBMS则进行实体完整性检查,包括   1.检查主码值是否唯一,如果不唯一则拒绝插入或修改。 2.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。 从而保证了实体完整性。 实体完整性检查和违约处理 检查记录中主码值是否唯一的一种方法是进行全表扫描。依次判断表中每一条记录的主码值与将插入记录上的主码值(或者修改的新主码值)是否相同。 Key1 F21 F31 F41 F51 Key2 F22 F32 F42 F52 Key3 F23 F33 F43 F53 ? Keyi F2i F3i F4i F5i 实体完整性检查和违约处理 全表扫描是十分耗时的。为了避免对基本表进行全表扫描,RDBMS核心一般都在主码上自动建立一个索引,通过索引查找基本表中是否已经存在新的主码值,将大大提高效率。 实体完整性检查和违约处理 第五章数据库完整性 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.6 触发器 5.7 小结 5.2参照完整性 5.2.1参照完整性定义 5.2.2参照完整性检查和违约处理 关系模型的参照完整性在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。 5.2.1参照完整性定义 例3 定义SC中的参照完整性 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY(Sno,Cno), /*在表级定义实体完整性*/ FOREIGN KEY(Sno) RE

文档评论(0)

1亿VIP精品文档

相关文档