数据库系统(四)---关系型数据库设计及E-R图
1、关系型数据库:
  关系型数据库是⼀类采⽤关系模型作为逻辑数据模型的数据库系统,遵从数据库设计的基本步骤,包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库的运⾏和维护等阶段。概念结构设计与逻辑结构设计是关系数据库整个设计过程的关键。
2、关系数据库设计过程与各级模式
  在关系数据库设计的不同阶段,会形成数据库的各级模式。
  1)需求分析阶段,综合各个⽤户的应⽤需求;
  2)概念结构设计阶段,形成独⽴于机器特点、独⽴于各个关系数据库管理系统产品的概念模式;
  3)逻辑结构设计阶段,将 E-R 图转换成具体的数据库产品⽀持的关系数据模型,形成数据库逻辑模式,然后根据⽤户处理的要求、安全性的考虑,在基本表的基础上再建⽴必要的视图,形成数据的外模式;
  4)物理结构的设计阶段,根据关系数据库管理系统的特点和处理的需要,进⾏物理存储安排,建⽴索引,形成数据库内模式。
3、概念结构设计⽅法
  关系数据库的概念结构设计通常采⽤⾃顶向下法,它通过两个步骤来完成概念设计,⾸先建⽴局部信息结构,然后将局部信息结构合成为全局信息结构并优化,使⽤ E-R 图作为概念模型的描述⼯具。
1)局部信息结构设计
  局部信息结构设计:根据需求分析报告中标明的不同⽤户视图范围所建⽴的满⾜该范围内⽤户需求的信息结构,称为局部信息结构。
  局部信息结构设计的步骤包括:确定局部范围;选择实体;选择实体关键字;确定实体间联系;确定实体的属性。
2)E-R 图的表⽰⽅法
  概念结构设计就是将需求分析得到的⽤户需求抽象为信息结构的过程,通常使⽤ E-R 图来作为描述现实世界的建模⼯具。E-R 图提供了表⽰信息世界中实体、属性和联系的⽅法。
  1.实体型,⽤矩形表⽰,写明实体的名称;
  2.属性,⽤椭圆形表⽰,并⽤⽆向边将其与其相应的实体连接起来。
  3.联系,⽤菱形表⽰,写明联系的名称,⽤⽆向边分别与有关实体连接起来,同时在⽆向边旁标注联系的类型(1:1、1:N 或 M:N),如果⼀个联系具有属性,则这些属性也要⽤⽆向边与该联系连接起来。
  两个实体型之间、两个以上的实体型之间以及单个实体型内的联系,都会存在如下关系:⼀对⼀联系(1:1)⼀对多联系(1:N)多对多联系(M:N)
3)全局信息结构设计
  全局信息结构设计是将上述步骤中产⽣的所有局部信息结构合并成为⼀个全局信息结构。各局部 E-R 图之间的冲突主要表现在三个⽅⾯:
  3.1).属性冲突:属性域冲突和属性取值单位冲突。
  3.2).命名冲突:同名异义和异名同义。
  3.3).结构冲突:
   ①同⼀对象在⼀个局部 E-R 图中作为实体,⽽在另⼀个局部 E-R 图中作为属性;
   ②同⼀实体在不同的 E-R 图中属性个数和类型不同;
   ③实体之间的联系在不同的 E-R 图中是不同的类型。
  eg:
  【例】设有如下实体:
    学⽣:学号,姓名,性别
    课程:课程号,课程名,学分
    班级:班号,班名,
    其中,每个班有若⼲学⽣,每个学⽣只可以在—个班级学习;每个学⽣可选修多门课程,每门课程可被多个学⽣选修,学⽣选修课程要记录成绩。
   1. 试画出反映上述实体关系的 E-R 图(不必画实体的属性)。
    注意:学⽣选修课程之后才能有成绩,故成绩是选修(联系)的属性。关系型数据库系统有哪些
4、逻辑结构设计⽅法
  逻辑结构设计的任务是把在概念结构设计产⽣的概念模型转换为具体的 DBMS 所⽀持的逻辑数据模型,也就是导出特定的 DBMS 可以处理的数据库逻辑结构。通常包括三项⼯作:将 E-R 图转换为关系模型、对关系数据模型进⾏优化、设计⾯向⽤户的外模式。
1)E-R 图向关系模型的转换遵循原则如下:
  1. ⼀个实体型转换为⼀个关系模式。
  2. ⼀个⼀对⼀联系可以转换为⼀个独⽴的关系模式。
  3. ⼀个⼀对多联系可以转换为⼀个关系模式。
  4. ⼀个多对多联系转换为⼀个关系模式。
  5. 具有相同码的关系模式可合并。
 eg:
  使⽤3中的⽰例,将E-R图转化为关系模式,并说明主外键
 (1)⼀个实体型对应⼀个关系模式:
    R学⽣(学号,姓名,性别)
    R课程(课程号,课程名,学分)
    R班级(班号,班名)
(2)⼀个⼀对多联系可转化为⼀个关系模式(中间表)
    R属于(学号、班号)外键学号和班号
 (3)⼀个多对多联系可转化为⼀个关系模式(中间表)
    R选修(学号、课程号、成绩)外键学号和课程号
 (4)R学⽣和R属于可合并成⼀张表
    R学⽣(学号、姓名、性别、班号)外键班号
2)数据模型的优化⽅法如下:
  1.确定各属性间的函数依赖关系。
  2.对于各个关系模式的范式,根据实际需要确定最合适的范式。
  3.判断每个关系模式的范式,根据实际需要确定最合适的范式。
  4.按照需求分析阶段得到的处理要求,分析这些模式对于这样的应⽤环境是否合适,确定是否要对某些模式进⾏合并或分解。
  5.对关系模式进⾏必要的分解,提⾼数据操作的效率和存储空间的利⽤率。
3)设计⽤户⼦模式定义⽤户模式具体包括以下⼏个⽅⾯:
  1.可以通过视图机制在设计⽤户视图时,重新定义某些属性的别名,使其更符合⽤户的习惯,以⽅便使⽤。
  2.可以对不同级别的⽤户定义不同的视图,以保证系统的安全性。
  3.简化⽤户对系统的使⽤。
5、物理设计⽅法
  关系数据库系统的优点之⼀是⽤户通常不需要进⾏数据存储结构和存取⽅法的设计。
  物理设计的任务主要是通过对关系建⽴索引和聚集来实现与应⽤相关数据的逻辑连接和物理聚集,以改善对数据库的存取效率。
 1)建⽴索引
  索引的建⽴是通过 DBMS 提供的有关命令来实现的。⽤以建⽴索引的那些属性也应是其所在关系中使⽤频率较⾼的属性。建⽴索引的⽅式通常有静态和动态两种。静态建⽴索引是指应⽤⼈员预先建⽴索引,⼀旦建⽴,后续的应⽤程序均可直接使⽤该索引存取数据,它多适合于⽤户较多且使⽤周期相对较长的数据;动态建⽴索引是指应⽤⼈员在程序内外临时建⽴索引,它多适合于单独⽤户或临时性使⽤要求情况。
2)建⽴聚集
  聚集是将相关数据集中存放的物理存储技术,借以提⾼ I/O 的数据命中率⽽改善存取速度,其功能由具体的 DBMS 所提供,如 MySQL。数据聚集结构的⼀种有效⽅式是块结构⽅式,块与块之间由指针连接,⼀个块对应于⼀个物理分区。