版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1数据库技术的发展
数据管理的发展经历了文件管理和数据库管理两个阶段。
设实现"学生基本信息管理"的应用系统为A1,实现"学生选课信息
管理"的应用系统为A2。由于学生选课管理中要用到F1文件中的一些数
据,为减少冗余,假设这个系统使用F1文件中的一些数据。如图1-1所示
为基于文件管理的应用系统结构。
应用系统A1应用系统A2
学生基本信息学生选课信息
管理系统管理系统
图1-1基于文件管理的应用系统结构
假设Fl、F2和F3文件分别包含如下信息:
F1文件:学号、姓名、性别、出生日期、联系电话、所在系、专业、
班号。
F2文件:课程号、课程名、开课学期、学分、课程性质。
F3文件:学号、姓名、所在系、专业、课程号、课程名、修课类型、
修课学期、考试成绩。
我们将文件中所包含的每一个子项称为文件结构中的一个"字段〃或
"列〃,将每一行数据称为一个〃记录〃。
"学生选课信息管理〃的处理过程大致为:若有学生选课,则先查F1
文件,判断有无此学生;若此学生在F1文件中,则再访问F2文件,判断
其所选的课程是否存在;若一切均符合规则,就将学生选课信息写入F3文
件中。
文件管理数据有如下缺点。
1.编写应用程序不方便
2.数据冗余不可避免
3.应用程序依赖性
4.不支持对文件的并发访问
5.数据间联系弱
6.难以按不同用户的要求表示数据
7.无安全控制功能
如将数据库管理与文件管理在数据的局限性方面进行比较,数据库管理
具有以下优点。
1.相互关联的数据集合
2.较少的数据冗余
3.程序与数据相互独立
4.保证数据的安全可靠
5.最大限度地保证数据的正确性
6.数据可以共享并能保证数据的一致性
1.2数据与数据模型
数据是我们要处理的信息,数据模型是数据的组织方式。
描述事物的符号记录称为数据,而将一行数据称为一条记录。数据是信
息存在的一种形式,只有通过解释或处理才能成为有用的信息。
从现实系统的使用角度来说,数据的特征可分为静态特征和动态特征:
1.数据的静态特征包括数据的基本结构、数据间的联系和对数据取值
范围的约束。
2.数据的动态特征是指对数据可以进行的操作以及操作规则,对数据
库数据的操作主要有查询数据和更改数据,更改数据一般又包括对数据的
插入、删除和更新。
数据的动态特征(数据操作)与数据的静态特征(数据结构、完整性约
束)统称为数据模型三要素。
模型是对事物、对象、过程等客观系统中感兴趣的内容的模拟和抽象表
达,是理解系统的思维工具。数据模型(datamodel)也是一种模型,它
是对现实世界数据特征的抽象。通俗地讲,数据模型就是对现实世界数据
的模拟。
数据模型一般应满足三个要求:
1.数据模型要能够比较真实地模拟现实世界。
2.数据模型要容易被人们理解。
3.数据模型要能够很方便地在计算机上实现。
数据模型实际上是模型化数据和信息的工具。根据模型应用目的的不
同,可以将模型分为两大类,它们分别属于两个不同的层次。
1.概念层数据模型,也称为概念数据模型或概念模型。
2.组织层数据模型,也称为组织模型,它从数据的组织方式来描述数
据。
1.3概念层数据模型
概念层数据模型实际上是现实世界到机器世界的一个中间层次。
概念层数据模型是指在抽象现实系统中有应用价值的元素及其关联关
系,反映现实系统中有应用价值的信息结构,并且不依赖于数据的组织层
结构。
常用的概念层数据模型有实体一联系(entity-relationship,E-R)模
型、语义对象模型。
E-R方法使用的工具称为E-R图,它所描述的现实世界的信息结构称为
企业模式(enterpriseschema),也把这种描述结果称为E-R模型。
1.实体
实体是具有公共性质且可以相互区分的现实世界对象的集合。实体是具
体的,如职工、学生、教师、课程。
2.属性
每个实体都具有一定的特征或性质,属性就是描述实体或者联系的性质
或特征的数据项,一个实体中的所有实例都具有相同的性质,在E-R模型
中,这些性质或特征就是属性。
3.联系
实体内部的联系通常是指一个实体内属性之间的联系,实体之间的联系
通常是指属于不同实体的属性之间的联系。
两个实体之间的联系通常分为以下三类:
(1)一对一联系(1:1)。
(2)一对多联系
(3)多对多联系(m:n).
图>5不同类型的联系
实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联
系的特例。
E-R模型不仅能描述两个实体之间的联系,而且还能描述两个以上实体
之间的联系。
1.4组织层数据模型
组织层数据模型是从数据组织形式的角度来描述信息,目前,在数据库
技术的发展过程中用到的组织层数据模型主要有:层次模型(hierarchical
model)、网状模型(networkmodel)、关系模型(relationalmodel)、
面向对象模型(objectorientedmodel)和对象关系模型(object
relationalmodel)。
层次模型用树形结构表示实体和实体之间的联系。现实世界中许多实体
之间的联系本身就呈现出一种自然的层次关系,如行政机构、家族关系等。
构成层次模型的树由节点和连线组成,节点表示实体,节点中的项表示
实体的属性,连线表示相连的两个实体间的联系,这种是一对多的联系。
在现实世界中事物之间更多的是非层次的联系,用层次模型表达现实世
界中存在的联系有很多限制。如果去掉层次模型中的两点限制,即允许一
个以上的节点无父节点,并且每个节点可以有多个父节点,便构成了网状
模型。
用图形结构表示实体和实体之间联系的数据模型称为网状模型。
关系模型是目前最重要的一种数据模型,关系数据库就是采用关系模型
作为数据的组织方式。关系模型源于数学,它把数据看作二维表中的元素,
而这个二维表在关系数据库中就称为关系。用关系(表格数据)表示实体
和实体之间的联系的模型就称为关系模型。
如表1・1和表1-2所示分别为“学生”关系模型的数据结构和"选课”
关系模型的数据结构,其中"学生"和"选课”间的联系是通过“学号"
列实现的。
S1-1"学牛•关系模型的数拈结构
学号姓名年龄性别所在系
202111101李勇21男计算机系
202111102刘晨20男计算机系
202111103王敏20女计算机系
202121101张立20男信息管理系
202121102吴宾19女信息管理系
___________________
a1-2“选课”关系模型的数据结柩
学号课程号成绩
202111101C0019(
202111101C0028C
202111101C00384
202111101C00562
202111102C00192
202111102C0029c
202111102C00484
202121102C0017(
202121102C004&
202121102C00573
202121102C007?nj]
1.5数据库的三级模式结构
数据库系统内部的结构划分为外模式、模式和内模式三个抽象结构,同
时在三个模式之间提供二级映像功能。这些结构的划分反映了看待数据库
的三个角度。图1-口说明了这三种模式以及模式之间的映像关系。
用户A:
用户级外模式1
面向每类用户
概念级
模式
面向全体用户
----------------干----------------模式/内模式映像
物理皴
面向存储
图1-11数据库系统的三级模式结构
广义地讲:
•外模式:是最接近用户的,也就是用户所看到的数据视图。
•模式:是介于内模式和外模式之间的中间层次。
•内模式:是最接近物理存储的,也就是数据的物理存储方式。
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结
构。
模式/内模式映像定义了数据库的逻辑结构与物理存储之间的对应关
系,该映像关系通常被保存在数据库的系统表(由数据库管理系统自幼创
建和维护,用于存放维护系统正常运行的信息)中。
在数据库的三级模式结构中,模式(逻辑模式)是数据库的中心与关键,
它独立于数据库的其他模式。设计数据库时也是首先设计数据库的逻辑模
式。
数据库的内模式依赖于数据库的全局逻辑结构,但独立于数据库的用户
视图,也就是外模式,也独立于具体的存储结构。内模式将全局逻辑结构
中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到
较好的时间与空间效率。
数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,并独立
于存储模式和存储设备。当应用需求发生较大变化,相应的外模式不能满
足用户要求时,就需要调整外模式定义,以满足新的要求。
1.6数据库系统
从狭义上讲,数据库系统主要指数据库和数据库管理系统。从广义上讲,
数据库系统由数据库、数据库管理系统(及其开发工具)、应用程序和用
户组成。其中,用户可分为数据库管理员、开发人员和最终用户三类。数
据库系统结构如图1-12所示。
图1・12数据库系统结构
数据库管理系统是对数据库进行管理的系统软件,其主要作用是使数据
库成为方便用户使用的资源,易于为各类用户共享,并提供数据的安全性、
完整性和可靠性保证。数据库的所有操作,数据的组织、存储和访问都必
须借助DBMS提供的工具或接口完成。
DBMS的功能概括起来如图1-13所示。
|I~操~作I|
图1-13DBMS的功能
(1)数据定义功能。
(2)数据操作功能。
(3)数据库运行管理和控制功能
(4)数据库的建立和维护功能。
2.1关系模型
数据模型由数据结构、数据操作和数据完整性约束三部分组成,这三部
分也称为关系数据模型三要素。下面就从这三个方面介绍关系数据模型。
关系模型源于数学,它使用二维表来组织数据,而这个二维表在关系数
据库中就称为关系。关系数据库可以说是表或者关系的集合。
表2・1和表2-2分别为"学生〃关系和"选课〃关系示例。
表2-1“学生”关系
学号姓名年龄性别所在系
202111101李勇21男计悌
202111102刘晨20男计1系
202111103王敏20女计1系
202121101张立20里信息管理系
202121102吴宾19女信g管理系
蓑2-2"选课"关系
学号课程号成绩
202111101C00193
202111101C00283
202111101C00384
202111101C00562
202111102C00192
202111102C00293
202111102C00484
202121102C00173
202121102C00485
202121102C00573
202121102C007NULL
—
*■———一一一一.一一一一一一一・一一一一…一一一一一.一一一一一一.................................................一一一.一一一一一一一一•一一一一一一一一.一一一.
关系模型给出了关系操作的能力。关系模型的操作包括:
1.传统的关系运算:并(union)、交(intersection)、差(difference)、
笛卡儿乘积(Cartesianproduct);
2.专门的关系运算:选择(select)、投影(project)、连接(join)
3.有关的数据操作:查询(query)、插入(insert)、删除(delete)
和更改(update)。
关系模型的数据操作主要包括4种:查询、插入、删除和更改。
在数据库中数据的完整性是指保证数据正确性的特征。数据完整性由一
组完整性规则定义,在关系模型中一般将数据完整性分为三类,即实体完
整性、参照完整性和用户定义的完整性。
2.2关系模型的基本术语
关系模型源于数学,它有自己严格的定义和一些固有的术语。
通俗地讲,关系(relation)就是二维表,二维表的名字就是关系的名
字,表2-1中的关系名就是“学生”。
二维表中的每一列称为一个属性(或字段),每个属性(attribute)都
有一个名字,称为属性名。二维表中对应某一列的值称为属性值;二维表
中列的个数称为关系的元数。如果一个二维表有n歹!J,则称其为n元关系。
如表2-1所示的"学生〃关系有学号、姓名、年龄、性别、所在系5个属
性,是一个五元关系。
二维表中属性的取值范围称为值域(domain)。例如,在表2-1中,
"年龄"列的取值为大于0的整数,"性别"列的取值为"男"和"女"
两个值,这些都是列的值域。
二维表中的一行数据称为一个元组(tuple),即记录值,表2-1"学
生〃关系中的元组有:
(202111101,李勇,21,男,计算机系)
(202111102,刘晨,20,男,计算机系)
(202111103,王敏,20,女,计算机系)
(202121101,张立,20,男,信息管埋系)
(202121102,吴宾,19,女,信息管理系)
元组中的每一个属性值称为元组的一个分量(component),n元关
系的每个元组有n个分量。例如,对于元组(202111101,李勇,21,男,
计算机系)有5个分量,对应〃学号〃属性的分量是"202111101"、对
应"姓名〃属性的分量是"李勇"、对应〃年龄"属性的分量是"21〃、
对应"性别"属性的分量是"男",对应"所在系”属性的分量是"计算
机系"。
二维表的结构称为关系模式(relationschema),或者说关系模式就
是二维表的表框架或表头结构。设有关系名为R,属性分别为Ai,A2,…,
An,则关系模式可以表示为:
R(A1,A2,…,An)
每个Ai(i=1,…,n)还包括该属性到值域的映像,即属性的取值范
围。例如,如表2-1所示关系的关系模式为:
学生(学号,姓名,年龄,性别,所在系)
如果将关系模式埋解为数据类型,则关系就是该数据类型的一个具体
值。
如果一个属性或属性集的值能够唯一标识一个关系的元组而又不包含
多余的属性,则称该属性或属性集为候选键(candidatekey)。候选键又
称为候选关键字或候选码。在一个关系上可以有多个候选键。例如,对于
"学生"关系,假设增加了〃身份证号"属性,则"身份证号”也可以作
为“学生”关系的候选键。
主键(primarykey)也称为主码或主关键字,是表中的属性或属性组,
用于确定唯一元组。主键可以由一个属性组成,也可以由多个属性共同组
成。例如,表2-1的"学生"关系中,"学号"是主键,因为"学号〃的
一个取值可以确定唯一学生。而表2-2的〃选课"关系中,主键就由〃学
号”和〃课程号〃共同组成。因为一个学生可以选修多门课程,而且一门
课程也可以有多个学生选修,因此,只有将〃学号”和〃课程号”组合起
来才能共同确定一行记录。我们称由多个属性共同组成的主键为复合主键。
当某个关系的主健是由多个属性共同组成时,需要用括号将这些属性括起
来,表示共同作为主犍。如表2-2所示的“选课"关系的主键是(学号,
课程号)。
主键实际是从候选键中指定的,当一个关系中仅有一个候选键时,则主
键同候选键;当一个关系中有多个候选键时,可以指定某个候选键作为主
键。
包含在任一候选键中的属性称为主属性(primaryattribute)。不包含
在任一候选键中的属性称为非主属性(nonprimaryattribute)。
关系中的术语很多可以与现实生活中的表格所使用的术语相对应,如表
2-3所示。
表2-3术语对比
关系术语一般的表格术语
关系名表名
关系模式表头(表所含列的描述)
关系二维表
元组记录或行
属性列
分里一条记录中某个列的值
2.3完整性约束
关系模型中的数据完整性规则是对关系的某种约束条件,它的完整性约
束主要包括三大类:实体完整性、参照完整性和用户定义的完整性。
实体完整性是保证关系中的每个元组都是可识别的和唯一的。实体完整
性是指关系数据库中所有的表都必须有主键,而且表中不允许存在如下记
录:
1.无主键值的记录。
2.主键值相同的记录。
参照完整性也称为引用完整性。参照完整性就是用于描述实体之间的联
系的。
参照完整性用于描述多个实体或关系之间的关联关系。
“外键〃
定义:设F是关系R的一个或一组属性,如果F与关系S的主键K相
对应,则称F是关系R的外键(foreignKey),并称关系R为参照关系
(referencingrelation),关系S为被参照关系(referencedrelation)
或目的关系(targetrelation)。关系R和关系S不一定是不同的关系。
外键并不要求与被参照的主键同名。但在实际应用中,为了便于识别,
当外键与被参照的主腿属于不同的关系时,通常是给它们取相同的名字。
参照完整性规则就是定义外键与被参照的主键之间的引用规则。
对于外键,一般应符合如下要求:
1.或者值为空。
2.或者等于其所参照的关系中的某个元组的主键值。
主键要求必须是非空且不重复的,但外键无此要求。外键可以有重复值。
用户定义的完整性也称为域完整性或语义完整性。用户定义的完整性就
是针对某一具体应用领域定义的数据约束条件。用户定义的完整性主要就
是指明关系中属性的取值范围,也就是属性的域,这样可以限制关系中属
性的取值类型及取值范围,防止属性的值与应用语义矛盾。
2.4关系代数
关系代数是一种纯理论语言,它定义了一些操作,运用这些操作可以从
一个或多个关系中得到另一个关系,而不改变源关系。因此,关系代数的
操作数和操作结果都是关系,而且一个操作的输出可以是另一个操作的输
入。关系代数同算术运算一样,可以出现一个套一个的表达式。这种性质
称为闭包(closure)。关系在关系代数下是封闭的,正如数字在算术操作
下是封闭的一样。
关系代数的运算对象是关系,运算结果也是关系。与一般的运算一样,
运算对象、运算符和运算结果是关系代数的三大要素。
关系代数的运算可分为以下两大类:
1.传统的集合运算。这类运算完全把关系看成是元组的集合。传统的
集合运算包括集合的笛卡儿积、并、交和差运算。
2.专门的关系运算。这类运算除把关系看作元组的集合外,还通过运
算表达了查询的要求。专门的关系运算主要包括选择、投影和连接。
关系代数中的运算符可分为4类:传统的集合运算符、专门的关系运算
符、比较运算符和逻辑运算符。表2-7列出了主要的关系运算符,其中比
较运算符和逻辑运算符是配合专门的关系运算符来构造表达式的。
^2-7主要关系运苴符
点算付含义
jj
U
n交
传统的集合运算
—差
X笛卡儿积
O选择
专门的关系运算n投影
X连接
>大于
<小于
=等于
比较运算符
丰不等于
<小于或者等于
>大于或者等于
n*
送箱运算付A与
V或
传统的集合运算是二目运算,设关系R和S均是n元关系,且相应的
属性值取自同一个值域,则可以定义三种运算:并运算(U)、交运算(n)
和差运算(-)。笛卡儿积并不要求参与运算的两个关系的对应属性取自相
同的域。
以图2-4(a)和2-4(b)所示的两个关系为例,说明这三种传统的集
合运算。
顾客号姓名性别年龄顾客号姓名性别年龄
SOI张宏男45S02李丽女34
S02李丽女34S04钱景男50
S03王敏女28S06王平女24
(a)顾客表A(b)顾客表B
图2-4描述顾客信息的两个关系
设关系R与关系S均是n目关系,关系R与关系S的井记为
RUS={t|tGRvtGS}
其结果仍是n目关系,由属于R或属于S的元组组成,但不包含重复
的元组。其示意图如图2-5(a)所示。
图2-5并、交、差运算示意图
图2-6(a)显示了图2-4(a)和图2-4(b)两个关系的并运算结果。
顾客号姓名性别年龄顾客号姓名性别年龄
SOI张宏男45S02李丽女34
S02李丽女34
(b)顾衣表AC顾客表B
S03王敏女28
顾客号性别
S04钱景男50姓名年龄
S06王平女24S01张宏男45____
S03王敏女28
(a)顾客表AU顾客表B
(c)顾客表A-顾在表B
图2-6集合的并、交、差运算示意图
设关系R与关系S均是n目关系,则关系R与关系S的交记为
Rns={t|teRAtes}
其结果仍是n目关系,由属于R并且也属于S的元组组成,其示意图
如图2-5(b)所示。
图2-6(b)显示了图2-4(a)和2-4(b)两个关系的交运算结果。
设关系R与关系S均是n目关系,则关系R与关系S的差记为
R-S={t|tGRAS}
其结果仍是n目关系,由属于R并且不属于S的元组组成,其示意图
如图2-5©所示。
图2-6(c)显示了图2-4(a)和2-4(b)两个关系的差运算结果。
笛卡儿积不要求参加运算的两个关系具有相同的目。
m目的关系R和n目的关系S的笛卡儿积是一个(m+n)目的元组的
集合。元组的前m列是关系R的一个元组,后n列是关系S的一个元组。
若R有Ki个元组,S有G个元组,则关系R和关系S的笛卡儿积有Kix
G个元组,记作
A
RxS={trts|trGRAtseS}
tr7s表示由两个元组匕和ts前后有序连接而成的一个元组。
任取元组tr和ts,当且仅当匕属于R且ts属于S时,匕和ts的有序连
接即为RxS的一个元组。
实际操作时,可从R的第一个元组开始,依次与S的每一个元组组合,
然后,对R的下一个元组进行同样的操作,直至R的最后一个元组也进行
同样的操作为止,即可得到RxS的全部元组。
如图2-7所示为两个关系的笛卡儿积操作示意图。
CDE
rziC1dlel
C202e2
c3d3e3
图2-7两个关系的笛卡儿积操作示意图
专门的关系运算包括选择、投影、连接、除等运算,其中选择和投影为
元操作,连接和除为二元操作.我们这里只介绍选择、投影和连接运算C
下面我们以表2-8~表2-10的三个关系为例,介绍选择、投影和连接运
算的含义。表2-8~表2-10所示的三个关系的属性含义如下:
Student:Sno(学号),Sname(姓名),Ssex(性另U),Sage(年
龄),Sdept(所在系)。
Course:Cno(课程号),Cname(课程名),Credit(学分),Semester
(开课学期),Pen。(直接先修课)。
SC:Sn。(学号),Cn。(课程号),Grade(成绩)。
p-"
表2-8Student
SnoSna*eSsexSage<qidept
202111101李勇再21计算融系
202111102刘晨男20计算系
202111103王敏女20计算系
202111104张小红女19计几系
202121101眯立里20f=l理系
202121102吴宾女19信息管理系
信总管
202121103张海里20理系
表2-9Course
CnoCnaaeCreditSe>ester1,cnO
C001高等数学41oi
C002大学英语31WULL
C003大学英语32枷2
C004计算机文化学22L
C005Java23zoo4
C006数据库基础45:oo7
C007数据结构44zoo5
表2-10SC
SnoCnoGrade
202111101C00196
202111101C0028D
202111101C00384
202111101C00562
202111102C00192
202111102C0029D
202111102C00484
202121102C00176
202121102C00485
202121102C00573
202121102C007NULL
202121103C00150
202121103C0048D
—
选择(selection)运算是从指定的关系中选择满足给定条件(用逻辑表
达式表达)的元组而组成一个新的关系。选择运算示意图如图2-8所示。
图2-8选择运算示意图
选择运算表示为
oF(R)={r|reRAF(r)='真')
其中,。是选择运算符,R是关系名,「是元组,F是逻辑表达式,取逻
辑"真"值或"假"值。
例1.对照表2-8所示的Student关系,查询计算机系学生信息。
关系代数表达式为
osdePt=,计算机系,(Student)
结果如表2-11所示。
表2-11例1的选择结果
SnoSna>eSsexSageSdept
202111101李勇男21计算机系
202111102刘晨男20计算机系
202111103王敏女20计算机系
202111104张小红女19计算机系
投影(projection)运算是从关系R中选择若干属性,并用这些属性组
成一个新的关系。如图2-9显示了投影运算示意图。
投影运算表示为
DA(R)={r.A|rGR)
其中,n是投影运算符,R是关系名,A是被投影的属性或属性组。r.A
表示r元组中相应于属性(集)A的分量,也可以表示为r[A]o
投影运算一般由两个步骤完成:
(1)选择指定的属性,形成一个可能含有重复数据行的新关系;
(2)删除重复行,形成结果关系。
例2.对表2-8所示的Student关系,在Sname和Sdept两个列上进行
投影运算,可以表示为
Dsname,sdept(Student)
结果如表272所示。
表2-12例2的投影结果
Sna>eSdept
李勇计算机系
刘晨计算机系
王敏计算机系
张小红计算机系
张立信息管理系
吴宾信息管理系
张海信息管理系
连接(join)运算用来连接相互之间有联系的两个关系,从而产生一个
新的关系。这个过程由连接属性(字段)来实现。一般情况下连接属性是
出现在不同关系中的音义相同的属性。
常用的连接运算有:6连接、等值连接(9连接的特例)、自然连接和外
连接,其中最重要也是最常用的是等值连接和自然连接。
e连接运算一般表示为
RXS={tAJr^RAf^SAtJA]Ht,[R]}
A»B
其中A和B分别是关系R和S上语义相同的属性或属性组总是比较运
算符。连接运算从R和S的笛卡儿积RxS中选择(R关系)在A属性组上
的值与(s关系)在B属性组上值满足比较运算符e的元组。
当0为"二〃时的连接为等值连接,它是从关系R与关系S的笛卡儿积
中选取A、B属性组值相等的那些元组,即
RXS={trWtreRAtseSAtr[A]=t,[B]}
A=B
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必
须是相同的属性或属性组,并且在连接结果中去掉重复的属性列,使公共
属性列只保留一个。即若关系R和s具有相同的属性组A,则自然连接可
记作:
E*S={—心1<八/£$/\、网=0四}
一般的连接运算是从行的角度进行运算,但自然连接还需要去掉重复的
列,所以是同时从行和列的角度进行运算。
自然连接与等值连接的差别为:
(1)自然连接要求相等的分量必须有相同的属性名,等值连接则不要
求;
(2)自然连接要求把结果中重复的属性去掉,等值连接却不这样做。
2.5关系规范化理论
函数对我们来说已经是非常熟悉的概念,对公式:
Y=f(X)
自然也不会陌生,但是大家熟悉的是X和Y之间数量上的对应关系,也
就是给定一个X值,都会有一个Y值和它对应,也可以说,X函数决定Y,
或Y函数依赖于X。在数据库中,函数依赖注重的是语义上的关系,例如:
省二f(城市)
只要给定一个具体的城市值,就会有唯一省值和它对应,如"武汉市〃
在〃湖北省",这里〃城市"是自变量X,〃省〃是因变量或函数值Y。并
且把X函数决定Y,或Y函数依赖于X表示为
X-Y
由以上说明可以写出较直观的函数依赖定义:
设有关系模式R(A1,A2,…,An),X和Y为{A1,A2,…,An}的子集,如果对于
R中的任意一个X值,都只有一个Y值与之对应,则称X函数决定Y,或Y
函数依赖于X。
下面给出我们用到的一些术语和符号。设有关系模式R(AI,A2,…,An),X
和Y均为{ALA2........An}的子集
(1)如果X-Y,但Y不包含于X,则称X-Y是非平凡的函数依赖。
如不作特别说明,我们总是讨论非平凡函数依赖。
(2)如果X-Y,则称X为决定因子。
(3)如果X-Y,并且对于X的任意一个真子集X'都有X''Y,则
称Y完全函数依赖于X,记作X-Y;如果X'-Y成立,则称Y部分函
数依赖于X,记作X-Y。
(4)如果X-Y、Y-Z,则称Z传递函数依赖于X。
讨论属性之间的函数依赖有什么必要呢?让我们通过例子看一下。
设有描述学生选课及住宿情况的关系模式:
S-L-C(Sno,Sdept,Sloe,Cno,Grade)
其中,各属性的含义分别为:学号、学生所在系、学生所住宿舍楼号、
课程号和考试成绩。假设一个系的学生都住在一个宿舍楼里。该关系模式
的主键为(Sno,Cno)0
看一下这个关系模式存在什么问题?假设该表有如表2-17所示的数
据。
表277S-LY的数据示例
SnoSdeptSloeCnoGrade
202111101计算机系2公寓C00196
202111101计算机系2公寓C00280
202111101计算机系2公寓C00384
202111101计算机系2公寓C00562
202111102计算机系2公寓C00192
202111102计算机系2公寓C00290
202111102计算机系2公寓C00484
202121102信息管理系1公寓C00176
202121102信息管理系1公寓C00485
202121102信息管理系1公寓C00573
202121102信息管理系1公寓C007NULL
202121103信息管理系1公寓C00150
202121103信息管理系1公寓C00480
202131103通信工程系1公寓C00478
202131103通信工程系1公寓C00565
202131103通信工程系1公寓C007NULL
从这个表中我们可以看到如下问题:
(1)数据冗余。
(2)数据更新。
(3)数据插入。
(4)数据删除。
类似的各种问题我们统称为操作异常。
解决上述各种问题的方法就是进行模式分解,即把一个关系模式分解成
两个或多个关系模式,在分解的过程中消除那些"不良〃的函数依赖,从
而获得好的关系模式。
关系数据库中的关系要满足一定的要求,满足不同程度要求的为不同的
范式。满足最低要求的为第一范式,简称INF(FirstNormalForm)。在
第一范式中进一步满足一些要求的为第二范式,简称2NF,依此类推,还
有3NF、BCNF、4NF和5NF.
定义:不包含非原子项属性的关系是第一范式的关系。
定义:如果关系模式RelNF,并且R中的每个非主属性都完全函数依
赖于主键,则Re2NF0
可以用模式分解的方法将非2NF的关系模式分解为2NF的关系模式。
消除部分函数依赖的分解步骤为:
(1)对于组成主键的属性集合的每一个子集,用它作为主键构成一个
关系模式。
(2)对每个关系模式,将依赖于此主键的属性放置到此关系模式中。
(3)去掉只由主键的子集构成的关系模式。
定义:如果关系模式R£2NF,并且所有非主属性都不传递函数依赖于
主键,贝URe3NFo
消除传递函数依赖的分解步骤为:
(1)对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工试用期转正工作总结15篇
- 2025年昆明市官渡区云南大学附属中学星耀学校招聘备考题库附答案详解
- 人民警察基本级执法资格考试题型及答案
- 2025国考国家税务总局滁州市南谯区税务局面试试题及答案解析
- 2025年广州市民政局直属事业单位第一次公开招聘工作人员25人备考题库及一套答案详解
- 三亚市公安局招聘下属事业单位工作人员考试真题2024
- 2024年鞍山海城市教育局毕业生招聘考试真题
- 《CB 1153-1993金属波形膨胀节》专题研究报告
- 2025广西北海银滩开发投资股份有限公司招聘2人考试核心题库及答案解析
- “梦工场”招商银行大连分行2026寒假实习生招聘备考笔试题库及答案解析
- 七年级下学期历史必背知识清单(填空版)
- 国家开放大学电大《国际私法》形考任务1-5题库及答案
- 《cGMP信号通路》课件
- 2022年全国森林、草原、湿地调查监测技术规程-附录
- 2022-2024年江苏中考英语试题汇编:任务型阅读填空和阅读回答问题(教师)
- 《市场营销专业申报》课件
- 三年级数学上册 (提高版)第8章《分数的初步认识》单元培优拔高测评试题(教师版含解析)(人教版)
- 19计科机器学习学习通超星期末考试答案章节答案2024年
- 全国职业院校技能大赛赛项规程(高职)农产品质量安全检测
- 广东开放大学2024年秋《国家安全概论(S)(本专)》形成性考核作业参考答案
- DB51∕T 3179-2024 杵针技术操作规范
评论
0/150
提交评论