Oracle应用开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 数据库概述

今天是一个信息化的时代,各行各业,都有海量的数据需要存储或处理,如搜索引擎、电子地图、大中型企业的生产数据等。如何更加安全地存储数据,更加快速地检索和处理数据,都是数据库技术需要研究的问题。在系统地介绍数据库技术之前,首先介绍一些数据库的常用术语和基本概念。

1.1.1 数据库基本概念

在数据库技术中,数据、数据库、数据库管理系统和数据库系统是密切相关的4个基本概念。此外,在本节中将简要介绍关系型数据及关系型数据库管理系统的基本概念。

1. 数据(Data)

数据是数据库中存储的基本对象。这里所指的数据是一个广义的概念,对于数据,传统的理解仅限于数字,但是数据库中数据的概念并不只是数字。数据库中数据的概念和种类很多,如文字、图形、图像、声音、视频、部门员工信息、企业生产数据,甚至内存中的一个对象等,这些都是数据。

因此,可以给数据库中的数据下一个广义的定义。

定义 描述事物的符号记录称为数据。这个符号的内容形式包括上文中提到的各种信息类型。数据虽然有许多种表现形式,但都需要经过数字化后存入计算机。

数据的形式本身并不能完全表达其内容,需要经过语义解释,因此数据与其语义是不可分的。

在日常生活中,人们直接使用语言(如英语、汉语)进行信息交流。在计算机中,为了存储和处理现实世界中的这些抽象的信息,就要从这些事物中抽取出重要且有用的信息来组成一个记录描述给计算机。例如,在某特定环境中,对于雇员有用的信息是雇员编号、姓名、工作、部门负责人、薪资、部门,那么可以描述如下:

(7369,SMITH,CLERK,7902,17-12月-80,800,20)

上面的雇员信息就是数据。对于上面的雇员记录,通过了解其语义,可以得知:该雇员叫“SMITH”,雇员编号“7369”,从事的工作“CLERK”,受雇时间“17-12月-80”,所属部门的部门编号为“20”,部门负责人的编号为“7902”。而不了解数据语义,则很难理解其含义,可见数据和语义是不可分的。数据的解释是指对数据含义的说明,数据的含义称为数据的语义。

2. 数据库(DataBase,DB)

数据库的概念从不同的角度来描述就有不同的定义。例如,称数据库是一个“记录保存系统”(该定义强调了数据库是若干记录的集合)。又如称数据库是“人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合”(该定义侧重于数据的组织)。更有甚者称数据库是“一个数据仓库”。当然,这种说法虽然形象,但并不严谨。

严格地定义数据库,如下所示。

定义 数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位雇员的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个“数据仓库”就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等。这些工作如果都能在计算机上自动进行,那企业的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种“数据库”,使其可以利用计算机实现财务、仓库、生产的自动化管理。

詹姆斯.马丁(J.Martin)给数据库下了一个比较完整的定义。

定义 数据库是存储在一起的相关数据的集合,这些数据是结构化的、无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。

3. 数据库管理系统(DataBase Management System,DBMS)

了解数据和数据库的概念之后,亟待解决的问题是如何科学地组织和存储数据以及如何高效地检索和维护数据。解决这些问题的是一个系统软件,即数据库管理系统。

数据库管理系统是一个通用的管理数据库的软件系统,是由一组计算机程序构成的。数据库管理系统负责数据库的定义、建立、操纵、管理和维护,能够对数据库进行有效的管理,包括存储管理、安全性管理、完整性管理等。数据库管理系统提供了一个软件环境,使用户能方便快速地建立、维护、检索、存取和处理数据库中的信息。

数据库管理系统实现数据库系统的各项功能。应用程序必须通过DBMS访问数据库。DBMS可以看成是操作系统的一个特殊用户,它向操作系统申请所需的软硬件资源,并接受操作系统的控制和调度。操作系统则是DBMS与硬件之间的接口,是DBMS的基础。

4. 数据库系统(DataBase System,DBS)

数据库系统是指在计算机系统中引入数据库后的系统,其严格定义如下。

定义 数据库系统是由数据库及其管理软件组成的系统。它是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。它是一个实际可运行的,并且能够存储、维护和为应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。

数据库系统一般由数据库、数据库管理系统、数据库管理员(DBA)及用户和应用程序4个部分组成。其核心是数据库管理系统。

5. 关系型数据库管理系统(Relational DataBase Management System,RDBMS)

RDBMS指的是关系型数据库管理系统,它是通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据的,其中,关系型数据库是建立关系模型基础之上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

此外,RDBMS是SQL的基础,同样也是所有现代数据库系统的基础,如MS SQL Server、IBM DB2、Oracle、MySQL等。

RDBMS中的数据存储在被称为“表(Table)”的数据库对象中,其中,表是相关的数据项的集合,它由列和行组成。

RDBMS的特点如下。

█ 数据以表格的形式出现;

█ 每行为各种记录名称;

█ 每列为记录名称所对应的数据域;

█ 许多的行和列组成一张表;

█ 若干个表组成DataBase。

数据、数据库、数据库管理系统、数据库系统以及关系型数据库,5个基本概念的相互关系如下。

█ 数据是数据库存储的基本对象,描述事物的符号;

█ 数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合;

█ 数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行;

█ 数据库系统是指在计算机系统中引入数据库后的操作系统;

█ 关系型数据库是建立关系模型基础之上的数据库。

注意 关于关系模型的概念参见1.3节。

1.1.2 数据库发展史

数据库的历史可以追溯到20世纪50年代,那时的数据管理非常简单。通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果可以在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理的储存和处理。然而,1951年雷明顿兰德公司(Remington Rand Inc.)的一种叫作Univac I的计算机推出了一种一秒钟可以输入数百条记录的磁带驱动器,从而引发了数据管理的革命。

研制计算机的初衷是利用它执行科学计算。随着计算机技术的发展,其应用远远超出了这个范围。在应用需求的推动下,在计算机硬件、软件发展的基础上,数据库管理技术经历了人工管理、文件系统、数据库系统、高级数据库系统4个阶段,下面分别来讲解这4个阶段。

1. 人工管理阶段

20世纪50年代中期之前,计算机的软硬件均不完善。硬件存储设备只有磁带、卡片和纸带,软件方面还没有操作系统,当时的计算机主要用于科学计算。这个阶段由于还没有软件系统对数据进行管理,程序员在程序中不仅要规定数据的逻辑结构,还要设计其物理结构,包括存储结构、存取方法、输入/输出方式等。当数据的物理组织或存储设备改变时,用户程序就必须重新编制。由于数据的组织面向应用,不同的计算程序之间不能共享数据,使得不同的应用之间存在大量的重复数据,很难维护应用程序之间数据的一致性。

这一阶段的主要特征可归纳为如下几点。

█ 计算机中没有支持数据管理的软件;

█ 数据组织面向应用,数据不能共享,数据重复;

█ 在程序中要规定数据的逻辑结构和物理结构,数据与程序不独立;

█ 数据处理方式——批处理。

2. 文件系统阶段

20世纪50年代中期到60年代中期,由于计算机大容量存储设备(如硬盘)的出现,推动了软件技术的发展,而操作系统的出现标志着数据管理步入一个新的阶段——文件系统阶段。在这个阶段数据以文件为单位存储在外存储器且由操作系统统一管理。操作系统为用户使用文件提供了友好界面,并且文件的逻辑结构与物理结构脱离、程序和数据分离,从而使数据与程序有了一定的独立性。用户的程序与数据可分别存放在外存储器上,各个应用程序可以共享一组数据,实现了以文件为单位的数据共享。

但由于数据的组织仍然是面向程序的,所以存在大量的数据冗余。而且数据的逻辑结构不能方便地修改和扩充,数据逻辑结构的每一点微小改变都会影响到应用程序。由于文件之间互相独立,因而它们不能反映现实世界中事物之间的联系,操作系统不负责维护文件之间的联系信息,如果文件之间有内容上的联系,那也只能由应用程序去处理。

3. 数据库系统阶段

20世纪60年代后,随着计算机在数据管理领域的普遍应用,人们对数据管理技术提出了更高的要求:希望面向企业或部门;以数据为中心组织数据,减少数据的冗余;提供更高的数据共享能力;同时要求程序和数据具有较高的独立性,当数据的逻辑结构改变时,不涉及数据的物理结构,也不影响应用程序,以降低应用程序研制与维护的费用。数据库技术正是在这样一个应用需求的基础上发展起来的。数据库技术具有如下特点。

█ 面向企业或部门,以数据为中心组织数据,形成综合性的数据库,为各应用共享;

█ 采用一定的数据模型,数据模型不仅要描述数据本身的特点,而且要描述数据之间的联系;

█ 数据冗余小,易修改、易扩充。不同的应用程序根据处理要求,从数据库中获取需要的数据,这样就减少了数据的重复存储,也便于增加新的数据结构,便于维护数据的一致性;

█ 程序和数据有较高的独立性;

█ 具有良好的用户接口,用户可方便地开发和使用数据库;

█ 对数据进行统一管理和控制,提供了数据的安全性、完整性以及并发控制。

从文件系统发展到数据库系统,这在信息领域中具有里程碑的意义。在文件系统阶段,人们在信息处理中关注的中心问题是系统功能的设计,因此程序设计占主导地位;而在数据库方式下,数据开始占据了中心位置,数据的结构设计成为信息系统首先关心的问题,而应用程序则以既定的数据结构为基础进行设计。

4. 高级数据库系统阶段

高级数据库系统阶段的主要标志是分布式数据库系统和面向对象数据库系统的出现。第3阶段数据库系统是一种集中式的数据系统。集中式系统的缺点是随着数据量的增加,系统相当庞大、操作复杂、开销大,而且因为数据集中存储,所以大量的通信都要通过主机完成,这样易造成拥挤。分布式数据库系统的主要特点是数据在物理上分散存储,在逻辑上是统一的。分布式数据库系统的多数处理就地完成,各地的计算机由数据通信网络相联系。

面向对象数据库系统是面向对象的程序设计技术与数据库技术相结合的产物。面向对象数据库系统的主要特点是具有面向对象技术的封装性和继承性,提高了软件的可重用性。

分布式数据库系统是数据库技术和计算机网络技术相结合的产物,在20世纪80年代中期已有商品化产品问世。分布式数据库是一个逻辑上统一、地域上分散的数据集合,是计算机网络环境中各个节点局部数据库逻辑集合,同时受分布式数据库管理系统的控制和管理。其主要特点是:

█ 局部自主

网络上每个节点的数据库系统都具有独立处理本地事物的能力,而且各局部节点之间也能够相互访问、有效地配合处理更复杂的事物。因此,分布式数据库系统特别适合各个部门地理位置分散的组织机构。例如,银行业务、飞机订票、企业管理等。

█ 可靠性和可用性

分布式系统比集中式系统有更高的可靠性,在个别节点或个别通信链路发生故障的情况下可以继续工作。一个局部系统发生故障不至于导致整个系统停顿或破坏,只要有一个节点上的数据备份是可用的,系统就可以继续工作。可见,支持一定程度的数据冗余是为充分发挥分布式数据库系统优点的先决条件之一。

█ 效率和灵活性

分布式系统分散了工作负荷,缓解了单机容量的压力,分布式数据库系统能够在对现有系统影响最小的情况下实现扩充。因此,扩大系统规模比集中式系统更加方便、经济、灵活。

分布式数据库系统示意图如图1-1所示。

图1-1 分布式数据库系统示意图

1.1.3 数据库特征

与人工管理阶段和文件系统阶段相比,数据库系统的特点主要有以下几个方面。

数据结构化:数据结构化是数据库与文件系统的根本区别。在描述数据时不仅要描述数据本身,还要描述数据之间的联系。

数据的共享性:数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户共享和应用。

数据冗余度低:数据冗余度是指同一数据重复存储时的重复程度。因为数据库系统的共享性降低了数据的冗余度。

数据的一致性:数据的一致性是指同一数据不同副本的值一样,而在采用人工管理或文件系统管理时,由于数据被重复存储,当不同的应用使用和修改不同的副本时就易造成数据的不一致。

物理独立性:当数据的存储结构(或物理结构)改变时,通过对映像的相应改变可以保持数据的逻辑结构不变,从而应用程序也不必改变。

逻辑独立性:当数据的总体逻辑结构改变时,通过对映像的相应改变可以保持数据的局部逻辑结构不变,应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改。

数据的安全性(Security):数据的安全性是指保护数据,防止不合法使用数据造成数据的泄密和破坏,使每个用户只能按规定对某些数据以某些方式进行访问和处理。

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

并发(Concurrency)控制:当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果并使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。

数据库恢复(Recovery):计算机系统的硬件故障、软件故障、操作员的失误以及人为的破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(也称为“完整状态”或“一致状态”)的功能。

1.1.4 常见数据库

数据库技术经过几代的发展,现在已经非常成熟。当前阶段在市场占主要市场份额的数据库如表1-1所示。

表1-1 常见数据库

1. Oracle

Oracle数据库在价格定位上更着重于大型的企业数据库领域。对于数据量大、事务处理繁忙、安全性要求高的企业,Oracle无疑是比较理想的选择。随着Internet的普及,带动了网络经济的发展,Oracle适时地将自己的产品紧密地和网络计算结合起来,成为在Internet应用领域数据库厂商的佼佼者。

2. DB2

DB2系统在企业级的应用中十分广泛,目前全球DB2系统用户超过6000万,分布于约40万家公司。

3. SQL Server

SQL Server可以与Windows操作系统紧密集成,这种安排使SQL Server能充分利用操作系统所提供的特性,不论是应用程序开发速度还是系统事务处理运行速度,都能得到较大的提升。另外,SQL Server可以借助浏览器实现数据库查询功能,并支持内容丰富的扩展标记语言(XML),提供了全面支持Web功能的数据库解决方案。对于在Windows平台上开发的各种企业级信息管理系统来说,不论是C/S(客户机/服务器)架构还是B/S(浏览器/服务器)架构,SQL Server都是一个很好的选择。SQL Server的缺点是只能在Windows系统下运行。

4. MySQL系列

MySQL是一个小型关系型数据库管理系统,与其他的大型数据库,例如Oracle、DB2、SQL Server等相比,MySQL有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。这4个软件都是自由或开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。