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