第 1 章 数据库系统概述 · 第四节
现实世界与信息世界
实体、属性、码、域、联系,把事物抽象成信息
30
第 1 章 · 第四节
1.4 三个世界及有关概念
把现实中的事物变成数据库里的表,要经过现实世界、信息世界、计算机世界三次翻译。
重 点这一块看的时候抓两点
第一,三个世界各自的一套术语,课件第 41 页有一张对应表,前面所有名词最后都汇到那张表上。第二,信息世界的实体、属性、码、联系四个概念是第 13 章画 E-R 图的地基,第 2 章讲关系时也会一一对应上。
打个比方
一个“学生”,在现实世界里是一个活生生的人,在信息世界里是一条“学号、姓名、性别”的描述,在计算机世界里是表里的一行记录。三次翻译,每次都丢掉一些细节,留下需要的部分。
想一想
如果只让你用三个词描述你自己,你会选哪三个?
现实世界里的事物靠若干特征来区分,事物之间又相互联系。
重 点两个动作:挑特征,记联系
挑特征不是把所有特征都记下来,只挑感兴趣的、能把事物区分开的。课件的例子是课程号、课程名、课时,三样足以区分不同的课。记联系是把事物之间的关系也当作要描述的对象,例如“教师讲授课程”。挑什么特征取决于要干什么,教务处记学号和班级,校医院会多记血型。
打个比方
描述一位同学,你不会记他今天穿什么颜色的鞋,但一定会记学号,因为同名的人有,同学号的人没有。
想一想
要描述一门课,除了课程号、课程名、课时,你还会加哪个特征?
信息世界是人脑对现实世界的抽象,把感兴趣的事物和联系记录、整理、格式化之后的结果。
重 点关键动作是抽象
抽象就是抛掉无关细节、留下结构。课件例子里的学生信息、教师信息是对事物的抽象,学生选课信息、教师授课信息是对联系的抽象,两类东西在信息世界里同样重要,后面画 E-R 图时一类是矩形,一类是菱形。
打个比方
信息世界像一张地图。地图不画每一棵树、每一块砖,只画路和地标。路和地标是实体,路口是联系,看地图的人靠这些就能走到目的地。
实体是可以相互区别的事物,属性是实体的特征,属性又分型和值。
关键术语
实体Entity客观存在并且可以相互区别的事物,可以是具体的人和物,也可以是抽象的事件。
属性Attribute实体所具有的某一特性。属性名是型,属性的具体内容是值。
重 点型与值
“姓名”是型,“王芳”是值。“年龄”是型,“19”是值。型是空格的名字,值是填进空格的内容。实体可以是抽象的,一次选课、一场考试、一笔转账都算实体,它们看不见摸不着,但彼此能区分。
打个比方
一张空白的报名表只有型,每一栏的标题就是属性名。填完之后才有值。一百个人填了一百张,就是一百个实体。
实体型是同类实体的模板,实体集是这一类实体的全体。
关键术语
实体型Entity Type用实体名和属性名集合来描述同类实体,如课程(课程号,课程名,课时)。
实体集Entity Set同型实体的集合,如所有的学生、所有的课程。
重 点课件上那种写法
“课程(课程号,课程名,课时)”这种名字加一对括号的写法就是实体型,括号里全是属性名,没有任何具体值。到了计算机世界,实体型对应表的结构,实体集对应表里的全部行,一个实体对应一行。
打个比方
饼干模具是实体型,用它压出来的一整盘饼干是实体集,其中每一块饼干是一个实体。模具只有一个,饼干可以有很多,每块的花纹一样,大小口味可以不同。
想一想
“学生(学号,姓名,性别)”和“全校八千名学生”,哪个是型,哪个是集?
码是能唯一认出一个实体的属性,域是一个属性允许取值的范围。
关键术语
码Key实体型中能唯一标识一个实体的属性或属性集,也叫键。
重 点
码可以是一个属性,也可以是几个属性合在一起。学号是码,姓名不是,因为会重名。域限定了值只能从哪个范围里取,课件的例子是学号为 6 位整数、性别只能是男或女、年龄是小于 40 的整数,不在域里的值应当被拒绝,这是后面建表时定义约束的雏形。
练一练
下列哪个属性适合做学生实体的码?
- A姓名
- B学号
- C年龄
- D班级
答案 B码必须能把任意两个学生区分开。姓名会重复,年龄和班级更是很多人相同,只有学号做到了一人一个。
联系分三种范围:两个实体型之间、两个以上实体型之间、一个实体型内部。
关键术语
联系Relationship实体与实体之间的关系,在信息世界里和实体一样是要描述的对象。
重 点三种范围各一个例子
学生与课程之间的选课,是两个实体型之间的联系。供应商、项目、零件三方之间的供应,是两个以上实体型之间的联系。职工内部谁领导谁,是单个实体型内部的联系,两头连的是同一类实体。第 13 章画 E-R 图时,联系一律画成菱形。
打个比方
两个人握手是两个实体型之间的联系,三个人合伙开店是多个实体型之间的联系,一个家族里谁是谁的长辈是实体型内部的联系。
37
第 1 章 · 第四节
两个实体型之间的三种联系类型
一对一、一对多、多对多,看的是两边各自最多能对应几个。
重 点判断的步骤
先从 A 的一个实体出发,数它最多对应 B 的几个,再从 B 的一个实体出发,数它最多对应 A 的几个。两边都是一个,就是一对一。一边多一边一,就是一对多,多的那头写 n。两边都多,就是多对多。课件的例子里,班级与班长是 1:1,班级与学生是 1:n,学生与课程是 m:n。
试一试点一对例子,看连线
点一对例子,看左右两边怎么连线。判断的办法是从一边的一个点出发,数它最多连到对面几个点。
38
第 1 章 · 第四节
两个以上实体型间的联系与实体型内部的联系
三个实体型之间的联系画成一个菱形连三方,实体型内部的联系是同一类实体自己和自己发生联系。
重 点怎么读这两张图
左图的供应联系上写着数量,因为一次供应是哪个供应商、给哪个项目、供哪种零件、供多少,四样合起来才说得清,数量属于联系而不属于任何一方。供应商、项目、零件三边标的 m、n、n 表示三方之间都是多对多。右图职工的“领导”联系两头都连回职工,1 端是领导,n 端是被领导的人,一个人可以同时是别人的上级和另一些人的下级。
打个比方
“课程的先修课”也是内部联系:数据库原理的先修课是程序设计,两头都是课程实体。
想一想
“学生互相评阅作业”,这个联系是哪一种范围、哪一种类型?