形象的说,一个关系就是一个Table
一个table由三部分组成(三要素)
1)描述数据库各种数据的基本结构形式(基本结构)
2)描述table与table之间的的可能的各种运算(关系运算)
3)描述这些操作的遵循的约束条件(完整性约束)
笛卡尔积:所有域的可能组合的集合。
关系:一个有意义的组合是笛卡尔积的一个子集。
由于关系的不同列可能来自同一个域,为区分,需要为每一个列起一个名字即属性
例如:家庭(丈夫:男人,妻子:女人,孩子:儿童)。丈夫,妻子,孩子是属性,而男人,女人,儿童是域。因此定义一个表可以根据上述格式定义。
例如:student(s# char(8),sname char(10),ssex char(2),sage int(4)).
s#,sname,ssex,sage是属性,对应的char(8),char(10),char(2),int(4)是域。
属性不可再分特性:关系第一范式。
下表含有复合属性和多值属性,因此不复合第一范式
候选码可以唯一确定一条记录,一组候选码可以有多组属性,当有多组候选码时,可以选择一组候选码作为主键。因此主键可以有多个列(属性)。
外码:关系R中的一个属性值,它不是R的候选码,但是它与另一个关系S的候选码相对应,称这组属性为外码
关系模型的完整性
1)实体完整性:
实体完整性这项规则要求每个数据表都必须有主键,而作为主键的所有字段,其属性必须是独一及非空值。
*关系的主码中的属性值不能为空值。
2)参照完整性
参照的完整性要求关系中不允许引用不存在的实体
*外码可以取空值
3)用户自定义的完整性
*用户针对具体的应用环境自定义的完整性约束条件
例如年龄属性必须是0到120之间的整数。