数据库的发展:
层次网状数据库关系数据库
分布式数据库
理论基础:
关系代数运算:
选择运算、投影运算、更名运算并运算、集合差运算、笛卡尔积运算
集合交运算、自然连接运算、赋值运算、
广义投影、聚集运算、外连接
广义投影、聚集运算、外连接
数据模型:
关系模型、E-R模型、基于对象的数据模型、半结构化数据模型关系数据库:
基本结构:关系(表)、属性
E-R模型中实体联系转化为关系模型中的关系(表)
分别站在数据库设计者和数据库使用者的角度:
数据库设计者:
面对的问题:
数据冗余和不一致、数据访问困难、数据孤立、完整性问题、原子性问题、并发访问异常问题、安全性问题设计目标
设计一个好的关系需要考虑的问题:
更新数据时的出错机率(单一存储、多个存储)数据冗余
数据依赖
选择一个更大的还是更小的关系模式
同一个数据在不同大小关系模式中的表示转换: (有损分解、无损分解)
关系模式设计是遵循的准则:
1NF-->2NF-->BCNF/3NF-->4NF-->5NF(一般达到3NF要求即可,一事一地)即使在设计时每个表都遵循上述准则要求,也可能出现问题。在设计前还需要和客户沟通,并且要
注意,信息化的目的是为了更加简单有效的处理信息,在设计表模式时,不能仅仅是将用户手工管
理的内容移植到数据库中,还需要引导用户对信息整理,处理信息同名不同义,同义不同名的问题
注意,信息化的目的是为了更加简单有效的处理信息,在设计表模式时,不能仅仅是将用户手工管
理的内容移植到数据库中,还需要引导用户对信息整理,处理信息同名不同义,同义不同名的问题
数据库系统的层次结构:
物理层、逻辑层、视图层存储优化:
使用缓存技术缓冲区管理(LRU、MRU)
文件和记录的组织:
堆文件、顺序文件、散列文件(散列文件的桶溢出问题-->偏斜、溢出链)索引的使用:
聚集索引、辅助索引稠密索引、稀疏索引
应用多级索引和辅助索引
B+树索引
散列索引
查询处理和查询优化:
查询-->语法分析器与翻译器-->关系代数表达式-->优化器-->执行计划-->执行引擎-->查询结果嵌套循环
块嵌套循环
索引嵌套循环
块嵌套循环
索引嵌套循环
关系表达式的转换
事务:
ACID准则并发调度相关
所支持的数据类型:
基本域类型:char(n)、varchar(n)、int、smallint、numeric、real double precision、float(n)
SQL內建数据类型:
date、time、timestamp
date、time、timestamp
用户定义类型(create type):
独特类型、结构化数据类型
独特类型、结构化数据类型
数据库使用者(DBA、Developer):
规范化(选择合适的关系模式):SQL:
DDL、DML、完整性、视图定义、事务控制、嵌入式SQL和动态SQL、授权
DDL、DML:
数据库与表的创建、删除、修改SQL的增删改查
子查询
递归查询
连接查询
空值的影响
完整性约束:
not null、unique、check(谓词) (单个关系上的)主键(超键、候选键)、外键(有的书上翻译为码...) (参照完整性约束)
断言(assertion)
触发器trigger
视图的使用
安全性:
授权(grant):包括delete、insert、select、update权限
用户user、角色role