现在比较流行的数据库都支持关系数据库,因为其完整的数学模型。本节从数据模型三要素的角度来讨论关系模型,为建立关系数据库打基础。
这个列出一个表格就很明显了,这里暂时不列,因为以后有很多。有一条据说很重要的性质:分量必须取原子值,意思大概就是一个属性值下面不能再分出两个属性了,不能说这些元组有3个属性,同样的关系里那些却有四个。很好理解。
以上,其实我们把关系数据结构里的重要的概念已经全部涵盖了。
之前我们已经提到模式的问题。关系模式就是型,用R(A1,A2,…,An)表示一个模板,其中A1,A2…表示属性。关系是具体的内容。关系数据库是所有关系的集合,从型上来说是关系模式的集合,从值上来说是关系的集合。
我们说数据模型要有三要素,数据结构、数据操作、完整性约束。关系模型的数据结构显然就是关系的数据结构,主要数据操作也和其他模型差不多,接下来讨论完整性约束。
需要两个关系R,S(这两个关系可以是同一个),一个属性(组)F。F是关系R的外码,但这个F同时和S的主码相对应。于是F所在的关系R在属性(组)F上的取值必须取S某个元素的主码值或空值。
补充定义外码:仍然是两个关系(可以说同一个)和一个属性(组)。F是R的一个属性(组)但不是R的码,但和S的主码相对应。
至此,我们定义了关系模型的结构,在存储数据方面已经没有问题了。接下来要考虑如何对其进行操作,这就要涉及关系代数的运算。