1、第 1 章 数据库系统概述当今时代是信息技术飞速发展的时代。而作为信息技术主要支柱之一的数据库技术在社会各个领域中有着广泛的应用。对信息进行收集、组织、存储、加工、传播、管理和使用都以数据库为基础,利用数据库可以为各种用户提供及时的、准确的、相关的信息,满足这些用户的各种不同的需要。数据库技术研究的问题是:如何科学地组织和存储数据,如何高效地获取和处理数据,如何更广泛、更安全地1. 1 信息、数据和数据处理理解信息、数据、数据库之间的关系。1 信息 1)定义:信息是关于现实世界事物的存在方式或运动状态的反映的综合,具体说是一种被加工为特定形式的数据,但这种数据形式对接收者来说是有意义的,而且对
2、当前和将来的决策具有明显的或实际的价值。如:“2000 年硕士研究生将扩招 30%”,对接受者有意义,使接受者据此作出决策。共享数据。2) 信息的特征如信息可以通过报纸、电台、电视、计算机网络进行传递。信息是可以感知的,人类对客观事物的感知,可以通过感觉器官,也可以通过各种仪器仪表和传感器等,不同的信息源有不同的感知形式。如报纸上刊登的信息通过视觉器官感知,电台中广播的信息通过听觉器官感知。信息是可存储、加工、传递和再生的。动物用大脑存储信息,叫做记忆。计算机存储器、录音、录像等技术的发展,进一步扩大了信息存储的范围。借助计算机,还可对收集到的信息进行取舍整理。1. 数据的定义数据是用来记录信
3、息的可识别的符号,是信息的具体表现形式。2. 数据的表现形式可用多种不同的数据形式表示同一信息,而信息不随数据形式的不同而改变。如“2000 年硕士研究生将扩招 30%”,其中的数据可改为汉字形式 “两千年”、 “百分之三十”。数据的概念在数据处理领域中已大大地拓宽了,其表现形式不仅包括数字和文字,还包括图形、图象、声音等。这些数据可以记录在纸上,也可记录在各种存储器中。 数据包括数字、文字、声音、图形、图像等 用数据描述的现实世界中的对象可以是实在的事物,如描述一个学生的情况可用学号、姓名、性别、年龄、系别、入学时间等,则可以这样描述: (80102、赵文、男、22、计算机系、2003)这里
4、的学生记录就是数据。 数据是信息的符号表示或载体,信息则是数据的内涵,是对数据的语义解释。如上例中的数据 2000、30%被赋予了特定的语义,它们就具有了传递信息的功能。3. 数据处理数据处理是将数据转换成信息的过程,包括对数据的收集、存储、加工、检索、传输等一系列活动。其目的是从大量的原始数据中抽取和推导出有价值的信息,作为决策的依据。可用下式简单的表示信息、数据与数据处理的关系:信息=数据+数据处理数据是原料,是输入,而信息是产出,是输出结果。 “信息处理”的真正含义应该是为了产生信息而处理数据。1.2.2 数据库(DataBase,简称 DB) 数据库是长期存储在计算机内有组织的共享的数
5、据的集合。数据库中的数据按一定的数据模型组织、描述和储存。数据库特点: 集成性 共享性 1.2 数据库技术的发展随着计算机硬件和软件的发展,计算机数据管理方法至今大致经历了四个阶段:人工管理阶段、文件系统阶段、数据库系统阶段和高级数据库阶段1.2.1 人工管理阶段这个阶段数据管理的特点如下 : 数据不保存 系统没有专用的软件对数据进行管理 数据不共享 数据不具有独立性 程序与数据之间的关系可用图 1-1 表示 :1.2.2 文件系统阶段 用文件系统管理数据的特点如下: 数据以文件形式可长期保存下来 文件系统可对数据的存取进行管理 文件组织多样化 程序与数据之间有一定独立性 与人工管理阶段相比,
6、文件系统阶段对数据的管理有了很大的进步,但一些根本性问题仍没有彻底解决,主要表现在以下三方面:例 1.1】某学校利用计算机对教职工的基本情况进行管理,各部门分别建立三个文件:职工档案文件、职工工资文件和职工保险文件。每一职工的电话号码在这三个文件中重复出现,这就是“数据冗余” 。若某职工的电话号码需要修改,就要修改这三个文件中的数据,否则会引起同一数据在三个文件中不一样;产生的原因主要是三个文件中数据没有联系。1.2.3 数据库系统阶段 数据库系统管理数据的特点如下: 数据结构化 数据结构化是数据库与文件系统的根本区别。 【例 1.2】要建立学生成绩管理系统,系统包含学生(学号、姓名、性别、系
7、别、年龄) 、课程(课程号、课程名) 、成绩(学号、课程号、成绩)等数据,分别对应三个文件。 数据共享性高、冗余少,易扩充 数据独立性高 数据的独立性是指数据的逻辑独立性和数据的物理独立性。 有统一的数据控制功能 数据库管理系统提供四方面的数据控制功能 : 数据的安全性( security)控制 数据的完整性 (integrity)控制 并发( concurrency)控制 数据恢复( recovery)数据库系统阶段,程序与数据之间的关系可用图 1-3表示。 1.3 数据库管理系统(DataBase Management System,简称 DBMS) 数据库管理系统是位于用户与操作系统之间
8、的一层数据管理软件,它是数据库系统的核心组成部分 。它的主要功能有以下几个方面: 数据定义 数据操纵 数据库运行管理 数据库的建立和维护功能 数据通信 1.2.4 数据库系统(DataBase System,简称 DBS) 数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具) 、应用系统、数据库管理员和用户构成(见图 1-5) 。 1.2.5 用户(User) 用户是指使用数据库的人,即对数据库的存储、维护和检索等操作。用户大致可分为终端用户、应用程序员和数据库管理员。1.终端用户(End User )主要是使用数据库的各级管理人员、工程技术人员、科研人
9、员,一般为非计算机专业人员2.应用程序员(Application Programmer)负责为终端用户设计和编制应用程序,以便终端用户对数据库进行存取操作。3.数据库管理员(DadaBase Administrator,简称 DBA)DBA 是数据库所属单位的代表。 1.3 数据模型 数据模型(Data Model) 是专门用来抽象、表示和处理现实世界中的数据和信息的工具。 数据模型应满足三方面要求:一是能比较真实地模拟现实世界;二是容易理解;三是易在计算机上实现。 数据模型是数据库系统的核心1.3.1 概念模型为了把现实世界中的具体事物抽象、组织为某一 DBMS 支持的数据模型,在实际的数据
10、处理过程中,首先将现实世界的事物及联系抽象成信息世界的信息模 型,然后再抽象成计算机世界的数据模型。信息模型并不依赖于具体的计算机系统,不是某一个 DBMS 所支持的数据模型,它是计算机内部数据的抽象表示,是概念模型;概念模型经过抽象,转换成计算机上某一 DBMS 支持的数据模型。在数据处理中,数据加工经历了现实世界、信息世界和计算机世界三个不同的世界,经历了两级抽象和转换。这一过程如图 1.6 所示。 1.概念模型中的基本概念 实体(entity) 实体是一个数据对象,指应用中可以区别的客观存在的事物。属性(attribute) 实体所具有的某一特性成为属性。实体集(entity set )
11、所有属性名完全相同的同类实体的集合,称为实体集。码(Key)能惟一标识实体的属性或属性集,称为码,有时也称为实体标识符,或简称为键。域(Domain)属性的取值范围称为该属性的域(值域)实体型(Entity Type)实体集的名及其所有属性名的集合,称为实体型。 2概念模型中实体的联系(Relationship) 在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。 两个实体集之间的联系可归纳为以下三类一对一联系(1:1)如果对于实体集
12、E1 中的每个实体,实体集 E2 至多有一个(也可没有)实体与之联系,反之亦然,那么实体集 E1 和 E2 的联系称为“一对一联系”,记为“1:1” (见图 1-7 所示) 。图 17 两个实体集之间的联系一对多联系(1:n)如果实体集 E1 中每个实体可以与实体集 E2 中任意个(零个或多个)实体间有联系,而E2 中每个实体至多和 E1 中一个实体有联系,那么称 E1 对 E2 的联系是“一对多联系”,记为“1:n”(见图 1-8 所示) 。 多对多联系(m:n)如果实体集 E1 中每个实体可以与实体集 E2 中任意个(零个或多个)实体有联系,反之亦然,那么称 E1 和 E2 的联系是“多对
13、多联系” ,记为“m:n”(见图 1-9 所示)。 3概念模型的表示方法概念模型的表示方法很多,其中广泛被采用的是实体联系模型(EntityRelationship Model)。它是由 Peter Chen 于 1976 年在题为“实体联系模型:将来的数据视图” 论文中提出的,简称为 E-R 模型。E-R 模型的要素 E-R 模型的主要的元素是:实体集、属性、联系集,其表示方法如下: 实体用方框表示,方框内注明实体的命名。 属性用椭圆形框表示,框内写上属性名,并用无向连线与其实体集相连,加下画线的属性为标识符。 联系用菱形框表示,并用线段将其与相关的实体连接起来,并在连线上标明联系的类型,即
14、 1:1、1:n、m:n。 因此,E-R 模型也称为 E-R 图。E-R 图(E-R diagram)是用来描述实体集、属性和联系的图形。图中每种元素都用结点表示。用实线来连接实体集与它的属性以及联系与它的实体集。【例 1.4】 图 1-12 是一个 E-R 图,表示一个简单的电影数据库。实体集是电影、影星和制片公司。电影实体集有三个属性:电影名、电影制作日期、片长。另外两个实体集影星和制片公司正好有两个相同的属性:名称和地址。图中还有两个联系:签约是电影及其影星的联系。因此这也是影星及其参演电影的联系。拥有是电影及其所属电影公司的联系 建立 E-R 图建立 E-R 图的步骤: 确定实体和实体
15、的属性; 确定实体和实体之间的联系及联系的类型; 给实体和联系加上属性。注: 如何划分实体及其属性有两个原则可参考:一是属性不再具有需要描述的性质。属性在含义上是不可分的数据项。二是属性不能再与其他实体集具有联系,即 E-R 模型指定联系只能是实体集间的联系。 例如,教师是一个实体集,可以有教师编号、姓名、性别等属性,工资若没有进一步描述的特性,则工资可作为教师的一个属性。但若涉及到工资的详细情况,如基本工资、各种补贴、各种扣除时,它就成为一个实体集。如图 1-15 所示。 1.3.2 数据模型 1. 数据模型的组成要素 数据模型是数据库系统的核心和基础,任何 DBMS 都支持一种数据模型。数
16、据模型通常由数据结构、数据操作和完整性约束三部分组成。 数据结构 数据结构描述了系统的静态特性,是数据模型本质的内容。 数据操作数据操作描述了系统的动态特性。 数据的约束条件 数据的约束条件是一组完整性规则的集合。2. 最常用的数据模型 目前,数据库领域中最常用的数据模型有四种,它们是:层次模型(Hierarchical Model)l 网状模型(Network Model)关系模型(Relational Model)面向对象模型(Object Oriented Model) 其中,前两类模型称为非关系模型1.3.3 层次模型 层次模型是数据库系统中最早出现的数据模型,典型的层次模型系统是美国
17、 IBM 公司于1968 年推出的 IMS(Information Management System)数据库管理系统,这个系统在 20世纪 70 年代在商业上得到广泛应用。其数据库模型如图 1-16 所示。 1. 层次模型的数据结构 树的结点是记录类型,有且仅有一个结点无父结点,这样的结点称为根结点,每个非根节点有且只有一个父结点。在层次模型中,一个结点可以有几个子结点,也可以没有子结点。前一种情况下,这几个子结点称为兄弟结点,如图 1-16 中的专业和教研室;后一种情况下,该结点称为叶结点,如图 1-16 中的学生和教师。图 1-17 是图 1-16 数据模型的一个实例。它是计算机系记录值
18、及其所有的后代记录值组成的一棵树。 层次模型的数据结构的特点: 有且仅有一个结点没有双亲,该结点称为根结点; 除根结点以外的其他结点有且仅有一个双亲结点,这就使得层次数据库系统只能直接处理一对多的实体关系; 任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。2. 层次模型的数据操作与数据完整性约束层次模型的数据操作的最大特点是必须从根结点入手,按层次顺序访问。层次模型的数据操作主要有查询、插入、删除和修改,进行插入、删除和修改操作时要满足层次模型的完整性约束条件。 3. 层次模型的优缺点 层次模型的优点主要有: 层次数据模型本身比较简
19、单,只需很少几条命令就能操纵数据库,比较容易使用。 结构清晰,结点间联系简单,只要知道每个结点的双亲结点,就可知道整个模型结构。现实世界中许多实体间的联系本来就呈现出一种很自然的层次关系。 它提供了良好的数据完整性支持。 对于实体间联系是固定的,且预先定义好的应用系统,采用层次模型实现,其性能优于关系模型,不低于网状模型。层次模型的缺点主要有: 层次模型不能直接表示两个以上的实体型间的复杂的联系和实体型间的多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决,易产生不一致性。 对数据的插入和删除的操作限制太多。 查询子女结点必须通过双亲结点。 由于结构严密,层次命令趋于程序化。1.3.4
20、 网状模型 用有向图结构表示实体类型及实体间联系的数据模型成为网状模型(Network Model)。1969年,CODASYL 组织提出 DBTG 报告中的数据模型是网状模型的主要代表。1.网状模型的数据结构 网状模型的特点: 有一个以上的结点没有双亲; 至少有一个结点可以有多于一个双亲。即允许两个或两个以上的结点没有双亲结点,允许某个结点有多个双亲结点,则此时有向树变成了有向图,该有向图描述了网状模型。 网状模型中每个结点表示一个记录型(实体) ,每个记录型可包含若干个字段(实体的属性) ,结点间的连线表示记录类型(实体)间的父子关系,箭头表示从箭尾的记录类型到箭头的记录类型间联系是 1:
21、n 联系。如:学生和教师间的关系。一个学生可以有多个老师任教,一个老师可以教多个学生。如图 1-18 所示 2. 网状模型的数据操纵与完整性约束 网状模型的数据操纵主要包括查询、插入、删除和修改数据。它没有像层次数据库那样有严格的完整性约束条件,只提供一定的完整性约束,主要有: 支持记录码的概念,码是唯一标识记录的数据项的集合。如学生记录中学号是码,因此数据库中不允许学生记录中学号出现重复值。 保证一个联系中双亲记录和子女记录之间是一对多的联系。 可以支持双亲记录和子女记录之间某些约束条件。如有些子女记录要求双亲记录存在才能插入,双亲记录删除时也连同删除。 3. 网状模型的优缺点 网状模型的优
22、点主要有: 能更为直接地描述客观世界,可表示实体间的多种复杂联系,如一个结点可以有多个双亲。 具有良好的性能,存储效率较高。网状模型的缺点主要有: 结构复杂,而且随着应用环境的扩大,数据库的结构变得越来越复杂,不利于最终用户掌握。 其 DDL、DML 语言极其复杂,用户不容易使用。 数据独立性差,由于实体间的联系本质上是通过存取路径表示的,因此应用程序在访问数据时要指定存取路径。 1.3.5 关系模型 关系模型是目前最常用的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。1970 年,美国 IBM 公司的研究员 E.F.Codd 首次提出了数据系统的关系数据模型,标志着数据库系统新
23、时代的来临,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。由于 E.F.Codd 的杰出工作,他于 1981 年荣获 ACM 图灵奖。1980 年后,各种关系数据库管理系统的产品迅速出现,如Oracle、Ingress、Sybase、Informix 等,关系数据库系统统治了数据库市场,数据库的应用领域迅速扩大。 与层次模型和网状模型相比,关系模型的概念简单、清晰,并且具有严格的数据基础,形成了关系数据理论,操作也直观、容易,因此易学易用。无论是数据库的设计和建立,还是数据库的使用和维护,都比非关系模型时代简便得多。与其他的数据模型相同,关系模型也是由数据结构、数据操作
24、和完整性约束三部分组成。1. 数据结构 在关系模型中,数据的逻辑结构是关系。关系可形象地用二维表表示,它由行和列组成。现以职工表(图 1-19 所示)为例,介绍关系模型中的一些术语关系(Relation):一个关系可用一个表来表示,常称为表,如图 1-19 中的这张职工表。每个关系(表)都有与其它关系(表)不同的名称。元组(Tuple):表中的一行数据总称为一个元组。一个元组即为一个实体的所有属性值的总称。一个关系中不能有两个完全相同的元组。属性(Attribute):表中的每一列即为一个属性。每个属性都有一个属性名,在每一列的首行现实。一个关系中不能有两个同名属性。如图 1-19 的表有五列
25、,对应五个属性(员工编号,性命,年龄,性别,部门号) 。域(Domain):一个属性的取值范围就是该属性的域。如职工的年龄属性域为 2 位整数(18-70),性别的域为(男,女)等。 分量(Component):一个元组在一个属性上的值称为该元组在此属性上的分量。主码(Key):表中的某个属性组,它可以唯一确定一个元组,如图 1-19 中的职工编号,可以唯一确定一个职工关系模式:一个关系的关系名及其全部属性名的集合简称为该关系的关系模式。一般表示为:关系名(属性 1,属性 2,属性 n)关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件,这些规范条件是:l 关系中的每一列都必须是
26、不可分的基本数据项,即不允许表中还有表。l 属性间的顺序、元组间的顺序是无关紧要的。2. 数据操作 系数据模型的操作主要包括查询、插入、删除和修改数据。它的特点在于:操作对象和操作结果都是关系,即关系模型中的操作是集合操作。它是若干元组的集合,而不像非关系模型中那样是单记录的操作方式。关系模型中,存取路径对用户是隐藏的。用户只要指出“干什么”或“找什么”,不必详细说明“怎么干”或“ 怎么找”,从而方便了用户,提高了数据的独立性。 ,也就成为本关系的主码。3. 完整性约束完整性约束是一组完整的数据约束规则,它规定了数据模型中的数据必须符合的条件,对数据作任何操作时都必须保证制。关系的完整性约束条
27、件包括三大类:实体完整性、参照完整性和用户定义的完整性。其具体含义在后面介绍。 4. 关系模型的存储结构关系模型的数据独立性最高,用户基本上不能干预物理存储。在关系模型中,实体及实体间的联系都用表来表示。在数据库的物理组织中,表以文件的形式存储,有的系统一个表对应于一个操作系统文件,有的系统一个数据库中所有的表对应于一个或多个操作系统文件,有的系统自己设计文件结构。1.4 数据库系统的结构 可以从多种不同的角度考查数据库系统的结构。从数据库管理系统的角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的体系结构。从数据库最终用户的角度看,数据库系统的结构分为集中式结构、分布式结构和客户机
28、/服务器结构,这是数据库系统外部的体系结构。 1.4.1 数据库系统的三级模式结构 各实际的数据库管理系统虽然使用的环境不同,内部数据的存储结构不同,使用的语言也不同,但对数据,一般都采用三级模式结构。 1. 数据模式(Data Schema) 在数据模型中有“型”(Type)和“值”(Value)的概念。型是对某一类数据的结构和属性的说明,值是型的一个具体赋值。例如:学生记录定义为(学号、姓名、性别、系别、年龄) ,称为记录型,而(001101,张立,男,计算机,20)则是该记录型的一个记录值模式(Schema)是数据库中全体数据的逻辑结构和特征的描述。它仅仅涉及到型的描述,不涉及到具体的值
29、。某数据模式下的一组具体的数据值称为数据模式的一个实例 。2. 数据库系统的三级模式结构 通常 DBMS 把数据库从逻辑上分为三级,即外模式、模式和内模式,它们分别反映了看待数据库的三个角度。为了支持三级模式,DBMS 必须提供在这三级模式之间的两级映象:即外模式/模式映象与模式/内模式映象。 模式(Schema) 模式也称概念模式(Conceptual Schema) 或概念视图,是数据库中全体数据的逻辑结构和特征的描述 。一个数据库只有一个模式。 DBMS 提供模式描述语言(模式 DDL)来严格地定义模式。 外模式(External Schema) 外模式又称子模式(Subschema)或
30、用户模式或外视图,是三级结构的最外层,也是最靠近用户的一层,反映数据库用户看待数据库的方式,是模式的某一部分的抽象表示。 它是数据库用户看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。 DBMS 提供子模式描述语言(子模式 DDL)来定义子模式。 内模式(Internal Schema) 内模式又称为存储模式(Storage Schema)或内视图,是三级结构中的最内层,也是靠近物理存储的一层,即与实际存储数据方式有关的一层,由多个存储记录组成,但并非物理层,不必关心具体的存储位置。内模式
31、是整个数据库实际存储的表示,而概念模式是整个数据库实际存储的抽象表示,外模式是概念模式的某一部分的抽象表示。 三级结构的优点 l 保证数据的独立性。将外模式和模式分开,保证了数据的逻辑独立性;将模式和内模式分开,保证了数据的物理独立性。 l 有利于数据共享。在不同的外模式下可有多个用户共享系统中数据,减少了数据冗余。l 简化了用户接口。按照外模式编写应用程序或敲入命令,而不需了解数据库内部的存储结构,方便用户使用系统。l 利于数据的安全保密。在外模式下根据要求进行操作,不能对限定的数据操作,保证了其他数据的安全。1.4.2 数据库系统的二级映象 1. 外模式/模式映象 外模式描述的是数据的局部逻辑结构,而模式描述的是数据的全局逻辑结构。数据库中的同一模式可以有任意多个外模式,对于每一个外模式,都存在一个外模式/模式映象。 它确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系。2. 模式/内模式映象数据库中的模式和内模式都只有一个,所以模式/内模式映象是唯一的。它确定了数据的全局逻辑结构与存储结构之间的对应关系。