主要根据自己不会的进行查缺补漏
没有记录需要理解的代码以及计算题,主要是背诵内容
第一章
- 数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享
- 数据库管理系统的功能:数据定义功能,数据组织、存储和管理,数据操纵功能,数据库的事务管理和运行管理,数据库的建立和维护功能,其他功能
- 数据库系统:由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统
- 从文件系统到数据库系统标志着数据管理技术的飞跃
- 数据库实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别
- 数据共享:减少冗余度、节约存储空间,避免数据之间的不相容性与不一致性
- 数据模型:数据库中用来实现对现实世界进行抽象的工具。
- 数据模型包括
- 数据结构:描述数据库的组成对象以及对象之间的联系
- 数据操作:对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则
- 数据的完整性约束条件:一组完整性规则
- 概念模型是现实世界到及其实际的一个中间层次
- 数据独立性包括
- 物理独立性:用户的应用程序与数据库中数据的物理存储结构是相互独立的
- 逻辑独立性:用户的应用程序与数据库中数据的逻辑结构是相互独立的
- 数据的安全性:保护数据以防止不合法使用造成的数据泄密和破坏
- 数据的完整性:正确性、有效性、相容性
- 实体:客观存在并可相互区别的事物
- 属性:实体所具有的某一特性
- 码:唯一标识实体的属性集
- 数据与程序的物理独立性:数据库的存储结构改变了,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。
- 数据与程序的逻辑独立性:当数据的逻辑结构即模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变,从而应用程序不必修改
- 基本层次联系:两个记录以及它们之间的一对多的联系
- 数据库管理员职责:
- 决定数据库中的信息内容和结构
- 决定数据库的存储结构和存取策略
- 定义数据的安全性要求和完整性约束条件
- 监控数据库的使用和运行
- 数据库的改进和重组、重构
- 数据库操作指DB的检索和更新两大类操作
- 数据库全部数据的整体逻辑结构的描述,称为模式
- 关系操作的特点是集合操作
- 关系模式的定义是由关系名和属性名组成
第二章
- 关系的三种类型:基本关系、查询表、视图表
- 关系的两个不变性:实体完整性和参照完整性
- 参照完整性规则:若属性F是基本关系R的外码,它与基本关系S的主码相对应,则对于R中每个元组在F上值需为:
- 空值(F中每个属性均空值)
- 等于S中某个元组的主码值
- 关系模型的三个组成部分:关系数据结构、关系操作集合、关系完整性约束
第三章
- 模式定义:
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
- 修改:
ALTER TABLE <表名> ADD/DROP
- 相关子查询和非相关子查询
- 非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。
- 相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。
- 因此非相关子查询比相关子查询效率高
- 基本表:本身独立存在的表,在SQL中一个关系就对应一个基本表
- 视图:从一个或几个基本表导出的表,是基本表或视图产生的虚表
- 视图的优点:
- 简化用户操作
- 使用户能以多种角度看待同一数据
- 对重构数据库提供了一定程度的逻辑独立性
- 对机密数据提供安全保护
- 适当利用视图可以更清晰地表达查询
第四章
- 数据库的安全性:保护数据库以防止不合法使用所造成的数据泄露、更改和破坏
- 不安全因素
- 非授权用户对数据库的恶意存取和破坏
- 数据库中重要或敏感的数据被泄露
- 安全环境的脆弱性
- 数据库安全性的控制方法
- 用户身份鉴别
- 存取权限控制
- 审计
- 视图机制
- 数据加密
- 安全准则建立行动:通用准则项目
- 安全级别划分指标:安全策略、责任、保证、文件
- 自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时,首先检查用户的存取权限。防止不合法用户对数据库的存取
- 强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一密级的数据对象。
- 用户权限组成两个要素:数据库对象和操作类型
GRANT REVOKE ALL PRIVILEGES
- 敏感度标记级别:绝密TS、机密S、可信C、公开P
- 强制存取机制中
- 主体是系统活动实体,既包括DBMS所管理的实际用户,也包括代表用户的各进程
- 客体是系统中的被动实体,是受主体操纵的,包括文件、基本表、索引、视图等
- 主体的敏感度标记称为许可证级别,客体的敏感度标记称为密级
第五章
PRIMARY KEY
CONSTRAINT <完整性约束条件名> <完整性约束条件>
CONSTRAINT <名字> FOREIGN KEY (外码) REFERENCES 表(主码)
CREATE ASSERTION <断言名> <CHECK子句>
- 数据库完整性:数据的正确性和相容性
- 数据库的完整性概念与数据库的安全性概念的区别和联系
- 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果
- 后者是保护数据库防止恶意的破坏和非法的存取。
- 安全性措施防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据
- 为维护数据库完整性,数据库管理系统必须能够实现如下功能:
- 定义功能:提供定义完整性约束条件的机制
- 检查功能:提供完整性检查的方法
- 违约处理功能:进行违约处理
CREATE TRIGGER <触发器名>
BEFORE|AFTER <触发事件(SELECT,UPDATE)> ON <表名>
REFERENCING NEW|OLD ROW AS <变量>
FOR EACH {ROW|STATEMENT}
BEGIN
……
END
第六章
- 一个好的模式应当不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少
- 最小函数依赖集满足
- 右部单属性
- 不存在冗余函数依赖
- 不存在冗余决定属性
1NF
消除非主属性对码的部分函数依赖
2NF
消除非主属性对码的传递函数依赖
3NF
消除主属性对码的部分和传递函数依赖
BCNF
消除非平凡且非函数依赖的多值依赖
4NF
第七章
- 数据库设计基本步骤
- 需求分析
- 概念模型设计阶段(概念模型)(E-R图)
- 逻辑结构设计阶段(某种数据模型)(在基本表基础上
- 建立必要的视图,形成数据的外模式)
- 物理结构设计阶段(物理存储安排)(建立索引,形成数据库内模式)
- 数据库实施阶段
- 数据库运行和维护阶段
- 数据字典:数据库中关于数据的描述而不是数据本身。 在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善。
- 内容
- 数据项
- 数据结构
- 数据流
- 数据存储
- 处理过程
- ER图冲突
- 属性冲突
- 命名冲突
- 结构冲突
第九章
- 查询优化:可分为代数优化(逻辑优化)和物理优化(非代数优化)
- 查询处理步骤:查询分析、查询检查、查询优化、查询执行
第十章
- 恢复的基本原理:冗余
- 建立冗余数据最常用的技术:数据转储和登记日志文件
- 日志文件:用来记录事务对数据库的更新操作的文件
- 设置日志文件的目的:进行事务故障恢复、系统故障恢复,协助后备副本进行介质故障恢复
- 为保证数据库是可恢复的,登记日志文件必须遵循两条原则
- 登记的次序严格按并发事务执行的时间次序
- 必须先写日志文件,后写数据库
第十一章
- 事务是并发控制的基本单位
- 为保证事务的隔离性和一致性,数据库管理系统需要对并发操作进行正确调度
- 并发操作带来的不一致性包括丢失修改、不可重复读和读“脏”数据
- 并发控制的主要技术有封锁、时间戳、乐观控制法和多版本并发控制
- 封锁协议
- 一级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放
- 二级封锁协议:在一级封锁协议基础上增加,事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁
- 三级封锁协议:在一级封锁协议基础上增加,事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放
- 预防死锁:一次封锁法,顺序封锁法
- 诊断死锁:超时法,事务等待图法
- 可串行化调度:多个事务并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同
- 正确调度:可串行化调度
- 两段锁协议
- 事务必须分两个阶段对数据项加锁和解锁。
- 在对任何数据进行读、写之前,首先要申请对该数据封锁
- 在释放一个封锁后,事务不再申请和获得任何其他锁
- 第一阶段是获得封锁(扩展阶段),第二阶段是释放封锁(收缩阶段)