《数据库原理与应用》课件第1章_第1页
《数据库原理与应用》课件第1章_第2页
《数据库原理与应用》课件第1章_第3页
《数据库原理与应用》课件第1章_第4页
《数据库原理与应用》课件第1章_第5页
已阅读5页,还剩142页未读 继续免费阅读

下载本文档

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

文档简介

第1章数据库系统概述1.1基本概念1.2数据库技术的产生和发展1.3数据库管理系统1.4数据库系统结构1.5数据库应用系统开发简介小结数据库技术诞生于20世纪60年代末,历经了40多年的历程,造就了C.W.Bachman、E.F.Codd和JamesGray三位图灵奖得主,特别是近20多年来,数据库技术得到了迅猛的发展和应用,从早期的层次数据库和网状数据库,发展为目前占主流地位的关系数据库,已形成了较为完整的理论体系,带动了一个巨大的软件产业——数据库管理系统产品及其相关工具和解决方案。数据库技术已成为计算机领域中最重要的技术之一,它是软件学科的一个重要分支。数据库技术的出现使得计算机应用迅速渗透到工业、农业、商业、行政、科学研究、工程技术和国防军事的各个部门,并伴随着因特网的出现渗透到社会的每一个角落,基于数据库技术的计算机应用已成为计算机应用的主要领域。当前,数据库的理论研究以及新的数据库系统的研究仍在继续,分布式数据库、面向对象数据库、数据仓库、对象-关系数据库、多媒体数据库等一批新型数据库已逐渐成熟,正在或即将应用到计算机应用领域。未来社会是信息化的社会,信息已经成为经济发展的战略资源,而数据库是信息化社会中资源管理与开发利用的基础。因此,数据库的建设规模和应用水平已成为衡量一个国家信息化程度的重要标志。本章主要介绍数据库管理系统和数据库系统的基本概念、基本组成和基本功能,并对数据库技术的产生、发展历程进行详细的论述。学习内容:

(1)与数据库相关的基本概念。

(2)数据库技术的产生和发展阶段的特点。

(3)数据库管理系统的基本功能、组成和工作流程。

(4)数据库系统的三级模式结构和二级映射。

(5)数据库系统的体系结构和组成。

(6)数据库应用系统开发简介。

要利用计算机存储和管理现实世界的信息,就必须研究信息与数据之间的关系,研究数据在计算机中的存储方式和处理方式。1.1基本概念1.1.1数据与信息

1.信息

信息是现实世界在人脑中的抽象反映,是通过人的感官感知出来并经过人脑的加工而形成的反映现实世界中事物的概念。它泛指通过各种方式传播的可被感受的数字、文字、图像和声音等符合所表征的某一事物的消息、情报和知识。信息具有许多重要的特征:

(1)信息来源于物质和能量。

(2)信息的内容能够反映已经存在的客观事实,能够预测未发生事物的状态,并能用于指挥控制事物发展的决策,所以它是可以感知的。

(3)信息需要一定的形式表示,信息与其表现符号不可分离。

(4)信息是可以存储的。

(5)信息是可以加工、传递和再生的。信息对人类社会的发展起着重要的作用。信息可以提高人们对事物的认识,减少人们活动的盲目性;信息是社会机体进行活动的纽带,社会的各个组织通过信息网相互了解并协同工作;信息是管理活动的核心,是做好管理工作的基础和保证。

2.数据

数据是一切文字、符号、声音、图形和图像等有意义的组合,是记录信息的物理符号,是表达和传递信息的工具。它是描述现实世界中各种具体事物或抽象概念的可存储并具有明确意义的信息,是用符号记录下来的、可以识别的信息。数据具有许多特征:

(1)数据有“型”和“值”之分。数据的型是指数据的结构,包括数据的内部构成和对外联系;数据的值是指数据的具体取值。

(2)数据受数据类型和取值范围的约束。数据类型是针对不同的应用场合设计的。针对不同的数据类型,其数据表示的形式、存储方式及数据能进行的操作运算也各不相同。数据的取值范围即数据的值域则是保证数据的有效性及避免数据输入或修改时出现错误的重要措施。

(3)数据有定性表示和定量表示之分。数据的定性表示是带有模糊因素的描述事物的粗略表示方式,而数据的定量表示是描述事物的精确表示方式。

(4)数据应具有载体和多种表示形式。数据是对客观物体或概念的属性的记录,它必须有一定的物理载体。通常,数据是利用磁盘(包括硬盘、软盘和U盘)或磁带等计算机外部设备作为载体记录在计算机上的。数据具有多种表现形式,它可以用报表、图形、语音及不同的语言符号表示。

3.数据与信息的关系

数据与信息是两个既有联系又有区别的概念。信息是以数据的形式表示的,即它是以数据为载体而表现,它是数据的内涵;数据则是表示信息的一种手段。

数据和信息是分不开的。计算机系统的每项操作,均是对数据进行某种处理。数据输入计算机后,经存储、传送、排序、计算、转换、检索及仿真等操作,输出人们需要的结果,即产生信息。在许多不严格的情况下,对数据和信息两个概念不进行区分,两者常常混用。1.1.2数据管理与数据库

数据管理是数据处理的基础工作,数据库是数据管理的技术和手段。

1.数据处理

数据处理(又称为信息处理)是指从某些已知的表示某些信息的数据出发,推导整理出一些新的数据,从而又表示出一些新的信息的过程。它涉及到数据的收集、管理、加工直至产生新信息输出的全过程。数据处理可以分为数据管理、数据加工和数据传播三类。数据管理的主要任务是收集信息、将信息用数据表示并按类别组织保存,以备需要的时候,为各种应用提供数据。数据加工的主要任务是对数据进行变换、抽取和运算。通过数据加工,可以得到更有用的数据,以指导或控制人的行为或事物的变化趋势。数据传播是指在空间或时间上以各种形式传播信息,而不改变数据的结构、性质和内容。通过数据传播,可以让更多的人得到并理解信息,从而使信息的作用充分发挥出来。

2.数据管理

数据管理是指数据的收集、整理、组织、存储、维护、检索、统计及传送等操作处理过程。数据管理是数据处理工作中最基本的工作,是其他数据处理的核心和基础。

数据管理工作主要包括以下内容:

(1)组织和保存数据,即将收集到的数据合理地分类组织,将其存储在物理载体上,使数据能够长期地被保存。

(2)数据维护,即根据需要随时进行插入新数据、修改原有数据和删除无用或失效数据的操作。

(3)提供数据查询和数据统计功能,以便快速地得到需要的正确数据,满足各种使用要求。数据处理和数据管理是互相联系的,数据管理中的各种操作都是数据处理业务中必不可少的基本环节,数据管理技术的好坏,直接影响着数据处理的效率。

3.数据库

据查,数据库这个名词起源于20世纪50年代,当时美国为了战争的需要,把各种情报集中在一起,存储在计算机里,称为InformationBase或DataBase。

数据库(DataBase,简称DB)是一组长期存储在计算机内,有组织的、可共享的、具有明确意义的数据集合。它可以人工建立、维护和使用,也可以通过计算机建立、维护和

使用。数据库的概念实际上包括两层意思:

(1)数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据。“数据”和“库”两个概念结合成为“数据库”。

(2)数据库是数据管理的新方法和技术,它能够更合理地组织数据、更方便地维护数据、更严密地控制数据和更有效地利用数据。数据库具有以下几个特点:

(1)它是具有逻辑关系和确定意义的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度,较高的数据独立性,可为各种用户共享。不同的用户可以按各自的用法使用数据库中的数据,多个用户可以同时共享数据库中的数据资源。

(2)它是针对明确的应用目标而设计、建立和加载的。

(3)它表现了现实世界的某些方面。1.1.3数据库管理系统和管理信息系统

数据库管理系统是提供数据库管理的计算机系统软件,管理信息系统是实现某种具体事物管理功能的应用软件。数据库管理系统为管理信息系统的设计提供了方法、手段和工具,管理信息系统利用数据库管理系统可以更快、更好地设计和实施。

1.数据库管理系统

数据库管理系统(DataBaseManagementSystem,简称DBMS)是对数据库的建立、使用和维护进行有效管理的一组计算机程序。

数据库管理系统是位于用户与操作系统之间的一层数据管理软件,是一个通用的软件系统,通常由语言处理、系统运行控制和系统维护三大部分组成,为用户提供了一个软件环境,允许用户快速方便地建立、维护、检索、存取和处理数据库中的信息。例如,我们熟悉的Access、SQLServer、Oracle等。

2.管理信息系统

管理信息系统(ManagementInformationSystem,简称MIS)是建立在现代信息技术基础之上的、面向组织的全面管理和简单决策的信息系统,它是计算机应用领域的一个重要分支。

管理信息系统的基本特征有:

(1)具有信息处理功能。管理信息系统能够提供对信息的收集、储存、加工、传输等处理功能。

(2)面向企业策略层。管理信息系统的处理对象是企业全面管理过程,包括企业的计划、生产、质量、物资、销售、财务、人事等。

(3)追求企业综合管理效益。管理信息系统在信息处理系统的基础上,通过全面管理以提高企业的综合管理水平,追求企业整体管理的综合效益。

(4)支持简单决策。管理信息系统虽然能够辅助企业决策,但主要处理的是企业中模型固定、方法确定的结构化决策问题。半结构化和非结构化决策问题一般交由决策支持系统进行处理。

(5)运用了综合性方法和技术。管理信息系统涉及到管理模型、算法、信息处理技术等综合性的方法和技术。另外,管理信息系统的开发是一项复杂的系统工程,需要遵循工程化方法。

管理信息系统以数据库技术为基础,它的核心是数据库。管理信息系统的数据存放在数据库中,数据库技术为管理信息系统提供了数据管理的手段,数据库管理系统为管理信息系统提供了系统设计的方法、工具和环境。学习数据库及数据库管理系统的基本理论和设计方法,其目的就是要掌握数据库系统的设计、管理和应用,以便能够胜任管理信息系统的设计、开发和应用工作。1.1.4数据库系统

数据库系统(DataBaseSystem,简称DBS)是指具有管理和控制数据库功能的计算机应用系统。这个系统包括:

(1)以数据为主体的数据库。

(2)管理数据库的软件——数据库管理系统。

(3)支持数据库系统的计算机硬件环境和操作系统环境。

(4)管理和使用数据库系统的人,特别是负责全面管理和控制数据库系统正常运行的人员——数据库管理员。从前面的介绍可以看出,数据库、数据库管理系统和数据库系统是三个不同的重要概念,它们之间的关系如图1.1所示。

图1.1一个简化的数据库系统环境

数据库技术是数据管理的最新技术,是研究数据库的结构、存储、设计、管理和使用的一门软件学科。数据库技术是在操作系统的文件系统的基础上发展起来的,而且数据库管理系统本身要在操作系统支持下才能工作。1.2数据库技术的产生和发展1.2.1人工管理阶段

人工管理阶段是指20世纪50年代中期以前。该时期的计算机应用范围狭窄,主要用于科学计算。在这个时期,计算机硬件发展水平低下,外部存储器只有纸带、卡片、磁带,没有能直接存取的存储设备如磁盘等;软件上也处于初级阶段,只有汇编语言,还没有开发出操作系统软件,更没有专门管理数据的软件。数据处理的方式是批处理,数据的组织和管理完全靠程序员手工完成。这个时期的数据管理的特点是:

(1)数据的管理者是应用程序,数据不保存。该时期的计算机主要应用于科学计算,一般不需要将数据长期保存,只是在计算某一课题时将数据输入,用完后不保存原始数据,也不保存计算结果。数据均是由应用程序自己管理,没有统一的负责管理数据的专门软件系统。

(2)数据面向的对象是某一应用程序。程序员不仅要在程序中规定数据的逻辑结构,而且还要在程序中设计物理结构,包括存储结构、存取方法、输入、输出方式等。一组数据对应一个程序。

(3)数据不具有独立性,无法进行数据共享,冗余度极大。由于数据是面向应用程序的,因此不仅数据的逻辑结构和物理结构的设计是由应用程序承担,而且它们的修改也要引起应用程序的修改,这样必然导致程序员的极重负担,且程序与程序之间产生了大量的冗余数据。

(4)数据无结构,应用程序自己控制数据。数据的组织方式必须由程序员自行设计,没有结构要求。

该阶段应用程序和数据之间的关系如图1.2所示。

图1.2人工阶段应用程序与数据之间的对应关系1.2.2文件系统阶段

文件系统阶段是从20世纪50年代后期到60年代中期。该时期的计算机应用范围逐渐扩大,计算机不仅用于科学计算,而且还大量用于信息管理。计算机硬件有了进一步的发展,出现了磁盘、磁鼓等能直接存取的外存储设备;在软件方面,高级语言和操作系统已经有完善的产品,并且操作系统中有专门负责管理数据的文件系统。文件系统的数据处理方式不仅有文件批处理,而且还能够联机实时处理。利用文件系统,可以把数据组织成文件形式存储在磁盘上,使得数据的增、删、改等操作都变得轻松;更重要的是,数据的复制变得相当容易,使得数据可以重复使用。文件方式管理数据是数据管理的一大进步。用文件系统管理数据具有如下特点:

(1)数据的管理者是文件系统,数据可以长期保存在外存储器上,并可以多次进行存取操作。

(2)程序和数据分开存放,它们之间有了一定的独立性。数据由专门的软件即文件系统进行管理,程序和数据之间由软件提供的存取方法进行转换。

(3)数据面向的对象仍然是某一应用程序。

(4)数据共享性差,数据有较大的冗余。文件系统中的数据和程序虽然具有了一定的独立性,但还很不充分,每个文件仍然对应于一个应用程序,数据还是面向应用的,系统不易扩充,一旦数据的逻辑结构改变,必须修改应用程序。并且,各个文件之间是孤立的,不能反映现实世界事物之间的内在联系,从而造成数据冗余度大,存储空间浪费,并容易产生相同数据的不一致性。

(5)数据的存取基本以记录为单位,记录内有结构,但数据整体还没有结构化。

图1.3文件系统阶段应用程序与数据之间的对应关系1.2.3数据库系统阶段

数据库系统阶段是指从20世纪60年代后期至今。数据管理技术进入数据库系统阶段的标志是20世纪60年代末期的三件大事:①1968年,美国IBM公司推出层次模型的IMS系统;②1969年,美国CODASYL组织发布了DBTG报告,提出网状模型;③1970年,美国IBM公司的E.F.Codd连续发表论文,提出关系模型,奠定了关系数据库的理论基础。

特别是20世纪70年代以来,计算机应用范围越来越广泛,要求用计算机管理的数据量急剧增长,同时多种应用、多种语言互相覆盖地共享数据集合的要求越来越强烈。一方面,计算机硬件发展迅速,硬件价格大幅度下降,出现了大容量磁盘等廉价的内、外存储设备;另一方面,软件价格上升,软件成本增加。为了解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,所以数据库技术得到了迅速的发展。用数据库系统管理数据具有如下特点:

(1)采用特定的数据模型,使数据结构化。数据结构化是数据库系统和文件系统的本质区别。

在文件系统中,相互独立的文件的记录内部是有结构的,通常采取的是等长或变长的记录格式,但记录之间没有联系,这种数据的独立性只对一个应用而言,仍有局限性,不适应多用户、多应用共享数据的需求。而数据库系统为用户提供一个数据的抽象视图,它能隐藏数据的存储结构和存取方法等细节,并通过数据模型作为实现数据抽象的主要工具,实现了整体数据的结构化,它要求在描述数据时不仅要描述数据本身,还要描述数据之间的联系。数据之间的联系通过存取路径来实现,把相关的数据有机地组织在了一起。

(2)数据的独立性高。数据库系统提供了三级数据抽象(视图级抽象、概念级抽象和物理级抽象)能力和三种数据库模式(外模式、模式和内模式),实现了数据的物理独立性和逻辑独立性。数据与程序的相互独立,使得可以把数据的定义和描述从应用程序中分离出去,而把数据的存取由数据库管理系统统一进行管理,用户在应用程序中不用考虑存取路径等细节,大大简化了应用程序的编制及应用程序对数据的维护和修改。应用程序和数据的关系如图1.4所示。

图1.4数据库系统阶段程序和数据的关系

(3)数据的共享性好,数据冗余度低。数据库系统允许多个用户或多个应用程序同时访问数据库中的相同数据,数据不再面向某个应用,而是面向整个系统,从而支持了数据的共享,节省了存储空间,大大减少了数据冗余,避免了数据之间的不相容性与不一致性。

(4)为用户提供了方便的用户接口。用户可以使用查询语言(如SQL)或终端命令对数据库进行访问,也可以借助高级语言(如C语言、COBOL语言等)采用程序方式对数据库进行操作。

(5)有统一的数据管理功能。数据库系统中的数据由数据库管理系统统一管理,而且管理的是有结构的数据,因此在使用数据时可以有很灵活的方式。一个数据库一般都支持很多应用程序和用户。不同的应用程序和不同的用户对同一个数据库可能有不同的理解,对同一数据库的每一种理解称为这个数据库的一个视图。一个视图可以是一个数据库子集合,也可以是多个数据库的子集按照某种方式构成的虚拟数据库。数据库管理系统提供了定义、维护和操纵视图的机制,使得多个用户可以为他们的应用定义、维护和使用自己的视图。

(6)提供数据控制功能。

①数据的安全性。在实际的应用中,并非每个应用都应该存取数据库中的全部数据。数据库的安全性就是指保护数据,防止因不合法使用数据造成数据的泄密和破坏,使每个用户只能按规定对某些数据以某些方式进行访问和处理。

②数据的完整性。数据的完整性是指数据的正确性、有效性和相容性,即将数据控制在有效的范围内,或要求数据之间满足一定的关系。

③并发控制。当多个用户同时存取、修改数据库中的数据时,可能会发生相互干扰,使数据库中数据的完整性受到破坏,而导致数据的不一致性。并发控制机制用来控制多个事务的并发运行,避免它们之间相互干扰,保证每个事务都产生正确的结果。

④数据库恢复。数据库恢复指在发生某种故障,使得数据库当前的状态已经不再正确时,能把数据库恢复到已知为正确的某种状态的功能。

数据库技术是计算机科学技术中发展最快的重要分支之一,也是应用最广的技术之一,它已经成为计算机信息系统和应用系统的重要技术支柱。在短短的40多年里,它已从第一代的网状、层次数据库系统,第二代的关系数据库系统,发展到新一代以面向对象模型为主要特征的数据库系统。数据库技术和网络通信技术、Web技术、分布处理技术、人工智能技术、面向对象程序设计技术、并行计算技术、多媒体技术等互相渗透,互相结合,成为当前数据库技术发展的主要特征。数据模型是数据库系统的核心和基础。因此,数据库发展阶段的划分应该以数据模型的进展作为主要标志和依据。

·第一代数据库系统——层次、网状数据库系统。其代表是:①1969年IBM公司研制的层次模型和数据库管理系统(InformationManagementSystem,简称IMS);②美国数据库系统语言协商会(ConferernceOnDataSystemLanguage,简称CODASYL)下属的数据库任务组(DataBaseTaskGroup,简称DBTG)于60年代末70年代初提出了若干报告,称为DBTG报告。DBTG报告确定并建立了数据库系统的许多概念、方法和技术。DBTG所提出的方法是基于网状结构的,它是数据库网状模型的典型代表。

可以说,层次数据库是数据库系统的先驱,而网状数据库则是数据库概念、方法、技术的奠基。它们是数据库技术中研究最早的两种数据库系统。两者的区别是以数据模型为基础的,层次数据库的数据模型是分层结构的,而网状数据库的数据模型是网状结构的。它们的数据结构都可以用图来表示。

·第二代数据库系统——关系数据库系统。1970年,IBM公司SanJose研究室的研究员E.F.Codd发表了题为“大型共享数据库数据的关系模型”论文,提出了数据库的关系模型,开创了关系数据库方法和关系数据理论的研究,为关系数据库技术奠定了理论基础。

20世纪70年代是关系数据库理论研究和原型开发的时代。其中的典型代表有:①IBMSanJose实验室开发的SystemR;②Berkeley加利福尼亚大学研制的INGRES。经过大量的高层次的研究和开发,关系数据库取得了一系列的成果,主要如下:

(1)奠定了关系模型的理论基础,给出了人们一致接受的关系模型的规范说明。研究了关系数据库理论,主要包括函数依赖、多值依赖、连接依赖、范式等。根据规范化理论,指导数据库设计,将不好的数据库逻辑结构分解。

(2)研究了关系数据语言,有关系代数、关系演算、SQL语言及QBE等。

(3)研制了大量的RDBMS原型,解决了系统实现中查询优化、并发控制、故障恢复等一系列关键技术。

关系数据库是以关系模型为基础的。关系模型由关系代数作为语言模型,由关系数据理论作为理论基础。关系数据库系统具有形式基础好、数据独立性强、数据库语言非过程化等特色,标志着数据库技术发展到了第二代。

·新一代数据库系统。从20世纪80年代以来,数据库技术在商业领域的巨大成功刺激了其他领域对数据库技术需求的迅速增长,但层次、网状和关系数据库系统(统称传统数据库系统)的局限性难于满足新应用的需求。传统数据库系统的局限性主要表现在以下几方面:

(1)面向机器的语法数据模型。传统数据库中采用的数据模型强调数据的高度结构化,只能存储离散的数据和有限的数据与数据之间的关系,语义表示能力差。它无法表示客观世界中结构复杂、相互联系且语义也十分复杂的对象,从而限制了数据库处理文本、超文本、图形、图像、CAD图件、声音等多种复杂对象及工程、地理、测绘等领域中的非格式化、非经典数据的能力。

(2)数据类型简单、固定。

(3)结构与行为完全分离。传统数据库主要关心数据的独立性及存取数据的效率,是语法数据库,语义表达差,难以抽象化地去模拟行为。对象的结构表示可映射到数据库模式,对象的行为特征最多只能由应用程序来表示。

(4)阻抗失配。它主要是指关系系统中,数据操纵语言和通用程序设计语言之间的失配。

(5)被动响应。仅能响应和重做用户要求它们做的事情。

(6)存储、管理的对象有限。仅能存储和管理数据,缺乏知识管理和对象管理的能力。

(7)事务处理能力较差。仅能支持非嵌套事务,对大事务的响应较慢,且在事务发生故障时恢复比较困难。因此,数据库研究人员积极研究支持新一代数据库应用的数据库技术和方法,试图研制和开发新一代数据库管理系统。

面向对象程序设计方法在计算机的各个领域,包括程序设计语言、人工智能、软件工程、信息系统设计以及计算机硬件设计等都产生了深远的影响,也给当时遇到挑战的数据库技术带来了机会和希望。20世纪80年代开始,数据库界广泛开展了面向对象数据库系统(OODBS)的研究。从OO模型、OODBMS实现技术、OODBMS产品研发和应用等各个层面进行了大量的创新工作。20世纪90年代初,OODBS获得了大量的研究成果,开发了很多OODBMS,包括实验系统和产品,OODBS企图挑战关系数据库系统,但由于面向对象数据模型中的许多功能难以实现,面向对象数据库系统过于复杂而不易使用,因此尽管开发出许多OODBMS产品,但是成熟度低,最终没有被市场普遍接受。OODBS没有像关系数据库系统代替层次网状数据库系统那样成为第三代数据库系统的代表。对于什么是第三代数据库系统,专家们并没有形成一致的认识。主要是因为第三代数据库系统不像第二代关系数据库系统那样有统一的、大家公认的数据模型。但是,围绕什么样的数据库系统可以称之为第三代数据库系统这一问题,专家们进行了热烈的讨论和研究。经过大量的研究和讨论,专家们最终达成共识,一致认为第三代数据库系统的基本特征为:支持数据管理、对象管理和知识管理;必须保持或继承第二代数据库系统的技术;必须对其他系统开放(其开放性表现在:支持数据库语言标准,支持标准网络协议。系统具有良好的可移植性、可连接性、可扩展性和可互操作性);数据库技术与其他技术相结合(如分布式数据库、并行数据库、多媒体数据库)等。

数据库技术是一个十分活跃的研究领域,数据、应用需求、计算机硬件及其相关技术的发展是推动数据库发展的三个主要动力或重要因素。随着计算机系统硬件技术的进步及Internet和Web技术的发展,数据库系统所管理的数据以及应用环境发生了很大的变化,表现为数据种类越来越多、数据结构越来越复杂、数据量剧增、应用领域越来越广泛,可以说数据管理无处不需、无处不在,为数据库技术带来了新的需求、新的挑战和发展机遇。当前数据库研究领域的热点包括文本、数据、代码、数据流的集成,异构数据源的信息融合,传感器数据和传感器网络,多媒体查询,不确定数据推理,个性化信息服务和信息处理,针对信息关联性的无人监督数据的挖掘技术,可信系统与信息隐私,DBMS的自适应、自管理和自修复,新型用户界面,数据的永久保存,永恒的查询优化等。

数据库管理系统是数据库系统的核心,是用于建立、使用和维护数据库的一组软件。一般情况下,数据库管理系统建立在操作系统的基础上,是位于操作系统与用户之间的一层数据管理软件,负责对数据库进行统一的管理和控制。数据库管理系统分为多个程序模块,每个模块实现数据库系统的一种功能。数据库管理系统不仅承担执行各种应用程序对数据库中数据的操作命令的工作,还要承担数据库的维护工作,以保证数据库的安全性和完整性。1.3数据库管理系统1.3.1数据库管理系统的主要功能

基于不同数据模型的数据库管理系统的功能一般是不完全相同的,即使是采用相同数据模型的数据库管理系统,它们在用户接口和系统功能等方面也经常是不相同的。虽然不同的数据库管理系统要求的硬件资源、软件环境有所不同,其功能与性能也存在一定的差别,但数据库管理系统的主要功能却是相同的。

1.数据库定义功能

DBMS一般提供数据定义语言来定义构成数据库结构的外模式、模式和内模式,定义两级映射,定义保证数据的完整性约束、保密限制等约束条件。

2.数据库操纵功能

DBMS一般提供数据操纵语言来实现对数据库中数据的基本操作,即查找(或检索)、插入、修改和删除操作。

3.数据库运行控制功能

DBMS包括对数据库进行并发控制、存取控制(安全性检查)、完整性约束的检查和执行、数据库内部的维护(如索引、数据字典的自动维护)等控制功能。这是DBMS运行时的核心部分,所有数据库的操作都要在这些控制程序的统一管理下进行,以保证数据库的正确有效。

4.数据库的建立和维护功能

DBMS包括数据库初始数据的载入、转换;数据库的转储、恢复;数据库的重组织与重构造等功能。

5.数据组织、存储和管理

通常需要在数据库中存放多种数据,如数据字典、用户数据、存取路径等,数据库管理系统负责对这些数据分类进行组织、存储和管理,以确定用何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的联系,以便提高存储空间利用率,提高查询、增加、删除、修改等数据操纵的时间效率。

6.数据通信接口

数据通信接口提供数据库管理系统与其他软件系统进行通信的功能。

现代数据库管理系统应具有友好的用户界面、高级的用户接口、数据查询处理和优化功能、数据目录和管理功能、数据的并发控制功能、数据的恢复功能、数据的安全性和完整性约束检查、数据的访问控制等。1.3.2数据库管理系统的组成

数据库管理系统通常由数据库语言和数据库管理例行程序两大部分组成。

1.数据库语言

数据库语言是为用户提供的。数据库语言包括两个子语言:数据定义语言和数据操纵语言。如众所周知的SQL语言,它是一个集数据定义和数据操纵语言为一体的典型数据库语言。目前出现的关系数据库系统产品几乎都将SQL语言作为标准数据库语言。数据库语言与数据模型密切相关。基于不同数据模型的数据库系统的语言也不完全相同。下面我们只一般性地讨论数据库语言。

1)数据定义语言

数据定义语言(DataDefinitionLanguage,简称DDL)包括数据库模式定义和数据库存储结构与存取方法定义两方面。

数据库模式定义处理程序接收用DDL表示的数据库的外模式、模式、内模式及它们之间的映射,通过各种模式翻译程序将它们翻译成相应的内部表示形式,存储到数据库系统中被称为数据字典的特殊文件中,作为数据库管理系统存取和管理数据的基本依据。存储结构和存取方法定义处理程序接收用DDL表示的数据库的存储结构和存取方法定义,在存储设备上创建相关的数据库文件,建立起物理数据库。

2)数据操纵语言

数据操纵语言(DataManipulationLanguage,简称DML)用来表示用户对数据库的操作请求,是用户与DBMS之间的接口。一般地,对数据库的主要操作包括:查询数据库中的信息、向数据库插入新的信息、从数据库删除信息、修改数据库中的某些信息等。

DML通常又分为两类:一类是嵌入到主语言(如C语言)中,由于这种DML语言本身不能独立使用,故称为宿主型的语言;另一类是交互式命令语言,由于这种DML语言本身能独立使用,故又称为自主型或自含型的语言。

2.数据库管理例行程序

数据库管理例行程序随系统不同而各异。一般包括以下三部分。

1)语言翻译处理程序

语言翻译处理程序包括DDL翻译程序、DML处理程序、终端查询语言解释程序、数据库控制语言的翻译程序等。

2)系统运行控制程序

系统运行控制程序包括系统初启程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序和通信控制程序等。

3)公用程序

公用程序包括定义公用程序和维护公用程序。定义公用程序包括信息格式定义、概念模式定义、外模式定义和保密定义等公用程序。维护公用程序包括数据装入,数据库更新、重组、重构、恢复,统计分析,工作日记,转储和打印等公用程序。1.3.3数据库管理系统的工作流程

在数据库系统中,当一个应用程序或用户需要存取数据库中的数据时,应用程序、数据库管理系统、操作系统和计算机硬件等几方面必须协同工作,共同完成用户的请求。在这个较复杂的运行过程中,数据库管理系统起着关键的桥梁作用。

应用程序A通过数据库管理系统从数据库中访问一个数据需要经过以下几个步骤:

(1)用户通过应用程序A中的某条DML语句向DBMS发出从数据库中访问数据记录的命令。

(2)

DBMS接收到该命令后,对该命令进行语法、语义检查,并从数据字典中调用应用程序A对应的子模式,检查此应用程序的存取权限,决定是否执行该命令。如果拒绝执行,则向应用程序A返回访问失败信息,结束;否则,接着执行。

(3)在执行该命令后,DBMS调用相应的模式描述,依据子模式/模式映像的定义,确定应读入模式中的哪些记录。

(4)

DBMS调用相应的物理模式描述,依据模式/物理模式映像的定义,决定应从哪个文件、用什么存取方式、读入哪个或哪些物理记录。

(5)

DBMS向操作系统发出执行读取所需物理记录的命令。

(6)操作系统执行读数据的有关操作。

(7)操作系统将数据从数据库的存储区送到系统缓冲区。

(8)

DBMS依据子模式/模式映像的定义,导出应用程序A所要读取的记录格式。

(9)

DBMS将数据记录从系统缓冲区传送到应用程序A的变量区。

(10)

DBMS向应用程序A返回命令执行情况的状态信息。

(11)应用程序A根据返回的状态信息决定是否使用程序变量区中的数据。

图1.5表示了应用程序A通过数据库管理系统从数据库中访问一个数据的全过程。

上面对应用程序从数据库中访问一个数据步骤的介绍,已经说明了数据库管理系统的大致工作过程和起到的作用。

图1.5应用程序访问数据库中一个数据的全过程

从不同的角度考查,可得出不同的数据库系统结构的划分。从数据库管理系统角度来看,数据库系统通常采用三级模式结构;从数据库最终用户的角度来看,数据库系统的结构分为单用户结构、主从式结构、分布式结构和客户/服务器结构。下面我们逐一进行介绍。1.4数据库系统结构1.4.1数据库系统的三级模式结构

虽然实际的数据库系统软件产品种类繁多,且它们支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据的存储结构各不相同,但从数据库管理系统的角度看,它们在体系结构上通常都具有三级模式的特征(微机上的个别小型数据库系统除外),并提供两级映像功能。

在数据库系统中,用户看到的数据和计算机中存放的数据是两回事,它们之间通过两次映像变换联系起来。

1.三级模式

数据库的三级模式结构是指数据库系统由外模式、模式和内模式构成。

1)外模式(又称子模式或用户模式)

外模式是数据库用户看见或使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一个应用有关的数据的逻辑表示。外模式由若干个外部记录类型组成。用户使用数据操纵语言的语句对数据库进行操作,实际上就是对外模式的外部记录进行操作。用户对数据库的操作,只能与外模式发生联系,按照外模式的结构存储和操纵数据,不必关心模式。

2)模式(又称逻辑模式或概念模式)

模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式由若干个概念记录类型组成。

3)内模式(又称存储模式)

内模式是数据物理结构和存储结构的描述,即是数据在数据库内部的表示方式。内模式定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。

一个数据库中只有一个内模式和一个模式,但可以有多个外模式。

数据库的内模式依赖于它的全局逻辑结构,但独立于外模式,也独立于具体的存储设备。它将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行有效的组织,以达到较好的时间和空间效率。数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中。模式提供了一种约束其他两级的相对稳定的中间观点,它使得两级中的任何一级改变都不受另一级的牵制。模式位于数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境,也与具体的应用无关。数据库模式以某一种数据模型为基础,综合考虑所有用户的需求,并将这些需求结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑结构,如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等,而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。数据库的外模式是面向应用程序的,它定义在模式之上,独立于内模式和存储设备。模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构,通常它是模式的子集。一方面,对模式中的同一数据,在外模式中的结构、类型、长度、保密级别等都可不同。另一方面,同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据对他们来说是不可见的。由此可见,数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给了数据库管理系统去管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。

图1.6描述了数据库系统的三级模式结构及其映像关系。

图1.6数据库系统的三级模式结构为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了外模式/模式映像和模式/内模式映像两级映像。

2.二级映像

1)外模式/模式映像

外模式/模式映像定义了各外模式和模式之间的对应关系。这些映像定义通常包含在各自外模式的描述中。当模式改变时,由数据库管理员对各个外模式/模式映像作相应的改变,而外模式仍然保持不变,从而应用程序不必修改,保证了数据的逻辑独立性(指当总体逻辑结构改变时,通过对映像的相应改变而保持局部逻辑结构不变,从而应用程序也可以不必改变)。

2)模式/内模式映像

模式/内模式映像定义了数据全局逻辑结构与存储结构之间的对应关系。模式/内模式映像是唯一的,该映像定义通常包含在模式描述中。

当数据库的存储结构发生改变时,由数据库管理员对模式/内模式映像作相应改变,而使模式保持不变,从而保证了数据的物理独立性(指当数据的存储结构改变时,数据的逻辑结构可以不变,从而应用程序也不必改变)。1.4.2数据库系统的体系结构

前面介绍的数据库系统的三级模式结构是从数据库管理系统的角度看的数据库系统结构。若从用户的角度看,它是数据库系统的体系结构,可分为单用户结构、主从式结构、分布式结构和客户/服务器结构。下面逐一做介绍。

1.单用户结构的数据库系统

单用户结构的数据库系统是最简单的数据库系统。在单用户数据库系统中,整个数据库系统,包括应用程序、数据库管理系统、数据库等都装在一台计算机上,由一个用户独占,不同的计算机之间不能共享数据。单用户数据库系统和计算机之间的关系如图1.7所示。

图1.7单用户数据库系统和计算机之间的关系

2.主从式结构的数据库系统

主从式结构的数据库系统是指一个主机带多个终端的数据库系统。在这种结构下,整个数据库系统,包括应用程序、数据库管理系统、数据库等都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的终端并发地存取数据库中的数据,达到共享数据资源的目的。主从式结构的数据库系统如图1.8所示。

图1.8主从式结构的数据库系统

3.分布式结构的数据库系统

分布式结构的数据库系统是指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上的数据库系统。分布式数据库系统网络中的每个结点(通常是一个通用计算机)都可以独立处理本地数据库中的数据,执行局部应用;同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用。分布式结构的数据库系统如图1.9所示。

图1.9分布式结构的数据库系统

4.客户/服务器结构的数据库系统

无论是主从式数据库系统中的主机,还是分布式数据库系统中的每个结点机,它们都是一个通用的计算机,既执行数据库管理系统的功能又执行应用程序。客户/服务器结构的数据库系统能将数据库管理系统功能和应用分开。网络中专门用于执行数据库管理系统功能的计算机,称为数据库服务器,简称服务器;安装数据库管理系统的外围应用开发工具和支持用户应用的计算机,称为客户机。客户/服务器数据库系统又可分为集中的服务器结构数据库系统(如图1.10所示)和分布的服务器结构数据库系统(如图1.11所示)。前者在网络中仅有一台数据库服务器,而客户机是多台。后者在网络中有多台数据库服务器。分布的服务器结构是客户/服务器与分布式数据库的结合。

图1.10集中的服务器结构数据库系统

图1.11分布的服务器结构数据库系统采用客户/服务器结构的数据库系统有如下特点:

(1)客户端的用户请求被传送到数据库服务器,数据库服务器进行处理后,只将结果返回给用户(而不是所有数据),从而极大地减少了网络负载,提高了系统的处理速度和性能。

(2)由于客户与服务器都能在多种不同的硬件和软件平台上运行,并可以采用不同的数据库开发工具,因此,应用程序编写更灵活,移植性更好,且软件维护更容易。1.4.3数据库系统的组成

数据库系统是指具有管理和控制数据库功能的计算机系统。它通常由硬件系统、数据库、软件支持系统、数据库管理员和用户五部分组成。

1.数据库

前面已经简单地介绍了数据库概念,下面从另一个角度解释它。

数据库是与一个特定组织各项应用有关的全部数据的集合。

数据库通常由两部分组成:物理数据库和描述数据库。

(1)应用所需要的数据的集合,称为物理数据库(或数据库),它是数据库的主体;

(2)关于各级数据结构的描述,称为描述数据库,由数据字典管理。

数据字典(DataDictionary,简称DD)是数据库系统中各种描述信息和控制信息的集合,是数据库设计和管理的有力工具,又称为“数据库的数据库”。数据字典的基本内容包括数据项、组项(若干个数据项的组合)、记录、文件、外模式、模式、内模式、外模式/模式映像、模式/内模式映像、用户管理信息和数据库控制信息等。它的主要作用是:提供数据库管理系统快速查找有关对象的信息;提供数据库管理员查询,以掌握整个系统的运行情况;支持数据库设计和系统分析。现在,有的大型系统中把数据字典单独抽出来自成一个系统,成为一个软件工具,使之成为一个比数据库管理系统更高级的用户与数据库之间的接口。

2.硬件系统

硬件系统包括中央处理机、内存、外存、输入/输出设备、数据通道等硬件设备。对数据库系统来说,特别要关注内存和外存的容量、I/O存取速度、通道能力、可支持终端数和性能稳定性等指标,有些应用中还需要考虑系统支持联网的能力等。

3.软件支持系统

软件支持系统包括数据库管理系统、操作系统、各种宿主语言和实用程序等。数据库管理系统是管理数据库的软件,它必须在操作系统的支持下才能工作。为了开发应用程序,还需要各种宿主语言,并且应与数据库管理系统有良好的接口。

4.数据库管理员

数据库管理员(DataBaseAdministrator,简称DBA)是负责全面管理和控制数据库系统正常运行的人员,承担着创建、监控和维护整个数据库结构的责任。DBA的素质在一定程度上决定了数据库的应用水平,所以他们是数据库系统中最重要的人员。

DBA的主要职责包括:

(1)确定数据库中的内容和结构。DBA根据用户的需求,创建数据库的结构,确定数据库中存放的内容。即他必须参与数据库设计的全过程,与用户、应用程序员和系统分析员密切结合,设计概念模式、数据库逻辑模式以及各个用户的外模式。

(2)确定数据库的存储结构和存取方法。DBA决定数据库的存储结构和存取方法,设计数据库的内模式。

(3)重新构造数据库。根据用户的需要,DBA能对数据库进行较大的修改,包括修改内模式或模式。

(4)维护数据库,定义数据的安全性要求和完整性约束条件。DBA负责维护数据库,为了保证数据库中的数据的安全性,数据库中的内容对DBA应该是有封锁的。同时根据需要,DBA应编写完整性规则,以监督数据库的运行。

(5)监控数据库的使用和运行。DBA负责监视数据库系统的运行情况,分析数据库系统的性能,及时处理运行过程中出现的问题,控制和授权不同用户访问数据库的权限,定期对数据库进行重新组织。

(6)转储和恢复数据库。为了减少硬件、软件或人为故障对数据库系统的破坏,DBA必须提供周期性的转储数据,填写维护日志文件和恢复策略。

通过前面的介绍,我们已经知道,在一台能够满足数据库应用开发需求的计算机上应先安装一个具体的数据库管理系统,而它必须安装在一个具体的操作系统之上,然后开发人员根据用户需求开发一个具体的应用系统,从而形成一个完整的数据库系统。数据库管理员的任务就是管理和维护这个数据库系统,使之正常运行。在具备了硬件环境、操作系统等其他系统软件和某个具体的数据库管理系统的情况下,对数据库应用开发人员来说,就是如何使用这个环境以表达用户的要求,将之转换成有效的数据库结构,构成较优的数据库模式等,这就涉及到数据库设计问题。

现在,各种软件的开发都是遵循某种标准,实施开放的开发机制,数据库厂商也不再需要提供全套的与数据库相关的软件,只需要按照统一的标准为其他软件商的开发工具提供连接数据库和使用数据库的接口即可。

目前,数据库应用系统开发中使用的模式主要有两种,即C/S模式和B/S模式。1.5数据库应用系统开发简介1.5.1C/S模式

C/S(Client/Server,客户机/服务器)模式又称C/S结构,是软件系统体系结构的一种。C/S结构以网络环境为基础,将应用划分为前端和后端两部分。前端为客户机,负责用户界面处理以及向服务器发送用户请求和接收服务器回送的处理结果,即完成用户界面的表示逻辑和应用的业务逻辑;后端为服务器,负责数据库的管理,按用户要求进行数据处理并回送处理结果等,即完成数据服务功能。两层C/S模式结构如图1.12所示。

图1.12两层C/S模式结构从用户的角度看,C/S结构由三部分组成,即客户机、服务器、客户机与服务器之间的连接件。客户机是一个面向最终用户的接口或应用程序。它通过向一个设备或应用程序(服务器)请求信息,然后将信息显示给用户。客户机把大部分数据处理工作留给服务器。通过将数据分析和图形表示从服务器上分离下来,客户机硬件便能极大地减少网络上的传输事务,使网络能为用户提供更加有效的信息流。服务器的主要功能是定位网络服务地址、监听客户机的调用、处理客户机的请求、为客户机的请求提供所要求的服务、将结果交给客户机与客户机的连接。客户机与服务器的连接是通过网络连接实现的。对应用开发人员来说,客户机与服务器之间的连接主要是它所能使用的软件工具和标准接口,如ODBC、ADO等。

C/S模式是主要针对局域网的应用环境设计的。随着应用系统规模的扩大,C/S模式的某些缺点也表现得非常突出,具体体现在如下几个方面:

(1)由于服务器返回给客户机的只是简单的运算结果,因此在客户机上还需要对结果数据进行进一步的处理才能得到真正需要的内容,这就要求在客户机上安装相应的处理程序。

(2)由于各个局域网系统的配置和实现方法不同,客户机和服务器的通信方法也不尽相同,因此只有符合该局域网规范的客户机才能实现同服务器的通信,而不是任意一台计算机都能访问服务器,这就要求客户机的位置相对固定。

(3)对于那些经常移动的用户和位于远端的用户,客户机的配置非常麻烦,因为这不仅要求客户机与服务器使用相同的通信协议,还必须在客户机上安装同样的客户端程序。当需要对客户端应用程序进行更新或升级时,必须对每个客户端进行相同的工作,这给维护工作带来很大困难。1.5.2B/S模式

由于C/S模式的应用局限,B/S(Browser/Server,浏览器/服务器)模式(又称B/S结构)成为越来越多的企业的选择。B/S结构实际上是对C/S模式应用的扩展,是根据广域网的特点对C/S结构进行的改进。即将应用逻辑(或业务逻辑/商业逻辑)从用户端分离出来,成为单独的应用逻辑层,于是就形成了三层或多层的浏览器/服务器体系结构(如图1.13所示),所对应的三层分别称为表示层、逻辑层和数据层。表示层又称为界面层,它提供给用户一个可视界面,用户可以用来输入数据或获取数据。它同时也提供一定的安全性验证,确保用户不会看到机密的信息。逻辑层(也称中间层或中间代理层)是界面层和数据层之间的桥梁。它响应界面层的用户请求,执行任务并从数据层获取数据,然后将必要的数据传递给界面层。逻辑层封装了系统的应用逻辑,应用系统的大部分计算工作在此完成。数据层负责数据的存储,并维护数据的完整性和安全性。它响应逻辑层的请求,向逻辑层提供数据。这一层通常由大型的数据库服务器实现,如SQLServer、Oracle、SyBase、MySQL等。

图1.13多层B/S模式结构在B/S结构下,用户工作界面是通过IE浏览器来实现的,主要包括浏览器、应用服务器和数据库服务器三部分,称为B/S三层结构。其中,客户机负责显示和与用户交互,主要提供用户的界面操作,并不执行任何计算功能,因此经常称之为浏览器;应用服务器实现应用逻辑,包含了应用系统中完成业务处理的程序(通常是以组件形式出现的),负责接收和处理对数据库的查询和操纵请求;数据库服务器用于存放和管理用户数据,负责数据管理。在应用服务器与数据库服务器之间,可以利用ODBC/JDBC/OLEDB/ADO等接口完成数据库操作。如果将B/S三层结构的中间逻辑层再细分,就形成所谓的B/S多层结构。

B/S模式最大的好处是运行和维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(如局域网(LAN)、广域网(WAN)、Internet/Intranet等)访问和操作共同的数据。1.5.3ODBC/JDBC/OLEDB/ADO

无论是基于C/S模式的数据库应用系统的开发,还是基于B/S模式的数据库应用系统的开发,应用程序开发的过程都可以不依赖于具体关系型数据库管理系统(RDBMS),而是通过一种遵循标准SQL语句的、访问DB的中间件来完成。ODBC/JDBC/OLEDB/ADO正是为各种高级程序语言或应用系统提供标准SQL数据访问的中间件。ODBC/JDBC/OLEDB/ADO提供了数据库访问的统一、标准的接口函数,为应用程序实现RDBMS平台无关性和可移植性奠定了基础,为应用程序提供了开放式客户体系结构。

1.ODBC

ODBC(OpenDataBaseConnectivity)的全称是开放数据库连接,是Microsoft公司推出的应用程序编程接口标准,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。

为达到RDBMS平台的无关性,ODBC采用四层体系结构,包括应用程序、ODBC驱动程序管理器、各数据源的ODBC驱动程序和各厂商的数据源。ODBC体系结构见图1.14。应用程序通过调用ODBC函数可以完成对数据库的访问操作,它所执行和完成的主要任务包括连接数据源、提交SQL语句给数据源、检索结果并处理错误、提交或者回滚SQL语句的事务、与数据源断开连接等。

图1.14ODBC体系结构驱动程序管理器负责为应用程序加载/卸载它们所需要的驱动程序,处理一部分ODBC函数调用或者将这些函数调用传送到相应的驱动程序。

驱动程序是真正实现ODBC函数调用和访问数据库的动态连接函数库,不同类型的数据库有不同的驱动程序。它负责处理ODBCAPI函数调用,将应用程序的SQL请求提交给指定的数据源,并获取数据源返回的结果给应用程序。ODBC驱动程序通常由各数据库厂商提供,一般以DLL形式加载于客户端,提供ODBC函数调用。安装驱动程序时,需要向ODBC驱动程序管理器注册。

数据源是用户、应用程序要访问的数据库以及访问它们需要的有关信息。

一个基于ODBC的应用程序对数据库的操作不依赖于任何DBMS,不直接与DBMS打交道,所有的数据库操作都由对应的DBMS的ODBC驱动程序完成。也就是说,不论是SQLServer、Access还是Oracle数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据。

2.JDBC

JDBC(JavaDataBaseConnectivity,Java数据库连接)是使用Java语言实现数据库访问的应用程序编程接口,与Microsoft的ODBC一样,也是基于X/OpenSQLCLI的,它保持了ODBC的基本设计特征,其最大不同是它是基于Java的风格和优点的。

JDBC是Sun公司针对Java编程语言提出的与数据库连接的API标准,开发人员利用JDBCAPI,可以向任何相应的数据库发送SQL语句。它实现了一个独立于特定数据库管理系统DBMS的通用SQL数据访问和存储结构。使用JDBC,可以在不同的数据库功能模块层次上提供统一的用户界面,这样,开发人员可以在简单的数据库界面上实现不同的数据库连接,开发出功能强大的Java数据库应用程序。

JDBCAPI是一系列抽象的接口,应用程序开发人员通过它可以编写访问数据库的Java应用程序。JDBCAPI中,抽象类的实现是由驱动程序开发商提供的。驱动程序实现了应用程序和某个数据库产品之间的接口,驱动程序管理器对应用程序和驱动程序之间的交互进行控制。JDBCAPI主要用来连接数据库和直接调用SQL命令,执行各种SQL语句。

JDBC驱动程序可以分为下面四种类型:

(1)

JDBC-ODBC桥驱动程序。它是将JDBC的调用转换成ODBC的调用并送至ODBC的驱动程序。由于ODBC在市场上被广泛支持,因此,它是一种现成可用的驱动程序。其缺点是客户端的机器需要安装数据库的客户端链接库,并且由于它需要经过多层转换,其效率较差,并不适合用于大量数据处理的情况。

(2)本地API的Java驱动程序。这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、SQLServer或其他DBMS的调用。注意,像JDBC-ODBC桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。

(3)

JDBC网络纯Java驱动程序。这种驱动程序将JDBC转换为与DBMS无关的网络协议,然后这种协议又被某个中间件服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上,但是所用的特定协议取决于供应商。通常,这种方式是JDBC最方便的选择,供应商可为Intranet用户提供产品套件。为了使这些产品也支持Internet访问,他们必须处理Web所提出的安全性、通过防火墙的访问等方面的额外要求。各个供应商正在他们现有的数据库中间件产品中增加JDBC驱动程序。该类型的驱动程序是网络协议完全Java技术性能的驱动程序,它为Java应用程序提供一种进行JDBC调用的机制。

(4)本地协议纯Java驱动程序。这种驱动程序转换JDBC调用,是由DBMS直接使用的网络协议。这种方式允许从客户机端直接调用DBMS服务器,是Intranet访问的一个很实用的解决方案。由于许多这样的协议都是专用的,因此数据库供应商将成为这种驱动程序的主要来源。

3.OLEDB与ADO

尽管ODBC是一种很好的数据库访问技术的标准,但缺乏对新型数据源(如邮件数据、Web上的文本或图形、目录服务及其他非关系型数据等)进行访问的良好技术支持,故Microsoft又提出了一种新的通用数据访问(UniversalDataAccess,简称UDA)策略,该策略为关系型或非关系型数据访问提供了一致的数据接口访问标准。

UDA包括两层软件接口:ADO(ActiveXDataObjects)和OLEDB(ObjectLinkingandEmbeddingDataBase),对应于不同层次的应用程序开发,其层次结构如图1.15所示。

温馨提示

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

评论

0/150

提交评论