关系模型与关系运算课件_第1页
关系模型与关系运算课件_第2页
关系模型与关系运算课件_第3页
关系模型与关系运算课件_第4页
关系模型与关系运算课件_第5页
已阅读5页,还剩277页未读 继续免费阅读

下载本文档

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

文档简介

《数据库新技术》一.本课程主要内容二.主要参考书三.课程要求与考核方式四.数据库技术的发展趋势五.数据库领域的新技术《数据库新技术》一.本课程主要内容

一.本课程主要内容第1章

关系数据库基本理论

关系数据库基本概念、

关系运算、数据依赖、关系数据库范式算法。第2章

数据库系统设计数据库系统设计的任务与内容,数据库系统设计方法与步骤、数据库管理系统的功能与组成。第3章

分布式数据库系统

分布式数据库系统的特点、分布式数据库系统的体系结构、分布式查询处理、分布式事务管理。第4章

面向对象数据库

面向对象数据模型、面向对象数据库系统的查询与并发控制、对象-关系数据库管理系统。第5章互联网分布式系统的数据资源存储与管理

Key/value数据存储与管理系统、数据划分、复制与一致性保障、可用性保障机制。一.本课程主要内容第1章关系数据库基本理论

本课程主要内容第6章云计算中的数据库

介绍几种典型云计算中的数据库存储与管理系统,包括:Google云计算中的数据库Bigtable、Hadoop中的数据库HBase、Amazon云计算中的中的简单数据服务SimpleDB与关系数据库服务RDS、微软云计算中的数据库SQLAzure等。云计算补充内容:云计算的概念、云计算发展现状、云计算实现机制等。第7章大数据时代的数据存储与管理---NoSQL大数据简介、关系数据库的瓶颈、NoSQL简介、CAP理论、NoSQL数据模型及分类、NoSQL应用现状、几个典型的NoSQL。第8章数据库技术新进展数据库技术新进展,包括:数据仓库、数据挖掘、并行数据库、Web数据库、多媒体数据库、工程数据库、主动数据库等。第9章数据库技术论文选读选择10-15篇与教学内容相关的学术论文进行讲解,让学生了解本学科的基本研究方法与研究方向。本课程主要内容

二.

主要参考书1.数据库云平台理论与实践清华大学出版社2016.12.刘鹏,云计算(第二版),电子出版社,2011.103.何小朝,纵横大数据

,电子出版社,2014.54.王珊萨师煊,数据库系统概论高等教育出版社2009

因为数据库技术涉及内容广泛,本课程使用了比较多的参考书,不同章节使用不同参考书中相关部分,但本课程内容本身自成体系。对以前一点没有学过数据库基本知识的同学,可以从参考书4或其它相关参考书中进一步相关知识。二.

主要参考书

三.

课程要求与考核方式掌握相关理论、原理与技术完成有课后书面作业与上机实践期末闭卷考试成绩:平时作业(30)+期末考试成绩(70)任课教师:苏桂平

手机:

邮箱:三.

课程要求与考核方式

四.数据库技术的发展趋势

信息技术的不断发展与信息需求的不断增长是数据库技术不断发展的动力。信息需求的深入与多样化不断提出了许多需要解决的问题,信息技术不断快速发展与功能增强,为数据库技术提供了坚实的基础。下面研究数据库技术面临的挑战与发展趋势。四.数据库技术的发展趋势

信息技术的不

数据库技术面临的挑战(1)环境的变化数据库系统的应用环境由可控制的环境转变为多变的异构信息集成环境与Internet环境。(2)数据类型的变化数据库中的数据类型由结构化扩大至半结构化、非结构化与多媒体数据类型。(3)数据来源的变化大量数据将来源于实时与动态的传感器或监测设备,需要处理的数据量成倍剧增。(4)数据管理要求的变化许多新型应用需要支持协同设计与工作流管理。数据库技术面临的挑战(1)环境的变化

数据库技术的发展趋势可以执行分布式处理的分布式数据库技术可以处理复杂对象的面向对象数据库技术可以处理多媒体海量数据的多媒体数据库技术可以对数据库中数据进行多维与历史分析的数据仓库技术可以支持长事务与协调处理的工作流数据库技术可以存储空间位置信息的空间数据库技术移动互联、社交网络、电子商务等极大拓展了互联网的边界与应用范围,各种数据正在迅速膨胀并变大,出现了大数据存储与管理技术为了将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间与信息服务,产生了云计算与对应的数据库技术数据库技术的发展趋势可以执行分布式处

Key/Value数据库大数据技术

云计算中的数据库分布式数据库面向对象数据库对象—关系数据库

数据仓库与数据挖掘主动数据库空间数据库时态数据库嵌入式数据库并行数据库多媒体数据库工程数据库

五.数据库领域的新技术

除了传统的关系数据库外,有新的数据库及相关技术不断出现,主要包括:主动数据库五.数据库领域的新技术

NoSQL数据模型及分类(在云平台与大数据时代)类型部分代表特点列存储HbaseCassandraHypertable顾名思义,是按列存储数据的。最大的特点是方便存储结构化与半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。文档存储MongoDBCouchDB文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。key-value存储TokyoCabinet/TyrantBerkeleyDBMemcacheDBRedis可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)图存储Neo4JFlockDBInfoGrid图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。对象存储db4oVersant通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。xml数据库BerkeleyDBXMLBaseX高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。NoSQL数据模型及分类(在云平台第1章关系数据库基本理论

1.1关系数据库基本概念1.2关系运算1.3数据依赖1.4关系数据库范式理论

第1章关系数据库基本理论

1.1关系数据库基本概念1.1关系数据库基本概念1.1.1数据模型1.1.2关系与关系模式1.1.3键1.1.4关系的更新1.1关系数据库基本概念数据模型的组成要素:

数据结构、数据操作、数据的完整性基本的数据模型分类:

层次、网状、关系数据模型、面向对象数据模型、Key/Value数据存储模式。1.1.1数据模型数据模型的组成要素:1.1.1数据模型

1.数据模型的组成要素

(l)数据结构:用于描述数据的静态结构,包括应用所涉及的对象类与对象类所具有的特性以及它们之间的联系。(2)数据操作:是施加在对象上的一组操作,是对系统动态特性的描述。

(3)数据的完整性:是对数据静态与动态特征性的限制,是一组完整性规则的集合。完整性规则是用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。1.数据模型的组成要素(l)数据结构:用于描述数(1)层次模型有且仅有一个结点无双亲,称为根结点;其它结点有且仅有一个双亲。

层次模型的数据结构是一棵树。2.基本数据模型分类

(1)层次模型2.基本数据模型分类大学组织机构的层次模型

大学组织机构的层次模型

(2)网状模型允许一个结点可以有多个双亲;多个结点无双亲结点。班级课程学生(2)网状模型班级课程学生基本结构是二维表,一张表称为一个关系。与层次与网状模型比较,关系模型有下列优点:数据结构单一;建立在严格的数学概念基础上;将数据定义与数据操纵统一在一种语言中,使用方便,易学易用。

由于关系模型具有许多优点,因而在80年代之后的商品化数据库系统几乎都是关系型的。

(3)关系数据模型基本结构是二维表,一张表称为一个关系。(3)关

陆川

200402

刘敏

200401

李丽

200302

王鸣

200301

班级

姓名

学号

(a)学生关系

陆川200402刘敏200401李丽20039020042

计算机

曹岩

9020041

人工智能

计算机

马小路

9020032英语

9020031

计算数学

吴云峰

班级

课程

系别

教师姓名

(b)教师开课关系9020042数据库计算机曹岩

可以表示复杂对象;模块化的结构,便于管理;具有定义抽象数据类型的能力。面向对象的数据模型是新一代数据库系统的基础,是数据库技术发展的方向。

(4)面向对象数据模型(4)面向对象数据模型

(5)Key/Value数据存储模式传统关系数据库是针对结构化数据以及这些数据之上的复杂查询设计的。互联网计算环境下,数据的规模较大,要处理的互联网数据有很多是非结构化的数据,很多互联网应用(例如互联网搜索、电子商务等应用)并不需要对数据进行复杂的查询,这就使得传统关系型数据库的一些优点在互联网环境下反而成为了缺点。

分布式key/value存储系统比关系数据库更适于互联网环境,所以,只需主键简单查询的需求广泛存在于互联网应用中,分布式key/value存储与管理系统日益受到重视。

一个Key/Value数据模型例子如下图:(5)Key/Value数据存储模式1.1.2关系与关系模式1.关系

在关系模型中唯一的数据结构是关系,一个关系对应一张二维表。域

:具有相同数据类型的值的集合。定义1(笛卡尔积):D1,D2,...,Dn的笛卡尔积为:

D1D2...Dn={(d1,d2,...,dn)diDi,i=1,2,...,n}。其中每一个元素(d1,d2,...,dn)叫做一个n元组(n-tuple),元素中第i个值di叫做第i个分量。例:设D1={1,2,3},D2={a,b}D1D2={(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)}1.1.2关系与关系模式例:设D1={1,2,3},D实际上,如D1—学生集(50个),如D2—班级集(2个),

D1D2有多少元素?具体意义?定义2(关系):集合D1,D2,...,Dn笛卡尔积的任一个子集称该集合上的一个关系(Relation)。其中,集合D1,D2,...,Dn是关系中元组的取值范围,称关系的域(domain),这些域是有限的非空集合,n叫做关系的度(degree)。实际上,如D1—学生集(50个),如D2—班级集(2个)关系的基本概念关系(Relation)二维表,关系用关系名标识,如关系r。元组(Tuple)表中的行,一般用变量t表示。属性(Attribute)表中的一列,如列Ai,dom[Ai]表示属性Ai的域

键(Key,码)可以唯一地确定一个元组的属性组。关系举例:火车时刻表关系的基本概念dom(NUMBER)={565,523,532,K95,K96}dom(FROM)=dom(TO)={BeiJing,XuZhou,…,ShenZhen}dom(DEPARTS)=dom(ARRIVES)=一组时间。表1火车时刻表7:3717:13WuChangShenZhenK967:1816:55ShenZhenWuChangK959:4021:45BeiJingLuoYang5326:0621:30LuoYangXuZhou5237:5420:40BeiJing565ARRIVESDEPARTS

FROMNUMBER

TOXuZhoudom(NUMBER)={565,523,53关系的性质(关系数据库中对关系的限定)

1.每一列中的值是同类型的数据,来自同一个域。2.不同的列可以有相同的域,每一列称为属性,用属性名标识。3.列的顺序是无关紧要的。4.任意二个元组不能完全相同。(相同元组称重复组)5.行的顺序是无关紧要的。6.关系中的每个分量都是原子值,是不可分的数据项。关系的性质(关系数据库中对关系的限定)

2.关系模式

关系模式一般表示为:关系名(属性1、……属性n)

如:R(A1,A2,…,An)。用U表示关系R的属性集合U=A1∪A2∪…∪An,

模式R上的一个关系r是从U到D的映象。

元组t∈r,t的分量用t[Ai]表示.t[Ai]∈Di例:在学生关系模式S(SNO,SNAME,AGE,SEX,CNO)中,当CNO=1,就可以一班学生的列表,即一个具体的关系;当CNO=2,就可以二班学生的列表,即另一个具体的关系。

2.关系模式

定义(关系数据库模式):

设属性集U与U的属性所关联的域为D,U上的关系数据库模式R是R1,R2,…,Rp

的集合,即:R={R1,R2,…,Rp}

,且U

=R1∪R2∪…∪Rp。比如:R1为学生关系:S(Sno,Sname,Sbirth,Dept,Class,Rno)R2为班级关系:C(Class,Pname,Dept,Cnum,Cyear)R3为系关系:D(Dept,Dno,Office,Dnum)R4为学生会关系:M(Mname,Myear,Maddr,Mnum)关系数据库:一个关系数据库模式R对应的所有关系集合

{r1,r2,…,rp}称为关系数据库模式R上的一个关系数据库d.定义(关系数据库模式):

关系模式与关系的区别与联系:关系模式:对一类实体特征的结构性描述,即对关系的结构性描述,该描述一般包括关系名、属性名、属性域的类型与长度,属性之间固有的依赖联系等。关系模式与关系的区别与联系:关系模式描述的是关系的静态结构信息,是对一个关系的“型”的描述,是相对固定的。关系是在关系模式约束之下的若干实体的集合,实体的数量是随时间变化的,但这种变化必定在关系模式的约束范围内。

一般用大写字母表述关系的结构,比如R,用小写字母一个具体的关系值,如r.关系模式与关系的区别与联系:关系模式:对一类实体特征的结

1.1.3

键(Key)与关系的完整性

1.键设关系模式R(U),KU,r是R上的任一关系,若对r中的任意二个不同的元组t1、t2满足:(1)t1[K]t2[K];

(2)若KK而t1[K]t2[K]不成立。称K是R的键。若仅条件(1)成立,K是R的超键。有键的定义得出:键是能唯一标示元组的最小属性集。在上面火车时刻表的例子中,NUMBER是一个键。1.1.3键(Key)与关系的完整性

2.主键、隐含键、候选键、超键主键:有的关系具有多于一个键,这种情况下指派其中一个键为主键,简称为关系的键。用带下划线的属性表示。例如:TRAIN(NUMBER,FROM,TO,DEPARTS,ARRIVES)TRAIN(NUMBER,FROM,TO,DEPARTS,ARRIVES)隐含键:未被制定的键称隐含键,也称替补键。候选键:主键与隐含键统称为候选键。超键:在上面键的定义中,若条件(2)不成立,称K为R的超键。例如:NUMBER、FROM是一个超键。2.主键、隐含键、候选键、超键主键:有的关系具有3.关系的完整性

(1)关系模型的三要素:

数据结构

关系模型的数据结构为单一的关系,它表示了实体与实体间的联系。关系操作

关系操作关系代数:布尔运算、专门关系运算;关系演算:关系元组演算、域演算。完整性约束

实体完整性、参照完整性、用户定义的完整性。3.关系的完整性(1)关系模型的三要素:

实体完整性

关系中键属性的值不能取空值。

例如:学生关系S(SNO,SNAME,AGE,SEX,CNO)

参照完整性

是关系间引用所遵循的规则,与外键有关。

用户定义的完整性

数据间应满足的语义约束关系,由用户定义,由系统检查。(2)完整性约束

下下页(2)完整性约束下下页

外键:

设F是关系R的一个或一组属性,但不是R的键。若F是另一个关系S的键,则称F是关系R的外键。

R为参照关系,S为被参照关系。

例如:参照关系学生关系S(SNO,SNAME,AGE,SEX,CNO)班级关系C(CNO,CMN)---被参照关系

参照完整性规则关系R中外键的值或者为空值,或者为被参照关系中主键的值。关系模型与关系运算课件建立表结构与完整性约束

补充:SQL语言简介

SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。SQL语言将数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能集于一体,可以独立完成数据库生命周期中的全部活动.

SQL被作为关系型数据库管理系统的标准语言。目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。基本的SQL语句包括Select、Insert、Update、Delete、Create、Drop,它们可以被用来完成几乎所有的数据库操作。很多数据库根据不同的需要对SQL语句进行了再开发与扩展。

建立表结构与完整性约束补充:SQL语言简介

SQL的基本语句

1.创建新表

create

tabletabname(col1type1[notnull][primarykey],col2type2[notnull],..)

例:CREATETABLEC

(CNONUMBER(6),

CMNCHAR(10))2.选择select*fromtable1where范围例:SELECTSNO,SNAMEFROMSWHERECNO=2002013.插入insertintotable1(field1,field2)values(value1,value2)例:INSERTINTOSVALUES(909901,‘李利’,21,‘男’,200205);SQL的基本语句

1.创建新表4.删除deletefromtable1where范围例:DELETEFROMSWHERESNO=20100162;5.更新(修改)updatetable1setfield1=value1where范围例:UPDATESSETSage=23WHERESno=‘20100162’

完成核心功能SQL语言只用9个动词,并且它的表达接近英语句子,所以比较简单、易学。

SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言,比如:C、PL/1、FORTRAN。关系模型与关系运算课件

CREATETABLES

(SNONUMBER(4),

SNAMECHAR(10)NOTNULL,

AGENUMBER(3), SEXCHAR(1), CNONUMBER(6),

CONSTRAINTSK1PRIMARYKEY(SNO),

CONSTRAINTSK2FOREIGNKEY(CNO)REFERENCESC(CNO)),

CONSTRAINTSK3CHECK(AGEIN(16,45)));CREATETABLEC

(CNONUMBER(6),

CMNCHAR(10),

CONSTRAINTCKPRIMARYKEY(CNO));CREATETABLES1.1.4关系的更新—插入、删除、修改

1.插入

对关系r(A1,A2,…,An),插入操作形式为:

ADD(r;A1=d1,A2=d2,…An=dn)ADD(r;d1,d2,…,dn)

例:ADD(S;SNO=909901,SNAME=李利,AGE=21,SEX=男,CLASSNO=200205)插入操作的有效检查: (1).描述的元组是否符合所指定的关系模式; (2).元组的某些值是否属于对应的域; (3).元组的键是否已在关系中存在。

1.1.4关系的更新—插入、删除、修改插入操作的有效检

例:用SQL语言实现在学生关系S中插入一个元组。

INSERTINTOSVALUES(909901,‘李利’,21,‘男’,200205);例:用SQL语言实现在学生关系S中插入一个元组。

2.删除

对关系r(A1,A2,…,An),删除操作形式为:

DEL(r;A1=d1,A2=d2,…An=dn)DEL(r;d1,d2,…dn);若K=B1B2…Bm,DEL(r;B1=k1,B2=k2,…Bm=km)例:DEL(S;SNO=909901,SNAME=李利,AGE=21,SEX=男,CLASSNO=200205)删除操作的检查:如果被删除元组在关系中不存在,这个关系将保持不变,但需给出一个出错提示。**删去最后一个元组不受限制,即允许是空关系。

2.删除删除操作的检查:如果被删除元组在关系中不实际上,为了识别被删除的元组并不需要所有元组的信息,只需要制定键的值就足够了。比如:删除学号为909901的学生元组

DELETEFROMSWHERESNO=909901;实际上,为了识别被删除的元组并不需要所有元组的信息,只需要制

3.修改

修改元组的部分值。对关系r(A1,A2,…,An),若属性集{C1,C2,…,Cp}{A1,A2,…An},则修改操作形式为:

CH(r;A1=d1,A2=d2,…An=dn;C1=e1,C2=e2,…,Cp=ep)如果K={B1,B2,…Bm}为键,则可简化为:

CH(r;B1=k1,B2=k2,…Bm=km;C1=e1,C2=e2;…Cp=ep)例:CH(S;SNO=909901;CLASSNO=200203)修改操作可用删除操作后跟一个插入操作实现。对插入与删除操作的限制可运用到修改操作中。3.修改修改操作可用删除操作后跟一个插入操作实例:施加一系列操作于火车时刻表1.ADD(train;33,TianJin,ShangHai,17:20,10:36);2.ADD(train;Y15,BeiJing,TianJin,10:05,12:43);3.DEL(train;523);4.CH(train;NUMBER=532;DEPARTS=22:45,ARRIVES=10:42)。例:施加一系列操作于火车时刻表火车时刻表7:3717:13WuChangShenZhenK967:1816:55ShenZhenWuChangK959:4021:45BeiJingLuoYang5326:0621:30LuoYangXuZhou5237:5420:40BeiJing565ARRIVESDEPARTS

FROMNUMBER

TOXuZhou火车时刻表7:3717:13WuChangShenZhen练习

建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点、人数。学会:学会名、成立年份、办公地点、人数。语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,指出各关系模式的候选键与外键。练习建立一个关于系、学生、班级、学会练习解答解:(1)关系模式如下:学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)

班级:C(Class,Pname,Dept,Cnum,Cyear)

系:D(Dept,Dno,Office,Dnum)

学会:M(Mname,Myear,Maddr,Mnum)(2)各关系模式的候选键、外部键如下:

A、学生S候选键:Sno;外部键:Dept、Class;

B、班级C候选键:Class;外部键:Dept;

C、系D候选键:Dept或Dno;无外部键;

D、学会M候选键:Mname;无外部键。课后练习:如何用SQL来创建该数据库?(建议没有学过数据库的同学在自学SQL后练习一下)练习解答解:(1)关系模式如下:1.2关系运算

1.2.1布尔运算1.2.2选择1.2.3投影1.2.4连接1.2.5除1.2关系运算1.2.1布尔运算

关系可以看做元组的集合,那么集合的并、交、差等布尔运算算都可以用到关系中。关系的布尔运算包括:并、交、差、广义笛卡尔积、补、有效补。

同类关系:若R与S是同类关系,则满足如下条件:(1)R与S具有相同的度;(2)R与S的对应属性定义在同一个域上。同类关系也称相容运算,布尔运算大多是在同类关系中进行。1.2.1布尔运算

关系可以看做元组的集合并(Union)关系R与S的并其结果由属于R或属于S的所有元组组成,其结果为一个新关系。记为:

Q=R∪S={t|t∈R或t∈S}

交(Intersection)

关系R与S的交其结果由既属于R又属于S的所有元组组成。记为:

Q=R∩S={t|t∈R且t∈S}

差(Difference)

关系R与S的差由属于R但不属于S的所有元组组成。记为:

Q=R-S={t|t∈R但tS}并(Union)例子:R∪S

ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

例子:R∪SABCa1b1c1a1b2c2a2b2c1Ac1b2a2c2b2a1c1b1a1CBAc1b1a1CBAc1b2a2c2b3a1c2b2a1CBARSR-S

例子:R-S

c1b2a2c2b2a1c1b1a1CBAc1b1a1CBAc1b2a2c2b2a1c1b1a1CBAc1b2a2c2b2a1CBAc1b2a2c2b3a1c2b2a1CBARSR∩S

例子:R∩

S

c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b例:并运算的SQL实现查询200201班的学生与年龄超过23岁的学生姓名。SELECTSNO,SNAMEFROMSWHERECNO=200201UNIONSELECTSNO,SNAME FROMSWHEREAGE>23;*INTERSECT(交)、MINUS(差)例:并运算的SQL实现

广义笛卡尔积关系R与S的笛卡尔积为R中所有元组与S中所有元组的串接。结果关系的属性个数:k1+k2

其中k1与k2分别为R与S的属性数结果关系的元组数:

m×n

其中m、n分别为R与S的元组数。

R与S的笛卡尔积记为:

Q=R×S={t|t

=trts,tr∈R且ts∈S}关系模型与关系运算课件广义笛卡尔积的例子:ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

c1b1a1c1b1a1c1b2a2c1b2a2c2b2a1c1b2a2c1b1a1R.CR.BR.Ac2b2a1c2b2a1c2b2a1c2b3a1c1b2a2c2b2a1c2b3a1c1b2a2c2b2a1S.CS.BS.Ac1b2a2c2b3a1广义笛卡尔积的例子:ABCa1b1c1a1b2c2a2b2有学生关系S(Sno,Sname,Sage)与选课关系SC(Sno,Cno,Grade)SELECTS.*,SC.*FROMS,SC例:广义笛卡尔积的SQL实现例:广义笛卡尔积的SQL实现

补(Complement)

关系模式R(A1,A2,…,An),R上的关系r。

补运算:设dom(R)表示模式R上的所有元组的集合,则关系r的补为:

r=dom(R)-r

例:设R(A,B),dom(A)={a1,a2,,a3},dom(B)={b1,b2}R上的关系r与r的补r如下所示。

r=(AB)

r=(AB)a1b1a2b2a1b2a3b1

a2b1a3b2例:设R(A,B),dom(A)={a1,a2,,a例:设R(A,B,C),dom(A)={a1,a2},dom(B)=整数的集合,

dom(C)={c1,c2}。求r的补。

r=(ABC)

a11

c1a12

c2a21

c1a22

c1a23

c2

例:设R(A,B,C),dom(A)={a1,a2}

r=adom(R,r)-r

adom(R,r)为模式R上的所有属性对应关系r的有效值域组成的所有元组的集合。由于adom(R,r)是有限的,则r的有效补r总是一个关系。~~

有效补

关系模式R(A1,A2,…,An),属性Ai的有效值域:

adom(Ai,r)={d|d∈Di,存在t∈r且t[Ai]=d}定义r的有效补为: r=adom(R,r)-r~~例:设R(A,B,C),dom(A)={a1,a2},dom(B)=整数的集合,

dom(C)={c1,c2}。R上的关系r与r的有效补如下。~~

r=(ABC)r=(ABC)a11

c1a11

c2

a12

c2a12

c1

a21

c1a13

c1

a22

c1

a13

c2

a23

c2

a21

c2

a22

c2

a23

c1

思考:在关系模式R(A1,A2,…,An)中,若每个属性Ai的值域都有限,任一关系r的补与有效补是否一致?例:设R(A,B,C),dom(A)={a1,a2}

例:设R(A,B),dom(A)={a1,a2,,a3},dom(B)={b1,b2}。

R上的关系r与r的补r及r的有效补r

如下所示。

r=(AB)r

=(AB)

r=(AB)a1b1a2b2a2b2a1b2a3b1

a2b1a3b2

~~~~有效补的应用:当关系元组数比其有效补元组数多得多时,有效补可作为数据压缩手段。例如:学生选课,一个班有50个学生选数据库课,3个学生不选,则存储选修了数据库课的学生可用存储其有效补实现。有效补的应用:当关系元组数比其有效补元组数多得多时,有效补可练习

1.设R(A,B,C),dom(A)={a1,a2},dom(B)={b1,b2,b3},

dom(C)={c1,c2}

r(ABC)a2b3c1

a2b1c1

a2b2c1

a1b1c1求:r的补与有效补练习1.设R(A,B,C),dom(A)={a1从关系中选择在指定属性上有确定值的关系的子集。表示为:

A=a(r)={tt∈r且t[A]=a}。

选择运算是选择关系中行的子集,即选择满足条件元组。例:在下面关系train中求:

FROM=’beijing’(train);DEPARTS=’16:55’(train)

1.2.2选择(Select)从关系中选择在指定属性上有确定值的关系的子集。

(2)可分配σA=a(rθs)=σA=a(r)θσA=a(s)其中θ=∩、∪或-,且r与s是同类关系。

广义选择:

Aa(r)={t|tr且t[A]a}

其中为、、、、、。选择运算的特性设r(R)是一个关系,A与B为R的属性。

(1)可交换

σA=a(σB=b(r))=σB=b(σA=a(r))。例:学生关系中,A=2011年入学, B=信息学院

(2)可分配σA=a(rθs)=σA=

1.2.3投影(Project)投影是选取关系中列的子集。设模式R上关系r,X是R上属性的子集,r到X上的投影r表示为:

r(X)=x(r)={t[X]|t∈r}。

投影的结果不是原来的关系,是X中几列属性。

**如果X中不包含R的键,则选取的列中会出现重复元组,r(X)中应不包含重复元组。例:Sno,Sname(S);Cno(S)1.2.3投影(Project)投影的特性:

投影的串接给定关系r(R),且YXR,则:Y(X(r))=Y(r)对一串投影而言,若X1X2

XmR,则:X1(X2(…(Xm(r))…))=X1(r)

投影与选择的可交换性

设r是R上的一个关系,A∈X,XR,则下式成立:

X(A=a(r))=A=a(X(r))投影的特性:SELECTSNO,SNAMEFROMSWHERECNO=200401投影选择检索200401班学生的姓名。SELECTSNO,SNAME投影选择检索200401班学如果R∩S=Φ,则r

s为关系r与s的笛卡尔积:r×s。

(1)

自然连接(NaturalJoin)

自然连接是在两个关系共同属性上的等值连接。设有关系r(R)与s(S),属性A是关系模式R与S的公共属性,

r与s的自然连接可用下式表示:

rs={t|t=trts[A]tr∈r,ts∈s&tr=t[R]

&ts=t[S]&tr[A]=ts[A]}

它表示r中元组与S中元组的串接,而且它们的公共属性值只出现一次。1.2.4连接(Join)如果R∩S=Φ,则rs为关系r与s的笛卡尔积:r×ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS例子:求R与S自然连接ABCa1b15a1b26a2b38a2b412BEb13bABCEa1b153a1b267a2b3810a2b382自然连接R

SABCEa1b153a1b267a2b3810a2b382

连接运算:有学生关系S与课程关系C.SELECTSNO,SNAME,S.CNO,CMNFROMS,CWHERES.CNO=C.CNO连接运算:有学生关系S与课程关系C.

(2)

θ_连接(Theta_Join)θ_连接:设r(R)与s(S)为两个关系,且A∈R,B∈S,dom(A)=dom(B),r与s在A与B上的θ_连接写作:

r[AθB]s设Q=R∪S,则θ_连接可用下式表示:

q[Q]={t|tq,trr&tss&t[R]=tr&t[S]=ts&t[A]θt[B]}其中θ为比较符:、、、、、示例(2)θ_连接(Theta_Join)ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS例子:ABCa1b15a1b26a2b38a2b412BEb13bRSAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

[C<E]RSAR.BCS.BEa1b15b27a1b15AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32等值连接R

S[R.B=S.B]AR.BCS.BEa1b15b13a1b26b27a2b38ABCEa1b153a1b267a2b3810a2b382自然连接R

SABCEa1b153a1b267a2b3810a2b382学生关系S(SNO,SNAME,AGE,SEX,DEPTNO)专业系DEPT(DEPTNO,DNAME)

选择运算:SNAME=‘LiMing’

(S);投影运算:SNO,SNAME,DEPTNO(S);

连接运算:

SDEPT

示例:学生关系S(SNO,SNAME,AGE,SEX,DEPT

思考:在第一章的建立数据库例子中,如何通过学号查该学生的入学年份与所学专业?如何通过系号查该系同学所住的宿舍区?如何通过学号查该学生所在系的的办公地点?

建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点、人数。学会:学会名、成立年份、办公地点、人数。学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)

班级:C(Class,Pname,Dept,Cnum,Cyear)

系:D(Dept,Dno,Office,Dnum)

学会:M(Mname,Myear,Maddr,Mnum)思考:在第一章的建立数据库例子中,如何通过学号2.5除法(Division)

即:对每一元组ts∈s都存在一元组tr∈r,使得tr[R']=t且tr[s]=ts设r÷s得到的新关系其属性集为X,则除法可用下式表示:R(X,Y)÷

S(Y)=

X(R)–

X(

X(R)×S–R)即

r÷s是满足下列条件的最大关系:

r÷s的每个元组t与s中每个元组u组成的元组<t,u>必在关系r中。

定义除:设关系r(R)与s(S),且SR。令R'=R–S,除运算r÷s的结果为一个新关系r',记作:

r÷s=r'(R')={t|tr'且tr∈r,ts∈s,t=tr[R']&tr[S]=ts,tsr}2.5除法(Division)909803

除法运算:

SC÷CDS909802

DB909802

OS909801

DB909801

课程号

学号

DBSC课程号

DBC课程号

OSDSCC课程号

DBOS909803除法运算:SC÷CDS90980285

1.3函数依赖(FunctionaldependencyFD)函数依赖定义1(FD)

设关系模式R(U),X,YU,r是R(U)上的任一关系,对任意t1、t2r,如果t1[X]=t2[X]有t1[Y]=t2[Y],称X函数决定Y,或Y函数依赖于X,记为:FDX→Y。定义2(FD的等价定义)对X中的任一值x,ΠY(σX=x(r))的值仅有一个元组,则有X→Y。

851.3函数依赖(Functionaldepe86

练习1设关系r如下所示:

r(ABCDE)a1b1c1d1e1a1b2c2d2e1a2b1c3d3e1

a2b1c4d3e1

a3b2c5d1e1说明r上函数依赖:

A→D,AB→D,C→BDE,E→A是否成立?86练习1设关系r如下所示:87

定义(平凡/非平凡的FD):设FDX→Y,如果YX,则称FDX→Y为非平凡的函数依赖;否则,若YX,称FDX→Y为平凡的函数依赖。

定义(完全FD):

设FDX→Y,如果对任意的XX,X→Y都不成立,则称X→Y是完全函数依赖;若对X的真子集X有XX,而X→Y成立,则称FDX→Y是部分函数依赖,即Y函数依赖于X的一部分。

练习1中函数依赖AB→D是完全依赖还是部分依赖?思考:如果X只有一个属性,X→Y是否一定是完全函数依赖?定义(传递FD):设关系模式R,X、Y、Z是R的属性子集,若FDX→Y,Y→X,Y→Z,则有FDX→Z,称FDX→Z为传递函数依赖。

函数依赖、完全依赖、传递依赖等基本概念是关系数据库范式的基础。87定义(平凡/非平凡的FD):设FDX→Y,如果88函数依赖的例子学校数据库的语义:⒈一个系有若干学生,一个学生只属于一个系;⒉一个系只有一名主任;⒊一个学生可以选修多门课程,每门课程有若干学生选修;⒋每个学生所学的每门课程都有一个成绩。

R(SNO,CNO,SNAME,GRADE,DEPT,MNG)

(1)找出其中基本的函数依赖?(2)哪些是平凡依赖?指出哪些是完全依赖?哪些是部分依赖?哪些是传递依赖

SNO→DEPT,DEPT→MNG;SNO,CNO→GRADE;

SNO,CNO→SNO;SNO,CNO→SNAME;SNO→MNG

88函数依赖的例子学校数据库的语义:R(SNO,CNO89函数依赖公理

由关系模式R上的函数依赖组成的集合F称为R上的函数依赖集,记为:FDsF。定义(FD的逻辑蕴涵):设关系模式R(U,F),X,YU,如果能从函数依赖集F推导出FDX→Y,则称F逻辑蕴涵FDX→Y,或称X→Y逻辑蕴涵于F。记为F|=X→Y。89函数依赖公理90

已知函数依赖集F,如何判断一个函数X→Y是否逻辑蕴涵于F?需要哪些推理法则(包括3个公理与3个推论)?Armstrong公理(三个公理):设r是R(U)上的一个关系,X、Y、Z、WU。A1.自反律:若YXU,则X→Y;A2.增广律:若X→Y且ZU,则XZ→YZ;A3.传递律:若X→Y,Y→Z,则X→Z.有以上三个公理,可以推出以下3个推论:推论1(合成规则):若X→Y,X→Z,则X→YZ推论2(分解规则):若X→Y且ZY,则X→Z推论3(伪传递规则)若X→Y,YZ→W,则XZ→W。90已知函数依赖集F,如何判断一个函数X→Y是否逻辑91推论1(合成规则):若X→Y,X→Z,则X→YZ。证明:若X→YX→XY

X→ZXY→YZX→YZ(增广与传递律推论2(分解规则):若X→Y且ZY,则X→Z。

证明:ZYY→Z(自反与传递律)推论3(伪传递规则)若X→Y,YZ→W,则XZ→W。

证明:X→YXZ→YZYZ→WXZ→W(增广与传递律)91推论1(合成规则):若X→Y,X→Z,则X→YZ。X→92示例:SC(SNO,CNO,SNAME,GRADE,DEPT,MN)

F={SNO,CNO→GRADE,SNO→SNAME,DEPT,DEPT→MN}

F|=SNO,CNO→SNAME,GRADE,DEPT,MN

SNO→SNAME,DEPT,MN(分解规则,传递律,合成规则)

SNO,CNO→SNAME,DEPT,MN

(自反律与传递律)SNO,CNO→SNAME,GRADE,DEPT,MN(合成规则)思考:由最后一个依赖关系,那否得出是SNO,CNO关系SC的键?92示例:SC(SNO,CNO,SNAME,GRADE,DE93定理:如果Ai(i=1,2,…,n)是关系模式R的属性,则X→A1

A2…An

成立的充要条件是:

X→Ai(i=1,2,…,n)都成立。93定理:如果Ai(i=1,2,…,n)是关系模94

例:设F={AB→E,AG→J,BE→I,E→G,GI→H}试证:F|=AB→GH

证明:用公理系统与F中的函数依赖,推导过程如下:1.已知AB→E,E→G

则:AB→G;(传递律)2.已知AB→E则:AB→BE;(增广律)3.已知BE→I,又AB→BE则:AB→I(传递律)4.由1与3有AB→G,AB→I则:AB→GI(合成规则)5.由4有AB→GI,又GI→H

则:AB→H(传递律)6.由1与5有AB→H,AB→G则:AB→GH(合成规则)94例:设F={AB→E,AG→J,BE→I,E→G,95定义(使用集)用公理从F推出X→Y成立所使用的函数依赖组成的序列称F上的一个推理序列。在推理序列中出现的且包含在F中的函数依赖的集合称推理序列的使用集(useset),记为:

U(F,X→Y)例:U(F,AB→GH)

={AB→E,E→G,BE→I,GI→H}95定义(使用集)例:U(F,AB→GH)96定义(函数依赖集F的闭包F+)

设F是关系r(R)上的函数依赖集,F所蕴含的所有FD的集合称为F的闭包,记作F+。F+={X→Y|所有F|=X→Y}

例:设F={AB→C,C→B}。

求F+96定义(函数依赖集F的闭包F+)97设F={AB→C,C→B}。

F+为:

F+={A→A,AB→A,AC→A,ABC→A,B→B,AB→B,BC→B,ABC→B,C→C,AC→C,BC→C,ABC→C,AB→AB,ABC→AB,AC→AC,ABC→AC,BC→BC,ABC→BC,ABC→ABC,AB→C,AB→AC,AB→BC,AB→ABC,C→B,C→BC,AC→B,AC→AB}97设F={AB→C,C→B}。98为了判定函数依赖集F是否蕴涵X→Y,引入的属性闭包:定义(属性集X的闭包X+

)

设关系模式R(U,F),U=A1A2…An,XU,所有用公理与F推出的函数依赖X→Ai中Ai的集合,称X对于函数依赖集F的闭包,记作:X+X+={Ai|F|=

X→Ai

且Ai

U}98为了判定函数依赖集F是否蕴涵X→Y,引入的属性闭包:99

函数依赖集闭包及成员测试算法算法1计算属性集X的闭包X+的算法输入:属性集X与函数依赖集F

输出:X的闭包X+

WhileRESULT≠VARdoBeginVAR:=RESULT;

foreveryFDW→ZinFdo

ifWRESULTthenRESULT:=RESULT∪Z

end;return(RESULT)end.//其中的原理:由

WRESULT

,由自反律:RESULT

→W,再由传递律:RESULT

→ZCLOSURE(X,F)BeginVAR:=φ;RESULT:=X;99函数依赖集闭包及成员测试算法WhileR100例:

F={

温馨提示

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

评论

0/150

提交评论