《数据库系统概论》(第三版)
数据库最基本的一本教科书,高等教育出版社出版。为了加深对数据库基本知识的
理解,重新翻看了一遍,为进一步掌握学习数据库知识打基础。
全书分为四部分:基础、设计、系统、新技术。按书中的顺序,下面记录了读书时
的笔记:
第一篇 基础篇
1:绪论
1.1:概述
数据库系统的组成:数据库、数据库管理系统、应用系统、数据库管理员和用户。
数据库技术的发展:人工管理——文件系统——数据库系统。
数据库系统的特点:实现整体数据的结构化、数据共享、低冗余、易扩充、数据物理
独立和数据逻辑独立、数据由DBMS统一管理。
1.2:模型
数据模型:由数据结构(静态)、检索/更新(动态)、约束条件。
主要的数据模型有:层次模型、网状模型、关系模型、面向对象模型。
概念模型:由实体、属性、码、域、实体型、实体集、联系组成,表示方法是E-R图。
1.3:结构
三级模式:模式(所有用户的公共数据视图)、外模式(数据用户视图)、内模式(存储模
式)。
三级模式构成两种映象保证逻辑独立性和物理独立性。
外模式/模式映象:保持外模式不变使数据程序的逻辑独立性,称为数据的逻辑独立性。
模式/内模映象:保持模式不变,以使得外模式依赖的程序不变,称为数据的物理独立性。
1.4:组成
硬件平台及数据库、软件、人员。
人员包括:DBA(数据库管理员)、系统分析人员/数据库设计人员、应用程序员、用户。
1.5:研究
研究领域是;数据库管理系统软件、数据库设计、数据库理论。
2:关系数据库
2.1:概述:
关系指一张二维表、关系操作是集合操作、需要满足实体完整性、参照完整性,用户定义
完整性。
2.2:定义:
关系可以有三种类型:基本表、查询表、视图表。
R(U、D、dom、F):U——属性名集合 D——属性对应的域 dom——属性向域的映象
F——属性同数据的依赖关系集合。
2.3:完整性
实体完整性——表中主码来保证行数据的唯一性。
参照完整性——主码和外码关联。
用户定义的完整性——用户定义的语义条件。
2.4:关系代数
传统的集合运算有:并、差、交、广义笛卡尔积。
关系运算:选择、投影、连接、除。
2.5:关系演算
元组关系演算语言:ALPHA。
域关系演算语言:QBE。
3:SQL
SQL太熟了,不多说,只看一下嵌入SQL:
3.1:SQL与主语言的通信方式
SQL通信区:通过SQLCA数据结构来存储执行状态。
主变量:通过程序变量来传参。
游标:用来存储多条记录,与上述两种方式综合使用。
游标主要通过Declare定义,Open打开,Fetch读取,Close关闭。另外可以使用Current来
Update或Delete。
3.2:动态SQL
这里的动态SQL更多指的是程序设计方面的知识,不指SQL本身。
4:关系系统及查询优化
4.1:关系系统的定义
不苛求关系系统一定要支持完整的关系模型,最小定义为:
支持关系数据库(表结构),支持选择、投影和连接。
分类:表式系统、最小关系系统、完备关系系统、全关系系统。
全关系系统的十二原则,略。
4.2:查询优化
优化一般分为四个步骤:
a:将查询转变为语法树。
b:用等价原则将语法树换成标准形式。
c:选择最优算法。
d:生成最终的查询计划。
一般商品采用基于代价的优化算法:
总代价 = I/O代价 + CPU代价 + 内存代价
4.3:优化的原则
a:选择运算优先。
b:对连接进行预处理:如排序。
c:投影和选择可同时进行。
d:结合投影和双目运算,减少扫描。
e:把选择和笛卡尔积结合为连接运算。
f:找出公共子表达式。
4.4:利用关系代数的等价变化规则优化。
5:关系数据理论
这节讲的概念比较多,有些复杂,但最重要的是范式定义:
第一范式:关系、作为一张二维表、每一分量必须不可分。
2NF:在1NF的基础上,非主属性完全函数依赖于码。
3NF:每一个非主属性既不部分依赖于码也不传递依赖于码。
BCNF:所有主属性对每一个不包含它的码完全函数依赖,没有任何属性完全函数依赖于
非码的任何一组属性。唉,太复杂了。
模式分解:没弄明白。