一、思想与方法
1.数据模型与概念模型
数据模型:表达计算机世界的模型
概念模型:表达信息世界的模型
2.E-R数据建模基本思想
(1)基本概念
基本观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成
基本概念:实体、属性、联系、关键字/码
例如学生、课程、教师是三个实体,其中学生的学号姓名等,课程的课程号课程名等,教师的教师编号教师名等,都是对应实体的属性。任课关系将教师和课程两个实体关联在以起。关键字/码是能唯一区分开每一个实例的属性或属性组合。
(2)实体与实例
实体:某个班级内所有的学生构成的集合是一个实体
实例:班级内的学生1,学生2,....,学生m是一个个实例
(3)属性的类型
- 单一属性和复合属性
例如家庭住址这一属性又由单一属性省份,详细住址构成,为了满足关系的第一范式,需要将复合属性转化为单一属性
- 单值属性和多值属性
多值属性例如一个人可能有多个电话号码,为了满足关系的第一范式,需要将多值属性转化成单一属性
- 可空值属性和非空值属性
每个实例的该属性值可以是或不能是空值
- 导出属性
由其他属性计算得到
(4)联系的类型
常见的联系有一元类型、二元类型、三元类型
- 一元联系
零件这个实体中,零件A由零件B和零件C装配构成。显然这是个一元联系,因此需要区分同一个实体中不同的实例,还要将这些实例关联起来
将这种装配关系定义用父件和子件这两个属性区分开来
再将实体中的各实例关联,建立如下表:
- 二元关系
比如借阅关系中,读者与图书两个实体通过二元关系关联起来
- 三元关系
例如供应商、零件、工程项目,三个实体构成了三元联系
需要注意的是,实体是相对较稳定的,但联系却是多样化的,基于此可以设计不同型式的表来表示联系
(5)联系的基数
一个实例通过一个联系能与另一个实体中相关联的实例数目称作联系的基数。
实体参与联系有最小基数和最大基数,记作(min...max)
常见的映射基数有一对一,一对多,多对多的情况。不同的基数的联系的设计方式同。
假设有两个实体:员工(员工号,姓名,性别),部门(部门号,部门名)
如果一个员工只能属于一个部门,一个部门可以有多个员工,则关系应设计成如下型式:
如果一个员工能属于多个部门,一个部门可以有多个员工,则关系应设计成如下型式:
(6)完全参与联系与部分参与联系
- 完全参与联系:该端实例至少有一个参与到联系中,最小基数为1(1...m)
- 部分参与联系:该端实例可以不参与联系,最小基数为0(0...m)
完全参与联系与部分参与联系同时也影响了联系的设计方式,例如:
上述允许有空值就表示部分参与联系,不允许有空值表示完全参与联系。
二、E-R模型表示方法
1.Chen方法
(1)基本元素
(2)联系区分方式
第一种表示方式
第二种表示方式
(3)基本实体-联系表达示例
E-R模型地基本实体-联系表示
上述简述E-R模型图中,图书和读者由联系"借阅"关联起,一个读者可以借阅m本图书,一本图书可以经n个读者借阅。同样地,一个书架可以存放m本图书,一个图书只能保存在一个书架上。
(4)E-R模型完整实体-属性-联系表达
(5)E-R模型带组合、多值和导出属性的表达
(6)一元联系地表述方式
(4)E-R模型建立过程示例——仓库管理的E-R模型
需求理解:
- 管理零件
- 管理零件来源
- 管理零件去向
- 管理多个仓库
- 管理职工
建模步骤:
- 理解需求,寻找实体
- 刻画每一个实体的属性
零件中的供应商和仓库属于联系,因此会在后面过程中画出来
- 确定每一个实体的关键字/码
- 分析实体之间的联系
- 进一步地
- 最后检查是否覆盖了要求
2.Crow's foot方法
(1)基本元素
(2)联系区分方式
(3)基本实体-联系的表达
画家与作品间的联系是1:m,一幅画只能属于一个画家,但画家能有很多幅画
学生与课程班间的联系是m:n,一个学生可以选多门课程,一个课程可以有多个学生学
(4)完全参与和部分参与联系的表达
教师与课程班之间的联系是1:m
一种情况是,一个教师至少要教一个课程班,而一个课程班只能由一个教师来教
教师与课程班之间的联系也可以是,一个教师可以教几个课程班,但也可以不教,一个课程班只能由一个教师来教
(5)一元关系的表达
一个part可以由多个其他的part构成,同样一个part也可以构成多个其他的part,但都可以不参与。
一个雇员可以与另一个但只能是一个雇员结婚,当然也可以不结婚
(6)仓库管理E-R模型
三、数据库中的抽象
现实世被抽象为信息世界,信息世界由被抽象成计算机世界。
建模的不同层次: