【梳理】数据库系统概论 第7章 数据库设计 7.3 概念设计

教材:王珊 萨师煊 编著 数据库系统概论(第5版) 高等教育出版社
注:文档高清截图在后
7.3 概念设计
1、在需求分析阶段得到的应用需求应首先抽象为信息世界的结构——概念模型,才能更好更准确地运用DBMS实现需求。

2、概念模型的主要特点:
(1)能真实充分反映现实世界,包括事物的联系,能满足用户对数据的处理要求,是现实世界的一个真实模型。
(2)易于理解。通过该模型可以与不熟悉计算机的用户交换意见。用户的积极参与是数据库设计成功的关键。
(3)易于更改。应用环境和应用要求改变时,容易对概念模型作相应的修改和扩充。
(4)易于向各种数据模型转换。

3、P.P.S.Chen提出的E-R模型(实体-联系模型)是用E-R图来描述现实世界的概念模型。下面先对实体之间的联系做进一步的介绍,然后讲解E-R图。

4、实体之间的联系一般指不同实体型的实体集之间的联系。
回忆:
1.2 数据模型
用于刻画实体的实体名及其属性名集合,称为实体型。
(1)两个实体型之间的联系分为三种:
①一对一联系(1:1)。实体集A中的每一个实体,实体集B中没有或仅有一个实体对应(相联系),反之亦然。
例如:现有若干逃离Raccoon City的逃亡队伍,每队仅一个队长,每个队长仅负责一个队的事务。队长和队伍是一对一联系。
②一对多联系(1:n)。实体集A中的每一个实体,实体集B中有不限数量(可以为零)的实体对应。实体集B中的每一个实体,实体集A中仅有一个实体对应。
例如:一个(或同一系列)Galgame里有多对CP,而一对CP只属于一个(或同一系列)Galgame。
③多对多联系(m:n)。实体集A中的每一个实体,实体集B中有不限数量(可以为零)的实体对应。实体集B中的每一个实体,实体集A中有不限数量(可以为零)的实体对应。
例如:“复联”中的任一超级英雄可以被多个人梦见过(梦见自己变成超英也算),一个人也可以梦见过多名“复联”成员。
(2)两个以上实体型之间的联系也有三种:一对一、一对多和多对多联系。
例如:某富人区中,一个人可以有若干辆车,也可以有若干座别墅。但是一辆车只属于一个人,一幢别墅也只属于一个人。则人和车、别墅之间(已声明)的联系是一对多的。
又如:一个人的作品中可以出现若干个同行作为角色(例:刘慈欣《太原诅咒》中的潘大角(潘海天)),可以引用若干个梗。而一个人可以作为同行出现在多个人的作品中,一个梗也可以被多个作品引用。可见,作品、作为角色的作者的同行,以及引用的梗三者(已声明的联系)是多对多的联系。
(3)单个实体型内的联系也有三种:一对一、一对多和多对多联系。
例如:某人的NAS中,一块磁盘具有若干个镜像盘,而一个镜像盘只对应一个原磁盘。可见原盘与镜像盘之间是一对多的联系。

5、参与联系的实体型数目称为联系的度。两个实体型的联系度为2,称为二元联系;三个实体型的联系度为3,称为三元联系。n个实体型的联系度为n,称为n元联系。

6、E-R图提供了表示实体型、属性和联系的方法。
(1)实体型用矩形表示,矩形内写上实体名。
(2)属性用椭圆表示,用无向边与相应的实体型连接起来。
(3)联系用菱形表示,菱形内写上联系名,用无向边分别与有关实体型连接起来,在无向边旁边标上联系类型(1:1或1:n或m:n)。如果联系也具有属性,这些属性也要用无向边与该联系连接起来。

7、如何确定一个对象是实体还是属性?这个看似简单的问题常常困扰设计人员。实体和属性并没有绝对的界限。不过,为了简化E-R图的处置,现实世界的事物能作为属性的尽量作为属性。判定一个事物应该作为属性,有两条准则:
(1)该事物作为属性后,不再具有需要描述的子性质,即属性不可再分,不能包含其它属性。
(2)属性不与其它实体具有联系。
例如:实验对象是一个实体。下面尝试将编号、实验开始日期和所属计划作为属性。编号和实验开始日期都是不可再分的属性,但所属计划还与经费、密级、负责人、实验地点等挂钩,那么所属计划作为实体比作为属性更合适。
又如:在某科研组织中,一个项目主管只常驻一个基地主持研究。基地的代号或编号可以作为项目主管实体的一个属性。但基地还与高管有联系:一个高管监督多个基地的总体工作,那么基地应该作为一个实体。

8、各个局部应用面向的问题不同,且通常由不同的设计人员做局部视图设计,这就导致各个子系统的E-R图存在许多不一致,称为冲突。这些分E-R图要合并起来形成初步E-R图。合并时不能简单画到一起,而是必须着力消除不一致,以形成一个能为全系统中所有用户共同理解和接受的统一概念模型。
各子系统的E-R图的冲突主要有三类:属性冲突、命名冲突、结构冲突。
(1)属性冲突主要包含两类:
①属性域冲突,即属性值的类型、取值范围(取值集合)不同。例如:一个企业的不同部门对零件的编码方式不同:有的只有数字,有的是数字和字母结合。
②取值单位冲突。例如:为使某高速摄影机在最高帧速率下仍然能获得清晰画面,所允许的相对被摄物体的最高移动速度,有的部门的记录中以km/h作单位,有的以m/s作单位。
属性冲突在理论上好解决,但是解决过程需要各部门一起讨论协商,解决起来并非易事。
(2)命名冲突主要包含两类:
①同名异义。不同意义的对象在不同的局部应用中具有相同的名称。
例如:部门B的“加工对象”指的是加工的生物制剂。而部门T为了防止数据库在被攻破后,暗杀计划暴露,受《赡养人类》的启发,将暗杀对象称为“加工对象”。当然,本例在协商后很可能不会被消除冲突。
②异名同义。同一意义的对象在不同的局部应用中具有不同的名称。
例如:对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。
命名冲突可以发生在实体、联系一级上,也可能发生在属性一级上。属性的命名冲突更常见。处理命名冲突的常用方法也是讨论、协商、行政手段等。
(3)结构冲突主要包含三类:
①同一对象在不同的应用中具有不同的抽象。例如:芯片在某个应用中被当作实体,而在另一个应用中被当作属性。解决方式通常是:将属性变为实体或实体变为属性,使同一对象具有相同的抽象。注意:变换时仍然要遵守实体与属性划分的两个原则。
②同一实体在不同子系统的E-R图中包含的属性个数和属性的排列顺序不同。解决方法一般是:在总的E-R图中,取各子系统的E-R图中属性的并集,再适当调整属性的顺序。
③实体间的联系在不同的E-R图中为不同的类型。如两者有联系和三者有联系、一对多联系和多对多联系。
例如:图(a)中,零件和产品存在多对多的联系“构成”,但(b)中产品、零件和供应商三者还存在多对多的联系“供应”。这两个联系不是包含关系,合并两个E-R图时需要灵活调整。
【梳理】数据库系统概论 第7章 数据库设计 7.3 概念设计
9、在合并为初步的E-R图后,合并结果可能存在冗余的数据和实体间冗余的联系。冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其它联系导出的联系。冗余的数据和联系冗余破坏数据库的完整性,给数据库的维护增加滚南,应当予以消除。消除冗余后的E-R图称为初步E-R图。
消除冗余主要采用分析方法,即:以数据字典和数据流图为依据,根据数据字典中的数据项之间的逻辑关系说明来消除冗余。但并不是所有冗余的信息都应该消除。有时为了提高效率,不得不以冗余信息作为代价。因此在设计数据库概念结构时,要根据用户需求来确定哪些才是应该被清除的冗余信息。如果人为保留了一些冗余数据,则应该在数据字典中增加相应的完整性约束条件。
例如:某大型工厂拥有大量的仓库,它们都存有同一种材料。物料部门常常要核查部分仓库的剩余原料数量。如果总是要查询每个处于查询范围之内的仓库的库存再求和,效率就很低。利用“分块”的思想,将仓库分为若干个组,额外存储每组包含的仓库的该种原料剩余量之和,统计要查询的仓库的此种原料存量时,就可以利用这些冗余数据迅速求得存量之和。同时,要定义相应的完整性约束,在每个仓库的存量变动后,修改相应的组中的存量之和。对全部仓库的此种物料的存量,也可以增加一个额外的数据项直接保存总和,方法类似,不再赘述。

10、还可以用规范化理论来消除冗余。函数依赖提供了消除冗余联系的形式化工具。具体方法是:
确定分E-R图的实体之间的数据依赖。实体之间一对一、一对多、多对多的联系都可以表示成实体的码之间的函数依赖。求出函数依赖并整体作为一个集合F,然后求这个集合的最小依赖集M,差集D = F-M。然后考察D的每个函数依赖,确定是否是冗余的联系。若是,则去掉。
虽然冗余的联系一定在D中,但是D中的联系不一定全是冗余的。而且,实体之间可以存在多种联系,这些联系一定要形式上区分开来,不要误删不是冗余的联系。
例如:某数据中心中,安全部主管提交的E-R图中,机房负责人与机房的工作关系,包含于人事部提交的E-R图中,部门与职工的关系。所以在合并为总的E-R图后,机房负责人与机房的工作关系可以取消。职工的领导与被领导关系,可以由部门与分管领导的关系和部门与职工的从属关系直接导出,所以也可以取消。
【梳理】数据库系统概论 第7章 数据库设计 7.3 概念设计
【梳理】数据库系统概论 第7章 数据库设计 7.3 概念设计
【梳理】数据库系统概论 第7章 数据库设计 7.3 概念设计
【梳理】数据库系统概论 第7章 数据库设计 7.3 概念设计
【梳理】数据库系统概论 第7章 数据库设计 7.3 概念设计
【梳理】数据库系统概论 第7章 数据库设计 7.3 概念设计