数据库管理系统常见的数据模型有层次模型、网状模型和关系模型 3种
数据模型是对现实世界数据的模拟,是一个研究工具,利用这个研究工具我们可以更好地把现实中的事物抽象为计算机可处理的数据。
层次模型:层次模型以“树结构”表示数据之间的联系
层次模型是数据库系统最早使用的一种模型,它的数据结构是一棵“有向树”。根结点在最上端,层次最高,子结点在下,逐层排列。
层次模型的特征是:
在一个层次模型中的限制条件是:
(1)有且仅有一个节点,无父节点,它为树的根;(有且仅有一个结点没有双亲,该节点就是根结点。)
(2)其他节点有且仅有一个父节点。(根以外的其他结点有且仅有一个双亲结点
)这就使得层次数据库系统只能直接处理一对多的实体关系。
(3)任何一个给定的记录值只有按照其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。
比如:一个教师学生层次模型。该层次模型有4个记录类型,即实体。
分别是:
(1)记录型(实体)系是根结点,由编号、名称、专业、人数属性(字段)组成。它有两个子结点,分别是学院老师实体和课程实体。
(2)记录型(实体)教师是学院的子结点,它有6个属性(字段)组成。
(3)记录型(实体)课程由4个属性(字段)组成。
(4)记录型(实体)教师由6个属性(字段)组成。课程与教师是叶子结点,由学院到老师、老师到课程都是一对多的联系。
数据完整性约束
其主要四个功能:增删查改;要满足完整性约束条件;
增加(插入):满足必须有双亲节点,即如果加入教师,就必须分配到学院中;
删除:如果是字节点,不影响,直接删除字节点,如果是双亲节点,则整个字节点被删除;如果删除整个教研室则教研室的老师不存在这个体系;
查找:根据树状结构自上而下查找;
修改:更新相应的关系的信息。
其优缺点:
优点:
比较简单,容易使用;
结构清晰,现实中公司、家族等都存在类似结构;
良好的完整性支持;
查询效率高,模型层次是有向边,常记录存取路径。
缺点:
有很多不是单向关系,一对多,多对一,只能通过引进冗余数据或建非自然的数据组织如创建虚拟节点的方法来解决,易产生不一致性;
插入删除限制太多
查找字节点必须通过双亲;
树结点中任何记录的属性是不可再分的简单数据类型;
网状模型:
网状模型是以“图结构”来表示数据之间的联系。
1、条件特征
(1)允许有一个以上的节点无双亲。
(2)至少有一个节点可以有多于一个的双亲。
网状模型中每个结点表示一个记录型(实体),每个记录型可包含若干个字段(实体的属性),结点间的连线表示记录类型(实体)间的父子关系。
从定义可以看出,层次模型中子结点与双亲结点的联系是唯一的,而在网状模型中这种联系可以不唯一。因此,在网状模型中要为每个联系命名,并指出与该联系有关的双亲记录和子记录。
2、表示方法:
实体型:用记录类型描述
每个结点表述一个记录类型(实体);
属性:用字段描述,每个记录类型包含若干个字段;
联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子关系;
网状模型与层次模型的区别:
网状模型:允许多个结点没有双亲结点;
允许结点有多个双亲;
允许两个结点有多种联系(复合联系);
可以更直接的去描述现实世界;
层次模型是网状模型的一个特例。
要为每个联系命名(L1、L2),并指出该联系相关的双亲记录和子女记录。
3、多对多在网状模型的表示
用网状模型表示多对多的关系
方法:将多对多直接分解成一对多的联系
4、 举例:学生选课模型
它由3个数据项组成,即学号、课程号、成绩,表示某个学生选修某一门课程及其成绩。
每个学生可以选修多门课程。显然对于学生记录中的一个值,选课记录中可以有多个值与之联系。而选课记录中的一个值,只能与学生记录中的一个值联系。学生与选课之间的联系是一对多的联系,联系名为学生-选课。同样,课程与选课之间的联系也是一对多的联系,联系名为课程-选课。
5、 *** 纵
网状模型的数据 *** 作主要包括查询、插入、删除和更新:
插入:插入尚未确定双亲结点值的子结点值;
删除:只允许删除双亲结点值。如可删除一个教研室,而该科研室所有教师的信息仍保留在数据库中。
修改:可直接表示非树状结构,而无须像层次模型那样增加冗余结点,因此修改 *** 作时只需要指定更新记录即可。
网状数据系统(DBTG)对数据加了一些限制,提供了一定的完整性约束:
码:唯一标识记录的数据项集合;
一个联系中双亲记录和子女记录是一对多的关系;
支持双亲记录和子女记录之间的某些约束性条件;
关键:实现记录联系;
常用方法:单向、双向、环向、向首链接;
6、优缺点
网状数据模型的优点如下:
(1) 能够更为直接地描述现实客观世界,可表示实体间的多种复杂联系。
(2) 具有良好的性能,存取效率较高。
网状数据模型的缺点如下:
(1) 结构比较复杂,其数据定义语言(DDL)、数据 *** 作语言(DML)复杂,用户不容易使用。而且应用环境越大,数据库的结构就变得越复杂,不利于最终用户掌握。
(2) 数据独立性差,由于实体间的联系本质上是通过存取路径表示的,因此应用程序在访问数据时要指定存取路径。
关系模型:关系模型是用“二维表”(或称为关系)来表示数据之间的联系的。
1、基本术语
(1)关系(Relation):一个关系对应着一个二维表,二维表就是关系名。
(2)元组(Tuple):在二维表中的一行,称为一个元组。
(3)属性(Attribute):在二维表中的列,称为属性。属性的个数称为关系的元或度。列的值称为属性值;
(4)(值)域(Domain):属性值的取值范围为值域。
(5)分量:每一行对应的列的属性值,即元组中的一个属性值。[2]
(6)关系模式:在二维表中的行定义,即对关系的描述称为关系模式。一般表示为(属性1,属性2,,属性n),如老师的关系模型可以表示为教师(教师号,姓名,性别,年龄,职称,所在系)。
(7)键(码):如果在一个关系中存在唯一标识一个实体的一个属性或属性集称为实体的键,即使得在该关系的任何一个关系状态中的两个元组,在该属性上的值的组合都不同。
(8)候选键(候选码):若关系中的某一属性的值能唯一标识一个元组如果在关系的一个键中不能移去任何一个属性,否则它就不是这个关系的键,则称这个被指定的候选键为该关系的候选键或者候选码。
例如下列学生表中“学号”或“图书证号”都能唯一标识一个元组,则“学号”和“图书证号”都能唯一地标识一个元组,则“学号”和“图书证号”都可作为学生关系的候选键。
而在选课表中,只有属性组“学号”和“课程号”才能唯一地标识一个元组,则候选键为(学号,课程号)。
2、关系模型的数据 *** 作与完整性约束
关系数据模型的 *** 作主要包括查询、插入、删除和修改数据;这些 *** 作必须满足关系的完整性约束条件。
关系模型中数据 *** 作的特点是集合 *** 作方式,即 *** 作对象和 *** 作结果都是集合,这种 *** 作方式也称为一次一集合的方式。
相应地,非关系数据模型的 *** 作方式是一次一记录的方式。
关系的完整性约束条件包括三大类:
实体完整性、参照完整性和用户定义的完整性。
实体完整性定义数据库中每一个基本关系的主码应满足的条件,能够保证元组的唯一性。参照完整性定义表之间的引用关系,即参照与被参照关系。用户定义完整性是用户针对具体的应用环境制定的数据规则,反映某一具体应用所涉及的数据必须满足的语义要求。
3、关系模型的优缺点
优点
(1) 关系模型与非关系模型不同,它是建立在严格的数学理论基础上的。
(2) 关系模型的概念单一,实体与实体间的联系都用关系表示,对数据的检索结果也是关系(即表),所以其数据结构简单、清晰,用户易懂易用。
(3) 关系模型的物理存储和存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,简化了程序员的数据库开发工作。
缺点
(1) 由于存取路径对用户透明,查询效率往往不如非关系数据模型高。因此,为了提高性能,必须对用户的查询请求进行优化,这就增加了开发数据库管理系统的难度和负担。
(2) 关系数据模型不能以自然的方式表示实体集间的联系,存在语义信息不足、数据类型过少等弱点。
1.层次模型
层次模型是数据库系统中最早使用的模型,它的数据结构类似一颗倒置的树,每个节点表示一个记录类型,记录之间的联系是一对多的联系,基本特征是:
一定有一个,并且只有一个位于树根的节点,称为根节点;
一个节点下面可以没有节点,即向下没有分支,那么该节点称为叶节点;
一个节点可以有一个或多个节点,前者称为父节点,后者称为子节点;
同一父节点的子节点称为兄弟节点。
除根节点外,其他任何节点有且只有一个父节点;
图117是一个层次模型的例子。
层次模型中,每个记录类型可以包含多个字段,不同记录类型之间、同一记录类型的不同字段之间不能同名。如果要存取某一类型的记录,就要从根节点开始,按照树的层次逐层向下查找,查找路径就是存取路径。如图118所示。
层次模型结构简单,容易实现,对于某些特定的应用系统效率很高,但如果需要动态访问数据(如增加或修改记录类型)时,效率并不高。另外,对于一些非层次性结构(如多对多联系),层次模型表达起来比较繁琐和不直观。
2.网状模型
网状模型可以看作是层次模型的一种扩展。它采用网状结构表示实体及其之间的联系。网状结构的每一个节点代表一个记录类型,记录类型可包含若干字段,联系用链接指针表示,去掉了层次模型的限制。网状模型的特征是:
1 允许一个以上的节点没有父节点;
2 一个节点可以有多于一个的父节点;
例如,图119(a)和图119(b)都是网状模型的例子。图119(a)中节点3有两个父节点,即节点1和节点2;图119(b)中节点4有三个父节点,即节点1,节点2和节点3。
由于网状模型比较复杂,一般实际的网状数据库管理系统对网状都有一些具体的限制。在使用网状数据库时有时候需要一些转换。例如,如图1110所示。
网状模型与层次模型相比,提供了更大的灵活性,能更直接地描述现实世界,性能和效率也比较好。网状模型的缺点是结构复杂,用户不易掌握,记录类型联系变动后涉及链接指针的调整,扩充和维护都比较复杂。
3.关系模型
关系模型是目前应用最多、也最为重要的一种数据模型。关系模型建立在严格的数学概念基础上,采用二维表格结构来表示实体和实体之间的联系。二维表由行和列组成。下面以教师信息表和课程表为例,说明关系模型中的一些常用术语:
表111 教师信息表(表名为:tea_info)
TNO(教师编号)
NAME(姓名)
GENDER(性别)
TITLE(职称)
DEPT(系别)
805
李奇
女
讲师
基础部
856
薛智永
男
教授
信息学院
表112 课程表(表名为: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 关系的每个分量的不可分性,也就是不允许表中表。
关系模型概念清晰,结构简单,实体、实体联系和查询结果都采用关系表示,用户比较容易理解。另外,关系模型的存取路径对用户是透明的,程序员不用关心具体的存取过程,减轻了程序员的工作负担,具有较好的数据独立性和安全保密性。
关系模型也有一些缺点,在某些实际应用中,关系模型的查询效率有时不如层次和网状模型。为了提高查询的效率,有时需要对查询进行一些特别的优化
第7层 应用层:OSI中的最高层。为特定类型的网络应用提供了访问OSI环境的手段。应用层确定进程之间通信的性质,以满足用户的需要。应用层不仅要提供应用进程所需要的信息交换和远程 *** 作,而且还要作为应用进程的用户代理,来完成一些为进行信息交换所必需的功能。它包括:文件传送访问和管理FTAM、虚拟终端VT、事务处理TP、远程数据库访问RDA、制造报文规范MMS、目录服务DS等协议;
第6层 表示层:主要用于处理两个通信系统中交换信息的表示方式。为上层用户解决用户信息的语法问题。它包括数据格式交换、数据加密与解密、数据压缩与恢复等功能;
第5层 会话层:—在两个节点之间建立端连接。为端系统的应用程序之间提供了对话控制机制。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式 ;
第4层 传输层:—常规数据递送-面向连接或无连接。为会话层用户提供一个端到端的可靠、透明和优化的数据传输服务机制。包括全双工或半双工、流控制和错误恢复服务;
第3层 网络层:—本层通过寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。它包括通过互连网络来路由和中继数据 ;
第2层 数据链路层:—在此层将数据分帧,并处理流控制。屏蔽物理层,为网络层提供一个数据链路的连接,在一条有可能出差错的物理连接上,进行几乎无差错的数据传输。本层指定拓扑结构并提供硬件寻址;
第1层 物理层:处于OSI参考模型的最底层。物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流。
数据发送时,从第七层传到第一层,接收数据则相反。
层次型网状型和关系型数据库划分原则是数据之间的****。
1、层次数据库也是按记录来存取数据的。层次数据模型中最基本的数据关系是基本层次关系,它代表两个记录型之间一对多的关系,也叫做双亲子女关系。
2、网状数据库是采用网状原理和方法,以网状数据模型为基础建立的数据库。一般是指由网状数据库管理系统产生的网状数据库系统。
3、关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。
数据库:
1、数据库可视为电子化的文件柜,存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等 *** 作。
2、严格来说,数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。
3、数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据。
用树形结构表示实体之间联系的模型叫层次模型。层次模型是最早用于商品数据库管理系统的数据模型。其典型代表是于1969问世、由IBM公司开发的数据库管理系统IMS(Information Management System)。
1231 层次模型的结构
层次模型的表示方法是:树的结点表示实体集(记录的型),结点之间的连线表示相连两实体集之间的关系,这种关系只能是“1一M”的。通常把表示1的实体集放在上方,称为父结点,表示M的实体集放在下方,称为子结点。层次模型的结构特点是:
(1) 有且仅有一个根结点。
(2) 根结点以外的其它结点有且仅有一个父结点。
因而层次模型只能表示“1一M”关系,而不能直接表示“M—M”关系。
在层次模型中,一个结点称为一个记录型,用来描述实体集。每个记录型可以有一个或多个记录值,上层一个记录值对应下层一个或多个记录值,而下层每个记录值只能对应上层一个记录值。例如,系记录型有:计算机系、电信系等记录值。而计算机系的下层记录值有软件、结构、应用等研究室和数据结构、 *** 作系统、数据库等课程,软件研究室下层又有员工和项目记录值,
关于层次模型中实体集之间多对多的联系的处理,解决的方法是引入冗余结点。例如,学生和课程之间的多对多的联系,引入学生和课程的冗余结点 转换为两棵树:一棵树的根是学生,子结点是课程,它表现了一个学生可以选多门课程;一棵树的根是课程,子结点是学生,它反映了一门课程可以被多个学生选。
1232层次模型的数据 *** 作
层次模型的数据 *** 作特点是必须从根结点入手,按层次顺序访问。首先介绍层次顺序中的两个概念。
(1) 记录类型码 对层次模型中的记录型树,按照从上到下,从左到右的顺序给每个记录类一个编号,称为记录类型码,以表示记录类在树中的位置。
(2) 顺序域 为了确定同一记录类下的各个记录值的位置,指定记录中某字段的值作为记录值的排序的依据,该字段称为顺序域。
(3) 层次顺序和路径 有了记录类型码和顺序域,就可以对所有的记录值进行排序,首先按类型码排序,同一类型码下的各个记录值再按顺序域排序。这种从上到下、从左到右的排列顺序就是层次顺序。从根结点开始到目标结点之间所有直系祖先的类型码和顺序域组成该结点的层次路径。如图119所示,D(Department)、S(Section)、C(Course)、F(Faculty)和P(Project)分别表示系、研究室、课程、员工和项目。D02的层次顺序: D02S01F01F02S02F03F04S03F05F06F07023056C01C02C03。
GU DEPT(DEPT#=’D02’)
SECTION(SEC#=’S03’)
FACULTY(FAC#=’F06’)
层次模型中的更新 *** 作之前,一般都先执行一个查询,再执行相应 *** 作。所以层次模型数据 *** 作的特点是通过层次路径定位记录,一次仅能访问一条记录。
1234 层次模型的物理存储
层次模型的物理存储有两种实现方法:
(1) 顺序法
按照层次顺序把所有的记录邻接存放,即通过物理空间的位置相邻来实现层次顺序。
(2) 指针法
各个记录存放时不是按层次顺序,而是用指针按层次顺序把它们链接起来。
1235 层次模型的约束
层次模型的限制是:
(1) 层次模型的树是有序树(层次顺序)。对任一结点的所有子树都规定了先后次序,这一限制隐含了对数据库存取路径的控制。
(2) 树中父子结点之间只存在一种联系,因此,对树中的任一结点,只有一条自根结点到达它的路径。
(3) 不能直接表示多对多的联系。
(4) 树结点中任何记录的属性只能是不可再分的简单数据类型。
大型数据库是IBM公司开发
他有两种数据库类型;一种是关系数据库,典型代表产品:DB2;另一种则是层次数据库,代表产品:IMS层次数据库。
大型数据库的数据定义包括数据库模式定义和外模式定义。大型数据库的数据库模式是物理数据库记录型的集合。每个物理数据库记录型对应于层次数据模型中的一个层次模式,由一个DBD定义。物理数据库记录型到存储数据库的映射包含在这个物理数据库记录型的DBD定义中。
大型数据库的外模式是逻辑数据库记录型的集合。每个逻辑数据库记录型由一个PCB定义。一个逻辑数据库记录型到大型数据库模式的映射包含在这个逻辑数据库记录型的PCB定义中。用户是按照外模式 *** 纵数据的。
以上就是关于数据库管理系统常见的数据模型有层次模型,网状模型和什么全部的内容,包括:数据库管理系统常见的数据模型有层次模型,网状模型和什么、关系数据库的四个层次结构是什么、数据库系统包括七个层次的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)