数据库原理与应用 第 1 章 · 第四节
课程第 1 章第四节 过渡现实世界信息世界实体与属性实体型与实体集码与域联系三种类型多元与内部
第 1 章 数据库系统概述 · 第四节

现实世界与信息世界

实体、属性、码、域、联系,把事物抽象成信息
本 节 知 识 点
  1. 301.4 三个世界及有关概念
  2. 31现实世界
  3. 32信息世界
  4. 33实体与属性
  5. 34实体型与实体集
  6. 35码与域
  7. 36联系
  8. 37两个实体型之间的三种联系类型
  9. 38两个以上实体型间的联系与实体型内部的联系
30
第 1 章 · 第四节

1.4 三个世界及有关概念

把现实中的事物变成数据库里的表,要经过现实世界、信息世界、计算机世界三次翻译。

第 30 页课件

重 点这一块看的时候抓两点

第一,三个世界各自的一套术语,课件第 41 页有一张对应表,前面所有名词最后都汇到那张表上。第二,信息世界的实体、属性、码、联系四个概念是第 13 章画 E-R 图的地基,第 2 章讲关系时也会一一对应上。

打个比方

一个“学生”,在现实世界里是一个活生生的人,在信息世界里是一条“学号、姓名、性别”的描述,在计算机世界里是表里的一行记录。三次翻译,每次都丢掉一些细节,留下需要的部分。

想一想

如果只让你用三个词描述你自己,你会选哪三个?

31
第 1 章 · 第四节

现实世界

现实世界里的事物靠若干特征来区分,事物之间又相互联系。

第 31 页课件

重 点两个动作:挑特征,记联系

挑特征不是把所有特征都记下来,只挑感兴趣的、能把事物区分开的。课件的例子是课程号、课程名、课时,三样足以区分不同的课。记联系是把事物之间的关系也当作要描述的对象,例如“教师讲授课程”。挑什么特征取决于要干什么,教务处记学号和班级,校医院会多记血型。

打个比方

描述一位同学,你不会记他今天穿什么颜色的鞋,但一定会记学号,因为同名的人有,同学号的人没有。

想一想

要描述一门课,除了课程号、课程名、课时,你还会加哪个特征?

32
第 1 章 · 第四节

信息世界

信息世界是人脑对现实世界的抽象,把感兴趣的事物和联系记录、整理、格式化之后的结果。

第 32 页课件

重 点关键动作是抽象

抽象就是抛掉无关细节、留下结构。课件例子里的学生信息、教师信息是对事物的抽象,学生选课信息、教师授课信息是对联系的抽象,两类东西在信息世界里同样重要,后面画 E-R 图时一类是矩形,一类是菱形。

打个比方

信息世界像一张地图。地图不画每一棵树、每一块砖,只画路和地标。路和地标是实体,路口是联系,看地图的人靠这些就能走到目的地。

想一想

画一张校园地图,你会保留什么,去掉什么?

33
第 1 章 · 第四节

实体与属性

实体是可以相互区别的事物,属性是实体的特征,属性又分型和值。

第 33 页课件

关键术语

实体Entity
客观存在并且可以相互区别的事物,可以是具体的人和物,也可以是抽象的事件。
属性Attribute
实体所具有的某一特性。属性名是型,属性的具体内容是值。

重 点型与值

“姓名”是型,“王芳”是值。“年龄”是型,“19”是值。型是空格的名字,值是填进空格的内容。实体可以是抽象的,一次选课、一场考试、一笔转账都算实体,它们看不见摸不着,但彼此能区分。

打个比方

一张空白的报名表只有型,每一栏的标题就是属性名。填完之后才有值。一百个人填了一百张,就是一百个实体。

想一想

“一次期末考试”可以算一个实体吗?

34
第 1 章 · 第四节

实体型与实体集

实体型是同类实体的模板,实体集是这一类实体的全体。

第 34 页课件

关键术语

实体型Entity Type
用实体名和属性名集合来描述同类实体,如课程(课程号,课程名,课时)。
实体集Entity Set
同型实体的集合,如所有的学生、所有的课程。

重 点课件上那种写法

“课程(课程号,课程名,课时)”这种名字加一对括号的写法就是实体型,括号里全是属性名,没有任何具体值。到了计算机世界,实体型对应表的结构,实体集对应表里的全部行,一个实体对应一行。

打个比方

饼干模具是实体型,用它压出来的一整盘饼干是实体集,其中每一块饼干是一个实体。模具只有一个,饼干可以有很多,每块的花纹一样,大小口味可以不同。

想一想

“学生(学号,姓名,性别)”和“全校八千名学生”,哪个是型,哪个是集?

35
第 1 章 · 第四节

码与域

码是能唯一认出一个实体的属性,域是一个属性允许取值的范围。

第 35 页课件

关键术语

Key
实体型中能唯一标识一个实体的属性或属性集,也叫键。
Domain
某一属性的取值范围。

重 点

码可以是一个属性,也可以是几个属性合在一起。学号是码,姓名不是,因为会重名。域限定了值只能从哪个范围里取,课件的例子是学号为 6 位整数、性别只能是男或女、年龄是小于 40 的整数,不在域里的值应当被拒绝,这是后面建表时定义约束的雏形。

练一练

下列哪个属性适合做学生实体的码?
  1. A姓名
  2. B学号
  3. C年龄
  4. D班级
答案 B

码必须能把任意两个学生区分开。姓名会重复,年龄和班级更是很多人相同,只有学号做到了一人一个。

想一想

一个班级里,“座位号”能不能做学生的码?

36
第 1 章 · 第四节

联系

联系分三种范围:两个实体型之间、两个以上实体型之间、一个实体型内部。

第 36 页课件

关键术语

联系Relationship
实体与实体之间的关系,在信息世界里和实体一样是要描述的对象。

重 点三种范围各一个例子

学生与课程之间的选课,是两个实体型之间的联系。供应商、项目、零件三方之间的供应,是两个以上实体型之间的联系。职工内部谁领导谁,是单个实体型内部的联系,两头连的是同一类实体。第 13 章画 E-R 图时,联系一律画成菱形。

打个比方

两个人握手是两个实体型之间的联系,三个人合伙开店是多个实体型之间的联系,一个家族里谁是谁的长辈是实体型内部的联系。

想一想

“同学之间互相认识”属于哪一种联系?

37
第 1 章 · 第四节

两个实体型之间的三种联系类型

一对一、一对多、多对多,看的是两边各自最多能对应几个。

第 37 页课件

重 点判断的步骤

先从 A 的一个实体出发,数它最多对应 B 的几个,再从 B 的一个实体出发,数它最多对应 A 的几个。两边都是一个,就是一对一。一边多一边一,就是一对多,多的那头写 n。两边都多,就是多对多。课件的例子里,班级与班长是 1:1,班级与学生是 1:n,学生与课程是 m:n。

试一试点一对例子,看连线

点一对例子,看左右两边怎么连线。判断的办法是从一边的一个点出发,数它最多连到对面几个点。

想一想

“学生与宿舍床位”是哪一种联系?

38
第 1 章 · 第四节

两个以上实体型间的联系与实体型内部的联系

三个实体型之间的联系画成一个菱形连三方,实体型内部的联系是同一类实体自己和自己发生联系。

第 38 页课件

重 点怎么读这两张图

左图的供应联系上写着数量,因为一次供应是哪个供应商、给哪个项目、供哪种零件、供多少,四样合起来才说得清,数量属于联系而不属于任何一方。供应商、项目、零件三边标的 m、n、n 表示三方之间都是多对多。右图职工的“领导”联系两头都连回职工,1 端是领导,n 端是被领导的人,一个人可以同时是别人的上级和另一些人的下级。

打个比方

“课程的先修课”也是内部联系:数据库原理的先修课是程序设计,两头都是课程实体。

想一想

“学生互相评阅作业”,这个联系是哪一种范围、哪一种类型?

保山学院·人工智能教研室·曹鼎鼎