文档介绍:第2章关系数据库
本章要点
本章介绍关系数据库的基本概念,基本概念围绕关系数据模型的三要素展开,利用集合代数、谓词演算等抽象的数学知识,深刻而透彻地介绍了关系数据结构,关系数据库操作及关系数据库完整性等的概念与知识。而抽象的关系代数与基于关系演算的ALPHA语言乃重中之重。
本章逻辑结构
关系模型
关系数据结构及形式化定义
关系
关系模式
关系数据库
关系的完整性
关系代数
传统的集合运算
本章逻辑结构
专门的关系运算
关系演算
元组关系演算语言ALPHA
域关系演算语言QBE*
小结
习题
关系模型
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
1、关系模型的数据结构——关系
关系模型的数据结构:非常单一,在用户看来,关系模型中数据的逻辑结构是一张二维表。但关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联系。
2、关系操作
关系模型给出了关系操作的能力,它利用基于数学的方法来表达关系操作,关系模型给出的关系操作往往不针对具体的RDBMS语言来表述。
关系模型
关系模型中常用的关系操作包括:选择(select)、投影(project)、连接(join)、除(divide)、并(union)、交(intersection)、差(difference)等查询(query)操作和增加(insert)、删除(delete)、修改(update)等更新操作两大部分。
关系操作的特点是采用集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合方式。
关系数据语言可以分成三类:
(1) 关系代数(2) 关系演算(3) 关系数据语言
关系模型
3、关系的三类完整性约束
关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性、参照完整性和用户自定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。用户自定义的完整性是应用领域特殊要求而需要遵循的约束条件,体现了具体领域中的语义约束。
关系
⒈域(Domain)
域是一组具有相同数据类型的值的集合。又称为值域(用D表示)。域中所包含的值的个数称为域的基数(用m表示)。在关系中就是用域来表示属性的取值范围的。
例如,自然数、整数、实数、长度小于10字节的字符串集合、1-16之间的整数都是域。
又如,D1={张三,李四} D1的基数m1为2
D2={男,女} D2的基数m2为2
D3={19,20,21} D3的基数m3为3
关系
⒉笛卡尔积(Cartesian Product)
给定一组域D1、D2、…、Dn (这些域中可以包含相同的元素,即可以完全不同(也可以部分或全部相同), D1、D2、…、Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
由定义可以看出,笛卡尔积也是一个集合。其中:
(1)其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple),或简称为元组(Tuple)。但元组不是di的集合,元组由di按序排列而成。
(2)ponent)。分量来自相应的域(di∈Di)。
关系
(3)若Di(i=1,2,…,n)为有限集,其基数(Cardinal number)为mi(i=1,2,…,n),则D1×D2×…×Dn的基数为n个域的基数累乘之积
(4)笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。
如上面例子中D1与D2的笛卡尔积:
D1×D2={(张三,男),(张三,女),(李四,男) (李四,女)}
可以表示成二维表,:
关系
姓名
性别
张三
男
张三
女
李四
男
李四
女