层次模型的优点是记录之间的联系通过指针来实现,查询效率较高。层次模型的缺点是只能表示 1:n 联系,虽然有多种辅助手段实现 m:n联系,但比较复杂,用户不易掌握。由于层次顺序的严格和复杂,导致数据的查询和更新操作很复杂,应用程序的编写也比较复杂。
网状模型用有向图表示实体类型及实体间的联系。网状模型的优点是记录之间的联系通过指针实现,m:n 联系也容易实现,查询效率高。其缺点是编写应用程序的过程比较复杂,程序员必须熟悉数据库的逻辑结构。
关系模型用表格结构表达实体集,用外键表示实体间的联系。其优点有:
(1)建立在严格的数学概念基础上;
(2)概念(关系)单一,结构简单、清晰,用户易懂易用;
(3)存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作。
3.2.3 关系代数
关系代数的基本运算主要有并、交、差、笛卡尔积、选择、投影、连接和除法运算。
(1)并。计算两个关系在集合理论上的并集,即给出关系 R 和S(两者有相同元/列数),R∪S 的元组包括 R 和S所有元组的集合,形式定义如下:
R∪S≡{t|t∈Rút∉S}
式中 t 是元组变量(下同)。显然,R∪S=S∪R。
(2)差。计算两个关系的区别的集合,即给出关系 R 和S(两者有相同元/列数),R-S的元组包括 R 中有而 S 中没有的元组的集合,形式定义如下:
R-S≡{t|t∈R∧t∉S}
(3)交。计算两个关系集合理论上的交集,即给出关系 R 和S(两者有相同元/列数),R∩S 的元组包括 R 和S相同元组的集合,形式定义如下:
R∩S≡{t|t∈R∧t∉S}
显然,R∩S = R-(R-S) 和R∩S = S-(S-R)成立。
(4)笛卡尔积。计算两个关系的笛卡尔乘积,令R为有 m 元的关系,S 为有 n 元的关系,则R×S 是m+n 元的元组的集合,其前 m 个元素来自 R 的一个元组,而后 n 个元素来自 S 的一个元组。形成定义如下:
R×S≡{t|t=