- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
29
专门的关系运算
例:设有学生-课程关系数据库,如下所示:
S
SNO
96001 96002 96003 96004 96005 96006
SNAME
丁一
王二 张三 李四 刘五
SDEPT
计算机
计算机 数学 信息 数学
SAGE
19
20 21 19 20
C
CNO
C1 C2 C3
CNAME
高等代数 程序设计 微机原理
关系代数的基本术语
如果某一个关系中的属性(或属性集合)在另一个关系中是主码,则称该属性
③ 外码(Foreign Key -- FK)
(或属性集合)是外码。 学生关系 课程关系 学习成绩关系
主码
学号 姓名 0101 0102 0103 0104 张三 李四 王五 赵六 所在系 计算机 计算机 计算机 计算机 课程号 C01 C02 C03 C04
1
《数据库系统及应用》
主讲人:陈业斌 教授
安徽工业大学
2
第二讲 关系数据库理论 目
01
02 03
关系代数的基本术语
关系模式与关系 关系的完整性
录
04
关系运算
3
关系数据库的奠基人
E.F.Codd,英国人,1923生于英格兰中部波 特兰。第二次世界大战时应征入伍,在皇家 空军服役。 大战结束后,到英国牛津大学数 学专业学习,1963年获得硕士学位,1965年 又获得博士学位。 60年代后期开始数据库研究, 1970年E.F.Codd 博士提出关系模型概念,他因此获得1981年 的ACM图灵奖。
8
关系代数的基本术语
① 域和属性 域是属性的取值范围,属性是列。属性名可以是域 名,但有时不同的列名可以定义在同一域中,这时属性 名就不能与域名同名了。
学号 姓名 年龄 0104 赵六 20 0101 张三 20 0103 王五 19 0102 李四 18 年级 1
2 3 2
9
关系代数的基本术语
5
关系代数的基本术语
定义2: 笛卡尔积
给定一组域D1,D2,…,Dn, D1,D2,…,Dn的笛卡儿积为 D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n} 其中每一个元素(d1,d2,…,dn)叫做一个n元组。元组中的每 一个值di叫做一个分量。
度(n):参与笛卡儿积的域的个数,它表示了每一个元组中分量的个数。 基:域中可取值的个数。
② 关系的码(Key) (或候选码、键)。
如果一个属性(或属性集合)的值能唯一地标识一个关系的元组而 又不含有多余的属性,则称该属性(或属性集合)为关系的码(或候 选码,也称键)。 每个关系都有一个且只有一个主码(Primary Key)。 码的属性称为主属性,不包含在任何码中的属性称为非主属性。
10
E.F.Codd 博士
关系数据库之父 美国工程院院士
4
关系代数的基本术语
关系理论是建立在集合代数理论基础上的,有着坚实的数学基础
定义1: 域(Domain)是一组具有相同类型的值的集合(即 每个属性的取值范围)。
一组值的集合,这组值具有相同的数据类型
例:整数集合{0,1};长度小于5的字符串集合等都可以是域;全体实数的 集合。
CT
144 100 44
C4
C5 C6
数据结构
编译原理 操作系统
64
90 32
赵六
计算机
22
SC
SNO
96004
CNO
C3
GRADE
95
96004
96005 96005
C5
C2 C3
70
81 95
30
专门的关系运算
例1:求计算机系的学生。 σ
SDEPT=‘计算机’(S)
SNO
96001
96002 96003
主码
课程名 高等数学 数据结构 操作系统 数据库
外部码
学时数 100 70 80 60 0101 0101 0102 0104 0104 C01 C02 C04 C04 C03
外部码
学号 课程号 成绩 90 80 90 85 70
11
关系模式
关系模式是型,是对数据本身的特性描述 数据的结构 元组语义以及完整性约束条件 关系是值,是元组的集合 关系模式是用DDL定义的 包括:关系名,属性名以及属性域的类型和长度。
27
广义笛卡儿积
R ×S
例: R
A a1 a1 a2 B b1 b2 b2 B b2 b3 b2 C c1 c2 c1 D c2 c2 c1
S
A a1 a1 a2
A a1 a1 a1 a1 a1 a1 a2 a2 a2
B b1 b1 b1 b2 b2 b2 b2 b2 b2
C c1 c1 c1 c2 c2 c2 c1 c1 c1
关系R和S的并记为R∩S,结果仍为n度关系,由既属于R又属于S 的元组组成。
R
S R∩ S
R∩S=R–(R-S)
26
广义笛卡儿积
广义笛卡儿积
R是一个n度关系,S是一个m度关系。关系R和S的广义笛卡儿积记 为R×S,其结果是(n+m)度的关系,结果中的元组是R中元组和S中 元组连成的一串,前n个分量是R中的一个元组,后m个分量是S的一 个元组。假定R中有元组(r1,r2,…,rn),S中有元组(s1,s2,…,sm), 则结果中的元组为 (r1,r2,…,rn,s1,s2,…,sm)。若R有k1个元组,S有k2个元组,则R×S 有k1×k2个元组。
32
专门的关系运算
注意: 因为投影运算的属性表不一定包含关系的码,经投 影运算后,结果中很可能出现重复元组,消除重复元组 后所得关系的元组将小于等于原关系的元组数。如果属 性列中包含码,则不可能出现重复元组,投影运算后所 得关系的元组与原关系一样。 投影不仅会取消一些列,也可能取消某些行。但在 实际的SQL实现时要靠关键字来完成。
18
关系的完整性约束
职工表(EMP)
职工号 部门编号 姓名 … 9801 9802 9803 9804 9805 01 01 02 03 张三 李四 王五 赵六 钱七
部门表(DEPT)
部门编号 部门名称 …
01 02 03 04
经理办公室 人事部 公关部 技术部
外部关系码
关系主码
19
关系的完整性约束
22
传统的集合运算
定义1. 设给定两个关系R和S,若满足:具有相同的度n,且R中第i 个属性和S中第i个属性必须来自同一个域,则说关系R和S是相容的 。即:关系R和S有相同的度,即有相同的属性个数,且对应的属 性的域相同。 传统集合运算的两个关系必须是相容的。
约定:大写字母表示命名关系和关系的属性;小写字母表示元组。
12
关系模式
定义: 关系模型中的数据结构就是关系模式,即是对关系 的描述。它的形式化表示是一个5元组:R(U, D, dom, F)
其中,R:关系名; U:属性名集合; D:域,属性组U中属性所来自的域; F:属性间数据的依赖关系集合
dom:属性向域的映射;
关系模式通常可以简记为
R (U) 或
例3:选修(学号,课程号,成绩)
“学号”和“课程号”可能的取值 :
(1)选修关系中的主属性,不能取空值
(2)只能取相应被参照关系中已经存在的主码值
21
关系的完整性约束
(3)域完整性(用户自定义完整性)
规则:要求属性值必须取自其对应的值域。 例:学生的性别只能是:‘男’和‘女’ CONSTRAINT SX CHECK (性别 IN (‘男’,‘女’)
17
关系的完整性约束
例1:职工关系 EMP(ENO, ENAME, DNO)
部门关系 DEPT(DNO, DNAME)
在EMP中,DNO是外码。EMP中每个元组在DNO 上的值允许有两种 可能: ① 取空值。这说明这个职工尚未分配到某个部门; ② 若非空值,则DNO的值必须是DEPT中某个元组中的DNO值。表 示此职工不可能分配到一个不存在的部门。
例2:学生实体及其内部的联系
学生(学号,姓名,性别,专业号,年龄,班长)
学号 801 802 803 804 805 姓名 张三 李四 王五 赵六 钱七 性别 女 男 男 女 男 专业号 01 01 01 02 02 年龄 19 20 20 20 19 802 805 班长 802
20
关系的完整性约束
6
关系代数的基本术语
例:设有域
D1=姓名集合(NAME)={王三,丁平}; D2=职业集合(JOB)={工人,农民,商人}; D3=住址集合(ADDR)={北京,上海,广州};
则 D1×D2×D3 = {
(王三,工人,北京), (王三,工人,上海), (王三,工人,广州), (王三,农民,北京), (王三,农民,上海), (王三,农民,广州), (王三,商人,北京), (王三,商人,上海), (王三,商人,广州), (丁平,工人,北京), (丁平,工人,上海), (丁平,工人,广州), (丁平,农民,北京), (丁平,农民,上海), (丁平,农民,广州), (丁平,商人,北京), (丁平,商人,上海), (丁平,商人,广州)} D1、D2、D3 的基分别为2,3,3,所以笛卡儿积的基为 MD1×D2×D3 = 2×3×3=18;其度为3。
R: 关系名
R (A1,A2,…,An)
A1,A2,…,An : 属性名
如:STUDENT(SNO,SNAME,SEX,SAGE,DEPT)
13
关系模式与关系
关系的内涵和外延
关系的内涵是关系模式。它是静态的、稳定的,是对 关系的描述。 关系的外延是关系(的值)。任何给定的时刻,出现 在关系中的所有元组的集合,它是动态的、随时间变化的 ,反映了关系模式在某一时刻的状态或内容。