好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

关系模型和关系运算课件.ppt

140页
  • 卖家[上传人]:博****1
  • 文档编号:589736410
  • 上传时间:2024-09-11
  • 文档格式:PPT
  • 文档大小:1.05MB
  • / 140 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    •        《《数据库新技术数据库新技术》》简介简介l一一. . 本课程主要内容本课程主要内容l二二. . 主要参考书主要参考书l三三. . 课程要求和考核方式课程要求和考核方式l四四. . 数据库技术的发展趋势数据库技术的发展趋势l五五. . 数据库领域的新技术数据库领域的新技术 一一. .本课程主要内容本课程主要内容l第第1 1章章 关系数据库基本理论关系数据库基本理论l 关系数据库基本概念关系数据库基本概念、、 关系运算关系运算、、数据依赖数据依赖、、关系数据库范式算法关系数据库范式算法l第第2章章  数据库系统设计数据库系统设计l 数据库系统设计的任务与内容,数据库系统设计方法与步骤、数据库管理数据库系统设计的任务与内容,数据库系统设计方法与步骤、数据库管理系统的功能和组成系统的功能和组成l第第3 3章章 分布式数据库系统分布式数据库系统l 分布式数据库系统的特点分布式数据库系统的特点、、分布式数据库系统的体系结构分布式数据库系统的体系结构、、分布式查询处分布式查询处理理、、分布式事务管理分布式事务管理l第第4 4章章 面向对象数据库面向对象数据库l 面向对象数据模型面向对象数据模型、、面向对象数据库系统的查询和并发控制面向对象数据库系统的查询和并发控制、、对象对象- -关系数关系数据库管理系统。

      据库管理系统l第第5章章 互联网分布式系统的数据资源存储与管理互联网分布式系统的数据资源存储与管理l         Key/valueKey/value数据存储与管理系统数据存储与管理系统、数据划分、、数据划分、复制和一致性保障复制和一致性保障、、可用性保可用性保障机制障机制 本课程主要内容本课程主要内容第第6 6章章 云计算中的数据库云计算中的数据库 介绍几种典型云计算中的数据库存储和管理系统,包括:Google云计算中的数据库Bigtable、 Hadoop中的数据库HBase、 Amazon云计算中的中的简单数据服务Simple DB和关系数据库服务RDS、 微软云计算中的数据库SQL Azure等 云计算补充内容:云计算补充内容:云计算的概念、云计算发展现状、云计算实现机制等第第7 7章章 大数据时代的数据存储和管理大数据时代的数据存储和管理---NoSQL---NoSQL 大数据简介、关系数据库的瓶颈、NoSQL简介、CAP理论、NoSQL数据模型及分类、 NoSQL应用现状、几个典型的NoSQL。

      第第8 8章章 数据库技术新进展数据库技术新进展 数据库技术新进展,包括:数据仓库、数据挖掘、并行数据库、Web数据库、多媒体数据库、工程数据库、主动数据库等第第9 9章章 数据库技术论文选读数据库技术论文选读 选择10-15篇与教学内容相关的学术论文进行讲解,让学生了解本学科的基本研究方法和研究方向 二.二.  主要参考书主要参考书1. 1. 数据库云平台理论与实践数据库云平台理论与实践 清华大学出版社清华大学出版社 2016.12016.12. 2. 刘鹏,刘鹏, 云计算(第二版)云计算(第二版), , 电子出版社电子出版社, 2011.10 , 2011.10 3. 3. 何小朝,纵横大数据何小朝,纵横大数据 ,,电子出版社电子出版社, 2014.5, 2014.54. 4. 王珊王珊 萨师煊,萨师煊, 数据库系统概论数据库系统概论 高等教育出版社高等教育出版社 20092009 因为数据库技术涉及内容广泛,本课程使用了比较多的参考书因为数据库技术涉及内容广泛,本课程使用了比较多的参考书, ,不同章节使不同章节使用不同参考书中相关部分,但本课程内容本身自成体系。

      对以前一点没有学过用不同参考书中相关部分,但本课程内容本身自成体系对以前一点没有学过数据库基本知识的同学,可以从参考书数据库基本知识的同学,可以从参考书4 4或其它相关参考书中进一步相关知识或其它相关参考书中进一步相关知识 三.三.  课程要求和考核方式课程要求和考核方式v 掌握相关理论、原理和技术掌握相关理论、原理和技术v 完成有课后书面作业和上机实践完成有课后书面作业和上机实践v 期末闭卷考试期末闭卷考试v 成绩:平时作业(成绩:平时作业(3 30 0)+期末考试成绩()+期末考试成绩(7 70 0)) 任课教师: 苏桂平 : 邮箱: 四四. .数据库技术的发展趋势数据库技术的发展趋势l       信息技术的不断发展和信息需求的不断增长是数据信息技术的不断发展和信息需求的不断增长是数据库技术不断发展的动力库技术不断发展的动力l       信息需求的深入和多样化不断提出了许多需要解决信息需求的深入和多样化不断提出了许多需要解决的问题,信息技术不断快速发展和功能增强,为数据库的问题,信息技术不断快速发展和功能增强,为数据库技术提供了坚实的基础。

      技术提供了坚实的基础l      下面研究数据库技术面临的挑战和发展趋势下面研究数据库技术面临的挑战和发展趋势     数据库技术面临的挑战数据库技术面临的挑战l((1)) 环境的变化环境的变化l      数据库系统的应用环境由可控制的环境转变为多数据库系统的应用环境由可控制的环境转变为多变的异构信息集成环境和变的异构信息集成环境和Internet环境l((2)) 数据类型的变化数据类型的变化l      数据库中的数据类型由结构化扩大至半结构化、数据库中的数据类型由结构化扩大至半结构化、非结构化和多媒体数据类型非结构化和多媒体数据类型l((3))数据来源的变化数据来源的变化l      大量数据将来源于实时和动态的传感器或监测设大量数据将来源于实时和动态的传感器或监测设备,需要处理的数据量成倍剧增备,需要处理的数据量成倍剧增l((4))数据管理要求的变化数据管理要求的变化l      许多新型应用需要支持协同设计和工作流管理许多新型应用需要支持协同设计和工作流管理             数据库技术的发展趋势数据库技术的发展趋势l可以执行分布式处理的可以执行分布式处理的分布式数据库技术分布式数据库技术l可以处理复杂对象的可以处理复杂对象的面向对象数据库技术面向对象数据库技术l可以处理多媒体海量数据的可以处理多媒体海量数据的多媒体数据库技术多媒体数据库技术l可以对数据库中数据进行多维和历史分析的可以对数据库中数据进行多维和历史分析的数据仓库技术数据仓库技术l可以支持长事务和协调处理的可以支持长事务和协调处理的工作流数据库技术工作流数据库技术l可以存储空间位置信息的可以存储空间位置信息的空间数据库技术空间数据库技术l移动互联、社交网络、电子商务等极大拓展了互联网的边界和应移动互联、社交网络、电子商务等极大拓展了互联网的边界和应用范围,各种数据正在迅速膨胀并变大,出现了用范围,各种数据正在迅速膨胀并变大,出现了大数据存储和管大数据存储和管理技术理技术l为了将计算任务分布在大量计算机构成的资源池上,使各种应用为了将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务,产生了系统能够根据需要获取计算力、存储空间和信息服务,产生了云云计算计算和对应的数据库技术和对应的数据库技术 Ø Key/Value数据数据库库Ø 大数据技术大数据技术Ø 云计算中的数据库云计算中的数据库Ø 分布式数据库分布式数据库Ø 面向对象数据库面向对象数据库Ø 对象对象——关系数据库关系数据库Ø 数据仓库和数据挖掘数据仓库和数据挖掘Ø主动数据库主动数据库Ø空间数据库空间数据库Ø时态数据库时态数据库Ø嵌入式数据库嵌入式数据库Ø并行数据库并行数据库Ø多媒体数据库多媒体数据库Ø工程数据库工程数据库 五五. . 数据库领域的新技术数据库领域的新技术 除了传统的关系数据库外,有新的数据库及相关技术不断除了传统的关系数据库外,有新的数据库及相关技术不断出现,主要包括出现,主要包括:: NoSQLNoSQL数据模型及分类数据模型及分类(在云平台和大数据时代(在云平台和大数据时代))类型型部分代表部分代表特点特点列存列存储HbaseCassandraHypertable顾名思义,是按列存储数据的。

      最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势文档存文档存储MongoDBCouchDB文档存储一般用类似json的格式存储,存储的内容是文档型的这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能key-value存存储Tokyo Cabinet / TyrantBerkeley DBMemcacheDBRedis可以通过key快速查询到其value一般来说,存储不管value的格式,照单全收Redis包含了其他功能)图存存储Neo4JFlockDBInfoGrid图形关系的最佳存储使用传统关系数据库来解决的话性能低下,而且设计使用不方便对象存象存储db4oVersant通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据xml数据数据库Berkeley DB XMLBaseX高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath 第第1 1章章 关系数据库关系数据库基本基本理论理论l1.1 关系数据库基本概念关系数据库基本概念l1.2 关系运算关系运算l1.3 数据依赖数据依赖l1.4 关系数据库范式理论关系数据库范式理论l  1.1 关系数据库基本概念1.1.1 1.1.1 数据模型数据模型1.1.2 1.1.2 关系和关系模式关系和关系模式1.1.3 1.1.3 键键1.1.4 1.1.4 关系的更新关系的更新 数据模型的组成要素:数据模型的组成要素: 数据结构、数据操作、数据结构、数据操作、 数据的完整性数据的完整性基本的数据模型分类:基本的数据模型分类: 层次、网状、关系数据模型、层次、网状、关系数据模型、面向对象数据模型面向对象数据模型、、 Key/ValueKey/Value数据存储模式。

      数据存储模式1.1.1   数据模型数据模型    1.数据模型的组成要素数据模型的组成要素 (( l )数据结构:)数据结构:用于描述数据的静态结构,包括应用用于描述数据的静态结构,包括应用所涉及的对象类和对象类所具有的特性以及它们之间所涉及的对象类和对象类所具有的特性以及它们之间的联系  ((2 )数据操作:)数据操作:是施加在对象上的一组操作,是对系是施加在对象上的一组操作,是对系统动态特性的描述统动态特性的描述 ((3 )数据的完整性:)数据的完整性:是对数据静态和动态特征性的限是对数据静态和动态特征性的限制,是一组完整性规则的集合制,是一组完整性规则的集合           完整性规则是用以限定符合数据模型的数据库状完整性规则是用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容态以及状态的变化,以保证数据的正确、有效、相容 (1)(1)层次模型层次模型 有且仅有一个结点无双亲,称为根结点;有且仅有一个结点无双亲,称为根结点;其它结点有且仅有一个双亲其它结点有且仅有一个双亲 层次模型的数据结构是一棵树层次模型的数据结构是一棵树。

      2. 基本数据模型分类基本数据模型分类 大学组织机构的层次模型大学组织机构的层次模型  (2) 网状模型网状模型 允许一个结点可以有多个双亲;允许一个结点可以有多个双亲; 多个结点无双亲结点多个结点无双亲结点班级课程学生 基本结构是二维表,一张表称为一个关系基本结构是二维表,一张表称为一个关系与层次和网状模型比较,关系模型有下列优点:与层次和网状模型比较,关系模型有下列优点: 数据结构单一;数据结构单一; 建立在严格的数学概念基础上;建立在严格的数学概念基础上; 将数据定义和数据操纵统一在一种语言中,使用方将数据定义和数据操纵统一在一种语言中,使用方便,易学易用便,易学易用l 由于关系模型具有许多优点,因而在由于关系模型具有许多优点,因而在8080年代之后的年代之后的商品化数据库系统几乎都是关系型的商品化数据库系统几乎都是关系型的 (3)  关系数据模型关系数据模型  陆川陆川 200402  刘敏刘敏 200401  李丽李丽 200302  王鸣王鸣 200301 班级班级 姓名姓名 学号学号 (a) 学生关系学生关系   9020042 数数 据据 库库 计算机计算机  曹曹 岩岩   9020041  人工智能人工智能 计算机计算机  马小路马小路   9020032  英语英语  外外 语语  赵赵  伟伟   9020031  计算数学计算数学  数数 学学  吴云峰吴云峰  班级班级  课程课程  系别系别 教师姓名教师姓名 (b) 教师开课关系教师开课关系 可以表示复杂对象;可以表示复杂对象; 模块化的结构,便于管理;模块化的结构,便于管理; 具有定义抽象数据类型的能力。

      具有定义抽象数据类型的能力 面面向向对对象象的的数数据据模模型型是是新新一一代代数数据据库库系系统统的的基础,是数据库技术发展的方向基础,是数据库技术发展的方向 (4)  面向对象数据模型面向对象数据模型     (5) Key/Value(5) Key/Value数据存储模式数据存储模式l        传统关系数据库是针对结构化数据以及这些数据之上的复杂查询设计传统关系数据库是针对结构化数据以及这些数据之上的复杂查询设计的互联网计算环境下,互联网计算环境下,数据的规模较大,要处理的互联网数据有很多是非数据的规模较大,要处理的互联网数据有很多是非结构化的数据,很多互联网应用结构化的数据,很多互联网应用(例如互联网搜索、电子商务等应用)(例如互联网搜索、电子商务等应用)并不并不需要对数据进行复杂的查询需要对数据进行复杂的查询,这就使得传统关系型数据库的一些优点在互联,这就使得传统关系型数据库的一些优点在互联网环境下反而成为了缺点网环境下反而成为了缺点l        分布式分布式key/value存储系统比关系数据库更适于互联网环境存储系统比关系数据库更适于互联网环境,所以,,所以,只只需主键简单查询的需求广泛存在于互联网应用需主键简单查询的需求广泛存在于互联网应用中中,分布式,分布式key/value存储和存储和管理系统日益受到重视管理系统日益受到重视。

      l 一个一个Key/ValueKey/Value数据模型例子如下图数据模型例子如下图:: 1.1.2 1.1.2 关系和关系模式关系和关系模式1. 1. 关系关系• 在关系模型中唯一的数据结构是关系,一个关系对应一张在关系模型中唯一的数据结构是关系,一个关系对应一张二维表•域域 : : 具有相同数据类型的值的集合具有相同数据类型的值的集合定义定义1 1((笛卡尔积)笛卡尔积)::D D1 1,D,D2 2,...,Dn,...,Dn的笛卡尔积为:的笛卡尔积为: D D1 1 D D2 2 ...... D Dn n ={ (d ={ (d1 1,d,d2 2,...,d,...,dn n) ) d di i D Di i,,i=1,2,...,n }i=1,2,...,n } 其中每一个元素其中每一个元素( (d d1 1,d,d2 2,...,d,...,dn n) )叫做一个叫做一个n n元组元组( (n-tuple)n-tuple),元素,元素中第中第i i个值个值d di i叫做第叫做第i i个分量例:例:设设D D1 1 ={1={1,,2 2,,3}3},, D D2 2 ={a,b}={a,b} D D1 1 D D2 2 ={(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)}={(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)} 实际上,如实际上,如D1D1—学生集(学生集(5050个),个),如如D2D2—班级集(班级集(2 2个),个), D1 D1   D2 D2 有多少元素?具体意义?有多少元素?具体意义?• 定义定义2 2(关系):(关系):集合集合D D1 1,D,D2 2,...,D,...,Dn n笛卡尔积的任一笛卡尔积的任一个子集称该集合上的一个关系个子集称该集合上的一个关系( (Relation)Relation)。

      其其中中, ,集集合合D D1 1,D,D2 2,...,Dn,...,Dn是是关关系系中中元元组组的的取取值值范范围围,,称称关关系系的的域域( (domain)domain),,这这些些域域是是有有限限的的非非空空集集合合,,n n叫叫做关系的做关系的度度( (degree)degree) 关系的基本概念关系的基本概念§关系关系((Relation))二维表,关系用关系名标识,如关系二维表,关系用关系名标识,如关系r§元组元组((Tuple)) 表中的行,一般用变量表中的行,一般用变量 t 表示§属性属性((Attribute)) 表中的一列,如列表中的一列,如列A Ai i,, dom[Adom[Ai i] ]表示属性表示属性A Ai i的域的域 §键键((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       TOXuZhouXuZhou h关系的性质关系的性质 ( (关系数据库中对关系的限定关系数据库中对关系的限定) ) 1. 1. 每一列中的值是同类型的数据,来自同一个域每一列中的值是同类型的数据,来自同一个域 2. 2. 不同的列可以有相同的域,每一列称为属性,用属性不同的列可以有相同的域,每一列称为属性,用属性名标识 3. 3. 列的顺序是无关紧要的列的顺序是无关紧要的 4. 4. 任意二个元组不能完全相同相同元组称重复组)任意二个元组不能完全相同相同元组称重复组) 5. 5. 行的顺序是无关紧要的行的顺序是无关紧要的 6. 6. 关系中的每个分量都是原子值,是不可分的数据项关系中的每个分量都是原子值,是不可分的数据项。

      2. 2. 关系模式关系模式 关系模式一般表示为:关系模式一般表示为:关系名(属性关系名(属性1、、……属性属性n)) 如:如:R R(A(A1 1,A,A2 2, ,…,A,An n) ) 用用U U表示关系表示关系R R的属性集合的属性集合 U=A1∪A2∪…∪An ,U=A1∪A2∪…∪An , 模式模式R R上的一个关系上的一个关系r r是从是从U U到到D D的映象 元组元组t∈rt∈r,,t t的分量用的分量用t[At[Ai i] ]表示表示. .t[At[Ai i]∈D]∈Di i例:例: 在学生关系模式在学生关系模式 S(SNO,SNAME,AGE,SEX,,CNO)中,中,           当当CNO=1, 就可以一班学生的列表,即一个具体的关系;就可以一班学生的列表,即一个具体的关系;           当当CNO=2, 就可以二班学生的列表,即另一个具体的关系就可以二班学生的列表,即另一个具体的关系                   定义定义(关系数据库模式关系数据库模式): l           设属性集设属性集U和和U的属性所关联的域为的属性所关联的域为D,,U上的上的关系数关系数据库模式据库模式R是是 R1, R2, …, Rp 的集合,即:的集合,即:R ={R1, R2, …, Rp} ,,且且U =R1∪ ∪ R2∪ ∪ … ∪ ∪ Rp 。

      l比如:比如:lR1为学生关系:为学生关系:S(Sno,,Sname,,Sbirth,,Dept,,Class,,Rno)lR2为班级关系:为班级关系:C(Class,,Pname,,Dept,,Cnum,,Cyear)    R3为系关系:为系关系:D(Dept,,Dno,,Office,,Dnum)    R4为学生会为学生会 关系:关系:M(Mname,,Myear,,Maddr,,Mnum)l关系数据库:关系数据库:一个一个关系数据库模式关系数据库模式R 对应的所有关系集合对应的所有关系集合 {r1, r2, …, rp}称为关系数据库模式称为关系数据库模式R上的一个关系数据库上的一个关系数据库d. 关系模式和关系的区别和联系:l关系模式::对一类实体特征的结构性描述,即对关系的对一类实体特征的结构性描述,即对关系的结构性描述,该描述一般包括关系名、属性名、属性域结构性描述,该描述一般包括关系名、属性名、属性域的类型和长度,属性之间固有的依赖联系等的类型和长度,属性之间固有的依赖联系等l关系模式和关系的区别和联系:关系模式描述的是关系关系模式描述的是关系的静态结构信息,是对一个关系的的静态结构信息,是对一个关系的““型型””的描述,是相的描述,是相对固定的。

      关系是在关系模式约束之下的若干实体的集对固定的关系是在关系模式约束之下的若干实体的集合,实体的数量是随时间变化的,但这种变化必定在关合,实体的数量是随时间变化的,但这种变化必定在关系模式的约束范围内系模式的约束范围内l 一般用大写字母表述关系的结构,比如一般用大写字母表述关系的结构,比如R R,用小写字母一个具,用小写字母一个具体的关系值体的关系值, ,如如r.r. 1. 1.1.1.3 3 键(键(KeyKey)和关系的完整性)和关系的完整性 1.1.键键 设关系模式设关系模式R(U)R(U),,K K   U U,,r r是是R R上的任一关系,若上的任一关系,若对对r r中的任意二个不同的元组中的任意二个不同的元组t t1 1、、t t2 2满足满足: : (1) (1) t t1 1[K] [K]   t t2 2[K][K];; (2) (2) 若若 K K K K 而而t t1 1[K[K ] ]   t t2 2[K[K ] ] 不成立称称K K是是R R的的键键若仅条件若仅条件( (1)1)成立,成立,K K是是R R的的超键超键。

      有键的定义得出:键是能唯一标示元组的最小属有键的定义得出:键是能唯一标示元组的最小属性集在上面火车时刻表的例子中,性集在上面火车时刻表的例子中,NUMBERNUMBER是一个是一个键     2. 主键、隐含键、候选键、主键、隐含键、候选键、 超键超键l主键:主键:有的关系具有多于一个键,这种情况下指派其中一有的关系具有多于一个键,这种情况下指派其中一个键为主键,简称为关系的键用带下划线的属性表示个键为主键,简称为关系的键用带下划线的属性表示例如:例如: lTRAIN(NUMBER, FROM, TO, DEPARTS, ARRIVES )l TRAIN(NUMBER, FROM, TO, DEPARTS, ARRIVES )l隐含键:隐含键:未被制定的键称隐含键,也称替补键未被制定的键称隐含键,也称替补键l候选键:候选键:主键和隐含键统称为候选键主键和隐含键统称为候选键l超键:超键: 在上面键的定义中,若条件(在上面键的定义中,若条件(2)不成立,称)不成立,称K为为R的超键 例如:例如:NUMBER、、 FROM是一个超键是一个超键 3. 3. 关系的完整性关系的完整性 ((1 1)关系模型的三要素:)关系模型的三要素:• 数据结构数据结构 关系模型的数据结构为单一的关系,它表示了实体和实关系模型的数据结构为单一的关系,它表示了实体和实体间的联系。

      体间的联系• 关系操作关系操作 关系操作关系操作 关系代数:布尔运算、专门关系运算;关系代数:布尔运算、专门关系运算; 关系演算:关系元组演算、域演算关系演算:关系元组演算、域演算• 完整性约束完整性约束 实体完整性、参照完整性、用户定义的完整性实体完整性、参照完整性、用户定义的完整性 • 实体完整性实体完整性 关系中键属性的值不能取关系中键属性的值不能取空值空值 例如:学生关系例如:学生关系 S(S(SNOSNO,SNAME,AGE,SEX,CNO),SNAME,AGE,SEX,CNO)• 参照完整性参照完整性 是关系间引用所遵循的规则,与是关系间引用所遵循的规则,与外键外键有关 • 用户定义的完整性用户定义的完整性 数据间应满足的语义约束关系,由用户定义,由系统检数据间应满足的语义约束关系,由用户定义,由系统检查2 2)完整性约束)完整性约束 下下页 u 外键:外键: 设设F F是关系是关系R R的一个或一组属性,但不是的一个或一组属性,但不是R R的键。

      的键 若若F F是另一个关系是另一个关系S S的键,则称的键,则称F F是关系是关系R R的外键 R R为参照关系,为参照关系,S S为被参照关系为被参照关系 例如:例如: 参照关系参照关系 学生关系学生关系 S(S(SNOSNO,SNAME,AGE,SEX,SNAME,AGE,SEX,,CNOCNO) ) 班级关系班级关系 C(C(CNOCNO, CMN) , CMN) --- --- 被参照关系被参照关系 u 参照完整性规则参照完整性规则 关系关系R R中外键的值或者为空值,或中外键的值或者为空值,或者为被参照关系中主键的值者为被参照关系中主键的值     建立表结构和完整性约束建立表结构和完整性约束 补充:补充:SQLSQL语言简介语言简介                                     SQL是是英英文文Structured Query Language的的缩缩写写,,意意思思为为结结构构化化查查询询语语言言。

      SQLSQL语语言言将将数数据据定定义义语语言言DDLDDL、、数数据据操操纵纵语语言言DMLDML、、数数据据控控制制语语言言DCLDCL的的功功能能集集于于一一体体,,可可以以独独立立完完成成数数据据库库生生命周期中的全部活动命周期中的全部活动. .           SQL被被作作为为关关系系型型数数据据库库管管理理系系统统的的标标准准语语言言目目前前,,绝绝大大多多数数流流行行的的关关系系型型数数据据库库管管理理系系统统,,如如Oracle,  Sybase, Microsoft SQL Server, Access等都采用了等都采用了SQL语言标准语言标准            基基本本的的SQL语语句句包包括括Select、、Insert、、 Update、、Delete、、Create、、Drop,它们可以被用来完成几乎所有的数据库操作它们可以被用来完成几乎所有的数据库操作            很多数据库根据不同的需要对很多数据库根据不同的需要对SQL语句进行了再开发和扩展语句进行了再开发和扩展 SQL的基本语句l1. 创建新表创建新表l create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) l例:CREATE TABLE C l (CNO NUMBER(6) ,l CMN CHAR(10) )l2.选择选择lselect * from table1 where 范围范围 l例:SELECT SNO,SNAME l FROM S l WHERE CNO=200201l3.插入插入linsert into table1(field1,field2) values(value1,value2) l例:INSERT INTO Sl VALUES(909901, ‘李利’,l 21,‘男’,200205); l4.删除删除ldelete from table1 where 范围范围 l例:DELETE FROM Sl WHERE SNO= 20100162 ;l5.更新(修改)更新(修改)lupdate table1 set field1=value1 where 范围范围 l例:UPDATE S l SET Sage=23 l WHERE Sno=‘20100162’l l 完成核心功能完成核心功能SQLSQL语言只用语言只用9 9个动词,并且它的表达接近英语个动词,并且它的表达接近英语句子,所以比较简单、易学。

      句子,所以比较简单、易学l SQLSQL语言既是自含式语言,又是嵌入式语言作为自含式语语言既是自含式语言,又是嵌入式语言作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入键盘上直接键入SQLSQL命令对数据库进行操作;作为嵌入式语言,命令对数据库进行操作;作为嵌入式语言, SQLSQL语句能够嵌入到高级语言,比如:语句能够嵌入到高级语言,比如:C C、、PL/1PL/1、、FORTRANFORTRAN CREATE TABLE SCREATE TABLE S ((SNO NUMBER(4)SNO NUMBER(4),, SNAME CHAR(10) NOT NULLSNAME CHAR(10) NOT NULL,, AGE NUMBER(3) ,AGE NUMBER(3) , SEX CHAR(1), SEX CHAR(1), CNO NUMBER(6), CNO NUMBER(6), CONSTRAINT SK1 CONSTRAINT SK1 PRIMARY KEY (SNO),PRIMARY KEY (SNO), CONSTRAINT SK2 FOREIGN KEY(CNO)CONSTRAINT SK2 FOREIGN KEY(CNO) REFERENCES C(CNO)), REFERENCES C(CNO)), CONSTRAINT SK3 CONSTRAINT SK3 CHECK(AGE IN (16,45))CHECK(AGE IN (16,45))) );;CREATE TABLE C CREATE TABLE C ((CNO NUMBER(6)CNO NUMBER(6),, CMN CHAR(10),CMN CHAR(10), CONSTRAINT CK CONSTRAINT CK PRIMARY KEY (CNO)PRIMARY KEY (CNO)) );; 1.1.4 1.1.4 关系的更新关系的更新—插入、删除、修改 1 1.插入.插入 对关系对关系r(Ar(A1 1,A,A2 2, ,…,An),,An),插入操作形式为:插入操作形式为: ADD(rADD(r;;A A1 1 = d = d1 1, A, A2 2 = d = d2 2, , …A An n = d = dn n) ) ADD(r ADD(r;;d d1 1, d, d2 2, , …, d, dn n) ) 例:例:ADD(SADD(S;;SNO=909901, SNAME = SNO=909901, SNAME = 李利李利, , AGE=21, SEX= AGE=21, SEX=男,男,CLASSNO=200205CLASSNO=200205))插入操作的有效检查:插入操作的有效检查:(1).(1).描述的元组是否符合所指定的关系模式描述的元组是否符合所指定的关系模式; ;(2).(2).元组的某些值是否属于对应的域元组的某些值是否属于对应的域; ;(3).(3).元组的键是否已在关系中存在。

      元组的键是否已在关系中存在 例:用例:用SQLSQL语言实现在学生关系语言实现在学生关系S S中插入一个元组中插入一个元组 INSERT INTO SINSERT INTO S VALUES VALUES((909901909901,, ‘李利李利’,, 21 21,,‘男男’,,200205200205);); 2 2.删除.删除 对关系对关系r(Ar(A1 1,A,A2 2, ,…,An),An),删除操作形式为:,删除操作形式为: DEL(rDEL(r;;A A1 1=d=d1 1, A, A2 2=d=d2 2, , … A An n=d=dn n) ) DEL( r DEL( r;;d d1 1, d, d2 2, , … d dn n );); 若若K=BK=B1 1B B2 2…B Bm m,,DEL( r; BDEL( r; B1 1=k=k1 1, B, B2 2=k=k2 2, , … B Bm m=k=km m) ) 例:例:DEL(SDEL(S;;SNO=909901, SNAME = SNO=909901, SNAME = 李利李利, , AGE=21, SEX= AGE=21, SEX=男,男,CLASSNO=200205CLASSNO=200205))删除操作的检查:删除操作的检查: 如果被删除元组在关系中不存在,这如果被删除元组在关系中不存在,这个关系将保持不变,但需给出一个出错提示个关系将保持不变,但需给出一个出错提示。

      ** 删去最后一个元组不受限制,即允许是空关系删去最后一个元组不受限制,即允许是空关系 实际上,为了识别被删除的元组并不实际上,为了识别被删除的元组并不需要所有元组的信息,只需要制定键需要所有元组的信息,只需要制定键的值就足够了比如:的值就足够了比如:删除学号为删除学号为909901909901的学生元组的学生元组 DELETE FROM SDELETE FROM S WHERE SNO=909901 WHERE SNO=909901;; 3 3.修改.修改 修改元组的部分值对关系修改元组的部分值对关系r(Ar(A1 1,A,A2 2, ,…,An),An),若属性集,若属性集 { {C C1 1,C,C2 2, ,…,Cp},Cp}  {A {A1 1,A,A2 2, ,…An},An},则修改操作形式为:则修改操作形式为: CH(rCH(r;;A A1 1=d=d1 1,A,A2 2=d=d2 2, ,…A An n=d=dn n;;C C1 1=e=e1 1,C,C2 2=e=e2 2, ,…,C,Cp p=e=ep p)) 如果如果K K=={B{B1 1, B, B2 2, , … B Bm m} }为键,则可简化为:为键,则可简化为: CH(rCH(r;;B B1 1=k=k1 1,B,B2 2=k=k2 2, ,…B Bm m=k=km m;;C C1 1=e=e1 1,C,C2 2=e=e2 2;;…C Cp p=e=ep p)) 例例: : CH(SCH(S;;SNO=909901SNO=909901;;CLASSNO=200203) CLASSNO=200203) 修改操作可用删除操作后跟一个插入操作实现。

      对插入修改操作可用删除操作后跟一个插入操作实现对插入和删除操作的限制可运用到修改操作中和删除操作的限制可运用到修改操作中 例例: : 施加一系列操作于火车时刻表施加一系列操作于火车时刻表 1. 1. ADD(trainADD(train;;33, TianJin, ShangHai,33, TianJin, ShangHai, 17:20, 10:36); 17:20, 10:36);2. ADD(train2. ADD(train;;Y15, BeiJing, TianJin,Y15, BeiJing, TianJin, 10:05, 12:43); 10:05, 12:43);3. DEL (train3. DEL (train;;523);523);4. CH (train4. CH (train;;NUMBER=532; NUMBER=532; DEPARTS=22:45, ARRIVES=10:42) DEPARTS=22:45, ARRIVES=10:42)  火车时刻表火车时刻表7:3717:13WuChangShenZhenK967:1816:55ShenZhenWuChangK959:4021:45BeiJingLuoYang5326:0621:30LuoYangXuZhou5237:5420:40BeiJing565ARRIVESDEPARTS  FROMNUMBER       TOXuZhouXuZhou     练习练习l        建立一个关于系、学生、班级、学会等诸信息的关系建立一个关于系、学生、班级、学会等诸信息的关系数据库。

      数据库l      学生:学号、姓名、出生年月、系名、班号、宿舍区学生:学号、姓名、出生年月、系名、班号、宿舍区l      班级:班号、专业名、系名、人数、入校年份班级:班号、专业名、系名、人数、入校年份l        系:系名、系号、系办公地点、人数系:系名、系号、系办公地点、人数l    学会:学会名、成立年份、办公地点、人数学会:学会名、成立年份、办公地点、人数l      语义如下:一个系有若干专业,每个专业每年只招一语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生一个系的学生住在同一宿舍区个班,每个班有若干学生一个系的学生住在同一宿舍区每个学生可参加若干学会,每个学会有若干学生学生参每个学生可参加若干学会,每个学会有若干学生学生参加某学会有一个入会年份加某学会有一个入会年份l      请给出关系模式,指出各关系模式的候选键和外键请给出关系模式,指出各关系模式的候选键和外键      练习解答练习解答l解:解:(1)关系模式如下:关系模式如下:l  学生:学生:S(Sno,,Sname,,Sbirth,,Dept,,Class,,Rno)l  班级:班级:C(Class,,Pname,,Dept,,Cnum,,Cyear)l  系:系:D(Dept,,Dno,,Office,,Dnum)l  学会:学会:M(Mname,,Myear,,Maddr,,Mnum)l  (2)各关系模式的候选键、外部键如下:各关系模式的候选键、外部键如下:l  A、学生、学生S候选键:候选键:Sno;外部键:;外部键:Dept、、Class;;l  B、班级、班级C候选键:候选键:Class;外部键:;外部键:Dept;;l  C、系、系D候选键:候选键:Dept或或Dno;无外部键;;无外部键;l  D、学会、学会M候选键:候选键:Mname;无外部键。

      无外部键l课后练习:如何用课后练习:如何用SQL来创建该数据库?(建议没有学过数据来创建该数据库?(建议没有学过数据库的同学在自学库的同学在自学SQL后练习一下)后练习一下) 1.2 1.2 关关 系系 运运 算算 1.2.1 1.2.1 布尔运算布尔运算 1.2.2 1.2.2 选择选择 1.2.3 1.2.3 投影投影 1.2.4 1.2.4 连接连接 1.2.5 1.2.5 除除 1.2.1 布尔运算布尔运算        关系可以看做元组的集合,那么集合的并、交、差等布尔运算关系可以看做元组的集合,那么集合的并、交、差等布尔运算算都可以用到关系中算都可以用到关系中 关系的布尔运算包括:并、交、差、广义笛卡尔积、补、有效关系的布尔运算包括:并、交、差、广义笛卡尔积、补、有效补 同类关系:同类关系:若若R R和和S S是同类关系,则满足如下条件:是同类关系,则满足如下条件: ((1 1))R R和和S S具有相同的度;具有相同的度; ((2 2))R R和和S S的对应属性定义在同一个域上。

      的对应属性定义在同一个域上 同类关系也称相容运算,同类关系也称相容运算,布尔运算大多是在同类关系中进行布尔运算大多是在同类关系中进行 Ø 并并( (Union)Union)关系关系R R和和S S的并的并其结果由属于其结果由属于R或属于或属于S的所有元组组成,的所有元组组成,其结果为一个新关系记为:其结果为一个新关系记为: Q = R∪S = { t | t ∈R Q = R∪S = { t | t ∈R 或或 t ∈ S}t ∈ S}Ø 交交( (Intersection)Intersection) 关系关系R R和和S S的交其结果由既属于的交其结果由既属于R R又属于又属于S S的所有元组组成的所有元组组成 记为:记为: Q = R∩S = { t | t ∈R Q = R∩S = { t | t ∈R 且且 t ∈ S}t ∈ S} Ø 差差( ( Difference) Difference) 关系关系R R和和S S的差由属于的差由属于R R但不属于但不属于S S的所有元组组成。

      的所有元组组成 记为:记为: Q = RQ = R--S = { t | t ∈R S = { t | t ∈R 但但 t t   S} S} 例子:例子: R∪∪S ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪∪S c1b2a2c2b2a1c1b1a1CBAc1b1a1CBAc1b2a2c2b3a1c2b2a1CBARSR-S 例子:例子: R - S c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b2a1CBAc1b2a2c2b3a1c2b2a1CBARSR ∩ S 例子:例子: R ∩ S 例:并运算的例:并运算的SQLSQL实现实现查询查询200201200201班的学生和年龄超过班的学生和年龄超过2 23 3岁的学生姓名岁的学生姓名SELECT SNOSELECT SNO,,SNAMESNAME FROM S FROM S WHERE CNO = 200201 WHERE CNO = 200201UNIONUNIONSELECT SNOSELECT SNO,,SNAMESNAMEFROM SFROM S WHERE AGE > 23 WHERE AGE > 23;; * * INTERSECTINTERSECT(交)、(交)、MINUSMINUS(差)(差) Ø 广义笛卡尔积广义笛卡尔积关系关系R R 和和S S的笛卡尔积为的笛卡尔积为R R中所有元组和中所有元组和S S中所有元组的串接。

      中所有元组的串接结果关系的属性个数:结果关系的属性个数:k k1 1+ k+ k2 2 其中其中k k1 1和和k k2 2分别为分别为R R和和S S的属性数的属性数结果关系的元组数:结果关系的元组数: m×nm×n ,, 其中其中m m、、n n分别为分别为R R和和S S的元组数的元组数 R R和和S S的笛卡尔积记为:的笛卡尔积记为: Q = R × S = {t |tQ = R × S = {t |t =t=tr rt ts s,t,tr r∈R ∈R 且且 t ts s∈S}∈S} 广义笛卡尔积广义笛卡尔积 的例子:的例子:ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR × S c1b1a1c1b1a1c1b2a2c1b2a2c2b2a1c1b2a2c1b1a1R.C R. BR.Ac2b2a1c2b2a1c2b2a1c2b3a1c1b2a2c2b2a1c2b3a1c1b2a2c2b2a1S.CS.BS.Ac1b2a2c2b3a1 有学生关系有学生关系S(Sno,Sname,Sage)S(Sno,Sname,Sage)和和 选课关系选课关系SC(Sno,Cno,Grade)SC(Sno,Cno,Grade)SELECT S.*, SC.*SELECT S.*, SC.* FROM S,SC FROM S,SC例:广义笛卡尔积的例:广义笛卡尔积的SQL实现实现 Ø 补补( (Complement)Complement) 关系模式关系模式R(AR(A1 1,A,A2 2, ,…,A,An n) ),, R R上的关系上的关系r r。

      补运算:补运算:设设dom(R)dom(R)表示模式表示模式R R上的所有元组的集上的所有元组的集合,则关系合,则关系r r的补为:的补为:  r r = = dom(R)dom(R)--r r 例例: 设设R(A,,B),, dom(A)={a1,a2,,a3},,dom(B)={b1,b2} R上的关系上的关系r和和r的补的补 r 如下所示如下所示 r == ( A B )  r== ( A B ) a1 b1 a2 b2 a1 b2 a3 b1 a2 b1 a3 b2 例例: 设设R(A,B,C),,dom(A)={a1,a2},,dom(B)=整数的集合,整数的集合, dom(C)={c1,c2}。

      求求r的补 r == ( A B C ) a1 1 c1 a1 2 c2 a2 1 c1 a2 2 c1 a2 3 c2 r r ==adom(R,r)adom(R,r)--r r adom(R,r)adom(R,r)为模式为模式R R上的所有属性对应关系上的所有属性对应关系r r的有效值域的有效值域 组成的所有元组的集合组成的所有元组的集合 由于由于adom(R,r)adom(R,r)是有限的,则是有限的,则r r的有效补的有效补 r r 总是一个关系总是一个关系~ ~~ ~ Ø 有效补有效补 关系模式关系模式R(AR(A1 1,A,A2 2, ,…,A,An n) ),属性,属性A Ai i的有效值域:的有效值域: adom(Aadom(Ai i,r)={ d | d∈D,r)={ d | d∈Di i,存在,存在t∈rt∈r且且t[At[Ai i]=d }]=d } 定义定义r r的有效补为的有效补为: : 例例: 设设R(A,B,C),,dom(A)={a1,a2},,dom(B)=整数的集合,整数的集合, dom(C)={c1,c2}。

      R上的关系上的关系r和和r的有效补如下的有效补如下~~ r == ( A B C ) r == ( A B C ) a1 1 c1 a1 1 c2 a1 2 c2 a1 2 c1 a2 1 c1 a1 3 c1 a2 2 c1 a1 3 c2 a2 3 c2 a2 1 c2 a2 2 c2 a2 3 c1 思考:在关系模式思考:在关系模式R(A1,A2,…,An)R(A1,A2,…,An)中,若每个属性中,若每个属性AiAi的的值域都有限,任一关系值域都有限,任一关系r r的补和有效补是否一致?的补和有效补是否一致? 例例: 设设R(A,B),, dom(A)={a1,a2,,a3},,dom(B)={b1,b2}。

      R上的关系上的关系r和和r的补的补 r及及r的有效补的有效补r 如下所示如下所示 r == ( A B ) r == ( A B )  r== ( A B ) a1 b1 a2 b2 a2 b2 a1 b2 a3 b1 a2 b1 a3 b2 ~~ 有效补的应用:有效补的应用:当关系元组数比其有效补元组数当关系元组数比其有效补元组数多得多时,有效补可作为数据压缩手段多得多时,有效补可作为数据压缩手段 例如:学生选课,一个班有例如:学生选课,一个班有5050个学生选数据库课,个学生选数据库课,3 3个学生不选,个学生不选, 则存储选修了数据库课的学生可用则存储选修了数据库课的学生可用存储其有效补实现。

      存储其有效补实现   练习练习   1 .设设R(A,B,C),dom(A)={a1,a2},l  dom(B)={b1,b2,b3}, dom(C)={c1,c2}      r (  A     B      C)                           a2   b3     c1                                                  a2   b1     c1                                                    a2   b2     c1                                                    a1   b1     c1求:求:r 的补和有效补的补和有效补 从关系中选择在指定属性上有确定值的关系的子集从关系中选择在指定属性上有确定值的关系的子集表示为:表示为:  A A==a a(r) (r) =={t{t t∈r t∈r 且且t[A]=a }t[A]=a }。

      选择运算是选择关系中行的子集,即选择满足条件元组选择运算是选择关系中行的子集,即选择满足条件元组例:在下面关系train中 求:  FROMFROM==’beijingbeijing’(train)(train) ;  DEPARTSDEPARTS==’16:5516:55’(train)(train) 1.1.2 2. .2 2 选择选择( (Select)Select) (2) (2) 可分配可分配 σσA=aA=a (rθs) = σ (rθs) = σA=aA=a(r)θσ(r)θσA=aA=a(s)(s) 其中其中 θθ==∩∩、、∪∪或-,或-, 且且r r和和s s是同类关系是同类关系 广义选择:广义选择:   A A   a a(r)(r)=={ t | t{ t | t r r且且t[A] t[A]   a } a } 其中其中 为为 、、 、、 、、 、、 、、    选择运算的特性选择运算的特性设设r(R)r(R)是一个关系,是一个关系,A A和和B B为为R R的属性。

      的属性 (1) (1) 可交换可交换 σσA=aA=a((σσB=bB=b(r)(r))=)=σσB=bB=b(σ(σA=aA=a(r))(r)) 例:学生关系中,A=2011年入学, B=信息学院 1.1.2.3 2.3 投影投影( (Project)Project) 投影是选取关系中列的子集设模式投影是选取关系中列的子集设模式R R上关系上关系r r,,X X是是R R上属性的子集,上属性的子集,r r到到 X X上的投影上的投影r r 表示为:表示为: r r (X)= (X)=  x x(r)={t[X] | t∈r}(r)={t[X] | t∈r} 投影的结果不是原来的关系,是投影的结果不是原来的关系,是X X中几列属性中几列属性 **** 如果如果X X中不包含中不包含R R的键,则选取的列中会出现重复元的键,则选取的列中会出现重复元组,组,r r (X)(X)中应不包含重复元组中应不包含重复元组例:例:  Sno,SnameSno,Sname(S)(S);;  CnoCno(S)(S) 投影的特性:投影的特性:u 投影的串接投影的串接 给定关系给定关系r(R)r(R),且,且Y Y   X X   R R,则:,则:  Y Y ( ( X X(r))= (r))=  Y Y(r) (r) 对一串投影而言,若对一串投影而言,若X X1 1   X X2 2   …   X Xm m   R R,则:,则:  X1X1(( X2X2((…(( XmXm((r r))))…))=))= X1X1((r r))u 投影和选择的可交换性投影和选择的可交换性 设设r r是是R R上的一个关系,上的一个关系,A∈XA∈X,,X X   R R,则下式成立:,则下式成立:   X X( (   A=a A=a( r )) = ( r )) =   A=a A=a( (  X X( r ))( r )) SELECT SELECT SNOSNO,,SNAMESNAME FROM S FROM S WHERE WHERE CNO=200401CNO=200401投影投影选择选择检索检索200401200401班学生的姓名。

      班学生的姓名 如果如果R∩SR∩S==ΦΦ,则,则r r s s为关系为关系r r和和s s的笛卡尔积:的笛卡尔积:r×sr×s ( (1 1) ) 自然连接自然连接( (Natural Join)Natural Join) 自然连接是在两个关系自然连接是在两个关系共同属性共同属性上的等值连接上的等值连接 设有关系设有关系r(R)r(R)和和s(S)s(S),属性,属性A A是关系模式是关系模式R R和和S S的公共属性,的公共属性, r r与与s s的自然连接可用下式表示:的自然连接可用下式表示: r s ={t|t= tr s ={t|t= tr r t ts s[A] t[A] tr r∈r∈r,,t ts s∈s ∈s & & t tr r =t[R]=t[R] & & t ts s=t[S]=t[S] & & t tr r[A]=t[A]=ts s[A]}[A]} 它表示它表示r r中元组和中元组和S S中元组的串接,而且它们的公共属性值只出现一次中元组的串接,而且它们的公共属性值只出现一次。

      1.1.2.4 2.4 连接(连接(JoinJoin)) ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS例子:求例子:求R和和S自然连接自然连接 ABCEa1b153a1b267a2b3810a2b382   自然连接自然连接 R   S 连接运算:有学生关系连接运算:有学生关系S S和课程关系和课程关系C.C. SELECT SELECT SNO,SNAME,S.CNO,CMNSNO,SNAME,S.CNO,CMN FROM S FROM S,,C C WHERE WHERE S.CNO=C.CNOS.CNO=C.CNO (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 | t q,,tr r & ts s & t[R]=tr & t[S]=ts & t[A]θt[B]} 其中其中θ为比较符:为比较符:  、、 、、 、、 、、 、、 示例示例 ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RSl例子:例子: R SR SAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310 [C<<E] AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32   等值连接等值连接 R       S [R.B=S.B] ABCEa1b153a1b267a2b3810a2b382   自然连接自然连接 R   S 学生关系学生关系 S(S(SNOSNO,,SNAMESNAME,,AGEAGE,,SEXSEX,,DEPTNO)DEPTNO) 专业系专业系 DEPT(DEPT(DEPTNODEPTNO, DNAME), DNAME) 选择运算:选择运算:   SNAME = SNAME = ‘LiMingLiMing’ (S); (S); 投影运算:投影运算:   SNO, SNAME, DEPTNOSNO, SNAME, DEPTNO(S);(S); 连接运算:连接运算: S DEPTS DEPT 示例:示例:关系模型和关系运算        思考:在第一章的建立数据库例子中,如何通过学号查该学思考:在第一章的建立数据库例子中,如何通过学号查该学生的入学年份和所学专业?如何通过系号查该系同学所住的宿舍生的入学年份和所学专业?如何通过系号查该系同学所住的宿舍区?如何通过学号查该学生所在系的的办公地点?区?如何通过学号查该学生所在系的的办公地点?l建立一个关于系、学生、班级、学会等诸信息的关系数据库。

      建立一个关于系、学生、班级、学会等诸信息的关系数据库l学生:学号、姓名、出生年月、系名、班号、宿舍区学生:学号、姓名、出生年月、系名、班号、宿舍区l班级:班号、专业名、系名、人数、入校年份班级:班号、专业名、系名、人数、入校年份l系:系名、系号、系办公地点、人数系:系名、系号、系办公地点、人数l学会:学会名、成立年份、办公地点、人数学会:学会名、成立年份、办公地点、人数l学生:学生:S(Sno,,Sname,,Sbirth,,Dept,,Class,,Rno)l  班级:班级:C(Class,,Pname,,Dept,,Cnum,,Cyear)l  系:系:D(Dept,,Dno,,Office,,Dnum)l  学会:学会:M(Mname,,Myear,,Maddr,,Mnum) 2.5 除法除法(Division) 即:对每一元组ts∈s都存在一元组tr∈r,使得tr[R']=t 且tr[s]=ts设r÷s 得到的新关系其属性集为X,则除法可用下式表示:R(XR(X,,Y Y))÷÷ S(Y)S(Y) = =   X X(R) (R) –  X X( (  X X ( R) ( R)×S ×S – R R) )即 r÷s是满足下列条件的最大关系: r÷s的每个元组t与s中每个元组u组成的元组必在关系r中。

      定义除定义除: 设关系设关系r(R)和和s(S),且,且S   R令R' = R–S,除运,除运算算r÷s 的结果为一个新关系的结果为一个新关系 r',记作:,记作: r÷s = r'(R') ={ t | t r'且且tr∈∈r, ts∈∈s, t = tr[R'] & tr[S]=ts, t s   r } 909803 除法运算: SC ÷ CDS DS 909802 DB DB 909802 OS OS 909801 DBDB909801 课程号 学号 DB DB SCSC课程号 DBDBC C课程号 OSOSDSDSC CC C课程号 DBDBOSOS 1 1.3.3 函数依赖函数依赖( (Functional dependency FD)Functional dependency FD)函数依赖定义函数依赖定义1(1(FD)FD) 设关系模式设关系模式R(U)R(U),,X,Y X,Y   U U,,r r是是R(U)R(U)上的任一关系,上的任一关系,对任意对任意t t1 1、、t t2 2 r, r, 如果如果 t t1 1[X]=t[X]=t2 2[X] [X] 有有t t1 1[Y]=t[Y]=t2 2 [Y][Y],,称称X X函数决定函数决定Y Y,,或或Y Y函数依赖于函数依赖于X X,,记为:记为:FD X→YFD X→Y。

      定义定义2((FD的等价定义)的等价定义) 对对X中的任一值中的任一值x,,ΠY(σX=x(r)) 的的值仅有一个元组,则有值仅有一个元组,则有X→Y      练习练习1 1设关系设关系r 如下所示:如下所示:l      r(    A     B     C    D     E )l             a1    b1    c1   d1    e1l             a1    b2    c2   d2    e1l             a2    b1    c3   d3    e1l                   a2    b1    c4   d3    e1l                   a3    b2    c5   d1    e1l说明说明r r上函数依赖上函数依赖:: A→D, AB→D, C→BDEA→D, AB→D, C→BDE,,E→AE→Al是否成立?是否成立? 定义定义( (平凡平凡/ /非平凡的非平凡的FD)FD):设设FD X→YFD X→Y,,如果如果Y Y X X,,则称则称 FD FD X→YX→Y为为非平凡的函数依赖非平凡的函数依赖;否则,若;否则,若Y Y X X,,称称FD X→YFD X→Y为为平凡平凡的函数依赖的函数依赖。

      定义定义( (完全完全FD):FD): 设设FD X→YFD X→Y,,如果对任意的如果对任意的X XX X,,X X →Y→Y都不成立,则称都不成立,则称X→YX→Y是完全函数依赖;若对是完全函数依赖;若对X X的真子集的真子集X X 有有X XX X,,而而X X →Y→Y成立,则称成立,则称FD X→YFD X→Y是部分函数依赖,即是部分函数依赖,即Y Y函函数依赖于数依赖于X X的一部分的一部分 练习练习1 1中函数依赖中函数依赖 AB→DAB→D是完全依赖还是部分依赖?是完全依赖还是部分依赖? 思考:思考: 如果如果X X只有一个属性,只有一个属性, X→YX→Y是否一定是完全函数依赖?是否一定是完全函数依赖?定义定义( (传递传递FD):FD):设关系模式设关系模式R R,,X X、、Y Y、、Z Z是是R R的属性子集,的属性子集, 若若FD X→YFD X→Y,,Y → XY → X,,Y→ZY→Z,,则有则有FD X→ZFD X→Z,,称称FD X→ZFD X→Z为为传递函数依赖传递函数依赖 函数依赖、完全依赖、传递依赖等基本概念是关系数据库范式函数依赖、完全依赖、传递依赖等基本概念是关系数据库范式的基础。

      的基础 函数依赖的例子函数依赖的例子学校数据库的语义:学校数据库的语义:    ⒈⒈   一个系有若干学生,一个系有若干学生, 一个学生只属于一个系;一个学生只属于一个系;    ⒉⒉   一个系只有一名主任;一个系只有一名主任;    ⒊⒊   一个学生可以选修多门课程,一个学生可以选修多门课程, 每门课程有若干学生选修;每门课程有若干学生选修;    ⒋⒋   每个学生所学的每门课程都有一个成绩每个学生所学的每门课程都有一个成绩    R(SNO,CNO,SNAME,GRADE,DEPT,MNG)R(SNO,CNO,SNAME,GRADE,DEPT,MNG) ((1 1)找出其中基本的函数依赖?)找出其中基本的函数依赖?((2 2)哪些是平凡依赖?指出哪些是完全依赖?哪些是部分依赖?哪)哪些是平凡依赖?指出哪些是完全依赖?哪些是部分依赖?哪些是传递依赖些是传递依赖 ?? SNO → DEPT, DEPT → MNG; SNO,CNO→SNO → DEPT, DEPT → MNG; SNO,CNO→GRADEGRADE; ; SNO,CNO→SNO; SNO,CNO→SNO,CNO→SNO; SNO,CNO→SNAMESNAME; ; SNO→ SNO→MNGMNG 函数依赖公理函数依赖公理 由关系模式由关系模式R R上的函数依赖组成的集合上的函数依赖组成的集合F F称为称为R R上的上的函数依赖集,记为:函数依赖集,记为: FDs FFDs F。

      定义定义( (FDFD的逻辑蕴涵的逻辑蕴涵) ) :: 设关系模式设关系模式R(U,F)R(U,F),,X,YX,Y U U,,如果能从如果能从函数依赖函数依赖集集F F推导出推导出FD X→YFD X→Y,,则称则称 F F逻辑蕴涵逻辑蕴涵 FD X→YFD X→Y,,或称或称X→YX→Y逻辑蕴涵于逻辑蕴涵于F F记为记为 F|= X→YF|= X→Y 已知函数依赖集已知函数依赖集F F,如何判断一个函数,如何判断一个函数X→YX→Y是否逻辑蕴涵于是否逻辑蕴涵于F F ?需要哪些推理法则(包括?需要哪些推理法则(包括3 3个公理和个公理和3 3个推论)?个推论)?ArmstrongArmstrong公理(三个公理):公理(三个公理):设设r r是是R(U)R(U)上的一个关系,上的一个关系,X X、、Y Y、、Z Z、、W W U UA1. A1. 自反律自反律: : 若若Y Y X X U, U, 则则 X→Y;X→Y;A2. A2. 增广律增广律: : 若若X→YX→Y且且Z Z U U,,则则 XZ→YZ;XZ→YZ;A3. A3. 传递律传递律: : 若若X→Y, Y→ZX→Y, Y→Z,,则则 X→Z. X→Z. 有以上三个公理,可以推出以下有以上三个公理,可以推出以下3 3个推论:个推论:推论推论1 1(合成规则):(合成规则): 若若X→YX→Y,,X→ZX→Z,,则则X→YZX→YZ推论推论2 2(分解规则):(分解规则): 若若X→YX→Y且且Z Z Y Y,,则则X→ZX→Z推论推论3 3(伪传递规则)(伪传递规则) 若若X→YX→Y,,YZ→WYZ→W,,则则XZ→WXZ→W。

      推论推论1 1(合成规则):(合成规则): 若若X→YX→Y,,X→ZX→Z,,则则X→YZX→YZ 证明:若证明:若X→Y  X → XY X→Z  XY→YZX→YZ ((增广和传递律增广和传递律推论推论2 2((分解规则):分解规则): 若若X→YX→Y且且Z Z Y Y,,则则X→ZX→Z 证明:证明: Z Y  Y→Z (自反和传递律)推论推论3 3(伪传递规则(伪传递规则)) 若若X→YX→Y,,YZ→WYZ→W,,则则XZ→WXZ→W 证明:证明: X→Y  XZ→Y Z YZ→ WXZ→W(增广和传递律增广和传递律) 示例:示例:SC(SNO,CNO,SNAME,GRADE,DEPT,MN)SC(SNO,CNO,SNAME,GRADE,DEPT,MN) F={ SNO,CNO→GRADE F={ SNO,CNO→GRADE,, SNO → SNO → SNAMESNAME,,DEPTDEPT,, DEPT → MN} DEPT → MN} F|= SNO,CNO → F|= SNO,CNO → SNAME,GRADE,DEPT,MNSNAME,GRADE,DEPT,MN ?? SNO → SNO → SNAMESNAME,,DEPTDEPT,,MN MN ((分解规则,传递律,合成规则)分解规则,传递律,合成规则) SNO,CNO → SNO,CNO → SNAMESNAME,,DEPTDEPT,,MNMN (自反律和传递律)(自反律和传递律)ÞSNO,CNO → SNO,CNO → SNAME,GRADE,DEPT,MNSNAME,GRADE,DEPT,MN((合成规则)合成规则)Þ思考:由最后一个依赖关系,那否得出是思考:由最后一个依赖关系,那否得出是SNO,CNOSNO,CNO关系关系SCSC的键?的键? 定理:定理: 如果如果A Ai i (i =1, 2, …, n)是关系模式是关系模式R的属的属性,则性,则 X→ A A1 1 A A2 2 … A An n 成立的充要条件是:成立的充要条件是: X→ A Ai i (i =1, 2, …, n) 都成立。

      都成立 例:例: 设设F={AB→EF={AB→E,,AG→JAG→J,,BE→IBE→I,,E→GE→G,,GI→H} GI→H} 试证:试证:F|= AB→GHF|= AB→GH 证明:用公理系统和证明:用公理系统和F F中的函数依赖,推导过程如下:中的函数依赖,推导过程如下: 1. 1. 已知已知 AB→EAB→E,,E→GE→G 则:则:AB→GAB→G;; ( (传递律传递律) ) 2. 2. 已知已知 AB→E AB→E 则:则:AB→BEAB→BE;; ( (增广律增广律) ) 3. 3. 已知已知 BE→IBE→I,,又又 AB→BEAB→BE 则:则:AB→I AB→I ( (传递律传递律) ) 4. 4. 由由1 1和和3 3有有AB→GAB→G,, AB→I AB→I 则:则:AB→GI AB→GI ( (合成规则合成规则) ) 5. 5. 由由4 4有有 AB→GIAB→GI,,又又 GI→HGI→H 则:则:AB→H AB→H ( (传递律传递律) ) 6. 6. 由由1 1和和5 5有有 AB→HAB→H,,AB→G AB→G 则:则:AB→GH AB→GH ( (合成规则合成规则) ) 定义定义(使用集使用集) 用公理从用公理从F推出推出 X→Y成立所使用的函数成立所使用的函数依赖组成的序列称依赖组成的序列称F上的一个上的一个推理序列推理序列。

      在推在推理序列中出现的且包含在理序列中出现的且包含在F中的函数依赖的集中的函数依赖的集合称推理序列的合称推理序列的使用集使用集(use set),,记为:记为: U(F, X→Y)例:例:U(F, AB→GH) ={AB→E,,E→G,, BE→I,, GI→H} 定义定义( (函数依赖集函数依赖集F F的闭包的闭包 F F + +) ) 设设F F是关系是关系r(R)r(R)上的函数依赖集上的函数依赖集,,F F所蕴含的所有所蕴含的所有FDFD的集的集合称为合称为F F的的闭包闭包,记作,记作F F + + F F + + = { X→Y | = { X→Y | 所有所有F |= X→Y }F |= X→Y } 例:例:设设F={AB→CF={AB→C,,C→B}C→B} 求求F+ F+ 设设F={AB→CF={AB→C,,C→B}C→B} F F+ + 为:为: F F+ + = {A→A, AB→A, AC→A, ABC→A, B→B, AB→B, = {A→A, AB→A, AC→A, ABC→A, B→B, AB→B, BC→BBC→B,,ABC→BABC→B,,C→CC→C,,AC→CAC→C,,BC→C,ABC→CBC→C,ABC→C,,AB→ABAB→AB,,ABC→ABABC→AB,,AC→ACAC→AC,,ABC→ACABC→AC,,BC→BC, ABC→BC, BC→BC, ABC→BC, ABC→ABC, AB→C, AB→AC, AB→BC, AB→ABCABC→ABC, AB→C, AB→AC, AB→BC, AB→ABC,,C→B, C→B, C→BCC→BC,,AC→B AC→B ,,AC→AB}AC→AB} 为了为了判定函数依赖集判定函数依赖集F F是否蕴涵是否蕴涵X→YX→Y,引入的属性闭包,引入的属性闭包::定义定义( (属性集属性集X X的闭包的闭包X X + + ) ) 设关系模式设关系模式R(U, F)R(U, F),,U=AU=A1 1A A2 2…A An n ,X ,X   U, U, 所有用公理所有用公理和和F F推出的函数依赖推出的函数依赖X→AX→Ai i中中A Ai i的集合,称的集合,称X X对于函数依赖集对于函数依赖集F F的闭包,记作:的闭包,记作:X X+ + X X+ + ={ A={ Ai i | | F |=F |= X→AX→Ai i 且且A Ai i   U}U} 函数依赖集闭包及成员测试算法函数依赖集闭包及成员测试算法算法算法1 计算属性集计算属性集X的闭包的闭包X+的算法的算法 输入:属性集输入:属性集X和函数依赖集和函数依赖集F 输出:输出:X的闭包的闭包X+ While RESULT≠VAR do BeginWhile RESULT≠VAR do Begin VAR:=RESULT; VAR:=RESULT; for every FD W→Z in F do for every FD W→Z in F do if Wif W RESULT thenRESULT then RESULT:=RESULT∪Z RESULT:=RESULT∪Z end;end; return(RESULT) return(RESULT)end. end. ////其中的原理:由其中的原理:由 W W RESULTRESULT , ,由自反律:由自反律:RESULTRESULT →W→W,再由传递,再由传递律:律: RESULTRESULT →Z→ZCLOSURE(X, F)CLOSURE(X, F) Begin Begin VAR:=φ; RESULT:=X; VAR:=φ; RESULT:=X; 例:例: F={A→D, AB→E, BI→E,,CD→I,,E→C} 求:求: AE+ 解:解: AE0 = AE AE1 = AED AE2 = AEDC (第一轮扫描后的结果)第一轮扫描后的结果) … AE+ = ACDEI 练习: 属性集U 为ABCD, F={A→B, B→C, D→B}F={A→B, B→C, D→B} 求: A + , (AD) +, (BD)+ 算法算法3.2.3 3.2.3 判定判定F F是否蕴涵是否蕴涵X→YX→Y的成员测试算法的成员测试算法输入:函数依赖集输入:函数依赖集F F和和FD X→YFD X→Y。

      输出:若输出:若F F蕴涵蕴涵X→YX→Y输出为输出为truetrue,,否则为否则为falsefalseMEMBER(F, X→Y)MEMBER(F, X→Y) begin begin if if Y Y  CLOSURE(X,F) CLOSURE(X,F) then then return(true) return(true) eles return(false) eles return(false) end. end.                成员测试算法练习成员测试算法练习l练习:练习:F={A→D, AB→DE, CE→G,,E→H}l判断:判断:l((1))F |= AB→CD?l ((2))F |= AB→EH?    综合练习综合练习设设F ={AB→C,B→D,CD→E,CE→GH,G→A}l ((1)) 用成员测试法(用成员测试法(MEMBER(F, AB→G))l          证明证明AB→G,,l((2)用推理的方法证明)用推理的方法证明F |= AB→Gl((3)并比较两种方法更好用语言来实现。

      并比较两种方法更好用语言来实现           ((1)设)设F ={AB→C,B→D,CD→E,CE→GH,G→A},,                  证明证明F |= AB → Gl          AB0 = ABl          AB1 = ABC l          AB2 = ABCD l         AB3 = ABCDEl         AB4 = ABCDEGH        l         AB+ = ABCDEGHl           G   AB+ l         所以,所以,F |= AB → G 1.4 关系数据库范式算法u 范式的概念及范式的概念及1 1NFNF—BCBCNFNFu 模式分解的特性及其判定算法模式分解的特性及其判定算法u 关系模式的规范化算法关系模式的规范化算法 1.1.4.1 4.1 数据库及其范式数据库及其范式例子例子1::r ( 职工姓名职工姓名 工资级别工资级别 基本工资基本工资 ) 李小明李小明 高工高工2 3200 张张 亮亮 中工中工1 1800 刘刘 林林 中工中工1 1800 王晓宁王晓宁 高工高工2 3200 苏苏 丹丹 中工中工4 2000 . u冗余;冗余; u插入异常;插入异常; u删除异常。

      删除异常 定义定义 (1NF, Normal Form) 如果一个关系模式如果一个关系模式R中的每中的每个属性个属性A的域值都是原子的,即属性值是不可再分的,则的域值都是原子的,即属性值是不可再分的,则关系模式关系模式R属于第一范式,简记为属于第一范式,简记为R 1NF若数据库模若数据库模式式R中的每个关系模式都是中的每个关系模式都是1NF,,数据库模式数据库模式R 1NF addr ( 姓姓 名名 地地 址址 ) 李小明李小明 北京市白石桥路北京市白石桥路7号号 张张 亮亮 天津市和平街天津市和平街18号号 王国全王国全 太原市解放路太原市解放路35号号 苏苏 丹丹 北京市复外大街北京市复外大街12号号 addr ( 姓姓 名,城市,名,城市, 地地 址址 ) teach ( 教教 师师 课课 程程 ) 孙鲁涛孙鲁涛 DS, DB,OS 周周 晴晴 C,,C++ 1 1. . 第一范式第一范式 2 2. . 第二范式第二范式 定义定义 已知关系模式已知关系模式R,,R中的属性中的属性A以及以及R上的函数依上的函数依赖集赖集F。

      如果如果A包含在包含在R的某个候选键中,则称的某个候选键中,则称A为为主属性主属性,,否则称否则称A为为非主属性非主属性 定义定义(2(2NF) NF) 设关系模式设关系模式R(U, F)R(U, F),,如果如果R R 1NF1NF且所有的且所有的非主非主属性完全依赖于属性完全依赖于R R的每个键,则的每个键,则R R 2NF2NF若数据库模式若数据库模式R R中的中的每个关系模式每个关系模式R R都属于都属于2 2NFNF,,则数据库模式则数据库模式R R 2NF2NF练习练习1. R(A,B,C), 1. R(A,B,C), 其函数依赖集为其函数依赖集为 F ={ B →C, AC →B };F ={ B →C, AC →B };该关系模该关系模式是否第式是否第2 2范式范式, ,并说明理由并说明理由练习练习2 2:: R(A,B,C,D), R(A,B,C,D), 其函数依赖集为其函数依赖集为 F ={ A →C,AD →B };F ={ A →C,AD →B }; 该关系模式是否第该关系模式是否第2 2范式范式, ,并说明理由并说明理由 例例2::elective(SNAME COURSE DEPT ) 刘刘 芳芳 DB 计算机计算机 刘刘 芳芳 OS 计算机计算机 林荔娜林荔娜 C++ 自自 控控 林荔娜林荔娜 DB 计算机计算机 周周 晴晴 C++ 自自 控控 假定一门课只有一个系来开,找出选课关系elective的键和和基本函数依赖,它是否是第2范式?SNAMESNAME、、COURSECOURSEDEPTDEPTCOURSE COURSE DEPTDEPTelective  (SNAME COURSE 刘刘 芳芳 DB 刘刘 芳芳 OS 林荔娜林荔娜 C++ 林荔娜林荔娜 DB 周周 晴晴 C++ . elective  (COURSE DEPT ) DB 计算机计算机 OS 计算机计算机 C++ 自自 控控 3 3. . 第三范式第三范式 定义定义(3NF) 设关系模式设关系模式R(U, F),,若若R 1NF且在且在R中没有中没有非主属性传递依赖非主属性传递依赖于于R的键,则的键,则R 3NF。

      如果数据库模式如果数据库模式R中每一关系模式都是第三范式,则数据库模式中每一关系模式都是第三范式,则数据库模式R 3NF练习3. R(A,B,C), 其函数依赖集为 F ={ B →C, AC →B };该关系模式是否第3范式,并说明理由练习4: R(A,B,C,D), 其函数依赖集为 F ={AB →C, C →D };该关系模式是否第3范式,并说明理由 例例3::course (COURSE DEPT BUILDING ) DB 计算机计算机 中心楼中心楼9层层 OS 计算机计算机 中心楼中心楼9层层 C++ 自自 控控 中心楼中心楼12层层 假定一门课只有一个系开,一个系只有一个地址?该关系中有假定一门课只有一个系开,一个系只有一个地址?该关系中有哪些函数依赖?该关系的键是什么?是几范式?哪些函数依赖?该关系的键是什么?是几范式?COURSE DEPT,, DEPT  BUILDINGcourse (COURSE DEPT ) dpt(DEPT BUILDING)思考:例1中的关系模式是几范式?如何让它达到3NF?     定理定理1 1 若关系模式若关系模式R(U,F)R(U,F) 3NF3NF,,则则R R 2NF2NF。

      证明:证明: 假设假设R R中非主属性中非主属性A A部分依赖于部分依赖于候选键候选键K K则存则存在在K K  K K使得使得F|=KF|=K →A→A 因因K K  K K,,有有K→KK→K ,,但但 K K →K→K于是有K→KK→K ,,K K  →→ K K,,K K →A→A,,并且并且 A A K K,,因而因而A A传递依赖于传递依赖于K K,,即即 R R 3NF3NF,,与已知矛盾与已知矛盾 定义定义2 (2 (BCNF) BCNF) 设关系模式设关系模式R(U,F)R(U,F),, 若对于若对于 Y Y R R且属性且属性 A A R R Y Y 有有Y→AY→A,,Y Y必为必为R R的键,则关系模式的键,则关系模式 R R BCNFBCNF ** ** 若关系模式若关系模式R(U,F)R(U,F) BCNFBCNF,,则则R R 3NF3NF 4 4. . Boyce-CoddBoyce-Codd范式范式定义定义1(1(BCNF) BCNF) 设关系模式设关系模式R(U,F)R(U,F),,若若R R 1NF1NF且且R R中中没有任何没有任何属性属性传递依赖于传递依赖于R R的任一键的任一键,,则则R R Boyce-CoddBoyce-Codd范式范式( (BCNF)BCNF)。

      如果数据库模式如果数据库模式R R中的每个关系模式中的每个关系模式R R BCNFBCNF,,则数据库模则数据库模式式R R BCNFBCNF 例例4 R ( Building Room Department) 中心教学楼中心教学楼 801 计算机系计算机系 中心教学楼中心教学楼 802 计算机系计算机系 中心教学楼中心教学楼 803 计算机系计算机系 中心教学楼中心教学楼 823 数数 学学 系系 中心教学楼中心教学楼 824 数数 学学 系系 . Room、、R1(Department ,,Building )R2(Department ,, Room )假定一个系只在一个楼上办公,找出其中的键和函数依赖,假定一个系只在一个楼上办公,找出其中的键和函数依赖, 该关系该关系式第几范式?式第几范式? Building、、Room → Department Department → Building 练习练习5: 指出下列关系模式是第几范式指出下列关系模式是第几范式,并说明理由并说明理由l((1)) R(A,B,C), 其函数依赖集为其函数依赖集为 F ={AB →C};;l((2)) R(A,B,C), 其函数依赖集为其函数依赖集为 F ={ A →B , A→C };l  1. 1.4.2 4.2 关系模式的规范化关系模式的规范化 1 1. . 关系模式的分解关系模式的分解 定义定义 设关系模式设关系模式R(U)R(U),,关系模式的集合关系模式的集合ρρ={R={R1 1(U(U1 1), R), R2 2(U(U2 2),),…,R,RK K(U(UK K)}, )}, 若若U U1 1∪U∪U2 2∪∪…∪U∪UK K=U, =U, 则称则称ρρ是关系模式是关系模式R(U)R(U)的一个的一个分解分解。

      u无损连接性无损连接性定义定义 设模式设模式R(U,,F),ρ={R1, R2, …, RK }是是R的一个的一个分解,若对分解,若对R的任一满足的任一满足F的关系的关系r下式成立:下式成立: r =  R1 (r)  R2 (r) …  Rk (r)则称分解则称分解ρ是是满足满足F的的无损连接分解无损连接分解 对一般的分解,记:对一般的分解,记: mρ(r) = R1 (r)  R2 (r) …  Rk (r)对无损连接分解有:对无损连接分解有:r = mρ(r) r1 ( A B) 2 4 3 4 4 9 r2 ( B C) 4 3 4 6 9 5 r ( A B C) 2 4 3 3 4 6 4 9 5引理引理 设关系设关系r(R),,ρ={R1, R2, …, RK }是是R的一个分解。

      的一个分解则有:则有: (1). r   mρ(r) (2).  Ri (mρ(r)) = Ri (r) (3). mρ(mρ(r)) = mρ(r) 先用右上边的例子先验证一下引理的结论先用右上边的例子先验证一下引理的结论证明证明: (2). 因因r  mρ(r), 则则  Ri(r)    Ri (mρ(r)) 又又 tiRi(mρ(r)) , 则有则有t mρ(r), 使使t[Ri]=ti,, 而由而由mρ(r)的定义知,的定义知,ti Ri (r),,因此有因此有 Ri (mρ(r)) Ri (r) 则则 有有 Ri (mρ(r)) = Ri (r) 算法算法4.2.1 判断分解判断分解ρ是否具有无损连接性是否具有无损连接性输入:输入: 关系模式关系模式R(A1,,A2,,…,,An)及其分解及其分解 ρ={R1,,R2,,…,,RK },,函数依赖集函数依赖集F输出:分解输出:分解ρ是否具有无损连接性是否具有无损连接性。

      LOSSNESS(R,,F,,ρ)(1)..构造一个构造一个k行行n列的表列的表T:: a j (Aj  Ri ) Ti j = bi j (Aj  Ri )(2). for each FD X→Y in F do for each tl 、、tm  T if ti[X]=tm[X] and ti [Y] tm [Y] then for each Aj in Y if ti [Aj]=aj or tm[Aj]=aj then ti[Aj ]=tm [Aj ]=aj else ti[Aj]=tm [Aj]=bij (i

      A B C D E a1 b12 b13 a4 b15 a1 a2 b23 b24 b25 b31 a2 b33 b34 a5 b41 b42 a3 a4 a5 a1 b52 b53 b54 a5 例例5:: 关系模式关系模式R=ABCDE,, F={A→C,,B→C,,C→D,,DE→C,,CE→A}   ={AD,,AB,,BE,,CDE,,AE }. A B C D E a1 b12 b13 a4 b15 a1 a2 b23 →b13 b24 →a4 b25 b31→a1 a2 b33 →b13→ a3 b34 →a4 a5 b41→a1 b42 a3 a4 a5 a1 b52 b53 →b13 →a3 b54 →a4 a5 17 l练习练习5::l关系模式关系模式R=ABCDE,,l     F={AB→C,,C→D,,D→E}, R的如下分解的如下分解l   ={ABC,,CD,,DE },是否是无损连接?,是否是无损连接? 定理定理2 LOSSNESS2 LOSSNESS算法能正确判断分解算法能正确判断分解  是否是无损分解。

      是否是无损分解定理定理3 3 设关系模式设关系模式R R的一个分解的一个分解 ={={R R1 1,,R R2 2} },,F F是是R R上的函数依赖上的函数依赖集若F|=(RF|=(R1 1 ∩R∩R2 2)→(R)→(R1 1--R R2 2) ) 或或 F|=(RF|=(R1 1 ∩R∩R2 2) →) →((R R2 2 --R R1 1) ),,则则 具有无损连接性具有无损连接性 证明:用算法证明:用算法4.2.1 4.2.1 构造一个二行三列的矩阵如下:构造一个二行三列的矩阵如下: R R1 1 ∩R∩R2 2 R R1 1 --R R2 2 R R2 2 --R R1 1 R R1 1 aaa aaa…a aaaa aaa…a bbba bbb…b b R R2 2 aaa aaa…a bbba bbb…b aaab aaa…a a 练习练习6 6:: 关系模式关系模式R=ABCR=ABC,, R R上的上的FDFDS S集集 F ={ A→CF ={ A→C,,B→C}B→C}。

      R R上的分解上的分解  1 1 ={={ABAB,,AC}AC},,  2 2 ={AC={AC,,BC} BC} 是否无损?是否无损? 再用算法再用算法4..2.14..2.1验证一下结果是否一致?验证一下结果是否一致? 定理定理3 3 在实际问题中的应用在实际问题中的应用 r ( 职工姓名职工姓名(A ) 工资级别工资级别(B) 基本工资基本工资(C ) ) 李小明李小明 高工高工2 3200 张张 亮亮 中工中工1 1800 刘刘 林林 中工中工1 1800 王晓宁王晓宁 高工高工2 3200 苏苏 丹丹 中工中工4 2000 . 上述关系存在问题:上述关系存在问题:冗余、插入异常、冗余、插入异常、 删除异常。

      删除异常 存在依赖关系:存在依赖关系:A A→→ B,B B,B→→ C C 分解:1 ={AB,BC}是否是无损连接? · ·依赖保持性依赖保持性定义定义 设设R的一个分解的一个分解  ={R1,,R2,,…,,Rp }, R上的上的FDs集集F,,若若 Ri (F)={ X→Y  X→Y F+且且XY Ri},,(1≤i≤p),,则称则称 Ri(F)为为F在在Ri上的投上的投影影练练习习7:: 关关系系模模式式R=ABC,, R上上的的FDS集集 F ={ A→B,,B→C} R上的分解上的分解  1 ={R1,,R2},,R1= AB,, R2= AC F在在R1,,R2上的投影是什么?上的投影是什么? 补充:函数依赖的等价和覆盖补充:函数依赖的等价和覆盖 对于在模式对于在模式R R上的函数依赖集上的函数依赖集F F和和G G,如果对,如果对G G中的每一个中的每一个函数依赖函数依赖X→YX→Y,,都有都有F|=X→YF|=X→Y,,称称F F是是G G的一个覆盖的一个覆盖。

      把逻辑把逻辑蕴含符号引入函数依赖集的覆盖中,蕴含符号引入函数依赖集的覆盖中, 记为:记为:F|= GF|= G定义定义( (等价和覆盖等价和覆盖) ) 在模式在模式R R上的上的FDs FFDs F和和G G,,若若F F+ +=G=G+ +,,则称则称F F和和G G等价等价 记作记作F F G G 定理:定理: 已知模式已知模式R R上的函数依赖集上的函数依赖集 F F和和G G当且仅当当且仅当 F|=G F|=G 且且 G|=F G|=F ,则,则 F F   G G u 依赖保持性依赖保持性定义定义 设设  ={R1,,R2,,…,,Rp }是是R的一个分解,的一个分解,F是是R上的上的FDs集F在在Ri上投影的集合上投影的集合 G=∪∪ Ri (F)若若G≡F,,则称分解则称分解  保持函数依赖集保持函数依赖集F 算法算法4.2.2 检验分解检验分解ρ是否具有依赖保持性是否具有依赖保持性PERSERVE1(F,,ρ)begin G::=φ;; for each X→Y in F do for each Ri in ρ do if X   Ri then do begin Z::= CLOSURE(X, F);; if Z∩Ri --X φ then G::= G ∪∪{X→(Z∩Ri --X)} /*F在在Ri上投影的集合上投影的集合 end;; for each X→Y in F do if MEMBER(G, X→Y ) then T::=true else return(false);; return(T);; end. 思考:为什么G中的每个函数依赖都在F的闭包中? 例例6 6 设设  ={={R R1 1,,R R2 2,,R R3 3} },,其中其中R R1 1=ABD=ABD,,R R2 2=BCE=BCE,,R R3 3=DE=DE,, F={A→BD F={A→BD,,D→AD→A,,C→BEC→BE,,E→DE→D,,C→A}C→A}。

      判断:判断: 是否保持函数依赖集是否保持函数依赖集F F 解解::((1 1))计算计算F F在在  上的投影上的投影G G 考察考察FD A→BDFD A→BD,, A A R R1 1,,A A+ +=ABD=ABD,, G={ A→BD } G={ A→BD };; 考察考察 D→AD→A,, D D R R1 1,,D D+ +=ABD=ABD,, G={ A→BD G={ A→BD,,D→AB }D→AB },,又又D D R R3 3,,但但ABD∩RABD∩R3 3 --D=φD=φ,,G G不变;不变; 对对 C→BEC→BE,, C C R R2 2,,C C+ +=ABCED=ABCED,,G={A→BDG={A→BD,,D→ABD→AB,,C→BE}C→BE} 分别考察分别考察 E→D E→D 和和 C→A C→A,, 结果:结果: G={ A→BDG={ A→BD,,D→AB D→AB ,,C→BE, E→D ,C→BE, E→D ,E E→B} }。

      ((2 2))判断判断F F和和G G是否等价是否等价 可可以以看看出出,,F F中中的的FDFD除除C→AC→A外外都都已已在在G G中中了了,,而而MEMBER(G, MEMBER(G, C→A)C→A)为真,因此,为真,因此, 保持函数依赖集保持函数依赖集F F      保持依赖练习保持依赖练习分析下列分解是否保持函数依赖分析下列分解是否保持函数依赖(1(1))设关系模式设关系模式R(A,B,C), 其函数依赖集为其函数依赖集为 F1 ={ A→C, B →C },R的一个分解的一个分解ρ1={R1(A,B),R2(A,C)}2(2))设关系模式设关系模式R(A,B,C), 其函数依赖集为其函数依赖集为 F2 ={ A→B, B →C },R的一个分解的一个分解ρ2={R1(A,B),R2(B,C)}3)关系模式)关系模式R=((A,,B,,C),),  R上的函数依赖集上的函数依赖集     F3 ={ A→B,,B→C}l   R上的分解上的分解  1 ={R1(( AB),), R2(( AC))}l      2 2. . 通过分解实现规范化通过分解实现规范化算法算法4.2.4 生成生成3NF的分解算法的分解算法DECOMPOSE(R, K, F)算法步骤:算法步骤:(1). 若若R 3NF,,算法终止,算法终止,ρ={R}。

      (2).若若ρ中有中有Ri 3NF,,即即Y Ri,,Z KY且且 K→Y,, Y→K,, Y→Z, Y→Z,则则Z传递依赖于传递依赖于Ri中的键中的键K,,分解分解Ri为:为: Ri1 =Ri--Z和和Ri2= YZ,,用用Ri1和和Ri2代替代替ρ中的中的Ri (3). 若若ρ中所有中所有Ri  3NF,,输出输出ρ,,否则转否则转(2) 继续进行分继续进行分解,直到使所有关系模式都成为解,直到使所有关系模式都成为3NF 思考:生成3NF的分解算法是否是无损分解? 例例7 : 设关系模式设关系模式R(A,B,C,D,E,G,H,I,J,K,M)为航空公司为航空公司数据库 其中,其中, 属性属性ABCDEGHIJKM分别为:分别为: 航班号航班号(A)、出发地、出发地(B)、目的地、目的地(C)、出发时间、出发时间(D)、到、到达时间达时间(E)、飞行时间、飞行时间(G)、机型、机型(H)、头等舱座位数、头等舱座位数(I)、、普通舱座位数普通舱座位数(J)、座位总数、座位总数(K)、用餐时间、用餐时间(M) F={A→BCDEGH,,BCD→A,,BCE→A,,DG→M,, H→IJK,, EG→M,,IJ→K,,IK→J,,JK→I}。

      试分解试分解R为为3NF F={A→BCDEGH,,BCD→A,,BCE→A,,DG→M,, H→IJK,, EG→M,,IJ→K,,IK→J,,JK→I}解:解:R的键为的键为K={A,,BCD,,BCE},,R 3NF 因有DG→M,而DG不是键,A→DG,即M传递依赖于A, 分解R为: R1 =ABCDEGHIJK,, K1 ={A,,BCD,,BCE};; R2 =DGM,, K2 ={DG}R2 3NF,,R1 3NF,,R1中有中有H→IJK,, 分解分解R1为:为: R11 =ABCDEGH,, K11 ={A,,BCD,,BCE}; R12=HIJK,, K12 ={H};;R12 3NF,, 因因 IJ→K,,分解分解R12 为:为: R121 =HIJ,, K121 ={H};; R122 =IJK,, K122 ={IJ,,IK,,JK} 结果:结果:  ={R11,,R121,,R122,,R2}。

      3 3 . . 规范化关系模式为规范化关系模式为BCNFBCNF 算法算法4.2.7 4.2.7 BCNF-DECOMPOSE(R, F)BCNF-DECOMPOSE(R, F) (1).(1).若若R R BCNFBCNF,,算法终止,算法终止,ρρ={R}={R} (2).(2).若若ρρ中有中有R Ri i BCNFBCNF,,即有即有X→YX→Y且且XYXY  R Ri i 而而X X不是不是R Ri i的键,的键, 分解分解R R为为R Ri1 i1 =R=R--Y Y和和R Ri2i2= XY= XY;; 用用R Ri1i1和和R Ri2i2代替代替ρρ中的中的R Ri i (3). (3). 若若ρρ中所有中所有R Ri i BCNFBCNF,,输出输出ρρ,,否则转否则转(2)(2)继续进行继续进行分解,直到使所有关系模式都成为分解,直到使所有关系模式都成为BCNFBCNF 例例8: 8: 设R=ABCDE, F={A→B,D→C,AC→D,AE→D}, 试生成BCNF的关系模式。

      (在所有依赖关系右边没有出现的属性一定是候选键的成员) 解:解: R R的键为的键为AEAE,, A→B,而A不是R的键, 所以,R不是BCNF 分解R为R1=ACDE, R2=AB R2是BCNF, R1不是BCNF,因为:R2的键为AE R1中有D→C而D不是R1的键 分解R1为:R11 =CD, R12=ADE, R11,R12都是BCNF, 则则R={R={R R1111、、 R R1212、、 R R2 2} }为为BCNFBCNF     补充:规范化关系模式为补充:规范化关系模式为2NF l设设R=(( S1,S2,X1,X2,X3)l     KEY=(S1,S2)l     S1 →X1 //X1部分依赖于R的候选键(S1,S2)l方法1: R1 =(( S1,S2,X2,X3)    //R1的候选键(S1,S2)l            R2 =(( S1,X1)              //R2的候选键S1l 是否为无损分解?l方法2: R1 =(( S1,S2,X2)         //R1的候选键(S1,S2)l            R2 =(( S1,X1,X3)        //R2的候选键S1l 是否为无损分解?           综合练习综合练习1l 设关系模式设关系模式R(Sno ,Cno, Grade, Tname, Taddress), 其属性分别表示其属性分别表示:学生学号、学生学号、 选修课程的号、成绩选修课程的号、成绩 、任、任课教师姓名课教师姓名 、教师住址、教师住址 ,如果规定如果规定:l       每个学生每学一门课只有一个成绩每个学生每学一门课只有一个成绩;每门课只有一个每门课只有一个教师任课教师任课;每个教师只有一个地址每个教师只有一个地址(此处不允许教师此处不允许教师 同名同名同姓同姓).l  (1)写出关系模式写出关系模式R的基本函数依赖和候选键的基本函数依赖和候选键;l  (2) 把把R分解成分解成2NF模式集模式集,并说明理由并说明理由;l  (3) 把把R分解成分解成3NF模式集模式集,并说明理由并说明理由; (1)关系模式关系模式R的基本函数依赖的基本函数依赖lF={ (Sno ,Cno) → Grade, Cno → Tname , l       Tname →Taddress }l 侯选键为:(侯选键为:(Sno ,Cno))((2)由)由Cno → Tname 可得(可得(Sno ,,Cno)) → Tname l   所以存在非主属性所以存在非主属性Tname对主属性(对主属性(Sno ,Cno)的部分依赖,因此)的部分依赖,因此R不是不是2NF. R分解为分解为lR1(Sno ,Cno, Grade)和和R2(Cno, Tname, Taddress)lR1和和R2都是都是2NF.      (3) R1已经是已经是3NF,但,但R2不是不是3NF       由于由于R2中存在中存在Cno → Tname ,, Tname →Taddress 。

             R2应分解成应分解成R21(Cno, Tname),,R22(Tname, Taddress)   ={R1,,R21,,R22}中每个模式都是中每个模式都是3NF模式        综合练习综合练习2:关于找候选键问题:关于找候选键问题l1. R((A,,B,,C,,D),), F=={D→A,D→B}l    写出写出R的候选键的候选键l2. R((A,,B,,C,,D,,E),), F=={A→D,E→D,D→B, BC→D,CD→A}l    写出写出R的候选键的候选键         综合练习综合练习3 设有关系设有关系rl     A           B         C          Dl    A1         B1       C1        D1l    A1         B2       C1        D1l    A1         B3       C2        D1l    A2         B1       C1        D1l    A2         B2       C3        D2l((1)找出其上的所有候选键)找出其上的所有候选键   ((2)关系)关系r 最高为哪一级范式最高为哪一级范式   ((3)将)将r规范化为规范化为3NF 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.