1.2 数据库设计
数据库设计是将业务对象转换为表等数据库对象的过程。
关系型数据库的设计分为6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护。其中需求分析是通过详细调查现实世界要处理的对象,明确用户的各种需求,在此基础上确定系统的功能。在需求分析的基础上,进行数据库设计,包括概念结构设计、逻辑结构设计、物理结构设计。数据库实施就是在数据库设计完成后由数据库管理员(DBA)在DBMS上进行操作,完成设计。运行与维护就是数据库投入使用,DBA对数据库进行管理、维护和处置,保证正常运行。这里仅介绍概念结构设计、逻辑结构设计和物理结构设计。
1.2.1 概念结构设计
通常,把每一类数据对象的个体称为“实体”,而每一类对象个体的集合称为“实体集”。例如,在管理学生所选课程的成绩时,主要涉及“学生”和“课程”两个实体集。
概念结构设计
其他非主要的实体可以很多,例如,班级、班长、任课教师、辅导员等。把每个实体集涉及的信息项称为属性。就“学生”实体集而言,它的属性有学号、姓名、性别、出生时间、专业、总学分、备注;“课程”实体集的属性有课程号、课程名、开课学期、学时和学分。
实体集“学生”和实体集“课程”之间存在“选课”的关系,通常把这类关系称为“联系”,将实体集及实体集联系的图称为E-R模型。E-R模型的表示方法如下。
(1)实体集采用矩形框表示,框内为实体名。
(2)实体的属性采用椭圆框表示,框内为属性名,并用无向边与其相应实体集连接。
(3)实体间的联系采用菱形框表示,联系以适当的含义命名,名字写在菱形框中,用无向边将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即1︰1、1︰n或m︰n。
(4)如果一个联系有属性,则这些属性也应采用无向边与该联系连接起来。
因此,E-R模型也称为E-R图。关系数据库的设计者通常使用E-R图来对信息世界建模。从分析用户项目涉及的数据对象及数据对象之间的联系出发,到获取E-R图的这一过程就称为概念结构设计。
两个实体集A和B之间的联系可能是以下3种情况之一。
1. 一对一的联系(1:1)
A中的一个实体至多与B中的一个实体相联系,B中的一个实体也至多与A中的一个实体相联系。例如,“班级”与“班长”这两个实体集之间的联系是一对一的联系,因为一个班只有一个班长,反过来,一个班长只属于一个班。“班级”与“班长”两个实体集的E-R模型如图1.5所示。
图1.5 “班级”与“班长”两个实体集E-R模型
2. 一对多的联系(1:n)
A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。例如,“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为,一个班可有若干学生,反过来,一个学生只能属于一个班。“班级”与“学生”两个实体集的E-R模型如图1.6所示。
图1.6 “学生”与“班级”两个实体集的E-R模型
3. 多对多的联系(m:n)
A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为,一个学生可选多门课程;反过来,一门课程可被多个学生选修,每个学生选修了一门课以后都有一个成绩。“学生”与“课程”两个实体集的E-R模型如图1.7所示。
图1.7 “学生”与“课程”两个实体集的E-R模型
1.2.2 逻辑结构设计
用E-R图描述学生成绩管理系统中实体集与实体集之间的联系,目的是以E-R图为工具,设计出关系模式,即确定应用系统所使用的数据库应包含的表和表的结构。通常这一设计过程就称为逻辑结构设计。
关系模式
1. (1:1)联系的E-R图到关系模式的转换
对于(1:1)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。
例如,图1.5描述的“班级(bjb)”与“班长(bzb)”实体集通过“属于(syb)”联系的E-R模型可设计如下关系模式:
bjb(班级编号,院系,专业,人数)
bzb(学号,姓名)
syb(学号,班级编号)
(2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。
例如,图1.5的E-R模型可设计如下关系模式:
bjb(班级编号,院系,专业,人数)
bzb(学号,姓名,班级编号)
或者
bjb(班级编号,院系,专业,人数,学号)
bzb(学号,姓名)
2. (1:n)联系的E-R图到关系模式的转换
对于(1:n)的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。
例如,图1.6描述的“班级(bjb)”与“学生(xsb)”实体集的E-R模型可设计如下关系模式:
bjb(班级编号,院系,专业,人数)
xsb(学号,姓名,性别,出生时间,专业,总学分,备注)
syb(学号,班级编号)
(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。
例如,图1.6“班级(bjb)”与“学生(xsb)”实体集E-R模型可设计如下关系模式:
bjb(班级编号,院系,专业,人数)
xsb(学号,姓名,性别,出生时间,专业,总学分,备注,班级编号)
3. (m:n)联系的E-R图到关系模式的转换
对于(m:n)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。
例如,图1.7描述的“学生(xsb)”与“课程(kcb)”实体集之间的联系可设计如下关系模式:
xsb(学号,姓名,性别,出生时间,专业,总学分,备注)
kcb(课程号,课程名称,开课学期,学时,学分)
cjb(学号,课程号,成绩)
关系模式cjb的主码是由“学号”和“课程号”两个属性组合构成的,一个关系模式只能有一个主码。
1.2.3 物理结构设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构。数据库的物理结构设计通常分为2步:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。