关系数据库设计
关系数据库设计
4.1.1 关系的形式化定义
在上述笛卡尔积中取出有实际意义的元组来构造 关系。 关系:SAP(SUPERVISOR,SPECIALITY,
POSTGRADUATE) 如,SAP关系可以包含三个元组:
{ (张清玫,信息专业,李勇), (张清玫,信息专业,刘晨), (刘逸,信息专业,王敏) }
第4章 关系数据库方法
关系数据库设计
本章主要内容
本章将主要介绍关系数据库的基本概念,关系运 算和关系表达式的优化问题,其中关系运算和关 系表达式的优化问题是本课程的重点内容之一。 关系运算是关系数据模型的理论基础。
关系数据库设计
关系数据库方法
4.1 关系数据库的基本概念 4.2 关系代数 4.3 关系演算 4.4 关系查询优化 本章小结
关系数据库设计
4.1 关系数据库的基本概念
4.1.1 关系的形式化定义 4.1.2 关系模式、关系子模式和存储模式 4.1.3 关系模型的完整性规则 4.1.4 关系数据库模式
关系数据库设计
4.1.1 关系的形式化定义
1.关系的集合表示 一个关系由若干个不同元组组成。 一个关系可以看成是元组的集合。 关系中每个属性都有其相应的取值范围,即域
为:
n
mi
i1
关系数据库设计
4.1.1 关系的形式化定义
【例4-1】设有两个域:教师名域T={胡恒,丁伟}、 课程名域C={C语言,数据结构,计算机原理}, T和C的笛卡儿积定义为集合:
T×C={(胡恒,C语言),(胡恒,数据结构), (胡恒,计算机原理),(丁伟,C语言),(丁伟, 数据结构),(丁伟,计算机原理)} 该笛卡儿积的基数为2×3=6,也就是说,T×C一共 2×3=6个元组.
例如,职工关系和部门关系分别为: 职工(职工编号,姓名,部门编号,性别,年龄,
身份证号码) 部门(部门编号,部门名称,部门经理)
职工关系的主键为职工编号,部门关系的主键为部 门编号,在职工关系中,部门编号是它的外键。
关系数据库设计
4.1.1 关系的形式化定义
3.关系的一阶谓词表示 关系模型不但可以用关系代数表示,还可以用一阶 谓词演算表示。 定义4-2:设有关系模式R,其原子谓词表示形式为P (t)。其中,P是谓词,t为个体变元,以元组为其表 现形式。
关系数据库设计
4.1.1 关系的形式化定义
定义4-1:一个在域D1,D2,…,Dn上的关系就是笛卡 儿积D1×D2×…×Dn的子集,用R(D1,D2,…,Dn)表 示, 关系的成员为元组,即笛卡儿积的子集的元素 (d1,d2,…,dn)。
当n=1时,称关系为单元关系 当n=2时,称关系为二元关系
关系数据库设计
关系数据库设计
4.1.1 关系的形式化定义
如果取该笛卡儿积的这六个元素,并将它们放 到一张名为T_C的二维表中就构成一个关系。
T_C
T 胡恒 胡恒
C C 语言 数据结构
胡恒
计算机原理
丁伟 丁伟
C 语言 数据结构
丁伟
计算机原理
关系数据库设计
4.1.1 关系的形式化定义
例, 给出三个域:
D1=导师={ 张清玫,刘逸 } D2=专业={计算机专业,信息专业} D3=研究生={李勇,刘晨,王敏}
一个,譬如使用“职工编号”来标识职工,那么“职工 编号”就是主键了。
关系数据库设计
4.1.1 关系的形式化定义
(4)外键 若一个关系R中包含有另一个关系S的主键所对应的属 性集F,则称F为R的外键。并称关系S为被参照关系或 目标关系,关系R为依赖关系或参照关系。
关系数据库设计
4.1.1 关系的形式化定义
4.1.2 关系模式、关系子模式和存储模式
关系数据库设计
4.1.1 关系的形式化定义
给定一组域D1,D2,… … ,Dn
则其笛卡尔积 D1×D2×… … ×Dn ={(d1, d2,… …,dn) |di∈Di,i=1,2,…,n}
每个元素(d1,d2,…,dn)称为一个元组。
若Di(i=1,2,…,n)为有限集,其基数为mi
(i=1,2,…,n), 则D1×D2×…×Dn的基数
4.1.1 关系的形式化定义
2. 关键码和表之间的联系
在关系数据库中,通常有如下几种键:
(1)超 键
在一个关系中,能惟一标识元组但含有多余属性 的属性组合,称为关系的超键。
(2)候选键
如果一个属性组能唯一标识元组,且又不含有多 余的属性,那么这个属性组称为关系的候选键。(3)主 键若源自个关系中有多个候选键,则选其中的一个为
表4.2 职工表
职工编号 2113 2116 2136 2138 2141
姓名 程晓清 刘红英 李小刚
蒋民 王国洋
部门 销售部 财务部 管理部 采购部 销售部
性别 男 女 男 男 男
年龄 30 32 28 41 39
身份证号码 3105 3106 3107 3106 3107
在上表中,“职工编号”、“身份证号”可以作候选键。 关系的候选键可以有多个,但不能同时使用,只能使用
关系数据库设计
则D1,D2,D3的笛卡尔积为: D1×D2×D3 =
{ (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏), (张清玫,信息专业,李勇), (张清玫,信息专业,刘晨), (张清玫,信息专业,王敏), (刘 逸,计算机专业,李勇), (刘 逸,计算机专业,刘晨), (刘 逸,计算机专业,王敏), (刘 逸,信息专业,李勇), (刘 逸,信息专业,刘晨), (刘 逸,信息专业,王敏) }
关系的主键。
关系数据库设计
4.1.1 关系的形式化定义
用主键实现关系定义中:表中任意两行(元组) 不能相同的约束。
主键中任何属性的取值不能为空,主键的值不 能重复。
包含在任何一个候选键中的属性称为主属性, 不包含在任何键中的属性称为非主属性或非键 属性。
关系数据库设计
4.1.1 关系的形式化定义(8)
关系数据库设计
4.1.1 关系的形式化定义
关系R(元组的集合)与谓词P (t)之间的 联系描述为:R={t|P (t)}
表示所有使谓词P为真或满足谓词P的元 组t都属于关系R。
关系R与原子谓词P之间的关系如下: P(t)=True,t在R内, P(t)=False,t 不在R内。
关系数据库设计