PowerPoint 演示文稿

Download Report

Transcript PowerPoint 演示文稿

第6章
数据库技术基础
第6章 数据库技术基础
6.1 数据库基本概念
6.1.1 信息、数据和数据处理
6.1.2 数据管理技术的发展
6.1.3 数据库系统
6.2 数据模型
6.2.1 数据模型的概念
6.2.2 数据模型的要素
6.2.3 概念模型-E-R模型
6.2.4 常用的数据模型
6.3 数据库系统的体系结构
6.3.1 数据库系统中的模式的概念
6.3.2 数据库系统的三级模式结构
6.3.3 数据库的二级映像与数据独立性
习题
第6章
数据库技术基础
6.1 数据库基本概念
6.1.1 信息、数据和数据处理
人类的社会活动和生产活动,离不开对信息的收集、
保存、利用和处理,特别是当今生产力突飞猛进,新
技术层出不穷,信息量迅速剧增,人类社会进入了信
息化的阶段。那么什么是信息呢?信息是人们用来对
客观世界直接进行描述、可在人们之间进行传递的一
些知识。信息需要被加工和处理、需要被交流和使用。
第6章
数据库技术基础
随着计算机技术的迅速发展,计算机具有的高速处理
能力和存储容量巨大的特点,使得人们有可能对大量
的信息进行保存和加工处理。为了记载信息,人们使
用各种各样的物理符号和它们的组合来表示信息,这
些符号及其组合就是数据。数据是信息的具体表示形
式,信息是数据的有意义的表现。由此可见,信息和
数据有一定的区别,信息是观念性的,数据是物理性
的。在有些场合信息和数据难以区分,信息本身就是
数据化了的,数据本身是一种信息。因此在很多场合
不对它们进行区分,信息处理与数据处理往往指同一
个概念,计算机之间交换数据也可以说成是交换信息
等等。
第6章
数据库技术基础
有了数据就产生了数据处理的问题,人们收集到
的各种数据需要经过加工处理。所谓数据处理包括对
数据的收集、记载、分类、排序、存储和计算等工作。
其目的是使有效的信息资源得到合理和充分地利用,
从而促进社会生产力的发展。
数据处理经过了手工处理、机械处理、电子数据
处理三个阶段。今天,用计算机进行数据处理方法的
研究已成为计算机技术中的主要课题之一,数据库技
术已成为社会信息化时代不可缺少的方法和工具。
第6章
数据库技术基础
6.1.2 数据管理技术的发展
随着计算机数据处理技术的发展,数据管理技术
先后经历了三个发展阶段,即人工管理阶段、文件系
统管理阶段和数据库系统管理阶段。
1.人工管理阶段
在20世纪50年代中期以前,计算机主要用于科学
计算。当时的硬件状况是:外存只有纸带、卡片、磁
带,没有磁盘等直接存取的存储设备;软件状况是:
没有操作系统,没有管理数据的软件;数据处理方式
是批处理。
数据库技术基础
Êý¾Ý¼¯ºÏ1
Ó¦ÓóÌÐò2
Êý¾Ý¼¯ºÏ2
¡-
³ÌÐò Êý¾Ý
Ó¦ÓóÌÐò1
Ó¦ÓóÌÐòn
图6-1 程序与数据的存放
¡-
第6章
Êý¾Ý¼¯ºÏn
第6章
数据库技术基础
对数据的管理是由程序员个人考虑和安排的,一个程
序对应于一组数据,进行程序设计时,往往也要对数
据的结构、存储方式、输入输出方式等进行设计。严
格地说,这种管理只是一种技巧,这是数据自由管理
的方式,因此,这一阶段又称为自由管理阶段。其特
点是:数据不能长期保存,数据与程序不独立,一组
数据对应于一个程序,没有软件系统对数据进行管理,
基本上没有文件的概念。程序与数据的存放形式如图
6-1所示。
第6章
数据库技术基础
2.文件系统管理阶段
20世纪50年代后期到60年代中期,计算机软硬件
都得到了发展,计算机不仅用于科学计算,还大量用
于管理。这时硬件方面已有了磁盘、磁鼓等直接存取
的存储设备;软件方面,操作系统中已经有了专门的
数据管理软件,一般称为文件系统;数据处理方式上
不仅有了批处理,而且能够联机实时处理。该阶段的
数据管理具有如下特点:
第6章
数据库技术基础
(1) 数据可以长期保存。
(2) 由文件系统管理数据。文件系统把数据组织成
相互独立的数据文件,利用“按文件名进行访问,按
记录进行存取”的管理技术,可以对文件进行修改、
插入和删除的操作。程序和数据之间由文件系统提供
存取方法进行转换,使应用程序与数据之间有了一定
的独立性,程序员可以不必过多地考虑物理细节,将
精力集中于算法。
但是,文件系统仍存在以下缺点。
第6章
数据库技术基础
(1) 数据共享性差,冗余度大。在文件系统中,一
个数据文件基本上对应于一个应用程序,即数据仍然
是面向应用的。当不同的应用程序具有部分相同的数
据时,也必须建立各自的文件,而不能共享相同的数
据,因此数据的冗余度大,浪费存储空间。同时,由
于相同数据的重复存储、各自管理,容易造成数据的
不一致性,给数据的修改和维护带来困难。
数据库技术基础
Îļþ1
Ó¦ÓóÌÐò2
Îļþ2
Îļþ¹Ü
Àíϵͳ
Ó¦ÓóÌÐòn
图6-2 文件系统管理示意图
¡-
Ó¦ÓóÌÐò1
¡-
第6章
Îļþn
第6章
数据库技术基础
(2) 数据独立性差。文件系统中的文件是为某一特
定应用服务的,文件的逻辑结构对该应用程序来说是
优化的。因此,要想对现有的数据再增加一些新的应
用会很困难,系统不容易扩充。一旦数据的逻辑结构
改变,必须修改应用程序;应用程序的改变,也将引
起文件的数据结构的改变。因此数据与程序之间仍缺
乏独立性。可见,文件系统仍然是一个不具有弹性的
无结构的数据集合,即文件之间是孤立的,不能反映
现实世界事物之间的内在联系。在文件系统阶段,程
序与数据之间的关系如图6-2所示。
第6章
数据库技术基础
3.数据库系统管理阶段
20世纪60年代后期以来,计算机软硬件技术得到
了飞速发展,同时,计算机用于管理的规模越来越大,
应用越来越广泛,数据量急剧增加,多种应用、多种
语言互相覆盖地共享数据集合的要求越来越强烈。为
了解决多用户、多应用共享数据,使数据为尽可能多
的应用服务,显然,文件系统已不能满足应用需求,
于是数据库技术便应运而生。出现了统一管理数据的
专门软件系统——数据库管理系统(DBMS,DataBase
Management System)。
数据库技术基础
Ó¦ÓóÌÐò1
Ó¦ÓóÌÐò2
¡-
第6章
DBMS
数据库
Ó¦ÓóÌÐòn
图6-3 数据库系统管理示意图
第6章
数据库技术基础
数据库系统管理数据比文件系统具有明显的优点,
从文件系统到数据库系统,标志着数据管理技术的飞
跃。在数据库系统中,应用程序与数据之间的关系可
用图6-3来表示。
与文件系统管理阶段相比,数据库系统管理阶段
具有以下的一些特点:
第6章
数据库技术基础
1) 数据结构化
数据结构化是数据库主要特征之一,是数据库系
统与文件系统的根本区别。
在文件系统中,相互独立的文件的记录内部是有
结构的,传统文件的最简单形式是等长同格式的记录
集合,但记录之间是没有联系的,并且文件是面向某
一应用的。而实际系统往往涉及许多应用,在数据库
系统中不仅要考虑某个应用的数据结构,还要考虑整
个组织的数据结构。这就要求在描述数据时不仅要描
述数据本身,还要描述数据之间的联系。
第6章
数据库技术基础
在数据库系统中,数据不再针对某一应用,而是
面向全组织,具有整体的结构化。不仅数据是结构化
的,而且存取数据的方式也很灵活,可以存取数据库
中的某一个数据项、一组数据项、一个记录或一组记
录。而在文件系统中,数据的最小存取单位是记录,
粒度不能细到数据项。
第6章
数据库技术基础
2) 数据的共享性高、冗余度低、易扩充
数据库系统是从整体角度看待和描述数据,数据
不再面向某个应用而是面向整个系统,因此数据可以
被多个用户、多个应用共享使用。数据共享可以大大
减少数据冗余,节约存储空间。数据共享还能够避免
数据之间的不相容性与不一致性。
数据库中的数据是面向整个系统,是有结构的数
据,不仅可以被多个应用共享使用,而且容易增加新
的应用,可以适应各种应用需求。当应用需求改变或
增加时,只要重新选取整体数据的不同子集,便可以
满足新的要求,这就使得数据库系统具有弹性大,易
扩充的特点。
第6章
数据库技术基础
3) 数据独立性高
数据独立性是数据库领域中一个常用术语,包括数
据的物理独立性和数据的逻辑独立性。
数据的物理独立性是指用户的应用程序与存储在
磁盘上的数据库中数据是相互独立的。也就是说,数
据在磁盘上的数据库中怎样存储是由DBMS管理的,
用户程序不需要了解,应用程序要处理的只是数据的
逻辑结构。这样,当数据的物理存储改变了,应用程
序不用改变。
第6章
数据库技术基础
数据的逻辑独立性是指用户的应用程序与数据库
的逻辑结构是相互独立的,也就是说,数据的逻辑结
构改变了,用户程序也可以不变。
数据与程序的独立,把数据的定义从程序中分离
出去,加上数据的存取又由DBMS负责,从而简化了
应用程序的编制,大大减少了应用程序的维护和修改
工作。
数据独立性是由DBMS的二级映像功能来保证的,
这将在稍后讨论。
第6章
数据库技术基础
4) 统一的数据管理和控制
数据库对系统中的用户来说是共享资源,即多个
用户可以同时存取数据库中的数据甚至可以同时存取
数据库中的同一个数据。因此,DBMS必须提供以下
几方面的数据控制和保护功能。
第6章
数据库技术基础
(1) 数据的安全性保护。数据的安全性是指保护数
据以防止不合法的使用所造成的数据泄密和破坏,使
每个用户只能按规定,对某种数据以某些方式进行使
用和处理。例如,系统用检查口令或其它手段来检查
用户身份,合法用户才能进入数据库系统;系统提供
数据存取权限的定义机制,当用户对数据库执行操作
时,系统自动检查用户能否执行这些操作,检查通过
后才能执行允许的操作。
第6章
数据库技术基础
(2) 数据的完整性控制。数据的完整性是指数据的
正确性、有效性和相容性。完整性检查提供必要的功
能,保证数据库中的数据在输入和修改过程中始终符
合原来的定义和规定,在有效的范围内,保证数据之
间满足一定的关系。例如,月份是1~12之间的正整数,
学生年龄是15~45间的整数,学生学号是惟一的,学
生所在的系院必须是有效存在的等。
(3) 数据库恢复。计算机系统的软硬件故障、操作
员的失误以及恶意的破坏都会影响到数据库中数据的
正确性,甚至造成数据库部分或全部数据的丢失。因
此DBMS必须具有将数据库从错误状态恢复到某一已
知的正确状态(亦称为完整状态或一致状态)的功能。
第6章
数据库技术基础
(4) 并发控制。当多个用户的并发进程同时存取、
修改数据库时,可能会发生相互干扰而得到错误的结
果或使得数据库的完整性遭到破坏,因此必须对多用
户的并发操作加以控制和协调。
数据库系统的出现使信息系统进入从以加工数据
的程序为中心转向以共享的数据库为中心的新阶段。
这样既便于数据的集中管理,又有利于应用程序的研
制和维护,提高了数据的利用率和相容性,提高了决
策的可靠性。
第6章
数据库技术基础
6.1.3 数据库系统
1.数据库
所谓数据库是长期储存在计算机内的、有组织的、
可共享的数据集合。数据库中的数据按一定的数据模
型组织、描述和储存,具有较小的冗余度、较高的数
据独立性和易扩展性,并可为一定范围内的各种用户
共享。
第6章
数据库技术基础
2.数据库管理系统(DBMS)
了解了数据和数据库的概念,接下来的问题是如
何科学地组织和存储数据,如何高效地获取和维护数
据,完成这个任务的是一个系统软件——数据库管理系
统。DBMS是位于用户与操作系统之间的一个数据管
理软件,是一个帮助用户建立、使用和管理数据库的
软件系统,是数据库与用户之间的接口。它的基本功
能应包括以下几个方面:
(1) 数据定义功能。DBMS提供数据定义语言
(DDL),用户通过定义语言可以方便地对数据库中的数
据对象进行定义。
第6章
数据库技术基础
(2) 数据操纵功能。DBMS提供数据操纵语言
(DML),用户通过操纵语言操纵数据,实现对数据库
的基本操作,如查询、插入、删除和修改。
(3) 数据库的运行管理。数据库在建立、运行和维
护时由DBMS统一管理、统一控制,以保证数据的安
全性、完整性、多用户对数据的并发使用及发生故障
后的系统恢复。
(4) 数据库的建立和维护功能。它包括数据库初始
数据的输入、转换功能,数据库的转储、恢复功能,
数据库的重组织功能,以及性能监视、分析功能等。
第6章
数据库技术基础
3.数据库系统(DBS,DataBase System)
数据库系统是指在计算机系统中引入数据库后的
系统,一般由数据库、操作系统、数据库管理系统(及
其工具)、应用系统、数据库管理员和用户构成,如图
6-4所示。应当指出的是,数据库的建立、使用和维护
等工作只靠一个DBMS远远不够,还要有专门的人员
来完成,这些人被称为数据库管理员(DBA,DataBase
Adiministrator)。
在一般不引起混淆的情况下常常把数据库系统简
称为数据库。
第6章
数据库技术基础
Óû§
Óû§ ¡-
Óû§
应用系统
应用开发工具
数据库管理系统
Êý¾Ý¿â¹ÜÀíÔ±
操作系统
数据库
图6-4 数据库系统示意图
第6章
数据库技术基础
由于数据库系统数据量都很大,加之DBMS丰富的
功能使得自身的规模也很大,因此数据库系统对硬件
提出了较高的要求,这些要求是:要有足够大的内存;
要有足够大的磁盘空间存放数据库,足够的磁带做数
据备份;系统有较高的通信能力,以提高数据传输率。
4.数据库系统的有关人员
(1) 数据库管理员。DBA负责对整个数据库系统进
行总体控制和维护,以保证数据库系统的正常运行。
第6章
数据库技术基础
(2) 系统分析员和数据库设计人员。系统分析员
负责应用系统的需求分析和规范说明,他们要和用户
及DBA相结合,确定系统的软硬件配置并参与数据库
系统的概要设计。数据库设计人员负责数据库中数据
的确定、数据库各级模式的设计。数据库设计人员必
须参加用户需求调查和系统分析,然后进行数据库设
计。在很多情况下,数据库设计人员就由数据库管理
员担任。
第6章
数据库技术基础
(3) 应用程序员。负责设计和编写应用程序的程序
模块,并进行调试和安装。
(4) 终端用户。他们通过联机终端,并通过应用程
序的用户接口使用数据库。常用的接口方式有浏览器、
菜单驱动、表格操作、图形显示、报表书写等。
第6章
数据库技术基础
6.2 数 据 模 型
6 .2.1 数据模型的概念
模型是现实世界特征的模拟和抽象。数据模型也
是一种模型,它是现实世界数据特征的抽象。现有的
数据库系统均是基于某种数据模型的。因此,数据模
型是数据库系统的核心和基础,了解数据模型的基本
概念是学习数据库系统的基础。
第6章
数据库技术基础
数据库是某个企业、组织或部门所涉及的数据的
一个综合,它不仅要反映数据本身的内容,而且要反
映数据之间的联系。由于计算机不可能直接处理现实
世界中的具体事物,所以,人们必须事先把具体事物
转换成计算机能够处理的数据。在数据库中用数据模
型这个工具来抽象、表示和处理现实世界中的数据和
信息。
数据模型应满足三方面要求:一是能比较真实地模
拟现实世界;二是容易为人们所理解;三是便于在计
算机上实现。一种数据模型要很好地满足这三方面的
要求,在目前尚很困难。在数据库系统中针对不同的
使用对象和应用目的,采用不同的数据模型。
第6章
数据库技术基础
不同的数据模型实际上是提供给人们模型化数据
和信息的不同工具。根据模型应用的不同目的,可以
将这些模型划分为两类,它们分属于两个不同的层次。
第一类模型是概念模型,也称信息模型,它是按用户
的观点对数据和信息建模。另一类模型是数据模型(即
结构模型),主要包括网状模型、层次模型、关系模型
和面向对象模型等,它是按计算机系统的观点对数据
建模。
第6章
数据库技术基础
6.2.2 数据模型的要素
一般地讲,数据模型是严格定义的一组概念的集
合。这些概念精确地描述了系统的静态特性、动态特
性和完整性约束条件。因此,数据模型通常都是由数
据结构、数据操作和完整性约束三个要素组成。
1.数据结构
数据结构是所研究的对象类型的集合。这些对象
是数据库的组成成分,它们包括两类:一类是与数据
类型、内容、性质有关的对象;一类是与数据之间联
系有关的对象。
第6章
数据库技术基础
数据结构是刻画一个数据模型性质最重要的方面。
因此在数据库系统中,通常按照其数据结构的类型来命
名数据模型。例如层次结构、网状结构、关系结构的数
据模型分别命名为层次模型、网状模型和关系模型。
数据结构是对系统静态特性的描述。
第6章
数据库技术基础
2.数据操作
数据操作是指对数据库中各种对象(型)的实例(值)
允许执行的操作的集合,包括操作及有关的操作规则。
数据库主要有检索和更新(包括插入、删除、修改)两大
类操作。数据模型必须定义这些操作的确切含义、操
作符号、操作规则(如优先级)以及实现操作的语言。
数据操作是对系统动态特性的描述。
第6章
数据库技术基础
3.数据的完整性约束
数据的完整性约束是一组完整性规则的集合。完
整性规则是给定的数据模型中数据及其联系所具有的
制约和储存规则,用以限定符合数据模型的数据库状
态以及状态的变化,以保证数据的正确、有效和相容。
数据模型应该反映和规定本数据模型必须遵守的、
基本的、通用的完整性约束。例如,在关系模型中,
任何关系必须满足实体完整性和参照完整性两个条件
(稍后讨论这两个完整性约束)。
第6章
数据库技术基础
6.2.3 概念模型——E-R模型
为了把现实世界中的具体事物抽象、组织为某一
DBMS支持的数据模型,人们常常首先将现实世界抽
象为信息世界,然后将信息世界转换为机器世界。概
念模型用于信息世界的建模,与具体的DBMS无关。
概念模型是现实世界到信息世界的第一层抽象,是数
据库设计人员进行数据库设计的有力工具,也是数据
库设计人员和用户之间进行交流的语言,因此概念模
型一方面应该具有较强的语义表达能力,能够方便、
直接地表达应用中的各种语义知识,另一方面它还应
该简单、清晰、易于用户理解。
第6章
数据库技术基础
1.信息世界中的基本概念
信息世界涉及的概念主要有:
1) 实体(Entity)
客观存在并可相互区别的事物称为实体。实体可
以是具体的人、事、物,也可以是抽象的概念或联系。
例如,一个职工、一个学生、一门课、一个部门、学
生的一次选课、部门的一次定货等都是实体。
第6章
数据库技术基础
2) 属性(Attribute)
实体所具有的某一特性称为属性。一个实体可以由
若干个属性来刻画。例如,学生实体可以由学号、姓名、
性别、出生年份、系、入学时间等属性组成,如
(20020124,张亮,男,1984,计算机系,2002)表征了一
个学生。
3) 码(Key)
惟一标识实体的属性集称为码。例如学号是学生实
体的码。
第6章
数据库技术基础
4) 域(Domain)
属性的取值范围称为该属性的域。例如,性别的
域为(男,女),学号的域为8位整数,年龄的域为小于
35的整数。
5) 实体型(Entity Type)
具有相同属性的实体必然具有共同的特性和性质。
用实体名及其属性名集合来抽象和刻画同类实体,称
为实体型。例如,学生(学号,姓名,性别,出生年份,
系,入学时间)就是一个实体型。
第6章
数据库技术基础
6) 实体集(Entity Set)
同型实体的集合称为实体集。例如,全体学生就
是一个集合,即实体集。
7) 联系(Relationship)
在现实世界中,事物内部以及事物之间是有联系
的,这些联系在信息世界中反映为实体(型)内部的联系
和实体(型)之间的联系。实体内部的联系通常是指组成
实体的各属性之间的联系。实体之间的联系通常是指
不同实体集之间的联系。
第6章
数据库技术基础
两个实体型之间的联系可以分为三类:
(1) 一对一联系(1∶1)。如果对于实体集A中的每一
个实体,实体集B中至多有一个(也可以没有)实体与之
联系,反之亦然,则称实体集A与实体集B具有一对一
联系,记为1∶1。例如,学校里面,一个班级只有一个
正班长,而一个班长只在一个班中任职,则班级与班
长之间具有一对一联系。
第6章
数据库技术基础
(2) 一对多联系(1∶n)。如果对于实体集A中的每一
个实体,实体集B中有n个(n≥0)实体与之联系,反之,
对于实体集B中的每一个实体,实体集A中至多有一个
实体与之联系,则称实体集A与实体集B具有一对多联
系,记为1∶n。例如,一个班级中有若干名学生,而每
个学生只在一个班级中学习,则班级与学生之间具有
一对多联系。
第6章
数据库技术基础
(3) 多对多联系(m∶n)。如果对于实体集A中的每一
个实体,实体集B中有n个(n≥0)实体与之联系。反之,
对于实体集B中的每一个实体,实体集A中也有m个
(m≥0)实体与之联系,则称实体集A与实体集B具有多
对多联系,记为m∶n。例如,一个课程同时有若干名学
生选修,而一个学生可以同时选修多门课程,则课程
与学生之间具有多对多联系。
实际上,一对一联系是一对多联系的特例,而一
对多联系又是多对多联系的特例。
第6章
数据库技术基础
实体型之间的这种一对一、一对多、多对多联系
不仅存在于两个实体型之间,也存在于两个以上的实
体型之间。例如,对于课程、教师与参考书三个实体
型,如果一门课程可以有若干个教师讲授,使用若干
本参考书,而每一个教师只讲授一门课程,每一本参
考书只供一门课程使用,则课程与教师、参考书之间
的联系是一对多的。
同一个实体集内的各实体之间也可以存在一对一、
一对多、多对多的联系。例如,职工实体集内部具有
领导与被领导的联系,即某一职工(干部)“领导”若干
名职工,而一个职工仅被另外一个职工直接领导,因
此这是一对多的联系。
第6章
数据库技术基础
2.概念模型的表示方法
概念模型是对信息世界建模,所以概念模型应该
能够方便、准确地表示出信息世界中的常用概念。概
念模型的表示方法很多,其中最为常用的是P.P.S.Chen
于 1976 年 提 出 的 实 体 — 联 系 方 法 (Entity-Relationship
Approach)。该方法用E–R图来描述现实世界的概念模
型,E–R方法也称为E–R模型。
E–R图提供了表示实体型、属性和联系的方法。
第6章
数据库技术基础
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的
实体连接起来。
联系:用菱形表示,菱形框内写明联系名,并用
无向边分别与有关实体连接起来,同时在无向边旁标
上联系的类型(1∶1,1∶n,m∶n)。如果一个联系具有属
性,则这些属性也要用无向边与该联系连接起来。
现实世界中的任何数据集合,均可用E–R图来描
述。图6-5和图6-6给出了一些简单的例子。
第6章
Ö°¹¤
1
n
Áìµ¼
数据库技术基础
³§³¤
ѧУ
¹¤ÈË
¹¤³§
1
1
m
1
¹ÜÀí
Áìµ¼
Éú²ú
1
n
n
¹¤³§
(a)
ϵ
²úÆ·
(b)
¹¤-²ú-Áã
m
n
²úÆ·
Áã¼þ
(c)
图6-5 实体的联系
(a) 实体内部的联系;(b) 两个实体之间的联系;
(c) 多个实体之间的联系
第6章
数据库技术基础
²úÆ·
²úÆ·ºÅ
²úÆ·Ãû
ѧÉú
ÐͺÅ
Ö÷ÒªÐÔÄÜ
ѧºÅ
ÐÕÃû
ÐÔ±ð
(a)
²úÆ·
m
ʹÓÃ
n
ѧÉú
²ÄÁÏ
m
Ñ¡ÐÞ
n
ÊýÁ¿
¿Î³Ì
(b)
图6-6 实体与联系的属性
(a) 实体的属性;(b) 联系的属性
³É¼¨
ÄêÁä
第6章
数据库技术基础
E–R模型有两个明显的优点:一是接近人的思想,
容易理解;二是与计算机无关,用户容易接受。因此,
E–R模型已经成为数据库概念设计的一种重要方法,
它是设计人员和不熟悉计算机的用户之间的共同语言。
一般遇到一个实际问题,总是先设计一个E–R模型,
然后再把E–R模型转换成计算机能实现的数据模型。
第6章
数据库技术基础
6.2.4 常用的数据模型
不同的数据模型具有不同的数据结构形式。目前
最常用的数据结构模型有层次模型、网状模型、关系
模型和面向对象模型。其中层次模型和网状模型统称
为非关系模型。非关系模型的数据库系统在20世纪70
年代非常流行,到了20世纪80年代,逐渐被关系模型
的数据库系统取代,但在美国等一些国家里,由于历
史的原因,目前层次和网状数据库系统仍为某些用户
所使用。
第6章
数据库技术基础
20世纪80年代以来,面向对象的方法和技术在计
算机各个领域,包括程序设计语言、软件工程、信息
系统设计等各方面都产生了深远的影响,也促进了数
据库中面向对象数据模型的研究和发展。
1.层次模型(Hierarchical Model)
层次模型是数据库系统中最早出现的数据模型,
层次数据库系统采用层次模型作为数据的组织方式。
层次模型是以记录类型为结点的有向树,即树的每一
个结点都表示一个记录类型,它有如下特点:
第6章
数据库技术基础
R1
R2
R3
R4
图6-7 层次模型
R5
第6章
数据库技术基础
(1) 有且仅有一个结点没有双亲结点,这个结点称
为根结点;
(2) 根以外的其它结点有且只有一个双亲结点;
(3) 每个结点可以有若干个孩子结点。
凡满足以上条件的数据结构模型称为层次模型。
如图6-7所示就是一个层次模型。
层次数据库系统的典型代表是IBM公司的
IMS(Information Management Systems)数据库管理系统,
这是1968年IBM公司推出的第一个大型商用数据库管
理系统,曾经得到广泛的使用,目前,仍然有某些特
定用户在使用。
第6章
数据库技术基础
2.网状模型(Network Model)
在现实世界中事物之间的联系更多的是非层次关
系,若用层次模型表示很不直接,网状模型则可以克
服这一缺点。网状数据库系统采用网状模型作为数据
的组织方式,网状模型是以记录类型为结点的有向图。
在网状模型中,数据间紧密相连,呈现出一种网状的
关系形式,图6-8中的数据模型都是网状模型。它的特
征是:
(1) 允许一个以上的结点无双亲;
(2) 允许一个结点有多于一个的双亲;
(3) 任意两个结点之间可以有多于一个以上的联系。
第6章
R1
数据库技术基础
R2
R1
R3
R2
R3
R4
图6-8 网状模型
R4
第6章
数据库技术基础
网状数据模型的典型代表是DBTG系统,它是20
世纪70年代数据系统语言研究会(Conference On Data
System Language) 下 属 的 数 据 库 任 务 组 (DBTG ,
DataBase Task Group)提出的一个系统方案。DBTG系
统虽然不是实际的软件系统,但是它提出的基本概念、
方法和技术具有普遍意义。它对于网状数据库系统的
研制和发展起了重大的影响。后来不少的实际系统都
采用了DBTG模型或者简化的DBTG模型。
第6章
数据库技术基础
3.关系模型(Relational Model)
关系模型是目前最常用的一种数据模型。关系数
据库系统采用关系模型作为数据的组织方式。1970年
美国IBM公司San Jose研究室的研究员E. F. Codd首次提
出了数据库系统的关系模型,开创了数据库关系方法
和关系数据理论的研究,为数据库技术奠定了理论基
础。由于E. F. Codd的杰出贡献,他于1981年获得ACM
图灵奖。
第6章
数据库技术基础
20世纪80年代以来,计算机厂商新推出的数据库
管理系统几乎都支持关系模型,非关系模型的产品也
大都加上了关系接口。数据库领域当前的研究工作也
大都是以关系方法为基础。
用表格结构表示实体以及实体之间联系的模型称
为关系模型。关系模型比较简单,容易被初学者所接
受。与以往的模型不同,关系模型是建立在严格的数
学概念基础上的一种数据模型,它的数据结构是二维
表,即由行和列组成,这个表就叫作关系。表6-1所列
的职工情况表就是一个关系。
第6章
数据库技术基础
表6-1 职工情况表
编号
姓 名
职 称
工 龄
工 资
出生日期
1001
王 明
工程师
10
1150.0
01/20/70
1024
田 丽
助 工
5
980.0
10/09/75
2048
张 升
高 工
20
1450.0
09/28/62
4006
胡中华
助 工
3
870.0
05/28/78
第6章
数据库技术基础
下面结合表6-1,介绍关系模型中的一些术语。
(1) 关系(Relation):一个关系对应一张二维表,二
维表名就是关系名,如表6-1职工情况表。
(2) 元组(Tuple):表中的一行即为一个元组,如表
6-1中的(1001,王明,工程师,10,1150.0,01/20/70)
为一个元组。
(3) 属性(Attribute):表中的一列即为一个属性,
给每一个属性起一个名字即属性名。如表6-1有六列,
对应六个属性,属性名分别为编号、姓名、职称、工
龄、工资、出生日期。
第6章
数据库技术基础
(4) 分量(Component):元组中的一个属性值。
(5) 主码(Key):表中的某个属性组,它可以惟一确
定一个元组。如表6-1中的编号,可以惟一确定一个职
工,也就成为本关系的主码。
(6) 域(Domain):属性的取值范围,如工资的域是
(500.0~5000.0)。
(7) 关系模式(Relation Schema):对关系的描述称
为关系模式,一般表示为:关系名(属性1,属性2,…,
属性n)
第6章
数据库技术基础
例如表6-1的关系可表示为
职工情况表(编号,姓名,职称,工龄,工资,出
生日期)
关系模型与层次、网状模型的最大区别是关系模
型用表格的数据而不是通过指针链来表示和实现实体
间的联系。关系模型中数据结构单一,只有二维表格,
通常可把表格看成一个集合,因此集合论、数理逻辑
等知识可引入到关系模型中来。一般认为它是一种比
较有前途的模型。
第6章
数据库技术基础
4.面向对象模型(Object-Oriented Model)
由于关系模型比层次、网状模型更为简单灵活,
因此,数据处理领域中,关系数据库的使用已相当普
遍。但是,现实世界存在着许多含有更复杂数据结构
的实际应用领域,例如CAD数据、图形数据等,需要
有一种数据模型来表达这类信息,在人工智能研究中
也出现了类似的需要,这种数据模型就是面向对象的
数据模型。
第6章
数据库技术基础
20世纪80年代中后期,数据库界掀起了面向对象
技术与数据库技术相结合的研究热潮,对于什么是面
向对象数据库,它应该具有哪些特性,如何去实现它,
大家有各自不同的见解,因此研究工作百花齐放,各
自按照自己的方法去实现自己的系统。经过十余年的
研究与实践,现在归纳起来,面向对象技术与数据库
技术相结合的途径主要有以下两种:
一种途径是以面向对象程序设计语言为基础进行
扩展,研究持久的程序设计语言,使之具有数据库功
能;或者直接将数据库系统的特性与面向对象程序设
计语言的特性结合起来,研制面向对象的数据库系统
(OODBS)。
第6章
数据库技术基础
OODBS的商品化现状远不如20世纪80年代中后期
开始研究面向对象技术与数据库技术相结合时人们预
想的高,其原因是多方面的。首先,OODBS缺乏标准;
其次,OODBS产品在安全性、完整性、坚固性、可伸
缩性、视图机制、模式演化等许多方面都不如关系数
据库系统(RDBS)产品;另外,OODBS系统的应用开发
工具很少,对客户/服务器环境的支持也不够。
第6章
数据库技术基础
另一种途径是以传统的关系数据库和SQL语言为
基础,进行扩展的方法。这种方法早期的典型代表是
加 州 大 学 Berkeley 分 校 研 制 的 扩 展 关 系 数 据 库 系 统
POSTGRES,它以关系数据库系统Ingres为基础,将它
的类型系统开放,允许将新的、用户定义的抽象数据
类型(ADT)加进来,用户定义新的ADT时需要实现这
个类型,即定义它的表示法和编写它的函数。采用扩
展关系数据模型的方法建立的数据库系统称做对象—关
系数据库系统(ORDBS),它建立在关系数据库技术坚
实的基础上,并且支持若干重要的面向对象特性,能
够满足数据库新应用的需求。
第6章
数据库技术基础
面向对象数据模型比网状、层次、关系数据模型
具有更加丰富的表达能力。但正因为面向对象模型的
丰富的表达能力,模型相对复杂,实现起来较困难。
第6章
数据库技术基础
6.3 数据库系统的体系结构
6.3.1 数据库系统中模式的概念
在数据模型中有“型”(Type)和“值”(Value)的概
念。型是指对某一类数据的结构和属性的说明,值是
型的一个具体赋值。例如,学生记录定义为(学号,姓
名,性别,系别,年龄,籍贯)记录型,而(020301,李
辉,男,计算机,19,陕西)则是该记录型的一个记录
值。
第6章
数据库技术基础
模式(Schema)是数据库中全体数据的逻辑结构和特
征的描述,它仅仅涉及到型的描述,不涉及到具体的
值。模式的一个具体值称为模式的一个实例(Instance)。
同一个模式可以有很多实例。模式是相对稳定的,而
实例是不断变动的,因为数据库中的数据是在不断更
新的。模式反映的是数据的结构及其联系,而实例反
映的是数据库某一时刻的状态。
虽然实际的DBMS产品种类很多,它们支持不同
的数据模型,使用不同的数据库语言,建立在不同的
操作系统之上,数据的存储结构也各不相同,但它们
在体系结构上通常都具有相同的特性,即采用三级模
式结构并提供两级映像功能。
第6章
数据库技术基础
6.3.2 数据库系统的三级模式结构
数据库系统的三级模式结构分为:外模式、模式和
内模式,如图6-9所示。
1.模式
模式也称逻辑模式或概念模式,它是数据库中全体
数据的逻辑结构和特征的描述,也是所有用户的公共数
据视图。它是数据库系统模式结构的中间层,既不涉及
数据的物理存储细节和硬件环境,也与具体的应用程序、
所使用的开发工具及高级程序设计语言无关。
第6章
数据库技术基础
Ó¦ÓÃA
Ó¦ÓÃB
Íâģʽ1
Ó¦ÓÃC ¡-
Ó¦ÓÃD
Íâģʽ2 ¡-
Ó¦ÓÃE
Íâģʽn
Íâģʽ / ģʽӳÏñ
ģʽ
ģʽ / ÄÚģʽӳÏñ
ÄÚģʽ
数据库
图6-9 数据库系统的三级模式结构
第6章
数据库技术基础
模式是DBA所看到的数据库。一个数据库只有一
个模式。数据库模式以某一种数据类型为基础,统一
综合地考虑了所有用户的需求,并将这些需求有机地
结合成一个逻辑整体。定义模式时不仅要定义数据的
逻辑结构,而且要定义数据之间的联系,定义与数据
有关的安全性、完整性要求。
模式使用DBMS提供的模式数据定义语言 (模式
DDL)来严格定义。
第6章
数据库技术基础
2.外模式
外模式也称子模式(SubSchema)或用户模式,它是
数据库用户能够看见和使用的局部数据的逻辑结构和
特征的描述,是数据库用户的数据视图,也是与某一
应用有关的数据的逻辑表示。
外模式是模式的子集,一个数据库可以有多个外
模式。外模式是保证数据安全性的一个有力工具,每
个用户只能看见和访问所对应的外模式中的数据,数
据库中其余的数据是不可见的。
子模式使用DBMS提供的子模式数据定义语言(子
模式DDL)来严格定义。
第6章
数据库技术基础
3.内模式
内模式又称存储模式,一个数据库只有一个内模
式。它描述了数据的物理结构和存储方式,是数据库
内部的表示方法。例如,记录的存储方式是顺序存储、
按照B树结构存储还是按Hash方法存储;索引按照什么
方式组织;数据是否压缩存储,是否加密;数据的存
储记录结构有何规定等。
内模式使用DBMS提供的内模式数据定义语言(内
模式DDL)来严格定义。
第6章
数据库技术基础
DDL是数据描述语言(Data Description Language),
它是在建立数据库时用来描述数据库结构的语言,有
些文献称之为数据定义语言(Data Definition Language),
简称都是DDL。用三种DDL来描述三种不同的模式,
有利于实现数据独立性。但实际的DBMS不一定将三
种DDL分开,多数DBMS仅提供一种或者两种DDL,
同时完成这三种语言的功能。
DDL是类似高级语言的形式化语言。用DDL描述
的模式成为源模式,它构成数据库系统的“描述数据
库”。通过DBMS配备的DDL翻译程序,能把源模式
翻译为目标模式,构成系统的“目标数据库”。目标
数据库通常由一组表格构成。
第6章
数据库技术基础
6.3.3 数据库的二级映像与数据独立性
数据库系统的三级模式是对数据的三个抽象级别,
为了能够在内部实现这3个抽象层次之间的联系和转换,
数据库管理系统在这三级模式之间提供了两层映像,
它们由软件完成,这些软件是DBMS的主要组成部分
之一。正是这两层映像保证了数据库系统中的数据能
够具有较高的逻辑独立性和物理独立性。
第6章
数据库技术基础
1.外模式/模式映像
模式描述的是数据库数据的全局逻辑结构,外模
式描述的是数据的局部逻辑结构。对应于同一个模式
可以有任意多个外模式。对于每一个外模式,数据库
系统都有一个外模
式/模式映像,它定义该外模式与模式之间的对应
关系。这些映像定义通常包含在各自外模式的描述中。
第6章
数据库技术基础
当模式改变时(例如增加新的关系、新的属性、改
变属性的数据类型等),数据库管理员对各个外模式/模
式的映像做相应改变,可以使外模式保持不变。应用
程序是依据数据的外模式编写的,从而应用程序不必
修改,保证了数据与程序的逻辑独立性,简称数据的
逻辑独立性。
第6章
数据库技术基础
2 .模式/内模式映像
数据库中只有一个模式,也只有一个内模式,所
以模式/内模式映像是惟一的,它定义数据库全局逻辑
结构与存储结构之间的对应关系,该映像定义通常包
含在模式描述部分。当数据库的存储结构改变了(例如
选用了另一种存储结构),由数据库管理员对模式/内模
式映像做相应改变,可以使模式保持不变,从而应用
程序也不必改变。保证了数据与应用程序的物理独立
性,简称数据的物理独立性。
第6章
数据库技术基础
在数据库的三级模式结构中,数据库模式即全局
逻辑结构是数据库中的关键,它独立于数据库的其它
层次。因此设计数据库模式结构时应首先确定数据库
的逻辑模式。
数据库的内模式依赖于它的全局逻辑结构,但独
立于数据库的用户视图即外模式,也独立于具体的存
储设备。它是将全局逻辑结构中所定义的数据结构及
其联系按照一定的物理存储策略进行组织,以达到较
好的时间与空间效率。
第6章
数据库技术基础
数据库的外模式面向具体的应用程序,它定义在
逻辑模式之上,但独立于存储模式和存储设备。当应
用需求发生较大变化,相应外模式不能满足其视图要
求时,该外模式就得做相应改动,所以设计外模式时
应充分考虑到应用的扩充性。
特定的应用程序是在外模式描述的数据结构上编
制的,它依赖于特定的外模式,与数据库的模式和存
储结构相独立,不同的应用程序有时可以共用同一个
外模式,数据库的二层映像保证了数据库外模式的稳
定性,从而从底层保证了应用程序的稳定性,除非应
用需求本身发生变化,否则应用程序一般不需要修改。
第6章
数据库技术基础
数据与程序之间的独立性,使得数据的定义和描
述可以从应用程序中分离出去。另外,由于数据的存
取由DBMS管理,用户不需考虑存取路径等细节,从
而简化了应用程序的编制,大大减少了应用程序的维
护和修改。
第6章
数据库技术基础
习
题
1.试述数据、数据库、数据库管理系统、数据库
系统的概念。
2.试述文件系统与数据库系统的区别和联系。
3.试述数据库系统的特点。
4.数据库管理系统的主要功能有哪些?
5.试述数据模型的概念、数据模型的作用和数据
模型的三要素。
第6章
数据库技术基础
6.试述概念模型的作用。
7.解释概念模型中的以下术语:
实体,实体型,实体集,属性,码,联系
8.实体之间的联系有哪几种?分别举例说明。
9.试述关系模型的特点。
10.试述数据库系统的三级模式结构。
11.什么叫数据与程序的物理独立性?什么叫数
据与程序的逻辑独立性?为什么数据库系统具有数据
与程序的独立性?