- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 数据库设计方法与示例
关系型数据库的基础是关系数据理论。关系模型包含三个要素,关系操作用于处理关系数据库中的数据。关系规范化理论指导数据库设计。本章进一步讨论关系运算、关系规范化,以及有关数据库设计的基本方法和示例。
2.1 关系数据理论的进一步分析
关系模型包含数据结构、数据操作和数据约束三个要素。在第1章,已经讨论了关系模型中数据结构和数据约束的概念。关系操作包括关系代数和关系谓词演算,其功能是等价的。本节简要介绍关系代数的知识和关系规范化的基本概念。
2.1.1 关系代数
通常,一个数据库中会包括若干个有联系的关系,关系是数据分散和静态的存放形式,经常要对各关系中的数据进行操作。对关系的操作称为关系运算。由于关系是元组的集合,所以传统的集合运算也适用于关系。
组成关系代数的运算包括:关系的并、交、差、笛卡儿积运算,以及关系的选择、投影、联接和除运算。
1.关系的并、交、差
关系的并(Union)、交(Intersection)、差(Difference)运算属于传统集合运算。关系的元组是集合的元素,不过,元组由属性分量值构成,是有结构的,因此,在做这三种运算时,要求参与运算的关系必须满足以下条件。
关系的度数相同(即属性个数相同)。
对应属性取自相同的域(即两个关系的属性构成相同)。
可以理解为参与运算的关系具有相同关系模式。设关系R、S满足上述条件,定义:
(1)R与S的并:由出现在R或出现在S中所有元组(去掉重复元组)组成的关系。记作:R∪S。
(2)R与S的交:由同时出现在R和S中的相同元组组成的关系。记作:R∩S。
(3)R与S的差:由只出现在R而未出现在S中的元组组成的关系。记作:R-S。
关系R和S的并、交、差的运算结果分别如图2.1中所示的阴影部分。
R∪S R∩S R-S
图2.1 关系的并、交、差示意图
从上述运算的定义可知,交运算可以由差运算来实现,即:R∩S=R-(R-S)。
【例2-1】已知关系R、S如表2.1、表2.2所示,则R∪S,R∩S,R-S的结果见表2.3、表2.4、表2.5。
【例2-2】若关系SP1、SP2分别是2013年上半年和下半年已销售的商品清单,它们具有相同的关系模式,即(商品编号,商品名称,型号,单位,生产厂商),则:
运算SP1∪SP2 意指全年已销售的商品清单;
运算SP1∩SP2 意指上下半年都有销售的商品清单;
运算SP1-SP2 意指只在上半年有销售而下半年没有销售的商品清单。
2.关系笛卡儿积
关系笛卡儿积是将笛卡儿积运算用在关系中。设有关系R(A1,A2,…,An),S(X1,X2,…,Xm),关系笛卡儿积(Cartesian Product)运算记为R×S,结果关系的模式是(A1,A2,…,An,X1,X2,…,Xm),而结果关系的元组是由R的所有元组与S的所有元组两两互相配对拼接而成。R×S基数为MR×MS。
【例2-3】已知R,S关系如表2.6、表2.7所示,则R×S结果见表2.8。
3.选择
关系选择(Selection)运算是从一个关系中选取满足条件的元组组成结果关系。该运算只有一个运算对象,运算结果和原关系具有相同的关系模式。
选择运算的表示方法是:σ条件表达式(关系名)
在选择运算的条件表达式中,条件的基本表示方法是: 属性θ值。
其中θ是以下运算符中之一:{=,≠,>,≥,<,≤ }。
条件表达式的运算结果为真(True)或假(False)。有时需要同时用到多个单项条件,这时,应将各单项条件根据要求用逻辑运算符NOT(求反)、AND(并且)、OR(或者)联接起来。有多个逻辑运算符时,其运算优先顺序是:NOT→AND→OR,相同逻辑运算符按从左到右顺序,括号可改变运算顺序。逻辑运算符的运算规则如表2.9所示。
表2.9 逻辑运算规则
X Y NOT X X AND Y X OR Y True True False True True True False False False True False True True False True False False True False False 【例2-4】对于关系R(表2.10),求σA=“a1” AND B=1(R)。结果见表2.11。
【例2-5】查询教学管理数据库的专业关系(参见表1.2)中专业类别为“管理学”的所有专业数据。查询学生关系中所有1995年之后出生的女生数据。
查询运算表达式式分别是: σ专业类别=“管理学”(专业)
σ性别=“女” AND 生日≥“1995-01-01”(学生)
进行选择运算时,逐个元组进行条件运算,使运算结果为真(即条件成
文档评论(0)