数据库原理 E-R模型 关系模式 E-R图绘制 E-R图转关系模式

671 阅读6分钟

本文已参与[新人创作礼]活动, 一起开启掘金创作之路。

前言

数据库 顾名思义就是存放数据的仓库

但是数据需要人们的认识、理解、整理、规范和加工,然后才能被存放到数据库中。

总体来说,数据从我们的现实生活进入数据库实际上要经历三个阶段:

  • 1、现实世界 ——能接触到的所有客观对象
  • 2、信息世界 ——经过分类的条理化的信息
  • 3、计算机世界 ——到这就是数据库了

这个时候,概念模型出现了

概念模型是现实世界到计算机世界的一个中间层次

有什么作用呢?

详细说一下,现实世界数据进入数据库的过程:

  • 1、 现实世界的事物反应到人的脑子里
  • 2、 人把这些事物抽象成 一种既不依赖于具体计算机系统,也不为某种数据库操作系统支持的概念模型
  • 3、 接着才把概念模型转化为计算机上某一种数据库操作系统支持的数据模型

直到现在,我们才可以真正引出本文的主角—— E-R模型

实体联系模型(E-R模型) 是被广泛采用的概念模型设计方法。

概念模型中最常用的是E-R模型:她可以描述现实世界的抽象概念、属性和联系

E-R模型学习 E-R图绘制

学E-R模型,我们只需要学三个东西:

  • 实体
  • 联系
  • 属性

实体

概念学习

实体是一个数据对象,指应用中可以区别的客观存在的事物。 如人、部门、物体、项目···这些等的。 实体既可以是实际的事物,也可以是抽象的概念

  • 具体点的学生,课程这些都可以做实体

  • 抽象概念比如 交通工具 涵盖所有种类的交通工具,这也可以是实体

你可能有点懵,我再说得白一点:

只要你能把一些东西给归类起来,归类成一个集合,再给这个集合起个名字,那么这个名字大概八九不离十就是实体了。

实体在E-R图中的绘制

image.png

呃,你没有看错,就这么简单,画一个矩形,然后在里面写上具体的实体名

咱们数据库学习就是这么新手友好。

属性

概念学习

属性就是实体所具有的特性 一个实体可以由若干个属性描述

  • 像学号、姓名、年龄、专业···都可以作为学生实体的属性

只是属性有 属性名和属性值的区别。

这也不是很难理解,联想excel表,上面属性名,下面都是属性值

image.png

属性在E-R图中的绘制

image.png

属性画法是一个圆形,不用太在意圆润不圆润,尽量画好看点就行,然后在里面写上属性名

联系

概念学习

联系就是实体之间的联系

  • 例如教师和课程之间的授课关系
  • 老师和学生之间的师生关系
  • 人与人之间很多很多的关系:亲戚、同学、朋友···等等关系

在现实世界中,事物与事物是有联系的,因此,这些联系同样也要被抽象和反映到信息世界中

在信息世界中被抽象成为实体型内部的联系和实体型之间的联系

属性在E-R图中的绘制

image.png

联系画法是一个菱形,然后在里面写上联系名

E-R图绘制 E-R模型转关系模型 题目练习实操

1.教学管理系统的ER图和数据库逻辑设计

设教学管理系统要处理下列实体:

(1)    学生,其属性包括学号、姓名、性别、年龄、籍贯等

(2)    教师,其属性包括工号、姓名、年龄、职称等

(3)    课程,其属性包括课程代码、课程名、学分等

假定:一位学生能选修多门课程,一门课程可由多位学生选修。学生选修每门课考试后有一个成绩。以为教师能任教多门课,一门课可由多位教师任教。

根据以上需求描述,请按下列要求进行数据库设计:

(1)    根据上述语义画出E-R图(需注明联系类型);

image.png

(2)    转换为等价的关系模型,并指出各关系的主键和外键(若不存在,则写“无”)。

 image.png

2.书籍出版信息管理系统的ER图和数据库逻辑设计

设某书籍出版信息管理系统中要处理书籍、作者、出版社这3类实体的信息,且有如下事实:

  • (1)每本书籍有一个唯一的书号,可能有多位作者参与编写,但只在一家出版社出版。

  • (2)每位作者可能参与多本书籍的编写。

  • (3)作者之间可能同名,图书之间也可能同名,但出版社之间不会同名。

  • (4)书籍信息包括书号,书名;出版社信息包括出版社名,地址,联系电话;作者信息包括身份证号,姓名,性别,年龄。S

根据以上需求描述,请按下列要求进行数据库设计:

(1)根据上述语义画出E-R图(需注明联系类型);

image.png

(2)转换为等价的关系模型,并指出各关系的主键和外键(若不存在,则写“无”)。

  image.png

3.商店信息管理系统的ER图和数据库逻辑设计

上海可的商业连锁集团需要建立信息系统。该系统中存在3个实体集,一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。

商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可以放在多个商店销售,每个商店销售的一种商品有月销售量;商店与职工之间存在“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和工资。

根据以上需求描述,请按下列要求进行数据库设计:

(1)    根据上述语义画出E-R图(需注明联系类型);

image.png

(2)    转换为等价的关系模型,并指出各关系的主键和外键(若不存在,则写“无”)。

image.png

一些思考

不同类型的联系,转换成表

联系分三种类型

  • 1:1 一比一

  • 1:n 一比多

  • n:m 多比多

这个时候存在一些转表的规律

  • 不管什么类型的联系都可以单独成表
  • 一比一 可以单独成表。也可以根据联系,把一张表放入另一张表 来合并表
  • 一比多 可以单独成表。但是只能把一的表,放入多的表 来合并表
  • 多对多 可以单独成表。这个时候合并表稍微要思考一下。

在多对多联系中,要具体分析

比如商品表 和 商店表 :

一个商品可以在多个商店售卖。

一个商店可以售卖多个商品。

这个时候,最好把商品表加入商店表。