层次型和关系型数据模型的区别
分层数据模型
分层数据模型是最古老的数据模型类型。它是由IBM在1968年开发的。它将数据组织在一个树状结构中。层次结构模型包括以下内容。
- 它包含由分支连接的节点。
- 最上面的节点被称为根节点。
- 如果有多个节点出现在顶层,那么这些节点可以被称为根段。
- 每个节点正好有一个父节点。
- 一个父节点可能有许多子节点。
在上图中,电子学是根节点,它有两个子女,即电视和便携式电子产品。这两个节点有更多的子节点,它们作为一个父节点。例如,电视有Tube、LCD和Plasma三个子节点,对于这三个子节点,电视作为父节点。它遵循一对多的关系。
关系型数据模型
关系数据模型是由E.F. Codd在1970年开发的。在分层数据模型中,没有物理链接。以下是关系型数据模型的属性。
- 数据只以表的形式表示。
- 它只处理数据,不处理物理结构。
- 它提供关于元数据的信息。
- 在行和列的交叉点上,只有一个元组的值。
- 它提供了一种轻松处理查询的方法。
分层数据模型和关系数据模型之间的区别 –
编号 | 分层数据模型 | 关系数据模型 |
---|---|---|
1 | 在这个模型中,使用分层方法来存储数据。这是最古老的方法。 | 关系数据模型是最灵活和有效的数据库模型。它是当今最常用的数据库。 |
2 | 分层数据模型实现了1:1和1:n。 | 除了1:1和1:n之外,关系数据模型还实现了多对多的关系。 |
3 | 为了组织记录,分层数据模型使用树状结构。 | 为了组织记录,关系数据模型使用了一个表。 |
4 | 复杂性的机会更多。 | 关系数据模型没有复杂的机会。 |
5 | 缺乏声明性的查询设施。在当前时代,他们正在使用NoSQL建模。 | 关系数据模型提供了使用SQL的声明式查询设施。 |
6 | 记录是在指针的帮助下连接的。 | 记录在行和列的帮助下被连接。 |
7 | 在这个模型中存在插入异常,即没有父节点,子节点不能被插入。 | 关系数据模型不存在插入异常现象。 |
8 | 分层数据模型中存在删除异常,即很难删除父节点。 | 关系数据模型不存在删除异常现象。 |
9 | 分层数据模型被用于访问复杂和不对称的数据。 | 关系数据模型用于访问复杂和对称的数据。 |
10 | 分层数据模型缺乏数据独立性。 | 关系数据模型提供数据独立性。 |
11 | 分层数据模型设计在现代被用于更快地访问数据。这是通过交易获得的,即在层次(父母对子女)相对较少的情况下放弃冗余。 | 由于多对多的关系连接对多参数查询的搜索产生了很大的影响。 |
12 | 复杂性导致了数据库设计的困难。 | 关系数据模型并不复杂,因为用户看不到物理层面的细节。 |
13 | 由于一个子记录有多个实例,在更新记录时有不一致的问题。 | 在更新记录时,规范化被用来消除冗余。 |
14 | 目前这个模型被用于购物车和搜索引擎。有一些工具可以模拟分层数据库,例如:Mongodb, firebase | 大多数传统软件使用关系数据库,例如:Oracle dB, MS sql server, IBM DB2。 |