关系数据结构
关系数据库简介
系统而严格地提出关系模型的是美国IBM 公司的 E.F.Codd
- 1970 年提出关系数据模型
E.F.Codd, "A Relational Model of Data for Large Shared Data Banks"《Communication ofthe AcM》,1970
- 之后,提出了关系代数和关系演算的概念
- 1972 年提出了关系的第一、第二、第三范式
- 1974 年提出了关系的 BC 范式
关系数据库系统
- 是支持关系模型的数据库系统
关系模型的组成
- 关系数据结构
- 关系操作集合
- 关系完整性约束
关系的定义
1.域(Domain)
域是一组具有相同数据类型的值的集合例如:整数、实数、介于某个取值范围的日期;介于某个取值范围的日明
2.笛卡儿积(Cartesian Product)
给定一组域D1,D2,...,Dn,这些域中可以有相同的。
D1,D2,...Dn的笛卡儿积为:
D1xD2x...xDn={ (d1,d2..,dn) | di ϵ�Di, i=1,2,...n }
(1)元组(Tuple)
笛卡尔积中每一个元素(d1,d2,...,dn)叫作一个n元组(n - tuple)或简称元组,或者一条记录也是一个元组。
(2)分量(Component)
笛卡尔积元素(d1,d2,...,dn)中的每一个值di叫作一个分量。
(3)基数(Cardinal Number)
若Di(i=1,2,... ,n)为有限集,其基数为mi(i=1,2 ,..., 1n),
则D1xD2x..xDn的基数M为为元组的个数。
(4)笛卡尔积的表示方法
笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。
例如,给出3个域
D1 :院系集合 DEPARTMENT三{计算机系,日语系}
D2 :班级集合CLASS={1班,2班}
D3 :学生集合STUDENT={张三,李四,王五}
其中(计算机系,1班,张三) 、(计算机系,2班,李四) 等都是元组,计算机系、1班、2班、张三、李四等都是分量。
该笛卡尔积的基数为2x2x3=12。即D1xD2xD3共有12个元组。这12个元组可列成一张二维表。
如下表所示:
3.关系(Relation)
D1xD2x...xDn 的子集叫作在域 D1,D2,...,Dn上的关系
表示为:R(D1,D2,...,Dn);
R为关系名,n为关系的目或度(Degree)
(1)元组
关系中的每个元素是关系中的元组,通常用 t 表示,
(2)单元关系与二元关系
当n=1时,称该关系为单元关系(Unary relation)
当n=2时,称该关系为二元关系(Binary relation)
(3)关系的表示
关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。
如下表所示。其中该表是在上表的笛卡尔积中取出有意义的元组,形成的一个子集。
(4)属性
关系中不同列可以对应相同的域,为了加以区分,必须对每一个列起一个名字,称为属性(Attribute)。
(5 )码
① 候选码(Candidate key)
若关系中的某一属性组的值能唯一地标识一个元组,而其任何真子集都不能再标识一个元组,则称该属性组为候选码,在最简单的情况下,候选码只包含一个属性。
例如,存在一个学生关系,包括学号、姓名、年龄、身份证号四个属性,其中学号可以唯一地标识一个学生元组,身份证号也可以唯一地标识一个学生元组,所以学号和身份证号可以作为学生关系的候选码。
② 全码 ( Al-key)
在最极端的情况下,关系的所有属性组是这个关系的候选码称为全码( All-key)。
例如,存在一个音乐会关系,包括演奏者、音乐作品、观众三个属性,其中三个属性组合在一起才可以唯一地标识一个音乐会元组,所以关系的所有属性组是这个关系的候选码,即为全码。
③ 主码(Primary key )
若一个关系有多个候选码,则选定其中一个为主码或主键(Primary key)。
例如,在学生关系中,根据具体情况,学号可以更好地标识一个学生元组,所以学号作为学生关系的主码。当然身份证号也可以作为学生关系的主码。
④ 主属性(Prime attribute)与非主属性(Non-key attribute)候选码的诸属性称为主属性(Prime attribute)。
不包含在任何候选码中的属性称为非主属性(Non-key attribute
例如,在学生关系中,学号和身份证号为主属性,姓名和年龄为非主属性。
关系的性质
(1)列是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。
(2)不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名
(3)列的顺序无所谓,即列的次序可以任意交换。在许多实际关系数据库产品中,增加新属性时,永远是插至最后一列。
(4)任意两个元组的候选码不能相同。
(5)行的顺序无所谓,行的次序可以任意交换。在许多实际关系数据库产品中,插入一个元组时永远插至最后一行。
(6)分量必须取原子值,即每一个分量都必须是不可分的数据项。这是规范条件中最基本的一条。
关系性质1——同质的列
关系性质2——不同的属性名
关系性质3——属性无序
关系性质4——元组的候选码不重复
关系性质5——元组无序
关系性质6——分量是原子
关系模式
关系模式是对关系的描述。关系模式在形式上可以表示为
R(U,D,DOM,F)
其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM 为属性向域的映像集合,F为属性间的数据依赖关系集合。
1.关系模式的表示
关系模式通常可以简记为
R(U)或R(A1,A2,...,An)
其中R为关系名,A1,A2,...,An为属性名。而域名及属性向域的映像常常直接说明为属性的类型、长度。
2.关系模式与关系
关系模式是对关系的描述,关系模式是静态的、稳定的;关系是关系模式在某一时刻的状态或内容,关系是动态的、随时间不断变化的;关系模式和关系往往统称为关系,通过上下文加以区别。
关系数据库
在关系模型中,实体以及实体间的联系都是用关系来表示的在一个给定的应用领域中,所有实体及实体之间联系的关系的集合(也可以简单地理解为表的集合)构成一个关系数据库。
希望对你有帮助!加油!
若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!