三级模式-两级映射
数据库模型(概念模式[用户视图]、外模式[DBA视图]、内模式[内部视图])
外模式-概念模式映射,概念模式-内模式映射
E-R模型,实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
集成的方法:
多个局部E-R图一次集成。
逐步集成,用累加的方式一次集成两个局部E-R。
集成产生的冲突及解决办法:
属性冲突:包括属性域冲突和属性值冲突。
命名冲突:包括同名异义和异名同义。
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
关系代数:
并,交,差,笛卡尔积,投影(∏),选择(σ),联接
规范化理论(重)
函数依赖
设R(U)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有U[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为X--->Y
对于一张学生表,里面有学号,课程号,姓名几个字段,我们可以通过学号找到唯一的学生,我们就称学号,姓名为函数依赖。
价值与用途
非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常
键
求候选键
1.将关系模式的函数依赖关系用“有向图”的方式表示
2.找入度为0(只出不进)的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中的所有结点,则该属性集即为关系模式的候选键
3.若入度为0的属性集不能遍历图中的所有结点,或者不存在入度为0的属性集,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集,直至该集合能遍历所有结点,集合为候选键。
看例题:例1选A,例2:ABCD,例3:B
范式(必考)
◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。
考虑这样一个表:【联系人】(姓名,性别,电话)
如果在实际场景中,一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF。要符合 1NF 我们只需把列(电话)拆分,即:【联系人】(姓名,性别,家庭电话,公司电话)。1NF 很好辨别,但是 2NF 和 3NF 就容易搞混淆。
◆ 第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。
消除非主属性对码的部分函数依赖
◆ 第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。
消除传递函数依赖
模式分解
保持函数依赖分解
无损分解(有损:不能还原;无损:可以还原)
并发控制
事务:(原子性[整体,不可区分],一致性[相当于能量守恒],隔离性[独立执行,互不影响],持续性[结果,影响是持续的])
存在的问题:
解决办法:封锁协议
数据库完整性约束:提高数据可靠性
实体完整性约束(主键)
参照完整性约束(外键)
用户自定义完整性约束(x>=0 and x<=200)
应对复制情况:触发器(写脚本来约束)
数据库安全
措施 | 说明 |
用户标识和鉴定 | 最外层的安全保护措施,可以使用用户账户、口令及随机数检验等方式 |
存取控制 |
对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和 数据对象(主要是数据范围)的权限 |
密码存储和传输 | 对远程终端信息用密码传输 |
视图的保护 | 对视图进行授权 |
审计 |
使用一个专用文件或数据库(日志),自动将用户对数据库的所有操作 记录下来 |
数据备份
分类一:
冷备份也称静态备份,是将数据库正常关闭,在停止的状态下,将数据库的文件全部备份(复制 )下来。
热备份也称动态备份,是利用备份软件,在数据库正常工作的状态下,将数据库中的数据文件备份下来。
优点 | 缺点 | |
冷备份 |
非常快速的备份方法(只需要复制文件);容易归档(简单复制即可); 容易恢复到某个时间点上(只需要将文件再复制回去);能与归档方法 相结合,做数据库“最佳状态”的恢复;低度维护,高度安全 |
单独使用时,只能提供到某一时间点上的恢复;在实施备份的过程中, 数据库必须要作备份而不能做其他工作;若磁盘空间有限只能恢复到 磁带等其他外部存储设备上,速度会很慢;不能按表或按用户恢复 |
热备份 |
可在表空间或数据库文件级备份,备份的时间短;备份时数据库 仍可使用;可达到秒级恢复(恢复到某一时间点上);可对几乎所有 数据库实体做恢复;恢复是快速的 |
不能出错,否则后果严重;若热备份不成功所得结果不可用于时间点 的恢复;困难与维护,所以要特别小心,不允许“以失败告终” |
分类二:
完全备份:备份所有数据
差量备份:仅备份上一次完全备份之后变化的数据
增量备份:备份上一次备份之后变化的数据
分类三:
静态海量转储:在系统中无运行事务时进行,每次转储全部数据库
静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据
动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库
动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新的数据
日志文件:
事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并记录结果保存在独立的文件中
(记录sql语句,写数据文件)
数据库故障与恢复:
故障关系 | 故障原因 | 解决办法 |
事务本身的可预期故障 | 本身逻辑 | 在程序中预先设置Rollback语句 |
事务本身的不可预期故障 | 算术溢出、违反存储保护 |
由DBMS的恢复子系统通过日志,撤销事务对数据库的修改, 回退到事务初始状态 |
系统故障 | 系统停止运转 | 通常使用检查点法 |
介质故障 | 外存被破坏 | 一般使用日志重做业务 |
数据仓库与数据挖掘:
面向主题,集成的,相对稳定的(非易失的),反映历史变化(随着时间变化)
OLAP服务器:联机分析处理服务器
数据挖掘:挖到人类所不知的特性(什么地方在什么季节卖什么饮料盈利比较好,对老数据进行挖掘)
方法:决策树,神经网络,遗传算法,关联规则挖掘算法
分类:
关联分析:挖掘出隐藏在数据间的相互关系
序列模式分析:侧重点是分析数据间的前后关系(因果关系)
分类分析:为每一个记录赋予一个标记再按标记分类
聚类分析:分类分析法的逆过程
反规范化:由于规范化会是表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降。
技术手段(以空间换时间):
增加派生性冗余列
增加冗余列
重新组表
分割表(垂直分割,水平分割)
大数据:
对海量数据进行处理的技术
数据量(Volume),速度(Velocity),多样性(Variety),值(Value)
比较维度 | 传统数据 | 大数据 |
数据量 | GB或TB级 | PB级或以上 |
数据分析需求 | 现有数据的分析与检测 | 深度分析(关联分析、回归分析) |
硬件平台 | 高端服务器 | 集群平台(云计算) |
大数据处理系统应该具有的重要特征:
高度可扩展性
高性能
高度容错
支持异构环境
较短的分析延迟
易用且开放的接口
较低成本
向下兼容性