资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,1,完整性约束综述,2,使用,primary key,(主键)约束实施实体完整性,3,使用,foreign key(,外键,),约束实施参照完整性,4,使用,unique,、,check,等约束实施用户定义完整性,5,借助企业管理器实施数据库完整性,6,使用企业管理器建立数据库关系图,第,2-3,章 数据库完整性设计,1.,实体完整性,学号,姓名,性别,年龄,班号,0201,0202,李勇,刘晨,男,男,18,19,信01,信01,1,完整性约束综述,学号,课号,成绩,0201,0233,001,001,80,90,2.,参照完整性,班号,专业,院系,信管1,信管2,信息管理,信息管理,管院,管院,“班级”,学号,姓名,性别,年龄,班号,0201,0235,李勇,刘晨,男,男,18,19,信管1,信管,2,“学生”,3,.,用户定义完整性,如:性别只能为“男”或“女”,一,.,完整性分类,二.完整性约束的范围,1.,列级约束:应用于某一列上。,2.,表级约束:应用于表中的多列上。,三,.DBMS,的完整性控制功能,1.定义功能:提供定义完整性约束条件的机制。,2.检查功能:检查用户发出的操作请求是否违背了完整性约束条件。,3.纠正措施:发现违背约束时的处理。,1,完整性约束综述,四,.,完整性约束条件的设置,完整性约束条件可以在建表时设置,也可以后增或删除。在建表时设置约束的命令格式是:,create table,表名,(列名1 数据类型1 列级完整性约束条件1,,列名2 数据类型2 列级完整性约束条件2,,列名,n,数据类型,n,列级完整性约束条件,n,,表级完整性约束条件,);,1,完整性约束综述,1.建立列级主键约束,例,1,:将“学生”表中的“学号”列设为主键。,create table,学生,(学号,varchar(8),primary key,姓名,varchar(8),,,:,);,例,2,:将“班级”表中的“班号”列设为主键,并命名。,create table,班级,(班号,varchar(7)primary key,专业,varchar(20),院系,varchar(20),);,2,使用,primary key,(主键)约束实施实体完整性,2.,建立表级主键约束,例,1,:将“选修,”,表中的“学号,”,与“课号”列设为主键。,create table,选修,(学号,varchar(8),课号,varchar(4),成绩,tinyint,primary key(,学号,课号),);,2,使用,primary key(,主键,),约束实施实体完整性,学号,课号,成绩,0201,0201,0233,001,00,2,001,80,90,75,例,1,:将学生表中的“班号”列设为外键。,前提:,(1),班级表中的“班号”列已设为主键,;,(2),外键与主键数据类型及长度相同。,create table,学生,(学号,varchar(8)primary key,姓名,varchar(8),性别,varchar(2),年龄,tinyint,班号,varchar(7),foreign key references,班级(班号),);,3,使用,foreign key(,外键,),约束实施参照完整性,班号,专业,院系,信管1,信管2,信息管理,信息管理,管院,管院,“班级”,学号,姓名,性别,年龄,班号,0201,0235,李勇,刘晨,男,男,18,19,信管1,信管,2,“学生”,例,2.,将“选修表”中的“学号”列和“课号”列分别设为外键。,create table,选修,(学号,varchar(8),foreign key references,学生(学号),课号,varchar(4),foreign key references,课程(课号),成绩,tinyint,,,primary key(,学号,课号),);,3,使用,foreign key(,外键,),约束实施参照完整性,学号,姓名,性别,年龄,班号,0201,李勇,男,18,信管1,学号,课号,成绩,0201,0201,001,002,80,88,课号,课名,学时,学分,0,01,0,02,微机原理,操作系统,50,4,0,2.5,2,“学生”关系,“课程”关系,“选修”关系,实现参照完整性要考虑的问题,外键的作用即对输入自身表格的数据进行限制,同时也限制了对主键所在表的数据的修改。,1在主键表删除元组问题,1)级联删除,2)受限删除(,SQL Server,采用),3)置空值删除,2在外键表插入元组问题,1)受限插入(,SQL Server,采用),2)递归插入,3修改主键问题,1)不允许修改:先删除,再插入。,2)允许修改(,SQL Server,采用),3,使用,foreign key(,外键,),约束实施参照完整性,一,.,使用,unique,约束,该约束用来确保不受主键约束的列上的数据的唯一性。例:,create table,学生,(学号,varchar(8)primary key,姓名,varchar(8),身份证号,varchar(18),unique,,,性别,varchar(2),年龄,tinyint,班号,varchar(7),foreign key references,班级(班号),);,4,使用,unique,、,check,等约束实施用户定义完整性,unique,约束与主键约束的区别主要表现在:,1.主要用在非主键的一列或多列上要求数据唯一的情况。,2.允许该列上存在,null,值,而主键约束不行。,3.在一个表上可以允许设置多个,unique,约束,而只能设置一个主键。,4,使用,unique,、,check,等约束实施用户定义完整性,二,.,使用,null,与,not null,约束,null,表示指定列可以为空,,not null,表示指定列不能为空。如果某列没有明确指定,默认为,not null,。,例,2.,将选修表中的“成绩”列设为可以为空。,create table,选修,(学号,varchar(8),foreign key references,学生(学号),课号,varchar(4),foreign key references,课程(课号),成绩,tinyint,null,,,primary key(,学号,课号),);,4,使用,unique,、,check,等约束实施用户定义完整性,二,.,使用,check,约束,check,约束在形式上是一个逻辑表达式。可以设置列级,check,约束和表级,check,约束。,1.,定义列级,check,约束,例,1,:为学生表中的性别和年龄列设置,check,约束(注意在同一列加多种约束的方法)。,create table,学生,(学号,varchar(8)primary key,姓名,varchar(8)not null,性别,varchar(2),not null,check(,性别,=,男,or,性别,=,女,),年龄,tinyint,null,check(,年龄,15 and,年龄,=0,and,学时=0 and,学分,=,学分,),);,例,3.,为选修表的成绩列设置约束。,create table,选修,(学号,varchar(8),foreign key references,学生(学号),课号,varchar(4),foreign key references,课程(课号),成绩,tinyint,check(,成绩=0,and,成绩=1,00),primary key(,学号,课号),);,4,使用,unique,、,check,等约束实施用户定义完整性,2.,定义表级,check,约束,例:为库存表设置约束。,Create table,库存,(,物料号,char(6),入库量,int,出库量,int,Check(,出库量,=0,and,学时=15,and,年龄=0,and,成绩=150),primary key(,学号,课号),);,总 结:学生管理数据库的建立与完整性设置,使用企业管理器可以方便地设置约束、修改约束和删除约束。,注意:如果表中已有数据,则追加约束时,要检查现有数据是否满足约束。,一,.,设置主键约束:,1.选择要修改的表,2.从快捷菜单中选“设计表”命令,3.选择主键列(按住,ctrl,键选多列),4.,单击“钥匙”图标。,5,借助 企业管理器实施数据库完整性,二,.,设置外键约束:,1.选择要修改的表,2.从快捷菜单中选“设计表”命令,3.单击红圈中的键,4.,选择“关系”标签,5.,建立或删除外键约束。,5,借助 企业管理器实施数据库完整性,三,.,设置,check,约束:,1.选择要修改的表,2.从快捷菜单中选“设计表”命令,3.单击红圈中的键,4.,选择“,check”,标签,5.,建立或删除约束。,5,借助 企业管理器实施数据库完整性,6,使用,企业管理器建立数据库关系图,数据库关系图可以将数据库结构形象地表示出来。通过关系图还可以修改数据库结构的各项内容。,建立关系图的步骤如下:,1)展开自己的数据库节点,2)选关系图节点,右击选择新建数据库关系图,3)选择新建数据库关系图命令,系统启动创建数据库关系图向导,4)按照提示创建数据库关系图,一个大型数据库可以创建若干个数据库关系图(一个关系图中包含几个联系比较密切的表)。,6,使用,企业管理器建立数据库关系图,1,说明各类完整性约束的含义及作用。,2,举例说明使用,create table,命令建立各类完整性约束的方法。,3,说明使用企业管理器建立和修改各类完整性约束的方法和步骤。,4,说明创建数据库关系图的方法和步骤。,第,2-3,章 数据库完整性设计作业,
展开阅读全文