谁共我
醉明月
概念
概述
- 数据库发展
- 人工管理阶段
- 文件系统阶段
- 数据库系统阶段
- 数据库模型
- 层次模型
- 有且仅有一个结点没有父结点,他就是根结点
- 其他结点有且仅有一个父结点
- 网状模型
- 允许结点有多于一个的父结点
- 可以有一个以上结点没有父结点
- 关系模型
- 面向对象模型
- 层次模型
- 数据库体系结构
- 外模式(用户可见的数据的逻辑模式和特征)
- 模式(数据库中数据的逻辑模式和特征)
- 内模式(数据物理结构和存储方式的描述)
- 两级模式映像
- 外模式-模式(逻辑数据独立性)
- 模式-内模式(物理数据独立性)
- 数据库系统(DBS)组成
- 硬件系统
- 数据库
- 数据库管理系统(DBMS)
- 相关软件和人员(DBA)
- 数据库系统特征
- 实现数据共享
- 减少数据冗余
- 保持数据一致性
- 数据的独立性
- 安全保密性
- 并发控制
- 故障恢复
- 数据库管理系统(DBMS)的主要功能
- 数据库定义功能
提供数据描述语言(DDL),定义数据哭三级结构两级映像,定义数据完整性、安全性控制等 - 数据库操纵功能
提供数据操纵语言(DML),实现增、删、查、改 - 数据库保护功能
提供数据库恢复、并发控制、数据安全性和完整性控制 - 数据库存储管理
将DML转换成低层文件系统命令 - 数据库维护功能
- 数据字典
实际数据库各级模式的定义,对数据库结构欧的描述
- 数据库定义功能
- 数据模型
- 数据结构
- 数据操作
- 完整性约束
- 数据字典功能
- 描述数据库系统的所有对象,并确定其属性
- 描述数据库系统对象之间的各种交叉联系
- 登记所有对象的完整性及安全性限制等
- 对数据字典本身的维护、保护、查询和输出
关系数据库
- 关系模型中基本术语
- 关系(二维表)
- 元组(一行)
- 属性(列)
- 域(属性取值范围)
- 关系模式
- 候选码(属性或属性的组合,能唯一标识一个元组)
- 主码
- 主属性(候选码中的属性)
- 关系模型中的完整性约束
- 实体完整性(主码不为空)
- 参照完整性
- 用户定义的完整性
- 关系代数的基本运算
- 并
- 差
- 笛卡尔积
- 选择
- 投影
- 关系运算
- 选择
- 投影
- 连接
- 除
- 关系系统的分类
- 表式系统(仅支持关系数据结构,不支持操作)
- 最小关系系统(仅支持关系数据结构和3种关系操作)
- 关系完备系统(支持关系数据结构和全部操作)
- 全关系系统(支持关系模型所有特性)
- 关系模式的范式
- 第一范式
每个属性的值域只包含原子项,不能排除数据冗余、更新异常等问题,其中可能包含部分函数依赖 - 第二范式
属于第一范式,同时每个非主属性都完全依赖于候选码 + 第三范式
属于第二范式,同时每个非主属性都非传递依赖于候选码,可能存在主属性对码的部份依赖和传递依赖 - BC范式
所有非主属性对每一个码都是完全函数依赖;所有的主属性对每一个不包含它的码,也是完全函数依赖;没有任何属性完全函数依赖于非码的任何一组属性;消除了插入和删除异常 - 第四范式
PS:若关系模式中的属性全部是主属性,则其最高范式是3NF
- 第一范式
SQL语言
- SQL语言特点
- 类似自然语言,简单易学
- 一种非过程语言
- 一种面相集合的语言
- 即可独立使用,又可嵌入使用
- 具有查询、操纵、定义和控制的一体化功能
- SQL Server体系结构
- 视图
- 基本表
- 存储文件
- SQL种类
- DDL
- DML
- DQL
- DCL
- 索引的作用
- 提高查询速度
- 提高连接、ORDER BY、GROUP BY的速度
- 查询优化过程依赖索引
- 强制实行的唯一性
- 索引的类型
- 聚集索引
- 非聚集索引
- 唯一性索引
- 视图的作用
- 简化用户操作
- 使用户以多角度看待同一数据
- 对于数据库的重构提供了一定程度的逻辑独立性
- 对机密数据提供安全保护
数据库设计与保护
- 数据库设计基本步骤
- 需求分析(数据流图、E-R图)
- 概念结构设计(E-R图)
设计概念模型 - 逻辑结构设计
概念模型——>数据结构模型 - 物理结构设计
- 数据库实现
- 数据库运行和维护
- 事务
DBMS的执行单位,由有限的数据操作序列组成,要么全做,要么全不做 - 事务的特性
- 原子性(做则全做)
- 一致性(事务独立执行的结果要保证数据库的一致)
- 隔离性(并发事务不必关心其他事务)
- 持续性(事务完成则其更改永久反映在数据库上)
- 数据库故障
- 事务故障
- 系统故障
- 介质故障
- 数据库并发控制问题
- 丢失更新
- 不可重复读
- 读脏数据
- 封锁
- 排他型封锁(X封锁)
不能再加其他锁 - 共享型封锁(S封锁)
可加S锁,不能加X锁
- 排他型封锁(X封锁)
- 封锁协议
- 一级封锁协议(事务T在修改数据R前必须先对其加X锁,直到事务结束才释放)[防止丢失修改]
- 二级封锁协议(一级封锁协议的基础上,读取R之前,必须对其加S锁,读完释放)[防止丢失修改、读脏数据]
- 三级封锁协议(一级封锁协议的基础上,读取R之前,必须对其加S锁,事务结束后释放)[防止丢失修改、不可重复读、读脏数据]
- SQL完整性约束机制
- 主码约束
- 外码约束
- 属性值约束
- 非空值约束
- 基于属性的检查子句
- 域约束子句
- 全局约束
- 基于元组的检查子句
- 断言