《第1章关系数据库基本原理课件.ppt》由会员分享,可在线阅读,更多相关《第1章关系数据库基本原理课件.ppt(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、高等学校大学计算机基础教育改革与实践系列教材关系关系数据库基数据库基本原理本原理SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 目录目录2高等教育出版社高等教育出版社u 关系数据库概述关系数据库概述关系数据库概述关系数据库概述u 关系的规范化分析关系的规范化分析关系的规范化分析关系的规范化分析u 关系数据库的设计关系数据库的设计关系数据库的设计关系数据库的设计SQL Server 2008SQL
2、Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 一一 关系数据库概述关系数据库概述3高等教育出版社高等教育出版社1.1.关系数据库与表关系数据库与表关系数据库与表关系数据库与表2.2.主键与外键主键与外键主键与外键主键与外键3.3.约约约约束束束束4.4.数据完整性数据完整性数据完整性数据完整性5.5.表的关联表的关联表的关联表的关联SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL S
3、erver 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 1.关系型数据库与表关系型数据库与表 关系型数据库:是指一些相关的表和其他数据库对象的集合。在关系型数据库中,信息存放在二维表格结构的表中,一个关系型数据库包含多个数据表,每一个表包含行(记录)和列(字段)。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials
4、 学生信息表学生信息表SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 表中的每行记录都必须是惟一的,而不允许出现完全相同的记录。通过定义主键(PRIMARY KEY)来保证记录(实体)的惟一性。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fu
5、ndamentals Tutorials 主键主键:一个表的主键由一个或多个字段组成,其值具:一个表的主键由一个或多个字段组成,其值具有惟一性,而且不允许取空值(有惟一性,而且不允许取空值(NULLNULL),主键的),主键的作用作用是惟一地标识表中的每一条记录。是惟一地标识表中的每一条记录。要求:为了惟一标识实体的每个实例,每个数据库表都应当有一个主键,而且只能有一个主键。提示:有时可以考虑使用两个或两个以上字段的组合作为主键。2.主键与外键主键与外键-主键主键SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL
6、Server 2008 Fundamentals Tutorials Fundamentals Tutorials 主键主键SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 主键主键SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundament
7、als Tutorials 外键:一个关系型数据库可能包含多个表,可以通过外键(FOREIGN KEY)使这些表之间关联起来。如果在表A中有一个字段对应于表B中的主键,则该字段称为表A的外键。2.主键与外键主键与外键-外键外键SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 图图1-2 1-2 主键与外键的关系主键与外键的关系主键主键外键外键B表:表:student_info表表A表:表:Resul
8、t_info表表主键主键外键外键C表:表:Course_info表表SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 3.约束约束约束:在设计表时,针对表中的一个或多个字段组合设置约束条件,让SQL Server检查字段中的输入值是否符合约束条件的要求。分为两种约束:表级约束:针对表中几个字段的约束。字段级约束:针对表中一个字段的约束。SQL Server 2008SQL Server 2008基础
9、教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials(1)PRIMARY KEY约束作用:保证表中每条记录的惟一性。可用一个字段或多个字段(最多16个)的组合作为表的主键。用单个字段作主键,使用字段级约束;用字段组合作主键,使用表级约束。要求:每个表只能有一个主键,且主键字段的内容不能重复和空值。几种常见的约束几种常见的约束SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server
10、 2008 Fundamentals Tutorials Fundamentals Tutorials (2)FOREIGN KEY 约束作用:保证FOREIGN KEY字段与其他表中的主键字段或具有惟一性的字段相对应,其值必须在所引用的表中存在,且与所引用的表在同一数据库中。若在外键字段中输入一个非NULL值,但该值在所引用的表中并不存在,则该记录也会被拒绝。要求:外键字段本身的值不要求是惟一的。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorial
11、s Fundamentals Tutorials (3)NULL与NOT NULL约束定义:若一个字段中允许不输入数据,则可以将该字段定义为NULL约束,若在一个字段中必须输入数据,则应当将该字段定义为NOT NULL约束。NULL含义:既不等价于数值型数据中的0,也不等价于字符型数据中的空字符串。表示用户还没有为该字段输入值。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials (4)UNIQUE约束
12、定义:如果一个字段值不允许重复,则应当对该字段添加UNIQUE约束。区别:与主键约束不同的是,在UNIQUE字段中允许出现NULL值,但为保持惟一性,最多只能出现一次NULL值。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials (5)CHECK约束 定义:CHECK约束用于检查一个字段或整个表的输入值是否满足指定的检查条件。在表中插入或修改记录时,如果不符合这个检查条件,则这条记录将被拒绝。SQL
13、Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials (6)DEFAULT 约束作用:用于指定一个字段的默认值,当尚未在该字段中输入数据时,该字段中将自动填入这个默认值。若对一个字段添加了NOT NULL约束,但又没有设置DEFAULT约束,就必须在该字段中输入一个非NULL值,否则将会出现错误。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2
14、008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 5 数据完整性数据完整性 规划关系数据库表有两个重要步骤:如何确定一个字段的有效值;如何强制实施字段的数据完整性。数据完整性:保证关系型数据库中数据的正确性和可靠性,分为4种类型。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials(1)实体完整性:Entity Integ
15、rity,用于保证关系型数据库表中的每条记录都是惟一的。主键约束:确保实体完整性。表中的主键不能取空值,也不能取重复的值。(2)域完整性:Domain Integrity,用于保证给定字段中数据的有效性,即保证数据的取值在有效的范围内。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials(3)参照完整性:Referential Integrity,用于确保相关联的表间的数据保持一致。当添加、删除或修改关
16、系型数据库表中的记录时,可以借助于参照完整性来保证相关联的表之间的数据一致性。可通过定义表的主键和外键关系来实现。(4)用户自定义完整性:(User-defined Integrity)是一种强制数据定义。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 6 表的关联表的关联 表之间的关联方式分为以下3种类型。(1)一对一关联(1:1)设在一个数据库中有A、B两个表,对于表A中的任何一条记录,表B中
17、只能有一条记录与之对应;反过来,对于表B中的任何一条记录,表A中也只能有一条记录与之对应,则称这两个表是一对一关联的。(2)一对多关联(1:n)设在一个关系型数据库中有A、B两个表,对于表A中的任何一条记录,表B中可能有多条记录与之对应;反过来,对于表B中的任何一条记录,表A中却只能有一条记录与之对应,则称这两个表是一对多的关联。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials(a a)学生表一)学
18、生表一(b b)学生表二)学生表二(c c)成绩表)成绩表(d d)课程表)课程表关系型数据库表的关联关系型数据库表的关联SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials(3)多对多关联(m:n)设一个关系型数据库中有A、B两个表,对于表A中的任何一条记录,表B中可能有多条记录与之对应;反过来,对于表B中的任何一条记录,表A中也有多条记录与之对应,则称这两个表是多对多关联的。SQL Server 2
19、008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 二二 关系的规范化分析关系的规范化分析 关系规范化理论:在实现阶段指导关系型数据库的设计。1970年EFCodd提出关系型数据库设计的三条规则,通称为三范式(Normal Form),即:。第一范式(1NF)。第二范式(2NF)。第三范式(3NF)SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQ
20、L Server 2008 Fundamentals Tutorials Fundamentals Tutorials 关系:3个范式有高低等级之分,3NF最高,2NF次之,1NF最低。在1NF的基础上又满足某些特性才能达到第二范式的要求,在2NF的基础上再满足一些要求才能达到第三范式的要求。作用:用于关系数据库设计,能够简化设计过程,达到减少数据冗余、提高查询效率的目的。三范式间的关系三范式间的关系SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutoria
21、ls Fundamentals Tutorials 1第一范式第一范式定义:若一个关系型数据库表中的每一字段值都是单一的,则称这个表属于第一范式。即:表中的每个字段都应当是不可再分的。示例示例:非:非1NF1NF表,成绩字段不单一,可以再细分。表,成绩字段不单一,可以再细分。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 如何将非如何将非1NF变为变为1NF?细分细分符合符合1NF1NF的数据库表
22、的数据库表方法方法:将:将“成绩字段成绩字段”细分为细分为4 4个单独的字段。个单独的字段。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 图图1-8 1-8 符合符合1NF1NF的数据库表的数据库表示例示例:1NF1NF表,每个字段不可再细分。表,每个字段不可再细分。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL
23、 Server 2008 Fundamentals Tutorials Fundamentals Tutorials 2第二范式第二范式定义:若一个数据库表满足第一范式的要求,且它的每个非主键字段完全依赖于主键,则称该数据库表属于第二范式。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 示例示例:符合:符合1NF1NF,但不符合,但不符合2NF2NF部分依赖关系部分依赖关系主键主键SQL Serv
24、er 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 学生信息表学生信息表student_Infostudent_Info如何将如何将1NF变为变为2NF?分割分割成绩信息表成绩信息表result_Inforesult_Info主键主键主键主键SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamental
25、s Tutorials Fundamentals Tutorials 图图1-11 1-11 课程信息表课程信息表course_Infocourse_Info如何将如何将1NF变为变为2NF?分割(续)分割(续)主键主键SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 3第三范式第三范式定义:如果一个数据库表满足第二范式的要求,而且该表中的每一个非主键字段不传递依赖于主键,则称这个数据库表属于第三范
26、式。传递依赖:在一个数据库表中有A、B、C三个字段,如果字段B依赖于字段A,字段C又依赖于字段B,则称字段C传递依赖于字段A,并称在该数据库表中存在传递依赖关系。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 在一个数据库表中,若有一个非主键字段依赖于另一个非主键字段,则该字段必然传递依赖于主键,因而该数据库表就不属于第三范式。第三范式的实际含义:要求非主键字段之间不应该有从属关系。SQL Ser
27、ver 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 示例示例:符合:符合2NF2NF,但不符合,但不符合3NF3NF传递依赖关系传递依赖关系SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 学生信息表学生信息表stude
28、nt_Infostudent_Info如何将如何将2NF变为变为3NF?分割分割主键主键班级信息表班级信息表class_Infoclass_Info主键主键外键外键SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 三三三三 关系型数据库的设计关系型数据库的设计关系型数据库的设计关系型数据库的设计uE-R模型u数据库设计过程SQL Server 2008SQL Server 2008基础教程基础教程基
29、础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials E-R模型(Entity-Relationship)即实体联系模型,是1976年PPSChen提出的。这种模型用E-R图来表示实体及其联系,广泛用于数据库设计中。1.E-R1.E-R模型模型模型模型SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tu
30、torials 一个E-R图由实体、属性和联系三种基本要素组成。(1)实体:即现实世界中存在的、可以相互区别的人或事物。一个实体集合对应于数据库中的一个表,一个实体则对应于表的一行,也称为一条记录。在E-R图中,实体用矩形框表示。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials(2)属性:表示实体或联系的某种特征。一个属性对应于数据库表中的一列,也称为一个字段。在E-R图中,属性用椭圆表示。(3)联
31、系:即实体之间存在的联系。在E-R图中,联系用菱形框表示。联系的类型可以是1-1、1-n、n-m等。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials(1)先确定实体集与联系集,把参加联系 的实体集连接起来。(2)画出诸实体的属性和联系的属性。说明:当实体集与联系较多时,为了E-R图的整洁和可读性,有时可以略去属性。绘制E-R图的步骤SQL Server 2008SQL Server 2008基础教程
32、基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials E-R图示例学生实体局部学生实体局部学生实体局部学生实体局部E-RE-R图图图图 教师实体局部教师实体局部E-R图图 学号学号学生学生姓名姓名性别性别年龄年龄课程号课程号课程课程课程名课程名学分学分课程实体局部课程实体局部E-R图图 年龄年龄教师教师姓名姓名性别性别教师编号教师编号SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Ser
33、ver 2008 Fundamentals Tutorials Fundamentals Tutorials E-R图示例成绩成绩选修选修学号学号学生学生姓名姓名课程号课程号课程课程课程名课程名性别性别年龄年龄mn学分学分系系学生实体与课程学生实体与课程实体局部实体局部E-R图图 SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials E-R图示例年年龄龄教师教师姓姓名名讲讲授授课程号课程号课程课程课程名
34、课程名性性别别教师编号教师编号n1学分学分教师实体与课程教师实体与课程实体局部实体局部E-R图图 SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials E-R图综合示例选修选修学号学号学生学生姓名姓名年龄年龄教师教师姓名姓名讲授讲授课程号课程号课程课程课程名课程名性别性别年龄年龄性别性别教师编号教师编号mnn1学分学分系系成绩成绩学生实体、课程实体和学生实体、课程实体和教师实体教师实体E-R图图 SQL
35、 Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 2 2 数据库设计过程数据库设计过程数据库设计过程数据库设计过程 数据库的设计都要经历:需求分析、概念设计、逻辑设计和物理设计几个阶段。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamenta
36、ls Tutorials 1需求分析需求分析 分析系统的需求。主要任务:从数据库的所有用户那里收集对数据的需求和对数据处理的要求,并把这些需求写成用户和设计人员都能接受的说明书。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 2概念设计概念设计 将需求说明书中关于数据的需求,综合为一个统一的概念模型。步骤:(1)根据单个应用的需求,画出能反映每一应用需求的局部E-R模型。(2)将局部E-R模型图合
37、并起来,消除冗余和可能存在的矛盾,得出系统总体的E-R模型。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 3实现设计(逻辑设计)实现设计(逻辑设计)将E-R模型转换为某一特定的DBMS能够接受的逻辑模式。对关系型数据库,主要完成表的关联和结构的设计。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2
38、008 Fundamentals Tutorials Fundamentals Tutorials E-R图向关系数据模型的转换图向关系数据模型的转换 51高等教育出版社高等教育出版社 将将E-RE-R图转换为关系模型实际上就是将实体、图转换为关系模型实际上就是将实体、实体属性和实体之间的联系转化为关系模式,并实体属性和实体之间的联系转化为关系模式,并确定关系模式的属性和码。确定关系模式的属性和码。1.1.将实体转换为关系模式将实体转换为关系模式 一般将一般将E-RE-R图中的实体转化为一个关系模式。图中的实体转化为一个关系模式。实体的属性转化为关系的属性,实体的码就是关实体的属性转化为关系的
39、属性,实体的码就是关系的码。系的码。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 一对一联系(一对一联系(1:1)52高等教育出版社高等教育出版社2.2.将实体间的联系转化成关系模式将实体间的联系转化成关系模式 实体之间的联系比较复杂,可以按照以下规则转换。实体之间的联系比较复杂,可以按照以下规则转换。(1 1)1:11:1的联系的联系 1:11:1的联系可以转换为一个独立的关系模式,也可以与的
40、联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该系模式,则与该1:11:1联系相连的各实体的码以及联系本身的联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码都可以是该关系属性均转换为关系的属性,每个实体的码都可以是该关系模式的候选码。如果与某一端对应的关系模式合并,则需模式的候选码。如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。大多情况下采用后一种方式。本身的属性。
41、大多情况下采用后一种方式。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 一对多联系(一对多联系(1:n)53高等教育出版社高等教育出版社(2 2)1:n1:n的联系的联系 1:n1:n的联系有两种转换方式的联系有两种转换方式:可以转换为一个独可以转换为一个独立的关系模式,也可以与立的关系模式,也可以与n n端对应的关系模式合并。端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系如果转
42、换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码是系的属性,而关系的码是n n端实体的码。端实体的码。也可以与也可以与n n端对应的关系模式合并,只需要将端对应的关系模式合并,只需要将1 1端的关键字及联系的属性合并入多端的关系模式。端的关键字及联系的属性合并入多端的关系模式。SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals
43、Tutorials 54高等教育出版社高等教育出版社例如:例如:“讲授讲授”联系是一对多联系,与之相连的两个实体为联系是一对多联系,与之相连的两个实体为“课程课程”实体和实体和“教师教师”实体,这两个实体可以分别转换为实体,这两个实体可以分别转换为对应的关系模式:对应的关系模式:课程(课程(课程号课程号,课程名,学分),课程名,学分)课程号是主键课程号是主键 教师(教师(教师编号教师编号,姓名,性别,年龄),姓名,性别,年龄)教师编号是主键教师编号是主键年年龄龄教师教师姓姓名名讲讲授授课程号课程号课程课程课程名课程名性性别别教师编号教师编号n1学分学分SQL Server 2008SQL Se
44、rver 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 55高等教育出版社高等教育出版社 对于对于“讲授讲授”联系,可以转换为一个关系模式,其属性联系,可以转换为一个关系模式,其属性由由“课程课程”实体的码实体的码“课程号课程号”,“教师教师”实体的的码实体的的码“教教师编号师编号”以及此联系的属性组成,作为多端的以及此联系的属性组成,作为多端的“课程课程”实体实体的码成为关系模式的码。由于联系没有属性,关系模式为:的码成为关系模式的码。由于联系
45、没有属性,关系模式为:讲授(讲授(课程号课程号,教师编号),教师编号)课程号是主键,教师编号是外键课程号是主键,教师编号是外键 也可以采用另一种方式,即也可以采用另一种方式,即“讲授讲授”联系不用转换为一联系不用转换为一个单独的关系模式,而是将个单独的关系模式,而是将“教师教师”实体的码和联系的属性实体的码和联系的属性合并入课程实体对应的关系模式中,课程关系模式为:合并入课程实体对应的关系模式中,课程关系模式为:课程(课程(课程号课程号,课程名,学分,教师编号),课程名,学分,教师编号)课程号是主键,教师编号是外键课程号是主键,教师编号是外键SQL Server 2008SQL Server
46、2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 56高等教育出版社高等教育出版社即:即:课程(课程(课程号课程号,课程名,学分),课程名,学分)教师(教师(教师编号教师编号,姓名,性别,年龄),姓名,性别,年龄)讲授(讲授(课程号课程号,教师编号),教师编号)或者:或者:课程(课程(课程号课程号,课程名,学分,教师编号),课程名,学分,教师编号)教师(教师(教师编号教师编号,姓名,性别,年龄),姓名,性别,年龄)年年龄龄教师教师姓姓名名讲讲授授课程
47、号课程号课程课程课程名课程名性性别别教师编号教师编号n1学分学分SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 多对多联系(多对多联系(m:n)57高等教育出版社高等教育出版社(3 3)m:nm:n的联系的联系 m:nm:n联系转换为一个关系模式,与该联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属联系相连的各实体的码以及联系本身的属性均转换为关系的属性,关系的码为各实性均转换为关
48、系的属性,关系的码为各实体码的组合。体码的组合。例如,例如,“选修选修”联系是一个多对多联系,联系是一个多对多联系,成绩成绩选修选修学号学号学生学生姓名姓名课程号课程号课程课程课程名课程名性别性别年龄年龄mn学分学分系系将其转换成一个关系模式,关系模式的属性由将其转换成一个关系模式,关系模式的属性由“学生学生”实实体的码、体的码、“课程课程”实体的码以及联系的属性组成,关系模实体的码以及联系的属性组成,关系模式的码由式的码由“学生学生”实体的码和实体的码和“课程课程”实体的码组合而成,实体的码组合而成,转换后的关系模式为:转换后的关系模式为:选课(选课(学号学号,课程号课程号,成绩),成绩)(
49、学号(学号+课程号)是主键课程号)是主键SQL Server 2008SQL Server 2008基础教程基础教程基础教程基础教程SQL Server 2008 SQL Server 2008 Fundamentals Tutorials Fundamentals Tutorials 数据模型的优化数据模型的优化 58高等教育出版社高等教育出版社 完成完成E-RE-R图向关系数据模型的转换之后,还需要对数据模型进行优图向关系数据模型的转换之后,还需要对数据模型进行优化,修改、调整数据模型的结构,提高数据库的性能。化,修改、调整数据模型的结构,提高数据库的性能。(1 1)确定数据依赖。按需求分
50、析阶段得到的语义,分别写出每个关)确定数据依赖。按需求分析阶段得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间的数据依系模式内部各属性之间的数据依赖以及不同关系模式属性之间的数据依赖。赖。(2 2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。的联系。(3 3)按照数据依赖的理论对关系模式逐一进行分析,考查是否存在)按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于