|
一、信息模型 |
|
1、定义 |
为正确直观地反映客观事物及其联系,对所研究的信息世界, 建立一个抽象的模型,称这为信息模型。
△ 在进行数据库设计前首先要建立信息模型, 对用户所关心的问题进行模拟 △ 信息模型反映客观事实 △ 信息模型有很多种,其中最为流行的一种是实体联系模型 ( Entity-Relationship Model, 简称ER模型 ), 由美籍华人陈平山于1976 年提出。
|
2、实体联系模型 |
(1) 三要素(三个基本语义) A. 实体 (Entity):表客观事物。 B. 属性 (Attributes) :表客观事物的特征(属性) C. 联系 (Relations) :客观事物之间的联系。
(2) 刻划工具:实体-联系图(ER图) ER图表示方法:用矩形表示实体、用椭圆表示属性、用菱形表示。 实体间的联系,以及属性和实体间、实体和联系间用线段连接
例1.2.1:假设一个学生可选多门课程,而一门课程又有多个学生选修, 一个教师可讲多门课程,一门课程至多只有一个教师讲授。 图1.2.1 教学管理的实体联系模型ER图 简化表示:
|
3、概念及术语 |
(1) 实体与实体类型 实体:可以相互区别客观事物和概念统一抽象 例如:学生、回扣、医疗
实体类型:将具有共性的一类实体抽象为实体类型 (2) 属性和域 属性:对实体特征的描述 域:属性的取值范围
△同一实体类型所有实体都具有相同的属性及相同的对应域, 但属性的在域上的取值不一定相同。
△属性分类:
|
| 分类标准 | 分类情况 | 性 质 | 举 例 |
属 性 | 按组成分类 | 原子属性 | 属性不可再分 | 性别、颜色 |
组合属性 | 属性可以再分 | 出生日期、籍贯 |
按取值分类 | 单值属性 | 对应域中的元素为单个值 | 一个人的性别 |
多值属性 | 对应域中的元素为多个值 | 一个人的学位 |
△ 实体与属性、原子属性与组合属性的划分存在一定的相对性,无绝对界线 (这是由于描述事物的抽象层次不同或观察研究问题的角度不同而引起的)
示例: 车:型号、颜色、制造厂 颜色:R+G+B 制造厂:厂名+厂址+建厂时间+规模 工资:应发工资+扣除金额+实发金额 △ 实体键(实体标识符):能唯一标识实体的属性或极小属性组 △ E-R图中: 带下划线的属性为实体键或实体键的一部分。 组合属性用一个树型表示。多值属性用虚线椭圆表示或标出。 图1.2.3 学生实体ER图表示 △ 关系型数据库系统不能处理组合属性和多值属性的情况, 实际操作时要转化成原子属性和单值属性的情况。
(3) 联系:实体之间的关系抽象为联系。
① 联系分类
|
| 分 类 | 定 义 | 举 例 |
联 系 | 1:1(一对一联系)
| A中任意实体至多对应B中的一个实体,反之B中的任意实体 至多对应A中的一个实体 | 观众与座位、 乘客与车票、 病人与病床、 学校与校长、灯泡与灯座 |
1:n(一对多联系)
| A中至少有一个实体对应B中的 多个实体,反之B中的任意实体 至多对应A中的一个实体 | 城市与街道、 宿舍与学生、 父亲与子女、班级与学生 |
m:n(多对多联系)
| A中任意实体至少有一个实体对应B中的多个实体,反之B中的任意实体至少对应A中的多个实体 | 学生与课程、 工厂与产品、商店与顾客 |
② 基数比约束(Cardianlity radio constraint) 实体间的1:1、1:n、m:n地参与联系的约束关系称为基数比约束。
③ 参与约束(Participant constraint) 由实体类型中实体是否全部参与联系来描述实体在联系中的参与约束。
|
| 分 类 | 概 念 | 举 例 |
参 与 约 束 | 完全参与 | 若某实体类型中的每一实体 都参与某种联系,则该实体类型 完全参与 (Totalparticipation)该联系; | | 课程 |
部分参与 | 若某实体类型中的可能存在某些 实体不参与联系,则该实体类型 部分参与 (Partialparticipation)该联系 | 教师 |
④ 结构约束(Structural constraint) 用一对整数(min,max)(其中0≤min≤max且max≥1 ) 表示实体参与联系的最小和最大次数, 用以度量实体参与联系的程度即实体参与度。
|
讨论: A、B两实体类型间存在联系R,A、B对R的参与度分别为(minA,maxA)和(minB,maxB) |
假 设 条 件 | 结论1 | 结论2 | 结论3 |
minx(x=A,B) = 0 | 实体类型部分参与R | 参与约束 | 基数比约束与参与约束 可统一用结构约束描述 |
minx(x=A,B) > 0 | 实体类型完全参与R |
maxA=maxB = 1 | 1:1联系 | 基数比约束 |
仅maxA或maxB为1 | 1:n联系 |
maxA,maxB >1 | m:n联系 |
例1.2.2:假设一个学生可选多门课程(假设至多25门,至少20门), 而一门课程又有多个学生选修(假设每门课程至少5人,至多120人), 一个教师至多可讲3门课程,一门课程至多只有一个教师讲授。 图1.2.4 教学管理的实体联系模型ER图
简化表示: ⑤ 联系的元:某一联系R所对应的实体类型有n个,称为R为n元联系。 分类: A. 一元联系 n=1 B. 二元联系 n=2 C. 多元联系 n>2 示例: 一元联系: 图1.2.6 二元联系ER图 (含基数比约束、参与约束及结构约束的表示) 二元联系: 图1.2.7 二元联系ER图 (含基数比约束、参与约束及结构约束的表示) 多元联系: 图1.2.8 三元联系ER图 (含基数比约束、参与约束的表示)
⑥ 联系属性:联系可以有自己属性。 (4) 弱实体类型 某一实体的存在依赖于另一个实体,且本身不具有关键属性, 这类实体称为弱实体。
示例: 图1.2.9 实体间依赖关系举例 △ 此时被依赖实体称为依赖实体的所有者,两者之间存在“所有”联系。 △ 弱实体不能单独存在,因而是完全参与“所有联系”。 △ 弱实体可处理为实体(E-R图中有双矩形表示, 亦可作为所有实体的一个多值组合属性。 (5) 实体间的依赖 分类: A. 存在依赖: 一个实体集合存在完全依赖与另一实体集合 B. ID依赖: 一个实体的集合必须通过和另外的实体集合的联系,才能予以标识。 结论:ID依赖必定是存在依赖
|
4、实体-联系模型的局限性 |
实体-联系模型是一种静态信息模型,只能反映当前状态, 不能反映实体的变化过程。 △ 目前数据库多是采用实体-联系模型。
|
5、如何建立实体-联系模型 |
(1) 了解用户需要用数据库解决那些问题,即用户问题表要填写那些项目; (2) 根据问题表,确定实体模型应包含那些实体才能满足用户需要解决的问题; (3) 这些实体中哪些实体是明显的; (4) 根据考虑问题的范围和角度,确定是否有实体间的某种联系 或某个实体的某个属性也应视为概念存在的实体; (5) 根据现有技术条件,实际能够观测和存储那些实体和那些属性,等等。 例1.2.3:试设计一个实体-联系模型以存放初二年级期末考试 语文、数学、英语、物理、化学五门课程学生成绩。
|
解法 | ER图 | 分 析 |
① | | 能够满足要求,但模型不具有可扩展性 |
② | | 能够满足要求,模型具有可扩展性, 但数据存在冗余,易造成数据不一致性 |
③ | | 能够满足要求,但模型不具有可扩展性, 和①雷同,操作比①麻烦 |
④ | | 能够满足要求,模型具有可扩展性, 数据不存在冗余,数据一致性好。
(为最佳答案) |
第一章 基础知识
转载于:https://www.cnblogs.com/veryverygood/archive/2006/01/13/316468.html