1、NoImage计算机科学与工程系计算机科学与工程系数据库设计方法数据库设计方法主要是设计数据库系统结构中的三级模式结构。主要是设计数据库系统结构中的三级模式结构。物理模式物理模式逻辑模式逻辑模式外模式外模式1外模式外模式3外模式外模式2应用应用E应用应用D应用应用C应用应用B应用应用A磁盘磁盘说明:逻辑模式说明:逻辑模式与外模式是一对与外模式是一对多的关系;逻辑多的关系;逻辑模式与物理模式模式与物理模式是一对一的关系。是一对一的关系。NoImage计算机科学与工程系计算机科学与工程系数据库设计步骤数据库设计步骤数据库的设计过程可分为六个阶段:数据库的设计过程可分为六个阶段:1.需求分
2、析需求分析2.概念结构设计阶段概念结构设计阶段3.逻辑结构设计阶段逻辑结构设计阶段4.物理结构设计阶段物理结构设计阶段5.数据库实施数据库实施6.数据库运行与维护数据库运行与维护概念结构设计阶段概念结构设计阶段需求分析需求分析物理结构设计阶段物理结构设计阶段逻辑结构设计阶段逻辑结构设计阶段数据库运行维护数据库运行维护数据库实施数据库实施NoImage计算机科学与工程系计算机科学与工程系需求分析是数据库设计的第一步。这一阶段主要是对数据需求分析是数据库设计的第一步。这一阶段主要是对数据库应用系统所要处理的对象进行全面了解,了解用户需求,收库应用系统所要处理的对象进行全面了解,了解用户
3、需求,收集信息,提出问题及解决问题的思路。集信息,提出问题及解决问题的思路。例如:建立例如:建立“学生信息管理系统学生信息管理系统”,目的是对学院、系、,目的是对学院、系、班级、教研室等部门的信息进行管理,还要管理教师和学生班级、教研室等部门的信息进行管理,还要管理教师和学生的基本信息,以及学生选课的情况。的基本信息,以及学生选课的情况。信息要求:系统涉及到学院、系、教研室、教师、学生、信息要求:系统涉及到学院、系、教研室、教师、学生、班级、课程、选课等各方面的信息。班级、课程、选课等各方面的信息。处理要求:增加、删除、修改各数据对象中的数据,各处理要求:增加、删除、修改各数据对象中的数
4、据,各类查询、统计及报表打印等等。类查询、统计及报表打印等等。安全性要求:只允许学院内部人员使用该系统,允许学安全性要求:只允许学院内部人员使用该系统,允许学生查询成绩但不能修改,允许教师录入和修改学生成绩等。生查询成绩但不能修改,允许教师录入和修改学生成绩等。NoImage计算机科学与工程系计算机科学与工程系概念设计的目标是产生反映需求信息的数据库概念设计的目标是产生反映需求信息的数据库概念结构,它与具体的概念结构,它与具体的DBMS无关。从现实世界到无关。从现实世界到概念模型的转换是由数据库设计人员完成的,概念概念模型的转换是由数据库设计人员完成的,概念设计用实体设计用实体-联系模型联
5、系模型(简称简称E-R图图)表示。在表示。在E-R模模型中,用于描述数据的概念主要有实体、属性、实型中,用于描述数据的概念主要有实体、属性、实体型、实体集、关键字及实体之间的联系等。体型、实体集、关键字及实体之间的联系等。现实世界现实世界概念模型概念模型将现实世界将现实世界客观存在的事物及客观存在的事物及其相互间联系通过符号记录下其相互间联系通过符号记录下来来抽象为信息世界。抽象为信息世界。NoImage计算机科学与工程系计算机科学与工程系(1)实体:客观存在并相互区别的事物。实体:客观存在并相互区别的事物。实体可以是可触及的对象,如一个学生,一本实体可以是可触及的对象,如一个学生,
6、一本书,一辆汽车;也可以是抽象的事件,如一堂课,书,一辆汽车;也可以是抽象的事件,如一堂课,一次比赛等。一次比赛等。(2)属性:实体所具有的特征和性质。属性:实体所具有的特征和性质。如:学生实体有学号、姓名、年龄、性别等。如:学生实体有学号、姓名、年龄、性别等。NoImage计算机科学与工程系计算机科学与工程系(3)码:在实体的属性当中能够唯一的标识一码:在实体的属性当中能够唯一的标识一个实体的属性称为这个实体的关键字,也称码或键。个实体的属性称为这个实体的关键字,也称码或键。如:学生的学号。而学生的姓名可能有重名,如:学生的学号。而学生的姓名可能有重名,不能作为学生实体的关键字不
7、能作为学生实体的关键字(码码)。(4)实体集:具有相同属性的同一类事物,是实体集:具有相同属性的同一类事物,是一个实体的集合。一个实体的集合。如:所有的学生信息记录、所有的课程信息如:所有的学生信息记录、所有的课程信息记录等。记录等。NoImage计算机科学与工程系计算机科学与工程系(5)实体型:用实体名和属性名称集来描述同实体型:用实体名和属性名称集来描述同类实体。类实体。如:学生如:学生(学号,姓名,年龄,性别学号,姓名,年龄,性别)就是一个就是一个实体型。所有学生都可用这一实体型进行描述。实体型。所有学生都可用这一实体型进行描述。两个或两个以上的实体集间的关联关系的描述。两
8、个或两个以上的实体集间的关联关系的描述。如:系与系主任、班级与班长如:系与系主任、班级与班长(1:1关系关系);系与;系与教研室、班级与学生教研室、班级与学生(1:n关系关系);学生与课程、教;学生与课程、教师与课程师与课程(m:n关系关系)。实体集之间的联系分一对一实体集之间的联系分一对一(1:1)、一对多、一对多(1:n)、多对多、多对多(m:n)3种。种。NoImage计算机科学与工程系计算机科学与工程系E-R模型模型(概念模型的描述方法概念模型的描述方法),是用实体,是用实体-联系联系图图(简称简称E-R图)来描述的,是通过图形描述实体集、图)来描述的,是通过图形描述实体
10、科学与工程系例如:学生、教师和课程三个实体共同参与了例如:学生、教师和课程三个实体共同参与了一个选课联系,一般称这种由三类实体参与的联系一个选课联系,一般称这种由三类实体参与的联系为三元联系。因为某教师选定一门课讲授,学生选为三元联系。因为某教师选定一门课讲授,学生选中同一门课要学习时,三者才会联系起来。中同一门课要学习时,三者才会联系起来。教师、学生与课程的教师、学生与课程的E-R图图mmnnNoImage计算机科学与工程系计算机科学与工程系多对多关系实际上是某两个表多对多关系实际上是某两个表与第三个表的两个一对多关系,第与第三个表的两个一对多关系,第三个表的主键包含两个字段,分别三个
12、型数值型数值型学时学时12字符型字符型课程名课程名主索引主索引5字符型字符型课程编号课程编号索引类型索引类型小数点小数点字段长度字段长度字段类型字段类型字段名字段名2单精度单精度数值型数值型成绩成绩普通索引普通索引7字符型字符型教师编号教师编号普通索引普通索引5字符型字符型课程编号课程编号普通索引普通索引6字符型字符型学号学号索引类型索引类型小数点小数点字段长度字段长度字段类型字段类型字段名字段名2单精度单精度数值型数值型成绩成绩普通索引普通索引7字符型字符型教师编号教师编号普通索引普通索引5字符型字符型课程编号课程编号普通索引普通索引6字符型字符型学号学号索引类型索引类型小数点小数点字段长度
13、字段长度字段类型字段类型字段名字段名选课选课学生学生--选课选课(1:n)(1:n)课程课程--选课选课(1:n)(1:n)外键外键6字符型字符型教研室编教研室编号号8字符型字符型职务职务2字符型字符型性别性别6字符型字符型姓名姓名主索引主索引7字符型字符型教师编号教师编号索引类型索引类型小数点小数点字段长度字段长度字段类型字段类型字段名字段名外键外键6字符型字符型教研室编教研室编号号8字符型字符型职务职务2字符型字符型性别性别6字符型字符型姓名姓名主索引主索引7字符型字符型教师编号教师编号索引类型索引类型小数点小数点字段长度字段长度字段类型字段类型字段名字段名教师教师--选课选
15、编号教研室名称教研室名称系编号系编号n教师教师属于属于教师编号教师编号姓名姓名性别性别教研室编号教研室编号n1设置设置1n班级班级班级名班级名班长姓班长姓名名专业专业系编号系编号班级编班级编号号NoImage计算机科学与工程系计算机科学与工程系逻辑结构设计:将已设计好的概念模型逻辑结构设计:将已设计好的概念模型(E-R模模型型)转换为与转换为与DBMS支持的数据模型相符的逻辑结构。支持的数据模型相符的逻辑结构。从概念模型到逻辑模型的转换可以由数据库设从概念模型到逻辑模型的转换可以由数据库设计人员完成,也可以用数据库设计工具协助设计人计人员完成,也可以用数据库设计工具协助设计人员完成。员完成
17、oImage计算机科学与工程系计算机科学与工程系一个一个1:1联系可以转换为一个独立的关系模式,联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。也可以与任意一端对应的关系模式合并。举例:两个实体举例:两个实体:一对一联系一对一联系系系(系编号系编号,系名字系名字,系性质系性质)系主任系主任(工号工号,姓名姓名,年龄年龄,系编号系编号)系系(系编号系编号,系名字系名字,系性质系性质,工号工号)系主任系主任(工号工号,姓名姓名,年龄年龄)联系联系系系系编号系编号系名字系名字系性质系性质系主任系主任年龄年龄姓名姓名拥有拥有11工号工号系系(系编号系编号,系名字系名字,系
18、性质系性质)系主任系主任(工号工号,姓名姓名,年龄年龄)系与系主任系与系主任(工号工号,系编号系编号)系系(系编号系编号,系名字系名字,系性质系性质,系主任姓名系主任姓名,年龄年龄)方式方式1方式方式2方式方式3方式方式4NoImage计算机科学与工程系计算机科学与工程系一个一个1:n联系可以转换为一个独立的关系模式,联系可以转换为一个独立的关系模式,也可以与也可以与n端对应的关系模式合并。端对应的关系模式合并。例如:两个实体例如:两个实体1:n关系关系属于属于n1学生学生姓姓名名性性别别学学号号出出生生年年月月籍籍贯贯班班级级编编号号班级班级班班级级名名班班长长姓姓名名专专业业系系编
19、编号号班班级级编编号号联系联系利用规则利用规则1将学生和班级实体各转换为一个关系,其属性将学生和班级实体各转换为一个关系,其属性取原来实体的属性,得到关系模式:取原来实体的属性,得到关系模式:学生学生(学号学号,姓名姓名,性别性别,出生年月出生年月,籍贯籍贯)班级班级(班级编号,班级名称,班长姓名,专业,系编号班级编号,班级名称,班长姓名,专业,系编号)由于班级与学生之间存在一对多的联系,利用规则由于班级与学生之间存在一对多的联系,利用规则3可将可将这种联系合并到这种联系合并到n端,即将班级关系的码加入到学生关系中,端,即将班级关系的码加入到学生关系中,得到最终结果:得到最终结果:学生
21、oImage计算机科学与工程系计算机科学与工程系例如:三个实体例如:三个实体m:n关系关系选课选课mm学生学生姓名姓名性别性别学号学号出生出生年月年月籍贯籍贯班级班级编号编号教师教师姓名姓名性别性别教研教研室编室编号号教师教师编号编号联系联系班级班级课程课程名名学时学时学分学分课程课程编号编号nn成绩成绩使用规则使用规则1:三个实体集转换为关系;:三个实体集转换为关系;使用规则使用规则4和和5:为联系单独建立一个关系,即将:为联系单独建立一个关系,即将学生学生课程、教师课程、教师课程实体之间多对多的多元课程实体之间多对多的多元“选选课课”联系转换为一个独立的关系模式。联系转换为一个独立的
22、关系模式。NoImage计算机科学与工程系计算机科学与工程系实体之间多对多的多元实体之间多对多的多元“选课选课”联系转换为一个联系转换为一个独立的关系模式如下:独立的关系模式如下:学生学生(学号学号,姓名姓名,性别性别,出生年月出生年月,籍贯籍贯,班级编号班级编号)教师教师(教师编号教师编号,姓名姓名,性别性别,职务职务,教研室编号教研室编号)课程课程(课程编号课程编号,课程名课程名,学时学时,学分学分)选课选课(学号学号,课程编号课程编号,教师编号教师编号,成绩成绩)(新关系包含两组多对多实体的主键及其联系自新关系包含两组多对多实体的主键及其联系自身的属性身的属性)NoImag
24、)班级班级(班级编号班级编号,班级名称班级名称,班长姓名班长姓名,专业专业,系编号系编号)学生学生(学号学号,姓名姓名,性别性别,出生年月出生年月,籍贯籍贯,班级编号班级编号)课程课程(课程编号课程编号,课程名课程名,学时学时,学分学分)选课选课(学号学号,课程编号课程编号,教师编号教师编号,成绩成绩)学生信息管理系统学生信息管理系统((逻辑逻辑模型模型))NoImage计算机科学与工程系计算机科学与工程系2.函数依赖和键的基本概念函数依赖和键的基本概念(略略)函数依赖它反映属性或属性组之间相依存,互函数依赖它反映属性或属性组之间相依存,互相制约的关系。相制约的关系。简单地说,若想
25、设计一个性能良好的数据库,简单地说,若想设计一个性能良好的数据库,就要尽量满足关系规范化原则。就要尽量满足关系规范化原则。1.数据库设计中的问题数据库设计中的问题如果一个关系没有经过规范化,可能会出现数如果一个关系没有经过规范化,可能会出现数据冗余、更新异常、插入异常、删除异常。据冗余、更新异常、插入异常、删除异常。NoImage计算机科学与工程系计算机科学与工程系3.范式及其关系范式及其关系(简介简介)关系规范化理论简称范式,它提供了判别关系关系规范化理论简称范式,它提供了判别关系模式设计的优劣标准,为数据库设计提供了严格的模式设计的优劣标准,为数据库设计提供了严格的理论基础。理
26、论基础。使用范式表示关系模式满足规范化的等级,满使用范式表示关系模式满足规范化的等级,满足最低要求的为第一范式,在第一范式的基础上满足最低要求的为第一范式,在第一范式的基础上满足进一步要求的可升级为第二范式,其余以此类推。足进一步要求的可升级为第二范式,其余以此类推。范式范式(1NF5NF),主要为,主要为1NF-3NF。也就是。也就是说能满足前说能满足前3个范式的关系基本上是合理的。个范式的关系基本上是合理的。NoImage计算机科学与工程系计算机科学与工程系(1)1NF:若一个关系模式:若一个关系模式R的所有属性都是不可再分的所有属性都是不可再分的基本数据项,则该关系模式属于的基本
29、关系模式属于2NF。例如:学生选课成绩关系表如下,判断是否为第二范例如:学生选课成绩关系表如下,判断是否为第二范式,并规范学生选课关系。式,并规范学生选课关系。学生编号学生编号姓名姓名课程编号课程编号课程名称课程名称周学时周学时学分学分成绩成绩20020102刘力刘力101数据库数据库337720020104刘红刘红102英语英语6667学生选课成绩关系学生选课成绩关系在这个关系中学生编号和课程编号共同组成主关键字,在这个关系中学生编号和课程编号共同组成主关键字,其中成绩完全依赖于主关键字,而姓名却完全依赖于学号,其中成绩完全依赖于主关键字,而姓名却完全依赖于学号,课程名称、周学时、学分又
31、门新课,还没有学生选,由于没插入异常:或开一门新课,还没有学生选,由于没有学生编号,课程编号、学分均无法输入。有学生编号,课程编号、学分均无法输入。可以将上述关系分解为三个关系:可以将上述关系分解为三个关系:学生学生(学生编号学生编号,姓名,年龄,入校日期,姓名,年龄,入校日期)选课选课(学生编号,课程编号学生编号,课程编号,成绩,成绩)课程课程(课程编号课程编号,课程名称,周学时,学分,课程名称,周学时,学分)NoImage计算机科学与工程系计算机科学与工程系(3)3NF:若关系模式:若关系模式R属于属于1NF,且每个非,且每个非主属性都不传递依赖于主关键字,则关系模式属主属性都不传递依赖于主关键字,则关系模式属于于3NF。(略略)学生选课成绩的三个关系:学生选课成绩的三个关系:学生学生(学生编号学生编号,姓名,年龄,入校日期,姓名,年龄,入校日期)选课成绩选课成绩(学生编号,课程编号学生编号,课程编号,成绩,成绩)课程课程(课程编号课程编号,课程名称,周学时,学分,课程名称,周学时,学分)其中其中和和属于第三范