数据库基本概念
数据的物理独立性和逻辑独立性是通过修改()来完成的
物理独立性:外模式与内模式的的映像------当内模式发生变化,只需要调整模式与内模式之间的映像,而不用修改应用程序
逻辑独立性:外模式与模式之间的映像------当模式发生变化,只需要调整外模式与模式之间的映像,而不用修改应用程序
数据库系统通常采用三级模式结构----外模式,模式和内模式。
这三级模式分别
视图对应外模式,
基本表对应模式,
存储文件对应内模式
数据库设计主要包括:用户需求分析,概念结构,逻辑解构,和物理结构设计阶段
逻辑结构设计阶段需要需求分析阶段的文档来完成
需求分析阶段:工作人员通过辅助工具形成需求说明文档,数据字典,和数据流程图。
在数据库逻辑 设计阶段,若实体中存在多值属性,那么将E-R图转换为关系模式是逻辑设计的主要内容,转换中将实体转换为关系模式。其中对实体的派生属性不予考虑,组合属性只取各组合分量,若包含多值属性,通常一个实体对应一个关系模式。
对实体中的多值属性,取实体的码和多值属性构成新增的关系模式,且该新增关系模式中,实体的码多值决定多值属性,属于平凡的多值依赖,关系属于4NF
E-R模型向关系模型转换时,三个实体之间多对多的联系m:n:p应该转换为一个独立的关系模式,且该关系模式的关键字由(三个实体的关键字)组成
:E-R模型向关系模型转换时,两个以上实体之间多对多的联系应该转换为一个独立的关系模式
对关系R(A,B,C,D)进行投影运算的两种表达式:PI 1,3(R)或者PIA,C(R)
视图是一个虚拟表,不是一个真实存在的基础表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的基本表里。
判断主键时,牢记主键就是能唯一决定一条记录的最小属性或则属性组。
关系代数表达式查询优化的原则
1.提早执行选取运算
2.合并乘积与其后的选择运算为连接运算:在表达式中,当乘积运算后面是选择运算时,应合并为连接运算,使选择与乘积一道完成,以避免做完乘积时,需要再扫描一个较大的乘积关系进行运算
3.将投影运算与其后的其他运算同时进行,以避免重复扫描关系
4.将 投影运算和其前后的二目运算符结合起来,使得没有必要为去掉某些字段再去扫描一遍关系
5.在执行连接前对关系适当的进行预处理,就能快速的找到要连接的元组。方法有两种:索引链接法,排序合并连接法
6.存储公共子表达式。对于有公共子表达式的结果应存于外存(中间结果)。这样,当从外存读出它的时间比计算的时间少时,就可以节约时间。
四种范式的定义
1NF:符合1NF的关系中的每个属性都不可再分
2NF:在1的基础上,消除了非主属性对于码的部分函数依赖
3NF:在2的基础上,消除了非主属性对于码的传递函数依赖
关系模式(不是指表,但是是包含了表,在表的层次以上)
- 一个关系模式应该是五元组 R(U,D,DOM,F)
- R 符号化的元组语义
- U 一组属性
- D 是属性组U中的属性所来自的域
- DOM 为属性到域的映射
- F 为属性组U上的一组数据依赖
- 一般使用三元组 R
【数据依赖】
- 数据依赖是一个关系内部属性与属性之间的一种约束关系
- 1.函数依赖 FD
- 若U的子集X,Y,X和Y形成唯一标识,X函数确定Y,Y函数依赖于X。记X -> Y
- 非平凡的函数依赖:X->Y 但是Y不属于X
- 平凡的函数依赖:X->Y Y属于X
- X 称为该函数依赖的决定属性,决定因素
- X->Y 并 Y->X 则 X<–>Y
- 2.多值依赖 MVD
- 1.1 完全函数依赖:X->Y 并且X的真子集D 都存在子集 D不能->Y。
- 1.2 部分函数依赖:X->Y 但是Y不完全函数依赖于X 。
- 1.3 传递函数依赖:X->Y(Y不属于X),Y不能->X, Y->Z(Z不属于Y)则称Z对X传递函数依赖
【码】
- 设 K是R
【范式】 应用于关系模式R
闭包
- 在关系模式R
模式分解
- 具有无损连接性(粗略概述:不减少字段和改变元组)
- 要保持函数依赖(子模式里满足依赖关系)
- 既要保持函数依赖性,又要具有无损连接性
- 通过使用模式分解能提高关系模式能满足的范式等级