请问数据库里的层次模型、网状模型、关系模型之间的比较?

它们三者之间的比较?
2024-11-24 19:43:38
推荐回答(2个)
回答1:

1.层次模型

层次模型是数据库系统中最早使用的模型,它的数据结构类似一颗倒置的树,每个节点表示一个记录类型,记录之间的联系是一对多的联系,基本特征是:

* 一定有一个,并且只有一个位于树根的节点,称为根节点;
* 一个节点下面可以没有节点,即向下没有分支,那么该节点称为叶节点;
* 一个节点可以有一个或多个节点,前者称为父节点,后者称为子节点;
* 同一父节点的子节点称为兄弟节点。
* 除根节点外,其他任何节点有且只有一个父节点;

图11.7是一个层次模型的例子。

层次模型中,每个记录类型可以包含多个字段,不同记录类型之间、同一记录类型的不同字段之间不能同名。如果要存取某一类型的记录,就要从根节点开始,按照树的层次逐层向下查找,查找路径就是存取路径。如图11.8所示。

层次模型结构简单,容易实现,对于某些特定的应用系统效率很高,但如果需要动态访问数据(如增加或修改记录类型)时,效率并不高。另外,对于一些非层次性结构(如多对多联系),层次模型表达起来比较繁琐和不直观。
2.网状模型

网状模型可以看作是层次模型的一种扩展。它采用网状结构表示实体及其之间的联系。网状结构的每一个节点代表一个记录类型,记录类型可包含若干字段,联系用链接指针表示,去掉了层次模型的限制。网状模型的特征是:

1. 允许一个以上的节点没有父节点;
2. 一个节点可以有多于一个的父节点;

例如,图11.9(a)和图11.9(b)都是网状模型的例子。图11.9(a)中节点3有两个父节点,即节点1和节点2;图11.9(b)中节点4有三个父节点,即节点1,节点2和节点3。

由于网状模型比较复杂,一般实际的网状数据库管理系统对网状都有一些具体的限制。在使用网状数据库时有时候需要一些转换。例如,如图11.10所示。

网状模型与层次模型相比,提供了更大的灵活性,能更直接地描述现实世界,性能和效率也比较好。网状模型的缺点是结构复杂,用户不易掌握,记录类型联系变动后涉及链接指针的调整,扩充和维护都比较复杂。
3.关系模型

关系模型是目前应用最多、也最为重要的一种数据模型。关系模型建立在严格的数学概念基础上,采用二维表格结构来表示实体和实体之间的联系。二维表由行和列组成。下面以教师信息表和课程表为例,说明关系模型中的一些常用术语:
表11.1 教师信息表(表名为:tea_info)
TNO(教师编号)

NAME(姓名)

GENDER(性别)

TITLE(职称)

DEPT(系别)

805

李奇



讲师

基础部

856

薛智永



教授

信息学院

表11.2 课程表(表名为:cur_info)
CNO(课程编号)

DESCP(课程名称)

PERIOD(学时)

TNO(主讲老师编号)

005067

微机基础

40

805

005132

数据结构

64

856

1. 关系(或表):一个关系就是一个表,如上面的教师信息表和课程表。
2. 元组:表中的一行为一个元组(不包括表头)。
3. 属性:表中的一列为一个属性。
4. 主码(或关键字):可以唯一确定一个元组和其他元组不同的属性组。
5. 域:属性的取值范围。
6. 分量:元组中的一个属性值。
7. 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,... ...,属性n)。

关系模型中没有层次模型中的链接指针,记录之间的联系是通过不同关系中的同名属性来实现的。 关系模型的基本特征是:

1. 建立在关系数据理论之上,有可靠的数据基础;
2. 可以描述一对一,一对多和多对多的联系。
3. 表示的一致性。实体本身和实体间联系都使用关系描述。
4. 关系的每个分量的不可分性,也就是不允许表中表。

关系模型概念清晰,结构简单,实体、实体联系和查询结果都采用关系表示,用户比较容易理解。另外,关系模型的存取路径对用户是透明的,程序员不用关心具体的存取过程,减轻了程序员的工作负担,具有较好的数据独立性和安全保密性。
关系模型也有一些缺点,在某些实际应用中,关系模型的查询效率有时不如层次和网状模型。为了提高查询的效率,有时需要对查询进行一些特别的优化

回答2:

网状的数据模型:
1.适合复杂的关系
2.最少的数据冗余
3.算法复杂
层次数据模型:
1.适合一对多的关系
2.算法相对较简单
3.有一定的通用性
关系数据模型:
1.用户操作简洁,方便,直观
2.数据结构简单清晰
3.查询和处理效率比较低