
数据库主要的模型有:层次结构模型、网状结构模型、关系结构模型。
一、层次结构模型
定义
有且仅有一个节点,无父节点,此节点为树的根;其他节点有且仅有一个父节点。
优点
数据结构简单清晰;
利用指针记录边向联系,查询效率高;
良好的完整新支持
缺点
只能表示1:N的联系。
限制隐含了对数据库存取路径的控制。
二、网状结构模型
特征
允许一个以上的节点无双亲;
一个节点可以有多于一个的双亲。
优点
更清晰表达现实、符合现实中的数据关系;
可以很快存取 *** 作。
缺点
结构复杂;
不易掌握;
应用程序复杂,加重编写应用程序的负担;
三、关系结构模型
定义
从用户角度看,关系模型中数据的逻辑结构是一张二维表。
优点
数据结构单一、简单、清晰。
关系规范化,并建立在严格的理论基础上。
概念简单, *** 作方便。
缺点
查询效率低。
增加了数据库管理系统的开发难度。
查找双亲结点的方法:
node search(node par,node cur)
{
if(cur)
{
search(cur,cur->lchild);
if(cur->data==x)return par;
search(cur,cur->rchild);
}
}
双亲结点就是父节点,一般指的是树状结构,相对于当前的节点而言,它的上层节点就叫做父节点。
关系模型、网状模型、层次模型
1、关系模型的缺点是查询效率不如非关系模型。因此,为了提高性能,必须对用户的查询进行优化,增加了开发数据库管理系统的负担。
2、网状模型的缺点是结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。
第二,其DDL,DML语言复杂,用户不容易使用。用于记录之间联系是通过存取路径实现的,应用程序访问数据库时必须选择适当的存取路径。因此,用户必须了解系统的结构的细节,加重了编写应用程序的负担。
3、层次模型的缺点
现实世界中很多联系是非层次性的,如多对多联系,一个节点具有多个双亲等,层次模型不能自然的表示这类联系,只能通过引入冗余数据或引入虚拟结点来解决
对插入和删除 *** 作的限制比较多
查询子女结点必须通过双亲结点
扩展资料:
层次模型的优点
1、模型简单,对具有一对多层次关系的部门描述非常自然,直观,容易理解,这是层次数据库的突出优点
2、用层次模型的应用系统性能好,特别是对于那些实体间联系固定的且预先定义好的应用,采用层次模型来实现,其性能优于关系模型
3、层次数据模型提供了良好的完整性支持。
参考资料:
孩子结点:结点的子树的根称为该结点的孩子;双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲。
知识扩展:
在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。
从树的定义可知,除根结点外,树中的每个结点都有唯一的一个双亲结点。根据这一特性,可用一组连续的存储空间(一维数组)存储树中的各结点。树中的结点除保存结点本身的信息之外,还要保存其双亲结点在数组中的位置(数组的序号),树的这种表示法称为双亲表示法。
树的双亲表示法对于实现 Parent(t) *** 作和 Root() *** 作非常方便。 Parent(t) *** 作可以在常量时间内实现,反复调用Parent(t) *** 作,
直到遇到无双亲的结点(其
pPos值为-1)时,便找到了树的根,这就是Root() *** 作的执行过程。但要实现查找孩子结点和兄弟结点等 *** 作非常困难,因为这需要查询整个数组。要实现这些 *** 作,需要在结点结构中增设存放第1个孩子在数组中的序号的域和存放第1个兄弟在数组中的序号的域。
以上就是关于数据库主要的模型有哪些全部的内容,包括:数据库主要的模型有哪些、查找双亲结点的算法、传统的数据库模型有哪三种他们各自的有缺点是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)