-
第一章绪论
本章介绍数据库系统的基本概念,包括数据管理技术的发展过程、数据库系统的组成部分等。读者从中可以学习到为什么要使用数据库技术、数据库技术的重要性。本章是后面各章节的准备和基础。
-
●1.1数据库系统概述
在系统地介绍数据库的基本概念之前,这里首先介绍一些数据库最常用的术语和基本概念。
-
●1.2数据模型
数据模型(data model)是对现实世界数据特征的抽象,是用来描述数据、组织数据和对数据进行操作的。由于计算机不可能直接处理现实世界中的具体事物,所以人们必须事先把具体事物转换成计算机能够处理的数据,也就是首先要数字化,把现实世界中具体的人、物、活动、概念用数据模型这个工具来抽象、表示和处理。通俗地讲,数据模型就是现实世界的模拟。现有的数据库系统均是基于某种数据模型的。数据模型是数据库系统的核心和基础。因此,了解数据模型的基本概念是学习数据库的基础。
-
●1.3数据库系统的结构
考察数据库系统的结构可以有多种不同的层次或不同的角度。从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的系统结构。从数据库最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户-服务器、浏览器-应用服务器/数据库服务器多层结构等。这是数据库系统外部的体系结构。本节介绍数据库系统的模式结构。
-
●1.4数据库系统的组成
本节介绍数据库系统一般由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员构成。
-
第二章关系数据库
关系数据库应用数学方法来处理数据库中的数据。最早将这类方法用于数据处理的是1962年 CODASYL 发表的“信息代数”,之后有1968年 David Child在 IBM 7090机上实现的集合论数据结构,但系统、严格地提出关系模型的是美国IBM公司的E.F.Codd。1970年,E.F.Codd在美国计算机学会会刊《Communications of the ACM》上发表了题为“A Relational Model of Data for Shared Data Banks”的论文,开创了数据库系统的新纪元。ACM 1983年把这篇论文列为从1958年以来的四分之一世纪中具有里程碑意义的25篇研究论文之一。此后,E.F.Codd连续发表了多篇论文,奠定了关系数据库的理论基础。20世纪70年代末,关系方法的理论研究和软件系统的研制均取得了丰硕的成果,IBM公司的San Jose实验室在 IBM 370系列机上研制的关系数据库实验系统System R历时6年获得成功。1981年,IBM公司又宣布了具有System R全部特征的新的数据库软件产品SQL/DS问世。与System R同期,美国加州大学伯克利分校也研制了INGRES关系数据库实验系统,并由INGRES公司发展成为INGRES 数据库产品。40多年来,关系数据库系统的研究和开发取得了辉煌的成就。关系数据库系统从实验室走向了社会,成为最重要、应用最广泛的数据库系统,大大促进了数据库应用领域的扩大和深入。
-
●2.1关系数据结构及形式化定义
关系数据库系统是支持关系模型的数据库系统。按照数据模型的三个要素,关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
-
●2.2关系操作
关系模型给出了关系操作的能力的说明,但不对关系数据库管理系统语言给出具体的语法要求,也就是说不同的关系数据库管理系统可以定义和开发不同的语言来实现这些操作。
-
●2.3关系的完整性
关系模型的完整性规则是对关系的某种约束条件。也就是说关系的值随着时间变化时应该满足一些约束条件。这些约束条件实际上是现实世界的要求。任何关系在任何时刻都要满足这些语义约束。关系模型中有三类完整性约束:实体完整性(entity integrity)、参照完整性(referential integrity)和用户定义的完整性 (user-defined integrity)。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。
-
●2.4关系代数
关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。
-
第三章关系数据库标准语言SQL
结构化查询语言(Structured Query Language,SQL)是关系数据库的标准语言,也是一个通用的、功能极强的关系数据库语言。其功能不仅仅是查询,而是包括数据库模式创建、数据库数据的插入与修改、数据库安全性完整性定义与控制等一系列功能。本章详细介绍 SQL的基本功能,并进一步讲述关系数据库的基本概念。
-
●3.1SQL 概述
自SQL成为国际标准语言以后,各个数据库厂家纷纷推出各自的SQL 软件或与SQL 的接口软件。这就使大多数数据库均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。SQL已成为数据库领域中的主流语言,其意义十分重大。有人把确立SQL为关系数据库语言标准及其后的发展称为是一场革命。
-
●3.2数据定义
关系数据库系统支持三级模式结构,其模式、外模式和内模式中的基本对象有模式、表、视图和索引等。因此SQL的数据定义功能包括模式定义、表定义、视图和索引的定义。本节介绍如何定义模式、基本表和索引,视图的概念及其定义方法将在3.6节专门讨论。
-
●3.3数据查询
数据查询是数据库的核心操作。SQL提供了SELECT语句进行数据查询,该语句具有灵活的使用方式和丰富的功能。
-
●3.4数据更新
数据更新操作有三种:向表中添加若干行数据、修改表中的数据和删除表中的若干行数据。
-
●3.5空值的处理
所谓空值就是“不知道”或“不存在”或“无意义”的值。SQL语言中允许某些元组的某些属性在一定情况下取空值。
-
●3.6视图
视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以一旦基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。本节专门讨论视图的定义、操作及作用。
-
第四章数据库安全性
数据库的特点之一是由数据库管理系统提供统一的数据保护功能来保证数据的安全可靠和正确有效。数据库的数据保护主要包括数据的安全性和完整性。本章主要介绍数据库的安全性。
-
●4.1数据库安全性概述
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。安全性问题不是数据库系统所独有的,所有计算机系统都存在不安全因素,只是在数据库系统中由于大量数据集中存放,而且为众多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施是否有效是数据库系统的主要技术指标之一。
-
●4.2数据库安全性控制
本节介绍用于数据库安全保护的用户身份鉴别、存取控制等重要技术。
-
●4.3视图机制和审计
本节介绍如何通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定程度的安全保护。审计(audit)功能是数据库管理系统达到C2以上安全级别必不可少的一项指标。
-
●4.4数据加密
对于高度敏感性数据,例如财务数据、军事数据、国家机密数据等,除前面介绍的安全性措施外,还可以采用数据加密技术。数据加密是防止数据库数据在存储和传输中失密的有效手段。数据加密主要包括存储加密和传输加密。
-
第五章数据库完整性
数据库的完整性(integrity)是指数据的正确性(correctness)和相容性(compat- ability)。 数据的正确性是指数据是符合现实世界语义、反映当前实际状况的; 数据的相容性是指数据库同一对象在不同关系表中的数据是符合逻辑的。数据的完整性和安全性是两个既有联系又不尽相同的概念。数据的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。数据的安全性是保护数据库防止恶意破坏和非法存取。因此,完整性检查和控制的防范对象是不合语义的、不正确的数据,防止它们进入数据库。安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取。第2章关系的完整性已经讲解了关系数据库三类完整性约束的基本概念,本章将介绍SQL语言中实现这些完整性控制功能的方法。
-
●5.1实体完整性
本节主要介绍定义实体完整性、实体完整性检查和违约处理三部分内容。
-
●5.2参照完整性
本节主要介绍定义参照完整性、参照完整性检查和违约处理三部分内容。
-
●5.3用户定义的完整性和约束命名子句
用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求。SQL 在CREATE TABLE语句中提供了完整性约束命名子句CONSTRAINT,用来对完整性约束条件命名,从而可以灵活地增加、删除一个完整性约束条件。
-
●5.4触发器
触发器(trigger)是用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义,触发器将被保存在数据库服务器中。任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在关系数据库管理系统核心层进行集中的完整性控制。触发器类似于约束,但是比约束更加灵活,可以实施更为复杂的检查和操作,具有更精细和更强大的数据控制能力。
-
第六章关系数据理论
本章讨论关系数据理论。
-
●6.1问题的提出
本节从数据库逻辑设计中如何构造一个好的数据库模式这一问题出发,阐明了关系规范化理论研究的实际背景。
-
●6.2规范化
本节介绍规范化理论,讨论各种范式及可能存在的插入、删除等问题,并直观地描述解决办法。
-
第七章数据库设计
本章讨论数据库设计的技术和方法。主要讨论基于关系数据库管理系统的关系数据库设计问题。
-
●7.1数据库设计概述
数据库设计,广义地讲,是数据库及其应用系统的设计,即设计整个数据库应用系统; 狭义地讲,是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分。本节的重点是讲解狭义的数据库设计。
-
●7.2需求分析
需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析结果是否准确反映用户的实际要求将直接影响到后面各阶段的设计,并影响到设计结果是否合理和实用。
-
●7.3概念结构设计
将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。它是整个数据库设计的关键。本节讲解概念模型的特点,以及用E-R模型来表示概念模型的方法。
-
●7.4逻辑结构设计
概念结构是独立于任何一种数据模型的信息结构,逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。目前的数据库应用系统都采用支持关系数据模型的关系数据库管理系统,所以这里只介绍 E-R图向关系数据模型的转换原则与方法。
-
●7.5物理结构设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
-
●7.6数据库的实施和维护
完成数据库的物理设计之后,设计人员就要用关系数据库管理系统提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为关系数据库管理系统可以接受的源代码,再经过调试产生目标模式,然后就可以组织数据入库了,这就是数据库实施阶段。
-
第八章数据库编程
本章讲解在应用系统中如何使用编程方法对数据库进行操纵的技术。标准SQL是非过程化的查询语言,具有操作统一、面向集合、功能丰富、使用简单等多项优点。但和程序设计语言相比,高度非过程化的优点也造成了它的一个弱点: 缺少流程控制能力,难以实现应用业务中的逻辑控制。SQL编程技术可以有效克服SQL语言实现复杂应用方面的不足,提高应用系统和数据库管理系统间的互操作性。
-
●8.1嵌入式SQL
SQL 的特点之一是在交互式和嵌入式两种不同的使用方式下,SQL的语法结构基本上是一致的。当然在程序设计环境下,SQL语句要做某些必要的扩充。
-
●8.2过程化SQL
SQL 99标准支持过程和函数的概念,SQL可以使用程序设计语言来定义过程和函数,也可以用关系数据库管理系统自己的过程语言来定义。Oracle的 PL/SQL、Microsoft SQL Server的Transact-SQL、IBM DB2的SQL PL、Kingbase的 PL/SQL都是过程化的SQL编程语言。本节介绍过程化SQL (Procedural Language/SQL,PL/SQL)。
-
●8.3存储过程和函数
过程化SQL块主要有两种类型,即命名块和匿名块。前面介绍的是匿名块。匿名块每次执行时都要进行编译,它不能被存储到数据库中,也不能在其他过程化SQL 块中调用。过程和函数是命名块,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以被反复调用,运行速度较快。SQL 2003标准支持SQL/PSM。
-
●8.4ODBC工作原理
本节介绍如何使用ODBC来进行数据库应用程序的设计。使用ODBC 编写的应用程序可移植性好,能同时访问不同的数据库,共享多个数据资源。





