资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,Microsoft,SQL Server 2012,SQL Server 2012,数据库技术及应用,人民邮电出版社,*,教学单元,1.3,第,3,章 关系模型与数据库逻辑设计,SQL Server 2012,数据库技术及应用,案例,1-3,教务管理数据库逻辑设计,关系模型与数据库逻辑设计,学习导航,2,关系模型与数据库逻辑设计 知识框架,3,单元,1.3,关系模型与数据库逻辑设计,能力目标,能够,将数据库概念设计得到的概念模型转换为关系,模型,能够,对关系模型进行实体完整性、域完整性、参照完整性和用户定义完整性的,设计,能够,对关系模型进行规范化和,优化,培养,用英文单词或英文缩写描述和识别属性的,习惯,4,单元,1.3,关系模型与数据库逻辑设计,知识目标,关系,模型的构成与,特点,关系数据结构,关系,的集合运算(并、交、差和笛卡儿积,),关系,的专门运算(投影、选择和连接)与,应用,关系,数据实体完整性、域完整性、参照完整性和用户定义完整性的概念及,应用,概念,模型(联系方式,1,:,1,,,1,:,n,,,m,:,n,)到关系模型转换的,方法,关系,规范化的基本概念和关系规范化的基本方法。,数据库,逻辑设计有关英文,术语,素质目标,培养,严谨的工作态度和工作,作风,培养,较强的逻辑思维和抽象思维,能力,5,案例,1,教务管理系统,案例,1-3,教务管理数据库逻辑设计,工作任务,6,单元,1.3,关系模型与数据库逻辑设计,关系模型概述,一,E-R,概念模型到关系模型的转换,二,7,单元,1.3,关系模型与数据库逻辑设计,一、关系模型概述,关系模型的构成与特点,1,关系数据结构,2,关系数据操作,3,关系数据完整性,4,8,(一)关系模型的构成和特点,关系数据结构,关系,(,二维表,),集合,系统静态特征,DDL,实现数据定义,关系数据操作,关系对象操作集合,系统动态特征,DML,实现数据操作,关系数据完整性,实体完整性约束,域完整性约束,参照完整性约束,用户定义完整性约束,DDL/DCL,实现约束检查,三个组成要素,9,(一)关系模型的构成和特点,实体用关系表示,实体之间的联系用关系表示,关系的定义用关系表示,关系的运算对象是关系,关系的运算结果是关系,概念单一,只需告诉系统“做什么”,不需告诉系统“怎么做”,程序和数据各自独立,数据独立,关系是元组的集合,关系的运算是集合运算,关系的运算对象是集合,关系的运算结果是集合,集合运算,关系代数,集合论,数理逻辑,严格定义、运算、规范化,理论支持,10,一、关系模型概述,关系模型的构成与特点,1,关系数据结构,2,关系数据操作,3,关系数据完整性,4,11,(二)关系数据结构,关系(,Relation,)是满足一定条件的,二维表,,在关系模型中,无论概念世界中的实体还是实体之间的联系均由关系(二维表)来表示,并且满足以下特性:,关系(二维表)的每一元组(行)定义实体集的一个实例,每一列定义实体的一个属性。,每一列表示一个属性,且列名不能重复。,关系必须有一个主键(关键字),用来唯一标识一个元组(行),即实体集的一个实例。,列的每个值必须与对应属性的类型相同。,列是不可分割的最小数据项。,行、列的顺序无关紧要。,关系的定义,12,【例,3-1,】,学生实体学生关系,Student,13,SID,Sname,Sex,Birthdate,Specialty,2014216001,赵成刚,男,1995-05-05,计算机应用技术,2014216002,李敬,女,1995-01-06,计算机应用技术,2014216003,郭洪亮,男,1995-04-12,计算机应用技术,2014216004,吕珊珊,女,1996-10-11,计算机信息管理,2014216005,高全英,女,1996-07-05,计算机信息管理,2014216006,郝莎,女,1994-08-03,计算机信息管理,2014216007,张峰,男,1995-09-03,软件技术,2014216111,吴秋娟,女,1995-08-05,软件技术,关系的定义,(二)关系数据结构,【例,3-1,】,课程实体,课程关系,Course,CID,Cname,Credit,16020010,微机组装与维护,2.0,16020011,操作系统安装与使用,2.0,16020012,软件文档编辑与制作,3.5,16020013,面向过程程序设计,10.0,16020014,数据库开发与维护,6.5,16020015,面向对象程序设计,7.5,关系的定义,(二)关系数据结构,【例,3-1,】,学生选课学生选课关系,SC,15,SID,CID,Scores,2014216001,16020010,96.0,2014216001,16020011,80.0,2014216002,16020010,67.0,2014216003,16020012,78.0,2014216003,16020013,87.0,2014216003,16020014,85.0,关系的定义,(二)关系数据结构,16,关系模型的术语,与,概念模型的术语,相同或类似,是两个不同设计层面上的概念,注意之间的异同,关系的术语,(二)关系数据结构,关系,:每个二维表称为一个关系,,,每个关系有一个关系名,例如:学生关系,Student,关系型,:表的所有列标题,描述实体或联系的型,例如:,(SID,Sname,Sex,Birthdate,Specialty),关系值,:表的所有列对应的数据,描述实体或联系的值,例如:,2014216003,,郭洪亮,男,,1995,年,4,月,,计算机应用技术,2014216004,,吕珊珊,女,,1996,年,10,月,,计算机信息管理,元组,:表中的一行,描述一个实体或联系,例如:,201416004,,吕珊珊,女,,1996,年,10,月,计算机网络,17,关系的术语,(二)关系数据结构,属性,:表中各列的标题,每一个属性起一个名字,即属性名,例如:,SID,,,Sname,属性值,:表中各列对应的数据,描述实体或联系的特征,例如:,2014216003,,郭洪亮,域,:属性的取值范围,例如:属性,SID,的取值范围是,10,个长度的字符,属性,Birthdate,的取值是合法的日期,18,关系的术语,(二)关系数据结构,候选,键,(,Candidate Key,):能够唯一标识关系中每个元组的属性或属性组被称为候选键,也被称为候选关键字或候选码。候选键可以有多个。,例如:假设关系“,Student”,中没有同名的学生,则属性“,SID”,和“,Sname”,均是候选键。,主键,(,Primary Key,,,PK,):能够唯一标识关系中每个元组的属性或属性组被称为主键,也被称为关键字、主码或码。一个关系中的主键只能有一个,可以从多个候选键中选择。,例如:关系“,Student”,中的属性“,SID”,,关系“,Course”,中的“,CID”,,关系“,SC”,中的属性组“,SID+CID”,均是主键。,19,关系的术语,(二)关系数据结构,外键,(,Foreign Key,,,FK,):如果一个关系中的属性或属性组不是本关系的主键,而是另一个关系的主键,则被称为是本关系的外键,也被称为外关键字或外码。,例如:关系“,SC”,中的属性“,SID”,和“,CID”,均不是本关系的主键,而分别是关系“,Student”,和“,Course”,的主键,它们均是本关系“,SC”,的外键。关系,SC,中的属性,SID,和,CID,。,主属性,:能作为候选键的属性。,例如:关系“,Student”,中的属性“,SID”,和“,Sname”,均为主属性。,非主属性,:除了主属性的其他属性。,例如:,关系“,Student”,中的属性“,Sex”,、“,Birthdate”,和“,Specialty”,均为非主属性。关系“,SC,”中的属性“,Scores,”,关系“,Course,”中的属性“,Cname,”和“,Credit,”。,20,关系的术语,(二)关系数据结构,关系模式:关系名(属性,1,,属性,2,,,属性,n,),例如:,教务管理系统学生选课部分的三个关系模式,Student(,SID,Sname,Sex,Birthdate,Specialty)PK,:,SID,Course(,CID,Cname,Credit,),PK,:,CID,SC(,SID,CID,Scores)PK,:,SID+CID,FK,:,SID,和,CID,注:,PK,代表主键,,FK,代表外键,21,关系的术语,(二)关系数据结构,一、关系模型概述,关系模型的构成与特点,1,关系数据结构,2,关系数据操作,3,关系数据完整性,4,22,(三)关系数据操作,传统的集合运算,(,并、差、交、笛卡儿积,),1,专门的关系运算(,投影、选择、连接,),2,3,综合运算,23,1.,传统的集合运算,假设有两个关系,R,和,S,,具有相同的结构,,t,是元组变量,关系,R,为喜欢跳舞的学生,关系,S,为喜欢唱歌的学生。,表,1,喜欢跳舞的学生关系,R,Sname,Sex,李敬,女,郭洪亮,男,吕珊珊,女,高全英,女,郝莎,女,吴秋娟,女,表,2,喜欢唱歌的学生关系,S,Sname,Sex,赵成刚,男,吕珊珊,女,郝莎,女,张峰,男,吴秋娟,女,并(,Union,),公式:,RS=ttR t S,语义:,t,元组属于,R,或者属于,S,。,【例,3-2,】,喜欢,跳舞或喜欢唱歌的学生,,RS,的关系如表,3,所示。,表,3 RS,Sname,Sex,赵成刚,男,李敬,女,郭洪亮,男,吕珊珊,女,高全英,女,郝莎,女,张峰,男,吴秋娟,女,25,1.,传统的集合运算,差(,Difference,),公式:,R,S=ttR t S,语义:,t,元组属于,R,,但不属于,S,。,【,例,3-3,】,喜欢,跳舞但是不喜欢唱歌的学生,,R,S,的关系如表,4,所示,。,表,4 R-S,Sname,Sex,李敬,女,郭洪亮,男,高全英,女,26,1.,传统的集合运算,交(,Intersection,),公式:,RS=ttRtS,语义:,t,元组属于,R,并且属于,S,。,【,例,3-4】,既喜欢跳舞也喜欢唱歌的学生,,RS,的关系如表,5,所示。,表,5 RS,Sname,Sex,吕珊珊,女,郝莎,女,吴秋娟,女,27,1.,传统的集合运算,笛卡儿积(,Cartesian Product,),假设关系,R,为,m,列(,m,个属性),,k,1,行(,k,1,个元组);,关系,S,为,n,列(,n,个属性),,k,2,行(,k,2,个元组)。,公式:,RS=,t,R,t,S,t,R,R t,S,S,语义:笛卡儿积仍是一个关系,该关系的结构是,R,和,S,结构之连接,即前,m,个属性来自,R,,后,n,个属性来自,S,,该关系的值是由,R,中的每个元组连接,S,中的每个元组所构成元组的集合。,注意:新关系的属性个数等于,m,+,n,,元组个数等于,k,1,*,k,2,。,28,1.,传统的集合运算,【,例,3-5】,设关系,R,和,S,如表,6,和表,7,所示,,RS,如表,8,所示。绿色区域没意义。,表,6,学生关系,R,SID,Sname,201416001,赵成刚,2014216002,李敬,表,7,选课关系,S,SID,CID,Scores,2014216001,16020010,96.0,2014216001,16020011,80.0,2014216002,16020010,67.0,表,8,笛卡儿积,R,S,SID,Sname,SID,CID,Scores,2014216001,赵成刚,2014216001,16020010,96.0,2014216001,赵成刚,2014216001,16020011,80.0,2014216001,赵成刚,2014216002,16020010,67.0,2014216002,李敬,2014216001,16020010,96.0,2014216002,李敬,2014216001,16020011,80.0,2014216002,李敬,2014216002,16020010,67.0,1.,传统的集合运算,(三)关系数据操作,专门的关系运算,(投影、选择、连接),1,传统的集合运算(,并、交、差、笛卡儿积,),2,3,综合运算,30,2.,专门的关系运算,投影(,Projection,),设:,A,是要从,R,中投影出的属性子集,,t,是关系,R,中的一个元组。,公式:,A,(R)=t.,A,t R,语义:从关系,R,中按所需顺序选取若干个属性构成新关系。,注意:,新关系的元组数小于等于原关系的元组数,新关系的属性数不多于原关系中的属性数,31,表,9,关系,R,SID,Sname,Sex,Birthdate,Specialty,2014216001,赵成刚,男,1995-05-05,计算机应用,技术,2014216002,李敬,女,1995-01-06,计算机应用,技术,2014216003,郭洪亮,男,1995-04-12,计算机应用技术,2014216004,吕珊珊,女,1996-10-11,计算机信息管理,2014216005,高全英,女,1996-07-05,计算机信息管理,2014216006,郝莎,女,1994-08-03,计算机信息管理,2014216007,张峰,男,1995-09-03,软件技术,2014216111,吴秋娟,女,1995-08-05,软件技术,表,10,Sname,Sex,(R),Sname,Sex,赵成刚,男,李敬,女,郭洪亮,男,吕珊珊,女,高全英,女,郝莎,女,张峰,男,吴秋娟,女,【,例,3-6】,投影学生关系,R,(表,9,)的学生姓名和性别的情况,运算结果如表,10,所示。,32,2.,专门的关系运算,表,11 ,Sex=,男,(R),SID,Sname,Sex,Birthdate,Specialty,2014216001,赵成刚,男,1995-05-05,计算机应用,技术,2014216003,郭洪亮,男,1995-04-12,计算机应用技术,2014216007,张峰,男,1995-09-03,软件技术,选择(,Selection,),设:,t,是关系,R,中的一个元组,,F(t),为元组逻辑表达式。,公式,:,F(t),(R)=t,tR,F(t)=true,语义:从关系中找出满足条件的那些元组称为选择。,注意:运算结果的元组数不多于原关系中的元组数。,【,例,3-7】,在学生关系,R,中选择出男生,如表,11,所示。,2.,专门的关系运算,2.,专门的关系运算,连接(,Join,),设:,A,,,B,分别是关系,R,和,S,中的属性,,分别记作,R.A,和,S.B,。,公式:,语义:两个关系,R,和,S,按相应属性值的比较条件连接起来,生成一个新关系,也称为,连接。,等值连接,RS,选择(,为),按照两关系中对应属性值相等的条件所进行的连接,自然连接,等值连接去重复属性,记作:,R S,34,【,例,3-8】,设,学生、选课和课程表如表,12,、表,13,、表,14,所示,学生选课的情况为,S SC C,的结果,如表,15,所示。,表,12,S,SID,Sname,2014216001,赵成刚,2014216002,李敬,2014216003,郭洪亮,表,13,SC,SID,CID,2014216001,16020010,2014216001,16020011,2014216002,16020010,2014216003,16020012,2014216003,16020013,2014216003,16020014,表,14,C,CID,Cname,16020010,微机组装与维护,16020011,操作系统安装与使用,16020012,软件文档编辑与制作,16020013,面向过程程序设计,16020014,数据库开发与维护,16020015,面向对象程序设计,16020016,数字媒体采集与处理,16020017,静态网页设计与制作,16020018,Web,标准设计,2.,专门的关系运算,2.,专门的关系运算,自然连接结果如下:,表,15,S SC C,SID,Sname,CID,Cname,2014216001,赵成刚,16020010,微机组装与维护,2014216001,赵成刚,16020011,操作系统安装与使用,2014216002,李敬,16020010,微机组装与维护,2014216003,郭洪亮,16020012,软件文档编辑与制作,2014216003,郭洪亮,16020013,面向过程程序设计,2014216003,郭洪亮,16020014,数据库开发与维护,36,(三)关系数据操作,综合运算,1,传统的集合运算(,并、交、差、笛卡儿积,),2,3,专门的关系运算,(,投影、选择、连接,),37,3.,综合运算,【,例,3-9】,运算,出赵成刚的学号、,姓名、所选课程号和成绩,。,SID,Sname,CID,Scores,(,Sname=,赵成刚,(S SC),运算结果如下表所示,:,SID,Sname,CID,Scores,2014216001,赵成刚,16020010,96.0,2014216001,赵成刚,16020011,80.0,注意:按照选择 投影 连接的运算顺序可以减少运算时间,避免增加时间复杂性。,38,【,例,3-10】,运算,出学号为,2014216003,的学生的学号、姓名、所选课程名及成绩。,SID,Sname,Cname,Scores,(,SID=2014216003,(S SC C),运算结果如下表所示,:,SID,Sname,Cname,Scores,2014216003,郭洪亮,软件文档编辑与制作,78.0,2014216003,郭洪亮,面向过程程序设计,87.0,2014216003,郭洪亮,数据库开发与维护,85.0,注意:按照选择 投影 连接的运算顺序可以减少运算时间,避免增加时间复性。,39,3.,综合运算,【,例,3-11】,查询同时选修了,16020010,和,16020011,这两门课程的学生学号。,将,SC,看成是两个相同的关系,SC1,和,SC2,,分别对,SC1,和,SC2,选择课程号“,CID”,为,16020010,和,16020011,的元组(浅灰色对应),再分别对选择的结果集进行学号“,SID”,投影,将得到的集合(深灰色)进行自然连接。,选课关系,SC1,SID,Sname,2014216001,16020010,2014216001,16020011,2014216002,16020010,2014216003,16020012,2014216003,16020013,2014216003,16020014,40,选课关系,SC2,SID,Sname,2014216001,16020010,2014216001,16020011,2014216002,16020010,2014216003,16020012,2014216003,16020013,2014216003,16020014,3.,综合运算,【,例,3-11】,查询同时选修了,16020010,和,16020011,这两门课程的学生学号。,运算结果,SID,2014216001,41,运算公式:,(,SID,(,CID=16020010,(SC),(,SID,(,CID=16020011,(SC),运算公式,:,(,SID,(,CID=16020010,(SC),(,SID,(,CID=16020011,(SC),3.,综合运算,【,例,3-12】,查询没有选修任何课程的所有学生信息。,运算公式:,运算结果如下表所示,:,SID,Sname,Sex,Birthdate,Specialty,2014216004,吕珊珊,女,1996-10-11,计算机信息管理,2014216005,高全英,女,1996-07-05,计算机信息管理,2014216006,郝莎,女,1994-08-03,计算机信息管理,2014216007,张峰,男,1995-09-03,软件技术,2014216111,吴秋娟,女,1995-08-05,软件技术,42,S,(,SID,(S),SID,(SC),3.,综合运算,一、关系模型概述,关系模型的构成与特点,1,关系数据结构,2,关系数据操作,3,关系数据完整性,4,43,(四)关系数据完整性,实体完整性,规则:,PK,非空,检查:,DBMS,域完整性,规则:数据类型、默认值、是否允许空等,检查:,DBMS,用户定义完整性,规则:自定义约束、存储过程、函数等,检查:,DBMS,三个方面,+,用户自定义,参照完整性,规则:,FK,检查:,DBMS,44,1.,实体完整性约束(,Entity Integrity,),规则:,为关系设置一个主键,唯一标识,一个实体(元组)且不能取空值,(,NULL,),。,说明:,空值(,NULL,)不是,0,,也不是空格字符串,而是没有值。,检查:,用户只要定义一个关系的主键,在插入元组或更新数据时,,DBMS,将自动对该关系中的每个元组的主键进行检查,若发现主键值为空或已有相同主键值存在,将给出错误信息并要求用户纠正以保证数据的完整性。,例如:建立一个表,Course,(课程关系),,属性,CID,(课程号),为主键,唯一且不能为空值。,CREATE TABLE Course,(CID char(8),NOT NULL PRIMARY KEY,-,定义非空值主键,Cname nchar(30)NULL,Credit decimal(3,1)NULL,),45,2.,域完整性约束(,Domain,Integrity,),规则:,关系中列的值域必须满足某种特定数据类型或某种约束,如数据类型、格式、值域范围、默认值、是否允许空值等。,说明:,域完整性约束限制了某些属性中可能出现的错误值,即把属性的取值限制在一个有限的集合中。如,属性类型是整数,那么其值就不能是,99.9,或任何非整数。,检查:,用户只要定义了一个关系的各属性的域完整性约束,在输入或更新某属性值时,,DBMS,将自动对该属性值的合法值域进行检查。,例如:建立一个表“,Student,”(学生关系)。,CREATE TABLE Student,(SID,char(10),PRIMARY KEY,-10,个长度的字符类型,域完整性约束,Sname,char(8),NOT NULL,-8,个长度的字符类型和不允许空,域完整性约束,Sex,nchar(1),NULL,-1,个长度的双字节字符类型,域完整性约束,Birthdate,date,NULL,-,日期类型和允许空,域完整性约束,Specialty,varchar(26),NULL)-26,个长度的字符类型和允许空,域完整性约束,46,3.,参照完整性约束(,Reference Integrity,),规则,:,参照关系(子关系)的外键取值不能超出被参照关系(父关系)的主键取值,说明,:在参照和被参照关系中,参照关系中每个元组的外键取值或者为空值或者等于被参照关系中某个元组的主键取值。,例如,选课关系“,SC”,是参照关系(子关系),学生关系“,Student”,是被参照关系(父关系)。“,SC”,中外键学号“,SID”,的取值不能超出“,Student”,中各元组的主键学号“,SID”,的取值,即不能出现学号不确定的学生进行选课,从而保证了数据的一致性和有效性。,检查,:,用户只要给出一对参照关系和被参照关系,并给出参照关系中的外键,则,DBMS,会自动进行参照完整性规则的检查,当发现违反该规则的外键取值时将显示错误信息,要求用户予以纠正。,47,3.,参照完整性约束,对参照关系的操作约束,向参照关系(子关系)插入元组,对参照关系(子关系)进行更新数据,等价:先删除元组,再按照以上要求完成向参照关系插入元组的操作约束。,向参照关系,(,子,),插入,元组,,检查外,键,属性上的值是否在被参照关系,(,父,),的主,键,属性值中存在。若存在,可以执行插入操作,否则不能执行插入操作。,插入(子),有其父才能有其子!,48,3.,参照完整性约束,对被参照关系的操作约束,删除,或更新(父),中的,元组,检查其主,键,是否被参照关系,(,子,),的外,键,引用,?,若没被引用:删除,或更新,若被引用:,拒绝删除,或更新,空值删除,或更新,(,参照关系(子)中的,外,键,改为空值),级联删除,或更新,(参照关系,(子),中的相应,元组,一起删除,或更新,),删父要看有没有子!,49,例如:建立一个学生选课表,“SC”,。,SC,是参照关系,,Student,和,Course,是被参照关系。,SC,中外键“,SID,”的取值不能超出,Student,中主键,“SID”,的取值,,SC,中外键,“CID”,的值,不能超出,Course,中主键,“CID”,的值。,CREATE TABLE SC,(SID char(10)NOT NULL,CID char(8)NOT NULL,Scores decimal(4,1)NULL,PRIMARY KEY(SID,CID),FOREIGN KEY(SID)REFERENCES Student(SID),-,定义外键,FOREIGN KEY(CID)REFERENCES Course(CID),-,定义外键,50,3.,参照完整性约束(,Reference Integrity,),3.,参照完整性约束,检查,51,关系,Course,(课程情况表),CID,Cname,16020010,微机组装与维护,16020011,操作系统安装与使用,16020012,软件文档编辑与制作,关系,SC,(学生选课表),SID,CID,(外键),Scores,2014216001,16020010,96.0,2014216001,16020011,80.0,2014216002,16020010,67.0,2014216003,16020010,78.0,2014216003,16020011,87.0,2014216003,16020012,85.0,16020010,微机组装与维护,空值删除:,删除被参照关系中的行(,微机组装与维护,),检查其主,键,是否被参照关系的外,键,引用,若被引用:外,键,(,CID,)改为空值,注意,:如果,SID+CID,为关系的,SC,的主键,则,CID,是不能为空的。,NULL,NULL,3.,参照完整性约束,检查,52,关系,Course,(课程情况表),CID,Cname,16020010,微机组装与维护,16020011,操作系统安装与使用,16020012,软件文档编辑与制作,关系,SC,(学生选课表),SID,CID,(外键),Scores,2014216001,16020010,96.0,2014216001,16020011,80.0,2014216002,16020010,67.0,2014216003,16020010,78.0,2014216003,16020011,87.0,2014216003,16020012,85.0,16020010,微机组装与维护,级联删除:,删除被参照关系中的行(,微机组装与维护,),检查其主,键,是否被参照关系的外,键,引用,若被引用:参照关系中的相应行一起删除,关系,SC,(学生选课表),SID,CID,(外键),Scores,2014216001,16020010,96.0,2014216001,16020011,80.0,2014216002,16020010,67.0,2014216003,16020010,78.0,2014216003,16020011,87.0,2014216003,16020012,85.0,4.,用户定义完整性约束,规则:,属性取值满足某种条件或函数要求,包括对每个关系的取值限制(或称约束)的具体定义。,检查:,用户定义完整性约束的规则同其他完整性规则一样被记录在,DBMS,的数据字典中。在对数据库操作时,,DBMS,会自动根据所定义的完整性规则进行操作监控,拒绝不符合要求的数据进入数据库。,例如:建立一个学生情况表(,Student,),属性性别,Sex,的取值必须满足为,男,或,女,CREATE TABLE Student,(SID char(10)PRIMARY KEY,Sname char(8)NOT NULL,Sex nchar(1)NULL,Birthday date NULL,Specialty varchar(26)NULL,CONSTRAINT CK_Student_1 CHECK(Sex=,男,OR Sex=,女,),-CHECK,检查,用户定义完整性约束,),说明:,DBMS,通常提供一些工具来帮助用户自定义数据完整性,SQL Server 2012,中主要提供:用户自定义约束(,CONSTRAINT,)、类型(,TYPE,)、存储过程(,PROCEDURE,)、触发器(,TRIGGER,)和函数(,FUNCTION,)等。,53,关系模型概述,一,E-R,概念模型到关系模型的转换,二,54,单元,1.3,关系模型与数据库逻辑设计,二、,E-R,概念模型到关系模型的转换,55,实体(,E,)转换为关系模式,1,2,联系(,R,)转换为关系模式,信息世界 机器世界,(概念模型:,E-R,模型)(逻辑模型:关系模型),56,二、,E-R,概念模型到关系模型的转换,工作任务,57,案例,1-3,教务管理数据库逻辑设计,概念模型 关系模型,1.,将概念设计中所设计的,E,-,R,模型转换为关系模型,2.,根据需求分析的要求进行完整性设计,二、,E-R,概念模型到关系模型的转换,(一)实体(,E,)转换为关系模式的方法,一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的主键就是关系的主键。,例如:学生实体转换为关系模式,实体,学生(,学号,,姓名,性别,出生日期,专业),关系,Student(,SID,Sname,Sex,Birthdate,Specialty),58,(一)实体(,E,)转换为关系模式的方法,例:将教务管理数据库的实体“课程”、“教材”,、,“学生”、“班级”和“教师”转换为关系。,实体(,E,):课程,(,课程号,课程名,学分,),PK,:课程号,关系模式:,Course(CID,Cname,Credit,)PK,:,CID,实体(,E,):教材,(,教材号,教材名,出版社,价格,)PK,:教材号,关系模式:,Textbook(TID,Tname,Publisher,Price,),PK,:,TID,实体(,E,):学生,(,学号,姓名,性别,出生日期,专业,)PK,:学号,关系模式:,Student(SID,Sname,Sex,Birthdate,Specialty,)PK,:,SID,实体(,E,):班级,(,班级号,班级名称,年级,教室,人数,),PK,:班级号,关系模式:,Class(ClassID,Classname,Grade,Classroom,Number,),PK,:,ClassID,实体(,E,):教师,(,职工号,姓名,性别,出生日期,职称,)PK,:职工号,关系模式:,Teacher(EID,Ename,Sex,Birthdate,Title,)PK,:,EID,59,将联系,“,选用,”,并入实体,“,教材,”,端的关系,加入实体,“,课程,”,端的主键,“,课程号,”,和联系本身的属性,“,数量,”,。,或者,将联系,“,选用,”,并入实体,“,课程,”,端的关系,加入实体,“,教材,”,端的主键,“,教材号,”,和联系本身的属性,“,数量,”,。,(二)联系(,R,)转换为关系模式的方法,一对一(,1,1,),将联系与,任意端,实体所对应的关系模式合并,加入另一端实体的主键和联系的属性。,例如:实体“课程”与“教材”之间的联系“选用”是,11,的。,实体“教材”,Textbook(,TID,Tname,Publisher,Price,CID,Quantity,)PK,:,TID FK,:,CID,实体“课程”,Course(,CID,Cname,Credit)PK,:,CID,或,实体“教材”,Textbook(,TID,Tname,Publisher,Price)PK,:,TID,实体“课程”,Course(,CID,Cname,Credit,TID,Quantity,)PK,:,CIDFK,:,TID,60,将联系,“,属于,”,与,n,端实体,“,学生,”,关系合并,加入,1,端实体,“,班级,”,的主键,“,班级号,”,和联系本身的属性,“,职责,”,。,(二)联系(,R,)转换为关系模式的方法,一对多(,1,n,),将联系与,n,端实体所对应的关系模式合并,加入,1,端实体的主键和联系的属性,例如:实体“班级”和实体“学生”的联系“属于”是,1,n,的。,E-R,模型(白底部分)。,实体“学生”,Student(,SID,Sname,Sex,Birthdate,Specialty,ClassID,Duty,),PK,:,SIDFK,:,ClassID,实体“班级”,Class(,ClassID,Classname,Grade,Classroom,Number),PK,:,ClassID,61,(二)联系(,R,)转换为关系模式的方法,多对多(,m,n,),将联系转换成一个关系。该联系相连的各实体的主键和联系本身的属性转换为关系的属性。,例如:实体“学生”和实体“课程”的联系是多对多的,,E-R,模型白底部分。,62,联系,“,选课,”,转换成一个关系,“,SC,”,,将实体,“,学生,”,的主键,“,学号,”,和实体,“,课程,”,的主键,“,课程号,”,迁移至新关系,“,SC,”,并加上联系本身的属性,“,成绩,”,。,实体“学生”,Student(SID,Sname,Sex,Birthdate,Specialty,)PK,:,SID,联系“选课”,SC(,SID,CID,Scores)PK,:,SID+CIDFK,:,SID,,,CID,实体“课程”,Course(CID,Cname,Credit)PK,:,CID,(二)联系(,R,)转换为关系模式的方法,多对多(,m,n,),将联系转换成一个关系。该联系相连的各实体的主键和联系本身的属性转换为关系的属性。,例如:实体“教师”和实体“课程”的联系是多对多的,,E-R,模型白底部分。,63,联系,“,授课,”,转换成一个关系,“,TC,”,,将实体,“,教师,”,的主键,“,职工号,”,和实体,“,课程,”,的主键,“,课程号,”,迁移至新关系,“,TC,”,并加上联系本身的属性,“,评价,”,。,实体“教师”,Teacher,(,EID,Ename,Sex,Birthdate,Title,),PK,:,EID,联系“授课”,TC,(,EID,CID,Evaluation,),PK,:,EID+CID FK,:,E,ID,CID,实体“课程”,Course,(,CID,Cname,Credit,),PK,:,CID,教务管理数据库的关系模型,实体和联系转换为关系,64,教材:,Textbook(TID,Tname,Publisher,Price,CID,Quantity)PK,:,TID FK,:,CID,课程:,Course(CID,Cname,Credit)PK,:,CID,学生:,Student(SID,Sname,S
展开阅读全文