数据模型
数据库中的数据是有结构的,这种结构反映出事。物及事物之间的联系,是按照某种数 据模型来组织数据的。数据模型是指表示实体以及实体之间联系的数据库的数据结构。 数据处理的三个世界数据从现实世界到计算机数据库里的具体表示要经历三个领域,即现实世界、信息世 界、计算机世界。
1.2 数据处理的三个世界
(1)现实世界现实世界是指客观存在的世界中的事物及其联系。在目前的数据库方法中,把客观事 物抽象成信息世界的实体,然后再将实体描述成计算机世界的记录。
(2)信息世界 信息世界(或概念世界)是现实世界在人们头脑中的反映,是对客观事物及其联。系的 一种抽象描述,一般采用实体-联系方法(F-R 方法)表示。信息世界的几个常用术语如下: 现实世界 信息世界(用 F-R 图表示)计算机世界(DBMS 支持的数据模型) 收集、分类和抽象 加工转换
实体 客观存在并可以相互区别的事物称为实体,如单位、职工和项目等。
属性 描述实体的特性称为属性,如学生实体用若于属性(学号、姓名、性别、 出生日期和班。号)来描述。属性的具体取值称为属性值,用以表示一个具体实体,如属性组合(1.王斌,男,10/03/79,99011)在学生表中表示一个具体的学生。
码 惟一标识实体的属性集称为码。
实体型 具有相同属性的实体必然具有共同的特征和性质,用实体名及其属性名 集合来抽象和刻画同类实体,称为实体型。
实体集 同型实体的集合称为实体集。
联系 实体集之间的对应关系称为联系。
联系分为两种,一种是实体内部各属性 之间的联系;另一种是实体之间的联系。实体之间的联系有三种类型:一对一联 系(1:1)、一对多联系(1:n)和多对多联系(m:n)。
F-R 图提供了表示实体型、属性和联系的方法。其中实体型用矩形表示,矩形框内写 明实体名;属性用椭圆形表示,并用无向边将其与相应的实体连接起来;联系用菱形表示, 菱形框内写明联系名,并用无向边将其分别与有关实体连接起来,同时在无向边旁标上联 系的类型(1:1,1:n 或m:n)。
(3)计算机世界计算机世界可称作数据世界,是在信息世界基础上的进一步抽象,使用的方法为数据 模型的方法。计算机世界的几个常用术语如下:7数据项 又称字段,是数据库中可以命名的最小逻辑数据单位。可以是一个数或一个字符串,用它描述属性的数据。
记录 是数据项的有序集,即一个记录是由若干个数据项或字段组成,用它描述实 体。例如一个学生记录通常包含学号、姓名、性别、出生日期、班号等数据项。一 般地说,数据只有被组成记录的形式才有实际意义。
文件 文件是一个具有符号名的一组同类记录的集合。文件包含记录的结构和记录 的值。例如一个学生文件,它包含了该文件的记录结构:学号、姓名、性别、出生 日期、班号,还有该文件的记录的值,如 9901,李明,男,05/02/80,99101和 9902,王华,女,10/08/81,99091等等。
数据模型的分类 数据库是个具有一定数据结构的数据集合,这个结构是根据现实世界中事物之间的联 系来确定的。在数据库系统中不仅要存储和管理数据本身,还要保存和处理数据之间的联系,这种数据之间的联系也就是实体之间的联系,反映在数据上则是记录之间的联系。研 究如何表示和处理这种联系是数据库系统的一个核心问题,用以表示实体以及实体之间联 系的数据库的数据结构称为数据模型。数据模型的设计方法决定着数据库的设计方法,当 前流行的基本数据模型有如下几类:层次模型网状模型关系模型面向对象模型
它们之间的根本又别在干数据之间联系的表示方式不同(即记录型之间的联系方式不 同)。层次模型是用“树结构”来表示数据之间的联系。网状模型是用“图结构”来表示 数据之间的联系。关系模型是用“二维表”(或称为关系)来表示数据之间的联系。面向 对象模型是用“类层次结构”来表示数据之间的联系。 由于它们的数据表示方式不同,当用户使用数据库时,关系模型只用了数据记录的内 容,使得用户在关系 DBMS中操作时,不必去了解数据记录的联系及顺序,自然就觉得使 用简单方便;而层次模型和网状模型要用记录与记录之间的联系,以及它们在存储结构中 的具体安排,因此用户在其程序中应该充分利用对现有存取结构的知识,逐个记录地存取数据,这必然要求用户具有较多的计算机知识,对一般用户而言相对较难。下面对这几种 模型作一个简要介绍。
层次模型层次数据模型是数据库系统最早使用的一种模型,它的数据结构是一棵“有向树”。
层次模型的特征是:
有且仅有一个结点没有父结点,它就是根结点;
其他结点有且仅有一个父结点。 在层次模型中,每个结点描述一个实体型,称为记录型。一个记录型可有许多记录值, 简称为记录。结点之间的有向边表示记录之间的联系。如果要存取某一记录型的记录,可 以从根结点起,按照有向树层次逐层向下查找,查找路径就是存取路径。
网状模型用网状结构表示实体及其之间联系的模刑称为网状模刑可由的每一人结占作丰-
录型,联系用链接指针来实现。广义地讲,任何一个连通的基本层次联系的集合都是网 状模型。它取消了层次模型的两点限制,网状模型的特征
允许结点有多于一个的父结点;
可以有一个以上的结点没有父结点。从逻辑上看,它们都是基本层次联系的集合,用结点表示实体,用有向边(箭头)表示实体间的联系,从物理上看,它们的每一个结点 都是一条存储记录,用链接指针来实现记录之间的联系。当存储数据时这些指针就固定下 来了,检索数据时必须考虑存取路径问题;数据更新时,涉及到链接指针的调整,缺乏灵 活性:系统扩充相当麻烦。网状模型中的指针更多,纵横交错,从而使数据结构更复杂。
关系模型关系模型是用二维表格结构来表示实体以及实体之间联系的数据模型。关系模型的数 据结构是一个中“二维表框架”组成的集合,每个二维表又可称为关系,因此可以说,关 系模型是中“关系框架”组成的集合。目前大多数数据库管理系统都是关系型的,所以本 书主要讨论关系型数据模型。
传统数据模型在表示图形、图像、声音等多媒体数据以及空间数据、时态数据和超文 本数据这类复杂数据时,已明显表现出其建模能力的不足,为了适应这类应用领域的需要, 产生了面向对象数据模型。面向对象模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。 面向对象模型的主要概念:(1)对象与对象标识 一个对象就是一个实体所具有的属性和定义干这些属性之上的一组操作的集合体,每 个对象有一个帷一的标识,称为对象标识。现实世界中的所有实体都可以看成对象。(2) 封装 每一个对象是其状态与行为的封装,其中,状态是对象一系列属性值的集合,而行为是在对象状态上进行的操作的集合,是对对象动作的描述。操作也称为方法。 (3)类与类层次将属性集和方法集相同的所有对象组合在一起,可以构成一个类。系统中所有的类组 成一个类层次,一个类可以从类层次的直接或间接祖先那里继承所有的属性和方法。(4)消息 由于对象是封装的,对象与外部的通信一般只能通过消息传递,即消息从外部传送给 对象,存取和调用对象中的属性和方法,在内部执行所要求的操作,操作的结果仍以消息 的形式返回