资源简介 (共68张PPT)教学单元1.3第3章 关系模型与数据库逻辑设计案例1-3 教务管理数据库逻辑设计关系模型与数据库逻辑设计学习导航关系模型与数据库逻辑设计 知识框架单元1.3关系模型与数据库逻辑设计能力目标能够将数据库概念设计得到的概念模型转换为关系模型能够对关系模型进行实体完整性、域完整性、参照完整性和用户定义完整性的约束设计能够对关系模型进行规范化和优化培养用英文单词或英文缩写描述和识别属性的习惯单元1.3关系模型与数据库逻辑设计知识目标关系模型的构成与特点关系数据结构关系的集合运算(并、交、差和笛卡儿积)关系的专门运算(投影、选择和连接)与应用关系数据实体完整性、域完整性、参照完整性和用户定义完整性约束的概念及应用概念模型(联系方式1:1,1:n,m:n)到关系模型转换的方法关系规范化的基本概念和关系规范化的基本方法。数据库逻辑设计有关英文术语素质目标培养严谨的工作态度和工作作风培养较强的逻辑思维和抽象思维能力案例1教务管理系统案例1-3教务管理数据库逻辑设计工作任务单元1.3关系模型与数据库逻辑设计关系模型概述一E-R概念模型到关系模型的转换二单元1.3关系模型与数据库逻辑设计一、关系模型概述关系模型是用二维表结构表示实体和实体间联系的逻辑模型,用于在数据库的逻辑设计中数据化概念模型。关系模型建立在严格的关系代数和集合论的基础上。拥有多种关系型数据库管理系统(Relational DBMS,RDBMS)。由数据结构、数据操作和数据完整性约束3个部分组成。关系模型(Relational Model)一、关系模型概述关系数据结构关系(二维表)集合系统静态特征DDL实现数据定义关系数据操作关系对象操作集合系统动态特征DML实现数据操作关系完整性约束实体完整性约束域完整性约束参照完整性约束用户定义完整性约束DDL/DCL实现约束检查三个组成要素一、关系模型概述关系数据结构1关系数据操作2关系完整性约束3关系模型的特点4(一)关系数据结构关系(Relation)是许多关系(二维表)的集合,而关系是许多个元组(行)的集合。在关系模型中,概念世界中的实体及实体之间的联系均用关系来表示。并且满足以下特性:关系中的每一元组定义实体集的一个实例关系中的每一列定义实体的一个属性,且列名不能重复。关系必须有一个主键,用来唯一标识一个元组(行),即实体集的一个实例。列的每个值的类型必须与对应属性的类型相同。列是不可分割的最小数据项。行与行之间和列与列之间的顺序无关紧要。关系的定义【例3-1】实体“学生”→关系“Student”SIDSnameSexBirthdateSpecialty2020216001赵成刚男2001-05-05计算机应用技术2020216002李敬女2001-01-06计算机应用技术2020216003郭洪亮男2001-04-12计算机应用技术2020216004吕珊珊女2002-10-11计算机信息管理2020216005高全英女2002-07-05计算机信息管理2020216006郝莎女2000-08-03计算机信息管理2020216007张峰男2001-09-03软件技术2020216111吴秋娟女2001-08-05软件技术关系的定义(一)关系数据结构【例3-1】实体“课程”→关系“Course”CID Cname Credit16020010 微机组装与维护 2.016020011 操作系统安装与使用 2.016020012 软件文档编辑与制作 3.516020013 面向过程程序设计 10.016020014 数据库开发与维护 6.516020015 面向对象程序设计 7.5关系的定义(一)关系数据结构【例3-1】联系“选课”→关系“SC”SIDCIDScores20202160011602001096.020202160011602001180.020202160021602001067.020202160031602001278.020202160031602001387.020202160031602001485.0关系的定义(一)关系数据结构关系模型的术语与概念模型的术语相同或类似是两个不同设计层面上的概念注意之间的异同关系的术语(一)关系数据结构关系:每个二维表称为一个关系,每个关系有一个关系名例如:学生关系Student关系型:二维表的所有列标题,描述实体或联系的型例如:(SID,Sname,Sex,Birthdate,Specialty)关系值:二维表的所有列对应的数据,描述实体或联系的值例如:2020216003,郭洪亮,男,2001-04-12,计算机应用技术2020216004,吕珊珊,女,2002-10-11,计算机信息管理元组:表中的一行,描述一个实体或联系例如:2020216004,吕珊珊,女,2002-10-11,计算机信息管理关系的术语(一)关系数据结构属性:表中各列的标题,每一个属性起一个名字,即属性名例如:SID,Sname属性值:表中各列对应的数据,描述实体或联系的特征例如:2020216003,郭洪亮域:属性的取值范围例如:属性“SID”的取值范围是10个长度的字符属性“Birthdate”的取值是合法的日期关系的术语(一)关系数据结构候选键(Candidate Key):能够唯一标识关系中每个元组的属性或属性组被称为候选键,也被称为候选关键字或候选码。候选键可以有多个。例如:假设关系“Student”中没有同名的学生,则属性“SID”和“Sname”均是候选键。主键(Primary Key,PK) :能够唯一标识关系中每个元组的属性或属性组被称为主键,也被称为关键字、主码或码。一个关系中的主键只能有一个,可以从多个候选键中选择。例如:关系“Student”中的属性“SID”,关系“Course”中的“CID”,关系“SC”中的属性组“SID+CID”均是主键。关系的术语(一)关系数据结构外键(Foreign Key,FK):如果一个关系中的属性或属性组不是本关系的主键,而是另一个关系的主键,则被称为是本关系的外键,也被称为外关键字或外码。例如:关系“SC”中的属性“SID”和“CID”均不是本关系的主键,而分别是关系“Student”和“Course”的主键,它们均是本关系“SC”的外键。关系SC中的属性SID和CID。主属性:能作为候选键的属性。例如:关系“Student”中的属性“SID”和“Sname”均为主属性。非主属性:除了主属性的其他属性。例如:关系“Student”中的属性“Sex”“Birthdate”“Specialty”均为非主属性。关系“SC”中的属性“Scores”,关系“Course”中的属性“Cname”和“Credit”。关系的术语(一)关系数据结构关系模式:关系名(属性1,属性2,…属性n)例如:教务管理系统学生选课部分的三个关系模式Student(SID,Sname,Sex,Birthdate,Specialty) PK:SIDCourse(CID, Cname,Credit)PK:CIDSC(SID, CID,Scores) PK:SID+CIDFK:SID和CID注:PK代表主键,FK代表外键关系的术语(一)关系数据结构一、关系模型概述关系数据结构1关系数据操作2关系完整性约束3关系模型的特点4(二)关系数据操作传统的集合运算(并、差、交、笛卡儿积)1专门的关系运算(投影、选择、连接)23综合运算1.传统的集合运算假设有两个关系R和S,具有相同的结构,t是元组变量,关系R为喜欢跳舞的学生,关系S为喜欢唱歌的学生。表1 喜欢跳舞的学生关系R Sname Sex李敬 女郭洪亮 男吕珊珊 女高全英 女郝莎 女吴秋娟 女表2 喜欢唱歌的学生关系S Sname Sex赵成刚 男吕珊珊 女郝莎 女张峰 男吴秋娟 女并(Union)公式:R∪S={t│t∈R∨ t ∈S }语义:t元组属于R或者属于S。【例3-2】喜欢跳舞或喜欢唱歌的学生,R∪S的关系如表3所示。表3 R∪SSnameSex赵成刚男李敬女郭洪亮男吕珊珊女高全英女郝莎女张峰男吴秋娟女1.传统的集合运算差(Difference)公式:R-S={t│t∈R∧ t S }语义:t元组属于R,但不属于S。【例3-3】喜欢跳舞但是不喜欢唱歌的学生,R-S的关系如表4所示。表4 R-SSnameSex李敬女郭洪亮男高全英女1.传统的集合运算交(Intersection)公式:R∩S={t│t∈R∧t∈S }语义:t元组属于R并且属于S。【例3-4】既喜欢跳舞也喜欢唱歌的学生,R∩S的关系如表5所示。表5 R∩SSnameSex吕珊珊女郝莎女吴秋娟女1.传统的集合运算笛卡儿积(Cartesian Product)假设关系R为m列(m个属性),k1行(k1个元组);关系S为n列(n个属性),k2行(k2个元组)。公式:R×S={tRtS│tR∈R ∧ tS∈S}语义:笛卡儿积仍是一个关系,该关系的结构是R和S结构之连接,即前m个属性来自R,后n个属性来自S,该关系的值是由R中的每个元组连接S中的每个元组所构成元组的集合。注意:新关系的属性个数等于m+n,元组个数等于k1*k2。1.传统的集合运算【例3-5】设关系R和S如表6和表7所示,R×S如表8所示。绿色区域没意义。表6 学生关系R SID Sname2020216001 赵成刚2020216002 李敬表7 选课关系SSID CID Scores2020216001 16020010 96.02020216001 16020011 80.02020216002 16020010 67.0表8 笛卡儿积 R×SSID Sname SID CID Scores2020216001 赵成刚 2020216001 16020010 96.02020216001 赵成刚 2020216001 16020011 80.02020216001 赵成刚 2020216002 16020010 67.02020216002 李敬 2020216001 16020010 96.02020216002 李敬 2020216001 16020011 80.02020216002 李敬 2020216002 16020010 67.01.传统的集合运算(二)关系数据操作专门的关系运算(投影、选择、连接)1传统的集合运算(并、交、差、笛卡儿积)23综合运算2.专门的关系运算投影(Projection)设:A是要从R中投影出的属性子集,t是关系R中的一个元组。公式:∏A(R)={t.A│t∈R }语义:从关系R中按所需顺序选取若干个属性构成新关系。注意:新关系的元组数小于等于原关系的元组数新关系的属性数不多于原关系中的属性数表9关系RSIDSnameSexBirthdateSpecialty2020216001赵成刚男2001-05-05计算机应用技术2020216002李敬女2001-01-06计算机应用技术2020216003郭洪亮男2001-04-12计算机应用技术2020216004吕珊珊女2002-10-11计算机信息管理2020216005高全英女2002-07-05计算机信息管理2020216006郝莎女2000-08-03计算机信息管理2020216007张峰男2001-09-03软件技术2020216111吴秋娟女2001-08-05软件技术表10∏Sname,Sex(R)SnameSex赵成刚男李敬女郭洪亮男吕珊珊女高全英女郝莎女张峰男吴秋娟女【例3-6】投影学生关系R(表9)的学生姓名和性别的情况,运算结果如表10所示。2.专门的关系运算表11 σSex=’男’(R) SID Sname Sex Birthdate Specialty2020216001 赵成刚 男 2001-05-05 计算机应用技术2020216003 郭洪亮 男 2001-04-12 计算机应用技术2020216007 张峰 男 2001-09-03 软件技术选择(Selection)设:t是关系R中的一个元组,F(t)为元组逻辑表达式。公式:σF(t)(R)={ t│t∈R ∧F(t)=’true’}语义:从关系中找出满足条件的那些元组称为选择。注意:运算结果的元组数不多于原关系中的元组数。【例3-7】在学生关系R中选择出男生,如表11所示。2.专门的关系运算2.专门的关系运算连接(Join)设:A,B分别是关系R和S中的属性,分别记作R.A和S.B。公式:语义:两个关系R和S按相应属性值的比较条件连接起来,生成一个新关系,也称为θ连接。等值连接R×S+选择(θ为=)按照两关系中对应属性值相等的条件所进行的连接自然连接等值连接+去重复属性记作:R S【例3-8】设学生、选课和课程表如表12、表13、表14所示,学生选课的情况为S SC C的结果,如表15所示。表12 S SID Sname2020216001 赵成刚2020216002 李敬2020216003 郭洪亮表13 SC SID CID2020216001 160200102020216001 160200112020216002 160200102020216003 160200122020216003 160200132020216003 16020014表14 C CID Cname16020010 微机组装与维护16020011 操作系统安装与使用16020012 软件文档编辑与制作16020013 面向过程程序设计16020014 数据库开发与维护16020015 面向对象程序设计16020016 数字媒体采集与处理16020017 静态网页设计与制作16020018 Web标准设计2.专门的关系运算2.专门的关系运算自然连接结果如下:表15S SC CSIDSnameCIDCname2020216001赵成刚16020010微机组装与维护2020216001赵成刚16020011操作系统安装与使用2020216002李敬16020010微机组装与维护2020216003郭洪亮16020012软件文档编辑与制作2020216003郭洪亮16020013面向过程程序设计2020216003郭洪亮16020014数据库开发与维护(二)关系数据操作综合运算1传统的集合运算(并、交、差、笛卡儿积)23专门的关系运算(投影、选择、连接)3.综合运算【例3-9】运算出赵成刚的学号、姓名、所选课程号和成绩。∏SID,Sname,CID,Scores(σSname=’赵成刚’(S SC))运算结果如下表所示:SIDSnameCIDScores2020216001赵成刚1602001096.02020216001赵成刚1602001180.0注意:按照选择 → 投影 → 连接的运算顺序可以减少运算时间,避免增加时间复杂性。【例3-10】运算出学号为2020216003的学生的学号、姓名、所选课程名及成绩。∏SID,Sname,Cname,Scores(σSID =’2014216003’(S SC C))运算结果如下表所示:SIDSnameCnameScores2020216003郭洪亮软件文档编辑与制作78.02020216003郭洪亮面向过程程序设计87.02020216003郭洪亮数据库开发与维护85.0注意:按照选择 → 投影 → 连接的运算顺序可以减少运算时间,避免增加时间复性。3.综合运算【例3-11】查询同时选修了16020010和16020011这两门课程的学生学号。将SC看成是两个相同的关系SC1和SC2,分别对SC1和SC2选择课程号“CID”为16020010和16020011的元组(浅灰色对应),再分别对选择的结果集进行学号“SID”投影,将得到的集合(深灰色)进行自然连接。选课关系SC1SIDSname202021600116020010202021600116020011202021600216020010202021600316020012202021600316020013202021600316020014选课关系SC2SIDSname2020216001160200102020216001160200112020216002160200102020216003160200122020216003160200132020216003160200143.综合运算【例3-11】查询同时选修了16020010和16020011这两门课程的学生学号。运算结果SID2020216001运算公式:( SID( CID = '16020010'(SC)))( SID( CID = '16020011'(SC)))运算公式:( SID( CID = '16020010'(SC)))( SID( CID = '16020011(SC)))3.综合运算【例3-12】查询没有选修任何课程的所有学生信息。运算公式:运算结果如下表所示:SIDSnameSexBirthdateSpecialty2020216004吕珊珊女2002-10-11计算机信息管理2020216005高全英女2002-07-05计算机信息管理2020216006郝莎女2000-08-03计算机信息管理2020216007张峰男2001-09-03软件技术2020216111吴秋娟女2001-08-05软件技术S( SID(S) SID(SC))3.综合运算一、关系模型概述关系数据结构1关系数据操作2关系完整性约束3关系模型的特点4(三)关系数据完整性约束实体完整性约束规则:PK非空检查:DBMS域完整性约束规则:数据类型、默认值、是否允许空等检查:DBMS用户定义完整性约束规则:自定义约束、存储过程、函数等检查:DBMS三个方面+用户自定义参照完整性约束规则:FK检查:DBMS1.实体完整性约束 (Entity Integrity)规则:为关系设置一个主键唯一标识一个实体(元组)且不能取空值(NULL)。说明:空值(NULL)不是0,也不是空格字符串,而是没有值。检查:用户只要定义一个关系的主键,在插入元组或更新数据时,DBMS将自动对该关系中的每个元组的主键进行检查,若发现主键值为空或已有相同主键值存在,将给出错误信息并要求用户纠正以保证数据的完整性。【例3-13】建立一个表Course(课程关系),属性CID(课程号)为主键,唯一且不能为空值。CREATE TABLE Course( CID char(8)NOT NULL PRIMARY KEY, --定义非空值主键,实体完整性约束Cname nchar(30) NULL,Credit decimal(3,1) NULL)2.域完整性约束 (DomainIntegrity)规则:关系中列的值域必须满足某种特定数据类型或某种约束,如数据类型、格式、值域范围、默认值、是否允许空值等。说明:域完整性约束限制了某些属性中可能出现的错误值,即把属性的取值限制在一个有限的集合中。如,属性类型是整数,那么其值就不能是99.9或任何非整数。检查:用户只要定义了一个关系的各属性的域完整性约束,在输入或更新某属性值时,DBMS将自动对该属性值的合法值域进行检查。【例3-14】建立一个表“Student”(学生关系)。CREATE TABLE Student(SIDchar(10)PRIMARY KEY, --10个长度的字符类型,域完整性约束Snamechar(8)NOT NULL, --8个长度的字符类型和不允许空,域完整性约束Sexnchar(1)NULL, --1个长度的双字节字符类型,域完整性约束BirthdatedateNULL, --日期类型和允许空,域完整性约束Specialtyvarchar(26)NULL) --26个长度的字符类型和允许空,域完整性约束3.参照完整性约束(Reference Integrity)规则:参照关系(子关系)的外键取值不能超出被参照关系(父关系)的主键取值说明:在参照和被参照关系中,参照关系中每个元组的外键取值或者为空值或者等于被参照关系中某个元组的主键取值。例如,选课关系“SC”是参照关系(子关系),学生关系“Student”是被参照关系(父关系)。“SC”中外键学号“SID”的取值不能超出“Student”中各元组的主键学号“SID”的取值,即不能出现学号不确定的学生进行选课,从而保证了数据的一致性和有效性。检查:用户只要给出一对参照关系和被参照关系,并给出参照关系中的外键,则DBMS会自动进行参照完整性规则的检查,当发现违反该规则的外键取值时将显示错误信息,要求用户予以纠正。3.参照完整性约束—对参照关系的操作约束向参照关系(子关系)插入元组对参照关系(子关系)进行更新数据等价:先删除元组,再按照以上要求完成向参照关系插入元组的操作约束。向参照关系(子)插入元组,检查外键属性上的值是否在被参照关系(父)的主键属性值中存在。若存在,可以执行插入操作,否则不能执行插入操作。插入(子)有其父才能有其子!3.参照完整性约束—对被参照关系的操作约束删除或更新(父)中的元组检查其主键是否被参照关系(子)的外键引用?若没被引用:删除或更新若被引用:①拒绝删除或更新②空值删除或更新(参照关系(子)中的外键改为空值)③级联删除或更新(参照关系(子)中的相应元组一起删除或更新)删父要看有没有子!【例3-15】建立一个学生选课表“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) ),--定义外键3.参照完整性约束(Reference Integrity)3.参照完整性约束—检查关系Course(课程情况表)CIDCname16020010微机组装与维护16020011操作系统安装与使用16020012软件文档编辑与制作关系SC(学生选课表)SIDCID(外键)Scores20202160011602001096.020202160011602001180.020202160021602001067.020202160031602001278.020202160031602001387.020202160031602001485.016020010微机组装与维护空值删除:删除被参照关系中的行(微机组装与维护),检查其主键是否被参照关系的外键引用,若被引用:外键(CID)改为空值注意:如果SID+CID为关系的SC的主键,则CID是不能为空的。NULLNULL3.参照完整性约束—检查关系Course(课程情况表)CIDCname16020010微机组装与维护16020011操作系统安装与使用16020012软件文档编辑与制作关系SC(学生选课表)SIDCID(外键)Scores20202160011602001096.020202160011602001180.020202160021602001067.020202160031602001278.020202160031602001387.020202160031602001485.016020010微机组装与维护级联删除:删除被参照关系中的行(微机组装与维护),检查其主键是否被参照关系的外键引用,若被引用:参照关系中的相应行一起删除关系SC(学生选课表)SIDCID(外键)Scores20202160011602001096.020202160011602001180.020202160021602001067.020202160031602001278.020202160031602001387.020202160031602001485.04.用户定义完整性约束规则:属性取值满足某种条件或函数要求,包括对每个关系的取值限制(或称约束)的具体定义。检查:用户定义完整性约束的规则同其他完整性规则一样被记录在DBMS的数据字典中。在对数据库操作时,DBMS会自动根据所定义的完整性规则进行操作监控,拒绝不符合要求的数据进入数据库。【例3-16】建立一个学生情况表(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)等。一、关系模型概述关系数据结构1关系数据操作2关系完整性约束3关系模型的特点4(四)关系模型的特点实体用关系表示实体之间的联系用关系表示关系的定义用关系表示关系的运算对象是关系关系的运算结果是关系概念单一只需告诉系统“做什么”不需告诉系统“怎么做”程序和数据各自独立数据独立关系是元组的集合关系的运算是集合运算关系的运算对象是集合关系的运算结果是集合集合运算关系代数集合论数理逻辑严格定义、运算、规范化理论支持关系模型概述一E-R概念模型到关系模型的转换二单元1.3关系模型与数据库逻辑设计二、E-R概念模型到关系模型的转换实体(E)转换为关系12联系(R)转换为关系信息世界 机器世界(概念模型:E-R模型) (逻辑模型:关系模型)二、E-R概念模型到关系模型的转换工作任务案例1-3教务管理数据库逻辑设计概念模型 关系模型1.将概念设计中所设计的E-R模型转换为关系模型2.根据需求分析的要求进行完整性设计二、E-R概念模型到关系模型的转换(一)实体(E)转换为关系的方法一个实体转换为一个关系,实体的属性就是关系的属性,实体的主键就是关系的主键。例如:学生实体转换为关系实体学生(学号,姓名,性别,出生日期,专业)关系Student(SID,Sname,Sex,Birthdate,Specialty)(一)实体(E)转换为关系的方法【例3-17】将教务管理数据库的实体 “课程” “教材”“学生”“班级”和“教师”转换为关系。实体(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将联系“选用”并入实体“教材”端的关系,加入实体“课程”端的主键“课程号”和联系本身的属性“数量”。或者,将联系“选用”并入实体“课程”端的关系,加入实体“教材”端的主键“教材号”和联系本身的属性“数量”。(二)联系(R)转换为关系的方法一对一(1∶1)将联系与任意端实体所对应的关系模式合并,加入另一端实体的主键和联系的属性。【例3-18】实体“课程”与“教材”之间的联系“选用”是1∶1的。实体“教材”→Textbook(TID,Tname,Publisher,Price,CID,Quantity)PK:TIDFK:CID实体“课程”→Course(CID,Cname,Credit)PK:CID或实体“教材”→Textbook(TID,Tname,Publisher,Price)PK:TID实体“课程”→Course(CID,Cname,Credit,TID,Quantity)PK:CIDFK:TID将联系“属于”与n端实体“学生”关系合并,加入1端实体“班级”的主键“班级号”和联系本身的属性“职责”。(二)联系(R)转换为关系的方法一对多(1∶n)将联系与n端实体所对应的关系模式合并,加入1端实体的主键和联系的属性【例3-19】实体“班级”和实体“学生”的联系“属于”是1∶n的。E-R模型(白底部分)。实体“学生”→Student(SID,Sname,Sex,Birthdate,Specialty,ClassID,Duty)PK:SIDFK:ClassID实体“班级”→Class(ClassID,Classname,Grade,Classroom,Number)PK:ClassID(二)联系(R)转换为关系的方法多对多(m∶n)将联系转换成一个关系。该联系相连的各实体的主键和联系本身的属性转换为关系的属性。【例3-20】实体“学生”和实体“课程”的联系是多对多的,E-R模型白底部分。联系“选课”转换成一个关系“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模型白底部分。联系“授课”转换成一个关系“TC”,将实体“教师”的主键“职工号”和实体“课程”的主键“课程号”迁移至新关系“TC”并加上联系本身的属性“评价”。实体“教师”→Teacher(EID,Ename,Sex,Birthdate,Title)PK:EID联系“授课”→TC(EID,CID, Evaluation)PK:EID+CIDFK:EID,CID实体“课程”→Course(CID,Cname,Credit)PK:CID教务管理数据库的关系模型实体和联系转换为关系教材:Textbook(TID,Tname,Publisher,Price,CID,Quantity)PK:TIDFK:CID课程:Course(CID,Cname,Credit)PK:CID学生:Student(SID,Sname,Sex,Birthdate,Specialty,ClassID,Duty)PK:SID FK:ClassID班级:Class(ClassID,Classname,Grade,Classroom,Number)PK:ClassID教师:Teacher(EID,Ename,Sex,Birthdate,Title)PK:EID学生选课:SC(SID,CID,Scores)PK:SID+CIDFK:SID,CID教师授课:TC(EID,CID,Evaluation)PK:EID+CIDFK:EID,CID关系模型和数据库逻辑设计小结一、关系模型1.数据结构基本定义:二维表基本术语:关系、元组、属性、候选键、主键、外键、主属性、非主属性、关系模式2.操作集合传统的集合运算:并,交,差,笛卡儿积专门的关系运算:∏A(R)投影,σF(t)(R)选择,R S自然连接3.完整性约束实体:主键PK域:数据类型等参照:外键FK用户定义:CHECK逻辑表达式、存储过程、触发器和自定义函数等二、E-R模型到关系模型的转换实体-关系:直接转换,实体的属性就是关系的属性联系-关系:1对1:与任意端合并,加入另一端主键和联系的属性。1对n:与n端合并,加入1端实体的主键和联系的属性。m对n:转换成一个关系,加两端实体的主键和联系的属性。关系模型和数据库逻辑设计小结关系模型和数据库逻辑设计 知识框架 展开更多...... 收起↑ 资源预览