第三章-数据库的逻辑结构与物理结构设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

38第三章数据库的逻辑结构与物理结构设计数据库的逻辑结构设计的主要任务是把概念层数据模型转换为组织层数据模型,即根据数据库的概念结构导出特定的数据库管理系统可以处理的数据库的逻辑结构。与数据库的逻辑结构相对应,本章我们称组织层的数据模型为逻辑模型。数据库的物理结构设计的主要任务是为逻辑模型选取一个最适合应用要求的物理结构。本章主要介绍以下内容:逻辑模型关系模型关系规范化逻辑结构设计的任务数据库的物理结构设计第一节逻辑模型概念模型经过转换成为逻辑模型(也称为结构数据模型、组织层数据模型,常简称为数据模型)。它直接面向数据库的逻辑结构,直接与DBMS有关。一、主要的逻辑模型目前,数据库领域中主要的逻辑模型有层次模型、网状模型、关系模型和面向对象模型等。1.层次模型层次模型(HierarchicalModel)是按照层次结构的形式组织数据库数据的数据模型,是数据库中使用较早的一种数据模型,其典型代表是IBM公司研制的、曾经被广泛使用的第一个大型商用数据库信息管理系统IMS(InformationManagementSystem)。(1)数据结构。层次模型使用树形结构表示实体及实体间的联系。层次模型的基本特点是:有且只有一个结点没有父结点,这个结点称为根结点;根以外的其他结点有且只有一个父结点。在层次模型中,树的结点是记录类型。上一层记录类型和下一层记录类型之间的联系是1:n的,用结点之间的连线表示。这种联系是父子之间的一对多联系。层次模型如图3-1所示。在层次模型数据库中查找记录,必须指定存取路径,即从根结点开始沿途所经过的路程。在层次模型中,同一父结点的子结点称为兄弟结点,没有子结点的结点称为叶结点。如果要存取某一记录类型的记录,可以从根结点开始,按照有向树层次逐层向下查找,查找路径就是存取路径。任何一个给定的记录值只有按其路径查看时,才能显示其全部意义,没有一个记录值能够脱离父记录而独立存在。除根节点外,任何结点的父结点都是唯一的,因此只要知道每个结点的父结点,就可以知道整个模型的整体结构。39图3-1层次模型示例(2)层次模型的优缺点。层次模型的优缺点,如表3-1所示。表3-1层次模型的优缺点内容优点(1)层次模型结构简单、层次分明,便于在计算机内实现。在层次数据结构中,从根结点到树中任一结点均存在一条唯一的层次路径,为有效地进行数据操纵提供条件(2)由于层次结构规定除根结点外所有结点有且仅有一个父结点,故实体集之间的联系可用父结点唯一地表示,并且层次模型中总是从父记录指向子记录,所以记录类型之间的联系名可省略(3)由于实体集间的联系固定,所以层次模型DBMS对层次结构的数据有较高的处理效率(4)层次数据模型提供了良好的完整性支持缺点(1)层次数据模型缺乏直接表达现实世界中非层次关系实体集间的复杂联系能力(2)对插入或删除操作有较多的限制(3)查询子结点必须通过父结点2.网状模型网状模型的典型代表是DBTG系统,亦称CODASYL系统。这是20世纪70年代数据系统语言研究会(ConferenceonDataSystemLanguage,简称CODASYL)下属的数据库任务组(DataBaseTaskGroup,简称DBTG)提出的一个系统方案。DBTG系统虽然不是实际的软件系统,但是它提出的基本概念、方法和技术具有普遍意义,对于网状数据库系统的研制和发展起了重大的影响。(1)数据结构。网状模型是用网状结构表示实体及其之间联系的模型。网状模型的特点如下:可以有一个以上结点无父结点;至少有一个结点有一个以上父结点。网状模型和层次模型在本质上是一样的,它们都是基本层次联系的集合。网状模型结点之间的联系不受层次的限制,可以任意发生联系,所以它的结构是结点的连通图,如图3-2所示。图3-2网状数据模型(2)网状模型的优缺点。网状模型的优缺点如表3-2所示。R1R2R3R4R5ABCD40表3-2网状模型的优缺点内容优点(1)能更为直接描述现实世界(2)具有存取效率高等良好性能缺点(1)数据结构比较复杂,而且随着应用环境的扩大,数据库结构变得更加复杂,不便于终端用户掌握(2)由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此,用户必须了解系统结构的细节,加重了编写应用程序的负担3.关系模型关系模型是目前最重要、应用最广泛的一种数据模型。现在主流的数据库系统大都是基于关系模型的关系数据库系统(RelationalDatabaseSystem)。关系模型是由美国IBM公司SanJose研究室的研究员E.F.Codd于1970年首次提出的。20世纪80年代以来,计算机新推出的DBMS几乎都支持关系模型。(1)数据结构。在关系数据模型中,把二维表格称为关系,表中的列称为属性,属性的取值范围称为域,表中的一行称为一个元组,元组用关键字标识。关系模型是由若干关系模式组成的集合。在关系模型中用二维表表示实体集及其属性,用二维表描述实体集间的联系。(2)关系模型的优缺点。关系模型的优缺点如表3-3所示。表3-3关系数据模型的优缺点内容优点(1)关系模型建立在严格的数学基础之上(2)关系模型的概念单一,容易理解(3)关系模型的存取路径对用户透明缺点(1)关系模型中的数据联系是靠数据冗余实现的,其查询效率往往不如非关系模型,必须进行优化,以提高性能(2)关系模型在处理如计算机辅助设计数据、多媒体数据时就有了局限性,必须要和其他的新技术结合关系模型自诞生以后发展迅速,深受用户的喜爱。而计算机硬件的飞速发展,更大容量、更高速度的计算机在一定程度上弥补了关系数据模型的缺点。因而,关系数据库始终保持其主流库的地位。本书后面章节所介绍的内容主要讲解关系数据库。4.面向对象模型面向对象的概念最早出现在程序设计语言中,20世纪70年代末、80年代初开始提出了面向对象的数据模型(Object-OrientedDataModel),面向对象模型是面向对象概念与数据库技术相结合的产物,用以支持非传统应用领域对数据模型提出的新需求。它的基本目标是以更接近人类思维的方式描述客观世界的事物及其联系,且使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致,以便对客观实体进行结构模拟和行为模拟。面向对象模型的基本概念有:对象、类、消息与封装、继承。(1)对象(Object):对象是现实世界中的实体的模型化。现实世界中的任一实体都可41模型化为一个对象,每一个对象都有唯一的对象标识,把状态和行为封装在一起。对象由状态和行为两部分组成,对象的状态是对象属性的集合。属性是用来描述对象的状态、组成及特性,属性既可以是一些简单的数据类型,也可以是一个对象,即对象可以嵌套。对象的行为是在对象状态上操作的方法的集合。方法用来描述对象的行为方式。方法的定义一般分为接口说明和实现两部分,接口说明与子程序的接口说明类似,用以说明方法的名称、参数和结果返回值的类型等。方法的实现是一段程序代码,用以实现方法的功能。(2)类(Class):具有相同属性集和方法集的所有对象构成一个类。任一个对象是某一类的一个实例。类可以由用户自定义,也可以从其他类派生出来,称为子类,原来的类称为超类(或父类),一个子类可以有多个超类,有的是直接的,也有的是间接的。超类和子类构成层次结构关系,称为类层次。如图3-3所示,研究生、本科生及专科生都是学生类的子类,博士研究生、硕士研究生是研究生的子类,学生和研究生是博士研究生及硕士研究生的超类,其中研究生是直接超类。(3)消息(Message)与封装(Encapsulation):由于每个对象是其状态与行为的封装,一个对象不能直接访问或改变另一对象的内部状态(属性)和行为(方法)。对象与外部的通信只能借助于消息,消息从外部传递给对象,调用对象的相应方法,执行相应的操作,再以消息的形式返回操作的结果,这是面向对象模型的主要特征之一。封装使方法的接口和实现分开,有利于数据的独立性,同时封装使对象只接受对象中所定义的操作,有利于提高程序的可靠性。图3-3类层次(4)继承(Inheritance):子类可以继承其所有超类中的属性和方法,同时子类还要定义自己的属性和方法。如图3-3所示的硕士研究生继承了研究生的所有属性和方法。继承是面向对象模型中避免重复定义的机制之一,大大减少了信息冗余,而且作为一种强有力的建模工具,能以人类思维规律对现实世界提供一种简明准确的描述,同时也有利于软件的重用。面向对象模型由于语义丰富,表达自然,因此面向对象数据库作为新一代数据库,在一些新的应用领域如CAD、CAM、CASE等得到了广泛重视和发展。二、逻辑模型的三要素逻辑模型是一种形式化的数据描述、数据间联系以及有关语义约束规则的方法。数据库专家E.F.Codd认为:一个基本数据模型是一组向用户提供的规则,这些规则规定逻辑结构博士研究生学生硕士研究生本科生研究生专科生42如何组织以及允许进行何种操作。通常一个数据库的逻辑模型由数据结构、数据操作和数据的约束条件三部分组成,这三部分又称为逻辑模型的三要素。1.数据结构数据结构用于描述数据库系统的静态特性,是逻辑模型最基本的组成部分,规定了如何把基本的数据项组织成较大的数据单位,以描述数据的类型、内容、性质和数据之间的相互关系。通常,在数据库系统中按照数据结构的类型来命名逻辑模型。例如,层次型数据结构、网状型数据结构和关系型数据结构的逻辑模型分别称为层次模型、网状模型和关系模型。数据结构是刻画一个逻辑模型性质最重要的方面。2.数据操作数据操作用于描述数据库系统的动态特性,是指一组用于指定数据结构的任何有效的操作或推导规则。数据库中主要的操作有查询和更新两大类。逻辑模型必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的数据库语言。3.数据的约束条件数据的约束条件是一组完整性规则的集合,它定义了给定逻辑模型中数据及其联系所具有的制约和依存规则,用以限定相容的数据库状态的集合和可容许的状态改变,以保证数据库中数据的正确性、有效性和相容性。完整性约束的定义对逻辑模型的动态特性做了进一步的描述与限定。因为在某些情况下,若只限定使用的数据结构及可在该结构上执行的操作,仍然不能确保数据的正确性、有效性和相容性。为此,每种数据模型都规定有通用和特殊的完整性约束条件。例如,关系模型中通用的约束规则是实体完整性和引用完整性。特殊的约束规则是用户定义的完整性。第二节关系模型由于关系模型是目前最重要、应用最广泛的一种数据模型,而且当前大多数数据库系统都是基于关系模型的关系数据库系统,因此本节详细讨论关系模型。一、关系模型的数据结构关系模型是以集合论中的关系概念为基础发展起来的数据模型。在关系模型中,基本元素包括关系、关系模式、属性、元组、域、关键字以及关系实例等。1.关系一个对象可以用一个或多个关系来描述。关系就是定义在它的所有属性域上的多元关系。设关系为R,它有属性12,,,nAAA,其对应的域分别为12,,,nDDD,则关系R可表示为:1122/,/,,/nnRDADADA或12,,,nRAAA。上式是关系R的描述,1iAin是属性名,R的值用r或r(R)表示,n是R的属性的个数,称为关系的目。从形式上看,关系相当于一个二维表(Table),如表3-4所示的学生信43息表就是一个关系,可表示为:学生(学号,姓名,性别,出生年份,入学年份,班级号)。表3-4学生信息表学号姓名性别出生年份入学年份班级号040123赵铁男1986200404777040234李芳女1986200404777050126高明男1987200505111050125刘菲女1987200505111关系可以有三种类型:基本关系(又称为基本表或基表)、查询表和视图表。基本表是实际存在的表,它是实际存储数据的逻辑表示。查询表是查询结果对应的表。视图表是由基本表或其它视图表导出的表,是虚表,不对应实际存储的数据。关系要满足以下四个条件:(1)关系中的每一列都是不可再分的基本属性。如表3-4所表示的关系就满足这个条件。但如果将出生年

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功