数据模型是描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。
关系模型利用表的集合来表示数据和数据间的联系。
关系模型在逻辑层和视图层描述数据,用户不必关注数据存储的底层细节。
2.1 关系数据库的结构
在关系模型的术语中,关系(relation)用于只代表,元组(tuple)指代行,属性(attribute)指代表中的列。关系实例(relation instance):表示一个关系的特定实例(表中一组特定的行)。注:元组在关系中出现的顺序是无关紧要的。对于关系的每个属性,都存在一个允许取值的集合,称为该属性的域(domain)。如果域中的元素被看作是不可再分的单元,则域是原子的(atomic)。
空(null)值表示未知或不存在。空值给数据库访问和更新带来很多困难,因此应尽量避免使用空值。
2.2 数据库模式
数据库模式(database schema):数据库的逻辑设计
数据库实例(database instance):某时刻数据库中数据的一个快照
注:关系可看作变量;关系模式(一般来说,由属性序列及属性对应域组成)可看作类型定义;关系实例可看作变量的值
2.3 码
一个关系中没有两个元组在所有属性上的取值都相同。
超码(superkey):一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组。
设R表示关系r模式中的属性集合。如果我们说R的一个子集是r的一个超码,则限制了关系r中任意两个不同元组不会再K的所有属性上取值完全相等。即:如果t1和t2在r中且t1不等于t2,则t1.K不等于t2.K。
候选码(candidate key):最小的超码(任意真子集都不能成为超码)。--几个不同的属性集都可以做候选码的情况是存在的。
主码(primary key):被数据库设计者选中的,用于在一个关系中区分不同元组的候选码。
一个关系模式(r1)可能在它的属性中包含另一个关系模式(r2)的主码。这个属性在r1上称作参照r2的外码(foreign key),关系r1称为外码依赖的参照关系(referencing relation),关系r2称作外码的被参照关系(referenced relation)。参照完整性约束(referential integrity constraint):要求在参照关系中任意元组在特定属性上的取值必然等于被参照关系中某个元组在特定属性上的取值。
2.4 关系运算