ORACLE 11g权威指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 数据库基础简介

在日常工作中,需要处理的数据量往往会很大,为便于计算机对其进行有效的处理,可以将采集的数据存放在建立于磁盘、光盘等外存媒介的“库”中,这个“库”就是数据库。将数据集中存放在数据库中,便于对其进行处理,提炼出对决策有用的数据和信息。这就如同一个工厂生产出产品要先存放在仓库中,既便于管理,又便于分期分批地销售;一个学校采购大量的图书存放在图书馆(书库),供学生借阅。因此,数据库就是在计算机存储器中用于存储数据的仓库。

与货仓、书库需要管理员和一套管理制度一样,数据库的管理也需要一个管理系统,这个管理系统就称为数据库管理系统(DataBase Management System,DBMS)。以数据库为核心,并对其进行管理的计算机系统称为数据库系统。

1.1 数据库起源

数据管理的发展经历了人工管理、文件系统和数据库系统三个阶段。

在人工管理阶段,由于缺乏软件系统对数据进行管理及计算机硬件的限制,数据的管理都是靠人工进行的,而计算机只能对数据进行计算。当时对数据处理的过程是,先将程序和数据输入计算机,运行结束后,再将结果输出,由人工保存,计算机并不存储数据。

20世纪50年代后期至60年代中期,计算机外存得到了发展,软件也有了操作系统,对数据管理便产生了文件系统。在文件系统阶段,数据是以数据文件的形式存放的,在一个文件中包含若干个“记录”,一个记录又包含若干个“数据项”,用户通过对文件的访问实现对记录的存取,这种数据管理方式称为文件管理系统。文件管理系统的致命缺点是数据的管理没有实现结构化组织,数据与数据之间没有联系,文件与文件之间没有有机的联系,数据不能脱离建立其数据文件的程序,从而也使文件管理系统中的数据独立性和一致性差,冗余度大,限制了大量数据的共享和有效应用。

20世纪60年代末期,随着计算机技术的发展,为了克服文件管理系统的缺点,人们对文件系统进行了扩充,研制了一种结构化的数据组织和处理方式,即数据库系统。数据库系统建立了数据与数据之间的有机联系,实现了统一、集中、独立地管理数据,使数据的存取独立于使用数据的程序,实现了数据共享。

1.2 数据库主要特征

数据库技术在20世纪60年代后期发展起来以后,在计算机应用中得到了迅速的发展。目前,已经成为信息管理的最新、最重要的技术。数据库具有以下主要特征。

◎ 数据结构化。数据库中的数据不再像文件系统中的数据那样从属特定的应用,而是按照某种数据模型组织成为一个结构化的数据整体。它不仅描述了数据本身的特性,而且描述了数据与数据之间的种种联系,使数据库具备了复杂的内部组织结构。

◎ 实现数据共享。这是数据库技术先进性的重要体现。由于数据库中的数据实现了按某种数据模型组织为一个结构化的数据,实现了多个应用程序、多种语言及多个用户共享一个库中的数据,甚至在一个单位或更大的范围内共享,大大提高了数据的利用率,提高了工作效率。

◎ 减少数据冗余度。在数据库技术之前,许多应用系统都需要建立各自的数据文件,即使是相同的数据,也都需要在各自的系统中保留,造成大量的数据重复存储,这一现象称为数据的冗余。由于数据库实现了数据共享,减少了存储数据的重复,节省了存储空间,减少了数据冗余。

◎ 数据独立性。数据库技术中的数据与程序相互独立,互不依赖,不因一方的改变而改变另一方,这大大简化了应用程序设计与维护的工作量,同时,数据也不会随程序的结束而消失,可长期保留在计算机系统中。

1.3 数据库构成

一个数据库是由若干数据表以及其衍生对象组成的。表中的每行称为记录,每列称为字段。表是一组彼此相关的记录的组合。例如:有一张包含公司中每位员工的信息的表。一个记录里有一名员工的姓名、地址、薪水等数据。一个字段(或者说一列)是一个记录中一个单独的数据。例如:一名员工的姓名或地址。

表1-1是一个典型的数据表的例子,从中可以清楚地看到,每个人的信息就是一条记录,而诸如姓名、地址、年龄等信息称为字段。通过记录和字段的对应可以得到唯一的数据值。

表1-1 数据库示例表

数据库中由表衍生出来的对象,如视图、索引、函数、存储过程等,这些对象对于数据库的管理和维护起到了不可或缺的作用。

1.4 数据库管理系统

前面已经提到,数据库管理系统实际上是一种用来管理信息列表的手段,这些信息可以来自不同的地方,例如,它可以代表研究数据、业务记录、顾客请求、运动数据统计、销售报告、个人爱好信息、人事记录、问题报告或学生成绩等。

数据库管理系统的优势在组织和管理的信息很庞大或很复杂、用手工处理极为繁重时能够充分地体现出来。当然,每天处理数百万个业务的大公司可以使用数据库。但是,即使只涉及个人爱好的单一人员维护信息的小公司也可能会需要数据库。

数据库管理系统用来处理诸如人们用文件柜来完成的一系列任务。从某种意义上说,数据库就像一个大文件柜,一个内建的文件编排系统。电子化处理记录相对手工处理记录有很多优点。

◎ 减少记录编档时间。只要将记录放入文件编排系统,并令文件编排系统将该记录放入正确的位置即可。

◎ 减少记录检索时间。在查找记录时,不需逐一查看每个记录以找到所需信息。

◎ 灵活的查找序列。不需按记录存放的固定序列查看(例如,按姓氏查找)。可以要求文件编排系统以任意的序列查出记录;如按姓、保险公司名、最后光临日期等提取记录。

◎ 灵活的输出格式。找到所需记录后,不需手工拷贝其信息。可以由文件编排系统自动生成清单,也可以只打印输出所需信息。

◎ 多个用户同时访问记录。提供多个用户同时查找的能力,从而使得多个人可同时访问相同的记录,而不必等一个人查找完成以后,另外一个人才能进行查找工作。

数据库服务器是解决信息管理的主要工具。一般情况下,服务器必须在多用户环境中管理大量数据,使得多个用户能够并行访问,所有这些必须能够在高性能的情况下完成。数据库服务器必须防止未经授权的非法访问,保护敏感数据,同时为故障恢复提供解决方案。

注:为了使读者能够进一步明确数据库、数据库管理系统及数据库服务器之间的关系,这里再次给出简单的说明,以便读者理解这些最基本的概念。

◎ 数据库:存放数据;

◎ 数据库管理系统:管理和控制数据库;

◎ 数据库服务器:运行数据库管理系统,对数据库实施管理和控制的服务器(PC或大型服务器)。

1.5 关系数据库

下面阐述关系数据库的产生历史及其术语,并讲解关系数据库的一般特性。

1.关系数据库的产生历史

数据处理是现代计算机应用中的一个重要组成部分。数据处理是指对各种形式的数据进行分类、组织、编码、存储、检索和维护等一系列活动的总和。其目的是从大量的、原始的数据中抽取、推导出对人们有价值的信息,作为行动和决策的依据;也是为了借助计算机科学地保存和管理复杂的大量数据,以便人们能方便而充分地利用这些宝贵的信息资源。

随着计算机硬件和软件的发展,数据处理也在不断发展。前面提到了数据处理的三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。数据库系统也经历了相应的三个阶段。然而,自从IBM公司提出关系数据库概念以来,数据库系统的发展向前迈进了一大步,自此出现了众多的关系数据库系统产品,如微软的SQL Server、IBM的DB2、Sysbase及本书要介绍的Oracle等。

2.关系数据库的定义

关系数据库是指一些相关的表和其他数据库对象的集合,这个定义表达了三部分含义。第一,在关系数据库中,信息被存放在一张二维表(table)中,一个关系数据库包含多个数据表,每一个表又包含行(记录)和列(字段)。可以将表想象为一个电子表格,其中,与行对应的是记录,与列对应的是字段。第二,表与表之间是相互关联的。表之间的这种关联性是由主键和外键所体现的参照关系实现的。第三,数据库不仅包含表,而且包含了其他数据库对象,如视图、存储过程、索引等。

关键字(key)是关系模型中的一个重要概念,它是一个逻辑结构,不是数据库的物理部分,分为主关键字和外部关键字两种。

主关键字(primary key)是指表中的某一列,该列的值唯一标识一行。

主关键字实施实体完整性,即每一个主关键字的值必须唯一,而且不允许为NULL或重复。外部关键字(foreign key)是指表中含有与另一个表的主关键字相对应的列组,该列组称为外关键字。从定义可以看出,外关键字也是由一个或多个列组成的。

在关系数据库中,表之间的联系是通过相同的列或列组来表示的,如果两个表中具有相同的列或列组,该列或列组就被称为这两个表的公共关键字(common key)。如果公共关键字是其中一个表的主关键字,那么该公共关键字在另一个表中称为外部关键字。

外部关键字的作用是实现参照完整性。创建外部关键字有以下优点。

◎ 提供了表之间的连接。

◎ 根据主关键字的列值来检查、参照该主关键字的列值以确定其合法性。

◎ 保证了列的每个值都是有效的,从而实施参照完整性。

3.关系数据库系统的特点

RMDBS(关系数据库系统)的特点如下。

◎ 数据完整性。所有RDBMS都使用SQL或其变体控制包含在任意数据库中的数据。RDBMS必须要保证数据的完整性。换句话说,任何关系数据库都需要保证如果多个表中的数据被更新,那么所有的数据都将更新。例如:假设一个邮局交费系统中有两个表,一个是交费账,一个是未交费账。每月支付电话费时,邮局会自动在交费账上加上数额,再从未交费账上减去相应的数额。但是,如果当加上数额后,邮局停电了,将会发生什么情况?如果没有数据完整性,则未交费账上的相应数额没有减去,也就是虽然已经交了钱,但是仍然欠费。有了数据完整性,当服务器加电后,会发现加法已经完成,而减法还没有进行,那么,已经完成的一切都将取消。

◎ 数据存储和数据安全。多数RDBMS坚持把实际数据和业务逻辑区分开,以确保数据库中的数据可以保持持久状态。但是,多数情况下,只想在数据库中存储数据。许多RDBMS通过使用压缩算法将冗余数据删除的方式存储数据。这样并不意味着数据丢失了,只是占用更少的存储空间。每个RDBMS都为所管理的数据库提供了某种安全措施,通常通过某种登录过程实现。

4.关系数据库的功能

目前流行的DBMS有很多种,不同的DBMS提供的功能不同,但一般都提供了以下6个方面的功能。

(1)数据库定义

为了提高数据库的独立性,DBMS把数据库从逻辑上分为三个层次,即面向数据库用户的外层(用户数据库)、由DBMS管理的概念层(概念数据库)及内部层(存储数据库)。用户看到的只是外层,而数据实际上是按内部层的结构存储的,它是通过概念层二级抽象(或称映像)而来的。DBMS的数据库定义功能不但提供了用户数据库、概念数据库和存储数据库三级数据的定义,而且还提供了从用户数据库到概念数据库的映像和从概念数据库到存储数据库的映像功能。数据库定义一般由DBMS以数据定义语言(Data Definition Language,DDL)的形式提供给用户。数据库用户利用DDL定义用户数据库结构,建立所需要的数据库,同时由DBMS自动翻译为存储数据库。存储数据库独立于一般数据库用户,数据库用户也可以不必过问存储数据库的实际模型。

(2)数据操纵

DBMS提供数据操纵语言(Data Manipulation Language,DML)实现对数据库数据的操纵。数据操纵包括对数据进行查询(检索和统计)和更新(增加、删除与修改)等基本操作。

(3)数据库运行与控制

DBMS提供的运行与控制功能能够保证所有访问数据库的操作在控制程序的统一管理下,检查安全性、完整性和一致性,保证多用户对数据库的并发使用。这一功能对用户是隐蔽的。

(4)数据库建立与维护

DBMS提供实用程序来完成数据库初始数据的输入与转换,完成数据库数据的转储、恢复、重组织、系统性能监视与分析等。

(5)数据字典

DBMS将所定义的数据库按一定的形式分类编目,对数据库中的有关信息进行描述,以帮助数据库用户使用和管理数据库。这一功能称为数据字典功能。

(6)数据通信

DBMS提供数据通信功能,实现DBMS与用户程序及其之间的通信。

著名的SQL(Structured Query Language)就是由国际标准化组织(ISO)公布的,集数据定义、数据操纵和数据控制为一体的标准数据库语言。目前许多成熟的DBMS产品都集成了以上多项功能,同时还提供了一套应用程序开发工具。如本书所介绍的Oracle就是集多种功能于一体,同时嵌入SQL,并提供了一套应用程序开发工具的DBMS产品。

5.常见的关系数据库

目前市面上流行的数据库管理系统有很多,下面分别进行简要介绍。

(1)Oracle

Oracle是当今最大的数据库公司Oracle(甲骨文)公司的数据库产品,它是世界上第一个商品化的关系数据库管理系统,也是第一个推出与数据库结合的第四代语言开发工具的数据库产品。

它采用标准的SQL结构化查询语言,支持多种数据类型,提供面向对象的数据支持,具有第四代语言开发工具,支持UNIX,VMS,Windows/NT,OS/2等多种平台。Oracle公司的软件产品主要由三个部分组成,包括Oracle服务器产品、Oracle开发工具和Oracle应用软件。Oracle公司提供的最新的基于计算机的数据库产品为Oracle 11g。

Oracle产品早在1986年就已进入中国市场,国内的许多行业和部门的管理信息系统的开发都选用了Oracle。

(2)DB2

DB2是IBM公司的一个基于SQL的关系数据库产品,它起源于早期的实验系统System R。

80年代初,DB2的发展重点在大型主机平台上。从80年代到90年代初,DB2已发展到中、小型机及微机平台。现在的DB2已能够适用于各种硬件和软件平台(如UNIX,VMS,Windows/NT,OS/2等)。DB2在金融系统中应用较多。

DB2 Universal Database Personal Edition是为OS/2和Windows系统的单用户提供的数据库管理系统。DB2 Universal Database Workgroup Edition是为OS/2和Windows系统的多用户提供的数据库管理系统。

(3)Sybase

Sybase是由1984年成立的美国数据库厂商Sybase公司推出的系统数据库(System Database,Sybase),Sybase公司是较早采用客户/服务器技术的数据库厂商。Sybase可以运行在UNIX,VMS,Windows/NT,Netware等操作系统平台上,它支持标准的关系数据库语言SQL,使用客户/服务器模式,采用了开放的体系结构,能够实现网络环境下各结点上的数据库的互访操作。Sybase还拥有著名的数据库应用开发工具PowerBuilder,能够快速开发出基于客户/服务器的图形化数据库应用程序。目前Sybase数据库软件产品是市场上较受欢迎的数据库产品之一。

Sybase数据库主要由服务器软件Sybase SQL Server、客户软件Sybase SQL Toolset和接口软件Sybase Client/Server Interface三类软件产品组成。其中,服务器软件Sybase SQL Server中的Sybase SQL Anywhere是Sybase数据库管理系统的单机版本,是专为个人用户或者工作组设计的一个完备的、小型化的关系数据库管理系统。它具有客户/服务器结构、完全的事务处理和SQL功能,可以胜任小型应用系统数据管理。

Sybase于1991年进入我国,其产品目前已在许多行业和部门得到很好的应用。

(4)SQL Server

Microsoft SQL Server是一个Windows NT服务器上使用的、支持客户/服务器结构的数据库管理系统。SQL Server是Microsoft公司从Sybase公司购买技术而开发的产品,与Sybase的数据库完全兼容。SQL Server与Windows NT有机结合,可以充分利用Windows NT的优势,性能价格比高。Microsoft SQL Server不提供直接的客户开发平台和工具,只提供了两个接口,即Microsoft开放式数据库连接(ODBC)和DB-Library。

ODBC接口允许网络客户在多种平台上使用第三方产品,如Access,Visual Basic,Visual C++和FoxPro等,向服务器发出SQL请求,访问数据库中的数据。ODBC能在不同的数据库环境中为客户/服务器结构的客户提供访问异构数据库(如Oracle、Sybase等)接口,还提供了一种开放的、标准的能访问微机、工作站、小型机和大型机数据库的方法,使用ODBC接口的编程者可以不用深入了解所访问的数据库系统,只需知道数据库、表和有关字段即可。

DB-Library通过C语言API提供与SQL Server直接连接的接口。

1.6 本章小结

本章主要介绍了数据库的基础知识,包括数据库、数据库管理系统及关系数据库等基本概念,此外还介绍了目前应用比较广泛的各种关系数据库系统。