三级模式-两级映射
-
- 外模式。外模式也称用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 外模式通常是模式的子集。一个数据库可以有多个外模式。应用程序都是和外模式打交道的。外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据对他们是不可见的。
- 内模式。内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。例如,记录的存储方式是顺序结构存储还是B树结构存储;索引按什么方式组织;数据是否压缩,是否加密;数据的存储记录结构有何规定等。
数据库系统在三级模式之间提供了两级映像:模式/内模式的映像、外模式/模式的映像。
- 模式/内模式的映像:实现概念模式到内模式之间的相互转换。物理独立性
- 外模式/模式的映像:实现外模式到概念模式之间的相互转换。逻辑独立性
数据库的设计
ER模型
E-R图时结构化分析过程的工具,用于数据建模,将现实世界中的事物抽象信息世界里的数据。
ER图的实体(entity)
即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张三、李四等,实体成员(entity member)/实体实例(entity instance) 不需要出现在ER图中。
ER图的属性(attribute)
即数据对象所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。
ER图的关系(relationship)
用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。
ER图中关联关系
1对1(1:1)
1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。
1对多(1:N)
1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。
多对多(M:N)
多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。
关系代数
对于关系S1、S2:
并
交
差
笛卡尔积
投影
选择
连接
例题 1.找出 R和S 的公共属性—>(A1,A2)2.R÷S 找出 R有S没有的属性 —> A3
3.找出A3的象集 3–>{(1,2)} 4–>{(2,1),(3,4)} 7–>{(4,6)}
4.求出πA1,A2(σ1小于3(S))的结果 {(2,1),(3,4)}
5.在 #3的结果 里面找到包含所有 #4结果的答案 —>4
第二问显然为4,4,6
例题:
F+是代表,F函数依赖集的闭包,通俗一点,就是从F函数依赖集能推导出来的依赖关系。原依赖集有A3→A2,A2→A3A4,因此可以得到A3→A2A4。函数依赖
规范化理论
价值与用途
解决:
- 数据冗余
- 更新异常
- 插入异常
- 删除异常
键
求解候选键
- 将关系模式的函数依赖关系用“有向图”的方式表示
- 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属集即为关系模式的候选键
- 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
范式
第一范式(1NF)
在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。
第二范式(2NF)
当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式。
第三范式(3NF)
当且仅当R是1NF,且E中没有非主属性传递依赖于码时,则称R是第三范式。
BC范式(BCNF)
设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
数据库的关系范式有:
( 1 )第一范式( 1NF ):属性不可拆分或无重复的列。
( 2 )第二范式( 2NF ):完全函数依赖。在一个关系中,若某个非主属性数据项依赖于全部关键字称之为完全函数依赖。例:成绩表(学号,课程号,成绩)关系中,(学号,课程号)→ 成绩,只有学号或者只有课程号都无法推导出成绩,因此该关系式属于完全函数依赖。
( 3 )第三范式( 3NF ):消除传递依赖。不依赖于其他非主属性(消除传递依赖)。满足第三范式的数据库必须先满足第二范式。也就是说,数据库中的属性依赖仅能依赖于主属性,不存在于其他非主属性的关联。例如,图书,图书室的关系。图书包括编号、出版商、页码等信息,图书室包括图书室编号、所存图书(外键)。其中,图书室的表中不应该存储任何图书的具体信息(例如,出版商。),而只能通过主键图书编号来获得对应图书的信息。
( 4 ) BC 范式( BCNF ):所有非主属性对每一个码都是完全函数依赖;所有的主属性对于每一个不包含它的码,也是完全函数依赖;没有任何属性完全函数依赖于非码的任意一个组合。 如果说关系模式 R 属于 3NF ,不一定属于 BCNF ,如果 R 属于 BCNF ,则一定属于 3NF 。
( 5 )第四范式( 4NF ):对于每一个 X- 小于Y , X 都能找到一个候选码( 若关系中的某一属性组的值能唯一地表示一个元组 , 而其真子集不行 , 则称该属性组为候选码)。题干中 “ ( 时间,教室 ) →培训科目 ”且“ 培训科目 →培训师 ”,这之间存在传递依赖,不满足 3NF属于2NF 。
模式分解
模式分解就是将以前的关系模式R<U,F>分解成小的关系模式,所谓Fi在Ui上的投影,就是F+中的FD在Ui上成立(X→Y,X,Y∈Ui),对Ui做出规定,首先就是所有Ui的∪组成整个属性集U,其次就是不存在Ui是Uj子集的这种情况。
Armstrong 公理
从已知的一些函数依赖,可以推导出另外一些函数依赖,这就需要一系列推理规则。函数依赖的推理规则最早出现在1974年W.W.Armstrong 的论文里,这些规则常被称作”Armstrong 公理”.
设U 是关系模式R 的属性集,F 是R 上成立的只涉及U 中属性的函数依赖集。函数依赖的推理规则有以下三条:
自反律
若属性集Y 包含于属性集X,属性集X 包含于U,则X→Y 在R 上成立。(此处X→Y是平凡函数依赖)
增广律
若X→Y 在R 上成立,且属性集Z 包含于属性集U,则XZ→YZ 在R 上成立。
传递律
若X→Y 和 Y→Z在R 上成立,则X →Z 在R 上成立。
其他的所有函数依赖的推理规则可以使用这三条规则推导出。
合并规则
若X→Y,X→Z同时在R上成立,则X→YZ在R上也成立。
分解规则
若X→W在R上成立,且属性集Z包含于W,则X→Z在R上也成立。
伪传递规则
若X→Y在R上成立,且WY→Z,则XW→Z。
事务
- 原子性(atomicity)一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。
- 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
- 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
- 持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
并发控制
存在的问题
- 丢失更新。
- 不可重复读
- 读“脏”数据
封锁协议
- 一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改
- 二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读“脏”数据
- 三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据重复读
- 两段锁协议。可串行化的。可能发生死锁
完整性约束
实体完整性约束
规定表的每一行在表中是惟一的实体。
参照完整性约束
是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
用户自定义完整性约束
不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。
以上三种约束均为提高数据库的可靠性,更为复杂的情况可以使用触发器,通过写脚本来进行约束。
数据库安全
用户标识和鉴定(认证)
最外层的安全保护措施,可以使用用户帐户、口令及随机数检验等方式
存取控制(授权)
对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限。
密码存储和传输(加密传输)
对远程终端信息用密码传输
视图的保护(限定)
对视图进行授权
审计(日志)
使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来
数据库备份
冷备份
冷备份也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。
优点:
非常快速的备份方法(只需复制文件);容易归档(简单复制即可);容易恢复到某个时间点上(只需将文件再复制回去);能与归档方法相结合,做数据库”最佳状态”的恢复﹔低度维护,高度安全
缺点:
单独使用时,只能提供到某一时间点上的恢复;在实施备份的全过程中,数据库必须要作备份而不能做其他工作;若磁盘空间有限只能复制到磁带等其他外部存储设备上,速度会很慢;不能按表或按用户恢复
热备份
热备份也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
优点:
可在表空间或数据库文件级备份,备份的时间短;备份时数据库仍可使用;可达到秒级恢复(恢复到某一时间点上);可对几乎所有数据库实体做恢复;恢复是快速的
缺点:
不能出错,否则后果严重;若热备份不成功所得结果不可用于时间点的恢复;因难于维护,所以要特别小心,不允许”以失败告终”
数据备份
分类:
- 完全备份:备份所有数据
- 差量备份:仅备份上一次完全备份之后变化的数据
- 增量备份:备份上一次备份之后变化的数据
转储方式:
- 静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。
- 静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
- 动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
- 动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上-次转储后更新过的数据。
日志文件
日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中
数据库故障与恢复
分布式数据库

数据库优化


数据仓库
数据仓库的特点:
- 面向主题
- 集成的
- 相对稳定的(非易失的)
- 反映历史变化(随着时间变化)
数据挖掘
方法
- 决策树
- 神经网络
- 遗传算法
- 关联规则挖掘算法
分类
- 关联分析:挖掘出隐藏在数据间的相互关系。
- 序列模式分析:侧重点是分析数据间的前后关系(因果关系)。
- 分类分析:为每一个记录赋予一个标记再按标记分类。
- 聚类分析:分类分析法的逆过程。
联邦数据库
联邦数据库系统(FDBS)是一个彼此协作却又相互独立的成员数据库(CDBS)的集合,它将成员数据库系统按不同程度进行集成,对该系统整体提供控制和协同操作的软件叫做联邦数据库管理系统(FDBMS)
特征
- 分布性
- 异构性
- 自治性
- 透明性
分类
- 松耦合
- 紧耦合
NoSQL
缺点
- 成熟度不够,大量关键特性有待实现
- 开源数据库产品的支持力度有限
- 数据挖掘与商务智能支持不足,现有的产品无法直接使用NoSQL数据库
- NoSQL数据库专家较少,大部分都处于学习阶段
反规范化
由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降
技术手段
- 增加派生性冗余列
- 增加冗余列
- 重新组表
- 分割表
大数据
对海量信息处理的方法
比较
大数据处理系统的特性
- 高度可扩展性
- 高性能
- 高度容错
- 支持异构环境
- 较短的分析延迟
- 易用且开放的接口
- 较低成本
- 向下兼容性