第二章:关系数据库
2.1关系数据结构及形式化定义:
本节主要介绍关系的形式化概念以及有关概念。
2.1.1 关系:
关系数据库系统是支持关系模型的数据库系统。
在关系模型中,数据结构非常简单,值包含单一的数据结构—>关系。
虽然关系模型中的数据结构非常简单,但它却描述出显示世界的实体以及实体之间的关系。关系模型是建立在集合代数的基础之上的,这里从集合论的角度给出关系数据结构的形式化定义。
- 域domain:一组具有相同数据类型的值的集合。比如person(张教授、李同学、刘同学)
- 笛卡尔积 Cartesian product:域上面的集合运算。比如有三个域:A(A1),B(B1,B2),C(C1,C2),那么这三个域的笛卡尔积就是A X B X C = {(A1,B1,C1),(A1,B1,C2),(A1,B2,C1),(A1,B2,C2)},其实就是这三组数据的排列组合。
- 关系relation:域笛卡尔积的子集。其实笛卡尔积对于关系数据库是没有意义的,只有其中的某些子集也是有实际意义的。R(D1,D2… Dn)。其中n=1,表示为单元关系,也就是该关系中只有一个属性,n=2表示为二元关系,也就是这个关系中只有两个属性。
- 候选码candinate key:在关系中的某一属性组能唯一标识一个元祖,该属性组就成为候选码。例如:在学生实体中,“学号”是能唯一的区分学生实体的,同时又假设“姓名”、“班级”的属性组合足以区分学生实体,那么{学号}和{姓名,班级}都是(超级码)候选码。