数据库--关系数据库中的E-R图相关知识

Posted 胜天半月子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库--关系数据库中的E-R图相关知识相关的知识,希望对你有一定的参考价值。

前言


在数据库设计过程中,需求分析和概念设计可以独立于任何数据库管理系统进行,逻辑设计和物理设计与选用的DBMS密切相关。





一、基础知识点

有些基础概念是苦涩难懂的,但是你要尽量耐下心来过一遍,了解其中的含义,再结合相关练习题进行理解。

1. 实体间联系

(1)两个实体间的联系

  1. 一对一联系(1:1)

  2. 一对多联系(1:n)

  3. 多对多联系(m:n)

  • 两个实体之间的三类联系

(2)两个以上实体间的联系

一般地,两个以上的实体型之间也存在着一对一、一对多、多对多联系。

(3)单个实体间的联系

同一个实体集的内的各实体之间也存在着一对一、一对多、多对多联系。


2. 实体

3. 属性


4. 联系集

  • 联系集的度
  • 实例

实体之间的联系:

最终的E-R模型如下:


5. 特化Specialization


6. 泛化和属性继承

7. 聚集

8. E-R设计中的问题

9. 概念结构设计

(1)实体与属性的划分原则

  • 例题





(2)E-R图的集成

  1. 由分E-R图到初步E-R图

冲突类型:

  • 属性冲突:属性值的类型、取值范围或取值集合不同。
  • 命名冲突:①同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。
    ②异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。
  • 结构冲突:①同一对象在不同应用中具有不同的抽象。
    ②同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。

10. 逻辑设计⭐⭐

  • E-R图转换为关系模式:
  • 复合属性
  • 多值属性
  • 1对1关系
  • 多对多关系
  • 弱实体
  • 泛化
  • 多元关系

(1)复合属性


(2)多值属性


(3)实体间关系

  • 1:1联系
  • 双方均部分参与

  • 一方全部参与

在本例中全部参与的一方是部门实体,因此需要将职工实体的关键字属性加入到部门实体的属性中

  • 1:n联系

  • m:n联系

(4)弱实体


(5)泛化和特化


  • 练习


即将person(name,street,city)该实例删除掉

(6)多元联系



二、习题巩固

  1. 对于实体间的联系则有以下不同的情况:
    (1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
    (2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
    (3)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体码的组合组成该关系的码,或码的一部分。
    (4)三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
    (5)具有相同码的关系模式可合并。

  2. E-R图转换为关系实例

  3. 关于E-R图向关系模式的转换的规则正确的是(C)。
    A.复合属性转换时只能将每个分量属性作为所在实体对应关系的属性
    B.一对一联系的转换只能将联系定义为一个新的关系,再将属性设为参与双方的关键字属性
    C.泛化实体与具体化实体在转换时,可以不要泛化实体,而仅将具体化实体转换成关系
    D.一对多联系的转换,需将多方参与实体的关键字作为单方参与实体对应关系的属性


  1. E-R图是在数据库设计中用来表示概念模型的一种常用方法。
  2. 在数据库中存储的是数据以及数据之间的联系
  3. 关系数据模型的基本数据结构是关系
  4. 在关系数据库设计中,设计关系模式是数据库设计中逻辑设计阶段的任务。
  5. E-R图之间的冲突主要有属性冲突命名冲突结构冲突三种。
  6. 某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期工资工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。

(1)根据上述语义画出E-R图;
(2)将该E-R模型转换为关系模型;(要求:1:1和1:n的联系进行合并)
(3)指出转换结果中每个关系模式的主码和外码。

(1)本题的E-R图如下所示:
(2)转化后的关系模式如下:
工厂工厂编号,厂名,地址)
产品产品编号,产品名,规格)
职工职工号,姓名,工厂编号,聘期,工资)
生产工厂编号,产品编号,计划数量)
(3)每个关系模式的主码、外码如下:

  1. 在数据库设计中, E-R图产生于概念设计阶段
  2. 关系数据库的实体完整性规则规定基本关系的 主属性都不能取空值(或NULL)
  3. 数据库系统中最重要的软件是数据库管理系统(或DBMS) ,最重要的用户是 数据库管理员(或DBA)
  4. 在数据库设计中,将E-R图转换成关系数据模型的过程属于逻辑设计阶段
  5. 某医院病房管理系统中,包括四个实体型,分别为:
    科室:科名,科地址,科电话
    病房:病房号,病房地址
    医生:工作证号,姓名,职称,年龄
    病人:病历号,姓名,性别
    且存在如下语义约束:
    ① 一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室;
    ② 一个医生可负责多个病人的诊治,一个病人的主管医生只有一个;
    ③ 一个病房可入住多个病人,一个病人只能入住在一个病房。
    注意:不同科室可能有相同的病房号

(1)画出该医院病房管理系统的E-R图;
(2)将该E-R图转换为关系模型;(要求:1:1和1:n的联系进行合并)
(3)指出转换结果中每个关系模式的主码和外码。

(1)E-R图如下:

(2)E-R图转换为关系模型:
科室科名,科地址,科电话)
病房病房号,科名,病房地址)
医生工作证号,姓名,职称,年龄,科名)
病人病历号,姓名,性别,主管医生,病房号,科名)
(3)每个关系模式的主码和外码如下:
科室:主码是科名;
病房:主码是科名+病房号,外码是科名;
医生:主码是工作证号,外码是科名;
病人:主码是病历号,外码是科名+病房号。

  1. 关系模型的数据结构是二维表结构

  2. 关系模型中,一个候选码可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成

  3. “为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库设计中的物理设计阶段

  4. 数据模型的三大要素:数据结构数据操作完整性约束

  5. 设有商店和顾客两个实体,“商店”有属性商店编号、商店名、地址、电话,“顾客”有属性顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。试画出E-R图,注明属性和联系类型,并将E-R模型转换成关系模式。

    顾客顾客编号,姓名,地址,年龄,性别)
    商店商店编号,商店名,地址,电话)
    购物顾客编号,商店名称,日期,消费金额)

  6. 某工厂生产多种产品,每种产品由不同的零件组装而成,有的零件可用在不同的产品上。产品有产品号和产品名两个属性,零件有零件号和零件名两个属性。根据语义设计E-R模型,并将E-R模型转换成关系模式。

    产品产品号,产品名)
    零件零件号,零件名)
    产品号,零件号

  7. 外模式/模式映象可以保证数据和应用程序之间的逻辑独立性模式/内模式映象可以保证数据和应用程序之间的物理独立性


以上是关于数据库--关系数据库中的E-R图相关知识的主要内容,如果未能解决你的问题,请参考以下文章

DBMS-数据库设计与E-R模型:E-R模型约束E-R图E-R扩展特性E-R图转换为关系模式UML建模

使用Visio画E-R图

使用Visio画E-R图

Mysql数据库基础知识

数据库系统---关系型数据库设计及E-R图

E-R模型中实体和属性的概念?