《第23章定义数据完整性优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第23章定义数据完整性优秀PPT.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第23章定义数据完整性现在学习的是第1页,共25页1.1.1.1.实体完整性实体完整性实体完整性实体完整性学号学号姓名姓名性别性别年龄年龄班号班号02010202李勇李勇刘晨刘晨男男男男1819信信01信信011完整性约束综述完整性约束综述学号学号课号课号成绩成绩0201023300100180902.2.2.2.参照完整性参照完整性参照完整性参照完整性班号班号专业专业院系院系信管信管1信管信管2信息管理信息管理信息管理信息管理管院管院管院管院“班级班级”学号学号姓名姓名性别性别年龄年龄班号班号02010235李勇李勇刘晨刘晨男男男男1819信管信管1信管信管2“学生学生”3 3 3 3.用户
2、定义完整性用户定义完整性用户定义完整性用户定义完整性如:性别只能为如:性别只能为“男男”或或“女女”一一.完整性分类完整性分类现在学习的是第2页,共25页二二.完整性约束的范围完整性约束的范围1.列级约束:应用于某一列上。列级约束:应用于某一列上。2.表级约束:应用于表中的多列上。表级约束:应用于表中的多列上。三三.DBMS的完整性控制功能的完整性控制功能1.定义功能:提供定义完整性约束条件的机制。定义功能:提供定义完整性约束条件的机制。2.检检查查功功能能:检检查查用用户户发发出出的的操操作作请请求求是是否否违违背背了了完完整整性性约约束束条件。条件。3.纠正措施:发现违背约束时的处理。纠正
3、措施:发现违背约束时的处理。1完整性约束综述完整性约束综述现在学习的是第3页,共25页四四.完整性约束条件的设置完整性约束条件的设置完完整整性性约约束束条条件件可可以以在在建建表表时时设设置置,也也可可以以后后增增或或删删除除。在在建建表表时设置约束的命令格式是:时设置约束的命令格式是:createtable表名表名(列名(列名1数据类型数据类型1列级完整性约束条件列级完整性约束条件1,列名列名2数据类型数据类型2列级完整性约束条件列级完整性约束条件2,列名列名n数据类型数据类型n列级完整性约束条件列级完整性约束条件n,表级完整性约束条件表级完整性约束条件););1完整性约束综述完整性约束综述
4、现在学习的是第4页,共25页1.建立列级主键约束建立列级主键约束例例1:将:将“学生学生”表中的表中的“学号学号”列设为主键。列设为主键。createtable学生学生(学号学号varchar(8)primarykey,姓名姓名varchar(8),:);例例2:将:将“班级班级”表中的表中的“班号班号”列设为主键,并命名。列设为主键,并命名。createtable班级班级(班号班号varchar(7)primarykey,专业专业varchar(20),院系院系varchar(20);2使用使用primarykey(主键)约束实施实体完整性(主键)约束实施实体完整性现在学习的是第5页,共25
5、页2.建立表级主键约束建立表级主键约束例例1:将:将“选修选修”表中的表中的“学号学号”与与“课号课号”列设为主键。列设为主键。createtable选修选修(学号学号varchar(8),课号课号varchar(4),成绩成绩tinyint,primarykey(学号学号,课号课号);2使用使用primarykey(主键主键)约束实施实体完整性约束实施实体完整性学号学号课号课号成绩成绩020102010233001002001809075现在学习的是第6页,共25页例例1:将学生表中的:将学生表中的“班号班号”列设为外键。列设为外键。前提:前提:(1)班级表中的班级表中的“班号班号”列已设为
6、主键列已设为主键;(2)外键与主键数据类型及长度相同。外键与主键数据类型及长度相同。createtable学生学生(学号学号varchar(8)primarykey,姓名姓名varchar(8),性别性别varchar(2),年龄年龄tinyint,班号班号varchar(7)foreignkeyreferences班级班级(班号班号);3使用使用foreignkey(外键外键)约束实施参照完整性约束实施参照完整性班号班号专业专业院系院系信管信管1信管信管2信息管理信息管理信息管理信息管理管院管院管院管院“班级班级”学号学号姓名姓名性别性别年龄年龄班号班号02010235李勇李勇刘晨刘晨男男男
7、男1819信管信管1信管信管2“学生学生”现在学习的是第7页,共25页例例2.将将“选修表选修表”中的中的“学号学号”列和列和“课号课号”列分别设为外键。列分别设为外键。createtable选修选修(学号学号varchar(8)foreignkeyreferences学生学生(学号学号),课号课号varchar(4)foreignkeyreferences课程课程(课号课号),成绩成绩tinyint,primarykey(学号学号,课号课号);3使用使用foreignkey(外键外键)约束实施参照完整性约束实施参照完整性学号学号姓名姓名性别性别年龄年龄班号班号0201李勇李勇男男18信管信管
8、1学号学号课号课号成绩成绩020102010010028088课号课号课名课名学时学时学分学分001002微机原理微机原理操作系统操作系统50402.52“学生学生”关系关系“课程课程”关系关系“选修选修”关系关系现在学习的是第8页,共25页实现参照完整性要考虑的问题实现参照完整性要考虑的问题外外键键的的作作用用即即对对输输入入自自身身表表格格的的数数据据进进行行限限制制,同同时时也也限限制制了了对对主主键键所所在在表表的的数数据据的修改。的修改。1在主键表删除元组问题在主键表删除元组问题1)级联删除)级联删除2)受限删除()受限删除(SQLServer采用)采用)3)置空值删除)置空值删除2
9、在外键表插入元组问题在外键表插入元组问题1)受限插入()受限插入(SQLServer采用)采用)2)递归插入)递归插入3修改主键问题修改主键问题1)不允许修改:先删除,再插入。)不允许修改:先删除,再插入。2)允许修改()允许修改(SQLServer采用)采用)3使用使用foreignkey(外键外键)约束实施参照完整性约束实施参照完整性现在学习的是第9页,共25页一一.使用使用unique约束约束该约束用来确保不受主键约束的列上的数据的唯一性。例:该约束用来确保不受主键约束的列上的数据的唯一性。例:createtable学生学生(学号学号varchar(8)primarykey,姓名姓名va
10、rchar(8),身份证号身份证号varchar(18)unique,性别性别varchar(2),年龄年龄tinyint,班号班号varchar(7)foreignkeyreferences班级班级(班号班号),);4使用使用unique、check等约束实施用户定义完整性等约束实施用户定义完整性现在学习的是第10页,共25页unique约束与主键约束的区别主要表现在:约束与主键约束的区别主要表现在:1.主要用在非主键的一列或多列上要求数据唯一的情况。主要用在非主键的一列或多列上要求数据唯一的情况。2.允许该列上存在允许该列上存在null值,而主键约束不行。值,而主键约束不行。3.在一个表上
11、可以允许设置多个在一个表上可以允许设置多个unique约束,而只能设置一个主键。约束,而只能设置一个主键。4使用使用unique、check等约束实施用户定义完整性等约束实施用户定义完整性现在学习的是第11页,共25页二二.使用使用null与与not null约束约束null表表示示指指定定列列可可以以为为空空,notnull表表示示指指定定列列不不能能为为空空。如如果果某列没有明确指定,默认为某列没有明确指定,默认为notnull。例例2.将选修表中的将选修表中的“成绩成绩”列设为可以为空。列设为可以为空。createtable选修选修(学号学号varchar(8)foreignkeyref
12、erences学生学生(学号学号),课号课号varchar(4)foreignkeyreferences课程课程(课号课号),成绩成绩tinyintnull,primarykey(学号学号,课号课号);4使用使用unique、check等约束实施用户定义完整性等约束实施用户定义完整性现在学习的是第12页,共25页二二.使用使用check约束约束check约约束束在在形形式式上上是是一一个个逻逻辑辑表表达达式式。可可以以设设置置列列级级check约约束束和和表表级级check约束。约束。1.1.定义列级定义列级checkcheck约束约束 例例1 1:为为学学生生表表中中的的性性别别和和年年龄龄
13、列列设设置置checkcheck约约束束(注注意意在在同同一一列列加加多多种种约约束的方法)。束的方法)。createtable学生学生(学号学号varchar(8)primarykey,姓名姓名varchar(8)notnull,性别性别varchar(2)notnullcheck(性别性别=男男or性别性别=女女),年龄年龄tinyintnullcheck(年龄年龄15and年龄年龄=0and学时学时=0and学分学分=学分学分);例例3.为选修表的成绩列设置约束。为选修表的成绩列设置约束。createtable选修选修(学号学号varchar(8)foreignkeyreferences
14、学生学生(学号学号),课号课号varchar(4)foreignkeyreferences课程课程(课号课号),成绩成绩tinyintcheck(成绩成绩=0and成绩成绩=100),primarykey(学号学号,课号课号);4使用使用unique、check等约束实施用户定义完整性等约束实施用户定义完整性现在学习的是第14页,共25页2.2.定义表级定义表级checkcheck约束约束 例:为库存表设置约束。例:为库存表设置约束。Create table Create table 库存库存 (物料号物料号 char(6)char(6),入库量入库量 int int,出库量出库量 int i
15、nt,Check(Check(出库量出库量=0and学时学时=15and年龄年龄=0and成绩成绩=150),primarykey(学号学号,课号课号);总总结:学生管理数据库的建立与完整性设置结:学生管理数据库的建立与完整性设置 现在学习的是第18页,共25页 使使用用企企业业管管理理器器可可以以方方便便地地设设置置约约束束、修修改改约约束束和和删删除除约约束束。注注意意:如如果果表表中中已已有有数数据据,则则追追加加约约束束时时,要检查现有数据是否满足约束。要检查现有数据是否满足约束。一一.设置主键约束:设置主键约束:1.1.选择要修改的表选择要修改的表 2.2.从快捷菜单中选从快捷菜单中
16、选“设计表设计表”命令命令 3.3.选择主键列(按住选择主键列(按住ctrlctrl键选多列)键选多列)4.4.单击单击“钥匙钥匙”图标。图标。5借助借助企业管理器实施数据库完整性企业管理器实施数据库完整性现在学习的是第19页,共25页二二.设置外键约束:设置外键约束:1.1.选择要修改的表选择要修改的表 2.2.从快捷菜单中选从快捷菜单中选“设计表设计表”命令命令 3.3.单击红圈中的键单击红圈中的键 4.4.选择选择“关系关系”标签标签 5.5.建立或删除外键约束。建立或删除外键约束。5借助借助企业管理器实施数据库完整性企业管理器实施数据库完整性现在学习的是第20页,共25页三三.设置设置
17、checkcheck约束:约束:1.1.选择要修改的表选择要修改的表 2.2.从快捷菜单中选从快捷菜单中选“设计表设计表”命令命令 3.3.单击红圈中的键单击红圈中的键 4.4.选择选择“checkcheck”标签标签 5.5.建立或删除约束。建立或删除约束。5借助借助企业管理器实施数据库完整性企业管理器实施数据库完整性现在学习的是第21页,共25页6使用使用企业管理器建立数据库关系图企业管理器建立数据库关系图数据库关系图可以将数据库结构形象地表示出来。通过关系图数据库关系图可以将数据库结构形象地表示出来。通过关系图还可以修改数据库结构的各项内容。还可以修改数据库结构的各项内容。现在学习的是第
18、22页,共25页建立关系图的步骤如下:建立关系图的步骤如下:1)1)展开自己的数据库节点展开自己的数据库节点 2)2)选选 关关系系图图 节节点点,右右击击选选择择 新新建建数数据库关系图据库关系图 3)3)选选择择 新新建建数数据据库库关关系系图图 命命令令,系系统统启动启动 创建数据库关系图向导创建数据库关系图向导 4)4)按照提示创建数据库关系图按照提示创建数据库关系图 一一个个大大型型数数据据库库可可以以创创建建若若干干个个数数据据库库关关系系图图(一一个个关关系系图图中中包包含含几几个个联联系比较密切的表)。系比较密切的表)。6使用使用企业管理器建立数据库关系图企业管理器建立数据库关系图现在学习的是第23页,共25页1 1 说明各类完整性约束的含义及作用。说明各类完整性约束的含义及作用。2 2 举例说明使用举例说明使用create tablecreate table命令建立各类完整命令建立各类完整性约束的方法。性约束的方法。3 3 说明使用企业管理器建立和修改各类完整性约束说明使用企业管理器建立和修改各类完整性约束的方法和步骤。的方法和步骤。4 4 说明创建数据库关系图的方法和步骤。说明创建数据库关系图的方法和步骤。第第2-3章章数据库完整性设计作业数据库完整性设计作业现在学习的是第24页,共25页现在学习的是第25页,共25页