《第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页哦2.建立表级主键
5、约束建立表级主键约束例例1:将:将“选修选修”表中的表中的“学号学号”与与“课号课号”列设为主键。列设为主键。createtable选修选修(学号学号varchar(8),课号课号varchar(4),成绩成绩tinyint,primarykey(学号学号,课号课号);2使用使用primarykey(主键主键)约束实施实体完整性约束实施实体完整性学号学号课号课号成绩成绩020102010233001002001809075第6页,此课件共25页哦例例1:将学生表中的:将学生表中的“班号班号”列设为外键。列设为外键。前提:前提:(1)班级表中的班级表中的“班号班号”列已设为主键列已设为主键;(2
6、)外键与主键数据类型及长度相同。外键与主键数据类型及长度相同。createtable学生学生(学号学号varchar(8)primarykey,姓名姓名varchar(8),性别性别varchar(2),年龄年龄tinyint,班号班号varchar(7)foreignkeyreferences班级班级(班号班号);3使用使用foreignkey(外键外键)约束实施参照完整性约束实施参照完整性班号班号专业专业院系院系信管信管1信管信管2信息管理信息管理信息管理信息管理管院管院管院管院“班级班级”学号学号姓名姓名性别性别年龄年龄班号班号02010235李勇李勇刘晨刘晨男男男男1819信管信管1信
7、管信管2“学生学生”第7页,此课件共25页哦例例2.将将“选修表选修表”中的中的“学号学号”列和列和“课号课号”列分别设为外键。列分别设为外键。createtable选修选修(学号学号varchar(8)foreignkeyreferences学生学生(学号学号),课号课号varchar(4)foreignkeyreferences课程课程(课号课号),成绩成绩tinyint,primarykey(学号学号,课号课号);3使用使用foreignkey(外键外键)约束实施参照完整性约束实施参照完整性学号学号姓名姓名性别性别年龄年龄班号班号0201李勇李勇男男18信管信管1学号学号课号课号成绩成绩
8、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,姓名姓名varchar(8),身份证号身份证号
10、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)foreignkeyreferences学生学生(学号学号),课号课号
12、varchar(4)foreignkeyreferences课程课程(课号课号),成绩成绩tinyintnull,primarykey(学号学号,课号课号);4使用使用unique、check等约束实施用户定义完整性等约束实施用户定义完整性第12页,此课件共25页哦二二.使用使用check约束约束check约束在形式上是一个逻辑表达式。可以设置列级约束在形式上是一个逻辑表达式。可以设置列级check约束和表级约束和表级check约束。约束。1.1.定义列级定义列级checkcheck约束约束 例例1 1:为为学学生生表表中中的的性性别别和和年年龄龄列列设设置置checkcheck约约束束(注注
13、意意在在同同一一列列加加多多种种约约束束的的方方法)。法)。createtable学生学生(学号学号varchar(8)primarykey,姓名姓名varchar(8)notnull,性别性别varchar(2)notnullcheck(性别性别=男男or性别性别=女女),年龄年龄tinyintnullcheck(年龄年龄15and年龄年龄=0and学时学时=0and学分学分=学分学分);例例3.为选修表的成绩列设置约束。为选修表的成绩列设置约束。createtable选修选修(学号学号varchar(8)foreignkeyreferences学生学生(学号学号),课号课号varchar(
14、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 int,Check(Check(出库量出库量=0an
15、d学时学时=15and年龄年龄=0and成绩成绩=150),primarykey(学号学号,课号课号);总总结:学生管理数据库的建立与完整性设置结:学生管理数据库的建立与完整性设置 第18页,此课件共25页哦 使使用用企企业业管管理理器器可可以以方方便便地地设设置置约约束束、修修改改约约束束和和删删除除约约束束。注注意意:如如果果表表中中已已有有数数据据,则则追追加加约约束束时时,要要检检查查现现有有数数据据是否满足约束。是否满足约束。一一.设置主键约束:设置主键约束:1.1.选择要修改的表选择要修改的表 2.2.从快捷菜单中选从快捷菜单中选“设计表设计表”命令命令 3.3.选择主键列(按住选
16、择主键列(按住ctrlctrl键选多列)键选多列)4.4.单击单击“钥匙钥匙”图标。图标。5借助借助企业管理器实施数据库完整性企业管理器实施数据库完整性第19页,此课件共25页哦二二.设置外键约束:设置外键约束:1.1.选择要修改的表选择要修改的表 2.2.从快捷菜单中选从快捷菜单中选“设计表设计表”命令命令 3.3.单击红圈中的键单击红圈中的键 4.4.选择选择“关系关系”标签标签 5.5.建立或删除外键约束。建立或删除外键约束。5借助借助企业管理器实施数据库完整性企业管理器实施数据库完整性第20页,此课件共25页哦三三.设置设置checkcheck约束:约束:1.1.选择要修改的表选择要修
17、改的表 2.2.从快捷菜单中选从快捷菜单中选“设计表设计表”命令命令 3.3.单击红圈中的键单击红圈中的键 4.4.选择选择“checkcheck”标签标签 5.5.建立或删除约束。建立或删除约束。5借助借助企业管理器实施数据库完整性企业管理器实施数据库完整性第21页,此课件共25页哦6使用使用企业管理器建立数据库关系图企业管理器建立数据库关系图数据库关系图可以将数据库结构形象地表示出来。通过关系图还可数据库关系图可以将数据库结构形象地表示出来。通过关系图还可以修改数据库结构的各项内容。以修改数据库结构的各项内容。第22页,此课件共25页哦建立关系图的步骤如下:建立关系图的步骤如下:1)1)展
18、开自己的数据库节点展开自己的数据库节点 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页哦