关系规范化方法_第1页
关系规范化方法_第2页
关系规范化方法_第3页
关系规范化方法_第4页
关系规范化方法_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

关系规范化方法篇一:实验 0-关系规范化设计理论和方法关系规范化设计理论和方法 一 关系规范化设计理论 定义: 设关系模式 R(U,F) ,U 是属性全集,F 是 U上的函数依赖集,X 和 Y 是 U的子集。如果对于 R(U)的任意一个可能的关系 r ,对于 X的每一个具体值,Y 都有唯一具体的值与之对应,则称 X函数决定 Y,或 Y函数依赖于 X,记为 XY。我们称 X为决定因素,Y 为依赖因素。当 Y不函数依赖于 X时,记作:X Y。当 XY 且 YX 时,则记作:X Y。 在关系数据库的规范化过程中,为不同程度的规范化要求设立的不同的标准或准则称为范式(Normal Form) 。满足最低要求的叫第一范式,简称 1NF。在第一范式中满足进一步要求的为第二范式(2NF),其余以此类推。R 为第几范式就可以写成 RxNF(x 表示某范式名) 。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种转换过程就叫规范化。 定义: 如果关系模式 R所有的属性均为简单属性,即每个属性都是不可再分的,则称 R属于第一范式,简称1NF,记作 R1NF。第一范式(First Normal Form)是最基本的规范化形式,即关系中每个属性都是不可再分的简单项。定义: 如果关系模式 R1NF,R(U,F)中的所有非主属性都完全函数依赖于任意一个候选关键字,则称关系 R 是属于第二范式(Second Normal Form) ,简称 2NF,记作R2NF。从定义可知,满足第二范式的关系模式 R中,不可能有某非主属性对某候选关键字存在部分函数依赖。定义: 如果关系模式 R2NF,R(U,F)中所有非主属性对任何候选关键字都不存在传递函数依赖,则称 R是属于第三范式(Third Normal Form) ,简称 3NF,记作 R3NF。3NF 只限制了非主属性对码的依赖关系,而没有限制主属性对码的依赖关系。如果发生了这种依赖,仍有可能存在数据冗余、插入异常、删除异常和修改异常。这时,则需对 3NF进一步规范化,消除主属性对码的依赖关系,向更高一级的范式 BCNF转换。 定义:如果关系模式 R1NF,且在所有的函数依赖 XY(Y 不包含于 X)中,决定因素 X都包含了 R的一个候选码,则称 R属于 BC范式(Boyce-Codd Normal Form),记作 RBCNF。由 BCNF的定义可以得到以下结论,一个满足 BCNF的关系模式有: (1)所有非主属性对每一个候选码都是完全函数依赖。 (2)所有的主属性对每一个不包含它的候选码都是完全函数依赖。 (3)没有任何一组属性完全函数依赖于非码。 二关系规范化方法应用举例某机械厂有多个车间;每个车间有多名工人;每个车间生产多种产品和零件;一种产品由多个零件组成;产品和零件均存入仓库中,该厂有多个仓库。以下是该机械厂的详细情况表格: 原始数据表格 R0 这张表格察看起来非常方便,但它不符合 1NF,存在以下问题:某些单元格存储的数据多于一个,在数据库中将无法实现这种存储格式;另外,这种表格使某些操作也无法完成。为了使 R01NF,对 R0做纵向扩展,从而可有以下关系 R1:某机械厂信息管理关系 R1 现在,R11NF 。 R1的一个候选键是:(职工号+产品号+零件号) 。 由于 R1存在以下函数依赖:职工号姓名,职工号性别,职工号工种,职工号车间号,职工号车间主任; 产品号价格;产品号仓库号;产品号仓库主任 零件号重量。 在以上 9个函数依赖中,依赖因素都是非主属性,而决定因素都是候选键的一部分。 换句话说,R1 中存在非主属性对候选键的部分函数依赖,故 R1不满足 2NF。 可明显看出,R1 存在大量数据冗余。必须通过模式分解将 R1关系模式转换为若干个高一级范式的关系模式的集合模式规范化处理。 为了使关系模式 R1向高一级范式转换,可将 R1分解(做垂直分割,并保留相关的联系)为 R2、R3、R4 三个关系:篇二:数据库模拟试题 4数据库原理模拟试卷(四) 一、 填空题 1. _是信息的符号表示。 (数据) 2数据库系统的组成包括:硬件系统、_、系统软件、数据库管理员和用户。(数据库) 3如果一个关系中的属性或属性组并非该关系的关键字,但它是另外一个关系的 _,则称其为该关系的外关键字。 (关键字) 4为了使通过视图插入新行时,元组满足视图的定义条件, 在定义视图时必须加上 _子句。 (WITH CHECK OPTION) 5. 数据字典通常包括数据项、数据结构、_、数据存储和处理过程五个部分。(数据流) 6. 在概念结构设计中先,定义全局概念结构的框架,然后逐步细化。这种方法称为 _。 (自顶向下方法) 7.当数据的存储结构改变时,通过对映象的相应改变可以保持数据的逻辑结构不变。这称之为数据的_。 (物理独立性) 8当数据的全局逻辑结构改变时,通过对映象的相应改变可以保持数据的局部逻辑结构不变。这称之为数据的_。 (逻辑独立性) 9为防止数据在存储和传输中失密,根据一定的算法将原始数据变换为不可直接识别的格式,从而使得不知道解密算法的人无法获知数据的内容。此种技术称为_。 (数据加密) 10如果事务 T1封锁了数据 R1,T2 封锁了数据 R2,然后 T1又请求封锁 R2。接着 T2又申请封锁 R1。这样就出现了 T1在等待 T2,而 T2又在等待 T1的局面,T1 和 T2两个事务永远不能结束,形成_。 (死锁) 二、单项选择题 1以下操作不属于数据更新的是_(d) a. 插入 b. 删除 c. 修改 d.查询 2描述事物的符号记录称为_。 (b) a.信息 b.数据 c.记录 d.记录集合 3. _是位于用户与操作系统之间的一层数据管理软件.(a) a.数据库管理系统 b.数据库系统 c.数据库 d.数据库应用系统 4.在人工管理阶段,数据是_。(b)a.有结构的 b.无结构的 c.整体无结构,记录有结构 d.整体结构化的 5.下列 SQL语句命令,属于 DDL语言的是_。(b) 6若事务 T对数据对象 A 进行读取和修改操作,且其它任何事务都不能访问 A,此时事务 T需对数据对象 A加上 _。(c) a.读锁 b.死锁 c.写锁 d.活锁 7. 以关系数据库中,以下封锁的对象中最小的封锁粒度是 _。 (d) a. 数据库 b.表 c.记录 d.字段 8如果对于实体集 A中的每一个实体,实体集 B中有可有多个个实体与之联系;反之,对于实体集 B中的每一个实体,实体集 A中也可有多个实体与之联系。则称实体集 A与 B具有_。(d) a. 1:1 联系 b. 1:n 联系 c. n:m 联系 d. 多种联系 9设域 D1=a1,a2,a3;D2=1,2;D3=计算机;打印机;扫描仪。则 D1、D2 和 D3的笛卡尔积的基数为_。(d) a. 2 b. 3 c. 8 d. 18 10索引项的顺序与表中记录的物理顺序一致的索引,称之为_。(c) a. 复合索引 b. 唯一性索引 c. 聚簇索引 d. 非聚簇索引 三问答题 1什么是事务?它有哪些属性? 答:事务是用户定义的一个操作序列,这些操作要么全做要么全不做,事务是一个不可分割的工作单位。事务具有四个特性:原子性、一致性、隔离性和持续性。 这个四个特性也简称为 ACID特性。 2简述数据库的物理设计内容。 答:主要包括了以下工作: (1) 确定数据的存储结构,决定是否采用聚簇功能。 (2)设计数据的存取路径,决定是否建立索引,建多少索引,在哪些列或多列上建索引等。 (3)确定数据的存放的物理位置,决定是否将经常存取部分和存取频率较低部分分开存放等。 (4)确定系统配置参数,根据 DBMS产品提供了一些存储分配参数,数据库进行物理优化。(5) 评价物理结构, 估算各种方案的存储空间、存取时间和维护代价,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。 3RDBMS 在实现参照完整性时需要考虑哪些方面的问题,以及可以采取的策略? 答:(1)外码能否接受空值 (2)删除被参照关系中的元组。这时可有三种不同的策略: . 级联删除:同时删除参照关系中相关元组; . 受限删除:仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组的主码值相同时,系统才执行删除操作,否则拒绝此删除操作。 .置空值删除:删除被参照关系的元组,并将参照关系中相应元组的外码值置空值。 ( 3 ) 在参照关系中插入元组 当参照关系插入某个元组,而被参照关系不存在相应的元组,其主码值与参照关系插入元组的外码值相同,这时可有以下策略: .受限插入:不允许在参照关系中插入; .递归插入:同时在被参照关系中插入一个元组,其主码值为插入元组的外码值。 4简述预防死锁通常有两种方法。 预防死锁通常有两种:一次封锁法和顺序封锁法。 一次封锁法:一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。一次封锁法虽然可以有效地防止死锁的发生,但每次要就将以后用到的全部数据加锁,从而降低了系统的并发度。 顺序封锁法:顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁 5简述数据字典包括的五个部分的意义。 数据字典包括数据项、数据结构、数据流、数据存储和处理过程五部分。 数据项是不可再分的数据单位,说明基本数据信息的数据类型、长度、取值范围等。 数据结构反映了数据之间的组合关系。 数据流是数据结构在系统内传输的路径。 数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。 处理过程描述该处理过程的功能及处理要求。主要包括说明做什么,处理频度,响应时间等。四、根据各小题要求,写出对应的 SQL 语句。 以下给出三个基本表。 Student(学生表)的字段按顺序为学号、姓名、性别、年龄、所属院系; Course(课程表)的字段按顺序为课程编号、课程名、先行课程、课程学分; SC(选课表)的字段按顺序为学号、课程号、成绩。 各表的记录如下: 1查询与“刘晨”在同一个系学习的学生的学号、学生姓名。 SELECT Sno, Sname FROM Student WHERE Sdept IN SELECT Sdept FROM Student WHERE Sname=刘晨; 2将一个新学生记录(03020;陈冬;男;18;IS)插入 Student表中 INSERT INTO Student VALUES (95020, 陈冬, 男, 18,IS); 3将计算机科学系(CS)全体学生的成绩置零 UPDATE SC SET Grade=0 WHERE CS= (SELETE Sdept FROM Student WHERE =); 4创建信息系(IS)选修了 1号课程的学生的视图IS_S1,字段包括 Sno、Sname、Grade。CREATE VIEW IS_S1(Sno, Sname, Grade) AS SELECT , Sname, Grade FROM Student, SC WHERE Sdept=IS AND = AND =1; 五、完成下列各题 1根据 3NF的定义及规范化方法,对关系模式 R(U,F) U=学号,姓名,所在系,系主任,课程号,成绩 F= 学号 姓名 , 学号 所在系,所在系 系主任 (学号,课程号) 成绩 进行分解。使其满足 3NF。 答:符合 3NF的关系模式,要求不存在非码属性对码的部分依赖和传递依赖。 关系模式 R(U,F)中存在姓名、学号对码(学号,课程号)的部分依赖,存在系主任对码的传递依赖。 将 R(U,F)分解为如下三个关系模式: 学号,姓名,所在系 所在系,系主任 学号,课程号,成绩 三个关系模式中,不存在非码属性对码的部分依赖和传递依赖。 六应用题 试自拟一应用实例,说明其语义,分析该实例,设计出该实例的概念结构(即给出其 E-R图,并在该图上标注出属性。要求至少包括四个实体型,包括三个联系,且存在 1:1、1:n、n:m 的联系) 。 篇三:第四章 关系规范化改第四章 关系规范化 本章讨论关系数据理论。节从数据库逻辑设计中如何构造一个好的数据库模式这一问题出发,阐明了关系规范化理论研究的实际背景。节介绍规范化理论,讨论各种范式及可能存在的插入、删除等毛病,并直观地描述解决办法。 问题的提出 前面已经讨论了数据库系统的一般概念,介绍了关系数据库的基本概念、关系模型的三个部分以及关系代数。但是还有一个很基本的问题尚未涉及,针对一个具体问题,应该如何构造一个适合于它的数据模式,即应该构造几个关系模式,每个关系由哪些属性组成等。这是数据库设计的问题,确切地讲是关系数据库逻辑设计问题。 实际上设计任何一种数据库应用系统,不论是层次的、网状的还是关系的,都会遇到如何构造合适的数据模式即逻辑结构的问题。由于关系模型有严格的数学理论基础,并且可以向别的数据模型转换,因此,人们就以关系模型为背景来讨论这个问题,形成了数据库逻辑设计的一个有力工具关系数据库的规范化理论。规范化理论虽然是以关系模型为背景,但是它对于一般的数据库逻辑设计同样具有理论上的意义。 现实世界随着时间在不断地变化,因而在不同的时刻,关系模式的关系也会有所变化。但是,现实世界的许多已有事实限定了关系模式所有可能的关系必须满足一定的完整性约束条件。这些约束或者通过对属性取值范围的限定,或者通过属性值间的相互关连(主要体现于值的相等与否)反映出来。后者称为数据依赖,它是数据模式设计的关键。关系模式应当刻划这些完整性约束条件。一个关系模式应当是一个五元组。 R(U,D,dom,F) 这里 : (1) 关系名 R,它是符号化的元组语义; (2) 一组属性 U; (3) 属性组 U中属性所来自的域 D; (4) 属性到域的映射 dom; 第四章 关系规范化(5) 属性组 U上的一组数据依赖 F。 由于(3),(4)对模式设计关系不大,因此在本章中把关系模式看作是一个三元组:R(U,F)当且仅当 U上的一个关系 r满足 F时,r 称为关系模式 R(U,F)的一个关系。关系,作为一张二维表,对它有一个最起码的要求:每一个分量必须是不可分的数据项,满足了这个条件的关系模式就属于第一范式(1NF)。在模式设计中,假设己知一个模式 S中,它仅由单个关系模式组成,问题是要设计一个模式 SD,它与 S中“等价” ,但在某些指定的方面“更好”一些。这里通过一个例子来说明二个“不好”的模式会有些什么毛病,分析它们产生的原因,从中找出设计一个“好”的关系模式的办法。 在举例之前,先非形式地讨论一下数据依赖的概念。 数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。它是现实世界属性问相互联系的抽象,是数据内在的性质,是语义的体现。现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖(Functional Dependency,FD)和多值依赖(Multivalued Dependency,MVD)。 函数依赖极为普遍地存在于现实生活中。比如描述一个学生的关系,可以有学号,姓名,系名等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习,因而当“学号”值确定之后,姓名和该生所在系的值也就被唯一地确定了。就象自变量 x确定之后,相应的函数值f(x)也就唯一地确定一样,称学号函数决定姓名和系名,或者说姓名,系名函数依赖于学号,记为:学号姓名,学号系名。 现在要建立一个数据库来描述学生的一些情况,面临的对象有:学生(用学号描述) ,系(用系名描述),系负责人(用系负责人名描述),课程(用课程名描述)和成绩(成绩)。于是得到一组属性。 U=学号,系名,系负责人名,课程名,成绩 由现实世界的己知事实得知: 一个系有若干学生,但一个学生只属于一个系; 一个系只有一名(正职)负责人; 一个学生可以选修多门课程,每门课程有若干学生选修; 每个学生学习每一门课程有一个成绩; 于是得到属性组 U上的一组函数依赖: 50 数据库管理系统及应用F=学号系名,学号系负责人名,(学号,课程名)成绩 这组函数依赖如图所示. 图 函数依赖图 如果只考虑函数依赖这一种数据依赖,就得到了一个描述学校的数据库模式 S(U,F),它由一个单一的关系模式构成。这个模式有下述三个“毛病”: (1)如果一个系刚成立尚无学生,或者虽然有了学生但尚未安排课程。那么就无法把这个系及其负责人的信息存入数据库。称为插入异常。 (2)反过来,如果某个系的学生全部毕业了,在删除该系学生选修课程的同时,把这个系及其负责人的信息也丢掉了,称为删除异常。 (3)冗余太大。比如,每一个系负责人的姓名要与该系每一个学生的每一门功课的成绩出现的次数一样多。这样,也一方面浪费存储,另一方面系统要付出很大的代价来维护数据库的完整性。比如某系负责人更换后,就必须逐一修改有关的每一个元组。 由于上述三个“毛病” ,它是一个“不好”的数据库模式。一个“好”的模式应当不会发生插入异常和删除异常,冗余应尽可能少。 为什么会发生插入异常和删除异常呢?这是因为这个模式中的函数依赖存在某些不好的性质。假如把这个单一的模式改造一下,分成三个关系模式: S(学号,系名,学号系名); SC(学号,课程名,成绩, (学号,课程名)成绩);DEPT(系名,系负责人名,系名系负责人名); 这三个模式都不会发生插入异常、删除异常的毛病,数据的冗余也得到了控制。一个模式的函数依赖会有哪些不好的性质,如何改造一个不好的模式,这就是下一节规范化理论讨论的内容。 51 第四章 关系规范化关系规范化 为了使数据库设计的方法走向完备,人们研究了规范化理论。从 1971年起就提出了这一理论,规范化理论的研究已经取得了很多成果。 前面已经提过关系必须是规范化的(Normalization),即每一个分量必须是不可分的数据项。但是这只是最基本的规范化。上节的例子说明并非所有这样规范化的关系都能很好地描述现实世界,必须作进一步的分析,以确定如何设计一个好的、反映现实世界的模式。 本节将讨论下述内容:首先讨论一个关系属性间不同的依赖情况,讨论如何根据属性间依赖情况来判定关系是否具有某些不合适的性质。通常按属性间依赖情况来区分关系规范化的程度为第一范式、第二范式、第三范式和 BC范式等,然后直观地描述如何将具有不合适性质的关系转换为更合适的形式。 函数依赖 定义 设 R(U)是属性集 U上的关系模式。X,Y 是 U的子集。若对于 R(U)的任意一个可能的关系 r,r 中不可能存在两个元组在 X上的属性值相等,而在 Y上的属性值不等,则称 X函数确定 Y或 Y函数依赖于 X,记作 XY。 函数依赖和别的数据依赖一样是语义范畴的概念。只能根据语义来确定一个函数依赖。例如姓名年龄这个函数依赖只有在该部门没有同名人的条件下成立。如果允许有同名人,则年龄就不再函数依赖于姓名了。设计者也可以对现实世界作强制的规定。例如规定不允许同名人出现,因而使姓名年龄函数依赖成立。这样当插入某个元组时这个元组上的属性值必须满足规定的函数依赖,若发现有同名人存在,则拒绝插入该元组。 注意,函数依赖不是指关系模式 R的某个或某些关系满足的约束条件,而是指 R的一切关系均要满足的约束条件。 下面介绍一些术语和记号: XY,但 Y?X则称 XY 是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。 XY,但 Y?X则称 XY 是平凡的函数依赖。 若 XY,则 X叫做决定因素(Determinant)。 若 XY,YX,则记作 XY。 52 数据库管理系统及应用若 Y不函数

温馨提示

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

评论

0/150

提交评论