数据库技术
一、数据库基础
1.数据库系统
- DB、DBS、DBA、DBMS
2.三级模式两级映像
-
内模式
- 物理存储
-
概念模式
- 基本表
-
外模式
- 用户使用应用程序,视图级别
-
外模式-概念模式的映像
- 表和视图之间的映射
- 若表中数据变化,只要修改映射,不用改程序
-
概念模式-内模式的映像
- 表和物理数据之间的映射
- 若改了数据存储方式,只要改映射,不用改程序
3.数据库设计
- 需求分析:数据流图、数据字典、需求说明书(文档)
- 概念结构设计:E-R图
- 逻辑结构设计:将E-R图转换成关系模式
- 物理设计
4.数据模型
- 三要素:数据结构、数据操作、数据的约束条件
- E-R图:椭圆形(属性)、长方形(实体)、菱形(联系)、连线
- 联系分类:1对1、1对多、多对多
5.关系代数
表与表的逻辑运算
- 并
- 交
- 差
- 笛卡尔积RxS
- 投影
- 选择
- 自然连接
- 显示全部列,重复只显示一次
- 显示所有属性相同且值相同的记录
- RxS与自然连接的等价关系表达式
- π投影列,σ选择行的条件,∧并且,∪或者
二、规范化和并发控制
1.函数依赖
- A-->B A决定B,B依赖于A
- 部分依赖
- 传递依赖
- 依赖公理
2.键与约束
- 超键:能唯一标识此表的属性组合
- 候选键:超键中去掉冗余属性,剩下的
- 主键:在候选键中任选一个
- 外键:其他表中的主键
- 主属性:候选键中的属性为主属性,其他属性为非主属性
- 实体完整性:主键
- 参照完整性:外键
- 自定义完整性:自定义表达式约束
3.范式
- 第一范式1NF
- 第二范式2NF,消除非主属性对于主属性的部分依赖
- 第三范式3NF,消除传递依赖
- BC范式BCNF,进一步消除主属性对于码的部分依赖和传递依赖
每种情况每个依赖的左边决定因素都必然包含候选键
4.模式分解
- 保持依赖的分解
- 分解出来的多个关系模式保持原来的依赖集不变(要消除冗余依赖)
- 无损分解
- 分解后的关系模式能够还原出原关系模式
- 对于两个关系模式的分解则有 R1∧R2 -> (R1-R2)或(R2-R1)
5.并发控制
- 事务的特性:原子性、一致性、隔离性、持久性
- 并发控制的问题:丢失更新、不可重复读、读脏数据
6.封锁协议
- 排他锁X(写锁)
- 不可再加其他任何锁
- 共享锁S(读锁)
- 可以继续加共享锁,不可加排他锁
- 三级封锁协议
三、数据库新技术
1.数据库安全
-
措施
- 用户标识和鉴定
- 存取控制(各种权限授权)
- 密码存储的传输(远程终端信息)
- 视图保护(视图授权)
- 审计(记录操作)
-
故障与解决
- 事务本身可预期故障,在程序中预设rollback语句
- 事务本身不可预期故障,通过日志恢复撤销事务
- 系统故障,停止运转,检查点法
- 介质故障,使用日志重做业务
-
备份
- 静态转储(冷备份),停机
- 动态转储(热备份),不停机
- 完全备份、差量备份、增量备份
2.分布式数据库
3.数据仓库
- 面向主题、集成的、非易失的(稳定)、随时间变化(历史变化)的数据集合
- 结构层次:数据源、数据的存储和管理、OLAP(联机分析处理)服务器、前端工具
- 商业智能BI
- 数据预处理ETL
- 建立数据仓库
- 数据分析
- 数据展现
4.反规范化技术
- 含义
- 牺牲规范化来提高性能
- 好处:降低连接操作的需求、降低外码索引数目,减少表,提高查询效率
- 问题:数据重复存储,浪费磁盘空间;数据完整性问题;增加维护复杂性,降低修改速度
- 具体方法
- 增加冗余列
- 增加派生列
- 重新组表
- 水平分割表
- 垂直分割表
5.大数据
- 特点:大量化、多样化、价值密度低、快速化
- 与传统数据对比
比较维度 传统 大数据 数据量 GB或TB PB或以上 分析需求 现有数据分析检测 深度分析(关联分析/回归分析) 硬件平台 普通/高端服务器 集群平台 - 大数据处理系统特征
- 高可扩展、高性能、高容错
- 持异构环境、较短分析延迟
- 易用且开放接口
- 成本较低、向下兼容性
四、SQL语言
DDL
- 建表
- 删表
- 修改表
- 建索引
- 建视图
DML
- 插入
- 删除
- 修改/更新
DQL
- 条件查询
- 连接查询
- 聚合函数查询