关系模型是简洁的,它的简洁性源自集合论,这既是优点也是缺点。
数学的基础使得关系模型是描述性而不是过程性的,用户需要声明想要从数据库中得到什么而不是怎样找到这些信息,RDBMS知道该怎么去做。
问题变得复杂时,简单的事情也会变得复杂。解决复杂问题并没有简单的方法,只能用复杂的机制,如复杂的基本类型。
通过对比ODB或ORDB的基本类型,RDB不支持:对象类型及其相关概念、结构化类型、集合、引用,表的列只能是原子类型。
关系模型完全消除了用户可见的所有表间的链接,而是通过比较各列的值来维护表间关系,遵循参照完整性约束。
关系表定义为固定列的集合,由行和列组成,行列交叉处的元素的值必须是不可分割和不重复的。
域定义了一个列可以取值的合法集,可以设置业务规则来约束列的取值。
只涉及单个列或域的简单规则可以在规则机制中定义,涉及多个表的复杂规则可以定义为参照完整性约束,定义业务规则的最佳机制是触发器。
关系表中不允许有重复行,这是因为集合不允许有相同元素。
尽管实际的RDBMS可以不设主键,可以容许有重复行,但是这没有意义,因为RDB不像OD