数据库系统原理

发布于:2024-12-06T05:13:00.000000Z

学习人数:1

知识点:350

更新于:2024-12-16T06:59:27.000000Z

层次模型和网状模型

层次模型的缺点

重要程度:8 分
<div> <h2>层次模型的缺点</h2> <ul> <li><strong>数据冗余:</strong> 在层次模型中,由于数据之间存在严格的父子关系,相同的数据可能在多个地方重复存储,导致数据冗余。</li> <li><strong>数据独立性差:</strong> 层次模型中的数据结构一旦确定,很难进行修改。如果需要改变数据之间的联系,可能会涉及到多个节点的修改。</li> <li><strong>查询效率低:</strong> 由于层次模型的数据访问必须按照特定的路径进行,因此对于复杂的查询操作,层次模型可能需要进行多次读取才能得到结果,效率较低。</li> <li><strong>插入和删除异常:</strong> 插入一个不存在父节点的记录时,可能需要创建一个新的父节点;而删除一个父节点时,可能会导致所有子节点的丢失。</li> </ul> <h3>例题说明</h3> <p>假设有一个公司组织结构的层次模型,其中每个部门都有一个经理,经理下面是员工。这种结构可以表示为一棵树。</p> <pre> 公司 ├── 人事部 │ └── 张三 (经理) │ └── 李四 (员工) │ └── 王五 (员工) └── 财务部 └── 赵六 (经理) └── 周七 (员工) └── 吴八 (员工) </pre> <p><strong>问题1:数据冗余</strong></p> <p>如果有多位经理的名字都是“张三”,那么在每个部门下都需要存储一次“张三”的信息,这样会导致数据冗余。</p> <p><strong>问题2:数据独立性差</strong></p> <p>如果要将“人事部”改名为“人力资源部”,则需要修改所有涉及“人事部”的节点名称。</p> <p><strong>问题3:查询效率低</strong></p> <p>如果需要查找所有的员工,只能从根节点开始,逐层遍历,找到所有的叶子节点,效率较低。</p> <p><strong>问题4:插入和删除异常</strong></p> <p>如果要新增一个“市场部”,但没有合适的经理,则需要先创建一个经理节点,再将“市场部”挂到这个经理节点下。而如果要删除“人事部”,则需要同时删除“张三”及其下属的所有员工。</p> </div>
上一条 下一条