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

关系模型和关系运算.ppt

80页
  • 卖家[上传人]:桔****
  • 文档编号:569463017
  • 上传时间:2024-07-29
  • 文档格式:PPT
  • 文档大小:946.81KB
  • / 80 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第第 一一 章章 关系和关系模型关系和关系模型 主要内容:主要内容:数据模型数据模型关系和关系模式关系和关系模式键键关系的更新关系的更新 数据模型的组成要素:数据模型的组成要素: 数据结构、数据操作、数据结构、数据操作、 数据的完整性数据的完整性基本的数据模型分类:基本的数据模型分类: 层次、网状、关系数据模型、层次、网状、关系数据模型、面向对象数据模型面向对象数据模型1.1 数据模型数据模型 1 .1 .1数据模型的组成要素数据模型的组成要素 (( l )数据结构:)数据结构:用于描述数据的静态结构,包括应用用于描述数据的静态结构,包括应用所涉及的对象类和对象类所具有的特性以及它们之间所涉及的对象类和对象类所具有的特性以及它们之间的联系 ((2 )数据操作:)数据操作:是施加在对象上的一组操作,是对系是施加在对象上的一组操作,是对系统动态特性的描述统动态特性的描述 ((3 )数据的完整性:)数据的完整性:是对数据静态和动态特征性的限是对数据静态和动态特征性的限制,是一组完整性规则的集合制,是一组完整性规则的集合 完整性规则是用以限定符合数据模型的数据库状完整性规则是用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。

      态以及状态的变化,以保证数据的正确、有效、相容 1.1.层次模型层次模型有且仅有一个结点无双亲,称为根结点;有且仅有一个结点无双亲,称为根结点;其它结点有且仅有一个双亲其它结点有且仅有一个双亲 层次模型的数据结构是一棵树层次模型的数据结构是一棵树1 .1 .2 基本数据模型分类基本数据模型分类 大学组织机构的层次模型大学组织机构的层次模型 2. 网状模型网状模型 允许一个结点可以有多个双亲;允许一个结点可以有多个双亲; 多个结点无双亲结点多个结点无双亲结点班级课程学生 基本结构是二维表,一张表称为一个关系基本结构是二维表,一张表称为一个关系与层次和网状模型比较,关系模型有下列优点:与层次和网状模型比较,关系模型有下列优点:数据结构单一;数据结构单一;建立在严格的数学概念基础上;建立在严格的数学概念基础上;将数据定义和数据操纵统一在一种语言中,使用方便,将数据定义和数据操纵统一在一种语言中,使用方便,易学易用易学易用l 由于关系模型具有许多优点,因而由于关系模型具有许多优点,因而 在在8080年代之后的年代之后的商品化数据库系统几乎都是关系型的。

      所以关系数据库商品化数据库系统几乎都是关系型的所以关系数据库是本课程的主要研究内容之一是本课程的主要研究内容之一 3 . 关系数据模型关系数据模型 9020042 陆川陆川 200402 9020041 刘敏刘敏 200401 9020031 李丽李丽 200302 9020031 王鸣王鸣 200301 班级班级 姓名姓名 学号学号 (a) 学生关系学生关系 9020042 数数 据据 库库 计算机计算机 曹曹 岩岩 9020041 人工智能人工智能 计算机计算机 马小路马小路 9020032 英语英语 外外 语语 赵赵 伟伟 9020031 计算数学计算数学 数数 学学 吴云峰吴云峰 班级班级 课程课程 系别系别 教师姓名教师姓名 (b) 教师开课关系教师开课关系 可以表示复杂对象;可以表示复杂对象; 模块化的结构,便于管理;模块化的结构,便于管理; 具有定义抽象数据类型的能力具有定义抽象数据类型的能力 面面向向对对象象的的数数据据模模型型是是新新一一代代数数据据库库系系统统的的基础,是数据库技术发展的方向。

      基础,是数据库技术发展的方向 4. 面向对象数据模型面向对象数据模型 1.2 1.2 关系和关系模式关系和关系模式1.2.1 1.2.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. 关系中的每个分量都是原子值,是不可分的数据项关系中的每个分量都是原子值,是不可分的数据项。

      1.2.2 1.2.2 关系模式关系模式 关系模式一般表示为:关系模式一般表示为:关系名(属性关系名(属性1、、……属性属性n)) 如:如:R R(A(A1 1,A,A2 2, ,…,A,An n) ) 用用U U表示关系表示关系R R的属性集合的属性集合 U=A1∪A2∪U=A1∪A2∪……∪An ,∪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定义定义(关系数据库模式关系数据库模式): 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.3 1.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.4 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 练习练习l2.建立一个关于系、学生、班级、学会等诸信息的关系数建立一个关于系、学生、班级、学会等诸信息的关系数据库。

      据库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后练习一下)后练习一下) 第二章第二章 关关 系系 运运 算算 本章的主要内容:本章的主要内容:布尔运算布尔运算选择选择 投影投影 连接连接 除除 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 m××n n ,, 其中其中m m、、n n分别为分别为R R和和S S的元组数。

      的元组数 R R和和S S的笛卡尔积记为:的笛卡尔积记为: Q = R Q = R ×× S = {t |t 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,R(A1,A2,……,An),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) 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=信息学院 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 r××s s 2.4.1 2.4.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中元组的串接,而且它们的公共属性值只出现一次中元组的串接,而且它们的公共属性值只出现一次。

      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 u 连接运算可模拟选择运算连接运算可模拟选择运算 设关系设关系r(R),,A ∈∈R,,a ∈∈dom(A)设s(A)只含一个分量只含一个分量A  A=a(r)可表示为可表示为: r s  A=a1 (r) ∪∪ A=a2 (r) ∪∪…∪∪ A=ak (r)表示为表示为: r s u 连接运算的可交换和可结合性连接运算的可交换和可结合性 q r==r q (q r) s==q (r s) A . au 连接对并、交、差的可分配性连接对并、交、差的可分配性 ( (r∪rr∪r ) s = (r s)∪(r) s = (r s)∪(r  s) s) 连接的上述性质在查询优化中是很有用的,在第连接的上述性质在查询优化中是很有用的,在第7 7章分布式数据库的查询优章分布式数据库的查询优化中要用到。

      化中要用到连接的特性连接的特性: A A . . a1 a1 a2 a2 … ak ak u 多元连接多元连接 可连接:可连接: 设关系设关系s1(S1), s2(S2), … ,sm(Sm),,t1 , t2 , … ,tm为元组序列,且为元组序列,且ti∈∈Si,,1≤i≤m又R = S1∪∪S2∪∪…∪∪Sm若在若在r(R)上存在一个元组上存在一个元组t,使得,使得ti=t[Si],,1≤i≤m,,则称元组序列则称元组序列t1,t2,…,tm在在R上是可连接的上是可连接的完全连接完全连接: : 设关系序列设关系序列s s1 1(S(S1 1), s), s2 2(S(S2 2), ), …, s, sm m(S(Sm m) ),如果,如果对关系对关系S Si i(1≤i≤m)(1≤i≤m)中的每个元组都是可连接序列中的成员,中的每个元组都是可连接序列中的成员,则称则称 s s1 1 s s2 2 … s sm m 为完全连接为完全连接 完全连接的例子:完全连接的例子: s s1 1((A BA B)) s s2 2((B CB C)) s s3 3((A CA C)) a a1 1 b b1 1 b b1 1 c c2 2 a a1 1 c c2 2 a a1 1 b b2 2 b b2 2 c c1 1 a a2 2 c c2 2 a a2 2 b b1 1 s s1 1 s s2 2 s s3 3 = = ( A B C)( A B C) a a1 1 b b1 1 c c2 2 a a2 2 b b1 1 c c2 2 a a1 1 c c1 1加入a a1 1 b b2 2 c c1 1 2.4.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 78第第1次作业次作业(作业要求纸质)作业要求纸质)1.设关系设关系r和和s如下:如下: r ( A B C) s ( B C D ) a2 b3 c2 b1 c1 d1 a2 b1 c1 b2 c1 d1 a2 b2 c1 b2 c2 d1 a1 b1 c2 计算下列表达式的值:计算下列表达式的值:((1))   A= a2 (r); (3)  B(r)((2)设)设A={a1,a2},B={b1,b2,b3} C={c1,c2}, D={d1,d2}, 求求r 和和s 的补和有效补的补和有效补 792..设关系设关系r和和s如下:如下: r ( A B C) s ( B C D ) 2 4 6 5 7 3 3 5 7 4 6 2 7 4 6 5 7 9 5 4 7 5 6 3 求求 r 与与s的自然连接。

      的自然连接 80 3.关系R和S如下表所示,求R÷S关系R 关系S A B C D C D a1 b1 c1 d1 c1 d1 a1 b1 c2 d2 c2 d2 a1 b1 c3 d3 a2 b2 c2 d2 a3 b3 c1 d1 a3 b3 c2 d2 。

      点击阅读更多内容
      相关文档
      【全国硕士研究生入学统一考试政治】2020年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2015年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2010年考研政治真题.docx 【全国硕士研究生入学统一考试政治】1996年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2001年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2016年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2000年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2007年考研政治真题.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2004年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2003年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2019年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2009年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2001年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2021年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2014年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2018年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2008年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2011年考研政治真题.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.