数据库基本概念(四)
二、数据库设计
数据库设计是将数据对象转换为数据表等数据库对象的过程,是数据库应用系统开发过程中首要的和基本的内容。
按照规范的设计方法,考虑数据库及其应用系统开发全过程,将关系数据库的设计分为六个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数控运行和维护。其中需求分析的任务是通过详细调查现实世界要处理的对象,明确用户的各种需求,然后在此基础上确定系统的功能。数据库实施、运行与维护的任务是在数据库的结构设计完成后由数据库管理员在dbms上实现设计的结果。在这具体介绍数据库设计中的概念结构设计、逻辑结构设计和物理结构设计。
1.概念结构设计
通常,把每一类数据对象的个体称为“实体”,而每一类对象个体的集合称为“实体集”,例如,在学生成绩管理系统中主要涉及“学生”和“课程”两个实体集。其他非主要的实体可以很多,如班级、班长、任课教师、辅导员等实体。把每个实体集涉及的信息项称为属性。就“学生”实体集而言,它的属性有:学号、姓名、性别、出生时间、专业、总学分和备注。“课程”实体集属性有:课程号、课程名、开课学期、学时和学分。
实体集“学生”和实体集“课程”之间存在“选课”的关系,通常把这类关系称为“联系”。通常将实体集及实体集之间的联系的图称为e-r模型。
e-r模型表示方法为:
- 实体集用矩形框表示,矩形框内标注实体名;
- 实体集的属性用椭圆框表示,框内标注属性名,并用无向边与其实体集相连;
- 实体集间的联系用菱形框表示,联系以适当的含义命名,名字写在菱形框中,用无向边将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即1-1、1-n或m-n;
- 如果一个联系有属性,则这些属性也要用无向边与该联系连接起来。
因此,e-r模型也称为e-r图。通常,关系数据库的设计者用e-r图来对信息世界建模。从分析用户项目涉及的数据对象及数据对象之间的联系出发,到获取e-r图的这一过程称为概念结构设计。
(1)一对一的联系(1 : 1)
a中的一个实体至多与b中的一个实体相联系,b中的一个实体也至多与a中的一个实体相联系。例如,“班级”与“正班长”这两个实体集之间的联系是一对一的联系,因为一个班只有一个正班长,反过来,一个正班长只属于一个班。“班级”与“正班长”两个实体集的e-r模型如图1.2所示。
图1.2
(2)一对多的联系(1 : n)
a中的一个实体可以与b中的多个实体相联系,而b中的一个实体至多与a中的一个实体相联系。例如,“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为一个班可有若干学生,反过来,一个学生只能属于一个班。“班级”与“学生”两个实体集的e-r模型如图1.3所示。
图1.3
(3)多对多的联系(m : n)
a中的一个实体可以与b中的多个实体相联系,而b中的一个实体也可与a中的多个实体相联系。例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为,一个学生可选多门课程,反过来,一门课程可被多个学生选修,每个学生选修了一门课以后都有一个成绩。“学生”与“课程”两个实体集的e-r模型如图1.4所示。
图1.4
2.逻辑结构设计
用e-r图描述管理系统中实体集与实体集之间的联系,目的是以e-r图为工具设计关系模式,即确定应用系统所使用的数据应包含的表和表的结构。通常这一设计过程被称为逻辑结构设计。
(1)(1 : 1)联系的e-r图到关系模式的转换
1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。
例如,考虑图1.2描述的“班级(bjb)”与“班长(bzb)”实体集通过属于(syb)联系e-r模型,可设计如下关系模式(下画线表示该字段为主码):
bjb(班级编号,院系,专业,人数)
bzb(学号,姓名)
syb(学号,班级编号)
2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。
例如,考虑图1.2描述的“班级(bjb)”与“班长(bzb)”实体集通过属于(syb)联系e-r模型,可设计如下关系模式:
bjb(班级编号,院系,专业,人数)
bzb(学号,姓名,班级编号)
或者:
bjb(班级编号,院系,专业,人数,学号)
bzb(学号,姓名)
(2)(1 : n)联系的e-r图到关系模式的转换
1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。
例如,考虑图1.3描述的“班级(bjb)”与“学生(xsb)”实体集e-r模型,可设计如下关系模式:
bjb(班级编号,院系,专业,人数)
xsb(学号,姓名,性别,出生时间,专业,总学分,备注)
syb(学号,班级编号)
2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。
例如,图1.3描述的“班级(bjb)”与“学生(xsb)”实体集e-r模型可设计如下关系模式:
bjb(班级编号,院系,专业,人数)
xsb(学号,姓名,性别,出生时间,专业,总学分,备注,班级编号)
(3)(m : n)联系的e-r图到关系模式的转换
对于(m∶n)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。
例如,图1.4描述的“学生(xsb)”与“课程(kcb)”实体集之间的联系可设计如下关系模式:
xsb(学号,姓名,性别,出生时间,专业,总学分,备注)
kcb(课程号,课程名称,开课学期,学时,学分)
cjb(学号,课程号,成绩)
关系模式cjb的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。
3.物理结构设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统。为一个给定的逻辑数据模型选取一个最合适应用环境的物理结构的过程就称为数据库的物理结构设计。
数据库的物理结构设计通常分为以下两步:
(1)确定数据库的物理结构,在关系数据库中主要指的是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
因而,物理数据模型(physical data model)是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的dbms有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有其对应的物理数据模型。dbms为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。
上一篇: 数据库-基础概念