1. 数据模型相关知识点
数据模型是对现实世界数据特征的抽象。
数据模型是数据库系统的核心和基础。
1.1. 两类数据模型
1.1.1. 概念模型
概念模型又称为信息模型,按用户的观点对数据和信息建模,主要用于数据库设计
1.1.2. 逻辑模型和物理模型
逻辑模型是按照计算机系统的观点对数据进行建模,主要用于数据库管理系统的实现
物理模型是对数据最底层的抽象。
1.2. 概念模型
Example:(学号,姓名,性别,出生年月,学院,入学年份)表征一个学生
1.2.1. 实体(entity)
客观存在并可相互区分的事物称为实体。【学生】
1.2.2. 属性(attribute)
属性是实体所具有的某一特性。【括号内的数据】
1.2.3. 码(key)
唯一标识实体的属性集被称为码。【学号】(可能是具有标识性的,不同个体必定不同的)
1.2.4. 实体型(entity type)
具有相同属性的实体必然具有共同的特征和性质。
用实体名以及其属性名的集合来抽象和刻画同类实体,称为实体型。
【一个学生(学号,姓名,性别,出生年月,学院,入学年份)】
1.2.5. 实体集(entity set)
同一类型实体的集合【全体学生】
1.2.6. 联系(relationship)
实体之间的联系通常指不同实体集之间的联系。
分为一对一,一对多和多对多
1.3. 数据模型的组成要素
1.3.1. 数据结构
数据结构描述数据库组成对象以及对象之间的联系。
通常按照数据结构的类型来命名数据模型:
层次模型、网状模型和关系模型
1.3.2. 数据操作
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
查询、更新(包括插入、修改、删除)两大类操作
数据操作是对系统动态性的描述
1.3.3. 数据的完整性约束条件
数据的完整性约束条件是一组完整性规则。
1.4. 常用的数据模型
1.4.1. 层次模型
IBM公司的IMS系统
最早出现的数据模型
有且只有一个结点并且没有双亲结点,称为根节点
根以外的其他结点有且只有一个双亲结点
每个节点表示一个记录类型,记录类型之间的联系用结点之间的连线表示,所以只能表示父子间的一对多类型。
层析模型像一棵倒立的树,结点的双亲是惟一的
优点:
结构简单并且清晰
查询效率高
提供了良好的技术支持
1.4.2. 网状模型
DBTG系统(CODASYL系统)
允许一个以上的结点没有双亲
一个以上的结点可以有多于一个的双亲
网状模型中子女结点和双亲结点之间的联系不唯一,但是层次模型中两者的联系是唯一的。因此要为每一个联系命名。
优点:
更为直观的描述世界,一个结点可以有多个双亲,结点之间的联系可以有多种
有良好的性能,存储效率高
1.4.3. 关系模型
最重要!!!
建立在严格的数学概念基础上。
关系模型:由一组关系组成的模型
关系:一个关系对应通常说的一张表
元组:表中的一行
属性:表中的一列
码:也称为码键,表中的某个属性组
分量:元组中的一个属性值
关系模式:对关系的描述
关系模型要求关系必须是规范化的。
关系的每一个分量必须是一个不可分的数据项
优点:
建立在严格的数学基础上
概念单一,无论是实体还是实体之间的联系都用关系来表示。对数据的检索和更新也是关系(即表),所以简单、清晰、易懂易用
存取路径对用户透明,有更高的数据独立性,更好的安全保密性。
关系术语 | 一般表格的术语 |
---|---|
关系名 | 表名 |
关系模式 | 表头(表格的描述) |
关系 | (一张)二维表 |
元组 | 记录或者行 |
属性 | 列 |
属性名 | 列名 |
属性值 | 列值 |
分量 | 一条记录中的一个值 |
非规范性关系 | 表中有表(大表中嵌有小表) |