版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020年8月12日,1,第2章 关系数据模型,学习内容, 关系数据模型, 关系上的完整性约束或限制, 关系代数, 关系运算,2020年8月12日,2,2.1 关系数据模型,1.如何表达data本身?,2.如何表达数据间的联系?,3.能表达哪些完整性约束?,5.完整性约束的效果?,4.完整性约束如何设定?,6.如何进行关系模型的DB设计?,2020年8月12日,3,2.1.1 关 系 (一),概念:在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。关系理论是以集合代数理论为基础的,后面将给出用集合代数对二维表“关系”的定义。,构成:由“行”(Row)和“列”(Column)组成。
2、 各列构成“关系模式(Schema)”,各行为“关系实例(Instance)”。,行:有时也称“元组”(Tuple)、“记录”(Record)。,列:有时也称“字段”(Field)、“属性” 。,2020年8月12日,4,2.1.1 关 系 (二),关系实例:记录集或元组集,常简称关系;行序不重要,而列序重要(关系代数中有时用列号来代表列名);每个元组的字段必须对应关系模式中的字段。,2020年8月12日,5,2.1.1 关 系 (三),2020年8月12日,6,2.1.1 关 系 (四),关系模式:由关系名、各个域构成。 域(Domain) :域是一组具有相同数据类型的值的集合,又称为值域。
3、包括:数据类型及长度、域名、取值范围。 关系中用域表示属性的取值范围。例如: D1=李力,王平,刘伟 m1=3 D2=男,女 m2=2 D3=47,28,30 m3=3 其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。 域中所包含的值的个数称为域的基数,2020年8月12日,7,2.1.1 关 系 (五),关系模式R是属性A1,A2,Ak的有限集合。每个属性Aj对应一个值域j=d(Aj)(j=1,k),值域简称域,它可以是任意的非空有限集合或可数无限集合。 关系模式R上的一个关系rR是它的属性Aj (j=1,k)所对应的域d(Aj)构成的笛卡尔乘积空间d(R)=d(A1
4、) d(A2) d(Ak)中的一个子集D。,举例,关系模式 R= Name , Age , Sex ,域: Name=Li , Wang , Zhang Age= 21 , 22 Sex= M , F ,三个域的笛卡尔乘积 : D=d( Name )d( Age ) d(Sex ),关系:,r1,r2,D,结论:关系是按一定的语义约束条件从笛卡尔乘积空间中选择出来的元组的集合。,2020年8月12日,9,2.1.1 关 系 (六),关系构成规则:,同一关系中不能包含重复元组;,元组的排列顺序可任意;,属性(列)的排列顺序也可任意。 同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。
5、关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。,2020年8月12日,10,2.1.1 关 系 (六),2020年8月12日,11,2.1.2 关键字(一),在关系rR中,如果属性集合XR具有性质:“对r的任何两个元组t、u,都有tXuX”,则称X为r的超关键字。,(1)超关键字:,(2)候选关键字:,如果一属性集合是超关键字,但去掉其中任一属性后就不再是超关键字了,这样的属性集合称为r候选关键字。,(3)合成关键字:,当某个候选关键字包含多个属性时,则称该候选关键字为合成关键字。,2020年8月12日,12,2.1.2 关键字(二),(4)主关键字:
6、,为关系组织物理文件时,通常选用一个候选关键字作为插入、删除、检索元组的操作变量。被选用的候选关键字称为主关键字。,(5)外部关键字:,如果关系R1的某一(些)属性A1不是R1的候选关键字或超关键字,而是另一关系R2的候选关键字,则称A1为R1的外部关键字。,例,S(学生关系) D(系别关系),2020年8月12日,14,目的: RDBMS必须帮助阻止非法数据的输入。,概念:要求存入DB的数据应满足的条件。,ICs指定的时间:定义完一个DB模式时/后。,ICs何时起作用:当DB App运行时,DBMS检查输入或更新的数据是否满足IC指定的条件。,可被指定的ICs :域约束、主键限制、唯一限制、
7、外键限制、一般性限制等。用SQL-92可指定这些限制,如果某限制被违背,系统将返回限制名,并用来识别错误。,2.1.3 关系模型完整性限制(一)(Integrity Constraints,ICs),2020年8月12日,15,2.1.3 关系模型完整性限制(二),概念:针对主键而言,保证主键的完整性。,要求:主键值必须唯一,且不能为空值。,(2)主键约束(Primary Key Constraint),概念:指数据类型的约束,是关系模型中最基本的约束。,(1)域约束(Domain Constraint),2020年8月12日,16,2.1.3 关系模型完整性限制(三),外键定义:一张表中的某
8、个(组)字段是另一张表 中的候选键/主键。,外键示例 :,(3)外键约束(Foreign Key Constraint),2020年8月12日,17,2.1.3 关系模型完整性限制(四),从表:指含有外键的表。,目的:用来维护表与表之间的数据一致性,即其中一张表的改动,可能要求另一张表要作出某些改动,以保持数据一致。为使DBMS能做这样的检查,则应指定这种涉及两个表的ICs,此即外键限制。,主表:指外键在另一张表中作主/候选键的表。,2020年8月12日,18,表间数据完整性的实现方式:,(1) 针对从表,在从表定义外键限制,此时为“参照完整性限制”(Reference Constraint)
9、;,(2) 对主表和从表的维护使用触发器。,2.1.3 关系模型完整性限制(五),2020年8月12日,19,2.1.3 关系模型完整性限制(六),(4)唯一限制(Unique Constraint),概念:针对候选键而言,保证候选键的完整性。,要求:值唯一,允许有一个且仅有一个空值。,(5)一般性限制( General Constraints)域限制、主键限制、唯一限制和外键限制是关系数据模型中最基本的限制,在大多数商用系统中都支持。其他还有更一般的限制,如检查限制(Check Constraint,亦称“表限制”)用于检查列值在某一取值范围之内。,2020年8月12日,20,关系创建并指定
10、了ICs后,当关系“更新”时应实施检查。,(1)对域限制、主键限制和唯一限制的实施,(2) 对参照完整性限制的实施,由于影响直接,故只要插入/删除/修改命令违背了限制,即被拒绝。而其它ICs(如一般性限制)的违背检查通常是在每个SQL语句之后。,外键限制的影响较复杂,因为SQL不会简单地拒绝改变,而要试图矫正对外键限制的违背。,2.1.3 关系模型完整性限制(七),2020年8月12日,21,(3)对从表:删除不会违背参照完整性限制,但插入和修改可能会违背参照完整性限制。,(4)对主表:插入不会影响含外键的表,但删除和修改可能会影响含外键的表。,2.1.4 关系模型完整性限制(八),2020年
11、8月12日,22,2.2 SQL Server和SQL语言简介,SQL Server 2000是运行于Windows操作系统的、面向分布式客户机/服务器结构的关系型数据库管理系统,是新一代电子商务、数据仓库和数据库解决方案 包含三部分内容: 数据库引擎 管理工具 数据库,2020年8月12日,23,2.2.1关系数据库的发展过程,1950,1960,1970,1980,1990,层次模型 网络模型,关系模型 的提出,关系模型 的早期实现,关系模型 的繁荣,SQL Server,2020年8月12日,24,2.2.2 SQL Server的发展过程(一),与sybase的联系(1986) 198
12、8: 第一个SQL Server测试版用了sybase的技术,Ashton-Tate的名气,和OS/2 典型的机器:20Mhz 80386,10MB内存,200MB硬盘 $10k的系统可以做$100k系统的事情 与sybase的分离(1994) 1995-1996:SQL 6.0, 6.5 与此同时,开始建立世界一流的团队,2020年8月12日,25,2.2.2 SQL Server的发展过程(二),SQL 7.0是完全的重写 1996-1998:近三年的开发时间 原有的体系架构无法达到SQL的目标 新的架构考虑到未来20年的发展空间 SQL 2000比原计划有了很大的扩充 7.0比预期卖得好
13、很多 增加了几个市场要求的功能 性能方面有了更多的增强,2020年8月12日,26,2.2.3 SQL Server的软件版本,企业版、标准版、个人版、开发版和评估版 操作系统对各版本的支持(在线帮助) 2000个人版替代 7.0 桌面版 若要只安装客户端工具,可使用2000个人版 购买2000 标准版和企业版也可以得到个人版,2020年8月12日,27,2.2.4 硬件需求,2020年8月12日,28,2.2.5 SQL语言简介,SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美
14、国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。 1992年标准称为SQL-92(SQL2),这是目前大多数商用RDBMS支持的版本;1999年提出SQL:1999(SQL3),是SQL-92的扩展。,2020年8月12日,29,2.2.6术语对应关系,SQL-92标准中用“表”代表“关系”, “表结构” 代表“关系模式”,“字段”代表“属性”,“记录”代表“元组”; SQL中用于创建(Create)、删除(Drop)和修改(Alter)“表结构”的部分叫DDL 而对“表中数据”进行插入(Insert)、删除(Delete)、修改(Update)和查询(Select)的部分
15、叫DML,2020年8月12日,30,2.3在SQL server中建立数据表,基本SQL语言 Create Drop Alter,2020年8月12日,31,2.3.1建立数据表,在SQL语言中,使用语句CREATE TABLE创建数据表,其基本语法格式为: CREATE TABLE (,|) 是合法标识符,最多可有128个字符,如S,SC,C,不允许重名。 :DEFAULT DEFAULT:若是某字段设置有默认值,当该字段未被输入数据时,则以该默认值自动填入该字段。,2020年8月12日,32,例:,CREATE TABLE publishers (pub_idchar(4)NOT NUL
16、L, pub_name varchar(40) NULL, cityvarchar(20)DEFAULT Pasadena, statechar(2)DEFAULT CA) 执行该语句后,便产生了“出版社”基本表的表框架,此表为一个空表。,2020年8月12日,33,2.3.2修改表(一),用于增加新列和完整性约束,定义方式同CREATE TABLE语句中的定义方式相同,其语法格式为: ALTER TABLE ADD | 例:ALTER TABLE Publisher Add address char(20),2020年8月12日,34,2.3.2修改表(二),用于修改某些列,其语法格式为:
17、ALTER TABLE ALTER COLUMN NULL|NOT NULL 例:ALTER TABLE Publisher ALTER COLUMN address char(40),2020年8月12日,35,2.3.2修改表(三),删除完整性约束定义,其语法格式为: ALTER TABLE DROP CONSTRAINT ,2020年8月12日,36,2.3.2删除表,DROP TABLE 例 DROP TABLE publishers,2020年8月12日,37,2.4 SQL Server对完整性限制的支持,SQL Server中的数据完整性可粗分为两大类,如下表,。,2020年8月
18、12日,38,2.4.1域完整性(一),一、Default (缺省) 概念:用于为列或用户自定义数据类型指定缺省值,每一列或自定义类型只能有一个缺省值。 表定义时设定 创建Default,2020年8月12日,39,2.4.1域完整性(二), 表定义时设定 例如CREATE TABLE publishers (pub_idchar(4)NOT NULL, pub_name varchar(40) NULL, cityvarchar(20)DEFAULT Pasadena, statechar(2)DEFAULT CA),2020年8月12日,40, 创建Default 当多个表中的列其缺省值相
19、同时,这种方式很有用。 (A) CREATE DEFAULT 缺省名 AS 缺省值 (B) sp_bindefault 缺省名, 表名.列名 例: CREATE DEFAULT dft_state AS CA sp_bindefault dft_state, publishers.state,2.4.1域完整性(三),2020年8月12日,41,2.4.1域完整性(四),注意:要求列名的类型与缺省值相同。绑定了缺省值后,并不会对绑定缺省值之前表中已存在的值产生影响,而只对绑定之后的值产生影响。 取消某列的缺省:sp_unbindefault 表名.列名 删除缺省:DROP DEFAULT 缺省
20、名 注意:应保证该缺省已从所有绑定的列上摘除,否则删除不会成功。,2020年8月12日,42,2.4.1域完整性(五),二、 Rule (规则) 概念:针对表中的某一列,指明某列的取值范围。在更新该列值时,RDBMS首先要检查是否在该规则规定的范围内。 CREATE RULE 规则名 AS 规则 sp_bindrule 规则名,表名.列名,2020年8月12日,43,2.4.1域完整性(六),示例: CREATE RULE state_rule AS state IN(CA,CO,WA) sp_bindrule state_rule, publishers.state 注意: 规则可用IN()
21、,BETWEEN AND ,关系式、=、=等和LIKE等操作符描述 。 创建规则时,应注意AS后有一个以 开头的临时变量。,2020年8月12日,44,2.4.1域完整性(七),sp_unbindrule 表名.列名 解除规则绑定: sp_unbindrule 表名.列名 DROP RULE 规则名 注意:缺省必须从属于规则,缺省与规则都有时,必须同时满足;一般在绑定一个新规则或缺省时,应先摘除旧规则或旧缺省,如没有摘除,则自动用新规则/新缺省替换旧的。,2020年8月12日,45,2.4.1域完整性(八),三、检查限制 概念:类似于规则,要求用户插入到列或表中的数据满足限制条件。 分类:分列
22、级和表级两种。 列级针对表中一列,表级则针对同一表中多列。,2020年8月12日,46,2.4.1域完整性(九),列级检查限制(用IN、BETWEENAND或LIKE表达) CREATE TABLE publishers ( pub_idchar(4) NOT NULL, CONSTRAINT pub_id_constraint CHECK( pub_id IN (234,3344,564) OR pub_id LIKE 430-90-9), cityvarchar(20) NULL, statechar(2) NULL) 其中:pub_id_constraint为限制名,2020年8月12日
23、,47,2.4.1域完整性(十),表级检查限制: CREATE TABLE discounts ( discounttypevarchar(40) NOT NULL, store_idchar(4) NULL, lowqtysmallint NULL, highqtysmallint NULL, discountfloat NOT NULL, CONSTRAINT low_high_check CHECK (lowqty highqty),2020年8月12日,48,2.4.1域完整性(十一),注意: 列级检查限制可用表级表示,表级限制也能用列级表示,但要求在第一个列定义后; 缺省值须满足检查
24、限制要求;,2020年8月12日,49,2.4.2实体完整性(一),一、主键限制 概念:不能出现空值,且所有值惟一。在定义了主键限制后,系统自动为该表生成一个聚簇(Clustered)索引。,2020年8月12日,50,列级主键限制:,CREATE TABLE publishers ( pub_idchar(4) PRIMARY KEY, pub_namechar(30), cityvarchar(20) NULL, statechar(2) NULL),2.4.2实体完整性(二),2020年8月12日,51,2.4.2实体完整性(三),表级主键限制: CREATE TABLE sales (
25、 stor_idchar(4) NOT NULL, datedatetimeNOT NULL, ord_numvarchar(20)NOT NULL, CONSTRAINT pk_sales_constr PRIMARY KEY NONCLUSTERED (stor_id,ord_num),2020年8月12日,52,二、唯一限制,概念:主要是针对候选键的限制。在定义了惟一限制后,系统自动为该表生成一个非聚簇索引,当然在定义时可改成聚簇索引 。,分类:分列级和表级两种。 列级针对表中一列,表级则针对同一表中多列。,与主键限制之区别:所有值惟一,最多只能有一个空值。默认索引为非聚簇(NonClu
26、stered)索引。,2.4.2实体完整性(四),列级唯一限制:,CREATE TABLE publishers ( pub_idchar(4) UNIQUE, pub_namechar(30),表级唯一限制:,CREATE TABLE sales ( stor_idchar(4)NOT NULL, ord_numvarchar(20) NOT NULL, datedatetimeNOT NULL, CONSTRAINT uq_sales_constr UNIQUE CLUSTERED (stor_id,ord_num),例:,2020年8月12日,54,2.4.3参照完整性(一),一、对含主
27、键的表(亦称主表,即:该表的主键将作为另一张表的外键)的主键做操作,插入:要求插入值满足主键限制即可,不影响其它表。,修改:可能会影响与该主键相关的从表的外键值。当相应的外键值存在时,有两个策略可用:一是改变对应从表的所有外键值,使之与主键一致;其二是不允许修改主表中的主键值。,删除:可能会影响与该主键相关的从表的外键值。若相应的外键值存在时,策略有二:一是不允许删除主表的主键值;二是级联删除从表中相应外键值所在的行。,2020年8月12日,55,二、 对含外键的表(亦称从表),插入:要求插入的外键值应“参照”(Reference)主表中的主键值。,2.4.3参照完整性(二),修改:要求修改的
28、外键值“参照”主表中的主键值 。,删除:不需要参照主表中的主键值。,2020年8月12日,56, 主表 从表:表示“主表”中的主键值在修改和删除时,“从表”中与该主键值相同的外键值可“级联”(CASCADE)修改和删除,或“禁止”(NO ACTION)“主表”主键值的修改和删除。,2.4.3参照完整性(三),2020年8月12日,57,2.4.3参照完整性(四), 从表 主表:表示“从表”中的外键值在插入和修改时,其值应“参照”(Reference)“主表”中的主键值。,2020年8月12日,58,2.4.3参照完整性(五),表间完整性维护的实现:, 对从表定义外键限制(或称参照完整性)完成主
29、表和从表间两个方向的数据完整性;或, 利用触发器完成维护两表间数据完整性,即主表的触发器维护主表到从表方向的数据完整性,而从表的触发器维护从表到主表方向的参照完整性。,2020年8月12日,59,外键限制分类:分列级和表级两种。 列级针对表中一列,表级则针对同一表中多列。,外键限制定义的条件:, 在含外键的表上定义;, 定义外键限制的列必须是另一个表中的主键或候选键,2.4.3参照完整性(六),列级外键限制:,CREATE TABLE titles ( title_idtidNOT NULL, titlevarchar(4) NULL, pub_idchar(4)NULL CONSTRAINT
30、 pub_id_const REFERENCESpublishers (pub_id) ON DELETE CASCADE ON UPDATE CASCADE, notesvarchar(23) NULL),说明:, 外键限制的第二行定义“从表主表”方向的参照完整性;, 后二行定义“主表从表”方向完整性。,表级外键限制:,CREATE TABLE salesdetail ( stor_idchar(4)NOT NULL, ord_numvarchar(20) NOT NULL, title_idtidNOT NULL, qtysmallintNOT NULL, discountfloatNOT
31、 NULL, CONSTRAINT sales_constr FOREIGN KEY (stor_id,ord_num) REFERENCE sales (stor_id,ord_num) ON DELETE CASCADE ON UPDATE CASCADE , CONSTRAINT titles_constr FOREIGN KEY (title_id) REFERENCES titles(title_id) ON DELETE CASCADE ON UPDATE CASCADE ),2020年8月12日,62,2.4.3参照完整性(六), 外键限制定义中的行动,表示当对主表的主键值做某种
32、操作(删除或修改时),可采取的处理策略。有二种处理选择:, 如果不定义行动,则缺省处理为NO ACTION。,(A) CASCADE(针对从表的策略);,(B) NO ACTION(针对主表的策略);,2020年8月12日,63,2.5 关系代数及关系运算,关系是 关系操作: Query, Insert, Delete, Update 关系运算可分为关系代数和关系演算两大类。,2020年8月12日,64,2.5.1 关系代数(一),关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为关系代数语言,简称关系代数。 关系代数的运算对象是关系,运算结果也是关系。 关系相等:设有同类关系r
33、1和r2,若r1的任何一个元组都是r2的一个元组,则称关系r2包含关系r1,记为r2r1,或r1r2。如果r1r2且r1r2,则称r1等于r2,记为r1=r2,2020年8月12日,65,2.5.1 关系代数(二),关系代数的运算按运算符的不同主要分为两类: 传统的集合运算:把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算是从关系的“水平”方向即行的角度进行的。包括并、差、交和笛卡尔积等运算。 专门的关系运算:不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。包括选取、投影、连接和除法等运算。,2020年8月12日,66,1、合并 设有同类关系r1R、r2R,
34、二者合并运算定义为:,r1r2= t | t r1 t r2 ,结果: 为r1、r2的所有元组的并集(不计重复元组),它与r1、r2为同类关系; 举例,2、 相减 设有同类关系r1R、r2R,二者相减运算定义为:,r1 r2= t | t r1 t r2 ,结果: 为r1中存在的但r2中没有的元组的集合,它与r1、r2为同类关系; 举例,2.5.2 关系代数运算(一),2020年8月12日,67,3、 乘积 设rR为k1元关系,sS为k2元关系,则二者乘积运算定义为:,rs= t | t = u r v s ,* rs为k1+k2元关系,其框架是R与S的框架的并集(注:可能有同名属性);,*
35、rs的每个元组的前k1个分量为 r 的一个元组,后k2个分量为 s 的一个元组;,* 若r、s分别有n1、n2个元组,则rs有n1n2个元组。 举例,结果特征:,2.5.2 关系代数运算(二),2020年8月12日,68,4、投影 设有k元关系rR,它的关系框架 R = A1,A2,k ,j1,j2 ,jn 为中互不相同的属性,那么关系 r 在属性(分量)j1,j2,jn 上的投影运算定义为:,Aj1,Aj2,jn( r ) = u | u= t r ,结果特征: Aj1,Aj2,jn( r ) 为n元关系,其框架是Aj1,Aj2,jn ,每个元组 由关系 r 的每个元组的第 j1,j2,jn
36、 个分量按此顺序排列而成 (不计重复元组) 举例,2.5.2 关系代数运算(四),2020年8月12日,69,5、选择 设是比较运算符“=、 ”中的某一个,那么关系rR的 一选择运算定义为:,Aj c( r ) = t | t r tAj c ,或Aj Ai ( r ) = t | t r tAj tAi ,结果特征: 为r 中满足 条件的元组集(与 r 是同类关系) 举例,2.5.2 关系代数运算(五),设有三个已知关系如下:,r1r2,r1 r2,a 3 c,b 2 d b 3 b c 2 d d 3 b,e 5 f,g 6 f,b 3 d,d 3 b,r1 s1,b 2 d,b 2 d,
37、2 d,3 b,b 3 b,b 3 b,c 2 d,c 2 d,d 3 b,d 3 b,2 d,2 d,2 d,3 b,3 b,3 b,3,2 ( r1),A2=2( r1 ),例题,2020年8月12日,71,6、 F-选择 设关系rR的框架 R=A1,A2,k ,( A1,A2 , ,k )=e1 e2 em为一公式,其中ep (p=1,2,m )为 形如“Aj c ” 或 “Aj Ai ” 的比较表达式,或者它们是被逻辑运算符、 连接而成的复合表达式,那么关系 r 的 F选择运算定义为:,( A1,A2,k ) ( r ) = t | t r (t A1,tA2,tk ) ,举例 :,2
38、.5.2 关系代数运算(六),2020年8月12日,72,2.5.2 关系代数运算(七),7、 相交 设有同类关系r1R、r2R,二者的相交运算定义为:,r1r2 = t | t r1 t r2 ,易知 r1r2 =r1-( r1- r2 ),举例,2020年8月12日,73,8 、连接 设rR、sS的关系框架分别为 R= A1,A2,k 1和S=B1,B2,Bk2,那么关系 r、s 的 连接运算定义为:,2.5.2 关系代数运算(八),2020年8月12日,74,9、 F连接 设rR、sS的关系框架分别为 R= A1,A2,k 1和S=B1,B2,Bk2,F(A1,Ak1,B1,Bk2)为一
39、公式,那么关系 r、s 的 F连接运算定义为:,2.5.2 关系代数运算(九),2020年8月12日,75,2.5.2 关系代数运算(十),10、 自然连接 设rR、sS分别为k1、k2元关系,R中属性Ai1,Ai2,in分别与S中的属性Bj1,Bj2,Bjn相同。令S= S-Bj1,Bj2,Bjn,r的元组为u,s的元组为v,令 v 为 v 去掉分量vBj1,vBjn后剩下的分量构成元组,那么关系 r与s 的自然连接运算定义为:,2020年8月12日,76,如果令W=R S,那么有:,其中W代表W框架中的所有属性, F为Ai1=Bj1 Ai2=Bj2 Ain=Bjn。,2.5.2 关系代数运
40、算(十一),2020年8月12日,77,2.5.2 关系代数运算(十二),11 除法 设rR、sS分别为k1、k2元关系,k1k2,s( 表示无任何元组的空关系),R = A1, ,Ak1k2 ,Ak1k2+1 , ,k1 ,S = Ak1k2 , Ak1k2+1 , ,k1 。令 Q = R S = A1, ,Ak-k2 ,那么关系 r与s 的除法运算定义为:,rs=u | 对每一元组v s 都存在一元组 t r, 使得 tQ=u且tS=v ,易证:rs= Q( r )Q(Q( r ) s)r),2020年8月12日,78,除法的另一定义:rs的结果是使得( qs ) r 的Q(r)的最大子
41、集q。,举例 : rs,2.5.2 关系代数运算(十三),除法的现实意义: 设:s为资源记录集合,r为资源使用者消耗资源情况的记录集合;Q( r ) 则为资源使用者(基本情况)的记录集合。 那么:rs 就是消耗了所有资源的资源使用者的集合。,2020年8月12日,79,1.分类,五种基本运算:、 、,八种导出运算:F-选择、 -连接、F-连接、自然连接、除法、,2.5.2 关系代数运算(十四),例题:三个已知关系如右:,2=53 b (r),d 5 e,a 3 c,c 3 c,d 3 c,p r,a 4 b,d 3 c,d 4 b,例题:三个已知关系如右:,a 4 b,3 c,b 4 b,3
42、c,d 5 e,4 b,d 5 e,3 c,d 4 b,3 c,a 4 b,4 d,b 4 b,4 d,d 5 e,5 h,d 4 b,4 d,a 4 b,d,b 4 b,d,d 5 e,h,d 4 b,d,例题:三个已知关系如右:,r s,a,d,B,C( A=a( r ),B,C( A=b( r ),B,C( A=c( r ),B,C( A=d( r ),2020年8月12日,83,2.插、删、改元组的关系代数表示,元组C=可看作只有一个元组的关系c,那么:,给关系r插入元组c :r c,删除元组c :r c,修改元组c为 c = : (r c) c,2.5.2 关系代数运算(十五),20
43、20年8月12日,84,3.关系代数表达式,(1) 简单定义:用关系和关系代数运算符经有限次复合而成的表达式。,(2) 运算优先级(从高到低): 括号; 一目运算选择、投影; 二目运算乘积、相交、连接、除法; 二目运算合并、求差。,2.5.2 关系代数运算(十六),2020年8月12日,85,(3) 一目运算的交换与结合 设有关系rR,框架R的子集X,X的子集Y,公式F仅涉及X中的属性,公式F1、F2仅涉及R中的属性。,Y( X(r) Y(r), F( X(r) X( F( r), F1( F2(r) F1F2( r), F1( F2(r) F2( F1( r),2.5.2 关系代数运算(十七
44、),2020年8月12日,86,(4)二目运算的交换与结合 设有关系rR 、sS、wW,公式F仅涉及R、S中的属性。,r s sr,r s s r,r s s r,(r s) w r(s w),(r s) w r (s w),(r s) w r (s w),2.5.2 关系代数运算(十八),2020年8月12日,87,设有关系rR 、sS,X,Z分别为框架R、S的子集,公式F、F1仅涉及R中的属性,公式F2仅涉及S中的属性。,X(r s) X(r ) X(s), F (r s) F (r ) F (s), F (r s) F (r ) F (s), F (r s) F (r ) F (s),x
45、,z (r s ) x (r ) z (s ), F1F2( r s) F1( r ) F2( s),2.5.2 关系代数运算(十九),2020年8月12日,88,2.5.2 关系代数运算(二十),( 例中用到的三个关系S、C、SC框架为 S( S#,SN,SD,SA ); C(C#,CN,PC# ); SC( S#,C#,G ) ),关系代数表达式查询应用举例,2020年8月12日,89,例1: 求计算机科学系(CS)的学生,解: SD=CS(S)或 3=CS(S),例2: 求年龄大于或等于20岁的学生,解: SA 20(S)或 4 20 (S),例3: 求计算机系年龄大于或等于20岁的学生
46、,解: SD=CS SA 20 (S) 或 3=CS 4 20 (S),例,例6: 求至少选修了C1、C2两门课程的学生学号,解: S#(C#=C1(SC) ),S#(C#=C2(SC) ),例7: 求未选修任何课程的学生学号,S#( S ),S#( SC ),S#(C#=C1 C#=C2“ (SC) ),解:,例4: 求选修了课程C1的学生学号,解: S#(C#=C1(SC) ),例5: 求选修课程C1的学生学号和姓名,S#(C#=C1(SC) ),S#,SN( ),S,解:,例8: 求未选修C1课程的学生学号,解:,S#(C#=C1( SC ),S#( S ),S#(C#C1 (SC) ),例9:求至少选修了课程CN=DB的学生姓名,C#(CN=DB( C ),解:,例10:求至少选修了S1所选全部课程的学生学号,C#(S#=S1( SC ),s#,c#( SC ),解:,2020年8月12日,92,元组演算:用元组变量来构造表达式: rR= xR | (x) 其中xR是框架为R的元组变量,此表达式表示,关系r是框架R下所有使元组演算公式(x)为真的元组的集合。,符号U,D,d,H,h, 同前,L1= , ,1、元组关系演算定义,2.6 元组演算(一),2020年8月12日,93,2.6 元组演算(二),元组演算公式 )基础 三种原子公式 r(x) :x r xA c 或 c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市清洁供暖提升改造项目运营管理方案
- 2026年时代银行考试试题及答案
- 企业实施进度监控方案
- 工程变更管理流程优化方案
- 2026年行政工作考试试题及答案
- 2026年中国电信吉林分公司校园招聘笔试备考题库及答案解析
- 2026四川省现代种业发展集团有限公司部分权属企业社会化招聘7人考试参考题库及答案解析
- 2025-2026学年人教版七年级历史上册第一单元同步测试卷(含答案解析)
- 2026太平洋证券有限责任公司招聘5人考试备考试题及答案解析
- 2025-2026学年人教版七年级地理上册《我国的地理位置》地图识记练习(含答案)
- 小飞手无人机课件
- 浅基坑承台开挖施工方案
- 对简支钢桁架桥的设计进行计算分析
- 面部美容缝合技术要点
- 《运动营养指导》课件
- 化工原理实验--绪论学习资料
- 温室火灾的防控与处理
- 空调安装调试及售后服务方案
- 4.3.1空间直角坐标系市公开课一等奖课件公开课一等奖课件省赛课获奖课件
- 居然之家租赁合同
- 四乙基铅抗爆剂生产技术项目可行性研究报告
评论
0/150
提交评论