数据库系统概念_第1页
数据库系统概念_第2页
数据库系统概念_第3页
数据库系统概念_第4页
数据库系统概念_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子教案版本1.1

数据库系统概论

AnIntroductiontoDatabaseSystem

吉林大学计算机科学与技术学院

教材及参考书

CQ参考书

■AFirstCourseinDatabaseSystems

Jeffrey.D.Ullman,JenniferWidom

Dept.OfComputerScienceStanfordUniversity

■DateCJ.AnIntroductiontoDatabaseSystem

(Ed.7).Addison-Wesley,2000

■王珊.数据库系统简明教程.高等教育出版社

■萨师炮王珊.数据库系统概论高等教育出版社

上机软件

■MySQL

第一章引言

n数据库系统的应用□数据存储和查询

◎数据库系统的目标■事物管理

◎数据视图H数据挖掘与分析

□数据库语言B数据库体系结构

n关系数据库B数据库用户和管理员

□数据库设计B数据库系统的历史

□基于对象数据库和半结构化数据□小结

一、有关概念

1.信息和数据

(1)信息:人们对客观事物正确的描述,人们之间

可以交流的知识,对人们的行为可以产生一定的

影响。

(2):描述事物的符号记录称为数据。描述事

物的符号可以是数字,也可以是文字、图形、图

像、声音、语言等。

■数据与其语义是不可分的

(3)与之间的联系与区别

数据是用以表示信息的符号或载体

信息是经过加工之后并对客观世界和生产活

动产生影响的数据,是数据的内涵,是对数据语

义的解释。

数据是现象,而信息更反映实质。

数据举例

■数据的含义称为数据的语义,数据与其语义是不

可分的。

■例如93是一个数据

语义1:学生某门课的成绩

语义2:某人的体重

语义3:计算机系2003级学生人数

■学生档案中的学生记录

(李明,男,197205,江苏南京市,计算机系,1990)

语义:学生姓名、性别、出生年月、籍贯、所在院系、入学时间

解释:李明是个大学生,1972年5月出生,江苏南京市人,1990年

考入计算机系

情给出另一个解琴和语文

1.1数据库系统的应用

■数据库的定义

■数据库(Database,简称DB)是长期存储在计算机内

的、大量的、有结构的、可共享的数据集合。

■数据库的基本特征

■数据按一定的数据模型组织、描述和储存

■可为各种用户共享

■冗余度较小

■数据独立性较高

■易扩展

1.1数据库系统的应用

■数据库管理系统

■(DataBaseManagementSystem,简称DBMS)

■位于用户与操作系统之间的一层数据管理软件。

■是基础软件,是一个大型复杂的软件系统

■DBMS的用途

■科学地组织和存储数据、高效地获取和维护数据

■DBMScontainsinformationaboutaparticularenterprise

■Collectionofinterrelateddata

■Setofprogramstoaccessthedata

■Anenvironmentthatisbothconvenientandefficienttouse

王要功能:

(DataDefinitionLanguage)

定义数据库中的数据对象

(DataManipulationLanguage)

■操纵数据实现对数据库的基本操作

数据查询、数据更新(插入、修改、删除)

(DataControlLanguage)

通过DCL保证数据库的可恢复性、并发控制、安全性和

完整性。

(DataControlLanguage)

■(1)数据的安全性(Security)保护

保护数据,以防止不合法的使用造成的数据的泄密和破坏。

■(2)数据的完整性(Integrity)检查

将数据控制在有效的范围内,或保证数据之间满足一定的关系。

■(3)并发(Concurrency)控制

对多用户的并发操作加以控制和协调,防止相互干扰而得到错误

的结果。

■(4)数据库恢复(Recovery)

将数据库从错误状态恢复到某一已知的正确状态。

数据库系统(DBS)

数据库系统是指在计算机系统中

引入数据库后的系统,一般由数据库、

数据库管理系统(及其开发工具)、应

用系统、数据库管理员和用户构成。

数据库计算机系统中的地位

应用系统

应用开发工具

DBMS

糜作系统

硬件

数据库系统

1.1数据库系统的应用

◎银行业◎销售业

◎航空业国联机零售商

国大学◎制造业

a电信业◎人力资源

◎金融业

1.2数据库系统的目标

■例如一个银行的某个部门需要保存所有客户及

储蓄账户的信息。在计算机上保存这些信息的一

种方法是将它们存放在操作系统文件中。

■为了使用户可以对信息进行操作,系统中应有

一些对文件进行操作的应用程序,包括:

■,处理某账户的存款、贷款的程序。

■,创建新账户的程序。

■,查询账户余额的程序。

■•产生每月对账单的程序。

1.2数据库系统的目标

在文件处理系统中存储组织信息的主要弊端包括:

■数据的冗余和不一^致(dataredundancyand

inconsistency)。

■数据访问困难(difficultyinaccessingdata)。

■数据孤立(dataisolation)o

■由于数据分散在不同文件中,这些文件又可能具有不

同的格式,编写新应用程序来检索适当数据是很困难

的。

■完整性问题(integrityproblem)o

■原子性问题(atomicityproblem)o

■并发访问异常(concurrent—accessanomaly)o

■安全性问题(securityproblem)o

1.2数据库系统的目标

以上问题以及一些其他问题,促进了DBMS

的发展。

数据库系统为了解决上述在文件处理系统中存

在的问题提出的一些概念和算法。

在本书的大部分篇幅中,我们在讨论企业中典

型的数据处理应用时以银行企业作为实例。

数据库系统的组成

■数据库(Database)

■数据库管理系统(及其开发工具)

■(DataBaseManagementSystem,简称DBMS)

应用系统(applicationsystem)

■数据库管理员(DBA)

■用户(user)

1.3数据视图

■数据库系统是一些相关联的数据以及一

组使得用户可以访问和修改这些数据的程

序的集合。

■数据库系统的一个主要目的是给用户

提供数据的抽象,也就是说,系统隐藏关

于数据存储和维护的某些细节。

1.3.1数据抽象

由于许多数据库系统的用户并未

受过计算机专业训练,系统开发人员

通过如下几个层次上的抽象来对用户

屏蔽复杂性,以简化用户与系统的交

互。

LevelsofAbstraction

■Physicallevel:describeshowarecord(e.g.,customer)isstored.

■Logicallevel:describesdatastoredindatabase,andthe

relationshipsamongthedata.

typecustomer—record

customerj,d:string;

customer_name:string;

customer_street:string;

customer_city:string;

end;

■Viewlevel:applicationprogramshidedetailsofdatatypes.

Viewscanalsohideinformation(suchasanemployee'ssalary)

forsecuritypurposes.

1.3.1数据抽象

■物理层

■最低层次的抽象,描述数据实际上是怎样存储的。

物理层详细描述复杂的低层数据结构。

■逻trm车■/-耳d|层----।

■比物理层层次稍高的抽象,描述数据库中存储什么

数据及这些数据间存在什么关系。

■视图层

■最高层次的抽象,只描述整个数据库的某个部分

数据的三层抽象

physical

IEVEI

1.3.2实例和模式

随着时间的推移,信息会被插入或删

除,数据库也就发生了改变。特定时刻存

储在数据库中的信息的集合称作数据库的

一个实例(instance)。而数据库的总体设

计称作数据库模式(schema)。

1.3.2实例和模式

数据库模式和实例的概念可以通过与

用编程语言写出的程序进行类比来理解。

数据库模式对应于程序设计语言中的变量

声明(以及关联类型的定义)。每个变量

在特定的时刻会有特定的值,程序中变量

在某一时刻点上的值对应于数据库模式的

一个实例。

1.3.2实例和模式

■根据前面我们所讨论的不同的抽象层次,数据库系

统可以分为几种不同的模式。

■物理模式(physicalschema)

■在物理层描述了数据库的设计

■逻辑模式(logicalschema)

■在逻辑层描述数据库的设计。

■子模式(subschema)

■数据库在视图层也可分为几种模式,它描述了数据

库的不同视图。

■模式(Schema)

■数据库逻辑结构和特征的描述

■是型的描述

-反映的是数据的结构及其联系

■模式是相对稳定的

■模式的一^"b实例(Instance)

■模式的一个具体值

■反映数据库某一时刻的状态

■同一个模式可以有很多实例

■实例随数据库中的数据的更新而变动

例如:在学生选课数据库模式中,包含学生记录、

课程记录和学生选课记录

■2003年的一个学生数据库实例,包含:

>2003年学校中所有学生的记录

>学校开设的所有课程的记录

>所有学生选课的记录

■2002年度学生数据库模式对应的实例与

2003年度学生数据库模式对应的实例是不同的

数据库系统模式的概念

■“型”和“值”的概念

■(Type)

对某一类数据的结构和属性的说明

■(Value)

是型的一个具体赋值

例如:学生记录

记录型:

(学号,姓名,性别,系别,年龄,籍贯)

该记录型的一个记录值:

(900201,李明,男,计算机,22,江苏)

1.3.3数据模型

■由于计算机不可能直接处理现实世界中

的具体事物,所以人们必须事先把具体事物

转换成计算机能够处理的数据。

■在数据库中用数据模型这个工具来抽象、

表示和处理现实世界中的数据和信息。

■通俗地讲数据模型就是现实世界的模拟。

■现有的DBMS均是基于某种数据模型的。

数据模型的分类

根据模型应用的不同目的,可以将这些模型

划分为两类,他们分属于两个不同的层次。

第一类:

按用户的观点来对数据和信息建模,完

全不涉及信息在计算机中的表示,主要用于数

据库设计。

数据模型的分类

第二类:逻辑模型和物理模型

是按计算机的观点对数据建模,主要用

于DBMS的实现,这类模型直接与DBMS有关。主要包括

■层次模型(树)

■网状模型(图)

■关系模型(表)

■面向对象模型

■对象关系模型

是对数据最低层的抽象,它描述数据在

系统内部的表示方式和存取方法,在磁盘或磁带上的

存储方式和存取方法,是面向计算机系统的。

1.3.3概念模型(信息世界)

■概念模型实际上是现实世界到机器世界的一个中

间层次。

■把现实世界中的客观对象抽象为某种信息结构,

这种信息结构不依赖于具体的计算机系统,完全

不涉及信息在计算机系统中的结构。

■强调语义表达能力,概念简单清晰,易于理解,

是用户和DB设计人员交流的工具。

■表示方法——E-R模型

实体联系模型(EntityRelationshipModel)

E—R图

■建立概念模型的目的

■是将用户关于企业的描述及业务的需求等信息

准确的纪录下来,按用户的观点对数据和信息

建模。

■这类模型强调其语义表达能力,它要能较方便

地、直观地表达应用中各种语义知识,如被描

述对象的意义和相互关系等。

■是用户和数据库设计人员之间进行交流与沟通的工

具。

概念模型

■概念模型的用途

■概念模型用于信息世界的建模

■是现实世界到机器世界的一个中间层次

■是数据库设计的有力工具

■数据库设计人员和用户之间进行交流的语言

■对概念模型的基本要求

■较强的语义表达能力

■能够方便、直接地表达应用中的各种语义知识

■简单、清晰、易于用户理解

两大类数据模型

■客观对象的抽象过程一两步抽象

■现实世界中的客观对象抽象为概念模型;

■把概念模型转换为某一DBMS支持的数据模型。

两大类数据模型

Q识、

抽象J

现实世界匚>概念模型

数据库设计人员为成

信息世界概念模型概念模型=>逻辑模型

数据库设计人员完成

__________________________________________1r_______________________________________

逻辑模型u>物理模型

机器世界DBMS支持的数据模型

由DBMS完成

现实世界中客观对象的抽象过程

两大类数据模型

如:现实世界中的人

身高、体重、性别、年龄

Heightreal(0,200)

机器世界:Weightreal(0,150)

DBMS支持的数据模型Sexbit(0,1)

Ageint(0,200)

1.4数据库语言

数据操纵语育(DML)是这样一种语言,

它使得用户可以访问或操纠那些按照某种

适当的数据模型组织起来的数据。

■对存储在数据库中的信息进行检索。

■向数据库中插入新的信息。

■从数据库中删除信息。

■修改数据库中存储的信息。

1.4数据库语言

■通常有两类基本的数据操纵语言:

■过程化DML(proceduralDML)

■要求用户指定需要什么数据以及如何获得这些数据。

■声明式DML(declarativeDML)(也称为非过程化

DML)

■只要求用户指定需要什么数据,而不指明如何获得这

些数据。

1.4.2数据定义语言

数据库模式是通过一系列定义来说明的,这

些定义由一种称作数据定义语言(DDL)的特殊语

言来表达。

数据库系统所使用的存储结构和访问方式是

通过一系列特别的DDL语句来说明的,这种特殊

的DDL称作数据存储定义语言(datastorageand

definition)。这些语句定义了数据库模式的实现

细节,而这些细节对用户来说通常是不可见的。

1.4.2数据定义语言

存储在数据库中的数据值必须满足某些一致

性约束(consistencyconstraint)。例如,假设一^个

账户的余额不能低于100美元。DDL语言提供了指

定这种约束的工具。每当数据库被更新时,数据

库系统都会检查这些约束。

■通常,约束可以是关于数据库的任意谓词。然而,如

果要测试任意谓词,可能代价比较高。因此,数据库

系统专注于可以以最小代价测试的完整性约束。

1.4.2数据定义语言

域约束(domainconstraint)

每个属性都必须对应于由所有可能的取值

构成的一个域(例如,整数型,字符型,日期

/时间型)。声明一种属性属于某种具体的域

就相当于约束它可以取的值。域约束是完整性

约束的最基本形式。每当有新数据项插入到数

据库中,系统就能方便地进行域约束检测。

1.4.2数据定义语言

参照完整性(referentialintegrity)

■我们常常希望,一个关系中给定属性集上的

取值也在另一关系的某一属性集的取值中出现

(参照完整性)。数据库的修改会导致参照完

整性的破坏。当违反了参照完整性约束时,通

常的处理方式是拒绝执行导致完整性被破坏的

操作。

1.4.2数据定义语言

■断言(assertion)

■一个断言就是数据库总是需要满足的任一条件。

■域约束和参照完整性约束是断言的特殊形式。

■然而,还有许多约束不能仅用这几种特殊形式表

达。例如,“每笔贷款的客户中至少有一人账户

余额不小于1000.00美元”,必须表达成一个断言。

断言创建以后,系统会检测其有效性。如果断言

有效,则以后只有不破坏断言的数据库更新才被

允许。

1.4.2数据定义语言

■授权(authorization)

■我们也许想对用户加以区别,对于不同的用户,在数据

库中的不同数据值上允许不同的访问类型。这些区别以

授权来表达,最常见的是:

■读授权(readauthorization),允许读取数据,但不能修改数据;

■插入授权(insertauthorization),允许插入新数据,但不允许修改

更新授权(updateauthorization),允许修改数据,但不能删除据;

■删除授权(deleteauthorization)

■我们可以赋予用户所有的权限,或者没有或部分拥有这

些权限。、

1.5关系数据库

关系数据库基于关系模型,使用一系列表

来表达数据以及这些数据之间的联系。关系数

据库也包括DML和DDLo

多数的商用关系数据库系统使用本节介绍的

SQL语言,该语言将在第3章和第4章详细介绍。

第5章我们讨论其他有影响的语言。

1.5关系数据库

■关系模型是最重要的一种数据模型。也

是目前主要采用的数据模型

■1970年由美国IBM公司SanJose研究室的

研究员E.F.Codd提出

■本课程的重点

1.5.1表

每个表有多个列,每个列有唯一的名字。图

1-2展示了一个关系数据库示例,它由三个表组成:

其一给出银行客户的细节,其二给出账户,其三

展示了哪个账户属于哪个客户。

F面是customer表

CustomerjdCustomer_nameCustomer_streetCustomer_city

192-83-7465Johnson12almaSt.PaloAlto

019-28-3746Smith4NorthSt.Rye

677-89-9011Hayes3MainSt.Harrison

182-73-6091Turner123PutnamAve.Stamford

321-12-3123Jones100mainst.Harrison

336-66-9999Lindsay175ParkAve.Pittsfield

1.5.1表

Account_numberBalanceCustomerjdAccount_number

AIOI500192-83*7456AIOI

A215700192-83-7456A201

019-28-3746A215

A102400

677-89-9011A102

A305350

192-73-6091A305

A201900

321-12-3123A217

A217750336-66-9999A222

A222700019-28-3746A201

'、关系数据模型的数据结构

■在用户观点下,关系模型中数据的逻辑结构是一张

二维2,它由行和列组成。

学生登记表

夜名年龄性另系名年号

王小明19女社会学2005

2005006黄大鹏20男商品学2005

2005008张文斌18女法律2005

••••••••••••••••••

关系数据模型的数据结构

■关系必须是规范化的,满足一定的规范条件

最基本的规范条件:关系的每一个分量必须是一个

不可分的数据项,不允许表中还有表

图1.27中工资是可分的数据项,不符合关系模型要求

L工贲、

班号.组名:\扣除实发

、基本补

甲全\3200「2010C.I3120

(004

乙组,71500501450

点组

0082200150100225a

图L27一个工资表(表中有表)实例

关系数据模型的数据结构

表1.2术语对比

关系术语一般表格的术语

关系名表名

关系模式表头(表格的描述)

关系(一张)二维表

元组记录或行

属性列

属性名列名

属性值列值

分量一条记录中的一个列值

非规范关系表中有表(大表中嵌有小表)

■关系(Relation)

一个关系对应通常说的一张表

■元组(Tuple)

表中的一行即为一个元组

■属性(Attribute)

表中的一列即为一个属性,给每一个属性起一个名

称即属性名

学生登记表

学号姓名年龄,性别系名年级

1元组

95004王小明19女社会学’95

95006黄大鹏20男商品学95

95008(宛-文献、)18女法律学,95

_____A

主码分量属性

关系数据模型的数据结构

■主码(Key)

表中的某个属性组,它可以唯一确定一个元组。

■域(Domain)

属性的取值范围。

■分量(数据项)

元组中的一个属性值。

■关系模式

对关系的描述

关系名(属性1,属性2,…,属性n)

学生(学号,姓名,年龄,性别,系,年级)

关系数据模型的优缺点

■优点

■建立在严格的数学概念的基础上

■概念单一

■实体和各类联系都用关系来表示

■对数据的检索结果也是关系

■关系模型的存取路径对用户透明

■具有更高的数据独立性,更好的安全保密性

■简化了程序员的工作和数据库开发建立的工作

关系数据模型的优缺点

■缺点

■存取路径对用户透明导致查询效率往往

不如非关系数据模型

■为提高性能,必须对用户的查询请求进

行优化增加了开发DBMS的难度

典型的关系数据库系统

■ORACLE

■SYBASE

■DB/2

■SQLServer2000

■MYSQL

■INFORMIX

1.5.2数据操纵语言

■数据操作是集合操作,操作对象和操作结果

都是关系,即若干元组的集合

■查询插入删除更新

■存取路径对用户隐蔽,用户只要指出“干什

么”,不必详细说明“怎么干”

1.5.2数据操作语言

■selectcustomer.customer_name

■fromcustomer

■wherecustomer.customer_city="Harrison

1.5.3数据定义语言

■createtableaccount

■(accont_numberchar(10)

■balanceinteger)

1.5.4来自应用程序的数据库访问

SQL不像通用的图灵机那么强大;即,

有一些计算无法通过任何SQL查询得到。这

样的计算必须用一种宿主语言来写,比如

CoboLC,C++或Java,在其中使用嵌入式

的SQL查询来访问数据库中的数据

1.5.4来自应用程序的数据库访问

■为了访问数据库,DML语句需要由宿主语言

来执行。有两种途径:

■一种是通过提供应用程序接口(过程集),

它可以用来将DML和DDL的语句发送给数

据库,再取回结果。

■由微软定义的与C语言一起使用的开放数据

库连接(ODBC)标准,是一种常用的应用程

序接口标准。Java数据库连接。DBC)标准同

样为Java语言提供了相应的特征。

1.5.4来自应用程序的数据库访问

■另一种是通过扩展宿主语言的语法,在

宿主语言的程序中嵌入DML调用。通常用一

个特殊字符作为DML调用的开始,并且通过

预处理器,称为DML预编译器(DML

precompiler),来将DML语句转变成宿主语

言中的过程调用。

1.6数据库设计

数据库设计主要是数据库模式的设

计;设计一个满足企业需求模型的完整

的数据库应用环境还要考虑更多的问题。

因此,我们先着重讨论数据库查询语句

的书写以及数据库模式的设计,

1.6.1设计过程

数据库设计的第一步是全面刻画

预期的数据库用户的数据需求。为了

完成这个任务,数据库设计者有必要

和领域专家、数据库用户广泛地交流;

这个阶段的成果是制定出用户需求说

1.6.1设计过程

下一步,设计者选择一个数据模型;并运用

该选定的数据模型的概念,将那些需求转换成一

个数据库的概念模式。

在这个概念设计(conceptual-design)阶段开发

出来的模式提供了企业的详细概述。设计者

1’一遍这个模式,确保所有的数据需求都满足并

且相互之间没有冲突,在检查过程中设计者也可

以去掉一些冗余的特征。

1.6.1设计过程

以关系模型的角度来看,概念设计阶段包括

决定数据库中应该存储哪些属性,以及如何设计

表来组织这些属性。

前者基本上是商业的决策,在本书中我们不

过多介绍。而后者主要是计算机科学的问题,解

决这个问题主要有两种方法:一种是使用实体一

联系模型,另一种是引入一套算法(通称为规范

化),这套算法将所有属性集作为输入,生成一

些关系表

1.6.2银行企业的数据库设计

■初始的用户需求规格说明可以基于与数据库用

户的交流以及设计者自己对银行业务的分析。

■以下是银行企业的主要特征:

■银行由支行组成。每个支行在特定的城市,具有唯一

的名称。银行可以查看支行的资产。

■银行客户通过他们的customejid值区别,银行存储了

每位用户的名字、居住的城市和街道。客户有自己的

账户,可以贷款。一个客户可能和特定的银行职员相

关联,他充当客户的贷款员或个人银行顾问。

1.6.2银行企业的数据库设计

银行提供两种账户:储蓄账户和支票账户。

■账户可以对应多个客户,一个客户也可拥有多个账户。每个账户

被赋予唯一的账号。银行保存了每个账户的余额,以及账户的拥

有者访问账户的最近日期。另外,每个储蓄账户有一个利率,每

个支票账户的透支信息也被记录下来。

银行为客户提供贷款。某次贷款在特定的支行发生,

贷款可以为一个人或多个人合贷。每笔贷款由唯一的贷款

号决定。对每个贷款,银行保存了贷款数量和贷款还款的

记录。每笔还款都有日期和金额。

银行职员通过employee_id值区别。银行管理部门保存

每位职员的名字和电话,重行职员家属的名字以及雇员经

理的employee_id号;银行还存储了职员的雇佣日期。

1.6.3实体一联系模型

实体一联系(E・R)数据模型基于对现实世界

的这样一种认识:现实世界由一组称作实体的基

本对象以及这些对象间的联系构成。

实体是现实世界中可区别于其他对象的一件

“事情”或一个“物体”。例如,每个人是一个

实体,每个银行账户也是一个实体。

1.6.3实体一联系模型

数据库中实体通过一些属性(attribute)来描述。

例如,account_number与balance属性描述了银

行的某个特定账户,并且它们也组成了account实

体集的属性。

■类彳以地,属,性如customer_name、customer_street

和customer_city也可以描述customer实体。

1.6.3实体一联系模型

■我们用一个额外的属性customejid来唯一标识客

户。

■在美国,客户的社会保障号是美国政府分配给

每个美国公民的唯一的号码作为客户的标识。

■联系(relationship)是实体之间的关联。

■例如,depositor联系将一个客户和她的每个账

户关联在一起。同一类型的所有实体的集合称

作实体£,同一类型的所有联系的

集合称作称系3(relationshipset)。

163实体——联系模型

■数据库的总体逻辑结构(模式)可以用E・R图进

行图形化表示。E・R图由以下元素构成:

■矩形(rectangle),代表实体集。

■椭圆(ellipse),代表属性。

■菱形(diamond),代表实体集间的联系。

■线段(line),将属性与实体集相连或将实体集

与联系相连。

1.6.3实体——联系模型

■ER模型描绘了数据库必须遵守的对其内容的某些约束。一个重要的约

束是(mappingcardinality),它表示通过某个联系集能与另

一实体进行关联的实体数目。例如,如果一个账户只能属于一个客户,

ER模型就能表达出这种约束。

■实体一联系模型在数据库设计中使用广泛,在第6章中将详细研究。

1.6.4规范化

另外一种设计关系数据库的方法采用一种通

常被称为规范化的过程。它的目标是生成一个关

系模式集合,使我们能无冗余地存储信息。

这种方法是设计一种符台适当的范式的模式。

为确定一个关系模式是否符合想要的范式,我们

需要额外的关于用数据库建摸的现实世界中企业

的信息,最常用的方法是使用函数依赖

(functionaldependency),将在74节讨论。

1.8.1存储管理嚣

存储管理器是在数据库中存储的低层数据与应

用程序以及向系统提交的查询之间提供接口的程

序模块。

存储管理器应负责与文件管理器进行交互。原

始数据通过文件系统存储在磁盘上,文件系统通

常由传统的操作系统提供。存储管理器将不同的

DML语句翻译为底层文件系统命令。因此,存储

管理器负责数据库中数据的存储、检索和更新

1.8.1存储管理嚣

■存储管理器部件包括:

■•权限及完整性管理器,检测是否满足完整性约

束,检查试图访问数据的用户的权限。

■,事务管理器,保证即使发生了故障,数据库也

保持在一致的(正确的)状态;保证并发事务的

执行不发生冲突。

■■文件管理器,管理磁盘空间的分配,管理用于表

示磁盘上所存储信息的数据结构。

■,缓冲管理器,负责将数据从磁盘上取到内存中

来,并决定哪些数据应被缓冲存储在内存中。缓

冲管理器是数据库系统中的一个关键部分,因为

它使数据库可以处理比内存更大的数据。

1.8.1存储管理嚣

■存储管理器实现了几种数据结构:

■,数;(datafile),存储数据库自身。

■,数据字典(datadictionary),存储关于数据库结

构的元数据,尤其是数据库模式。

■・,提供对数据项的快速访问。和书

中的索引一样,数据库索引为包含特定值的数据

提供了指针。

1.8.2查询处理器

■查询处理器组件包括:

■・DDL解释器(DDLinterpreter),解释

DDL语句并将这些定义记录在数据字典中。

■・DML编译器(DMLcompiler),将查询语

言中DML语句翻译为一个计算方案,包括

一系列查询计算引擎能理解的低级指令。

1.8.2查询处理器

■一个查询通常可被解释成多种等价的具

有相同结果的计算方案的一种。

■DML编译器还进行:

■查询优化(queryoptimization)

■查询计算引擎(queryevaluationengine),

执行由DIVIL编译器产生的低级指令。

1.9事务管理

■通常,对数据库的几个操作合起来形成一个逻辑单元。如

1.2节中资金转账的例子,其中的一个账户(A账户)发生

借出操作,而另一账户(B账户)发生贷入操作。显然,

这两个操作必须保证要么都发生要么都不发生。这种要

么完成要么不发生的要求称为原子性(atomicity)。

■资金转账还必须保持数据库的一致性。也就是说,

A+B的和应该是保持不变的。这种正确性的要求称作一致

(consistency)。

■最后,当资金转账成功结束后,即使发生系统故障,账户

A和账户B的值也应该保持不变。这种保持不变的要求称

为持久性(durability)。

1.9事务管理

事务(transaction)是数据库应用中完成单一逻辑功能的

操作集合,是一个既具原子性又具一致性的单元。

我们要求事务不违反任何的数据库一致性约束,即:

如果事务启动时数据库是一致的,那么当这个事务成功结

束时数据库也应该是一致的。但是,在事务执行过程中,

必要时允许暂时的不一致,因为无论是A取出的操作在前

还是B存入的操作在前,这两个操作都必然有一个先后次

序。这种暂时的不一致虽然是必须的,但在故障发生时,

很可能导致问题的产生。

1.9事务管理

适当定义不同事务是程序员的任务,事务的

定义应使之能保持数据库的一致性。例如,资金

从账户A转到账户B可以被定义为由两个单独的程

序组成:一个对账户A执行取出操作,另一个对

账户B执行存入操作。这两个程序的依次执行可

以保持一致性。但是,这两个程序自身都不是把

数据库从一个一致的状态转入一个新的一致的状

态,因此它们都不是事务。

1.9事务管理

原子性和持久性的保证则是数据库系统自身

的任务,更确切一些,是事务管理部件。

由于各种各样的故障,事务并不总能成功执

行完毕。为了保证原子性,失败的事务必须对效

据库状态不产生任何影响,因此,数据库必须被

恢复到该失败事务开始执行以前的状态。这种情

况下数据库系统必须运行故障恢复(failure

,来检测系统故障并将数据库恢复到故

障发生以前的状态。

1.9事务管理

当多个事务同时对数据库进行更新时,即使

每个单独的事务都是正确的,数据的一致性也可

能被破坏。并发控制管理器控制并发事务间的相

互影响,保证数据库一致性。

■事务处理的基本概念在第15章介绍.并发事务的管理

在第16章讨论,第17章详细介绍故障恢复。

1.10数据挖掘与分析

数据挖掘(datamining)在人工智能领域,习

惯上又称为数据库中的知识发现(Knowledge

DiscoveryinDatabase,KDD(也称为机器学习

(machinelearning))

数据挖掘试图从数据中寻找规则或模式。但是,

数据挖掘和机器学习、统计分析不一样的地方在

于它处理主要存储在磁盘上的大量的数据,也就

是说,数据挖掘就是在数据库中发现知识。

1.10数据挖掘与分析

从数据库中发现的某些类型的知识可以用一

套规则(rule)标识。下面是一条规则的例子,非形

式化的描述为:•・年收入高于50000美元的年轻

女性是最可能购买小型运动车的人群。门当然这

条规则并不是永远正确的,但它有一定的“支持”

度和“置信・.度。其他类型的知识表达方式比如

联系不同变量的方程式,或者通过其他机制根据

某些已知的变量来预测输出。

1.11数据库体系结构

数据库系统的体系结构很大程度上取决于数

据库系统所运行的计算机系统。

数据库系统可以是集中式的、客户/服务器

式的(一台服务器为多个客户机执行任务);也

可以针对并行计算机体系结构设计数据库系统;

分布式数;包含地理上分离的多台计算机。

1.11数据库体系结构

数据库的应用程序通常可分为两或三个部分,

如下图所示。

在两层体系结构中,应用程序被分离出一部

分保留在客户机上,用来通过查询语言表达式来

调用服务器上的数据库系统功能。像ODBC和

JDBC这样的应用程序接口标准被用于进行客户端

和服务器的交互。

1.11数据库体系结构

■在三层体系结构中,客户机只作为一个前端并

且不包含任何直接的数据库调用。

■客户端通过窗口界面与一个应用服务器

(applicationserver)进行通信,通常是一^个表单界

面,接着应用服务器与数据库系统通信以访问数

据。应用程序的业务逻辑(businesslogic),也就是

说在何种条件下做出何种反应,被嵌入到应用服

务器中,而不是分布在多个客户机上。

■三层结构的应用更适合大型应用和WWW上的应用

1.11数据库体系结构

1.12数据库用户和管理员

■数据库系统的一个主要目标是从

数据库中检索信息和往数据库中存储

新信息。

■使用数据库的人员可被分为数据

库用户和数据库管理员

三、人员

■数据库管理员

■系统分析员和数据库设计人员

■应用程序员

■用户

♦:♦不同的人员涉及不同的数据抽象级别,具有不同的数据

视图,如下图所示。

图1.30各种人员的数据视图

数据库管理员(DBA)

具体职责:

■1.决定数据库中的信息内容和结构

■2.决定数据库的存储结构和存取策略

■3.定义数据的安全性要求和完整性约束条件

数据库管理员

■4.监控数据库的使用和运行

■周期性转储数据库

■数据文件

■日志文件

■系统故障恢复

■介质故障恢复

■监视审计文件

数据库管理员

■5.数据库的改进和重组

■性能监控和调优

■定期对数据库进行重组织,以提高系统的

性能

■需求增加和改变时,数据库须需要重构造

系统分析员

■负责应用系统的需求分析和规范说明

■与用户及DBA协商,确定系统的硬软件配置

■参与数据库系统的概要设计

数据库设计人员

■参加用户需求调查和系统分析

■确定数据库中的数据

■设计数据库各级模式

4.应用程序员

■设计和编写应用系统的程序模块

■进行调试和安装

4.用户

用户是指最终用户,即通过应用系统的用户接口使用数据库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论