第2章 第章关系数据库 关条数据结构 关糸定义 关糸性质 关糸棋式 °关糸的究整性 实体完整性 参照完整性 用户定义完整性 关条代数 关糸数据库管狸糸统
• 关系数据结构 关系定义 关系性质 关系模式 • 关系的完整性 实体完整性 参照完整性 用户定义完整性 • 关系代数 • 关系数据库管理系统 第2章 关系数据库 第2章
21关系数据结构 211关系 基本概念 1域( Domain)定义21域是一组具有相同数据类型的值的集合。 2笛卡尔积( Cartesian Product 定义2.2给定一组域D1,D2,…,Dn,(允许部分或全部相同)。 D1,D2,…,Dn的笛卡尔积为 D1XD2×…Dn={(d1,d2,灬…,dn)ldi∈D,j=1,2,…,n} 其中每一个元素(d,d,…,dm)叫作一个m元组(n- Tuple,或简称为元组。 元素中的每一个值d叫作一个分量( Component)。 若Di(i=1,2,…,n)为有限集,其基数( Cardinal number)为 mi(i=1,2,…,n),则D1×D2×…xDn的基数为:m=mi 笛卡尔积可表示为一个二维表表中的每行对应一个元组,表中的每列对应一个域
2.1 关系数据结构 2.1.1 关 系 ⒈ 域(Domain) 定义2.1 域是一组具有相同数据类型的值的集合。 笛卡尔积可表示为一个二维表.表中的每行对应一个元组,表中的每列对应一个域。 m= ∏ mi i=1 n 若Di(i=1,2,…,n)为有限集,其基数(Cardinal number)为 mi(i=1,2,…,n),则D1×D2×…×Dn的基数为: 其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-Tuple),或简称为元组。 元素中的每一个值di叫作一个分量(Component)。 定义2.2 给定一组域D1,D2,…,Dn,(允许部分或全部相同)。 D1,D2 ,…,Dn的笛卡尔积为: D1×D2×…×Dn={(d1,d2,…,dn)|di∈Dj,j=1,2,…,n } ⒉ 笛卡尔积(Cartesian Product) 基本概念
21关系数据结构 211关系 2笛卡尔积( Cartesian Product 笛卡尔积 设有域D1={4,2,3,…Q,k,D2={△,,}_,则笛卡尔积 D1×D2={(A, (A (A,),(A (k,(),(k),(k◆ 元组 PC牌值 花色 A 分量 基数:13×4=52 K
• 笛卡尔积 设有域 D2={ , , , } ,则笛卡尔积 D1×D2={(A, ),(A, ),(A, ),(A, ) . . . . . . . . . . . . (k, ),(k, ),(k, ),(k, )} D1={ A , 2 , 3 , … , Q , k }, 2.1 关系数据结构 2.1.1 关 系 ⒉ 笛卡尔积(Cartesian Product) PC K .. .. A A 牌值 花色 分量 元组 基数 : 13×4 = 52
211关系 3.关系 relation) 定义23D1×D2×…XDn的有意义的子集称为在域D,D2,…,Dn上的关系, 记为R(①1,D2…,Dn) 其中:R为关系的名;n为关系的度(目);r∈R表示r是R中的元组 4候选码( candidate key) 值能唯一标识一个元组的属性组,且不含多余属性,称该属性组为候选码。 5.主码 rimary key) 个关系有多个候选码时,选定其中的一个作为主码。 6.外部码( foreign key): 关系R的某一属性组X不是R的码,但是其他某一关系的码,称X为R的外部码 7主属性( prime attribute) 关系R中构成候选码的属性称为主属性
2.1.1 关 系 3. 关 系 (relation) 定义2.3 D1×D2×…×Dn的有意义的子集称为在域D1,D2 ,…,Dn上的关系, 记为R(D1 ,D2 ,…,Dn )。 其 中 : R为关系的名; n为关系的度(目); r∈R 表示r是R中的元组 关系R中构成候选码的属性称为主属性。 4.候选码(candidate key): 值能唯一标识一个元组的属性组,且不含多余属性,称该属性组为候选码。 一个关系有多个候选码时,选定其中的一个作为主码。 关系R的某一属性组X不是R的码,但是其他某一关系的码,称X为R的外部码。 5.主码(primary key): 6.外部码(foreign key): 7.主属性(prime attribute):
211关系 :学生:S(, SNAME,S,SD 课程:C(C, CNAME,PC#) 选课:SC(S#,C#,GR) S:候选码:S#, SNAME; 主码:S# 候选码:C#; 主码:C拄 SC:候选码:(S#,C#) 主码:(#,C#); 外部码:S#,C 关系性质 每一列中的数值是同类型的数据,来自同一个域。 不同的列可对应于同一个域,但给予不同的属性名。 同一关系中不允许有相同的记录。无重复行。 °行、列的次序可以任意交换,不影响关系的实际意义 °关系中的每一个属性值都必须是不能再分的元素
例: • 关系中的每一个属性值都必须是不能再分的元素。 • 每一列中的数值是同类型的数据,来自同一个域。 • 不同的列可对应于同一个域,但给予不同的属性名。 • 同一关系中不允许有相同的记录。无重复行。 • 行、列的次序可以任意交换,不影响关系的实际意义。 关系性质 2.1.1 关 系 学生:S(S#,SNAME,SA,SD) 课程:C(C#,CNAME,PC#) 选课:SC(S#,C#,GR) S: 候选码:S#,SNAME; 主码:S# C: 候选码:C#; 主码:C# SC: 候选码:(S#,C#); 主 码:(S#,C#); 外部码: S#,C#
212关系模式 8.关系模式 定义24对关系的描述称为关系模式,记为R(U,D,DOM,F); 其中 R为关系名,U为属性集, D为U所对应的域的集合, DOM为属性向域的映象集合, F为属性间数据依赖关系的集合。 关系模式通常简记为R(U S(S, SNAME, SA, SD) 关系模式是型,是静态的、稳定的; 关系是关系模式的值是动态的,是随时间而变化的。 213关系数据库 在关系模型中,实体以及实体间的联系都是用关系来表示。在一个 给定的现实世界领域中,相应于所有实体及实体之间的联系的关系的集 合构成一个关系数据库
2.1.2 关系模式 8. 关系模式 定义2.4 对关系的描述称为关系模式,记为R(U,D,DOM,F); 其 中 : R为关系名, U为属性集, D为U所对应的域的集合, DOM为属性向域的映象集合, F为属性间数据依赖关系的集合。 ● 关系模式是型,是静态的、稳定的; ● 关系是关系模式的值是动态的,是随时间而变化的。 关系模式通常简记为: R(U) S(S#,SNAME,SA,SD) 2.1.3 关系数据库 在关系模型中,实体以及实体间的联系都是用关系来表示。在一个 给定的现实世界领域中,相应于所有实体及实体之间的联系的关系的集 合构成一个关系数据库
22关系的完整性 实体完整性( Entity Integrity) 规则2.1若A是关系R(u)(A∈u)上的主属性,则属性A不能取空值 例:选课SC中的S#,C#均不能取空值。 参照完整性( Referential Integrity 规则22属性(属性组)X是关系R的外部码,K是关系S的主码,且X与 K相对应(即X,K是定义在同一个(组)域上,则R中任一元组在X上的 值为:X=空值或S中的某个元组的K值 例:职工 EMP(EMP#,ENAM,JOB,DEPT* 部门 DEPTODEPT#, DNAME,L0C) 则:EMP中的DEPT#为空或为DEPT中的DEPT#的值
实体完整性 2.2 关系的完整性 (Entity Integrity) 规则2.1 若A是关系R(u)(A∈u)上的主属性,则属性A不能取空值。 例:选课SC中的S#,C#均不能取空值。 例:职工EMP(EMP#,ENAME,JOB,DEPT#) 部门DEPT(DEPT#,DNAME,LOC) 则:EMP中的DEPT#为空或为DEPT中的DEPT#的值 参照完整性 (Referential Integrity) 规则2.2 属性(属性组)X是关系R的外部码,Ks是关系S的主码,且X与 Ks相对应(即X,Ks是定义在同一个(组)域上,则R中任一元组在X上的 值为:X=空值或S中的某个元组的Ks值
22关系的完整性 用户定义的完整性」( user-defined Integrity 用户自定义完整性是针对某一具体数据的约束条件,反映某一具体 应用所涉及的数据必须满足的语义要求,由应用环境决定。 例:属性的取值范围属性的非空限制
2.2 关系的完整性 用户定义的完整性 (user-defined Integrity) 用户自定义完整性是针对某一具体数据的约束条件,反映某一具体 应用所涉及的数据必须满足的语义要求,由应用环境决定。 例: 属性的取值范围 属性的非空限制
23关系代数 相关表述记号 1.设关系模式为R(A1,A2,…,Am)。它的一个关系设为R。 t∈R表示t是R的一个元组。A则表示元组t中相应于属性A的一个分量。 2.若A={Ai,A2,…,Ai},其中Ail,Ai,…,Ak是A1,A2,…,An中的一部 分,则A称为属性列或域列。A则表示{A1,A2,…,An中去掉 Ai,Ai,…,A}后剩余的属性组。tA=tAi,tA2,…,tAi表示 元组t在属性列A上诸分量的集合。 3.R为n目关系,S为m目关系。r∈R,s∈S。rs称为元组的连接。 它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量 为S中的一个m元组。 4.给定一个关系R(X,Z,X和Z为属性组。我们定义,当r{X=x时,x在R中 的象集( Images set)为:Zx={rZr∈R,rX|=x} 它表示R中属性组X上值为x的诸元组在Z上分量的集合
2.3 关系代数 相关表述记号 ⒈ 设关系模式为R(A1, A2, …, An)。它的一个关系设为R。 t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量。 ⒋ 给定一个关系R(X,Z),X和Z为属性组。我们定义,当r[X]=x时,x在R中 的象集(Images Set)为:Zx={ r[Z]|r∈R, r[X]=x } 它表示R中属性组X上值为x的诸元组在Z上分量的集合。 ⒉ 若A={Ai1, Ai2, …, Aik},其中Ai1, Ai2, …, Aik是A1, A2, …, An中的一部 分,则A称为属性列或域列。A 则表示{A1, A2, …, An}中去掉 {Ai1, Ai2, …, Aik}后剩余的属性组。t[A]=(t[Ai1], t[Ai2], …, t[Aik])表示 元组 t 在属性列A上诸分量的集合。 ⒊ R为n目关系,S为m目关系。r∈R ,s∈S。 rs 称为元组的连接。 它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量 为S中的一个m元组。 ⌒
23关系代数 传统的集合运算 并运算 RIA C R2AB C 差运算 al blcl 1 b2 c2 交运算 al b2 c2D 1b3c2 广义笛卡尔积 a2b2 cLI a2 cl RIUR2 R1-R2 RI∩R2 AB C AB C AB C 1 b1 c1 al b1 cl 1b2c2 a2 b2 c1 1b3c2 2b2c1
传统的集合运算 2.3 关系代数 • 并运算 • 差运算 • 交运算 • 广义笛卡尔积 a2 b2 c1 a1 b2 c2 a1 b1 c1 A B C a2 b2 c1 a1 b3 c2 a1 b2 c2 A B C R1 R2 A B C a1 b1 c1 a1 b2 c2 a1 b3 c2 a2 b2 c1 R1∪R2 A B C a1 b2 c2 a2 b2 c1 R1∩R2 A B C a1 b1 c1 R1-R2