一、E-R数据模型
基本概念:
1.实体
客观存在可以区分的事物
2.联系
二元联系:
一对一(1:1)联系:两个实体集中的每一个实体至多和另一个实体集中的一个实体有联系,则称两个实体集是一对一的联系,记为1:1。
一对多联系(1:n)联系:两个实体集E1、E2,若E1的每一个实体与E2中的任意个实体(包括零个)相联系,而E2的每个实体最多和E1中的一个实体有联系,则称E1和E2是一对多联系,记为1:n。
多对多(m:n)联系:两个实体集E1和E2,若E1中的每个实体都与E2中的任意个实体(包括零个)有联系,则称E1和E2是多对多的联系,记为m:n。
多元联系:二元关系的推广
自反联系:同一个实体集两部分实体之间的联系,是特殊的二元关系,这两部分实体之间的联系也可区分为3种
3.属性
实体或联系所具有的特征:
一个实体具有若干属性,通常选取数据管理需要的部分属性
属性往往不可再分
属性有型和值之分:属性名是属性型,具体数据是属性值
每个属性值都有一定的变化范围,通常称属性取值变化范围为属性值的域
能唯一标识实体集中某一实体的属性或属性组称为实体集的关键字
E-R图:
E-R图是E-R数据模型的图形表示法
用矩形框表示实体集,框中为实体名
用菱形表示联系,框子是联系名,与之相关的实体集之间用无向边连接,连线边上表明联系类型(1:1、1:n、m:n)
用椭圆表示属性,并用无向边连接相关的实体集或联系(关键字的连线上画短垂线)
E-R图向关系模型的转化:
1:n的关系需要在n方加入1方的主键作为外键,同时添加联系相关的属性
m:n需要额外添加一个关系,加入双方主键和联系相关的属性
主键添加下划线,外键加入波浪线
二、数据库的体系结构
三级模式结构:
外部模式(子模式、用户模式):用户观念下局部数据结构的逻辑描述,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。
概念模式(模式、逻辑模式):对数据库全局逻辑结构的描述
内部模式(存储模式):对数据库中数据物理结构和存储方式的描述
两级映像:
外部模式/概念模式映像:定义外部模式和概念模式间的映像关系
概念模式/内部模式映像:定义数据库全局逻辑结构和存储结构之间的关系
两级数据独立性:
数据逻辑独立性:外部模式不受概念模式变化的影响
数据物理独立性:概念模式不受物理模式变化的影响
三、关系数据库的基本概念
关系的形式化定义:
域D1,D2,…,Dn上的关系是笛卡尔积的子集,用R表示,R表示关系的名,n是关系的目或度,关系的成员是元组。
关系的特点:
关系可以看成是行和列交叉的二维表格,表示的是一个实体集合
表中一行为一个元组,用于表示实体集中的一个实体
表中列为属性,每一列命的名是属性名,属性名不能相同
列的取值范围称为域,同列具有相同的域
关系的性质:
属性值是原子的,不可分解
没有重复元组
没有行序列序,但为了方便,使用时有列序
键:
超键:唯一标识元组的属性或者属性集
候选键:能唯一标识元组,又不包含多余属性
主键:候选键选择其一
外键:若关系R包含关系S的主键所对应的属性集F,则F为R的外键
关系的一阶谓词表示:
关系模式R的原子谓词表示形式为P(t),其中P是谓词,t是个体变元,以元组为其表现形式,R与P(t)之间的联系描述为R={t|P(t)}
P(t)=True:t在R内,反之,t不在R内
关系模式、关系子模式、存储模式:
关系模式:对关系的描述,包括模式名,组成该关系的诸属性名、值域名和模式的主键
关系子模式:用户所需数据的结构的描述,从若干关系模式中抽取满足一定条件的数据
存储模式:描述关系如何在物理存储设备上存储的
关系模型的完整性规则:
实体完整性规则:关系中元组的主键值不能为空
参照完整性规则:外键必须是另一个表的有效值,或是一个空值
用户定义的完整性规则:由用户决定的对某一具体数据的约束条件
关系数据库模式:
一个关系数据库是多个关系的集合,每个关系都有一个模式,该关系数据库的所以关系模式的集合构成了关系数据库模模式
关系数据库管理系统一般向用户提供以下四种基本数据操纵功能:
数据检索
数据插入
数据删除
数据修改
四、关系代数
关系代数的五个基本操作:
并运算:R∪S={t|t∊R∨t∊S}
差运算:R-S=(t|t∈R∧t∉S)
笛卡尔积:
选择运算:根据某些运算做水平分割(在一个关系内选择符合条件的元组)
投影运算:对一个关系做垂直分割(对一个关系内属性的指定),若被投影属性中某些分量的值相同,则去掉重复值
关系代数的组合运算:
交运算
连接运算(笛卡尔积+选择)
条件连接
自然连接
半连接
除法运算
五、关系数据库的结构化查询语言(SQL命令)
六、关系模式的规范化理论
关系模式设计中的问题:
冗余度大
修改复杂:维护数据完整性代价大
插入异常
删除异常
函数依赖:
- 函数依赖描述属性间的决定关系,记作X→Y,常见函数依赖类型包括完全函数依赖,部分函数依赖、传递函数依赖,是关系模式规范化的基础
Armstrong公理系统(阿式公理):
若Y包含于X,则X决定Y成立(平凡函数依赖)(自反律)
若X决定Y,且Z包含于U,则XZ决定YZ成立(拓展律)
如果X决定Y且Y决定Z,则X决定Z成立(传递律)
推论:
X决定Y,X决定Z,则X决定YZ(合并规则)
X决定Y,Z包含于Y,则X决定Z成立(分解规则)
X决定Y,WY决定Z,则XW决定Z(伪传递规则)
最小函数依赖集:
将 F中每一个函数依赖的右部拆分成单个属性
移除冗余依赖(移除可以通过其他依赖推导出来的依赖)
最小化左边属性
候选码求解:
属性分类:
L类:只出现在函数依赖左边的属性
R类:只出现在函数依赖右边的属性
LR类:出现在左右两边的属性
N类:不出现在任何依赖中的属性
候选码构造:
候选码包含所以L类和N类的属性,若不覆盖所以属性则添加LR类中属性直到闭包覆盖所以属性
验证最小性:检验真子集的是否满足唯一性,若不满足,则为最小的
范式:
第一范式(1NF):所以属性不可再分
第二范式(2NF):消除 非主属性对候选码的部分函数依赖
第三范式(3NF):消除非主属性对候选码的传递函数依赖
BCDF:消除主属性对候选码的部分函数依赖、传递函数依赖
七、数据库保护
事物的AICD准则:
原子性:一个事物对数据库的全部操作,是一个不可分割的工作单元。这些操作要么全部执行,要么全部不执行
一致性:事物执行前后数据库处于一致状态
隔离性:多个事物并发执行时,互不影响,系统保证与这些事物先后单独执行时的结果一样
持久性:一个事物一旦完成全部操作,对数据库的所有更新应该永久反映在数据库中
封锁:
X锁(排他锁)
S锁(共享锁)
U锁(更新锁)