数据库原理与开发技术 课件 第2章 关系数据库基础_第1页
数据库原理与开发技术 课件 第2章 关系数据库基础_第2页
数据库原理与开发技术 课件 第2章 关系数据库基础_第3页
数据库原理与开发技术 课件 第2章 关系数据库基础_第4页
数据库原理与开发技术 课件 第2章 关系数据库基础_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

第2章关系数据库基础本章主要内容:(1)关系模型的术语:元组、关系、属性、关系模式、主键、外键(2)规范化的关系:关系的6条性质(3)3类完整性规则:实体完整性、参照完整性、用户定义的完整性(4)关系代数运算:集合运算、代数运算(投影、选择、连接)(5)关系代数表达式2.1

关系模型在机器世界建模中,描述数据的术语有记录、文件、字段(或数据项)、关键码等,这些在关系模型中,也有对应的术语。2.1.1基本术语定义2-1用二维表格表示实体集,用关键码表示实体之间联系的数据模型,称为关系模型(RelationalModel)。对关系模型的语义描述,称为关系模式(RelationalSchema)。通俗讲,关系模式就是关系名及所含属性的有序集合。例如,表2-1是一张学生信息登记表,它是一个二维表格,它对应的关系模式为:2.1.1基本术语学生模式(sNo,sName,Sex,Age,dtBirthDate,ID)学号(sNo)姓名(sName)性别(Sex)年龄(Age)出生日期(dtBirthDate)身份证号(ID)18020101张三M202000-08-09360502…000118060206李明M192001-02-18360301…000219070101刘燕F182002-10-06360802…0003表2-1:在关系模型中,实体的字段(Field)称为属性,一列(Column)就是一个属性;一行(Row)就是一条记录(Record),也称元组(Tuple),它表示一个具体的实体,元组的集合称为关系(Relation)或实例(Instance)。记录类型称为关系模式。2.1.1基本术语学生关系={(18020101,张三,M,20,2000-08-09,360502…0001),

(18060206,李明,M,19,2001-02-18,360301…0002),

(19070101,刘燕,F,18,2002-10-06,360802…0003)}例如,表2-1是学生模式当前的一个实例,用元组集合表示为:为了描述方便,对表格进行数学化,用英文字母来表示表格的内容。一般用大写字母A、B、C、…表示单个属性,用大写字母…、X、Y、Z表示属性集,用小写字母a、b、c等表示属性值。元组也称为行(Row),属性也称为列(Column)。2.1.1基本术语在关系中,属性的个数称为“元数”,也称“列数”,元组的个数称为“基数”,也称“行数”。图2-1为信息世界建模的一般术语及对应的关系模型的术语,其中关系模式为R(A,B,C,D),关系的元数(列数)为4,基数(行数)为3。2.1.1基本术语图2-1能唯一标识元组的一个属性或多个属性组成的集合,称为关键码(Key,也称键)。在关系模型中,有下列四种键:2.1.1基本术语(1)超键(SuperKey)。在关系中,能唯一标识元组的属性或属性集,称为超键。超键不是唯一的,例如,在学生模式中,{sNo}、{sNo,sName}、{sNo,ID}、{ID}均为超键。

(2)候选键(CandidateKey)。没有多余属性的超键,称为候选键。例如,{sNo,sName}不是候选键,但{sNo}、{ID}均为候选键。候选键中的属性,称为主属性,否则,称为非主属性。

(3)主键(PrimaryKey)。用户指定元组唯一标识符的候选键,称为主键。候选键可以有多个,但任一关系模式有且只有一个主键。例如,{sNo}。

(4)外键(ForeignKey)。如果关系模式R的属性K是另一个模式T的主键,则称属性K是模式R的外键,此时,称T为主表,R为附表。如图2-2所示就是主键与外键的模式图。在一个关系模式中,主键只能有一个,用“pk”标识,外键可以有多个,用“fk”标识。2.1.1基本术语图2-2含有主键与外键的关系模式图(箭头指向主表所在的主键)

1.域(Domain)2.1.2关系模型的数据结构:集合论之形式化定义

定义2-2域是指一组具有相同数据类型的值的集合。例如,整数、浮点数、字符串集合、{1,0}、{男,女}、{18,19,20,21}等,都可以是域。

在关系模型中,域必须命名。例如:

姓名={张三,李四,王二,刘英},性别={男,女},年龄={18,19,20,21}。

2.笛卡尔积(Cartesian

product)2.1.2关系模型的数据结构:集合论之形式化定义定义2-3给定一组域D1、D2、…、Dn,这些域可以相同或不相同,D1、D2、…、Dn的笛卡尔积定义为:其中,笛卡尔积中的每一个元素(d1,d2,…,dn)叫做一个n元组,简称元组(tuple)。元组中每个di是域Di的一个值,称为元组的一个分量。笛卡尔积中元素的个数,称为笛卡尔积的基数。例如,设有3个域:A={张三,李四},B={M,F},C={会计专业,数学专业,英语专业},则A、B、C的笛卡尔积为:2.1.2关系模型的数据结构:集合论之形式化定义A×B×C={(张三,M,会计专业),(张三,M,数学专业),(张三,M,英语专业),

(张三,F,会计专业),(张三,F,数学专业),(张三,F,英语专业),

(李四,M,会计专业),(李四,M,数学专业),(李四,M,英语专业),

(李四,F,会计专业),(李四,F,数学专业),(李四,F,英语专业)

}

3.关系(Relation)2.1.2关系模型的数据结构:集合论之形式化定义定义2-4笛卡尔积D1×D2×…×Dn

的任一子集R称为域D1、D2、…、Dn

上的一个关系,记为:R(D1,D2,…,Dn)。一般来说,域D1、D2、…、Dn上的笛卡尔积没有实际语义,只有受到某种约束下的真子集才有实际含义。例如,在表2-2中,规定:一个学生只能有一种性别、一个专业,这样对应的子集R,称为学生关系,如表2-3所示。表2-2A、B、C的笛卡尔积2.1.2关系模型的数据结构:集合论之形式化定义A(姓名)B(性别)C(专业)张三M会计专业张三M数学专业张三M英语专业张三F会计专业张三F数学专业张三F英语专业李四M会计专业李四M数学专业李四M英语专业李四F会计专业李四F数学专业李四F英语专业A(姓名)B(性别)C(专业)张三M数学专业李四F会计专业表2-3学生关系R因此,关系虽然是一张二维表格,但它是一张规范化了的二维表格。在关系模型中,对关系作了如下规范性限制:2.1.2关系模型的数据结构:集合论之形式化定义

(1)关系的每一列(属性)都有不同的名字。

(2)在关系的每一列中,其属性值是同类型的数据,必须来自同一个域。

(3)关系中的每个属性值都是不可分解的。

(4)关系中不允许出现重复元组。

(5)关系中不考虑元组间的顺序。

(6)关系中的属性列在理论上也是无序的,但在使用时,按习惯考虑列的顺序。以上6点,也是关系的性质,是关系必须满足的规范条件。规范化的关系,简称范式(NormalForm,NF),范式的概念将在第4章详细介绍。为了维护数据库中的数据与现实世界中的一致性,对关系数据库的数据进行插入、修改、删除等操作,必须遵循下列3类完整性规则。2.1.3关系模型的3类完整性规则在关系中,主键的属性值不能为空(null)。如果出现空值,则主键值就不能唯一标识元组。

1.实体完整性(EntityIntegrityRule)该规则表明,“不允许引用不存在的实体”。2.1.3关系模型的3类完整性规则设属性或属性组K是关系模式R的主键,同时K也是关系模式S的外键,则在S的关系中,K的取值要么为空,要么为R关系中的某个主键值。

2.参照完整性(ReferenceIntegrityRule)在上述定义中,主键所在的关系模式的关系,称为“参照关系”,也称主表(或父表);外键所在的关系模式的关系,称为“被参照关系”,也称附表(或子表)。例如:班级模式(cNo,className):主表(父表、参照关系)学生模式(sNo,sName,Sex,…,

cNo

):附表(子表、被参照关系)﹏例如,在学生模式中,属性sex(性别)只能取{“M”,“F”},可以如下定义:

Check(Sexin{“M”,“F”})2.1.3关系模型的3类完整性规则不同的R-DBMS根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性规则,就是这方面的反映。系统应提供定义和检验这类完整性规则的机制,以便用统一的系统方法来处理它们。

3.用户定义的完整性规则(User-definedIntegrityRule)学生的Age(年龄)定义为2位整数,范围太大,限制为15到28岁之间:

Check(AgeBetween15and28)或Check(Age>=15andAge<=28)任何一种数据模型都有三个重要组成部分:数据结构,数据操纵,数据完整性规则。关系模型也不例外。2.1.4关系模型的形式定义和优点(1)数据结构:数据库中全部数据及其相互联系都被表为“关系”(二维表格)的形式。

(2)数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。

(3)数据完整性规则:数据库中数据必须满足实体完整性,参照完整性和用户定义的完整性等三类完整性规则。与其它数据模型相比,关系模型的优点如下:2.1.4关系模型的形式定义和优点(1)关系模型提供单一的数据结构形式,具有高度的简明性和精确性。

(2)关系模型的逻辑结构和相应的操作完全独立于数据存储方式,数据独立性高。

(3)关系模型使数据库的研究建立在比较坚实的数学基础上。

(4)关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便。关系数据库的数据操纵语言(DML)的语句包括数据查询和数据更新两大类。数据查询的理论称为“关系运算理论”。关系查询语言根据其理论基础的不同,分成3类:2.1.5关系模型的数据操纵(1)关系代数语言:查询操作以集合操作为基础的运算。

(2)关系演算语言:查询操作以谓词演算为基础的运算。

(3)关系逻辑语言:查询操作以if-then逻辑操作为基础的运算。2.2关系代数运算本章主要内容:(1)关系模型的术语:元组、关系、属性、关系模式、主键、外键(2)规范化的关系:关系的6条性质(3)3类完整性规则:实体完整性、参照完整性、用户定义的完整性(4)关系代数运算:集合运算、代数运算(投影、选择、连接)(5)关系代数表达式2.2关系代数运算关系代数是以集合代数为基础发展起来的,它是一种抽象的查询语言,它通过对关系的运算来表达查询的结果。关系运算的运算对象和运算结果都是关系。关系的运算可分为两类:

(1)传统的集合运算:包括集合的并、交、差和笛卡尔积运算。

(2)专门的关系运算:包括选择、投影、连接和除法等运算。2.2关系代数运算关系运算必须要写关系运算表达式,其中涉及的关系运算符可以分为以下四类:关系运算的运算对象和运算结果都是关系。关系的运算可分为两类:

(1)集合运算符:并(∪)、交(∩)、差(-)、笛卡尔积(×)。

(2)关系运算符:投影(∏)、选择(σ)、连接(

)、除(÷)。

(3)算术比较符:大于(>)、大于等于(≥)、小于(<)、小于等于(≤)、等于(=)、不等于(≠)。

(4)逻辑运算符:与(∧)、或(∨)、非(┐)。2.2关系代数运算为了叙述方便,下面介绍2个概念:

(1)设关系模式R(A1,A2,…,An)有n个属性。对于当前关系R,用t∈R表示t是R的一个元组,t[Ai]表示元组t中对应于属性Ai的一个分量(属性值)。

(2)设A=(Ai1,Ai2,…,Aik),其中Ai1,Ai2,…,Aik表示A1,A2,…,An中的一部分,则称A为属性列。t[A]={t[Ai1],t[Ai2],…,t[Aik]}表示元组t在属性列A上各分量的集合。传统的集合运算要求参加运算的两个关系必须是同类关系,即两个关系具有相同的属性个数,且对应的属性值必须取自同一域。2.2.1传统的集合运算设关系R和关系S是同类关系,则它们的并、交、差和笛卡尔积运算如下:(1)并运算:R∪S={t|t∈R∨t∈S}。

(2)交运算:R∩S={t|t∈R∧t∈S}。

(3)差运算:R-S={t|t∈R∧tS}。

(4)笛卡尔积运算:R×S={tr

ts|trR∧

tsS},其中tr

ts表示元组的连接或元组的串接。例2-1关系R和S如图2.3(a)、(b)所示,它们的笛卡尔积、并、交、差运算分别如图2-4、2-5、2-6、2-7所示。2.2.1传统的集合运算ABCabcdafcbdABCbgadaf关系R关系SR.AR.BR.CS.AS.BS.Cabcbgaabcdafdafbgadafdafcbdbgacbddaf

R×SABCabcdafcbdbgaR∪SR∩SR-SABCdafABCabccbd

1.投影(Project),也称选列2.2.2专门的关系运算关系R的投影是从R中选择若干属性列,并可重新安排列的顺序组成新的关系。记作:∏A(R)={t[A]|t∈R},其中A为R的属性列。2.选择(Selection),也称选行选择运算时指从关系R中选择满足给定条件的诸元组。记作:

σF(R)={t|t∈R∧F(t)=true}其中F为选择条件,它是一个逻辑表达式,取值为true或false。例2-2针对例2-1中的关系R和S,图2-8表示πC,A(R),即π3,1(R)。图2-9表示表示σB=ˊbˊ(R)。2.2.2专门的关系运算ABCabcdafcbdABCbgadaf关系R关系S

πC,A(R)σB='b'(R)CAcafddcABCabccbd

3.连接(Join)2.2.2专门的关系运算连接分为:

连接、等值连接及自然连接三种,分述如下:(1)

连接:它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:RS={tr

ts|trR∧

tsS∧

tr

[A]ts[B]}其中:

是比较运算符,A和B分别为R和S上度数相等、且可比的属性组。AB2.2.2专门的关系运算(2)等值连接:当

为“=”时,称之为等值连接,记为:RS={tr

ts|trR∧

tsS∧

tr

[A]=

ts[B]}(3)自然连接:是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中将重复属性列去掉。若R和S具有相同的属性组B,则自然连接可以记为:A=BRS={tr

ts|trR∧

tsS∧

tr

[B]=

ts[B]}2.2.2专门的关系运算两个关系R和S的自然联接操作具体计算过程如下:RS={tr

ts|trR∧

tsS∧

tr

[B]=

ts[B]}①计算R×S;

②设R和S的公共属性是A1,…,Ak,挑选R×S中满足R.A1=S.A1,…,R.Ak=S.Ak

的那些元组;

③去掉S.A1,…,S.Ak这些列。特别需要说明的是:一般连接是从关系的水平方向运算,而自然连接不仅要从关系的水平方向,而且要从关系的垂直方向运算。因为自然连接要去掉重复属性,如果没有重复属性,那么自然连接就转化为笛卡尔积。2.2.3关系代数运算的应用实例在关系代数运算中,把由四个传统的集合运算和3个专门的关系运算,经过有限次复合的式子称为关系代数表达式。这种表达式的运算结果仍是一个关系。我们可以用关系代数表达式表示各种数据查询操作。2.2.3关系代数运算的应用实例例2-3设有学生选课数据库中包含三个关系:学生关系S、课程关系C、学生选课关系SC,其关系模式为:学生关系模式S(sNo,sName,Age,Sex)/*学号,姓名,年龄,性别*/

课程关系模式C(cNo,cName,Credit)/*课程号,课程名,学分*/

选课关系模式SC(sNo,cNo,Score)/*学号,课程号,考试成绩*/sNosNameSexAge300130024003400410411042王平张勇黎明刘明远赵国庆樊建玺女男女男男男181918192020cNocNameCreditC1C2C3C4C5C6C7数据库数

学操作系统数据结构数字通信信息系统程序设计3443342sNocNoScore30013001300130023002104210421232312938484839384822.2.3关系代数运算的应用实例(1

温馨提示

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

评论

0/150

提交评论