第六章数据库设计_第1页
第六章数据库设计_第2页
第六章数据库设计_第3页
第六章数据库设计_第4页
第六章数据库设计_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

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

文档简介

第六章关系数据库设计6.1设计方法概述数据库设计定义:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及应用系统,使之能有效地存储数据,满足各种用户的应用需求。数据库设计的目标能够满足数据存储需求便于最终用户访问具有良好的安全机制数据准确并易于管理数据库整体性能良好数据库设计的特点涉及多学科的综合技术硬件、软件和干件的结合庞大的工程项目。三分技术,七分管理与经验,十二分基础数据。涉及结构设计和行为设计二方面。典型的数据库设计方法1、NEWORLEANS框架法2、基于3NF的方法3、ORACLEBarker方法4、基于ER模型的方法5、计算机辅助设计方法

ORACLE:DESIGNER2000SYBASE:POWERDESIGNER1、基于3NF的数据库设计由S.Atre提出。分五个阶段进行。每个阶段又分为若干步。在(第一阶段)企业模式设计阶段利用关系数据库规范化理论指导设计3NF的关系。基于3NF的数据库设计过程

设计企业模式研究应用环境,并设定环境中所使用的资料。决定每一种报表里各自包含的数据元素决定数据元素之间的关系,确定主关键字的数据元素和普通数据元素。对每一组数据元素推导第三范式关系。基于得到的第三范式关系给出数据库企业模式。2、ORACLEBarker方法

以oracle的董事RichardBarker命名。Barker负责设计了OracleDesigner关系数据库设计和开发的自动化工具。Barker方法是传统的设计方法的实时版,它提出了更好的组织数据库设计工作的详细步骤。Barker方法包括七个阶段:制定策略:安排设计工作。分析阶段:开发小组与关键人员进行交流,收集所有的业务需求。设计阶段:在确定逻辑模型的基础上进行物理模型的设计。构建阶段:创建数据库,应用程序。编写文档:技术文档,系统文档和用户文档。转换阶段:将准备好的数据转换到产品环境中。使用真实的数据对最终用户应用软件和数据库进行测试,确保应用软件的各个功能模块工作正常,以及存储在数据库中的数据是一致的。产品阶段:数据库必须在产品环境下运行,并可供最终用户的日常使用。Barker数据库设计方法过程

3E-R方法P.P.S.Chen于1976年提出,基本思想是:首先设计一个企业模式(现实世界的反映),与存储组织、存取方法、效率等无关。然后将企业模式变换为某个DBMS上的数据模式。E-R图所描述的模式叫企业模式。

企业模式是面向问题的、概念性的模型,与DBMS无关,是高级概念模型。与DBMS有关的模式称为逻辑模式或用户模式

E-R方法简单易懂,企业模式比较稳定,不受DBMS改变的影响,在优化系统性能时,只需修改用户模式。因此,E-R方法是使用最广泛的方法之一。

1981年M.Flavin对E-R方法进行了改进并称之为信息建模法

,信息建模=实体(对象)+属性+关系+父类型/子类型+关联对象。

1988年又由S.Shlaer和S.Mellor发展为语义数据建模方法,并因此有了许多面向对象的特点。

基于ER方法数据库设计的一般步骤1.需求分析2.概念设计3.逻辑设计4.物理设计5.实现设计4OracledesignerOracleDesigner的功能:系统需求建模(ModellingSystemRequirements):用于策略和分析工作。生成初步设计(GeneratingPreliminaryDesigns):用于转换到预设计工作。设计和生成(DesigningandGenerating):用于设计和建造工作。实用程序(Utilities):用于整个生命周期的工作。有四种表示系统的数据和过程的工具:过程建模工具

(ProcessModeller)功能层次图示化工具

(FunctionHierarchyDiagrammer)实体关系图示化工具

(EntityRelationshipDiagrammer)数据流图示化工具

(DataflowDiagrammer)系统需求建模系统需求建模产生初步设计从分析转向设计(从逻辑定义转换为物理定义),即实体转换为数据表、属性转换为列、联系转换为外部键列和约束、功能转换为模块。产生初步设计数据库设计转换器(DatabaseDesignTransformer)应用设计转换器(ApplicationDesignTransformer)转换工作大大减少了转换中需要做的耗时、重复和易于出错工作产生初步设计产生初步设计DatabaseDesignTransformer(DDT)复制实体和属性定义为设计中的数据库和列表根据实体间关系创建外部键约束产生初步设计设计编辑器(DesignerEditor)对象数据库设计器(ObjectDatabaseDesigner)生成数据库实用程序(GenerateDatabaseUtilities)前端代码生成器(Front-EndCodeGenerator)设计捕获实用程序(DesignCaptureUtilities)设计和生成设计和生成实用程序RepositoryObjectNavigator对象浏览器MatrixDiagrammer阵列图示化工具RepositoryReports报表工具RepositoryAdministrationUtility管理实用程序使用程序6.2数据库设计理论关系模式设计中的问题函数依赖函数依赖的公理系统关系模式规范形式关系模式的规范化从理论上能否找到判断设计好的数据库模式的标准?

例在校大学生的学习情况会涉及的属性:

学号(S#)、课程号(CB)、课程名(CN)、学期数(T)、学分(CG)、 成绩(G),其属性集合表示为:U={S#,CB,CN,T,CG,G}。

关系r关系r存在问题?学号课程号课程名学期数学分成绩关系r存在的弊病:

(1)冗余:课程号为J1的课程在第4学期开,课程名是“数据库系统”,在关系r的5个元组中都有记载。

(2)插入异常:如果有一门课,课程号为J5,课程名为“编译原理”,学分为3,计划在第5学期开,但因学生还未选课,学号没有确定值,构不成一个元组,无法插入到关系r中去。 存在计划开设的课程因暂时没有学生选,无法将这些课程号和课程名等信息保存到数据库中。(3)删除异常:如学号1110703的学生考J2课时违纪,分数作废,应在关系r中删去这个元组。 但这个元组还包含课程号为J2,课程名为数据结构,学分为3的信息。要删除只能删除整个元组.

“冤枉”地删除掉了课程号为J2,课程名为“数据结构”,学分为3的信息。 不管目前有无学生学习“数据结构”这门课程,这门课程的相关信息应保留在数据库中.

在数据库模式中,针对关系模式的某一关系r为什么会存在上述弊端呢?怎样才能在同一个属性集U上给出没有这些弊端的数据库模式呢?--关系数据库理论函数依赖

关系r的关系模式:

R={S#,CB,CN,T,CG,G}

存在的函数依赖:T函数依赖于CB,CN函数依赖于CB,CG函数依赖于CB,G函数依赖于(S#,CB)等。注:学号(S#)、课程号(CB)、课程名(CN)、学期数(T)、学分(CG)、 成绩(G).

函数依赖的概念(简记为FD)设R(U)是属性集U上的一个关系模式,

X,YU。若对R(U)中任意一个可能关系r,r中不可能有两个元组在X的属性分量值相等,而在Y的那些属性分量值不相等,则称“X函数决定Y”,或“Y函数依赖于X”,记作X→Y。

X称为决定因子,或称为函数依赖的左部,Y称为函数依赖的右部。

几种特定的函数依赖

1.非平凡函数依赖和平凡函数依赖定义设关系模式R(U),X、YU:

如果X→Y,且Y不是X的子集,则称X→Y为非平凡的函数依赖;如果X→Y,且YX,则称X→Y为平凡的函数依赖。

2.完全函数依赖和部分函数依赖设关系模式R(U),X,YU:

如果X→Y,并且对于X的任何一个真子集Z,Z→Y都不成立,则称Y完全函数依赖于X;

若X→Y,但对于X的某一个真子集Z,有Z→Y成立,则称Y部分函数依赖于X。

例关系模式R={S#,CB,CN,T,CG,G}中,CB→T说明T完全函数依赖于CB;

(S#,CB,CN)→G,G部分依赖于(S#,CB,CN)因为(S#,CB)→G。3.传递函数依赖设关系模式R(U),XU,YU,ZU。如果X→Y,Y→Z成立,但Y→X不成立,且Z-X、Z-Y和Y-X均不空,则称X→Z为传递函数依赖。

例如:关系模式R={A,B,C,D},其上的函数依赖集F={A→B,B→C,A→C,AB→D},则A→C为传递函数依赖。

关系模式规范形式第一范式(1NF)

定义:设R是一个关系模式。如果R的每个属性的值域都是不可分的简单数据项(原子)的集合, 称这个关系模式属于第一范式(firstnormalform),简记作R∈1NF。

不满足1NF的关系称为非规范化的关系,满足1NF的关系称为规范化的关系。在任何一个关系数据库系统中,关系至少应该是第一范式。不满足第一范式的数据库模式不能称为关系数据库。【例】如表描述的是学生选课的情况。

学生选课关系上表描述的学生选课关系不是1NF,因为课程一列包含多门课,不是原子值.表:学生选课关系第二范式(2NF)定义

若关系模式R是1NF,而且每一个非主属性都完全函数依赖于R的候选键,则R称为第二范式,记作R∈2NF。

例:学生-宿舍-课程关系模式SLC(SNO,SD,SL,CNO,G)为第几范式?SC(SNO,CNO,G)为第几范式?SDL(SNO,SD,SL)为第几范式?2NF存在的问题?

第三范式(3NF)定义:如果关系模式R是2NF,而且它的任何一个非主属性都不传递地依赖于任何候选键,则R称为第三范式,记作R∈3NF。SC(SNO,CNO,G)为第几范式?SDL(SNO,SD,SL)为第几范式?问题1:供应关系SSP(SNO,SNAME,PNO,QTY)问题2:SC(SNO,CNO,G)为第几范式?问题1:供应关系SSP(SNO,SNAME,PNO,QTY)?

1NF问题2:SC(SNO,CNO,G)为第几范式?3NF关系模式的规范化关系分为两类:

(1)静态关系:一旦加载数据后,用户只能在这个关系上运行查询操作。这种关系的要求是必须属于1NF。

(2)动态关系:当数据加载后,经常对数据进行增、删、改操作。这种关系的要求是至少属于3NF。

一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。关系模式规范化的步骤关系模式规范化的基本步骤

1NF ↓消除非主属性对码的部分函数依赖消除决定属性 2NF集非码的非平 ↓消除非主属性对码的传递函数依赖凡函数依赖3NF ↓消除主属性对码的部分和传递函数依赖

BCNF ↓消除非平凡且非函数依赖的多值依赖

4NF关系模式规范化的步骤(续)规范化的基本思想 逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”, 采用“一事一地”的模式设计原则,让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个概念就把它“分离”出去。规范化实质上是概念的单一化。关系模式规范化的步骤(续)不能说规范化程度越高的关系模式就越好。在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式。分解可能带来的问题?

分解后的多个模式是否与原来的模式完全一样呢? 分解后所表达的函数依赖集是否与原来的函数依赖集等价呢?

分解要“保持函数依赖性”,又要具有“无损连接性”。具有无损连接性的关系模式分解

1.分解ρ具有无损连接性设关系模式R(U),F是R上的函数依赖集合,ρ={R1,R2,…,Rn}是R的一个分解,如果对R的任一满足F的关系r下式成立:则称分解ρ为具有无损连接性或分解ρ为无损连接分解。3、定理

设关系模式R的一个分解ρ={R1,R2}, U1、U2和U分别是R1、R2和R的属性集合,F是R上的函数依赖集。ρ具有无损连接性的充分必要条件是:

(R1∩R2)→(R1-R2)∈F+或(R1∩R2)→(R2-R1)∈F+即:(R1-R2)∈(R1∩R2)+或(R2-R1)∈(R1∩R2)+

例:R(A,B,C),F={A

→B,B→C},问:ρ1={R1(A,B),R2(B,C)};

ρ2={R1(A,C),R2(B,C)};

ρ3={R1(A,C),R2(A,B)};是否为无损连接分解?(R1-R2)∈(R1∩R2)+或(R2-R1)∈(R1∩R2)+

ρ1={R1(A,B),R2(B,C)};无损连接分解

ρ2={R1(A,C),R2(B,C)};有损连接分解

ρ3={R1(A,C),R2(A,B)};无损连接分解保持函数依赖分解设关系模式R<U,F>被分解为若干个关系模式R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>(Fi为F在Ui上的投影),若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所逻辑蕴含,

F+=(F1UF2…UFN)+则称关系模式R的这个分解是保持函数依赖的分解。Fi为F在Ui上的投影

Ui(F)=={X→Y|X→Y∈F+,且XY∈Ui}

分解为3NF,且具有函数依赖保持性的算法。输入:关系模式R(U)和关系模式R的函数依赖F的极小依赖集F;输出:R的一个分解ρ={R1,R2,…,Rn},Ri为3NF(i=1,2,…,n),ρ具有函数依赖保持性。方法:(1)如果极小依赖集F中有一个依赖X→A,且XA=U,则输出ρ={R},转向(5);(2)如果R中某些属性与F中所有函数依赖的左部和右部都无关,则将它们构成一个关系子模式Rj,并从R中将它们分出去。

(3)对于F中的每一个有相同左边的分在一个模式内,如X→Ai,则XAi构成一个子模式(i=1,2,3…);

(4)对于F中的每一个Xi→Ai,都构成一个关系子模式Ri=XiAi;

(5)停止分解,输出ρ。

算法把一个关系模式分解为3NF,使它既具有无损连接性,又具有函数依赖保持性。输入:关系模式R和R的函数依赖集F,X是R的一个候选键。输出:R的一个分解ρ={R1,R2,…,Rn},Ri为3NF(i=1,2,…,n),且ρ具有无损连接性和函数依赖保持性。

方法:

(1)根据算法求出函数依赖保持性分解:ρ={R1,R2,…,Rn};

(2)X∈Ri

具有无损连接性,转向(4);

(3)令ρ=ρ∪{X},其中,X是R的一个候选键;

(4)输出ρ。

【例】设关系模式R(U),其中U={C,T,H,R,S,G},R上的函数依赖集F={CS→G,C→T,TH→R,HR→C,HS→R}。试将其保持函数依赖且无损连接分解为3NF。解:1、因为(HS)+={C,T,H,R,S,G},所以HS是关系模式R的惟一候选键。2、利用算法R1=CSG,R2=CT,R3=THR,R4=HRC,R5=HSR3、HS∈R5

于是,求出的分解ρ={R1,R2,R3,R4,R5}满足3NF。且保持函数依赖和无损连接分解。规范化理论提供了一套完整的模式分解算法,按照这套算法可以做到:若要求分解具有无损连接性,那么模式分解一定能够达到4NF。若要求分解保持函数依赖,那么模式分解一定能够达到3NF,但不一定能够达到BCNF。若要求分解既具有无损连接性,又保持函数依赖,则模式分解一定能够达到3NF,但不一定能够达到BCNF。规范化理论为数据库设计提供了理论的指南和工具并不是规范化程度越高(范式越高),模式就越好必须结合应用环境和现实世界的具体情况合理地选择数据库模式6.3基于ER方法的数据库设计1.需求分析2.概念设计3.逻辑设计4.物理设计5.实现设计需求分析

需求收集和分析1.信息要求2.处理要求3.功能要求 4

.环境特征结果:数据字典(数据项、数据结构、数据流、数据存储和处理过程五个部分)需求分析(1)信息要求,用户对即将建立的数据库有些什么要求?保存什么信息?要从数据库中得到什么信息?提供的数据与取得的信息是什么形式?等等。(2)处理要求,如何使用数据?对各种数据的使用频率如何?检索方式如何?要输出那些表格?被存取的数据量与运行限制等。

需求分析(3).功能要求,对将要建立的信息系统应具有那些功能?能给组织解决那些处理问题?功能要求包括规划的、现存的、人工的或自动的等各方面。 (4).环境特征,企业的规模与结构、部门的地理分布、现有系统资源、数据库的安全性、完整性限制以及DBMS与运行环境约束等。

学生学籍管理子系统简要数据字典数据结构:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息组成:学号,姓名,性别,年龄,所在系,年级

学生学籍管理子系统简要数据字典数据项:学号含义说明:唯一标识每个学生别名:学生编号类型:字符型长度:8取值范围:00000000至99999999取值含义:前两位标别该学生所在年级,后六位按顺序编号

学生学籍管理子系统简要数据字典数据流:体检结果说明:学生参加体格检查的最终结果数据流来源:体检数据流去向:批准组成:……学生学籍管理子系统简要数据字典数据存储:学生登记表说明:记录学生的基本情况组成:……数据量:每年3000张存取方式:随机存取

学生学籍管理子系统简要数据字典处理过程:分配宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍,输出:宿舍安排处理:在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于3平方米。安排新生宿舍其处理时间应不超过15分钟。

概念设计对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。结果:E-R图概念设计常用方法:

(1)自底向上:首先根据需求分析的结果设计各个局部E-R图;然后集成并优化局部视图。

(2)逐步扩张:首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。

画E-R图的基本步骤:(1)确定实体类型;(2)确定联系类型;(3)画出E-R图;(4)确定属性;集成局部E-R图集成时注意三类冲突:属性冲突

(1)属性域冲突,即属性值的类型、取值范围或取值集合不同。(2)属性取值单位冲突。命名冲突(1)同名异义。(2)异名同义(一义多名)。

集成局部E-R图结构冲突

(1)同一对象在不同应用中具有不同的抽象。(实体/属性)(2)同一实体在不同局部视图中所包含的属性不完全相同。(3)实体之间的联系在不同局部视图中呈现不同的类型。

优化:消除冗余数据和冗余联系

学生学籍管理局部E-R图课程管理局部E-R图学生管理集成E-R图逻辑设计将概念设计转换为关系模型E-R图转换为关系模式的原则:

(1)

一个实体集转换为一个关系模式。

(2)一个m:n联系转换为一个关系模式。(3)一个1:n联系可以与n端对应的关系模式合并(1的关键字放入N的关系中)。(4)

一个1:1联系可以与任意一端对应的关系模式合并。(5)

三个或三个以上实体间的多元联系转换为一个关系模式

(6)

同一实体集间的联系(自联系),可按上述1:1、1:n和m:n三种情况分别处理。

逻辑设计—关系模型的优化以规范化理论为指导,进行优化。确定数据依赖。对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。对关系模式逐一进行分析,确定各关系模式分别属于第几范式。考查是否存在部分依赖、传递依赖、多值依赖等,对关系模式进行必要的分解。按照需求分析阶段得到的各种应用对数据处理的要求,分析得到的模式是否合适,确定是否需要对它们进行合并或分解。物理设计为逻辑数据模型选取一个最适合应用环境的物理结构。确定数据库物理结构的内容(1).确定数据的存储结构(2).设计数据的存取路径(3).确定数据的存放位置(4).确定系统配置

确定数据的存储结构确定数据存储结构:综合考虑存取时间、存储空间利用率和维护代价三方面的因素

使用聚簇功能,提高某个属性或属性组的查询速度建立和维护聚簇的开销是很大的设计数据的存取路径在关系数据库中,设计存取路径主要是指确定如何建立索引确定数据的存放位置(续)基本原则根据应用情况将易变部分与稳定部分分开存放存取频率较高部分与存取频率较低部分分开存放以提高系统性能确定数据的存放位置(续)例:数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而且数据量很大,可以考虑存放在磁带上。如果计算机有多个磁盘,可以考虑将表和索引分别放在不同的磁盘上,在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。可以将日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能。确定系统配置DBMS产品一般都提供了一些存储分配参数

同时使用数据库的用户数同时打开的数据库对象数使用的缓冲区大小、个数时间片大小数据库的大小装填因子锁的数目等等确定系统配置(续)系统都为这些变量赋予了合理的缺省值。但是这些值不一定适合每一种应用环境,在进行物理设计时,需要根据应用环境确定这些参数值,以使系统性能最优。

在物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。实现设计

运用DBMS提供的数据语言(例如SQL)开发工具,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,进行试运行。数据库实施定义数据库结构数据装载

数据库试运行数据库物理设计数据库运行和维护物理模型编制与调试应用程序数据库系统定义数据库结构(续)例,可以用SQL语句如下定义表结构:CREATETABLE学生

(学号CHAR(8),

……………);CREATETABLE课程

(

……………);……………定义数据库结构(续)在这些基本表上定义视图:

CREATEVIEW.... (

…………… ); ……………

如果需要使用聚簇,在建基本表之前,应先用CREATECLUSTER语句定义聚族。数据装载数据库结构建立好后,就可以向数据库中装载数据了。组织数据入库是数据库实施阶段最主要的工作。数据装载方法人工方法计算机辅助数据入库数据装载(续)人工方法:适用于小型系统步骤1)筛选数据。需要装入数据库中的数据通常都分散在各个部门的数据文件或原始凭证中,所以首先必须把需要入库的数据筛选出来。2)转换数据格式。筛选出来的需要入库的数据,其格式往往不符合数据库要求,还需要进行转换。这种转换有时可能很复杂。

3)输入数据。将转换好的数据输入计算机中。

4)校验数据。检查输入的数据是否有误。数据装载(续)计算机辅助数据入库:适用于中大型系统步骤1)

筛选数据2)输入数据。由录入员将原始数据直接输入计算机中。数据输入子系统应提供输入界面。3)校验数据。数据输入子系统采用多种检验技术检查输入数据的正确性。数据装载(续)4)

转换数据。数据输入子系统根据数据库系统的要求,从录入的数据中抽取有用成分,对其进行分类,然后转换数据格式。抽取、分类和转换数据是数据输入子系统的主要工作,也是数据输入子系统的复杂性所在。5)综合数据。数据输入子系统对转换好的数据根据系统的要求进一步综合成最终数据。数据装载(续)如果数据库是在老的文件系统或数据库系统的基础上设计的,则数据输入子系统只需要完成转换数据、综合数据两项工作,直接将老系统中的数据转换成新系统中需要的数据格式。为了保证数据能够及时入库,应在数据库物理设计的同时编制数据输入子系统。编制与调试应用程序数据库应用程序的设计应该与数据库设计并行进行。在数据库实施阶段,当数据库结构建立好后,就可以开始编制与调试数据库的应用程序。调试应用程序时由于数据入库尚未完成,可先使用模拟数据。数据库试运行应用程序调试完成,并且已有一小部分数据入库后,就可以开始数据库的试运行。数据库试运行也称为联合调试,其主要工作包括:1)功能测试:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。2)性能测试:测量系统的性能指标,分析是否符合设计目标。数据库试运行(续)数据库试运行则是要实际测量系统的各种性能指标(不仅是时间、空间指标),如果结果不符合设计目标,则需要返回物理设计阶段,调整物理结构,修改参数;有时甚至需要返回逻辑设计阶段,调整逻辑结构。数据库试运行(续)数据的分期入库重新设计物理结构甚至逻辑结构,会导致数据重新入库。由于数据入库工作量实在太大,所以可以采用分期输入数据的方法先输入小批量数据供先期联合调试使用待试运行基本合格后再输入大批量数据逐步增加数据量,逐步完成运行评价数据库试运行(续)数据库的转储和恢复在数据库试运行阶段,系统还不稳定,硬、软件故障随时都可能发生系统的操作人员对新系统还不熟悉,误操作也不可避免因此必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏。众恒信息管理系统设计请基于ER方法进行数据库设计(2.概念设计3.逻辑设计4.物理设计5.实现设计)至少包括以下工作:1设计该系统的E一R图(注:E-R模型图中可以省略属性,只在关系模式中给出每个实体所含字段)。2将E-R模型转换成为关系模型,主键以双下划线标出,外键以单下划线标出。3假设用ORACLE实现该数据库系统,请设计该系统的表空间、索引、聚簇、视图、角色,并为角色授权等。练习题1.

指出下列关系模式的候选键是什么,它是第几范式?并解释其理由。

(1)R的属性集合为{A,B,C},其函数依赖集合为F={AB→C}。

(2)R的属性集合为{A,B,C,D},其函数依赖集合为F={B→D,AB→C}。(3)R的属性集合为{A,B,C,D,E,G},其函数依赖集合为F={C→G,E→A,CE→D,A→B}。

(4)R的属性集合为{A,B,C},其函数依赖集合为F={B→A,C→B,A→B}。

(5)R的属性集合为{A,B,C},其函数依赖集合为F={AC→B,B→C}。

(6)R的属性集合为{A,B,C,D},其函数依赖集合为F={AB→C,CD→A,BC→D,AD→B}。

(7)R的属性集合为{A,B,C,D,E},其函数依赖集合为F={AC→B,B→D,D→C,D→E}。

2.若关系模式S(S#,SN,SD,MN,C#,GR),关系模式R的函数依赖集F={S#→SD,S#→SN,SD→MN,(S#,C#)→GR}。 将其分解为S1(S#,SN,SD,MN),SC(S#,C#,GR)。再将S1分为S11(S#,SN,MN)和S12(SD,MN),

求关系S的范式等级,关系S1和SC的范式等级,关系S11,S12的范式等级。3.设关系模式R的属性集合为{A,B,C},其上的函数依赖集F={B→C,A→C},判断分解ρ1={R1(A,B),R2(A,C)},ρ2={R1(A,C),R2(B,C)}是否具有无损连接性和函数依赖保持性?

4设有下表所示的关系R:

试问:(1)关系R为第几范式?为什么?

(2)它是否存在删除异常操作?若存在,何时发生?(3)讨论这些数据的语义,写出它相应的函数依赖集。(4)将它分解为高一级范式。函数依赖的公理系统Armstrong公理系统

1.Armstrong公理系统的三条推理规则设关系模式R(U),X,Y,Z,WU,F是R的一个函数依赖集合,则Armstrong公理系统包含如下三条推理规则:

(1)自反律(Reflexivity):若YXU,则F蕴涵X→Y。(2)增广律(又称外延性,augmentation):若F蕴涵X→Y,ZU,则F蕴涵XZ→YZ。(3)传递律(transitivity):若F蕴涵X→Y和Y→Z,则F蕴涵X→Z。

Armstrong公理提供一整套推理规则,它能从F推导出F+中的所有依赖(完备性),从F推不出任何不属于F+的依赖(正确性)。2.Arestrong公理的三个推论

由Arestrong公理可得到下面三个推论:

(1)合并规则:若X→Y,X→Z,则X→YZ。

(2)分解规则:若X→Y且ZY,则X→Z。

(3)伪传递规则:若X→Y,YZ→W,则XZ→W。

属性集合X关于函数依赖集F的闭包

关系模式R(U),U={A1,A2,…,An},Ai∈U,XU,X+={Ai|X→Ai能由F根据Armstrong公理系统导出且Ai∈U}, 则称X+是属性集合X关于函数依赖集F的闭包。

算法

计算属性集X的闭包X+。输入:属性集X和函数依赖集F。输出:关于F的X的闭包X+。方法:①令X(0)=X,i=0;②令X(i+1)=X(i)∪{A|VX(i),V→W∈F,A∈W};③若已经没有V→W∈F,能使X(i+1)≠X(i),则X+=X(i),输出X+,算法结束;否则,令i=i+1,转去执行第(2)步。【例】设关系模式R(U)上的函数依赖集为F,U={A,B,C,D,E,I};F={A→D,AB→E,BI→E,CD→I,E→C},试计算(AE)+。

温馨提示

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

评论

0/150

提交评论