数据模型

来源:互联网 发布:炉石传说淘宝充值 编辑:程序博客网 时间:2024/06/08 08:35

在使用数据时,一般先用图或表的形式抽象数据彼此之间的关系,称为建立数据模型。数据模型主要有两大类:(1)概念数据模型(实体联系模型)(2)基本数据模型(结构数据模型)。

概念数据模型:按照用户的观点来对数据和信息建模,主要用于数据库设计。主要用实体-联系方法(Entity-Relationship Approach)表示,也称为E-R模型。

基本数据模型:按照计算机系统的观点来对数据和信息建模,通常由数据结构、数据操作和完整性约束三部分组成,其中数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述,完整性约束是一组完整性规则的集合。

常用的基本数据模型有层次模型、网状模型、关系模型和面向对象模型。

(1)层次模型 :用树型结构表示实体类型及实体间联系。由于层次顺序的严格和复杂,引起数据的查询和更新操作更复杂,应用程序的编写也比较复杂。

(2)网状态模型:用有向图表示实体类型及实体间联系,但程序员必须熟悉数据库的逻辑结构。

(3)关系模型:用表格结构表示实体集,用外键表示实体间联系,建立在严格的数学概念基础上。由于存取路径透明,查询效率往往不如非关系数据模型。

(4)面向对象模型:用面向对象观点来描述现实世界实体的逻辑组织、对象间限制和联系等的模型。


关系模型

关系可以有三种类型:基本类型(基本表)、查询表和视图表,基本表是实际存在的表,它是实际存储数据逻辑表示。查询表是查询结果对应的表。视图表是基本表或其他视图表导出的表,是虚表。
基本关系具有以下6条性质:
(1)列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。
(2)不同的列可出自同一个域。
(3)列的顺序无所谓。
(4)任意两个元组不能完全相同,但在大多数实际关系数据库产品中,它们都允许关系表中存在两个完全相同的元组。
(5)行的顺序无所谓。
(6)分量必须取原子值,即每一个分量都必须是不可分的数据项。


规范化理论

设有一个关系模式R(SNAME,CNAME,TNAME,TADDRESS),其属性分别表示学生姓名、选修的课程名、任课教师姓名和教师地址。但这个模式存在存储异常的问题。
(1)数据冗余。如果某门课程有100个学生选修,那么在R的关系中就要出现100个元组,这门课程的任课教师姓名和地址也随之重复出现100次。
(2)修改异常。由于上述冗余问题,当需要修改这个教师的地址时,就要修改100个元组中的地址值,否则就会出现地址值不一致的现象。
(3)插入异常。如果不知道听课学生名单,这个教师的任课情况和家庭地址就无法进入数据库。
(4)删除异常。如果某门课程的任课教师要更改,那么原来任课教师的地址将随之丢失。

函数依赖
设R(U)是属性U的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中任意两个元组u、v,只要有u[X]=v[X],就是u[Y]=v[Y],则称X函数决定Y,或称Y函数依赖于X记为X->Y。
从函数依赖的定义可以看出,如果有X->U在关系模式R(U)上成立,并且不存在X的任意真子集X'使X'->U成立,那么称X是R的一个候选键。也就是X值唯一决定关系 中的元组。由此可见,函数依赖是键概念的推广,键是一种特殊的函数依赖。
在R(U)中,如果X->Y,并且对于X的任何一个真子集X',都有X'->Y不成立,则称Y对X完全函数依赖。若X->Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖。
在R(U)中,如果X->Y(Y不是X的真子集),且Y->X不成立,Y->Z,则称Z对X传递函数依赖。

设U是关系模式R的属性集,F是R上成立的只涉及到U中属性的FD集,则有以下三条推理规则:
(1)自反性:若Y包含于X,X包含于U,则X->Y在R上成立。
(2)增广性:若X->Y在R上成立,且Z包含于U,则XZ->YZ在R上成立。
(3)传递性:若X->Y和Y->Z在R上成立,则X->Z在R上成立。

根据上述三条规则还可以推出另外三条常用的推理规则 :
(1)并规则 :若X->Y和X-Z在R上成立,则X-YZ在R上成立。
(2)分解规则:若X->Y在R上成立,且Z包含于Y,则X->Z在R上成立。
(3)伪传递规则:若X->Y和WY->Z在R上成立,则WX->Z在R上成立。


范式
(1)1NF:如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式,r是规范化的关系。关系数据库研究的关系都是规范化的关系。
(2)2NF:若关系模式R是1NF,且每个非主属性完全依赖于候选键,那么称R为2NF。
(3)3NF:若关系模式R是1NF,且每个非主属性都不传递依赖于R的候选键,则称R为3NF。
(4)BCNF:若关系模式R是1NF,且每个属性都不传递依赖于R的修改键,称R为BCNF。
1NF包含2NF,2NF包含3NF,3NF包含BCNF。

无损联接分解判定定理:如果R1,R2是R的一个分解,那么分解是无损分解的充分必要条件是R1交R2函数决定R1-R2或R1交R2函数决定R2-R1.



原创粉丝点击