
文章目录[隐藏]
本文为自我总结王珊著的《数据库系统概论(第5版)》提纲,主要以课本目录为主,其中省略章节内容如下:1.3 数据库系统的结构(模式 外模式 内模式那一块),第8章 数据库编程整章,12章及以后,所有带星号内容。剩下的尽量按照逻辑和重点进行了划分,希望有用。
绪论
数据库系统概述
数据:描述事物的符号记录
数据库:长期储存在计算机内(永久存储)、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库管理系统:位于用户与操作系统之间的一层数据管理软件。属基础软件。
数据定义功能、数据组织存储和管理功能、数据操纵功能、数据库的事务管理和运行功能、数据库的建立和维护功能
数据库系统:由数据库、数据库管理系统、应用程序和数据库管理员组成。
三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段
数据模型:对现实世界数据特征的抽象
三方面要求:能比较真实地模拟现实世界、容易理解、便于计算机上实机。
划分:
概念模型(信息模型):按用户观点对数据和信息建模;
- 实体:客观存在并可互相区别的事物。
- 属性:实体具有的某一特性;
- 码:唯一标识实体的属性集;
- 实体型:eg. 学生(学号…班级…入学时间)
- 实体集:同一类型的实体的集合;
- 联系:不同实体集之间,一对一,一对多,多对多
逻辑模型和物理模型:按计算机系统的观点对数据建模,用于数据库管理系统的实现。& 对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法。
数据模型组成要素:
- 数据结构、数据操作、数据完整性约束条件(完整规则)。
- 常用数据模型:层次模型(树)、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。
数据库系统的组成
关系数据库
关系模式
域:一组具有相同数据类型的值的集合;
关系 = 关系数据结构:
- 关系:候选码、主码、全码
- 关系的三种类型:基本关系、查询表、视图表
关系操作
- 选择、投影、并、差、笛卡儿积
关系的完整性
- 实体完整性:若属性A是基本关系R的主属性,则A不能取空值;
- 参照完整性;
- 用户定义完整性;
关系代数
- 并、差、交、笛卡儿积
- 选择、投影(就是去重)、连接(自然连接、等值连接)、除
关系数据库标准语言SQL
增
删
- 索引
改
查
- 聚集函数、Group by
- 连接查询
- 嵌套查询
- 集合查询
视图
数据库安全性
授权GRANT、收回REVOKE
实现数据库安全性控制的常用方法和技术: 用户标识和鉴别;存取控制;视图机制;
数据库完整性
数据库完整性指:正确性,相容性
- 实体
- 参照
- 用户定义
- 断言
- 触发器
关系数据理论
规范化
- 范式:一个低一级范式的关系模式通过模式分解转为若干个高一级范式的关系模式的集合,转换过程称为规范化
- 1NF : 每个分量必须是一个不可分的数据项。
- 2NF : 不存在非主属性对码的部分依赖。
- 3NF : 不存在非主属性对码的传递依赖
- BCNF: 每一个决定因素均含码。
- 4NF : 每个非平凡的多值依赖,决定因素均含码。
- 不好的关系模式会产生如下问题:插入异常、删除异常、修改复杂、数据冗余。故需对关系模式进行规范化。
- 主属性:包含在任何一个候选码中的属性;
数据依赖的公理系统
函数依赖
- 完全函数依赖、部分函数依赖、传递函数依赖
多值依赖
数据库设计
需求分析:了解用户的数据需求、处理需求、安全性及完整性要求
概念结构设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
- E-R图
- 可能产生的冲突:属性冲突、结构冲突、命名冲突
逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
物理结构设计:设计数据的存储结构和存取方法,如索引的设计;
实施和维护:组织数据入库、编制应用程序、试运行;系统投入运行,长期的维护工作
关系查询处理和查询优化
代数优化
在有选择和连接操作时,应当先做选择操作,再做连接操作。于是有:
- 选择运算尽可能先做
- 把投影运算与选择运算同时进行;
- 把投影同其前或后的双目运算结合起来。
- 把某些选择同在安前面要执行的笛卡尔积结合起来成为一个连接运算。
- 找出公共子表达式。
物理优化
数据库恢复
事务:用户定义的一个数据库的操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位;
事务,原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持续性(Durability)
故障:内部故障【解决:事务撤销】、系统故障【解决:重做】、介质故障、病毒
恢复技术
- 数据转储:动态海量转储、动态增量转储、静态海量转储、静态增量转储
- 日志文件
并发控制
- 并发操作带来的数据不一致包括:丢失修改、不可重复读、读“脏”数据
- 产生上述数据不一致性的主要原因:破坏了事务的隔离性。
- 为防止数据不一致,主要技术有:封锁、时间戳、乐观控制法、多版本并发控制。