一、数据模型
1.1 基本概念
常用的数据模型有:概念数据模型、基本数据模型。
概念数据模型,也称信息模型,用于数据库的设计,有E-R模型(实体-联系模型)。
基本数据模型,用于数据库实现,有层次模型、网状模型、关系模型、面向对象模型。
1.2 数据模型三要素
数据模型的三要素:数据结构、数据操作、数据的约束条件。
数据操作有:增、删、改、查。
1.3 E-R模型
实体
实体用矩形表示。
联系
联系用菱形表示。
属性
属性有以下分类:简单属性和复合属性、单值属性和多值属性、NULL属性、派生属性。
实体-联系方法
E-R图中的主要构件
扩充的E-R模型
弱实体:一个实体必须依赖另一个实体。
特殊化:一个实体集按照某些特征区分为几个子实体。从普遍到特殊的过程。
1.4 数据模型
层次模型:树型结构。
网状模型:图结构。
关系模型:表格结构。
面向对象模型:用面向对象的方法来设计数据库。
1.5 关系模型
关系对应对编程语言中变量的概念。
二、关系代数
2.1 基本概念
属性和域
每个属性的取值范围对应一个值的集合,称为该属性的域。
2.2 笛卡尔积与关系
D1={0,1},D2={a,b},D3={c,d}
笛卡尔积D1xD2xD3={(0,a,c),(0,a,d),(0,b,c),(1,a,c),(1,a,d),(1,b,c),(1,b,d))}
即遍历所有的组合。
2.3 关系的相关名词
(1)目或度。R表示关系,n是关系的目或度。
(2)候选码。若关系中的某一属性或属性组的值能唯一地标识一个元组。则称该属性或属性组为候选码。
(3)主码。如果有多个候选码,则选其中一个为主码。
(4)主属性。包含在候选码的属性为主属性。
(5)外码。如果关系R中的属性或属性组非该关系的码,但它是其他关系的码,那么对于R而言是外码。
(6)全码。关系R的所有属性组是这个关系的候选码,称为全码。
关系的3种类型:基本关系、查询表、视图表。
2.4 关系数据库模式
关系模式对应编程语言中类型定义的概念。
完整性约束分为:实体完整性、参照完整性、用户定义完整性。
2.5 关系运算
关系数据语言分为三类:关系代数语言、关系演算语言、具有关系代数和关系演算双重特点的语言(如:SQL)。
关系代数运算符有4类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。
5种基本的关系代数运算
5种基本的关系代数运算包括:并、差、笛卡尔积、投影和选择。其它的运算可以通过基本的关系运算导出。
扩展的关系代数运算
扩展的关系代数运算可以从基本的关系运算中导出,主要包括:选择、投影、连接、除法、广义笛卡尔积和外连接。
三、关系数据库的规范化
3.1 函数依赖
(1)函数依赖。
(2)非平凡的函数依赖。
(3)平凡的函数依赖。
(4)完全函数依赖。
(5)部分函数依赖。
(6)传递依赖。
(7)码。
(8)主属性和非主属性。
(9)外码。
(10)函数依赖的公理系统。
3.2 规范化
1NF(第一范式)
若关系模式R的每一个分量是不可再分的数据项,则关系模式R属性第一范式。
1NF存在4个问题:冗余度大、引起修改操作的不一致性、插入异常、删除异常。
2NF(第二范式)
若关系模式R属于1NF,且每一个非主属性完全依赖于码,则关系模式R属性2NF。
当1NF消除了非主属性对码的部分函数依赖,则称为2NF。
3NF(第三范式)
当2NF消除了非主属性对码的传递函数依赖,则称为3NF。
3.3 模式分解及分解应具有的特性
分解
对一个给定的模式进行分解,使得分解后的模式是否与原来的模式等价有3种情况。
(1)分解具有无损连接性。
(2)分解要保持函数依赖。
(3)分解既要无损连接性,又要保持函数依赖。
四、数据库的控制功能
4.1 事务管理
(1)BEGIN TRANSACTION:事务开始。
(2)COMMIT:事务提交。
(3)ROLLBACK:事务回滚。
事务具有原子性、一致性、隔离性、持久性,即ACID性质。
4.2 数据库的备份与恢复
4类故障:事务内部故障、系统故障、介质故障、计算机病毒。
备份方法:静态转储和动态转储、海量转储和增量转储、日志文件。
恢复的3个步骤:反向扫描文件日志、对事务的更新操作执行逆操作、继续反向扫描日志文件。
数据库镜像:对关键数据和日志文件做镜像。
4.3 并发控制
并发带来的问题:丢失修改、不可重复读、读脏数据。
并发控制技术:封锁、三级封锁协议。
活锁与死锁
并发调试的可串行性
两段封锁协议
封锁的粒度