1、数据库技术简介,一 内容数据库技术的基本理论和方法数据库领域研究的的新理论、新技术。,二 要求掌握相关理论、原理和技术有课后书面作业期末闭卷考试成绩:平时成绩(20)考试成绩(80),三 教材与参考书1.教材:数据库理论与新技术 北京理工大学出版社 2.参考资料: 1.王珊 萨师煊 数据库系统概论 高等教育出版社 2. 闪四清,数据库系统原理与应用教程,清华大学出版社,北京,2008.4 3.李昭原,数据库技术新进展 清华大学出版社 2007.10 4. SYBASE、ORACLE、IBM DB2、INFORMIX、MS SQL SERVER数据库系统有关资料。 3.教材和参考书的使用本课程以
2、教材为主,课件内容主要来自教材和参考书,课程内容自成体系。对以前一点没有学过数据库基本知识的同学,可以从参考书1或其它相关参考书中查到一些最基本的知识。,四.本课程主要内容第一章 关系和关系模型数据模型, 关系和关系模式, 键, 关系的更新. 第二章 关系运算布尔运算,选择 ,投影, 连接, 除,常关系 ,属性命名,关系代数. 第三章 数据依赖函数依赖、多值依赖和连接依赖,数据依赖的公理系统,依赖集的等价和覆盖及算法。 第四章 关系数据库范式范式的概念,1NF5NF,模式分解及其算法,生成范式的不同算法。 第五章 数据库系统设计数据库系统设计与数据库设计,数据库系统设计的任务与内容,数据库系统
3、设计方法与步骤。 第六章 数据库管理系统数据库管理系统的系统结构、主要功能、实现技术、语言处理,当前流行的主流数据库管理系统简介。,本课程主要内容,第七章 分布式数据库系统分布式数据库系统的特点,分布式数据库系统的体系结构,分布式查询处理,分布式事务管理,分布式目录,数据库的安全保护,数据库的完整性保护。 第八章 面向对象数据库新应用的需求与传统数据库的局限性,面向对象数据模型,面向对象数据库系统的查询、并发控制,面向对象数据库管理系统,对象-关系数据库管理系统。 第九章 数据库技术新进展数据库技术新进展,包括:数据仓库、数据挖掘、并行数据库、Web数据库、多媒体数据库、工程数据库、主动数据库
4、等。 第十章 数据库技术论文选读 选择10-15篇与教学内容相关的学术论文进行讲解,让学生了解本学科的基本研究方法和研究方向。,五.数据库领域研究的三个主要方面,1数据库管理系统软件(DBMS)研究其设计方法和实现技术,数据模型,对持久性数据的有效存储和存取方法,数据结构定义和数据操纵语言,用户接口等。 数据库管理系统软件是位于用户和操作系统之间的数据管理软件。如ORACLE、SQL Server、DB2、ACCESS等,2 数据库应用系统的设计方法和工具早期有设计指南和规范标准,设计阶段的计算机辅助设计工具,计算机辅助设计全过程。要求设计工具能够支持不同应用领域数据库设计,如支持复杂对象设计
5、等。,3有关数据模型及设计理论的研究(7方面)(1)数据依赖理论 函数依赖、多值依赖、连接依赖 (2)规范化理论 范式、算法、模式分解 (3)查询优化理论 包括逻辑层和物理层的优化,4泛关系理论 泛关系模型、泛关系表示、泛关系查询 5符号表追踪理论 6超图理论 利用超图研究数据库模式的特性 7空值理论(不确定信息)空值表示,加了空值后的运算、推理,空值的分类,分解方法、查询优化等。,分布式数据库 面向对象数据库 对象关系数据库 并行数据库 多媒体数据库 工程数据库 智能数据库 模糊数据库 嵌入式数据库,主动数据库 空间数据库 时态数据库 Web数据库 数据仓库和数据挖掘,六. 数据库领域的新技
6、术,人工管理阶段(上世纪50年代初期) 数据不保存 应用程序管理数据 数据不共享 数据不具有独立性,七.数据管理技术的产生和发展,文件系统阶段(上世纪50年代后期)数据物理结构和逻辑结构的分离 数据可以长期保存 由文件系统管理数据 数据文件是面向应用的 数据共享性差,冗余度大 数据独立性差,数据库系统阶段(上世纪60年代后期) 数据结构化 数据的共享性高,冗余度低,易扩充 数据独立性高 数据由统一管理和控制,数据库 管理系统,数 据 库,数据库(DataBase, DB)长期存放在计算机内的、有组织的、可共享的数据集合。数据库管理系统(Data Base Management System D
7、BMS)数据库管理系统是位于用户和操作系统之间的数据管理软件。如ORACLE、SQL Server、DB2、ACCESS等 。数据库管理系统的功能是:科学地组织和存储数据、高效地获取和维护数据。,八.数据库、数据库管理系统、数据库系统,数据库系统(DBS)由:数据库、数据库管理系统、应用系统、数据库管理员(DBA)、数据库用户构成的系统,后页,任课教师: 苏桂平 手机:13611083588邮箱:答疑地点:青年公寓6号楼2层214-3答疑时间:周三上午3-4节,第 一 章 关系和关系模型,主要内容: 数据模型 关系和关系模式 键 关系的更新,数据模型的组成要素:数据结构、数据操作、 数据的完整
8、性 基本的数据模型分类:层次、网状、关系数据模型、面向对象数据模型,1.1 数据模型,1 .1 .1数据模型的组成要素,( l )数据结构:用于描述数据的静态结构,包括应用所涉及的对象类和对象类所具有的特性以及它们之间的联系。(2 )数据操作:是施加在对象上的一组操作,是对系统动态特性的描述。(3 )数据的完整性:是对数据静态和动态特征性的限制,是一组完整性规则的集合。完整性规则是用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。,1.层次模型 有且仅有一个结点无双亲,称为根结点; 其它结点有且仅有一个双亲。层次模型的数据结构是一棵树。,1 .1 .2 基本数据模型
9、分类,大学组织机构的层次模型,2. 网状模型,允许一个结点可以有多个双亲;多个结点无双亲结点。,基本结构是二维表,一张表称为一个关系。 与层次和网状模型比较,关系模型有下列优点: 数据结构单一; 建立在严格的数学概念基础上; 将数据定义和数据操纵统一在一种语言中,使用方便,易学易用。由于关系模型具有许多优点,因而 在80年代之后的商品化数据库系统几乎都是关系型的。所以关系数据库是本课程的主要研究内容之一。,3 . 关系数据模型,(a) 学生关系,(b) 教师开课关系,可以表示复杂对象;模块化的结构,便于管理;具有定义抽象数据类型的能力。面向对象的数据模型是新一代数据库系统的基础,是数据库技术发
10、展的方向。,4. 面向对象数据模型,1.2 关系和关系模式 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,bD1D2 =(1,a),(1,b),(2,a),(2,b),(3,a),(3,b),实际上,如D1学生集(50个),如D2班级集(2个),D1
11、D2 有多少元素?意义?定义2(关系):集合D1,D2,.,Dn笛卡尔积的任一个子集称该集合上的一个关系(Relation)。其中,集合D1,D2,.,Dn是关系中元组的取值范围,称关系的域(domain),这些域是有限的非空集合,n叫做关系的度(degree)。,关系的基本概念 关系(Relation) 二维表,关系用关系名标识,如关系r。 元组(Tuple) 表中的行,一般用变量 t 表示。 属性(Attribute) 表中的一列,如列Ai, domAi表示属性Ai的域 键(Key,码) 可以唯一地确定一个元组的属性组。关系举例:火车时刻表,dom( NUMBER ) = 565, 523
12、, 532, K95, K96 dom( FROM ) = dom( TO ) = BeiJing , XuZhou , , ShenZhen dom( DEPARTS ) = dom( ARRIVES ) = 一组时间。,表1 火车时刻表,关系的性质 (关系数据库中对关系的限定) 1. 每一列中的值是同类型的数据,来自同一个域。2. 不同的列可以有相同的域,每一列称为属性,用属性名标识。3. 列的顺序是无关紧要的。4. 任意二个元组不能完全相同。(相同元组称重复组)5. 行的顺序是无关紧要的。6. 关系中的每个分量都是原子值,是不可分的数据项。,1.2.2 关系模式 关系模式一般表示为:关系
13、名(属性1、属性n) 如:R(A1,A2,An)。用U表示关系R的属性集合 U=A1A2An ,模式R上的一个关系r是从U到D的映象。元组tr,t的分量用tAi表示.tAiDi例: 在学生关系模式 S(SNO,SNAME,AGE,SEX,CNO)中,当CNO=1, 就可以一班学生的列表,即一个具体的关系;当CNO=2, 就可以二班学生的列表,即另一个具体的关系。,定义(关系数据库模式): 设属性集U和U的属性所关联的域为D,U上的关系数据库模式R是 R1, R2, , Rp 的集合,即:R =R1, R2, , Rp ,且U =R1 R2 Rp 。 比如: R1为学生关系:S(Sno,Snam
14、e,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.,关系模式和关系的区别和联系:,关系模式:对一类实体特征的结构性描述,即对关系的结构性描述,该描述一般包括关系名、属性名、属性域的类型和长度,属性之间固有的依赖联系等。 关系模式和关系的区别和联系:关系模式描述的是关系的静态
15、结构信息,是对一个关系的“型”的描述,是相对固定的。关系是在关系模式约束之下的若干实体的集合,实体的数量是随时间变化的,但这种变化必定在关系模式的约束范围内。一般用大写字母表述关系的结构,比如R,用小写字母一个具体的关系值,如r.,1.3 键(Key)和关系的完整性1.键设关系模式R(U),K U,r是R上的任一关系,若对r中的任意二个不同的元组t1、t2满足:(1) t1K t2K;(2) 若 K K 而t1K t2K 不成立。 称K是R的键。若仅条件(1)成立,K是R的超键。有键的定义得出:键是能唯一标示元组的最小属性集。在上面火车时刻表的例子中,NUMBER是一个键。,2. 主键、隐含键
16、、候选键、 超键,主键:有的关系具有多于一个键,这种情况下指派其中一个键为主键,简称为关系的键。用带下划线的属性表示。例如: TRAIN(NUMBER, FROM, TO, DEPARTS, ARRIVES )TRAIN(NUMBER, FROM, TO, DEPARTS, ARRIVES ) 隐含键:未被制定的键称隐含键,也称替补键。 候选键:主键和隐含键统称为候选键。 超键: 在上面键的定义中,若条件(2)不成立,称K为R的超键。 例如:NUMBER、 FROM是一个超键。,3. 关系的完整性,实体完整性关系中键属性的值不能取空值。 例如:学生关系 S(SNO,SNAME,AGE,SEX,
17、CNO)参照完整性是关系间引用所遵循的规则,与外键有关。 用户定义的完整性 数据间应满足的语义约束关系,由用户定义,由系统检查。,(2)完整性约束,下下页,参照完整性规则 关系R中外键的值或者为空值,或者为被参照关系中主键的值。,建立表结构和完整性约束,补充:SQL语言简介SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言将数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能集于一体,可以独立完成数据库生命周期中的全部活动.SQL被作为关系型数据库管理系统的标准语言。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sy
18、base, Microsoft SQL Server, Access等都采用了SQL语言标准。基本的SQL语句包括Select、Insert、 Update、Delete、Create、Drop,它们可以被用来完成几乎所有的数据库操作。 很多数据库根据不同的需要对SQL语句进行了再开发和扩展。,SQL的基本语句,1. 创建新表create table tabname(col1 type1 not null primary key,col2 type2 not null,) 例:CREATE TABLE C (CNO NUMBER(6) ,CMN CHAR(10) )2.选择 select *
19、from table1 where 范围 例:SELECT SNO,SNAME FROM S WHERE CNO=2002013.插入 insert into table1(field1,field2) values(value1,value2) 例:INSERT INTO SVALUES(909901, 李利,21,男,200205);,4.删除 delete from table1 where 范围 例:DELETE FROM SWHERE SNO= 20100162 ; 5.更新(修改) update table1 set field1=value1 where 范围 例:UPDATE
20、S SET Sage=23 WHERE Sno=20100162完成核心功能SQL语言只用9个动词,并且它的表达接近英语句子,所以比较简单、易学。SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言, SQL语句能够嵌入到高级语言,比如:C、PL/1、FORTRAN。,CREATE TABLE S(SNO NUMBER(4),SNAME CHAR(10) NOT NULL,AGE NUMBER(3) ,SEX CHAR(1),CNO NUMBER(6),CONSTRAINT SK1
21、PRIMARY KEY (SNO), CONSTRAINT SK2 FOREIGN KEY(CNO)REFERENCES C(CNO),CONSTRAINT SK3 CHECK(AGE IN (16,45);,CREATE TABLE C (CNO NUMBER(6),CMN CHAR(10),CONSTRAINT CK PRIMARY KEY (CNO);,1.4 关系的更新插入、删除、修改,1插入对关系r(A1,A2,An),插入操作形式为:ADD(r;A1 = d1, A2 = d2, An = dn)ADD(r;d1, d2, , dn)例:ADD(S;SNO=909901, SNAM
22、E = 李利,AGE=21, SEX=男,CLASSNO=200205),插入操作的有效检查:(1).描述的元组是否符合所指定的关系模式;(2).元组的某些值是否属于对应的域;(3).元组的键是否已在关系中存在。,例:用SQL语言实现在学生关系S中插入一个元组。INSERT INTO SVALUES(909901, 李利,21,男,200205);,2删除对关系r(A1,A2,An),删除操作形式为:DEL(r;A1=d1, A2=d2, An=dn)DEL( r;d1, d2, dn );若K=B1B2Bm,DEL( r; B1=k1, B2=k2, Bm=km)例:DEL(S;SNO=90
23、9901, SNAME = 李利,AGE=21, SEX=男,CLASSNO=200205),删除操作的检查: 如果被删除元组在关系中不存在,这个关系将保持不变,但需给出一个出错提示。 * 删去最后一个元组不受限制,即允许是空关系。,实际上,为了识别被删除的元组并不需要所有元组的信息,只需要制定键的值就足够了。比如: 删除学号为909901的学生元组DELETE FROM SWHERE SNO=909901;,3修改修改元组的部分值。对关系r(A1,A2,An),若属性集C1,C2,Cp A1,A2,An,则修改操作形式为:CH(r;A1=d1,A2=d2,An=dn;C1=e1,C2=e2,
24、Cp=ep)如果KB1, B2, Bm为键,则可简化为:CH(r;B1=k1,B2=k2,Bm=km;C1=e1,C2=e2;Cp=ep)例: CH(S;SNO=909901;CLASSNO=200203),修改操作可用删除操作后跟一个插入操作实现。对插入和删除操作的限制可运用到修改操作中。,例: 施加一系列操作于火车时刻表 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;NUM
25、BER=532; DEPARTS=22:45, ARRIVES=10:42)。,火车时刻表,练习,2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。 学生:学号、姓名、出生年月、系名、班号、宿舍区。 班级:班号、专业名、系名、人数、入校年份。 系:系名、系号、系办公地点、人数。 学会:学会名、成立年份、办公地点、人数。语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,指出各关系模式的候选键和外键 。,练习解答,解:(1)关系模式如下:学生:S(Sno
26、,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后练习一下),第二章 关 系 运 算,本章的主要内容: 布尔运算
27、选择 投影 连接 除 常关系 属性重命名 关系代数,2.1 布尔运算,关系可以看做元组的集合,那么集合的并、交、差等布尔运算算都可以用到关系中。关系的布尔运算包括:并、交、差、广义笛卡尔积、补、有效补。,同类关系:若R和S是同类关系,则满足如下条件:(1)R和S具有相同的度;(2)R和S的对应属性定义在同一个域上。同类关系也称相容运算,布尔运算大多是在同类关系中进行。,并(Union) 关系R和S的并其结果由属于R或属于S的所有元组组成,其结果为一个新关系。记为: Q = RS = t | t R 或 t S,交(Intersection)关系R和S的交其结果由既属于R又属于S的所有元组组成。
28、 记为:Q = RS = t | t R 且 t S,差( Difference) 关系R和S的差由属于R但不属于S的所有元组组成。记为:Q = RS = t | t R 但 t S,例子: RS,R,S,RS,例子: R - S,例子: R S,例:并运算的SQL实现 查询200201班的学生和年龄超过23岁的学生姓名。 SELECT SNO,SNAMEFROM SWHERE CNO = 200201 UNION SELECT SNO,SNAMEFROM SWHERE AGE 23; * INTERSECT(交)、MINUS(差),广义笛卡尔积 的例子:,R,S,R S,有学生关系S(Sno
29、,Sname,Sage)和选课关系SC(Sno,Cno,Grade) SELECT S.*, SC.*FROM S,SC,例:广义笛卡尔积的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,b2R上的关系r和r的补r 如下所示。,r ( A B ) r ( A B )a1 b1 a2 b2a1 b2 a3 b1 a2 b1 a3 b2,例: 设R(A,B,C),dom(A)=a1,a2,dom
30、(B)=整数的集合, dom(C)=c1,c2。求r的补。,r ( A B C ) a1 1 c1a1 2 c2a2 1 c1a2 2 c1a2 3 c2,有效补关系模式R(A1,A2,An),属性Ai的有效值域:adom(Ai,r)= d | dDi,存在tr且tAi=d 定义r的有效补为:,有效补的应用:当关系元组数比其有效补元组数多得多时,有效补可作为数据压缩手段。例如:学生选课,一个班有50个学生选数据库课,3个学生不选, 则存储选修了数据库课的学生可用存储其有效补实现。,练习,1 .设R(A,B,C),dom(A)=a1,a2,dom(B)=b1,b2,b3, dom(C)=c1,c
31、2r ( A B C) a2 b3 c1 a2 b1 c1 a2 b2 c1 a1 b1 c1求:r 的补和有效补,从关系中选择在指定属性上有确定值的关系的子集。表示为:Aa(r) ttr 且tA=a 。选择运算是选择关系中行的子集,即选择满足条件元组。,例:在下面关系train中 求:FROMbeijing(train) ;DEPARTS16:55(train),2.2 选择(Select),(2) 可分配 A=a (rs) = A=a(r)A=a(s)其中 、或, 且r和s是同类关系。广义选择: A a(r) t | tr且tA a 其中为、。,选择运算的特性,设r(R)是一个关系,A和B
32、为R的属性。(1) 可交换 A=a(B=b(r))B=b(A=a(r)。例:学生关系中,A=2011年入学, B=信息学院,2.3 投影(Project)投影是选取关系中列的子集。设模式R上关系r,X是R上属性的子集,r到 X上的投影r表示为:r(X)= x(r)=tX | tr。投影的结果不是原来的关系,是X中几列属性。* 如果X中不包含R的键,则选取的列中会出现重复元组,r(X)中应不包含重复元组。 例: Sno,Sname(S); Cno(S),投影的特性:,投影的串接 给定关系r(R),且Y X R,则:Y (X(r)= Y(r) 对一串投影而言,若X1 X2 Xm R,则:X1(X2
33、(Xm(r)X1(r)投影和选择的可交换性 设r是R上的一个关系,AX,X R,则下式成立: X( A=a( r ) = A=a( X( r ),SELECT SNO,SNAMEFROM SWHERE CNO=200401,投影,选择,检索200401班学生的姓名。,2.4 连接(Join),R,S,例子:求R和S自然连接,连接运算:有学生关系S和课程关系C.SELECT SNO,SNAME,S.CNO,CMNFROM S,CWHERE S.CNO=C.CNO,A . a,连接的特性:,A . a1a2ak,多元连接可连接: 设关系s1(S1), s2(S2), ,sm(Sm),t1 , t2
34、 , ,tm 为元组序列,且tiSi,1im。又R = S1S2Sm。 若在r(R)上存在一个元组t,使得ti=tSi,1im, 则称元组序列t1,t2,tm在R上是可连接的。,a1 b2 c1,2.4.2 _连接(Theta_Join)_连接: 设r(R)和s(S)为两个关系,且AR, BS, dom(A)= dom(B), r和s在A和B上的_连接写作:rABs设Q=RS,则_连接可用下式表示:qQ=t | tq,trr & tss & tR=tr& tS=ts & tAtB其中为比较符: 、 示例,R,S,例子:,R S,CE,等值连接 R S,R.B=S.B,学生关系 S(SNO,SN
35、AME,AGE,SEX,DEPTNO)专业系 DEPT(DEPTNO, DNAME)选择运算: SNAME = LiMing (S); 投影运算: SNO, SNAME, DEPTNO(S);连接运算: S DEPT,示例:,思考:在第一章的建立数据库例子中,如何通过学号查该学生的入学年份和所学专业?如何通过系号查该系同学所住的宿舍区?如何通过学号查该学生所在系的的办公地点?,建立一个关于系、学生、班级、学会等诸信息的关系数据库。 学生:学号、姓名、出生年月、系名、班号、宿舍区。 班级:班号、专业名、系名、人数、入校年份。 系:系名、系号、系办公地点、人数。 学会:学会名、成立年份、办公地点、
36、人数。 学生: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)即:对每一元组tss都存在一元组trr,使得trR=t 且trs=ts设rs 得到的新关系其属性集为X,则除法可用下式表示: R(X,Y) S(Y)= X(R) X( X ( R)S R) 即 rs是满足下列条件的最大关系: rs的每个元组t与s中每个元组u组成的元组必在关系r中。,定义除: 设关系r(R)和s
37、(S),且S R。令R = RS,除运算rs 的结果为一个新关系 r,记作:rs = r(R)= t | tr且trr, tss, t = trR & trS=ts, t s r ,909803,除法运算: SC C,关系代数运算的应用: 查询 例:学生关系: S(SNO,SNAME,. )课程关系: C(CNO,CNAME)学生选课关系:SC(SNO,CNO,G) 查询:1.选修了数据库课的学生姓名.2.选修了全部课程的学生号和姓名,设A1,A2,.,An为互不相同的属性名且常量Ci dom(Ai),1in。常元组表示为:,常关系是常元组的集合,模式A1A2.An上的一个常关系可表示为: ,
38、,2.6 常关系(Constant Relation),设关系r(R), AR,BR,但A和B有相同的域。又设 R =(R-A)B,则属性A被重命名为B后的关系记作:r(R) AB (r),可以一次对多个属性重命名: A1,A2,.,AK B1,B2,.,BK(r),2.7 属性重命名,例1: 设关系R(A,C,D),S(B,C,D), A和B有相同的域,则下列运算可以进行:R BA (S)例2:设学生表S(SNO,SNAME,CLASS) SELECT S2.SNAME FROM S S1,S S2where S1.SNAME=李利AND S1.CLASS=S2.CLASS * SQL中的同
39、义名,关系代数是一个7元组 从U到D的映射关系集(U、D、dom、R、d、 )属性全集 域, 模式集 比较符 运算符,由d中的关系、R模式上的常关系使用中的运算按一定 规则所形成的合法表达式称上的关系代数表达式。关系代数表达式的优先级为:括号优先,此外,二元关系除优先于之外,其它运算不设定优先次序。,2.8 关系代数,7. 若EA1,A2,A3,AkB1,B2,.,Bk(E1),则 sch(E)=(sch(E1)A1,A2,.,Ak)B1,B2,.,Bk。,E的等价表达式E :单一属性、单一元组的常关系, 且仅含有 选择、投影、笛卡尔积、并、差和重命名运算符。,作业,练习,1.设关系r和s如下
40、:r ( A B C) s ( B C D )a2 b3 c2 b1 c1 d1a2 b1 c1 b2 c1 d1a2 b2 c1 b2 c2 d1a1 b1 c2计算下列表达式的值: (1) A= a2 (r); (3) B(r) (2) 设A=a1,a2,B=b1,b2,b3 C=c1,c2, r 和s 的补和有效补,2设关系r和s如下:r ( A B C) s ( B C D )2 4 6 5 7 33 5 7 4 6 27 4 6 5 7 9 5 4 7 5 6 3求 r 与s的自然连接。,3.关系R和S如下表所示,求RS 关系R 关系SA B C D C Da1 b1 c1 d1 c1 d1a1 b1 c2 d2 c2 d2a1 b1 c3 d3a2 b2 c2 d2a3 b3 c1 d1a3 b3 c2 d2,