数据库系统概论【设计与应用开发篇】
一、关系数据理论
作为一个二维表,关系要符合一个最基本的条件:每一个分量必须是不可分割的数据项。满足了这个条件的关系模式就属于第一范式(1NF)数据依赖是一个关系内部属性与属性之间的一种约束关系。这种关系是通过属性间值得相等与否体现出来的数据间相关联系。包括:函数依赖(Functional Dependency,FD)和多值依赖(Multi-Valued Dependency,MVD).关系数据库规范化过程主要克服数据库逻辑结构中的问题: (1)、数据冗余 (2)、更新异常 (3)、插入异常 (4)、删除异常 一个好的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少。 规范化(用于消灭某些性质不好的函数依赖,讨论如何根据属性间依赖情况来判定关系是否具有某些不合适的性质,通常按属性间依赖关系区分关系规范化程度为第一范式,第二范式,第三范式和第四范式等等;)函数依赖
定义:设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X-->Y。 部分函数依赖:X-->Y,X'-->Y 传递函数依赖:X-->Y,Y-->Z; 非平凡函数依赖:X-->Y,但Y不属于X,则称X-->Y是非平凡的函数依赖; 平凡函数依赖:X-->Y,但Y属于X,则称X-->Y是平凡的函数依赖。 完全函数依赖 定义:在R(U)中,如果X-->Y,并且对于X的任何一个真子集X' ,并且对于X的任何一个真子集X' ,都有X' ,都有X' -/-->Y,则称Y对X完全函数依赖,记作X--F-->Y; 部分函数依赖 若X-->Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖(partial functional dependency),记作X--P-->Y;码:码是关系模式的一个重要概念
若K--F-->U,则称K为R的候选码(candidate key)。 如果U部分函数依赖于K,即K--P-->U,则称K为超码(Surpkey)。候选码是最小的超码,即K的任意一个真子集都不是候选码。 包含在任何一个候选码中的属性称为主属性(prime attribute);不包含在任何候选码中的属性为非主属性(nonprime attribute)或非码属性(non-key attribute).范式:关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。
1NF 包含 2NF 包含 3NF 包含 BCNF 包含 4NF 包含 5NF 一个低一级范式的关系模式通过模式分解(schema decomposition)可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化(normalization).2NF (用于消灭非主属性对候选码的部分函数依赖):若R属于1NF,且 每一个非主属性完全函数依赖于任何一个候选码,则R属于2NF。 例如:1、(Sno ,Cno)主属性 2、(Sno,Cno)--P-->sdept 3、结论:R不属于2NF;3NF(消灭传递依赖关系):设关系模式R<U,F>属于 1NF,若R中不存在这样的码X,属性组Y及非主属性Z(Y不包含Z)使得X-->Y,Y-->Z成立,Y-/->X,则称R<U,F>属于3NF。 关系模式R(A,B)已属于3NF,仍可能存在一定的插入和删除异常;BCNF(用于消灭主属性对其他属性的函数依赖):关系模式R<U,F>属于1NF,若X-->Y且Y不包含X时X必含有码,则R<U,F>属于BCNF.多值依赖
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X-->-->Y成立,并且仅当对R(U)的任一关系r,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而于z值无关。 多值依赖具有以下性质: (1)、多值依赖具有对称性 (2)、多只依赖具有传递性 (3)、函数依赖可以看作是多值依赖的特殊情况多值依赖于函数依赖相比,具有下面两个基本的区别:
(1)、多值依赖的有效性于属性集的范围有关 (2)、若函数依赖X-->Y在R(U)上成立,则对于任何Y' 包含 Y 均有 X-->Y'成立。而多值依赖X-->-->D成立。而多值依赖X-->-->Y若在R(U)上成立,却不能断言对于任何Y'包含Y 有X-->-->Y'成立。4NF(消灭非平凡的函数依赖):关系模式R<U,F>属于1NF,如果对于R的每个非平凡函数多值依赖 X-->-->Y(Y不包含X),X都含有码,则称R<U,F>属于4NF.
二、数据库设计
数据库设计:数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户应用的需求,包活信息管理要求和数据操作要求。
1、需求分析阶段:要不断交流,客户和程序员的理解不一样;形成需求分析说明书,通过“评审”后作为以后各个设计阶段的依据
2、概念结构设计阶段:
概念模型:独立于硬件设备和DBMS,并且是真实性和易转换
E-R模型:1、实体之间的联系(是通过关系与关系之间的公共属性)
(1)、实体之间的联系:一对一联系,一对多联系,多对多联系
(2)、两个以上的实体型之间的联系
(3)、单个实体型内的联系
2、E-R图:提供了表示实体型、属性和联系的方法
(1)、实体型用矩形表示
(2)、属性用椭圆形表示
(3)、联系用菱形表示
E-R图的集成:
1、合并E-R图,可用于解决一下问题:
(1)、属性冲突 (2)、命名冲突 (3)、结构冲突
2、修改和重构。消除不必要的冗余!
(1)、存在一些冗余的数据 (2)、实体间冗余的联系
3、逻辑结构设计阶段
(1)、E-R图向关系模型的转换
(2)、数据模型的优化
4、物理结构设计阶段
为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,就是数据库的物理设计
(1)、确定数据库的物理结构
(2)、对物理结构进行评价
5、数据库实施阶段
数据库实施阶段包活两项重要的工作,一项是数据的载入,另一项是应用程序的编码和调试。
6、数据库运行和维护阶段
1、数据库的转储和恢复
2、数据库的安全性、完整性控制
3、数据库性能的监督、分析和构造
4、数据库的重组织与重构造