目录
一、数据库概念
1.1 数据库管理系统DBMS
数据库管理系统是一种负责数据库定义,建立,操作,管理和维护的软件系统。其目的是保证数据库安全可靠,提高数据库应用的简明性和方便性,并有效的实现数据库三级之间的转化。
主要职责:数据库的定义和建立,数据库的操作,数据库的控制,数据库的维护。
1.2 数据库系统DBS
数据库系统是实现有组织地,动态地存储大量关联数据,方便多用户访问计算机软件,硬件和数据资源组成的系统。它包括数据库,硬件软件和数据库管理员四个部分。
- 设计目标:允许用户逻辑地处理数据,而不涉及这些数据在计算机中是怎么存储的。在数据组织和用户应用之间提供某种程度的独立性。
- 三个级别:用户级(对应外模式),概念级和物理级(对应内模式)
- 三个模式:外模式,概念模式,内模式。
- 两级独立性:是指物理独立性和逻辑独立性。逻辑独立性比物理独立性更加难以实现。
二、数据库设计
2.1 数据库设计过程
2.2 E-R模型
E-R模型:实体-关系图
(1)集成的方法:
- 多个局部E-R图一次集成
- 逐步集成,用累加的方式一次集成两个局部E-R。
(2)集成产生的冲突级解决方法
- 属性冲突:包括属性域冲突和属性取值冲突
- 命名冲突:包括同名异义和异名同义
- 结构冲突:包括同一个对象再不同应用中具有的不同抽象,以及统一实体再不同局部E-R图中包含的属性个数和属性排列次序不完全相同
2.3 关系代数
域 |
一组具有相同数据类型的值的集合。 |
笛卡尔积 |
第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。元素个数变成原先每个集合中元素个数的乘积 |
并 |
关系R和S有着相同的关系模式。将2个集合(或数据库查询的结果集)中的元素相加,并去掉重复元素(只留下1个) |
差 |
关系R和S有着相同的关系模式。差就是过滤出属于R但是不属于S的关系组合。 |
交 |
取得将2个集合(或数据库查询的结果集)中共有的元素 |
投影 |
取得查询结果集中的部分字段,并去掉重复元素(数据库专有) (投影是选列操作,也就是选属性的操作) |
选择 |
选择操作在关系R中选择满足给定条件的所有元祖。它是系中找出满足给定条件的元组的操作。SQL语句中的【Where+条件】就是选择。(选择是属性值满足特定的条件的操作) |
联接 |
将两个关系并成一个更宽的关系模式.从笛卡尔积中选择出满足条件的元祖,对应的SQL语句是JION ON(连接操作:将S1和S2都有的字段只保留一个) |
除法 |
同时从关系的水平和垂直方向进行运算,R(X,Y)和S(Y,Z),XYZ是属性组。R/S应当满足元祖在X上的分量值x的象集,包含关系S在属性组Y上投影的集合。 |
2.4 规范化理论
2.4.1 价值与用途
非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常。
2.4.2 函数依赖
2.4.3 键
求候选键
2.4.4 范式
- 第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式。
- 第二范式(2NF):当且仅当实体E是第一范式(1NF),且每一个主属性完全依赖主键(不存在部分依赖)时,则称实体E是第二范式。
- 第三范式(3NF):当且仅当实体E是第二范式(2NF),E中没有非主属性传递依赖于码时,则称实体E是第三范式。
- BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
1NF |
第一范式 |
属性值都是不可分的原子值 |
2NF |
第二范式 |
消除非主属性对候选键的部分依赖 |
3NF |
第三范式 |
消除非主属性对候选键的传递依赖 |
BCNF |
BC范式 |
消除主属性对候选键的传递依赖 |
2.4.5 无损分解
三、并发控制
3.1 基本概念
3.2 问题示例
3.3 封锁协议
- 一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改;
- 二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读“脏”数据;
- 三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据重复读;
- 两段锁协议。可串行化的。可能发生死锁;