数据模型的基本概念
1、数据模型是数据特征的抽象
数据模型描述的内容(数据模型的三要素)
(1)数据结构
(2)数据操作
(3)数据约束
数据模型按不同的应用层次分成三种类型
概念数据模型(Conceptual Data Model)简称概念模型:对客观世界复杂事务的结构描述以及他们之间内在联系刻画。
主要有E-R模型(Entity-Relationship Model)、扩充E-R模型、面向对象模型及谓词模型。
逻辑数据模型(Logic Data Model)又称数据模型;着重于在数据库系统的一级实现。
概念模型只有在转换为数据模型后才能在数据库中得以表示。
主要有层次模型 网状模型 关系模型 面向对象模型。
物理数据模型(Physical Data Model)有称物理模型:是一种面向计算机物理表示的模型,次模型给出了数据模型在计算机上的物理结构表示。
2、E-R模型
E-R模型的基本概念
(1)实体:现实世界的事务的抽象,是概念世界的基本单位。实体可组成一个集合称为实体集(Entity Set)。
(2)属性:事务的特征。一个属性值的取值范围称为该属性的值域(Value Domain)或值集(Value Set)。
(3)联系:现实世界中事务的关系。实体集的关系有一对一,一对多,多对多的联系。
一个班级的学生,学生与学生之间是一对一的关系,简记为1:1。
在一所学校,一个课程与学生之间是一对多的关系,简记为,1:m。
在一所学校,多门课程与多个学生之间是多对多的关系,简记为,m:n。
E - R 模型的图示法
实体:矩形
属性:椭圆
联系:菱形
3、层次模型
层次模型(Hierarchical Model)一种树形结构。
数据结构比较简单,操作简单。对于实体间联系是固定的、且预先定义好的应用系统,有较高的性能。
可以提供良好的完整性支持。
不适合表示非层次的联系,对于插入和删除操作的限制比较多
特点:
(1)每个树有且仅有一个无双亲结点,称为根(Root)
(2)树中除根所有结点有且仅有一个双亲
4、网状模型
网状模型(Network Model)是一个不加任何条件限制的无向图。优先层次模型。
使用时设计系统内部的物理因素较多,用户操作不方便,其数据模式与系统实现不甚理想。
5、关系模型
关系的数据结构
关系模型采用二维表来表示,简称表。二维表有框架(Frame)以及表的元组(Tuple)组成。表矿建有n个命名的属性(Attibute)组成,n称为属性的元素数(Arity)。每个属性有一个取值范围成为值域(Domain)。一个二维表就是一个关系(Relation)
唯一标识元组的最小属性称为该表的键(Key)
二维表可能有若干个键,它们成为该表候选码或候选键(Candidata Key)
从二维表的所有候选键中选取一个作为用户使用的键称为主键(Primary Key)或主码,一般主键也称为键或码。
在表A的属性集是某B的键,侧称该属性集为A的外键(Foreign Key)或外码。
6、范式
A
概念数据模型(Conceptual Data Model)简称概念模型:对客观世界复杂事务的结构描述以及他们之间内在联系刻画
B
C
B
实体:现实世界的事务的抽象,是概念世界的基本单位。实体可组成一个集合称为实体集(Entity Set)。
D
D
C
D
A
B
B(树是一个典型的层次模型)
A
D
B
C
C
A
A(最小属性组合)
A
B
D
1、 第一范式(1NF) 在任何一个关系数据库中,
第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,
同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
如果出现重复的属性,就可能需要定义一个新的实体,
新的实体由重复的属性构成,新实体与原实体之间为一对多关系。
在第一范式(1NF)中表的每一行只包含一个实例的信息。
简而言之,第一范式就是无重复的列。
2、 第二范式(2NF)
第二范式(2NF) 是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。
第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。这个唯一属性列被称为主关键字或主键、主码。
第二范式(2NF)要求实体的属性完全依赖于主关键字。
所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。
为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。
简而言之,第二范式就是非主属性部分依赖于主关键字。
3 、第三范式(3NF)
满足第三范式(3NF) 必须先满足第二范式(2NF)。
简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
简而言之,第三范式就是属性不依赖于其它非主属性。
当表当中的每一项不能被拆分(满足第一范式)
当表当中的一个键(依赖传递)可以决定表当中所有数据时(满足第二范式)
当表当中的一个键(不依赖传递)(完全依赖)可以决定表当中所有数据时(满足第三范式)
A
D(合理规划表中数据避免重复,和不确定)
D(学号决定姓名是部分依赖)
A(BCD都是完全依赖 -> 代表左边可以决定右边)
C
A