数据库的概念及用途

数据库的概念及用途,第1张

数据库的概念

什么是数据库呢当人们从不同的角度来描述这一概念时就有不同的定义(当然是描述性的)。例如,称数据库是一个"记录保存系统"(该定义强调了数据库是若干记录的集合)。又如称数据库是"人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合"(该定义侧重于数据的组织)。更有甚者称数据库是"一个数据仓库"。当然,这种说法虽然形象,但并不严谨。严格地说,数据库是"按照数据结构来组织、存储和管理数据的仓库"。在经济管理的日常工作中,常常需要把某些相关的数据放进这样"仓库",并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表2063中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。

JMartin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个"数据库集合"。

数据库的优点

使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。特别是近年来推出的微型计算机关系数据库管理系统dBASELL, *** 作直观,使用灵活,编程方便,环境适应广泛(一般的十六位机,如IBM/PC/XT,国产长城0520等均可运行种软件),数据处理能力极强。数据库在我国正得到愈来愈广泛的应用,必将成为经济管理的有力工具。

数据库是通过数据库管理系统(DBMS-DATA BASE MANAGEMENT SYSTEM)软件来实现数据的存储、管理与使用的dBASELL就是一种数据库管理系统软件。

数据库结构与数据库种类

数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。

1数据结构模型

(1)数据结构

所谓数据结构是指数据的组织形式或数据之间的联系。如果用D表示数据,用R表示数据对象之间存在的关系集合,则将DS=(D,R)称为数据结构。例如,设有一个电话号码簿,它记录了n个人的名字和相应的电话号码。为了方便地查找某人的电话号码,将人名和号码按字典顺序排列,并在名字的后面跟随着对应的电话号码。这样,若要查找某人的电话号码(假定他的名字的第一个字母是Y),那么只须查找以Y开头的那些名字就可以了。该例中,数据的集合D就是人名和电话号码,它们之间的联系R就是按字典顺序的排列,其相应的数据结构就是DS=(D,R),即一个数组。

(2)数据结构种类

数据结构又分为数据的逻辑结构和数据的物理结构。数据的逻辑结构是从逻辑的角度(即数据间的联系和组织方式)来观察数据,分析数据,与数据的存储位置无关。数据的物理结构是指数据在计算机中存放的结构,即数据的逻辑结构在计算机中的实现形式,所以物理结构也被称为存储结构。本节只研究数据的逻辑结构,并将反映和实现数据联系的方法称为数据模型。

目前,比较流行的数据模型有三种,即按图论理论建立的层次结构模型和网状结构模型以及按关系理论建立的关系结构模型。

2层次、网状和关系数据库系统

(1)层次结构模型

层次结构模型实质上是一种有根结点的定向有序树(在数学中"树"被定义为一个无回的连通图)。例如图2064是一个高等学校的组织结构图。这个组织结构图像一棵树,校部就是树根(称为根结点),各系、专业、教师、学生等为枝点(称为结点),树根与枝点之间的联系称为边,树根与边之比为1:N,即树根只有一个,树枝有N个。这种数据结构模型的一般结构见图2065所示。

图2064 高等学校的组织结构图 图2065 层次结构模型

图2065中,Ri(i=1,2,…6)代表记录(即数据的集合),其中R1就是根结点(如果Ri看成是一个家族,则R1就是祖先,它是R2、R3、R4的双亲,而R2、R3、R4互为兄弟),R5、R6也是兄弟,且其双亲为R3。R2、R4、R5、R6又被称为叶结点(即无子女的结点)。这样,Ri(i=1,2,…6)就组成了以R1为树根的一棵树,这就是一个层次数据结构模型。

按照层次模型建立的数据库系统称为层次模型数据库系统。IMS(Information Manage-mentSystem)是其典型代表。

(2)网状结构模型

在图2066中,给出了某医院医生、病房和病人之间的联系。即每个医生负责治疗三个病人,每个病房可住一到四个病人。如果将医生看成是一个数据集合,病人和病房分别是另外两个数据集合,那么医生、病人和病房的比例关系就是M:N:P(即M个医生,N个病人,P间病房)。这种数据结构就是网状数据结构,它的一般结构模型如图2067所示。在图中,记录Ri(i=1,2,8)满足以下条件:

①可以有一个以上的结点无双亲(如R1、R2、R3)。

②至少有一个结点有多于一个以上的双亲。在"医生、病人、病房"例中,"医生集合有若干个结点(M个医生结点)无"双亲",而"病房"集合有P个结点(即病房),并有一个以上的"双亲"(即病人)。

图2066 医生、病房和病人之间的关系

图2067 网状结构模型

按照网状数据结构建立的数据库系统称为网状数据库系统,其典型代表是DBTG(Data Base Task Group)。用数学方法可将网状数据结构转化为层次数据结构。

(3)关系结构模型

关系式数据结构把一些复杂的数据结构归结为简单的二元关系(即二维表格形式)。例如某单位的职工关系就是一个二元关系(见表2068)。这个四行六列的表格的每一列称为一个字段(即属性),字段名相当于标题栏中的标题(属性名称);表的每一行是包含了六个属性(工号、姓名、年龄、性别、职务、工资)的一个六元组,即一个人的记录。这个表格清晰地反映出该单位职工的基本情况。

表2068 职工基本情况

通常一个m行、n列的二维表格的结构如表2069所示。

表中每一行表示一个记录值,每一列表示一个属性(即字段或数据项)。该表一共有m个记录。每个记录包含n个属性。

作为一个关系的二维表,必须满足以下条件:

(1)表中每一列必须是基本数据项(即不可再分解)。

(2)表中每一列必须具有相同的数据类型(例如字符型或数值型)。

(3)表中每一列的名字必须是唯一的。

(4)表中不应有内容完全相同的行。

(5)行的顺序与列的顺序不影响表格中所表示的信息的含义。

由关系数据结构组成的数据库系统被称为关系数据库系统。

在关系数据库中,对数据的 *** 作几乎全部建立在一个或多个关系表格上,通过对这些关系表格的分类、合并、连接或选取等运算来实现数据的管理。dBASEII就是这类数据库管理系统的典型代表。对于一个实际的应用问题(如人事管理问题),有时需要多个关系才能实现。用dBASEII建立起来的一个关系称为一个数据库(或称数据库文件),而把对应多个关系建立起来的多个数据库称为数据库系统。dBASEII的另一个重要功能是通过建立命令文件来实现对数据库的使用和管理,对于一个数据库系统相应的命令序列文件,称为该数据库的应用系统。因此,可以概括地说,一个关系称为一个数据库,若干个数据库可以构成一个数据库系统。数据库系统可以派生出各种不同类型的辅助文件和建立它的应用系统。

数据库的要求与特性

为了使各种类型的数据库系统能够充分发挥它们的优越性,必须对数据库管理系统的使用提出一些明确的要求。

1建立数据库文件的要求

(1)尽量减少数据的重复,使数据具有最小的冗余度。计算机早期应用中的文件管理系统,由于数据文件是用户各自建立的,几个用户即使有许多相同的数据也得放在各自的文件中,因而造成存储的数据大量重复,浪费存储空间。数据库技术正是为了克服这一缺点而出现的,所以在组织数据的存储时应避免出现冗余。

(2)提高数据的利用率,使众多用户都能共享数据资源。

(3)注意保持数据的完整性。这对某些需要历史数据来进行预测、决策的部门(如统计局、银行等)特别重要。

(4)注意同一数据描述方法的一致性,使数据 *** 作不致发生混乱。如一个人的学历在人事档案中是大学毕业,而在科技档案中却是大学程度,这样就容易造成混乱。

(5)对于某些需要保密的数据,必须增设保密措施。

(6)数据的查找率高,根据需要数据应能被及时维护。

2数据库文件的特征

无论使用哪一种数据库管理系统,由它们所建立的数据库文件都可以看成是具有相同性质的记录的集合,因而这些数据库文件都有相同的特性:

(1)文件的记录格式相同,长度相等。

(2)不同的行是不同的记录,因而具有不同的内容。

(3)不同的列表示不同的字段名,同一列中的数据的性质(属性)相同。

(4)每一行各列的内容是不能分割的,但行的顺序和列的顺序不影响文件内容的表达。

3文件的分类

对文件引用最多的是主文件和事物文件。其他的文件分类还包括表文件、备份文件、档案的输出文件等。下面将讲述这些文件。

(1)主文件。主文件是某特定应用领域的永久性的数据资源。主文件包含那些被定期存取以提供信息和经常更新以反映最新状态的记录。典型的主文件有库存文件、职工主文件和收帐主文件等。

(2)事务文件。事务文件包含着作为一个信息系统的数据活动(事务)的那些记录。这些事务被分批以构成事务文件。例如,从每周工资卡上录制下来的数分批存放在一个事务文件上,然后对照工资清单文件进行处理以便打印出工资支票和工资记录簿。

(3)表文件。表文件是一些表格。之所以单独建立表文件而不把表设计在程序中是为了便于修改。例如,一个公用事业公司的税率表或国内税务局的税率就可以存储在表中文件。

(4)备用文件。备用文件是现有生产性文件的一个复制品。一旦生产性文件受到破坏,利用备用文件就可以重新建立生产性文件。

(5)档案文件。档案文件不是提供当前处理使用的,而是保存起来作为历史参照的。例如,国内税务局(IRS)可能要求检查某个人最近15年的历史。实际上,档案文件恰恰是在给定时间内工作的一个"快照"。

(6)输出文件。输出文件包含将要打印在打印机上的、显在屏幕上的或者绘制在绘图仪上的那些信息的数值映象。输出文件可以是"假脱机的"(存储在辅存设备上),当输出设备可

用时才进行实际的输出。

82 规范化理论

关系数据库中关系规范化问题在1970年Godd提出关系模型时就同时被提出来,关系规范化可按属性间不同的依赖程度分为第一范式,第二范式,第三范式,Boyce-Codd范式以及第四范式人们对规范化的认识是有一个过程的,在1970年时已发现属性间的函数依赖关系,从而定义了与函数依赖关系有关的第一,第二,第三,及Boyce-Codd范式在1976~1978年间,Fagin,Delobe以及Zanjolo发现了多值依赖关系,从而定义了与多值依赖有关的第四范式

范式的定义与属性间的依赖关系的发现有密切关系,在本节中我们介绍函数依赖与多值依赖这两个概念,并在此基础上定义第一范式,第二范式,第三范式,Boyce-Codd范式以及第四范式

821 函数依赖

函数依赖(functional dependency)是关系模式内属性间最常见的一种依赖关系,例如在关系模式S中,S#与Sd间有一种依赖关系即S#的值一经确定后Sd的值也随之唯一地确定了,此时即称S#函数决定Sd或称Sd函数依赖于S#,它可用下面符号表示:

S# → Sd

同样,我们还可以有:

S# → Sa

S# → Sn

但是关系模式SC中的S#与G间则没有函数依赖关系,因为一个确定的学号S#可以允许有多个成绩(它们分别对应于不同的课程),因此成绩G并不能唯一地确定,但是(S#,C#)与G间则存在着函数依赖关系,即有:

(S#,C#)→G

函数依赖这个概念是属语义范畴的,我们只能根据语义确定属性间是否存在这种依赖,此外别无它法可循

定义8-1 设有关系模式R ( U ),X,Y是U的子集,若对于任一个关系R中的任一元组在X中的属性值确定后则在Y中的属性值必确定,则称Y函数依赖于X或称X函数决定Y, 并记作X→Y,而其中X称为决定因素,Y称为依赖因素对于函数依赖,我们一般总是使用一种叫非平凡的函数依赖,在本章中如无特殊声明,凡提到函数依赖时总认为指的是非平凡的函数依赖下面我们对非平凡函数依赖下一个定义

定义8-2 一个函数依赖关系X→Y如满足Y(X,则称此函数依赖是非平凡的函数依赖

为了对函数依赖作深人研究,也为了规范化的需要,我们还得引入几种不同类型的函数依赖

首先;引入一种完全函数依赖的概念,这个概念为真正的函数依赖打下基础例如在S申我们有S#→Sd,因而我们同样也会有:

(S#,Sn) →Sd

(S#,Sa) →Sd

比较这三种函数依赖后我们会发现,实际上真正起作用的函数依赖是:

S#→Sd

而其他两种函数依赖都是由它派生而成的,即是说在函数依赖中真正起作用的是S#,而不是Sn或Sa等这样,我们在研究函数依赖时要区别这两种不同类型的函数依赖,前一种叫完全函数依赖,而后一种叫不完全函数依赖

定义8-3 R( U )中如有X,Y(U,满足X→Y且对任何X的真子集X',都有X'→Y',则称Y完全函数依赖于X并记作:

X Y

定义8-4 在R( U )中如有X,Y(U且满足X→Y,但Y不完全函数依赖于X,则称Y部分依赖于X,并记作:

X Y

由上所述可知,Sd完全函数依赖于S#,但Sd不完全函数依赖于(S#,Sn),亦即有:

S# Sd

(S#,Sn) Sd

(S#,Sa) Sd

在函数依赖中还要区别直接函数依赖与间接函数依赖这两个不同的概念,例如S#→Sd中Sd是直接函数依赖于S#,但如果在属性中尚有系的电话号码DT(假如每个系有唯一的一个电话号码),则有:Sd→DT,从而由S#→Sd及Sd→DT可得到:

S# →DT

在这个函数依赖中,DT并不直接函数依赖于S#,而是经过中间属性Sd传递而依赖于S#,亦即是DT直接依赖于Sd,而Sd又直接依赖于S#,从而构成了DT依赖于S#这种函数依赖关系,是一种间接依赖关系,或叫传递依赖关系我们可以对它定义如下

定义8-5在R( U )中如有X,Y,Z(U且满足:

X→Y,(Y(X ) Y / X,Y→Z

则称Z传递函数依赖于X,否则,称为非传递函数依赖

注意,在这里传递函数依赖与非传递函数依赖仅作概念上区别, 在形式表示上不作任何区别,即Z传递函数依赖于X或Z非传递函数依赖于X都用X→Z表示,这样做的目的也是为了从全局考虑使得表示尽量简单与方便

定义了几种不同的函数依赖关系后,我们在此基础上继续定义一些十分重要的基本概念即有关关键字(keY)的一些概念

定义8-6 在R(U )中如有K(U且满足:

K U

则称K为R的关键字

一个关系模式可以有若干个关键字,我们在使用中选取其中的一个就够了,这个被选中的关键字叫做这个关系模式的主关键字(Prime key),而一般的关键字叫候选关键字(candidate key)

在关系模式S,C,SC中,S的关键字是S#,C的关键字是C#,而SC的关键字是(S#,C#),因为我们有:

S# (S#,Sn,Sd,Sa)

C# (C#,CN,P#)

(S#,C#) (S#,C#,G)

而S中,(S#,Sn),(S#,Sd)等均不是关键字,因为我们有:

(S#,Sn) (S#,Sn,Sd,Sa)

(S#,Sd) (S#,Sn,Sd,Sa)

在一个关系模式中,所有关键字中的属性构成一个集合,而所有其余的属性则构成另一个集合,这两个集合分别叫做这个关系模式的主属性集与非主属性集主属性集中的属性叫做主属性(prime attribute),非主属性集中的属性则叫非主属性(nonprime attribute)例如在关系模式S (S#,Sn,Sd,Sa)中, 主属性集为:

(S#)

而非主属性集为:

(Sn,Sd,Sa)

在SC(S#,C#,G)中,主属性集为:

{ S#, C# }

而非主属性为:

{G}

下面我们给出它们的定义:

定义8-7 R ( U )中所有关键字中的属性构成的集合P称为R(U )的主属性集

定义8-8 在R ( U )中所有非关键字中的属性构成的集合N称为R(U)的非主属性集以上建立了一系列与函数依赖有关的概念,有了它们后就可以讨论与函数依赖有关的几

个范式,它们是第一范式,第二范式及第三范式(实际上第一范式与所有依赖均无关,但为叙述方便起见,可视为与函数依赖有关)至于函数依赖的有关理论的探讨,将在本章稍后部分再作详细介绍

822 与函数依赖有关的范式

在这节中我们讨论四种范式,他们是第一范式,第二范式,第三范式以及Boyce-Codd范式

先介绍第一范式第一范式是关系模式所要遵循的基本条件,即关系中的每个属性值均必须是一个不可分割的数据量如一个关系模式满足此条件则称它属于第一范式(first normal form,或简写成lNF),一个关系模式R如满足第一范式,则可记为R∈lNF

第一范式规定了一个关系中的属性值必须是一个不可分割的数据,它排斥了属性值为元组,数组或某种复合数据等的可能性,使关系数据库中的所有关系的属性值均是最简单的,这样可以做到结构简单,讨论方便一般说来,每个关系模式均要满足第一范式,因为这是对每个关系的最基本要求

下面开始讨论真正与函数依赖有关的三个范式为了讨论这几个范式,我们一般对一个关系模式除了要确定其属性外,还要根据它的语义确定在这个模式上的所有函数依赖设有关系模式R,它有属性集U,而在它上的函数依赖集是F,则此时一个关系模式可由三元组R,U,F确定,它可以写成为:

R ( U,F )

注意,这个表示式仅表示一个三元组而已,它并不表示谓词或关系例如前面所提到的学生关系模式S,它可表示为:

S ({S#,Sn,Sd,Sa},{S#→Sn,S#→Sd,S#→Sa})

又如有一个关系模式叫SCG',它由属性S#,Sn,Sd,Sa, C#, G 组成,其中Ss表示学生所学专业,其他含义同前在这个关系模式中有一些语义信息,它们是:

(1 ) 每个学生均只属一个系与一个专业;

(2 ) 每个学生修读之每门课有且仅有一个成绩;

(3 ) 各系无相同专业

根据上述语义信息以及其他的一些基本常识,我们可以将它们用函数依赖形式表示出来,它们是:

S#→Sn

S#→Sd

S#→Ss

Ss→Sd

(S#,C#)→G

因此,这个关系模式的有关信息可写成为:

SCG'({S#,Sn,Sd,Ss,C#,G},{ S#→Sn,S#→Sd,S#→Ss, Ss S#→Sd, (S#,C# ) →G}

关系模式有了函数依赖后就可以讨论规范化的问题了关系中的每一级范式均提出了关系模式所要遵循的约束条件,目的是为了使得关系模式具有较少异常性与较小的冗余度,即是说使关系模式更"好"一些

下面讨论第二范式

定义8-9 设有R(U)∈lNF且其每个非主属性完全函数赖于关键字,则称R(U)满足第二范式(可简写为2NF)或写为R∈2NF

实际上并不是每个满足第一范式的关系模式必满足第二式,如前面例子中的关系模式SCG'即不满足第二范式这是因在SCG'中,它的关键字是(S#,C#),而它的非主属性集是:

(Sd,G,Sn,Ss)

虽然我们有:

(S#,C#) G

但是Sn,Sd,Ss均并不完全依赖(S#,C#),因此不满足第二范式的条件

一个关系模式若满足第二范式,则它必须具有较少异常与较小冗余度因此,一个关系模式若仅满足第一范式还不够,它必须满足第二范式,其方法是将一个关系模式分解成几个关系模式,使分解后的关系模式能满足第二范式如关系模式SCG'可分解成两个关系模式,它们是:

SCG'l ({S#,C#,G},{( S#,C#)→G})

SCG'2 ({S#,Sn,Sd,Ss},{S#→Sn,S#→Sd,S#→Ss→Sd})

这两个模式SCG'均可用图8-1所示的示意图表示之

模式SCG'I与SCG'2均满足第二范式,它们均有较少异常与较小冗余度,而SCG'l还可以做到无插人与删除异常的出现,而SCG'由于不满足第二范式,因此插入异常,删除异常均有存在,且数据冗余度也很大关于这方面的验证请读者自己去做

(a) SCG'示意图 (b)SCG'1及SCG'2示意图

图8-1 三个关系模式函数依赖示意图

但是,第二范式还不能完全避免异常现象的出现,如SCG'2虽满足第二范式,但仍会出现插入异常与删除异常如在SCG'2中,它有如表8-4所示的模式

表8-4 SCG'2的关系模式

S#

Sn

Sd

Ss

SCG'2:

在这个模式中,如果我们要登记一个尚未招生的系的专业设置情况,要插入这个情况在模式中是较为困难的这样,如果要删除一些学生,有可能会将有关系的专业设置情况一起删除究其原因,不外是因为Sd既函数依赖于S#又函数依赖于Ss,同时Ss又函数依赖于S#,并且由此引起了传递函数依赖的出现因此,看来要消除异常现象,必须使关系模式中无传递函数依赖现象出现,这样就产生了第三范式

第三范式要求关系模式首先得满足第二范式,同时每个非主属性都非传递依赖于关键字由此可以看出,如满足第三范式则每个非主属性既不部分依赖也不传递依赖于关键字

定义8-10 若关系模式R(U)的每个非主属性都不部分依赖也不传递依赖于关键字,则称R满足第三范式(可简写为3NF),并记作R∈3NF

第三范式将关系模式中的属性分成为两类,一类是非主属性集,另一类是主属性集,而非主属性集的每个属性均完全,不传递依赖于主属性集中的关键字,从而做到在关系模式中理顺了复杂的依赖关系,使依赖单一化与标准化,进而力求达到避免异常性的出现,其示意图可见图8-2,在图中可将关系模式比拟成一个原子,其中主属性集是这个原子的原子核,而非主属性集中的属性则是这个原子中的电子,它们紧紧依赖于主属性集构成一个紧密整体

一个关系模式如果不满足第三范式,可以通过模式分解使分解成若干个模式,使分解后的模式能满足第三范式例如关系模式SCG'中,SCG'2满足第二范式,但不满足第三范式,此时可将其分解成下面两个模式:

SCG'21(S#,Sn,Ss)

SCG'22 (Ss,Sd)

图8-2 第三范式的"原子"模型

其依赖示意图见图8-3

(a)SCC'l (b)SCG'21 (c)SCG'22

图8-3模解分解图

在SCG'中经过几次分解后,得到三个关系模式:

SCG'l,SCG'21,SCG'22

这三个模式均满足第三范式且没有异常现象出现,同时冗余度小

1972年Boyce,Codd等从另一个角度研究了范式,发现了函数依赖中的决定因素与关键字间的联系与范式有关,从而创立了另一种第三范式,称为Boyce-Codd范式

Boyce-Codd范式的大概意思是:如果关系模式中,每个决定因素都是关键字,则满足Boyce-Codd范式我们知道,一般而言,每个函数依赖中的决定因素不一定都是关键字,因此,只有当R中决定因素都是关键字时才能认为满足Boyce-Codd范式

定义8-1l 如R(U )中X,Y(U,假定满足R∈lNF,且若X→Y(Y(X)时X必含关键字,则称R满足Boyce-Codd范式(可简记BCNF)并记以R∈BCNF

下面一个问题我们需要研究BCNF与3NF间究竟有什么关系 经过仔细研究后,我们认为BCNF比3NF更为严格下面的定理给出了这个回答

定理8-1关系模式R(U)若满足BCNF,则必定满足3NF

这个定理的证明请读者设法自行证得(注:可以用BCNF及3NF的定义而求得)

这个定理告诉我们:一关系模式满足BCNF者必满足3NF但是,一关系模式满足3NF是否满足BCNF呢 即是说,定理8-1的充分条件是否成立呢 回答是否定的,即必存在一R(U)满足3NF,但不满足BCNF,这只要用一例即可说明

例8-1设有关系模式R(S, C,T),其中S, C含义同前, T表示教师,R有下列语义信息: (1)每个教师仅上一门课;

(2)学生与课程确定后,教师即唯一确定

这样,R就有如下函数依赖关系:

(S, C ) →T

T→C

这个关系模式满足3NF,因为它的主属性集为(S,C )非主属性集为 (T ),而T完全依赖于(S,C )且不存在传递依赖但这个关系模式不满足BCNF,因为T是决定因素,但T不是关键字

这个模式的示意图见图8-4

图8一4 例8一1示意图

从这个例子中也可以看出,实际上第三范式也避免不了异常性,如某课程本学期不开设,因此就无学生选读,此时有关教师固定开设某课程的信息就无法表示因此,要避免此种异常性,还需要进一步将关系模式分解成BCNF如在此例中可将R进一步分解成:

R1 (S, T )

R2 (T, C )

其示意图如图8-5所示而R1, R 2则为BCNF,这两个模式均不会产生异常现象

R1 R 2

图8-5 R分解成两个BCNF

从上面所述可以看出,BCNF比3NF更为严格,它将关系模式中的属性分成两类,一类是决定因素集,另一类是非决定因素集非决定因素集中的属性均完全,不传递地依赖于决定因素集中的每个决定因素关于这种比喻的一个示意图见图8-6

到此为止,由函数依赖所引起的异常现象,只要分解成BCNF即可获得解决在BCNF中每个关系模式内部的函数依赖均比较单一和有规则,它们紧密依赖而构成一个整体,从而可以避免异现象出现以及冗余量过多的现象

图8-6 BCNF的原子模型

823 多值依赖与第四范式

我们研究了函数依赖及与它有关的几个范式,但是否关系模式内属性间的依赖关系除函数依赖外就没有其他依赖关系呢 事实并不如此,函数依赖关系是一种较为明显的依赖关系,但是随着人们对关系模式了解越来越深刻后,发现尚有另外的一些依赖系存在,多值依赖就是其中的一种我们先举一个例子,以说明多值依赖的存在

例8-2设有一个课程关系C,它可用表8-5表示此表表示高等数学这门课的任课教师可以有3个,它的参考书可以有2本;普通物理这门课的任课教师也可以有3个,它的参考书可以有3本如用关系的形式表示,见表8-6

表8-5 关系C的示意图

课程名C

教师名T

选用参考书L

高等数学

李华民

王天华

林 静

高等数学

高等数学教程

普通物理

吴铁钢

谢晓芳

徐秋芳

物理学

普通物理

普通物理基础

表8-6 C的关系

C

T

L

高等数学

李华民

高等数学

高等数学

李华民

高等数学教程

高等数学

王天华

高等数学

高等数学

王天华

高等数学教程

高等数学

林 静

高等数学

高等数学

林 静

高等数学教程

普通物理

吴铁钢

物理学

普通物理

吴铁钢

普通物理

普通物理

吴铁钢

普通物理基础

普通物理

谢晓芳

物理学

普通物理

谢晓芳

普通物理

普通物理

谢晓芳

普通物理基础

普通物理

徐秋芳

物理学

普通物理

徐秋芳

普通物理

普通物理

徐秋芳

普通物理基础

从这个关系中可以看出两点

(1 ) 这个关系的数据冗余很大

(2 ) 这个关系的属性间有一种有别于函数依赖的依赖关系存在

我们仔细分析这种特殊依赖关系后发现它有两个特点:

(1)设如R(U)中X与Y有这种依赖关系,则当X的值一经确定后可以有一组Y值与之对应如确定C为高等数学,则有一组T的值:李华民,王天华,林静与之对应同样C与L也有类似的依赖

(2 ) 当X的值一经确定后,其所对应的一组Y值与U一X一Y无关如在C中,对应高等数学课的一组教师与此课程的参考书毫无关系,这就表示C与T有这种依赖,则T的值的确定与U一C一T= L无关

上述这种依赖显然不是函数依赖,我们称之为多值依赖(multi-valued dependency),如Y多值依赖于X,则可记为X→→Y

从上面所描述的多值依赖X→→Y的特点看,其第一个特点表示X与Y的对应关系是很随便的,X的一个值所对应的Y值的个数可不作任何强制性规定,即Y的值可以是从0到任意多个,其主要起强制性约束的是第二个条件,即X所对应的Y取值与U一X一Y无关,说得确切些,如有R(U)且如存在X→→Y,则对R(U)的任何一个关系R,如有元组s,t∈R,有s[X]=t[X](表示s与t在X的投影相等),如将它们在U一X一Y的投影(记为s[U一X一Y], t [U一X一Y],交换后所得元组称为u, v则必有u, v∈R

关于这个情况可以用表8-7表示

表8-7多值依赖示意图

X

Y

U-X-Y

s s [X]

t t [X]

s [Y]

t [Y]

s[U-X-Y]

t[U-X-Y]

s [X]

t [X]

s [Y]

t [Y]

t[U-X-Y]

s[U-X-Y]

…………

…………

…………

…………

…………

…………

对多值依赖有了充分了解后,我们可对它定义如下:

定义8-12 设R(U)中有X,Y(U,若对R(U)的任何一个关系,对X的一个确定值,存在Y的一组值与之对应,且Y的这组值又与Z=U一X一Y中的属性值不相关,此时称Y多值依赖于X,并记为X→→Y

在多值依赖中若X→→Y且Z=U一X一Y≠O,则称X→→Y为非平凡多值依赖,否则称为平凡多值依赖

多值依赖可有下面的一些性质:

(1) 在R(U)中如有X→→Y,则必有X→→U一X一Y

(2) 在R(U)中如有X→Y,则必有X→→Y

读者要注意,我们在R(U)中讨论多值依赖时并不意味着R(U)中已不需要讨论函数依赖

了,恰恰相反,我们一般不仅要在R(U)找出所有多值依赖关系来,而且还要找出所有的函数依赖关系来因此,一个完整的R(U)应该包含一个函数依赖集F'以及一个多值依赖集F',它可以用R(U, F,F')表示

前面已经讲过,具有多值依赖的关系,它们的数据冗余量特别大,如何设法减少数据冗余呢 从例8-2中的关系C中可以看出,如果将C(C, T, L)分解成两个关系C1,C2后,它们的冗余度会明显下降

C1 (C,T )

C2 (C,L )

C1,C2这两个关系可用表8-8表示

表8-8关系C分解成关系C1和C2

C

T

高等数学

高等数学

高等数学

普通物理

普通物理

普通物理

李华民

王天华

林 静

吴铁钢

谢晓芳

徐秋芳

C

L

高等数学

高等数学

普通物理

普通物理

普通物理

普通物理

高等数学

高等效学教程

物理学

普通物理

普通物理基础

(a) 关系C1 (b) 关系C2

从表8-8可以看到,数据冗余的减少是极其明显的

从多值依赖的观点看,在C1,C2中各对应一个多值依赖C→→T与C→→L,它们都是平凡多值依赖因此,在多值依赖时,减少数据冗余的方法是使关系分解成为仅有平凡多值依赖

这样,我们就可以规定一个比BCNF更高的范式,它叫第四范式,可简记为4NF这个范式的特点是,在关系模式中它必须满足:

(1) 只允许出现平凡多值依赖(不允许出现非平凡多值依赖);

(2) 函数依赖要满足BCNF

由于函数依赖是多值依赖的特例,因此统一可以用多值依赖概念定义第四范式

定义8-13 R(U)中如果X→→Y是非平凡多值依赖,则X:必含有关键字,此时称R满足第四范式,并记作R∈4NF

由这个第四范式定义可以看出,前面所定义的关系C,它虽是BCNF,但不是4NF,因为在C(C, T )中有:

C→→T

C→→L

而它的关键字是(C,T,L)

虽然C∈BCNF,但C不是关键字,所以C(4NF对它作分解后所产生的C1及C2显然因为C1(C,T)有C→→T,故不存在非平凡多值依赖,因此有C1∈4NF,同理有C2∈4NF

824 小 结

我们在规范化讨论中定义了五个范式,对这些范式的认识是逐步深入的总的说来,我们可以总结成下面几点:

(1) 规范化的目的:解决插入,修改异常以及数据冗余度高

(2) 规范化的方法:从模式中各属性间的依赖关系(函数依依赖及多值依赖)入手,尽量做到每个模式表示客观世界中的一个"事物"

(3) 规范化的实现手段:用模式分解的方法

实际上从第一范式到第四范式的过程是一个不断消除一些依赖关系中的弊病的过程图8-7给出了这个过程

读者应注意的是:规范化是一种理论,它研究如何通过规范以解决异常与冗余现象,在实际数据库设计中构作关系模式时需要考虑到这个因素但是,客观世界是复杂的,在构作模式时尚需考虑到其他的多种因素,如模式分解过多,势必在数据查询时要用到较多的联结运算,这样就会影响查询速度因此,在实际构作模式中,需要综合多种正反因素,统一权衡利弊得失,最后构做出一个较为适合实际的模式来

图8-7 规范化的过程

83 规范化所引起的一些问题

由规范化而引起了对一些问题的进一步研究,它们是:

1函数依赖理论的研究

属性间的函数依赖与多值依赖是规范化的基本依据,因此有必要对它们作进一步研究,这些研究包括:

(1)可由关系模式上的一些函数依赖通过一些公理系统(叫Armstrong公理)而获得关系模式上的所有函数依赖由此可知:一个关系模式上的所有函数依赖可由两部分组成:基础部分是直接由语义获取,其他部分可由公理系统推演而得

(2)引入了函数依赖集的等价概念与最小函数依赖集,即如果两函数依赖集能推演出相同的集来,则称它们是等价的,而等价的函数依赖集之最小者称为最小函数依赖集

这些研究为规范化提供了更多的基础信息

2模式分解的研究

规范化的实施主要依靠不断地进行模式分解在模式分解中需要研究下列问题:

(1)分解后关系中的信息是否会丢失 这叫无损联接性(lossless join)

(2)分解后关系中的函数依赖是否会丢失 这叫依赖保持性

(3)在满足无损联接性与依赖保持性下可分解到第几范式

经过研究我们可以得到下面几个事实:

若要求满足无损联接性,则模式分解一定可以达到BCNF

若要求满足依赖保持性,则模式分解一定可以达到3NF,但不一定能达到BCNF

若既要求满足无损联接性又要求满足依赖保持性,则模式分解一定可以达到

3NF,但 不一定能达到BCNF

上述三点均可通过三个算法获得实现

由于规范化所引起的这两个问题的研究的详细探讨均比较复杂,故本书中不拟详述,仅将结果陈述于上,供读者参考

习 题 8

1请给出下列术语的含义:

函数依赖;(2)关键字;(3)主属性集;(4)多值依赖;(5)2NF;(6)3NF;

(7)BCNF;(8)4NF

2在关系SC(S#, C#, G)中S#((C#正确吗 请说明其理由

3是不是规范化最佳的模式结构是最好的结构 为什么

4试证明若R(BCNF,则必有R(3NF

5试问下列关系模式最高属第几范式,并解释其原因

R (A, B, C, D),F: {B(D, AB(C};

R (A, B, C),F: {A(B, B(A, A(C};

R (A, B, C, D),F: {A(C, D(B};

R (A, B, C, D),F: {A(C, CD(B}

s

t

f

p

f

p

p

f

f

f

f

p

p

f

G

S#

C#

Sd

Ss

Sn

S#

C#

G

S#

Sd

Ss

Sn

非主属性集N

主属性集p

K1

K2

K3

K4

S#

c#

G

S#

Sn

Ss

Ss

Sd

S

C

T

C

T

T

S

非决定因素

决定

因素

R:

消除决定因素非关键字的非平凡多值依赖

1NF

消除非主属性对关键字的部分依赖

2NF

消除非主属性对关键字的传递依赖

3NF

消除主属性对关键字的部分与传递依赖

BCNF

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

4NF

考点12关系数据模型

关系模型由关系数据结构、关系 *** 作集合和关系完整性约束3部分组成。

1关系数据结构

关系模型中的数据结构非常单一。实体及实体间的联系都用关系表示,一个关系就是一张二维表,是关系模型中数据的逻辑结构。

2关系 *** 作集合

关系模型中的关系 *** 作的理论依据为关系代数和关系演算。

关系模型中常用的关系 *** 作包括:选择(select)、投影(project)、连接(join)、除(divide)、并(union)交(intersection)和差(difference)等,以及查询(query) *** 作和增(insert)、删(delete)、改(update) *** 作两大部分。查询的表达能力是其中最主要的部分。

关系数据语言可以分为如下3类:关系代数语言、关系演算语言(包括元组关系演算语言和域关系演算语言)及具有关系代数和关系演算双重特点的语言。

3关系的完整性约束

数据库的数据完整性是指数据库中数据的正确性和相容性,那是一种语义概念,包括两个方面:与现实世界中应用需求的数据的相容性和正确性数据库内数据之间的相容性和正确性。

关系模型中有3类完整性约束:实体完整性、参照完整性和用户自定义的完整性。

45关系模型的数据结构

考点13关系模型的数据结构和基本术语

(1)关系( Relation) ;关系是个元素个数为K(K,1 )的元组集合。一个关系对应一个二维表,二维表名就是关系名。

(2)属性(Attribute)和值域(Domain):二维表中的列(字段),称为属性,属性的个数称为关系的元数,列的值称为属性值.属性值的取值范围称为值域

(3)关系模式(Relation Schema):关系的描述称为关系模式。

(4)元组(Tuple):二维表中的行(记录的值)称为一个元组。关系模式和元组的集合通称为关系。

(5)候选码(Candidate Key)或候选键:如果在一个关系中,存在多个属性(或属性集合)都能用来标识该关系的元组,这些属性(或属性集合)都称为该关系的候选码或候选键。而包含在任何一个候选码中的属性称为主属性或码属性,相反,不包含的为非主属性或非码属性。关系模式的所有数据组是这个关系模式的候选码,称为全码。

(6)主码(Primary Key)或主键:在一个关系的若十个候选码中指定一个用来标识该关系的元组,这个的码称为该关系的主码或主键。

(7)外码(Foreign Key)或外键:当关系中的某个属性(或属性组)不是该关系的主码或只是主码的一部分,但却是另一个关系的主码时,称该属性(或属性组)为这个关系的外码。

(8)参照关系(Referencing Relation)与被参照关系( Referenced Relation):它们是指与外码相关联的两个关系。以外码作为主码的关系称为参照关系;外码所在的关系称为被参照关系或目标关系。

(9)分量(Component):元组中的一个属性值。

(10)主属性(Primary Attribute)和非主属性(Nonprimary Attribute):关系中包含在任何一个候选码中的属性称为主属性或码属性,不包含在任何一个候选码中的属性称为非主属性或非码属性。

考点14关系的形式定义和关系数据库对关系的限定

1关系的形式定义

关系从数学的观点来定义有以下两种解释。

(1)集合论观点:即前面所述,关系是一个元素个数为K(K,1)的元组集合。

(2)值域的观点:关系是属性值域笛卡儿积的一个子集。

2关系数据犀对关系的限定

当关系作为关系数据模型的数据结构时,关系数据库对关系有如下的限制。

(1)列是同质的.即每一列中的分量是同一类型的数据,来自同一个域。

(2)不同的列可以出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。

(3)列的顺序无关紧要,即列的次序可以任意交换。

(4)任意两个元组不能完全相同。

(5)行的顺序无关紧要,即行的次序可以任意交换。

(6)每一个属性是不可分解的这是关系数据库对关系的最基本的一条限定。分量必须取原子值,即每一个分量都必须是不可拆分的数据项。

46关系模型的完整性约束

考点15数据完整性规则的分类

关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有3类完整性约束:实体完整性、参照完整性和用户自定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为两个不变性、应该由关系系统自动支持。

1实体完整性规则

实体完整性规则:若属性“是基本关系“的主属性,则属性A不能取空。实体完整性关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。说明实体完整性规则应包括如下几个方面:

(1)实体完整性规则是针对基本关系而言的。一个关系(基本表)通常对应现实世界的一个实体集。

(2)现实世界中的实体是可区分的,即它们具有某种性标识。

(3)相应地,关系模型中以主码作为标识。

(4)主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“不确定”的值。

2参照完整性规则

若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。

3用户有定义的完整性

用户定义的完整性通常是定义对关系中除外码与主码属性之外的其他属性取值的约束,即对其他属性值域的约束,也称为域完整性规则,包括数据类型、精度、取值范围、是否允许空值等。

47关系代数

考点16传统集合运算

传统的集合运算包括并、交、差和广义笛卡儿积4种运算。

1并(union)

设关系R和关系S具有相同的目n(即都有n个属性),且相应的属性取自同一个域,则关系R与S的并是由属于R或属于S的元组组成的,结果仍为n目关系,记做:

RUS={t/t∈R∨t∈S},t是元组变量。

2差(difference)

设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差是由属于R而不属于S的所有元组组成的,结果仍为n目关系,记做:

R-S={t/t∈R∧t¢S},t是元组变量

3交(intersection)

设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交是由既属于R而不属于S的所有元组组成的,结果仍为n目关系,记做:

R∩S={t|t∈R∧t∈S}t ER八:ES},t是元组变量。

显然R自s=R一(R一s)。

4广义笛卡儿积(Extended Cartesian Product)

设关系R和s的元数分别是厂和,,定义R和s的笛卡儿积是一个(r+s)元元组的集合,每一个元组的前r个分量来自R的一个元组,后s个分量来自S的一个元组。若R有m个元组,S有n个元组,则关系R 和S的广义笛卡儿积有m ×n个元组,记做:

R×S={t|t=<t¬¬¬¬r ,ts>∧t¬¬¬¬r ∈ts∈S

考点17专门的关系运算

专门的关系运算包括:对单个关系进行垂直分解(投影 *** 作)或水平分解(选择 *** 作)和对多个关系进行结合(连接 *** 作)等。

1选择(selection)

选择又称为限制,是在关系R中选择满足给定条件的各元组,记做:

(R)={t|t∈R∧F(t=′真′)},其中F表示选择条件,是一个逻辑表达式。

选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算。

2投影(projection)

关系R上的投影是从R中选择出若干属性列组成新的关系,记做:

二1(R、={t[A〕I t ER{,A为R的属性列。

投影 *** 作实际上是从关系中选取某些列,即从列的角度进行的运算。

3连接(join )

连接是从两个关联的笛卡儿积中选取属性间满足一定条件的元组。

连接运算中有两种最为重要也是常用的连接,一种是等值连接( equi - join),一种是自然连接(naturaljoin)自然连接是构造新关系的有效方法。一般,自然连接使用在两个关系有公共属性的情况中。

4除(di%-ision)

给定关系R(X,州和别Y, Z),其中X,Y, Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集R与S的除运算得到一个新的关系尸(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X分量值的对象Yx包含S在Y上投影的集合。记做:

R÷S=t,[X]t,ER八二,(S) C-玖}

除 *** 作是同时从行和列的角度进行运算。

48 SQL概述:

考点18结构化查询语言SQL

SQL (Structured Query Language)称为结构化查询语言,是于1974年由Boyce和Chamberlin提出的,1975年IBM公司研制的关系数据库管理系统的原型系统System R实现了SQL语言。SQL是一个通用的、功能极强的关系数据库语言。我国制定了SQL的国家标准为GB12911, SQL已经成为关系数据库领域中的一种主流语言。

考点19 SQL的特点一

SQL语言集数据查询、数据 *** 纵、数据定义和数据控制功能于一体,主要特点包括以下几个方面:

(1)综合统一。

(2)高度非过程化。

(3)面向集合的 *** 作方式。

(4)以同一种语法结构提供两种使用方式。

(5)语言简洁,易学易用。

考点20 SQL数据库体系结构

SQL语言支持关系数据库三级模式结构:其中外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件:

基本表是本身独立存在的表,在SQL中一个关系就是一个基本表。一个基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中存储文件的逻辑结构组成了关系数据库的内模式。存储文件的物理结构是任意的,对用户是透明的。

视图是从一个或几个基本表导出的表二视图是一个虚表视图在概念上与基本表等同,用户可以在视上再定义视图。

49 SQL的数据定义

考点21基本表

1定义基本表

SQL语言使用CREATE TABLE语句定义基本表,其格式如下:

CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束〕

[,<列名><数据类型>[列级完整性约束]…=

〔,<表级完整性约束>〕);

如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级,也可以定义在表级。

2修改基本表

SQL语言用ALTER TABLE语句修改基本表,其格式为:

ALTER TABLE<表名>

「ADD<新列名><数据类型>[完整性约束〕〕

[DROP<完整性约束名>〕

[MODIFY<列名><数据类型>」;

ADD子句用于增加新列和新的完整性约束条件。DROP子句用于删除指定的完整性约束条件。MOD-IFY子句用于修改原有的列定义,包括修改列名和数据类型。

3删除基本表

当某个基本表不再需要时,可以用DROP TABLE语句进行删除,其格式为:

DROP TABLE<表名>

基本表一旦被删除,表中的数据、此表上建立的索引和视图都将自动被删除。因此执行删除基本表的 *** 作时一定要格外小心。

一、数据数据是数据库中存储的基本对象。1 定义 :描述事物的符号记录。2 种类 :文字、图像、图形、声音。3 特点 :数据与其语义是不可分的。二、数据库1 定义 :长期存储在计算机内、有组织的、可共享的大量数据集合。2 特征 : 1)数据按一定的数据模型组织、描述和存储 2)可为各种用户共享 3)冗余度较小 4)数据独立性较高 5)易扩展三、数据库管理系统(DBMS) 1 定义:数据库管理系统(Database Management System 即DBMS)是位于用户与 *** 作系统之间的数据管理软件。 2 用途 :科学地组织和存储数据、高效地获取和维护数据 3 功能 :1)数据库定义功能 2)数据 *** 纵功能 3)数据库的运行管理 4)数据库的建立和维护功能(实用程序)四、数据库系统1 定义:数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。2 特点:数据结构化;数据的共享性高、冗余度低、易扩充;数据独立性高;数据由DBMS统一管理和控制。五、数据库管理技术1 定义:对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题2 发展过程:1)人工管理阶段(40年代中--50年代中)2)文件系统阶段(50年代末--60年代中)3)数据库系统阶段(60年代末--现在)3 发展动力:1)应用需求的推动2)计算机硬件的发展3)计算机软件的发展六、 数据模型 1 定义:数据模型(Data Model)也是一种模型,它是现实世界数据特征的抽象。 2 作用:在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟,现有的数据库系统均是基于某种数据模型的。 3 三要素: 1)数据结构 2)数据 *** 作 3)完整性约束 4 常用的数据模型: 1)层次模型 2)网状模型 3)关系模型:ORACLE、SQL、SYBASE、INFORMIX、DB/2、COBASE、PBASE、EasyBase、DM/2、OpenBase 4)面向对象模型 5 层次: 1)概念模型:也称信息模型,它是按用户的观点来对数据和信息建模。 2)数据模型:主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模七、关系模型 1 基本概念: 1)关系:一个关系对应通常说的一张表。2)元组:表中的一行即为一个元组。3)属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名。 2 关系模型的优缺点: 优:1)建立在严格的数学概念的基础上2)概念单一,数据结构简单、清晰,用户易懂易用3)关系模型的存取路径对用户透明 缺:1)存取路径对用户透明导致查询效率往往不如非关系数据模型2)为提高性能,必须对用户的查询请求进行优化增加了开发数据库管理系统的难度 3 关系模型的组成:关系数据结构、关系 *** 作集合、关系完整性约束 八、关系数据理论 1 基本概念关系:描述实体、属性、实体间的联系。从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。关系模式:用来定义关系。关系数据库:基于关系模型的数据库,利用关系来描述现实世界。从形式 上看,它由一组关系组成。关系数据库的模式:定义这组关系的关系模式的全体。2 范式: 范式是符合某一种级别的关系模式的集合。1)1NF的定义 若关系模式中的所有属性值都是不可再分的原子值,则称该种关系模式为第一范式。2)2NF的定义 若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R ∈2NF。 3)3NF的定义 若一个数据表已满足2NF,且该数据表中的任何两个非主键字段的数值之间不存在函数依赖关系,则该数据表满足第三范式。

x = [1,6,9,13,2,8,7,4,11,5,3,10,12];

numGroups = 4; % 组的数目

xMax = max(x);

xMin = min(x);

boundries = xMin + (0:numGroups) (xMax - xMin) / (numGroups - 1); % 组的边界

xGroup = zeros(size(x)); % 初始化

for group = 1:numGroups

loc = (x >= boundries(group)) & (x <= boundries(group + 1)); %在这个组的书的坐标

xGroup(loc) = group;

end

结果存在xGroup里

补充:

如果要按照你的那样输出,可以改成这样:

x = [1,6,9,13,2,8,7,4,11,5,3,10,12];

GroupName = ['A','B','C','D'];

numGroups = length(GroupName); % 组的数目

xMax = max(x);

xMin = min(x);

boundries = xMin + (0:numGroups) (xMax - xMin) / (numGroups - 1); % 组的边界

xGroup = zeros(size(x)); % 初始化

for group = 1:numGroups

loc = (x >= boundries(group)) & (x <= boundries(group + 1)); %在这个组的书的坐标

xGroup(loc) = group;

end

xGroupName = GroupName(xGroup);

for ii = 1:length(x)

fprintf('%d : %s\n', x(ii), xGroupName(ii));

end

第五章 数据库设计

67 什么是软件生存期:

软件生存期是软件工程的一个重要概念。是指从软件的规划、研制、实现、投入运行后的维护,直到它被新的软件所取代而停止使用的整个期间。通常分为六个阶段:

(1) 规划阶段

(2) 需求分析阶段

(3) 设计阶段

(4) 程序编制阶段

(5) 调试阶段

(6) 运行维护阶段

68 数据库系统的生存期:

一般分为七个阶段,即:

(1) 规划阶段

(2) 需求分析阶段 1)信息要求 2)处理要求 3)安全性和完整性要求

(3) 概念设计阶段

(4) 逻辑设计阶段 两部分:数据库逻辑设计和应用程序设计

(5) 物理设计阶段 两部分:物理数据库结构的选择和逻辑设计中程序模块说明的精确化

(6) 实现阶段

(7) 运行维护阶段

69 数据库设计过程的输入有哪些内容:

(1) 总体信息需求

(2) 处理需求

(3) DBMS的特征

(4) 硬件和OS特征

70 数据库设计过程的输出有哪两部分:

一部分是完整的数据库结构,其中包括逻辑结构与物理结构。

另一部分是基于数据库结构和处理要求的应用程序的设计原则。

71 常见的数据库设计方法有哪几种:

(1) 视图模式化及视图汇总设计方法

(2) 关系模式的设计方法

(3) 新奥尔良设计方法

(4) 基于E-R模型的数据库设计方法

(5) 基于3NF的设计方法

(6) 基于抽象语法规范的设计方法

(7) 计算机辅助数据库设计方法

72 实用的数据库设计方法至少应包括哪些内容:

(1) 设计过程

(2) 设计技术

(3) 评价准则

(4) 信息需求

(5) 描述机制

73 一种设计方法学需要有三种基本类型的描述机制:

(1) 实现设计过程的最终结果将用DBMS的DDL表示。

(2) 信息输入的描述。

(3) 在信息输入和DDL描述之间的其它中间步骤的结果的描述。

74 数据库设计中的规划阶段的主要任务:

是进行建立数据库的必要性及可行性分析,确定数据库系统在组织中和信息系统中的地位,以及各个数据库之间的联系。

75 需求分析阶段的任务:

需求分析阶段应该对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能接受的文档。

76 需求分析的步骤:

大致可分为三步来完成,即需求信息的收集、分析整理和评审。

77 数据字典由哪几部分组成:

(1) 数据项

(2) 数据结构

(3) 数据流

(4) 数据存储

(5) 加工过程

78 数据抽象:

抽象是对实际的人、物、事或概念的人为处理,它抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。

抽象有两种形式,系统状态抽象(抽象对象)和系统转换抽象(抽象运算)。

79 对象的两种形式:

(1) 聚集:的数学意义就是笛卡尔积的概念。通过聚集,形成对象之间的一个联系对象。

(2) 概括:是从一类其它对象形成一个对象。对于一类对象{O1,O2,……,On}可以概括成对象O,那么Oi称为O的其中一个。

80 依赖联系:

在现实世界中,常常有某些实体对于另一些实体具有很强的依赖关系,即一个实体的存在必须以另一个实体的存在为前提。我们通常把前者称为弱实体。在ER图中,用双线框表示弱实体,用指向弱实体的箭头表明依赖联系。

81 子类、超类:

某个实体类型中所有实体同时也是另一实体类型中的实体。此时,我们称前一实体类型是后一实体类型的子类,后一实体类型称为超类。在ER图中,带有子类的实体类型(超类)以两端双线的矩形框表示,并用加圈的弧线与其子类相连,子类本身仍用普通矩形框表示。

子类具有一个很重要的性质:继承性。它可继承超类上定义的全部属性,其本身还可包含其它另外的属性。

82 ER模型的 *** 作:

(1) 实体类型的分裂:垂直分割、水平分割

(2) 实体类型合并:分裂的逆过程。

(3) 联系类型的分裂

(4) 联系类型的合并

83 采用ER方法的数据库概念设计分成哪三步:

(1) 设计局部ER模式:1)确定局部结构范围 2)实体定义 3)联系定义 4)属性分配

(2) 设计全局ER模式:1)确定公共实体类型 2)局部ER模式的合并 3)消除冲突。

(3) 全局ER模式的优化:1)实体类型的合并 2)冗余属性的消除 3)冗余联系的消除

84 冲突分为哪三种:

属性冲突,包括属性域的冲突、属性取值单位冲突。

结构冲突,包括:

(1) 同一对象在不同应用中的不同抽象。

(2) 同一实体在不同局部ER图中属性组成不同。

(3) 实体之间的联系在不同的局部ER图中呈现不同的类型。

命名冲突,包括属性名,实体名,联系名之间的冲突:同名异义、异名同义

85 ER模型向关系模型的转换:

ER模型中的主要成分是实体类型和联系类型。

对实体类型,将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。

对联系类型,就视1:1、1:N、M:N三种不同的情况做不同处理。

(1) 对1:1可在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。

(2) 对1:N,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。

(3) 对M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键盘加上联系类型的属性,而键为两端实体键的组合。

86 什么是物理设计:

对一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,称为数据库的物理设计。物理结构,主要指数据库在物理设备上的存储结构和存取方法。

87 物理设计的步骤:

物理设计可分五步完成,前三步涉及到物理数据库结构的设计,后两步涉及约束和具体的程序设计。

(1) 存储记录结构设计

(2) 确定数据存储安排

(3) 访问方法的设计

(4) 完整性和安全性

(5) 程序设计

88 在数据库系统生存期中,生存期的总开销可分为几项:

规划开销、设计开销、实现与测试开销、 *** 作开销、维护开销。

89 用户使用和计算机资源的 *** 作开销是:

(1) 查询响应时间

(2) 更新事务的开销

(3) 报告生成的开销

(4) 改组频率和开销

(5) 主存储空间

(6) 辅助存储空间

90 数据库实现阶段的主要工作:

(1) 建立实际数据库结构

(2) 试运行

(3) 装入数据

91 数据库的重新组织设计:

对数据库的概念模式、逻辑结构或物理结构的改变称为重新组织,其中改变概念模式或逻辑结构又称为重新构造,改变物理结构则称为重新格式化。

92 运行维护阶段的主要工作:

(1) 维护数据库的安全性和完整性控制及系统的转储和恢复。

(2) 性能的监督、分析与改进。

(3) 增加新功能。

(4) 发现错误,修改错误。

以上就是关于数据库的概念及用途全部的内容,包括:数据库的概念及用途、在线.等..关系数据库规范化理论、全国计算机三级数据库考点分析之数据库系统基本原理[2]等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10149832.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存