-
数据模型
-
数据模型也是一种模型,它是对现实世界数据特征的抽象
-
数据模型是数据库系统的核心和基础
-
两类数据模型
-
概念模型
-
概念模型,也称信息模型,它是按照用户的观点来对数据和信息建模,主要用于数据库设计
-
概念模型的一种表示方法:实体-联系方法->E-R模型
-
基本概念
-
实体
-
客观存在并可相互区别的事物称为实体
-
属性
-
实体所具有的某一特性称为属性
-
键
-
唯一标识实体的属性称为键
-
实体型
-
用实体名及其属性名集合来抽象和刻画同类实体,称之为实体型,例如
-
实体集
-
同一类型实体的集合称为实体集,例如全体学生就是一个实体集
-
联系
-
现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系,实体内部的联系通常是指组成实体的各个属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。
-
实体之间的联系有一对一、一对多和多对多等多种类型
-
特点:
-
能够真实地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是现实世界的一个真实模型
-
易于理解,可以用它和不熟悉计算机的用户交换意见。
-
易于更改,当应用环境和应用要求改变时容易对概念模型修改和扩充
-
易于向关系、网状、层次等各种数据模型转换
逻辑模型和物理模型
-
逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型
-
物理模型是对数据最底层的抽象
首先将现实世界抽象成信息世界,然后将信息世界转换为机器世界
-
E-R模型
-
实体之间的联系
-
两个实体之间的联系
-
一对一联系(1:1)
-
如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1
一对多联系(1:n)
-
如果对于实体集A的每一个实体,实体集B中有n个实体(n>=0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n
多对多联系(m:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m>=0)与之联系,则称实体集A与实体集B具有多对多联系,即为m:n
-
两个以上实体之间的联系
-
一般地,两个以上的实体型之间也存在着一对一,一对多和多对多联系
-
单个实体型内的联系
-
同一个实体集内的各个实体之间也可以存在一对一、一对多和多对多的联系。
-
一般地,把参与联系的实体型的数目成为联系的度。两个实体型之间的联系度为2,也成为二元联系,三个实体型之间的联系读为3,也称为3元联系,N个实体型之间的联系度为N,也称N元联系
E-R图
-
E-R图提供了表示实体型、属性和联系的方法
-
实体型用矩形表示,矩形框内写明实体名
-
属性用椭圆表示
-
联系用菱形表示
扩展E-R模型
-
ISA联系
-
用E-R方法构建一个项目的模型时,经常会遇到某些实体型是某个实体型的子类型,例如,研究生和本科生是学生的子类型,学生是父类型。这种父类和子类联系称为ISA联系,表示“is a”的语义
-
ISA联系一个重要的性质是子类继承了父类的所有属性,当然,子类也可以有自己的属性。
-
分类方法
-
分类属性
-
分局分类属性的值把父实体型的实体分派到子实体型中
不相交约束和可重叠约束
-
不相交约束描述父类中的一个实体不能同时属于多个子类的实体集,即一个父类中的实体最多属于一个子类实体集。
-
如果父类中的一个实体能同时属于多个子类中的实体集,则称为可重叠约束
完备性约束
-
完备性约束描述父类中的一个实体是否必须是一个子类的实体,如果是,则叫做完全特化,否则叫部分特化
-
完全特化用父类到子类的双线连接表示,单线则表示部分特化
基数约束
-
基数约束是实体之间一对一、一对多和多对多联系的细化,参与联系的每个实体型用基数约束来说明实体型中的任何一个实体可以在联系中出现最少次数
-
基数约束用一个数对min.max表示,0<=min<=max。
-
min=1的约束叫做强制参与约束,即被施加基数约束的实体型中的每个实体都要参与联系
-
min=0的约束叫做非强制参与约束,被施加基数约束的实体型中的实体可以出现在联系中,也可以不出现在联系中
part of 联系
-
Part of 联系即部分联系,它表明某个实体型是另外一个实体型的一部分
-
分类
-
非独占part of联系:整体实体如果被破坏,部分实体仍然可以独立存在
-
独占part of 联系:整体如果被破坏,部分实体不能存在,在E-R图中用弱实体;类型和识别联系来表示独占联系,如果一个实体型的存在依赖于其他实体,则这个实体型叫做弱实体型,否则叫做强实体型
概念结构设计
-
实体与属性的划分原则
-
为了简化E-R图的处置,显示世界的事务能作为属性对待的话尽量作为属性
-
什么条件的事物可以作为属性对待呢? 准则如下
-
作为属性,不能再具有需要描述的性质。属性必须是不可分割的数据项,不能包含其他属性
-
属性不能与其他实体有联系。E-R图中所表示的联系是实体之间的联系
E-R图的集成
-
在开发一个大型信息系统时,最经常采用的策略是自顶向下地进行需求分析,然后再自底向上的设计概念结构
-
首先设计各子系统的分E-R图,然后将它们集成起来得到全局E-R图
-
E-R图的集成一般需要分两步:合并、修改和重构
-
合并E-R图,生成初步E-R图
-
各个子系统的E-R图之间的冲突主要有三类:属性冲突、命名冲突、结构冲突合并
-
属性冲突
-
属性域冲突
-
属性取值单位冲突
-
命名冲突
-
同名异义
-
异名同义
-
结构冲突
-
同一个对象在不同应用中具有不同的抽象
-
解决方法:把属性变换为实体或把实体变换为属性,使同一个对象具有相同的抽象
同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同
-
这是很常见的一类冲突,原始是不同的局部应用关心的是该实体的不同侧面
-
解决方法是使该实体的属性取各个子系统的E-R图中的属性的并集,再适当调整顺序
实体间的联系在不同的E-R图中为不同的类型
消除不必要的冗余
-
在初步E-R图中可能存在一些冗余的数据和实体之间冗余的联系
-
所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系
-
消除了冗余后的初步E-R图称为基本E-R图
-
消除冗余采用分析方法,即以数据字典和数据流图为依据,根据数据字典中关于数据项之间的逻辑关系的说明来消除冗余
-
也可以用规范化理论来消除冗余
-
确定分R-R图实体之间的数据依赖
-
求Fl的最小覆盖Gl,差集为D=Fl-Gl
-
冗余的联系一定在D中,而D中的联系不一定是冗余的
-
当实体之间存在多种联系时,要将实体之间的联系在形式上加以区分
来源:https://www.cnblogs.com/ykyk1229/p/9338356.html