关系数据库
一、关系数据结构及形式化定义
1.关系
单一的数据结构----关系
现实世界的实体以及实体间的各种联系均用关系来表示
逻辑结构----二维表
从用户角度,关系模型中数据的逻辑结构是一张二维表
建立在集合代数的基础上
1. 1域(Domain)
域是一组具有相同数据类型的值的集合。例:
整数、实数、介于某个取值范围的整数、指定长度的字符串集合、{‘男’,‘女’}
1.2 笛卡尔积(Cartesian Product)
笛卡尔积:
给定一组域D1,D2,…,Dn,允许其中某些域是相同的。
D1,D2,…,Dn的笛卡尔积为: D1×D2×…×Dn = (d1,d2,…,dn)|diDi,i=1,2,…,n}
所有域的所有取值的一个组合,不能重复。
元组(Tuple)
笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简元组
(张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨) 等 都是元组
分量(Component)
笛卡尔积元素(d1,d2,…,dn)中的每一个值di 叫作一个分量
张清玫、计算机专业、李勇、刘晨等都是分量
基数(Cardinal number)
若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:
笛卡尔积的表示方法
笛卡尔积可表示为一张二维表
表中的每行对应一个元组,表中的每列对应一个域
例如,给出3个域:
D1=导师集合SUPERVISOR={张清玫,刘逸}
D2=专业集合SPECIALITY={计算机专业,信息专业}
D3=研究生集合POSTGRADUATE={李勇,刘晨,王敏}
D1,D2,D3的笛卡尔积为
D1×D2×D3={
(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),
(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),
(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),
(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),
(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),
(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) }
基数为2×2×3=12
1.3.关系(Relation)
(1) 关系
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为
R(D1,D2,…,Dn)
R:关系名
n:关系的目或度(Degree)
(2)元组
关系中的每个元素是关系中的元组,通常用t表示。
(3)单元关系与二元关系
当n=1时,称该关系为单元关系(Unary relation)或一元关系
当n=2时,称该关系为二元关系(Binary relation)
(4)关系的表示
关