教材:王珊 萨师煊 编著 数据库系统概论(第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 概念设计

相关文章: