数据模型
根据抽象层面的不同,数据模型可分为:概念层模型、逻辑层模型、物理层模型。
- 数据模型通常由数据结构、数据操作、数据约束三个要素组成。
- 数据模型应满足三点要求:
能比较真实地模拟现实世界
容易为人们所理解
便于在计算机上实现
概念模型
又称语义模型
实体联系模型(E-R模型)、扩充的实体-联系模型(EER模型)、面向对象模型、谓词模型
- 概念模型是现实世界到信息世界的语义抽象
- 概念模型是从用户观点对数据和信息的建模
- 是数据库设计者与用户之间交流的工具
- 是数据库逻辑模型的基础
- <性质> 表示简单、易于理解、易于变动且具有较强的语义表达能力,独立于具体的逻辑模型并易于向逻辑模型转换
-
实体-联系模型(ER模型)
是最常用的概念模型。(它提供不受任何DBMS约束的面向用户的表达方法)
将局部的ER图集成为全局的ER图时,可能存在三类冲突:- 属性冲突:包括类型、取值范围、取值范围的冲突
- 结构冲突
- 命名冲突:包括实体类型名、联系类型名之间异名同义或同名异义
-
扩充的实体-联系模型(EER模型)
在ER模型基础上增加概括,聚集等语义描述,形成扩充的实体-联系模型,即EER模型。
ER模型一般与关系模型关联,EER模型与对象-关系模型关联
逻辑模型
又称结构数据模型
层次模型、网状模型、关系模型、面向对象模型、对象关系模型
-
层次模型
用树状结构表示实体及其之间的联系,树中每一个节点代表一个记录类型,树状结构表示实体型之间的联系。 -
网状模型
用网络结构表示实体类型及其实体之间联系的模型,网状模型的记录之间联系是通过指针实现的。 -
关系数据模型(1970年美国IBM公司的E.F.Codd提出)
用二维表的形式表示实体和实体间联系的数据模型。
- 关系数据模型由关系数据结构、关系操作集合、关系完整性约束三大要素组成。
- 关系模型是数字化模型,集合论、数理逻辑等知识可以引入关系模型中。
- 关系数据模型中数据的物理结构是一张二维表
- 二维表中的列(字段)称为属性,属性的个数称为关系的元或度。
- 二维表中的行(记录的型),即对关系的描述称为关系模式。
- 关系中包含在任何一个候选码中的属性称为主属性。
- 常用的关系操作:投影、选择、连接、除、并、交、差,以及查询操作和插入、删除、更新操作。
关系操作通过关系语言实现,特点是高度非过程化。
基本的操作:并、差、笛卡尔积、投影、选择。
并、交、差三种操作必须满足相容性条件。 - 关系数据语言:关系代数语言、关系演算语言、兼具两者双重特点的语言。
特点:语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够独立使用也可以嵌入高级语言中使用。
物理模型
- 物理层模型描述逻辑模型的物理实现。
- 物理层模型是数据库最低层的抽象。
- 它确定数据的物理存储结构、数据存储路径以及调整、优化数据库的性能。
- 设计目标:提高数据库性能和有效利用存储空间
数据操作
- 数据操作表示数据模型的动态行为。
- 数据操作是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则。
- 数据库主要有检索和修改(包括插入、删除、更新)两大操作。
数据结构
- 是所研究的对象类型的集合,是对系统静态特性的描述。
- 数据结构以一种统一的方式描述基本数据项的类型与性质。
- 在数据库系统中,通常按照其数据结构的类型来命名数据模型。
层次结构模型,指的是数据库系统的数据结构是层次的。
数据约束
数据完整性约束、数据安全性约束、并发性等约束。
数据约束既刻画了数据静态特征,也表示数据动态行为的规则。
实体完整性约束
是对关系中主码或主键属性值的约束
- 若属性A是关系R的主属性,则属性A不能取空值
- 每个关系必须有主码,主码的值唯一
- 组成主码的属性都不能取空值,而不仅仅是主码属性集整体不能取空值
数据库模式和状态
- 只指定了数据库的模式,此时数据库的状态称为没有数据的空状态。
- 数据库第一次装入或加载初始数据后的状态,称为初始状态。
- 满足模式中的约束和结构的状态称为合法状态。
- 模式结构的描述和约束存储在数据字典中。
- DBMS负责确保数据库的每个状态都是一个合法状态。
数据库三级模式结构
外模式、(概念)模式、内模式
三级抽象模式在数据库系统中都存储与数据库系统的数据字典中,是数据字典的最基本的内容。
模式:
模式也称为逻辑模式或概念模式,是所有用户的公共数据视图;
DBMS提供模式数据定义语言来描述逻辑模式。
外模式:
也称为子模式或者用户模式,是数据库用户的数据视图。
内模式:
也称为物理模式或存储模式,是数据物理结构和存储方式的描述,数据内部的表示方法。
- 一个数据库可以有多个外模式。
- 一个数据库只有一个内模式。
- 应用程序是依据数据库的外模式编写的。
同一外模式可以被某一用户的多个应用程序所使用,但一个应用程序只能使用一个外模式。 - 外模式通常是模式的子集,外模式列出数据并不实际存储在数据库中,而可以从模式中构造出来,因此外模式比模式的抽象级别更高。
- 每个用户都只能看见用户自己所对应的外模式中的数据,数据库中的其余数据是不可见的。
- 三级抽象模式在数据库系统中都存储于数据库系统的数据字典中,是数据字典的最基本内容。
外模式/模式映象:保证数据库的逻辑独立性
模式/内模式映象:保证数据库的物理独立性
连接
自然连接:
一种特殊的等值连接。
要求两个关系中进行比较分量必须是相同的属性组,并且要在结果中把重复的属性去掉。