3级模式2级映射:
外模式:数据库视图级别
概念模式:数据库表级别
内模式:数据库物理级别
外模式与概念模式都是逻辑模式,内模式属于物理模式
2级模式:外模式与概念模式的映射、概念模式与内模式
场景:用户通过应用程序获取数据,应用程序再通过2级映射获取数据,当物理层数据发生变化、表发生变化、视图发生变化时都不需要修改应用程序,2级映射保证了应用程序的稳定
大白话:应用程序是直接调用视图名称的,当视图内部、表、表属性都变化时都不会影响视图名称
数据库设计
考点:设计的步骤、每个步骤的产出物、每个步骤的注意事项
需求分析
(用什么数据库、怎么存取数据)数据如何存储,数据如何访问、存储哪些数据。
产出物:需求说明书、数据流图(业务流程图)、数据字典(实体、编码等)
概念结构设计
(业务实体与相关属性)E-R图,实体-联系图,设计出项目中在实际业务中的实体、实体的属性等
产出物:E-R模式(概念结构模型)
冲突:属性冲突、命名冲突、结构冲突
逻辑结构设计
(表)将概念结构转化为逻辑结构
产出物:关系模式
物理设计
确定数据存储方式、访问方式
产出物:数据的存储方式、访问方式
数据库实施阶段
根据逻辑结构、物理结构存储数据
产出物:具体的数据库
数据库运行和维护阶段
数据库试运行阶段,不断端数据库进行调整优化
数据模式
概念模式:开发人员设计的表
逻辑模式:现实实体的抽象体
数据模型三要素:数据结构(所研究对象类型的集合)、数据操作(允许执行的操作)、数据的约束条件(数据规则集合)
E-R模型图:
椭圆表示属性、长方形表示实体、菱形表示联系、联系的两端填写联系类型(1对1,1对多,多对多)、长方形加两竖表示弱实体,弱实体是依赖强实体存在的,之间用圆圈表示依赖关系;
实体:弱实体、强实体、实体集(学生)
属性:简单属性、复合属性(家庭住址)、单值属性(单一值)、多值属性(一个人多个电话号码)、null属性、派生属性(多个属性计算来的)
域:属性的取值范围
码:唯一键,唯一标识实体的集合
E-R模式转为关系模型
规则:
E-R图中的每个实体都要转化为一个关系模型
1对1联系,关系可以放到任意一个实体中
1对N联系,在N端加入一端的主键
M对N联系,抽取联合主键
关系代数
表之间的逻辑运算
并:S1∪S2两张表所有记录合并,相同记录保留一条
交:S1∩S2两张表中相同的记录
差:S1-S2以一张表为准,两张表中不相同的记录
笛卡尔积:S1*S2,产生的结果包含S1与S2的所有属性列,并且S1中每条记录依次和S2中所有记录组合成一条记录,最终属性列为S1+S2,记录数为S1*S2
投影:π 按条件筛选表中的列,列用数字表示π1,选择第一列
选择:σ 条件筛选表中的行
自然连接:⋈ 所有属性列都显示,相同属性列只显示一次,显示两表中属性相同且值相同的记录
R(A B C D ) 表R有A B C D E 4 列
S(C D E) 表S有C D E 3 列
R与S的自然连接 R ⋈ S = A B C D E 5 列,并且在行上相同列C D E 的值相同
σ R.B > S.E(R ⋈ S) 意思是:在R与S的自然连接中选择 B 列> E 列
等价于 π 1,2,3,4,7(σ 2>7 ∧3=5 ∧ 4=6 (RXS)) 意思是:
R x S 如下:
1 2 3 4 5 6 7
A B C D C D E
π 1,2,3,4,7 RXS 的结果就是选择列 A B C D E
σ 2>7 ∧3=5 ∧ 4=6 (RXS) 的结果就是选择行3列的值等于5列的值,
行4列的值等于6列的值,选择行2列值大于7列值
函数依赖
部分依赖:AB决定C,A决定D,那么就存在部分依赖,主键是复合属性
传递依赖:A不等于B,A决定B,B决定C,那么A就可以决定C
键与约束
U(A B C D E F)
超键:表中的主键(此表的唯一标识,比如教师表有编号、姓名、年龄,那编号是超键,编号+姓名、编号+年龄也可以作为超键,可存在冗余,ABC,DEF)
候选关键字:超键去掉冗余键
R<Y,F>,U={A,B,C,D,E},F={B->A,D->A,A->E,AC->B}
则R的候选关键字为CD
解析:
F={B->A,D->A,A->E,AC->B}依赖关系中
保留只在左边出现未在右边出现的,则得出CD
然后根据F依赖关系,判断CD是否可以推出R的所有属性
D->A A->E AC = D+C -> B -> A
通过DC可以推出其他所有属性
主键:任一候选键(A,B,C,D)
外键:其他表中的主键
主属性:候选键内的属性为主属性,其他为非主属性
实体完整性约束:主键约束,即主键不能为空,不能重复
参照完整性约束:外键约束。即外键必须在其他表中存在,或者为空
用户自定义完整性约束:用户对属性自定义的约束(年龄在0-150之间)
范式
第一范式 1NF
概念:表中的每一个属性都是单独的,不允许有小表存在
第二范式 2NF
概念:在1NF的基础上,表中非主属性完全依赖主属性,消除部分依赖.
第三范式 3NF
概念:在1NF的基础上,表中不存在传递依赖
BC范式 BCNF
概念:在3NF基础上,表中存在多个主键,消除多个主键之间的部分依赖于传递依赖
各范式之间是递进关系,不满足第一范式,那一定不会满足第二、第三等往后的范式
模式分解
范式的转换就是将属性进行拆分,消除部分依赖、传递依赖(就是将大表逐渐拆分为多个小表)
保持函数依赖分解
在进行模式分解的时候,要保持表中属性原有依赖不变,但是要消除冗余依赖,如传递依赖
R(A,B,C) 依赖集(A->B,B->C,A->C),模式分解后,R1(A,B) R2(B,C),R1,R2还具有A->B,B->C,但缺少了A->C,但因为A->B,B->C,A->C,有传递,所以还是保留了A->C
判断规则,判断左边与右边的依赖是否在子集中,若在则是保持了,冗余的依赖可以不保持
R<Y,F>,U={A,B,C,D,E},F={B->A,D->A,A->E,AC->B}
则R的候选关键字为CD,分解为p={R1(ABCE),R2(CD)}
判断是否保持函数依赖?
解析:
R1(ABCE) 中有ABCE,存在依赖B->A,A->E,AC->B
R2(CD) 中是否能通过C推出D,不清楚,那就判断
缺少依赖D->A,则判断为未保持函数依赖
无损分解
分解后的关系模式能还原以前的关系模式
当分解为两个关系模式,用定理判断是否为无损分解:当R分解为R1,R2,R1∩R2->R1-R2 或者R1∩R2->R2-R1,则为无损分解
R<Y,F>,U={A,B,C,D,E},F={B->A,D->A,A->E,AC->B}
则R的候选关键字为CD,分解为p={R1(ABCE),R2(CD)}
判断是否为无损分解?
解析:
R1∩R2 = C
R1-R2 = ABE
R2-R1 = D
利用公式 R1∩R2 -> R1-R2 或 R2-R1 判断
C 不能推出ABE C 不能推出D
则判断为此分解不具有无损分解
当分解模式为三个及以上模式,通过表格法求解
并发控制
事务
一系列操作,这些操作要么全做,要么全不做
特性
原子性:操作,要么全做,要么全不做
一致性:数据,事务发生后数据是一致的,A转出,B必定会受到
隔离性:执行,任一事务的执行直到提交成功对其他事务是不可见的,事务时间是隔离的,互不干涉的
持续性:改变,事务执行的结果是一致存在的,A转给B的钱,B是一直有的
事务的并发问题
更新丢失:事务2覆盖了事务1的更新
不可重复读:事务1第一次读的数据与第二次读的数据(被事务2修改了)不一致
读脏数据:事务2读了事务1修改的数据,但事务1给把数据回滚了,事务2就读到了脏数据
事务锁
X锁排它锁(写锁):事务T对数据A加X锁,其他事务不能对数据A加其他任何锁
S锁共享锁(读锁):事务T对数据A加S锁,其他事务也能对数据A加S锁
三级封锁协议:原则在你写的时候加写锁,读的时候加读锁
数据库安全
措施
用户标识和鉴定:用户名密码
存取控制:操作(增删改查等操作)和数据对象权限
密码存储和传输:对数据进行加密传输
视图保护:对视图进行授权
审计:用文件或数据库将所有操作记录
备份
静态转储:冷备份,数据库不运行时做的备份,直接备份文件,恢复的话把备份直接拷回去,不能按表或用户恢复
动态转储:热备份,在数据库运行期间备份,可对表空间或数据文件做备份,若备份失败的话将丢失所有数据
完全备份:备份所有数据
差量备份:备份上一次完全备份之后变化的数据
增量备份:备份上一次备份之后变化的数据
日志文件
在事务处理的过程中,DBMS会把事务开始、事务结束以及对数据库的操作记录到日志文件中,一旦发生故障,DBMS会利用日志文件撤销事务对数据库的修改,回到事务初始状态
分布式数据库
概念:局部数据库位于不同的物理位置,用同一个DBMS将所有局部数据库联网管理(物理上分布)
分片模式
水平分片:将表中的水平记录存在不同地方
垂直分片:将表中垂直列值存在不同地方
分布透明性
分片透明性:用户和应用程序不需要知道逻辑上访问的表具体是如何分块存储的
位置透明性:用户和应用程序不需要知道数据存储的物理位置
逻辑透明性:用户和应用程序不需要知道局部使用的是哪种数据模型
复制透明性:用户和应用程序不需要知道复制的数据从何而来
数据仓库
概念:是一个面向主题的、集成的、非易失的、且随时间变化的数据集合,用于支持管理决策(把不同数据库的数据抽取到一起,进行大数据分析)
四个层次
概念:就是将不同源的数据通过ETL按照不同的主题进行抽取,然后存储到数据仓库中,再经过OLAP服务器将想要的数据模型化,最后通过报表或其他工具展现
数据源:数据仓库系统的基础,是数据源泉
数据存储与管理:是整个数据仓库系统的核心(通过ETL处理,将不同源的数据进行抽取、清理、装载、刷新然后存储到一个数据源中)
OLAP(联机分析处理)服务器:对分析需要的数据进行有效集成,按多维模型组织
前端工具:各种报表工具、查询工具、数据分析工具、数据挖掘工具
商业智能
概念:BI 系统主要包括数据预处理、建立数据仓库、数据分析、数据展现四个主要阶段
反规范化技术
概念:规范化设计后,数据库设计者希望牺牲掉部分规范来提高数据库性能(查询快)
具体方法
增加冗余列
增加派生列
重新组表
水平分割表
垂直分割表
大数据
概念:大量化、多样化、价值密度低、快速化