1.为什么要研究关系规范化理论?答关系数据库的设计直接影响着应用系统的开发、维护及其运行效率。
一个不好的关系模式会导致插入异常、删除异常、数据冗余(修改异常)等问题。
为此,人们提出了关系数据库规范化理论。
它依据函数依赖,采用模式分解的方法,将一个低一级范式的关系模式转换为若干个高一级范式的关系模式的集合,从而消除各种异常,把不好的关系数据库模式转化为好的关系数据库模式。
2.理解并写出下列术语的含义。
函数依赖,平凡函数依赖,非平凡函数依赖, 1NF范式,BCNF范式,3NF范式,规范化,无损连接性,依赖保持性。
答:.函数依赖:设关系模式R(A1,A2,…,An),X,Y是R的两个属性集合,X⊂R(A1,A2,…,An)及Y⊂R(A1,A2,…,An),R[X,Y]是关系只在属性XUY上的投影,当任何时刻R[X,Y]中任意两个元组中的X属性值相同时,则它们的Y属性值也相同.那么称X函数决定Y,或Y函数依赖于X,记作X→Y。
.平凡函数依赖与非平凡函数依赖:当属性集合Y是属性集合X的子集时,则存在函数依赖X→Y。
这说明一组属性函数决定它的所有子集。
这种类型的函数依赖称为平凡函数依赖。
如果X→Y且Y⊄X,则称X→Y是非平凡的函数依赖。
.1NF范式:定义;如果关系模式的所有属性的值域中每一个值都是不可再分解的值,则称只属于第一范式(1NF)。
lNF是关系模式的最低要求。
这一限制是在关系的基本性质中提出的,每个关系模式都必须遵守。
.BCNF范式:定义:若关系模式R∈lNF且每个非主属性都完全函数依赖于R 的每个键,关系模式及属于第二范式(只E2NF)。
.3NF范式:定义:.规范化:把一个低一级范式的关系模式转换为若干个高一级范式的关系模式的集合的过程叫做规范化。
.范式:规范化理论认为,一个关系数据库中所有的关系,都应满足一定的要求,它把关系应满足的规范要求分成几级,并为每一级定义了相应的约束条件集,称为范式。
.无损连接性:设有关系模R(U)中存在函数依赖集F,R被分解为R1(U1),…,Rk (Uk),如果这些关系模式的自然连接与原关系模式R完全相等,则称该分解具有无损连接性。
.依赖保持性:设有关系模式R(U)中存在函数依赖集F,R被分解加R1(U1),…,Rk (Uk),且Ri(Ui)(1≤i≤k)所包含的函数依赖集为Fi,如果∪1k Fi与F等价,则称该分解具有依赖保持性。
3.什么叫关系模式分解?为什么要有关系模式分解?关系模式分解要遵守什么规则?答:关系模式分解指采用投影的方式将一个关系模式R(U)分解为R1(U1),…,R k (Uk),其中不存在Ui⊆Uj(1≤i,j≤k),并且U1∪U2∪…∪Uk=U。
关系模式分解是规范化的主要手段,通过关系模式分解可以把一个低一级范式的关系模式分解为若干个高一级范式的关系模式的集合。
关系模式分解应当具有无损连接性和依赖保持性。
4.要建立关于系、学生、班级、研究会等信息的一个关系数据库.规定:一个系有若干个专业.每个专业每年只招一个班级,每个班级有若干名学生,一个系的学生住在同一个宿舍区。
每个学生可以参加若干个研究会.每个研究会有若干名学生。
描述学生的属性有:学号、姓名、出生年月、系号、班号、宿舍区。
描述班组的属性有:班号、专业名、系号、人数、入校年份。
描述系的属性有:系号、系名、系办公地点、人数。
描述研究会的属性有:研究会名、成立年份、地点、人数。
学生参加某研究会,有一个入会年份。
试给出上述数据库的关系模式;写出每个关系的最小函数依赖集(基本的函数依赖,不是导出的函数依赖);指出关系的候选键、外键、有没有全键。
.答·学生:学生(学号,姓名,出生年月,系号,班号,宿舍区)最小函数依赖集:班号→系号,系号→宿舍区,学号→班号,学号→姓名,学号→出生年月。
候选键:学号。
外键:系号,班号。
·班级:班级(班号,专业名,系号,人数,入校年份)最小函数依赖集:班号→专业名,专业名→系号,候选键:班号。
外键:系号。
.系:系(系号,系名,系办公地点,人数)最小函数依赖集:系号→系名,系号→系办公地点候选键:系号或者系名。
外部键:无。
·研究会:研究会(研究会名,成立年份,地点,人数)最小函数依赖集:研究会名→成立年份候选键:研究会名。
外部键;无。
.研究会会员:研究会会员(研究会名,学号.入会年份)最小函数依赖集:(研究会名,学号) →入会年份候选键:(研究会名,学号)。
外部键:研究会名,学号。
填空题1.一个不好的关系模式会存在、和等弊病。
2.函数依赖与属性间的联系类型有关。
当X,Y之间是“1对1”联系时,则存在函数依赖;当X,Y之间是“多对1”联系时,则只存在函数依赖;当X,y之间是“多对多”联系时,则。
3.函数依赖的基本性质有:、、。
4.当属性集合X是属性集合Y的子集时,则存在函数依赖Y→X。
这种类型的函数依赖称为。
如果Y→X且X⊄Y,则称Y→X是。
5.若关系模式R∈1NF,且及中的每个都是,则R∈BCNF。
6.规范化过程.是通过投影分解,把的关系模式“分离”为模式。
但这种投影分解不是惟一的,要求分解既,又具有。
1.插入异常删除异常冗余太大2.X→Y和Y→X X→Y XY之间不存在函数依赖性3.4.平凡函数依赖非平凡的函数依赖6.低一级范式若干个高一级范式保持函数依赖无损连接性选择题1.以下关于函数依赖的说法正确的是。
A.函数依赖和关系表中各属性列的取值有关,因此当关系中各属性列取值发生变化时,函数依赖必然发生改变B.属性间的联系方式与函数依赖密切相关,无论哪种联系方式都对应一种函数依赖C.X→Y是否成立仅取决于X、Y属性集上的值,与其他属性(集)的取值无关D.以上都不是2.当X,Y之间是”1对多”联系时,则存在函数依赖。
A.X→Y B.Y→XC.X→Y、Y→X D.以上都不是3.函数依赖的扩张性是。
A.如果存在函数依赖X→Y及W→Z,则必然存在XW→YZB.如果X→Y及X→Z,则存在着X→YZC.如果存在函数依赖X→YZ,则必然存在X→Y及X→ZD.当属性集合X是属性集合Y的子集时,则存在函数依赖Y→X.4.任何二元关系模式所属的最高范式是。
A.1NF B.2NF C.3NF D.BCNF5.关于关系模式的键,以下说法正确的是。
A.一个关系模式可以有多个主键B.一个关系模式可以有多个候选键C.主键所包含的属性称为主属性D.不是哪个关系模式都有键6.若关系模式R中的函数依赖的决定因素(前面的部分)都是键,则R所属的最高范式为。
A.1NF B.2NF C.3NF D.BCNF1.C 2.B 3.A 4.D 5.B 6.D1.设有关系模式R(0,I,S,Q,D,B) ,其函数依赖集合为S→D,I→B,IS →Q,B→O,试求:(1)R的候选键。
(2)如果R不属于3NF,将R分解为3NF(具有无损连接性和依赖保持性)。
2.设关系模式R(A,B,C,D,E,P),R的函数依赖集F为A→D,E→D,D→B,BC→D,DC→A。
试求:(1)R的候选键。
(2)将及分解为BCNF,并具有无损连接性。
数据库设计方法、规范与技巧一、数据库设计过程数据库技术是信息资源管理最有效的手段。
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求)。
在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。
在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。
然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。
在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
1. 需求分析阶段需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。
需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。
常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。
分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。
自顶向下的结构化分析方法(Structured Analysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。
数据流图表达了数据和处理过程的关系。
系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。
数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成:{数据结构},数据量,存取方式}处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}2. 概念结构设计阶段通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。
概念模型用于信息世界的建模。
概念模型不依赖于某一个DBMS支持的数据模型。
概念模型可以转换为计算机上某一DBMS支持的特定数据模型。
概念模型特点:(1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。
(2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。
概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术,用于建立系统信息模型。
使用IDEF1X方法创建E-R模型的步骤如下所示:2.1 第零步——初始化工程这个阶段的任务是从目的描述和范围描述开始,确定建模目标,开发建模计划,组织建模队伍,收集源材料,制定约束和规范。
收集源材料是这阶段的重点。
通过调查和观察结果,业务流程,原有系统的输入输出,各种报表,收集原始数据,形成了基本数据资料表。
2.2 第一步——定义实体实体集成员都有一个共同的特征和属性集,可以从收集的源材料——基本数据资料表中直接或间接标识出大部分实体。