《数据库系统概论》(第三版)
数据库最基本的一本教科书,高等教育出版社出版。为了加深对数据库基本知识的理解,重新翻看了一遍,为进一步掌握学习数据库知识打基础。 全书分为四部分:基础、设计、系统、新技术。按书中的顺序,下面记录了读书时的笔记:
第一篇 基础篇 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:所有主属性对每一个不包含它的码完全函数依赖,没有任何属性完全函数依赖于非码的任何一组属性。唉,太复杂了。 模式分解:没弄明白。
