在数据库系统中,出现最早的数据模型为层次模型。在层次模型的基础上建立的系统,最典型的还是1968年美国IBM公司研发出来的数据库管理系统(Information Management System,IMS)。该系统在推出之后,便在当时的商业上得到了广泛的应用。
在现实世界中,有许多事物是按层次组织起来的,如一个系有若干个专业和教研室,一个专业有若干个班级,一个班级有若干个学生,一个教研室有若干个教师。层次模型用一棵“有向树”的数据结构来表示各类实体及实体间的联系。在树中,每个结点都表示一个记录类型,结点间的连线(或边)表示记录类型间的关系,每个记录类型可包含若干个字段,记录类型描述的是实体,字段描述了实体的属性,各个记录类型及其字段都必须命名。
(一)层次模型的数据结构
树的结点的功能主要是用于记录类型。在众多结点中会有一个没有父结点的结点,该结点被称作根结点,并且只有一个,其他的非根结点虽然有父结点,但也是都只有一个。在层次模型中,一个结点的子结点存在的情况一共有两种:一种为有多个子结点;另一种为没有子结点。
在前一种情况下,这几个子结点称为兄弟结点;在后一种情况下,该结点称为叶结点。它是由计算机系记录值及其所有后代记录值组成的一棵树。
层次模型的数据结构一共有三个特点:第一,在所有结点中存在一个结点既没有父结点,也没有子结点,该结点为根结点,并且所有的结点中只存在一个根结点;第二,在所有结点中,既有父结点又有子结点的结点有且只有一个父结点,这证明系统在对实体联系进行处理时,只能处理一对多的联系;第三,想要查看记录值时,只能按照规定的路径才能看到其全部意义,每一个子女记录值都是因双亲记录值的存在而存在。
(二)层次模型的数据操作与数据完整性约束
层次模型的数据操作的最大特点是必须从根结点入手,按层次顺序访问。
在层次模型中一共有四个主要的数据操作:第一个为查询,第二个为插入,第三个为删除,第四个为修改。在进行后三个操作的过程中,需要注意满足层次模型的完整性约束条件进行,同时在进行插入时,若不存在对应的双亲结点值,就不能进行子女结点值的插入操作。例如在层次数据库中,若新调入一名教师,但尚未分配到某个教研室,这时就不能将新教师插入到数据库中。
在进行删除时,如果需要将双亲结点值进行删除,就要同时将其对应的子女结点值一同删除。例如,如果想在层次数据库中将软件教研室进行删除,与该教研室相关的教师数据也会丢失。
在进行修改时,为保证数据的一致性,需要对有关的记录一同进行修改。
(三)层次模型的优点与缺点(www.xing528.com)
层次模型的优点主要有:
1.层次模型本身比较简单,只需很少的命令就能操纵数据库,比较容易使用。
2.结构清晰,结点间联系简单,只要知道每个结点的双亲结点,就可知道整个模型结构。现实世界中许多实体间的联系本来就呈现出一种很自然的层次关系。
3.它提供了良好的数据完整性支持。
4.对于实体间联系是固定的,且预先定义好的应用系统,采用层次模型来实现。其性能优于关系模型,不低于网状模型。
层次模型的缺点主要有:
1.层次模型不能直接表示两个以上的实体型间的复杂联系和实体型间的多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决,易产生不一致性。
2.对数据插入和删除的操作限制太多。
3.查询子女结点必须通过双亲结点。
4.由于结构严密,所以层次命令趋于程序化。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。