分布式数据库特点
-
数据独立性(数据的逻辑独立性与物理独立性)
-
集中与自治共享结合的控制结构
-
适当增加数据冗余度 可提高系统的可靠性和可用性
-
全局的一致性、可串行性和可恢复性
透明性:分块存储选择分片透明 复制透明 位置透明 数据模型选择局部映像透明性(逻辑透明)
集中式数据库不联网也可以使用
三级模式
-
(视图级)外模式(用户模式)
-
(表级)概念模式(模式)
-
(文件级)内模式(存储模式)
逻辑独立性:数据的逻辑结构发生变化后,用户程序也可以不修改,但是为了保证应用程序能够正确执行,需要修改外模式和概念模式之间的映像
物理独立性:数据的物理结构发生变化后,应用程序不再改变,但是为了保证应用程序能够正确执行,需要修改概念模式和内模式之间的映像
数据仓库特点
-
面向主题
-
集成的
-
相对稳定的
-
反映历史变化
阶段1:数据预处理(ETL)
阶段2:数据仓库存储
阶段3:数据分析
阶段4:数据展现
OLAP:联机分析
OLTP:联机事务
数据库设计过程
需求分析 (产物:数据流图 数据字典 需求说明书)-> 概念结构设计(ER模型也叫实体联系模型)-> 逻辑结构设计 (关系模式)->物理设计(聚簇索引)
E-R模型
概念结构设计包括:抽象数据 -> 设计局部ER模型 ->合并局部模型 消除冲突 ->重构优化 消除冗余
集成产生的冲突及解决办法:(针对同一对象)
E-R图
实体用矩形表示 属性用椭圆表示 联系用菱形表示
数据模型
-
层次模型
-
网状模型
-
关系模型 二维表
-
面向对象模型
关系模式结构:关系模式名称(属性1,属性2)
数据模型三要素:数据结构 数据操作 数据的约束条件
目或度:关系模式中属性的个数
候选码(候选键):唯一标识元组,且无冗余(属性集合 可以有1个 也可以有多个)
外键:参照完整性 其他关系的主键
完整性约束
-
实体完整性约束 主键 唯一非空
-
参照完整性约束 外键 要么是其他主键 要么是空
-
用户自定义完整性约束
关系代数
垂直方向:属性列(属性列个数叫做目或度)
水平方向:元组行(1个元组叫做1条记录或1个实例)
笛卡尔积
属性列数为两者之和
元组行数为两者乘积
自然连接 符号2个三角形
属性列数为两者之和减去重复列数
元组行数为同名属性列取值相等
自然连接步骤:先做选择再做投影
规范化理论
函数依赖
X->Y X决定因素 Y被决定因素
A->B->C 满足时,A->C称为函数传递依赖/冗余依赖,可以不写
候选键
找出入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有节点,则该属性集即为关系模式的候选键
X->Y,Y->Z 传递律
X->Y可以推出XW->YW 增广律
X->Y,WY->Z可以推出XW->Z 伪传递律
X->Y,X->Z 可以推出X->YZ 合并律
数据冗余 修改异常 插入异常 删除异常
范式
第一范式:属性值都是不可分的原子值
第二范式:当且仅当关系模式R是第一范式,且每1个非主属性完全依赖候选键(没有不完全依赖)时。
第三范式:当且仅当关系模式R是第二范式,且R中没有非主属性传递依赖于候选键时(传递)
BC范式:当且仅当每个依赖的决定因素必定包含R的某个候选码
没有非主属性至少满足第三范式
无损分解
如果R的分解为ρ={R1,R2},F为R所满足的函数依赖集合,分解ρ具有无损连接性充要条件:R1∩R2->(R1-R2)
函数依赖
SQL语言
分类 | 动词 |
---|---|
数据查询 | select |
数据定义 | create drop alter |
数据操纵 | update insert delete |
数据控制 | grant revoke |
对结果分组 将查询结果按列值分组 group by
对分组结果筛选 having
cascade级联收回权限
并发控制
事务四大特性:ACID
原子性(Atomicity):事务是原子的,要么都做,要么都不做
一致性(Consistency):事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态
隔离性(Isolation):事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事物都是不可见的
持久性(Durablitity):一旦事务成功提交,即使数据库崩溃,其对数据库更新操作也永久有效
并发问题
-
丢失更新/修改:多次写回,第一次写回被覆盖
-
不可重复读:验算不对,其他事务对其它数据进行修改
-
读脏数据:无效中间数据,被回滚了
封锁协议
并发产生的问题解决方案:封锁协议
S封锁 X封锁 两段锁协议
S锁(共享锁或读锁):若事务T对数据对象A加上S锁,其他事务只能对A再加S锁,不能再对A添加X锁
排他锁(独占锁也叫X锁也叫写锁):若事务T对数据对象A加上X锁,其他事务不能再对A添加任意锁。
死锁预防或解除