资源描述
,第四讲 数据完整性,.,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第四讲,数据完整性,新课引入,复习,重点难点,课程内容,1,、数据完整性,2,、约束,3,、默认,4,、,规则,5,、用户自定义的数据类型,1,复习、重点、难点,复习内容:,E-R,图,重点:,1,、约束,难点:,1,、约束,2,、规则,3,、默认,2,数据库设计步骤,需求分析,概念设计,逻辑设计,物理设计,实施与运行,(调研分析),(,E-R,模型),(在存储设备上选定存储结构和方法),(转换成某种,DBMS,支持的数据模型),3,E-R,图,以自底向上设计概念结构的方法为例,它通常分为两步:,第一步,首先要根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图即分,E-R,图。,第二步,集成局部视图。,4,设计分,E-R,图的步骤,(,1,)选择局部应用,在需求分析阶段,通过对应用环境和要求进行详尽的调查分析。设计分,E-R,图的第一步,就是要根据系统的具体情况,选择每一个局部应用,设计分,E-R,图。,(,2,)逐一设计分,E-R,图,每个局部应用都对应了一组数据流图,局部应用涉及的数据都已经收集在数据字典中了。现在就是要将这些数据从数据字典中抽取出来,参照数据流图,标定局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型(,1:1,、,1:n,、,m:n,)。,5,例:设计学籍管理局部应用的分,E-R,图:,6,学生管理系统设计,学生,学号,姓名,性别,出生日期,班级,何时入校,家庭住址,班级,班级号,班级名称,学生人数,辅导员,职工号,姓名,性别,职称,工作时间,宿舍,宿舍编号,地址,人数,教室,教室编号,地址,容量,7,设计课程管理局部应用的分,E-R,图,8,学生管理系统设计,学生,学号,姓名,性别,年龄,入学时间,课程,课程号,课程名,学分,教科书,书号,书名,作者,出版日期,关键字,教室,教室编号,地址,容量,教师,职工号,姓名,性别,职称,9,集成,E-R,图,(1),消除冲突。这两个子,E-R,图存在着多方面的冲突:,辅导员属于教师,学籍管理中的辅导员与课程管理中的教师可以统一为教师。,调整学生属性组成,调解结果为:,学生,学号,姓名,性别,出生日期,班级,年龄,入学时间 ,家庭住址,(2),消除冗余。,1),学生实体的属性中的年龄可由初涉概念日期计算出来,属于数据冗余。,2),教室实体与班级实体之间的上课联系可以由教室与课程之间的开设联系、课程与学生之间的选修联系、学生与班级之间的组成联系三者推导出来,因此属于数据冗余,可以消去。,10,学生管理系统设计,11,学生管理系统设计,12,数据完整性,保证存储在数据库中数据的一致性和正确性,1.,实体完整性:主键字段不能为空值,2.,参照完整性:外键字段必须是另一个表主码的,有效值或空值,3.,域完整性:,13,约束,1,、,PRIMARY KEY,每个表最多一个,值是唯一的,主键字段不能为空值,2,、,FOREIGN KEY,必须参照一个主键或唯一约束,提供单列或多列的参照完整性,14,约束,3,、,UNIQUE,允许有一个空值,一个表上可以建立多个,用于具有唯一值的单列或多列,4,、,DEFAULT,只能用于,insert,语句,每一列最多一个,IDENTITY,属性的列上不能用,15,约束,5,、,CHECK,用于,insert,、,update,语句,在同一个表中可以参照其它的列,16,使用默认值和规则,作为独立的数据库对象,定义一次,可被绑定到一列或多列,17,
展开阅读全文