第 1章 数据库概论本章的重要概念(一)
( 1) DB,DBMS和 DBS的定义
( 2) 数据管理技术的发展阶段人工管理阶段,文件系统阶段,数据库系统阶段和高级数据库技术阶段等各阶段的特点 。
( 3) 数据描述概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述( 1:1,1:N,M:N) 。
本章的重要概念(二)
( 4) 数据模型数据模型的定义,两类数据模型,逻辑模型的形式定义,
ER模型,层次模型,网状模型,关系模型和面向对象模型的数据结构以及联系的实现方式 。
( 5) DB的体系结构三级结构,两级映像,两级数据独立性,体系结构各个层次中记录的联系 。
( 6) DBMS
DBMS的工作模式,主要功能和模块组成 。
( 7) DBS
DBS的组成,DBA,DBS的全局结构,DBS结构的分类。
前言从 20世纪 50年代中期开始,计算机的应用由科学研究部门逐渐扩展到企业、行政部门。至 60年代,
数据处理已成为计算机的主要应用。在 60年代末,
数据库技术作为数据处理中的一门新技术发展起来的。经过 30多年的发展,数据库技术已是计算机软件领域的一个重要分支,形成了较为完整的理论体系和实用技术。本章先回顾数据管理技术的发展过程,然后介绍数据库中的基本概念,以使读者对数据库的概貌有所了解。
1.1 引言
1963年,美国 Honeywell公司的 IDS( Integrated Data Store)
系统投入运行,揭开了数据库技术的序幕。
20世纪 70年代是数据库蓬勃发展的年代,网状系统和层次系统占据了整个数据库商用市场,而关系系统仅处于实验阶段。
20世纪 80年代,关系系统由于使用简便以及硬件性能的改善,
逐步代替网状系统和层次系统占领了市场。
20世纪 90年代,关系数据库已成为数据库技术的主流。
进入 21世纪以后,无论是市场的需求还是技术条件的成熟,
对象数据库技术、网络数据库技术的推广和普及已成定局。
1.1.1 数据和信息
数据,是数据库系统研究和处理的对象。数据与信息十分不开的,它们既有联系又有区别。
所谓数据,通常指用符号记录下来的、可以识别的信息。
信息与数据之间存在着固有的联系:数据是信息的符号表示或称为载体;信息则是数据的内涵,是对数据语义的解释。
1.1.2 数据处理与数据管理
数据处理是指从某些已知的数据出发,推导加工出一些新的数据,这些新的数据又表示了新的信息。
数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。
数据处理是与数据管理相联系的,数据管理技术的优劣,将直接影响数据处理的效率。
1.1.3 数据库技术的基本术语(一)
定义 1.1 数据库( Database,简记为 DB)
DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。 DB能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性等特点。
1.1.3 数据库技术的基本术语(二)
定义 1.2 数据库管理系统( Database Management
System,简记为 DBMS) DBMS是位于用户与操作系统
( OS)之间的一层数据管理软件,它为用户或应用程序提供访问 DB的方法,包括 DB的建立、查询、更新及各种数据控制。 DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型等。
DBMS
OS
DB
用户
1.1.3 数据库技术的基本术语(三)
定义 1.3 数据库系统( Database System,
简记为 DBS) DBS是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。
定义 1.4 数据库技术 是研究数据库的结构、
存储、设计、管理和使用的一门软件学科。
1.2 数据库的由来和发展
磁盘容量的发展
数据管理技术的发展经历了人工管理、文件系统、
数据库阶段和高级数据库阶段。
时间(年) 1956 1965 1971 1978 1981 1985 1995 2003
容量
( MB/轴) 5 30 100 600 1200 5000 10000 180000
1.2.1 人工管理阶段
在人工管理阶段( 20世纪 50年代中期以前),计算机主要用于科学计算,其他工作还没有展开。外部存储器只有磁带、卡片和纸带等,还没有磁盘等字节存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理的方式基本上是批处理。
人工管理阶段的数据管理有下列特点:
① 数据不保存在计算机内。
② 没有专用的软件对数据进行管理。
③ 只有程序( program)的概念,没有文件( file)的概念。
数据的组织方式必须由程序员自行设计与安排。
④ 数据面向程序。即一组数据对应一个程序。
1.2.2 文件系统阶段(一)
在这一阶段( 20世纪 50年代后期至 60年代中期),计算机不仅用于科学计算,还用于信息管理。随着数据量的增加,数据的存储、
检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取存储设备。
软件领域出现了高级语言和操作系统。操作系统中的文件系统是专门管理外存的数据管理软件。数据处理的方式有批处理,也有联机实时处理。
1.2.2 文件系统阶段(二)
文件系统阶段的数据管理有以下特点:
① 数据以“文件”形式可长期保存在外部存储器的磁盘上。
② 数据的逻辑结构与物理结构有了区别,但比较简单。
③ 文件组织已多样化。有索引文件、链接文件和直接存取文件等。
④ 数据不再属于某个特定的程序,可以重复使用,即数据面向应用。
⑤ 对数据的操作以记录为单位。
随着数据管理规模的扩大,数据量急剧增加,文件系统显露出三个缺陷:
① 数据冗余( redundancy)
② 数据不一致( inconsistency)
③ 数据联系弱( poor data relationship)
1.2.3 数据库阶段(一)
数据管理技术进入数据库阶段的标志是 20世纪 60
年代末的三件大事:
① 1968年美国 IBM公司推出层次模型的 IMS系统 。
② 1969年美国 CODASYL组织发布了 DBTG报告,总结了当时各式各样的数据库,提出网状模型。
③ 1970年美国 IBM公司的 E.F.Codd 连续发表论文,
提出关系模型,奠定了关系数据库的理论基础。
1.2.3 数据库阶段(二)
数据库阶段的数据管理具有以下特点:
① 采用数据模型表示复杂的数据结构。
② 有较高的数据独立性。
③ 数据库系统为用户提供了方便的用户接口。
④ 数据库系统提供以下四方面的数据控制功能:
数据库的并发控制,数据库的恢复,数据的完整性和数据安全性。
⑤ 增加了系统的灵活性
1.2.3 数据库阶段(三)
数据库系统的结构数据库整体逻辑结构用户的局部逻辑结构 数据库的物理结构逻辑数据独立性物理数据独立性
1.2.3 数据库阶段(四)
程序和数据间的联系
文件系统阶段信息处理的传统方式应用程序 n
应用程序 1



数据库管理系统 D BMS 数据库输入 程序 输出
1.2.3 数据库阶段(五)
数据库阶段信息处理方式的演变要求报表查询处理程序 报表生成程序数据库应用程序 应用程序输入输出输入输出联机终端
1.2.4 高级数据库技术阶段(一)
分布式数据库系统主要有下面三个特点
① 数据库的数据物理上分布在各个场地,但逻辑上是一个整体。
② 每个场地既可以执行局部应用(访问本地 DB),
也可以执行全局应用(访问异地 DB)。
③ 各地的计算机由数据通信网络相联系。本地计算机单独不能胜任的处理任务,可以通过通信网络取得其它 DB和计算机的支持。
1.2.4 高级数据库技术阶段(二)
分布式数据库系统通信网全局终端 数据库局部处理机 局部处理机局部终端 局部终端数据库 数据库通信网全局终端 数据库局部处理机 局部处理机局部终端 局部终端数据库 数据库局部处理机 局部处理机局部终端 局部终端数据库 数据库
1.2.4 高级数据库技术阶段(三)
对象数据库系统主要有以下两个特点
① 对象数据模型能完整地描述现实世界地数据结构,
能表达数据间嵌套、递归的联系。
② 具有面向对象技术的封装性(把数据与操作定义在一起)和继承性(继承数据结构和操作)的特点,提高了软件的可重用性。
网络数据库系统
1.3 数据描述在数据处理中,数据描述将涉及到不同的范畴。从事物的特性到计算机中的具体表示,
实际上经历了三个阶段 —— 概念设计中的数据描述、逻辑设计中的数据描述和物理设计中的数据描述。本节先介绍这三个阶段的数据描述,再介绍数据之间联系如何描述。
1.3.1 概念设计中的数据描述
实体( entity),客观存在,可以相互区别的事物称为实体。
实体集( entity set),性质相同的同类实体的集合,称为实体集。
属性( attribute),实体有很多特性,每一个特性称为属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。
实体标识符( identifier),能惟一标识实体的属性或属性集,称为实体标识符。有时也称为关键码( key),或简称为键。
1.3.2 逻辑设计中的数据描述(一)
字段( field),标记实体属性的命名单位称为字段,或数据项。它是可以命名的最小信息单位,
所以又称为数据元素或初等项。
记录( record),字段的有序集合称为记录。
文件( file),同一类记录的集合称为文件。
关键码( key),能惟一标识文件中每个记录的字段或字段集,称为记录的关键码(简称为键)。
1.3.2 逻辑设计中的数据描述(二)
术语的对应关系概念设计 逻辑设计实体 ……… 记录属性 ……… 字段(数据项)
实体集 ……… 文件实体标识符 ……… 关键码
1.3.3 物理设计中的数据描述
位( bit,比特),一个二进制位称为“位”。一位只能取 0
或 1两个状态。
字节( byte),8个比特称为一个字节,可以存放一个字符所对应的 ASCII码。
字( word),若干个字节组成一个字。一个字所含的二进制位的位数称为字长。
块( block),又称为物理块或物理记录。块是内存和外存交换信息的最小单位,每块的大小,通常为 210~214字节。
桶( bucket),外存的逻辑单位,一个桶可以包含一个物理块或多个在空间上不一定连续的物理块。
卷( volume),一个输入输出设备所能装载的全部有用信息,称为“卷”。
1.3.4 数据联系的描述(一)
定义 1.5 联系( relationship) 是实体之间的相互关系。
与一个联系有关的实体集个数,称为联系的元数。
定义 1.6 二元联系有以下三种类型:
① 一对一联系,如果实体集 E1中每个实体至多和实体集
E2中的一个实体有联系,反之亦然,那么实体集 E1和
E2的联系称为“一对一联系”,记为,1:1”。
② 一对多联系,如果实体集 E1中每个实体可以与实体集
E2中任意个(零个或多个)实体间有联系,而 E2中每个实体至多和 E1中一个实体有联系,那么称 E1对 E2的联系是“一对多联系”,记为,1:N”。
③ 多对多联系,如果实体集 E1中每个实体可以与实体集
E2中任意个(零个或多个)实体有联系,反之亦然,那么称 E1和 E2的联系是“多对多联系”,记为,M:N”。
1.3.4 数据联系的描述(一)
例 1.1
实体集 E1 实体集 E2
座位
E1
乘客
E2
实体集 E1 实体集 E2
E1 E2
车间 工人实体集 E1 实体集 E2
E1 E2
学生 课程
1.3.4 数据联系的描述(二)
例 1.2
飞机 驾驶员
1 M
P
N
N
航行班次图 1.11 三元联系图 1.12 一元联系零件
1.4 数据模型的定义
定义 1.7 数据模型的简单定义,能表示实体类型及实体间联系的模型称为“数据模型”。概念数据模型和逻辑数据模型。
定义 1.8 逻辑数据模型应包含数据结构、数据操作和数据完整性约束三个部分:
① 数据结构是指对实体类型和实体间联系的表达和实现;
② 数据操作是指对数据库的检索和更新(包括插入、删除和修改)两类操作;
③ 数据完整性约束给出数据及其联系应具有的制约和依赖规则。
1.4.2实体联系模型(一)
定义 1.9,ER图有三个基本成分:
① 矩形框,用于表示实体类型(考虑问题的对象)。
② 菱形框,用于表示联系类型(实体间联系)。
③ 椭圆形框,用于表示实体类型和联系类型的属性。
1.4.2实体联系模型(二)
例 1.3
① 首先确定实体类型。本问题有三个实体类型:零件 PART,工程项目 PROJECT,零件供应商
SUPPLIER。
② 确定联系类型。 PROJECT和 PART之间是 M:N联系,PART和 SUPPLIER之间也是 M:N联系,分别命名为 P_P和 P_S.
③ 把实体类型和联系类型组合成 ER图。
④ 确定实体类型和联系类型的属性。
⑤ 确定实体类型的键,在 ER图中属于码的属性名下画一条横线。
1.4.2实体联系模型(三)
J #
P ROJ ECT
P _ P
JN A M E
DA T E
P #
P NA M E
COL OR
W EI G H T S #
S NA M E
S A DD R
T OT AL QU A NT I T Y
P _ S
P A R T P ROJ ECT
M M NN
图 1.14
1.4.2实体联系模型(四)
例 1.4
M
M N
N
P ROJ ECT
S UPP L IER P A R T
P _ P _ S
P A R T
S UBP A R T
P
1.4.3 层次模型
用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型( hierarchical model)。
层次模型的特点是记录之间的联系通过指针来实现,查询效率较高。与文件系统的数据管理方式相比,层次模型是一个飞跃,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由 DBMS完成。
层次模型有两个缺点:一是只能表示 1:N联系,虽然系统有多种辅助手段实现 M:N联系但较复杂,用户不易掌握;二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。
1.4.4 网状模型
用有向图结构表示实体类型及实体间联系的数据模型称为网状模型( network model)。
网状模型的特点是记录之间联系通过指针实现,M:N联系也容易实现(一个 M:N联系可拆成两个 1:N联系),查询效率较高。
网状模型的缺点是数据结构复杂和编程复杂。
1.4.5关系模型(一)
关系模型( relational model)的主要特征是用二维表格表达实体集。
与前两种模型相比,数据结构简单,容易为初学者理解。
关系模型是由若干个关系模式组成的集合。
关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。
1.4.5关系模型(二)
例 1.7
PART模式 ( P#,PNAME,COLOR,WEIGHT)
PROJECT模式 ( J#,JNAME,DATE)
SUPPLIER模式 ( S#,SNAME,SADDR)
P_P模式 ( J#,P#,TOTAL)
P_S模式 ( P#,S#,QUANTITY)
1.4.5关系模型(三)
100S2P4BEIJIN GFADCS2
300S2P3SHANGH AIPICCS1
150S1P2SADDRSNAMES#
200S2P2SUPPLI ER 关系
100S1P191 - 3JCJ3
QUANTI TYS#P#90.5JBJ2
P_S 关系89.1JAJ1
18P3J1DATEJNAMEJ#
25P3J2PROJEC T 关系
65P2J119REDSCREWP4
6P3J312REDNUTP3
15P2J217GREENBOLTP2
50P1J114BLUESCREWP1
TOTALP#J#WEIGHTCOLORPNAMEP#
P_P 关系PART 关系关系关系关系关系关系
1.4.6 对象模型(一)
对象( object)是现实世界中实体的模型化,
与实体概念相仿,但远比实体复杂。
将属性集和方法集相同的所有对象组合在一起,构成了一个类( class)。
1.4.6 对象模型(二)层次模型 网状模型 关系模型 面向对象模型创始 1968年 IBM公司的IMS系统
1969年 CODASYL的
DBTG报告 (71年通过 )
1970年 F.Codd提出关系模型 20世纪 80年代数据结构 复杂(树结构) 复杂(有向图结构) 简单(二维表) 复杂(嵌套递归)
数据联系 通过指针 通过指针 通过表间的公共 属性 通过对象标识查询语言 过程性语言 过程性语言 非过程性语言 面向对象语言典型产品 IMS
IDS/Ⅱ
IMAGE/3000
IDMS
TOTAL
Oracle
Sybase
DB2
SQL Server
Informix
ONTOS DB
盛行期 20世纪 70年代 70年代至 80年代中期 80年代至现在 90年代至现在
1.5.1 数据库的三级体系结构(一)
外部级(单个用户的视图)
概念级(全局视图)
内部级(存储视图)
用户的局部逻辑结构数据库的整体逻辑结构数据库的物理结构


1.5.1 数据库的三级体系结构(二)
数据的三级抽象术语数据模型 用数据定义语言 描述的称呼 DBTG报告中的称呼外部级 外模型 外模式 子模式概念级 概念模型 概念模式 模式内部级 内模型 内模式 物理模式
1.5.1 数据库的三级体系结构(三)
主语言
+ DML
用户 A1 用户 A2 用户 B1 用户 B2 用户 B3
主语言
+ DML
主语言
+ DML
主语言
+ DML
主语言
+ DML
外模式 A 外模式 B
概念模式内模式数据库管理系统外模式/模式映象 A
模式/内模式映象外模式/模式映象 B
OS
数据库由数据库管理员建立和维护
1.5.2 体系结构中的五个要素
定义 1.10 概念模式( conceptnal schema)是数据库中全部数据的整体逻辑结构的描述。
定义 1.11 外模式( external schema)是用户与数据库系统的接口,是用户用到的那部分数据的描述。
定义 1.12 内模式( internal schema)是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。
定义 1.13 模式/内模式映象存在于概念级和内部级之间,用于定义概念模式和内模式之间的对应性。
定义 1.14 外模式/模式映象存在于外部级和概念级之间,用于定义外模式和概念模式之间的对应性。
1.5.3 两级数据独立性
定义 1.15 数据独立性( data independence)
是指应用程序和数据库的数据结构之间相互独立,不受影响。
数据独立性分成物理数据独立性和逻辑数据独立性两个级别。
1.5.4 用户与用户界面
定义 1.16 用户是指使用数据库的应用程序或联机终端用户。
定义 1.17 用户界面是用户和数据库系统之间的一条分界线,在界限下面,用户是不可知的。用户界面定在外部级上,用户对于外模式是可知的。
1.6.1 DBMS的工作模式(一)
① 接受应用程序的数据请求和处理请求
② 将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令)
③ 实现对数据库的操作
④ 从对数据库的操作中接受查询结果
⑤ 对查询结果进行处理(格式转换)
⑥ 将处理结果返回给用户应用程序
DBMS
DB
数据请求 低层指令数据
(处理结果)
数据
(查询结果)
1.6.1 DBMS的工作模式(二)
应用程序
DB 的系统缓冲区外模式模式内模式
DB
OS
DBMS 数据字典
用户访问数据的过程
1.6.2 DBMS的主要功能
① 数据库的定义功能
② 数据库的操纵功能
③ 数据库的保护功能
④ 数据库的维护功能
⑤ 数据字典
1.6.3 DBMS的模块组成
查询处理器有四个主要成分,DDL编译器,
DML编译器,嵌入式 DML的预编译器及查询运行核心程序。
存储管理器有四个主要成分:权限和完整性管理器,事务管理器,文件管理器及缓冲区管理器。
1.7.1 DBS的组成(一)
DBS是采用了数据库技术的计算机系统。 DBS是一个实际可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件、
软件和数据库管理员的集合体。
DB是与一个企业组织各项应用有关的全部数据的集合。
定义 1.18 DBA是控制数据整体结构的一组人员,
负责 DBS的正常运行,承担创建、监控和维护数据库结构的责任。
1.7.1 DBS的组成(二)
DBA的主要职责有以下六点:
① 定义模式
② 定义内模式
③ 与用户的联络。包括定义外模式、应用程序的设计、提供技术培训等专业服务。
④ 定义安全性规则,对用户访问数据库的授权。
⑤ 定义完整性规则,监督数据库的运行。
⑥ 数据库的转储与恢复工作。
1.7.2 DBS的全局结构(一)
初级用户 应用程序员 专业用户 DBA
应用界面 数据库模式查询应用程序用户界面查询处理器存储管理器嵌入型 DML
预编译器
DML
编译器
DDL
编译器查询运行核心程序权限和完整性管理器事务管理器缓冲区管理器文件管理器数据库管理系统索引 统计数据数据文件 日志 数据字典磁盘存储器应用程序目标码
1.7.2 DBS的全局结构(二)
数据库用户
DBMS的查询处理器
DBMS的存储管理器
磁盘存储器中的数据结构
1.7.3 DBS结构的分类
集中式 DBS( centralized DBS)
客户机/服务器式 DBS( client/server DBS,
记为 C/S DBS)
并行式 DBS( parallel DBS)
分布式 DBS( distributed DBS)
1.7.4 DBS的效益
① 灵活性
② 简易性
③ 面向用户
④ 有效的数据控制
⑤ 加快应用系统的开发速度
⑥ 维护方便
⑦ 标准化小 结(一)
数据管理技术经历了人工管理、文件系统、
数据库和高级数据库技术等四个阶段。数据库系统是在文件系统的基础上发展而成的,
同时又克服了文件系统的三个缺陷:数据的冗余、不一致性和联系弱。
在数据库领域,应该准确使用术语,深刻了解实体间 1:1,1:N和 M:M三种联系的意义。
小 结(二)
数据模型是对现实世界进行抽象的工具,用于描述现实世界的数据、数据联系、数据语义和数据约束等方面内容。数据模型分成概念模型和结构模型两大类。前者的代表是实体联系模型,后者的代表是层次、网状、关系和面向对象模型。关系模型是当今的主流模型,面向对象模型是今后发展的方向。
小 结(三)
数据库是存储在一起集中管理的相关数据的集合。数据库的体系结构是对数据的三个抽象级别。它把数据的具体组织留给 DBMS去做,用户只需抽象地处理逻辑数据,而不必关心数据在计算机中的存储,减轻了用户使用系统的负担。由于三级结构之间往往差别很大,存在着两级映象,因此使 DBS具有较高的数据独立性:物理数据独立性和逻辑数据独立性。
小 结(四)
数据独立性是指在某个层次上修改模式而不影响较高一层模式的能力。
DBMS是位于用户与 OS之间的一层数据管理软件。数据库语言分成 DDL和 DML两类。
DBMS主要由查询处理器和存储管理器两大部分组成。
DBS是包含 DB和 DBMS的计算机系统。 DBS
的全局结构体现了 DBS的模块功能结构。
本章的重点篇幅
( 1) 教材 P23的图 1.24( 四种逻辑数据模型的比较 ) 。
( 2) 教材 P25的图 1.27( DB的体系结构 ) 。
( 3) 教材 P29的图 1.29( DBMS的工作模式 ) 。
( 4)教材 P34的图 1.31( DBS的全局结构)。