关系模型规范化程度_第1页
关系模型规范化程度_第2页
关系模型规范化程度_第3页
关系模型规范化程度_第4页
关系模型规范化程度_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关系模型规范化程度篇一:关系规范化样例第三章 关系规范化理论 关系的规范是关系数据模型设计中的一个非常重要的问题,它可以指导我们设计出好的关系。设计和构造合理的关系,使之能准确地反映现实世界并有利于应用和具体操作,是关系的规范和探讨的问题。所以有人把关系的规范化理论称为设计数据库的理论。 第一节 关系中的键 一、候选键(candidate key) 凡在一个关系中具有主键特性的属性或属性组,均称为候选键。因为它们都具有被选为主键的条件,所以一个关系可能有多个候选键,但只能选其中的一个为主键。 候选键中包含的属性,期于的属性称为非主属性。 例:在职工关系 ZG (姓名,性别,年龄)中,增加一个属性:职工号,即得到一个新关系: ZG (职工号,姓名,性别,年龄) 又假定职工号与职工姓名是一一对应的,即没有两个职工的姓名相同,则“职工号”和“姓名”两个都是候选键。 二、替代键(alternate key) 对于某一指定的关系可能存在多个候选键,但只能选其中的一个为主键。在确定主键后,其余的候选键都是替代键,替代键在需要时可代替主键。 二、外来键(foreign key) 但关系中的某些属性系由另一个关系的主键构成时,则该属性(或属性组)称为外来键。 第二节 函数依赖 一、函数依赖 定义 1:设 R 是一个关系,X 和 Y 是 R 中的两个属性。若 R 中 X 的任何一个值,仅有一个 Y 的值与之对应,则称为 R 的属性 Y 函数依赖(FD)于属性 X,记作 X?Y。 例如:在描述船员的关系 CREW(NO,NAME,AGE,JOB,PAY) 它表示由任一船员号 NO,仅能找到一个姓名、一个年龄、一个。 。 。 定义中的属性 X 可以是复合属性,例如 SP(S,P,QTY-USED)中的(S,P) 二、完全函数依赖和部分函数依赖定义 2:如果属性 Y 函数依赖于复合属性 X,而且不与 X 的任一子集 X函数依赖(X?Y ) ,则称属性 Y 完全函数依赖(FFD)于复合函数 X,记作 X?Y。 若 X?Y 但不是完全函数依赖,则称 Y 部分函数依赖于X。 例:在关系 SP(S#,P#,QTY-USED)中 QTY-USED 表示部件 P#在 S#船上使用的数量,只有同时指定 S#和 P#,才能说明某部件在某船上的用量,缺一不可,因此 QTY-USED 完全函数依赖于(S#,P#) 。 三、传递函数依赖 定义 3:如果 X,Y,Z 是 R 中的三个属性(或属性复合)若 X? Y?X, Y?Z,则称 Z 对 X 传递函数依赖。 例如:S(S#,SNAME,CITY,POSTCODE)中S#?CITY, S#,若 CITY? POSTCODE,则称 POSTCODE 传递依赖于 S#。 例:设有下列关系 GPD(零件号,零件名,设计人,设计人等级) 因为零件号零件名 零件号设计人 设计人设计人等级 故 零件号设计人等级 # 第三节 规范化和范式 一、规范化问题的提出 关系模型的特点是使用二维表来表示现实世界的实体集合和属性关系,这样容易历届和被用户所接受,然而并不是所有二维表都能构成关系模型,见表 以上两张二维表就不能构成关系,因为出现了子项,那么具备那些条件的二维表才能称为关系呢?在关系模式中,要求二维表具有以下性质: (1)二维表中的每一列都是不能分割的基本数据项,且无重复组。 (2)同一关系中,没有相同的列出现。描述一个实体,不需要重复出现相同的属性名(3)同一关系中,各行的内容不能完全相同 完全相同的行,实无意义 满足上述条件的关系,称为规范化的关系,否则叫非规范化形式,这种“形式”即不能被定义成关系模型,又不能被关系型的 DBMS 所接受,因此要对非规范化的表格(关系)进行规范化处理。 所谓规范化处理,就是逐步用更单纯、更规则的关系来取代原有关系的过程。 二、规范化的意义 规范化处理的目的不仅将关系的“概念”单一化,使每一个数据项使一个简单的基本项,又无重复组。还有以下意义: (1)解决冗余度问题 所谓“冗余”问题是指表格中的数据重复。 例:船与船员之间的 1:N 联系见表 NSPSHIPSC这样重复太多,一条船有多个船员,船号与船名就要重复存储多次,如果将船的有关数据分开存储,分为 SHIP和 SC 两个表,在 SC 中存放船号与船名数据,则重复的仅仅是船号,其余的重复都消除了。 为了减少甚至消除重复,将关系进行分离,正是逐步规范化的重要一步。 (2)消除多义性问题 多义性是指关系中某些属性含义不清或有多种可能的含义。 例:船部件这个关系 SP(S#,P#,QTY) 其中数量 QTY 到底是说明 S 与 P 之间的联系,即某船需要某个部件多少个,还是仅仅说明 P 为仓库中现存某个部件多少个呢?在这个关系中是确定不了的,如果 QTY 仅仅表示部件的库存量,则将关系 SP 分离,使用关系PQ(P#,QTY)来描述就不再含糊不清了。 (3)解决操作可行性及提高操作方便性 指对数据的插入、删除与修改是否可行,是否方便 例:职工编号,姓名,工资等级,工资 假如要插入新的工资等级和工资额,例如 9-110 元,由于没有对应的职工编号、姓名,无法插入。 引起上述问题的原因,是非主属性之间的依赖关系所致。 这个关系中各个属性之间的对应关系可用下图表示, NO 为关键字,即主属性,其余属性为非主属性。EMP(NO,NAME, ) 箭头表示属性间的对应关系,即任意一个职工号,仅能在表中找到一个姓名 NAME 与之对应,任何一个非主属性SAL 函数依赖于非主属性 STATUS。 如果要从这个关系中消除非主属性之间的依赖关系,可将表改为两个关系 EMP()SS() 这样插入数据 9 级、110 元就可在 SS 中进行。 由上例可见,通过适当“分离”可以消除非主属性之间的依赖性,如何进行分离或合并,使得新的一组关系模式既能反映现实世界,又能排除多义性,控制冗余度,并方便实现数据操作,正是我们研究规范化问题的目的所在。三、系规范化的表述 所谓关系的规范化,是指满足某些条件后的关系,通常按属性间依赖情况来区分关系规范化的程度,并义范式来表述(NORMAL FORMS) 范式又分为 n 级,有 1NF,2NF,3NF 等等,为了判断一个关系属于哪一级范式,引入函数依赖这一概念。 所有规范化的关系起码是第一范式,在第一范式中进一步满足一些要求的关系为第二范式,依次类推。 各种形式的范式在关系数据哭系统中都允许存在,但为了更方便于数据处理,通常要把低级范式分解为若干个3NF 或 BCNF,下面给出各范式的概念。 1) 2) 3) 4) 第一范式(1NF) 关系 R 中,每个分量都是不可分割的。 第二范式(2NF) 若关系 R 满足 1NF,且每个非主属性完全函数依赖于关键字。 第三范式(3NF) 若关系 R满足 2NF,且每个非主属性非传递依赖于关键字。 加强第三范式(BCNF) 若关系 R 满足 3NF,且所有主属性和非主属性既非部分依赖关 键字,也非传递依赖于关键字。 下面举例说明逐步规范化的方法与过程。 例:已知一张购物登记表,要求规范到 BCNF 范式的程度,以便被关系型 DBMS 所接受。 (1) 分析已知表,来决定是否需要进行规范化处理通过观察可知,表不能直接被关系型 DBMS 所接受,因为它存在许多问题。 1) 在关系模型中对关系的最起码要求,应该满足第一范式,表显然不满足这个条件。 2) 在数据操作上将会出现下列问题: 篇二:管理信息系统 实验四第二篇 管理信息系统的技术基础 实验四 数据库设计 逻辑结构设计及数据库、表的建立 【实验目的】 明确逻辑结构设计的步骤,掌握转换关系模型的方法。了解数据库的实施过程,掌握具体的 DBMS 的数据库建立方法。 【实验步骤】 1、熟悉逻辑结构设计的步骤 2、掌握 ER 图转换关系模型的方法 3、熟悉数据库的实施过程 4、掌握 Access、VFP、SQL Server 的建立库、表的方法 5、建立数据库、表 【实验内容】 一、逻辑结构设计的步骤 概念结构是独立于任何一种数据模型的信息结构:逻辑结构设计的任务就是把概念结构设计阶段设计好的基本ER 图转换为与选用 DBMs 产品所支持的数据模型相符合的逻辑结构。 从理论上讲,设计逻辑结构应该选择最适于相应概念结构的数据模型,然后对支持这种数据模型的各种 DBMS 进行比较,从中选出最合适的 DBMS。但实际情况铰往是已给定了某种 DBMS,设计人员没有选择的余地。目前,DBMS 产品一般支持关系、网状、层次三种模型中的某一种。对某一种数据模型,各个机器系统又有许多不同的限制,提供不同的环境与工具。所以设计逻辑结构时一般要分 3 步进行: (1)将概念结构转换为一般的关系、网状、层次模型;(2)将转换来的关系、网状、层次模型向特定 DBM5 支持下的数据模型转换; (3)对数据模型进行优化。 目前新设计的数据库应用系统大都采用支持关系数据模型的 RDBMS,所以,只介绍 ER 图向关系数据模型的转换原则与方法。 二、ER 图向关系模型的转换 ER 图向关系模型的转换要解决的问题是如何将实体型和实体间的联系转换为关系模式。如何确定这些关系模式的属性和码。 关系模型的逻辑结构是一组关系模式的集合。ER 图则是由实体型、实体的屑性和实体型之间的联系 3 个要素组成的。所以将 ER 图转换为关系模型实际上就是要将实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则: 一个实体转换为一个关系模式。实体的届件就是关系的属性,实体的码就是关系的码。 对于实体型间的联系则有以下不同的情况: (1)一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。(2)一个 1:n 联系可以转换为一个独立的关系模式,也可以与 n 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的同性,而关系的码为 n 端实体的码。(3)一个 M:n 联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。 (4)3 个或 3 个以上实体问的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。 (5)具有相同码的关系模式可合并。 三、数据模型的优化 数据库逻辑设计的结果不是限一的。为了进一步提高数据库应用系统的性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化。关系数据模型的优化通常以规范化理论为指导,方法为: 1确定数据依赖。按需求分析阶段所得到的话义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间的数据依赖。 2.对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。 3.按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。 4.按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解。必须注意的是,并不是规范化程度越高的关系就题优。 5.对关系模式进行必要的分解提高数据操作的效率和存储空间的利用率。 四、建立数据库、表的方法 1、用 Access 建立数据库和表的方法 参看 Access 的主菜单的帮助选项,了解用 Access 建立数据库和表的方法。 2、用 VFP 建立数据库和表的方法 参看 VFP 的主菜单的帮助选项,了解用 VFP 建立数据库和表的方法。 3、用 SQL Server 建立数据库和表的方法 参看 SQL Server 的主菜单的帮助选项,了解用 SQL Server 建立数据库和表的方法。 【实验练习】 1、将实验三第三题画出的总 ER 图转换为关系,并对各个关系进行规范化。 2、某企业原物资管理系统的供应计划管理部分使用了从表 1 到表 5 的各种报表。表 1 到表 5 的内容如下: 根据这五张表的内容来确定规范化的关系对象,并对关系进行规范化,要求规范到 3NF。 3、将以上两题所得到的规范化的关系,用 Access 或VFP 或 SQL Server 来实现其数据库和表。 篇三:关系规范化关系规范化规范化理论是数据库逻辑设计的指南和工具,具体步骤如下: (1)考察关系模型的函数依赖关系,确定范式等级。逐一分析各关系模式,考察是否存在部分函数依赖、传递函数依赖等,确定它们分别属于第几范式。(2)对关系模式进行合并或分解。根据应用要求,考察这些关系模式是否合乎要求,从而确定是否要对这些模式进行合并或分解,例如,对于具有相同主码的关系模式一般可以合并;对于非 BCNF 的关系模式,要考察“异常弊病”是否在实际应用中产生影响,对于那些只是查询,不执行更新操作,则不必对模式进行规范化(分解) ,实际应用中并不是规范化程度越高越好,有时分解带来的消除更新异常的好处与经常查询需要频繁进行自然连接所带来的效率低相比会得不偿失。对于那些需要分解的关系模式,可以用规范化方法和理论进行模式分解。最后,对产生的各关系模式进行评价、调整,确定出较合适的一组关系模式。 关系规范化理论提供了判断关系逻辑模式优劣的理论标准,帮助预测模式可能出现的问题,是产生各种模式的算法工具,因此是设计人员的有力工具。扩展阅读: ? 1 数据库设计解决方案 关系规范化 http:/ XX-04-07 13:31 史创明、王俊伟 清华大学出版社 我要评论(0) ? 摘要:在数据库中,数据之间存在着密切的联系。关系数据库由相互联系的一组关系所组成,每个关系包括关系模式和关系值两个方面。关系模式是对关系的抽象定义,给出关系的具体结构;关系的值是关系的具体内容,反映关系在某一时刻的状态。 ? 标签: 微软 数据库 ? 在数据库中,数据之间存在着密切的联系。关系数据库由相互联系的一组关系所组成,每个关系包括关系模式和关系值两个方面。关系模式是对关系的抽象定义,给出关系的具体结构;关系的值是关系的具体内容,反映关系在某一时刻的状态。一个关系包含许多元组,每个元组都是符合关系模式结构的一个具体值,并且都分属于相应的属性。在关系数据库中的每个关系都需要进行规范化,使之达到一定的规范化程度,从而提高数据的结构化、共享性、一 数据库表的创建、修改和删除 XX-04-07 13:53 史创明、王俊伟 清华大学出版社 我要评论(0) 字号: | 综合评级: 想读(6)在读(0)已读(2) 品书斋鉴(0) 已有 8 人发表书评 一个数据库中包含一个或多个的表。表是数据的集合,按行和列排列。每个表都有一个特定的主题,例如,“图书管理系统”数据库中包含有“作者表” 、 “图书明细表”以及“出版社表”等。本章介绍表的管理。 AD: 建立完数据库后,就可以创建数据库表。表属于数据库对象中的一种,是数据存储的基本单位,它包含了所有的数据内容。在 SQL Server 中,一个数据库中可以创建多个表,而且每一个表内可以包含多达 1 024 个列。列的数目及表的总大小仅受限于可用的硬盘存储容量。另外,每一个列最多可以有 8 092 字节(不包括 image、text 或者ntext 数据) 。下面我们开始创建表。 表 表是 SQL Server 中最主要的数据库对象,它是用来存储和操作数据的一种逻辑结构。表由行和列组成,因此也称之为二维表。 1表结构 表是我们在工作和生活中经常使用的一种表示数据及其关系的形式,如表 5-1 所示。 每个表都有一个名字,以标识该表。例如,表 5-1 的名称为“作者表” ,该表共有六列,每一列都有一个列名来描述该列的特性。每个表由若干行组成,表的第一行为各列标题,即“栏目信息” ,其余各行都是数据。例如,表 5-1 中有四行数据,分别描述了四

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论