《数据库原理与应用(第3版)》——2.3 组织层数据模型

2.3 组织层数据模型

组织层数据模型是从数据的组织形式的角度来描述信息,目前,在数据库技术的发展过程中用到的组织层数据模型主要有:层次模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)、面向对象模型(Object Oriented Model)和对象关系模型(Object Relational Model)。组织层数据模型是按组织数据的逻辑结构来命名的,比如层次模型采用树形结构。而且各数据库管理系统也是按其所采用的组织层数据模型来分类的,比如层次数据库管理系统就是按层次模型来组织数据,而网状数据库管理系统就是按网状模型来组织数据。
1970年,美国IBM公司研究员E.F.Codd首次提出了数据库系统的关系模型,开创了关系数据库和关系数据理论的研究,为关系数据库技术奠定了理论基础。关系模型从20世纪70~80年代开始到现在已经发展得非常成熟,本书的重点也是介绍关系模型。20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也大都加上了关系接口。
一般将层次模型和网状模型统称为非关系模型。非关系模型的数据库系统在20世纪70年代至80年代初曾非常流行,在数据库管理系统的产品中占主导地位,但现在已逐步被采用关系模型的数据库管理系统所取代。20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、信息系统设计、计算机硬件设计等方面都产生了深远的影响,也促进了数据库中面向对象数据模型的研究和发展。

2.3.1 层次数据模型

层次数据模型(层次模型)是数据库管理系统中最早出现的数据模型。层次数据库管理系统采用层次模型作为数据的组织方式。层次数据库管理系统的典型代表是IBM公司的IMS(Information Management System),这是IBM公司1968年推出的第一个大型的商用数据库管理系统。
层次数据模型用树形结构表示实体和实体之间的联系。现实世界中许多实体之间的联系本身就呈现出一种自然的层次关系,如行政机构、家族关系等。
构成层次模型的树由节点和连线组成,节点表示实体,节点中的项表示实体的属性,连线表示相连的两个实体间的联系,这种联系是一对多的。通常把表示“一”的实体放在上方,称为父节点;把表示“多”的实体放在下方,称为子节点。将不包含任何子节点的节点称为叶节点,如图2-4所示。
层次模型可以直接、方便地表示一对多的联系。但在层次模型中有以下两点限制:
1)有且仅有一个节点无父节点,这个节点即为树的根。
2)其他节点有且仅有一个父节点。
层次模型的一个基本特点是,任何一个给定的记录值只有从层次模型的根部开始按路径查看时,才能明确其含义,任何子节点都不能脱离父节点而存在。
图2-5说明了一个具有层次结构的学校组织机构数据模型,该模型有4个节点,“学院”是根节点,由学院编号、学院名称和办公地点三项组成。“学院”节点下有两个子节点,分别为“教研室”和“学生”。“教研室”节点由“教研室名”、“室主任”和“室人数”三项组成,“学生”节点由“学号”“姓名”“性别”和“年龄”四项组成。“教研室”节点下又有一个子节点“教师”,因此,“教研室”是“教师”的父节点,“教师”是“教研室”的子节点。“教师”节点由“教师号”“教师名”和“职称”项组成。

图2-6是图2-5数据模型对应的一个值。

图2-6 学院层次数据库的一个值
层次数据模型只能表示一对多联系,不能直接表示多对多联系。但如果把多对多联系转换为一对多联系,又会出现一个子节点有多个父节点的情况(如图2-7所示,学生和课程原本是一个多对多联系,在这里将其转换为两个一对多联系),这显然不符合层次数据模型的要求。一般常用的解决办法是把一个层次模型分解为两个层次模型,如图2-8所示。
层次数据库是由若干个层次模型构成的,或者说它是一个层次模型的集合。

2.3.2 网状数据模型

在现实世界中事物之间的联系更多的是非层次的,用层次数据模型表达现实世界中存在的联系有很多限制。如果去掉层次模型中的两点限制,即允许一个以上的节点无父节点,并且每个节点可以有多个父节点,便构成了网状模型。
用图形结构表示实体和实体之间的联系的数据模型称为网状数据模型(网状模型)。在网状模型中,同样使用父节点和子节点这样的术语,并且同样一般把父节点放置在子节点的上方。图2-9所示为几个不同形式的网状模型形式。

从图2-9可以看出,网状模型父节点与子节点之间的联系可以不唯一,因此,就需要为每个联系命名。如图2-9a中,节点R3有两个父节点R1和R2,因此,将R1与R3之间的联系命名为L1,将R2与R3之间的联系命名为L2。图2-9b和c与此类似。
由于网状模型没有层次模型的两点限制,因此可以直接表示多对多联系。但在网状模型中多对多的联系实现起来太复杂,因此一些支持网状模型的数据库管理系统对多对多联系还是进行了限制。例如,网状模型的典型代表CODASYL(Conference On Data System Language)就只支持一对多联系。
网状模型和层次模型在本质上是一样的。从逻辑上看,它们都是用连线表示实体之间的联系,用节点表示实体;从物理上看,它们都是用指针来实现文件以及记录之间的联系,其差别仅在于网状模型中的连线或指针更复杂,更纵横交错,从而使数据结构更复杂。
网状模型的典型代表是CODASYL,它是CODASYL组织的标准建议的具体实现。层次模型是按层次组织数据,而CODASYL是按系(set)组织数据。所谓“系”可以理解为命名了的联系,它由一个父记录型和一个或若干个子记录型组成。图2-10为网状模型的一个示例,其中包含四个系,S-G系由学生和选课记录构成,C-G系由课程和选课记录构成,C-C系由课程和授课记录构成,T-C系由教师和授课记录构成。实际上,图2-7所示的具有两个父节点的结构也属于网状模型。

2.3.3 关系数据模型

关系数据模型是目前最重要的一种数据模型,关系数据库就是采用关系数据模型作为数据的组织方式。关系数据模型源于数学,它把数据看作二维表中的元素,而这个二维表在关系数据库中就称为关系。关于关系的详细讨论将在第3章进行。
用关系(表格数据)表示实体和实体之间的联系的模型就称为关系数据模型。在关系数据模型中,实体本身以及实体和实体之间的联系都用关系来表示,实体之间的联系不再通过指针来实现。
表2-1和表2-2所示分别为“学生”和“选课”关系模型的数据结构,其中“学生”和“选课”间的联系是靠“学号”列实现的。

在关系数据库中,记录值仅仅构成关系,关系之间的联系是靠语义相同的字段(称为连接字段)值表达的。理解关系和连接字段(即列)的思想在关系数据库中非常重要。例如,要查询“刘晨”的考试成绩,则首先要在“学生”关系中得到“刘晨”的学号值,然后根据这个学号值再在“选课”关系中找出该学生的所有考试记录值。
对于用户来说,关系的操作应该很简单,但关系数据库管理系统本身是很复杂的。关系操作之所以对用户很简单,是因为它把大量的工作交给了数据库管理系统来实现。尽管在层次数据库和网状数据库诞生之时,就有了关系数据库的设想,但研制和开发关系数据库管理系统却花费了比人们想象要长得多的时间。关系数据库管理系统真正成为商品并投入使用要比层次数据库和网状数据库晚十几年。但关系数据库管理系统一经投入使用,便显示出了强大的活力和生命力,并逐步取代了层次数据库和网状数据库。现在耳熟能详的数据库管理系统几乎都是关系数据库管理系统,比如Microsoft SQL Server、Oracle、IBM DB2、Access等。
关系数据模型易于设计、实现、维护和使用,它与层次数据模型和网状数据模型的最根本区别是,关系数据模型不依赖于导航式的数据访问系统,数据结构的变化不会影响对数据的访问。

时间: 2024-08-31 10:34:10

《数据库原理与应用(第3版)》——2.3 组织层数据模型的相关文章

《数据库原理与应用(第3版)》——导读

前 言 数据库技术起源于20世纪60年代末,经过几十余年的迅速发展,已经形成一套较完整的理论体系,产生了一大批商用软件产品.随着数据库技术的推广使用,计算机应用已深入到国民经济和社会生活的各个领域,这些应用一般都以数据库技术及其应用为基础和核心.因此,数据库技术与操作系统一起构成信息处理的平台已成为业界的共识.在计算机应用中,数据存储和数据处理是计算机最基本的功能,数据库技术为人们提供了科学和高效地管理数据的方法.从某种意义上讲,数据库技术的教学成为计算机专业教学的重中之重,数据库课程也成为很多

《数据库原理与应用(第3版)》——习题

习题 1.?解释数据模型的概念.为什么要将数据模型分成两个层次? 2.?概念层数据模型和组织层数据模型分别是针对什么进行的抽象? 3.?实体之间的联系有哪几种?请为每一种联系举出一个例子. 4.?说明实体-联系模型中的实体.属性和联系的概念. 5.?指明下列实体间联系的种类: (1)教研室和教师(设一个教师只属于一个教研室,一个教研室可有多名教师). (2)商品和顾客. (3)国家和首都(假设一个国家的首都可以变化). (4)飞机和乘客. (5)银行和账户. (6)图书和借阅者(设一个借阅者可同

《数据库原理与应用(第3版)》——2.2 概念层数据模型

2.2 概念层数据模型 从图2-1可以看出,概念层数据模型实际上是现实世界到机器世界的一个中间层,机器世界实现的最终目的是为了反映和描述现实世界.本节介绍概念层数据模型的基本概念及基本构建方法. 2.2.1 基本概念 概念层数据模型是指抽象现实系统中有应用价值的元素及其关联关系,反映现实系统中有应用价值的信息结构,并且不依赖于数据的组织层数据模型. 概念层数据模型用于对信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的工具,也是数据库设计人员和业务领域的用户之间进

《数据库原理与应用(第3版)》——2.1 数据和数据模型

2.1 数据和数据模型 现实世界的数据是散乱无章的,散乱的数据不利于人们对其进行有效的管理和处理,特别是海量数据.因此,必须把现实世界的数据按照一定的格式组织起来,以方便对其进行操作和使用.数据库技术也不例外,在用数据库技术管理数据时,数据被按照一定的格式组织起来,比如二维表结构或者层次结构,以使数据能够被更高效地管理和处理.本节就对数据和数据模型进行简单介绍. 2.1.1 数据与信息 在介绍数据模型之前,我们先了解数据与信息的关系.在1.2节已经介绍了数据的概念,说明数据是数据库中存储的基本对

《数据库原理与应用(第3版)》——2.4 数据库系统结构

2.4 数据库系统结构 考察数据库系统结构可以有不同的层次或不同的角度.1)从数据库管理角度看,数据库系统通常采用三级模式结构.这是数据库系统的内部结构.2)从最终用户角度看,数据库系统的结构分为集中式结构.文件服务器结构.客户/服务器结构等.这是数据库系统的外部结构.本节讨论数据库系统的内部结构.它是为后续章节的内容建立一个框架结构,这个框架用于描述一般数据库管理系统的概念,但并不是所有的数据库管理系统都一定要使用这个框架,它在数据库管理系统中并不是唯一的,特别是一些"小"的数据库管

OSGi原理与最佳实践(精选版)中第二个例子 找不到org.mortbay.jetty 这个Bundle 求解决办法??

问题描述 OSGi原理与最佳实践(精选版)中第二个例子找不到org.mortbay.jetty这个Bundle求解决办法?? 解决方案 解决方案二:看下下面帖子配置http://blog.sina.com.cn/s/blog_9671d5180101r5dg.html

《数据库原理与应用(第3版)》——1.2 数据管理技术的发展

1.2 数据管理技术的发展 数据库技术是应数据管理任务的需要而产生和发展的.数据管理包括对数据进行分类.组织.编码.存储.检索和维护,是数据处理的核心,而数据处理则是对各种数据进行收集.存储.加工和传播等一系列活动的总和. 自计算机产生之后,人们就希望用它来帮助我们对数据进行存储和管理.最初对数据的管理是以文件方式进行的,也就是通过编写应用程序来实现对数据的存储和管理.后来,随着数据量越来越大,人们对数据的要求越来越多,希望达到的目的也越来越复杂,文件管理方式已经很难满足人们对数据的需求,由此产

《数据库原理与应用(第3版)》——小结

小结 关系数据库是目前应用最广的数据库管理系统.本章介绍了关系数据库的重要概念,包括关系模型的结构.关系操作和关系的完整性约束.介绍了关系模型中实体完整性.参照完整性和用户定义的完整性约束的概念. 最后介绍了关系代数运算,关系代数运算包括传统的集合运算和专门的关系运算两大类.专门的关系运算包括并.交.差和广义笛卡儿积,对于并.交和差运算要求参与运算的关系必须具有相同的结构.专门的关系运算包括选择.投影.连接和除.在传统的集合运算基础之上再运用专门的关系运算,可以实现对关系的多条件查询操作.

《数据库原理与应用(第3版)》——3.4 关系模型的完整性约束

3.4 关系模型的完整性约束 数据完整性是指数据库中存储的数据是有意义的或正确的.关系模型中的数据完整性规则是对关系的某种约束条件.它的数据完整性约束主要包括三大类:实体完整性.参照完整性和用户定义的完整性. 3.4.1 实体完整性 实体完整性是保证关系中的每个元组都是可识别的和唯一的. 实体完整性是指关系数据库中所有的表都必须有主键,而且表中不允许存在无主键值的记录和主键值相同的记录. 因为若记录没有主键值,则此记录在表中一定是无意义的.由于关系模型中的每一行记录都对应客观存在的一个实例或一个