1第1章数据库基础数据库技术是计算机科学的一个重要分支。数据库管理系统作为数据管理最有效的手段广泛应用于各行各业,成为存储、使用、处理信息资源的主要手段,是任何一个行业信息化运作的基石。本章介绍了数据库管理系统、数据库系统、数据模型、关系数据库及其基本运算等知识。1.1数据库管理系统信息在现代社会中起着越来越重要的作用,信息资源已成为社会发展的重要基础和财富,信息资源的开发和利用水平也成为衡量一个国家综合国力的重要标志。随着计算机技术的发展,计算机的主要应用已从科学计算逐渐转变为事务处理。据统计,目前全世界80%以上的计算机主要从事事务处理。在进行事务处理时,并不需要进行复杂的科学计算,而主要从事大量数据的存储、查找、统计等工作。为了有效地使用保存在计算机系统中的大量数据,必须采用一整套严密合理的数据处理方法,即数据管理。数据管理是指对数据的收集、整理、组织、存储、查询、维护、传送和使用等工作,数据库技术就是作为数据管理中的一门技术而发展起来的。数据库技术所研究的问题就是如何科学地组织和存储数据,如何高效地获取和处理数据。而今,各种数据库系统不仅已成为办公自动化系统(OAS)、管理信息系统(MIS)和决策支持系统(DSS)的核心,并且正与计算机网络技术紧密地结合起来,成为电子商务、电子政务及其他各种现代化信息处理系统的核心,得到了越来越广泛的应用。1.1.1信息、数据、数据库信息是客观世界在人们头脑中的反映,是客观事物的表征。是可以传播和加以利用的一种知识。数据(data)则是信息的载体,是对客观存在实体的一种记载和描述。数据是存储在某种媒体上能够识别的物理符号。数据的概念包括两个方面:其一是描述事物特征的数据内容;其二是存储在某种媒体上的数据形式。在我们的日常生活中数据无所不在,数字、文字、图形、图像、动画、影像、声音等都是数据,人们通过数据来认识世界、交流信息。也就是说,对信息的记载和描述产生了数据;反之,对众多相关的数据加以分析和处理又将产生新的信息。尽管信息与数据两个术语严格地讲是有区别的,但在很多场合下,不严谨地区分它们也不致引发误解。因此,使用中很多时候都不严格区分这两个术语。数据库(database,DB)是指数据存放的地方,它保存的是某个企业、组织或部门的有关数据。比如一个学校可以将全部学生的情况存入数据库进行管理。在数据库系统尚未开发以前,人们往往采用表格、卡片或档案来进行人事管理、图书管理以及各种档案资料的管理。数据库的作用就在于把这些数据有组织地存储到计算机中去,减少数据的冗余,使人们能快速方便地对数据进行查询、修改,并按照一定的格式输出,从而达到管理和使用这些数据的目的。因此,我们对数据库可以作如下的定义:数据库是以一定的数据模型组织和存储的、能为多个用2户共享的、独立于应用程序的、相互关联的数据集合。数据库有如下的几个特点:(1)数据的共享性数据库中的数据能为多个用户服务。(2)数据的独立性用户的应用程序与数据的逻辑组织和物理存储方式无关。(3)数据的完整性数据库中的数据在操作和维护过程中可以保证正确无误。(4)数据的简洁性数据库中的冗余数据少,尽可能避免数据的重复。1.1.2数据管理技术的发展数据处理是计算机应用的一个主要领域,其面临着如何管理大量复杂数据,即计算机数据管理的技术问题,它是伴随着计算机软、硬件技术与数据管理手段的不断发展而发展的,计算机数据管理技术主要经历了三个阶段。1.人工管理阶段人工管理阶段约在20世纪50年代中期以前,那时计算机刚诞生不久,主要用于科学与工程计算。从当时的硬件看,外存储器只有卡片、纸带、磁带,没有像磁盘这样的可以随机访问、直接存取的外部存储设备;从软件看,没有操作系统以及专门管理数据的软件;从数据看,处理的数据量小,由用户直接管理,数据之间缺乏逻辑组织,数据依赖于特定的应用程序,缺乏独立性,如图1.1所示。图1.1人工管理阶段这一时期计算机数据管理的主要特点如下:(1)数据不保存应用程序在执行时输入数据,程序结束时输出结果,随着计算过程的完成,数据与程序所占用的空间也被释放,这样,一个应用程序中的数据无法被其他程序重复使用,不能实现数据共享。(2)数据与程序不可分割没有专门的软件进行数据管理,数据的存储结构、存取方法和输入输出方式完全由程序设计人员自行完成。(3)数据冗余各程序所用的数据彼此独立,数据之间没有联系,因此程序与程序之间存在大量的重复数据,称为数据冗余。2.文件管理阶段文件管理阶段约为20世纪50年代后期至60年代中后期,由于计算机软、硬件技术的发展,可直接存取的磁盘成为主要外存,出现了操作系统和各种高级程序设计语言,操作系统中有了文件管理系统专门负责数据和文件的管理,计算机的应用领域也扩大到了数据处理。操作系统中的文件系统把计算机中的数据组织成相互独立的数据文件,系统可以按照文件的名称对文件中的记录进行存取,并可以实现对文件的修改、插入和删除。文件系统实现了记录内的结构化,即给出了记录内各种数据间的关系。但是,从整体来看文件却是无结构3的,如图1.2所示。图1.2文件管理阶段文件系统时期的主要优点如下:(1)程序和数据分开存储数据以文件的形式长期保存在外存储器上,程序和数据有了一定的独立性。(2)通过文件名访问数据文件数据文件的存取由操作系统通过文件名来实现,程序员可以集中精力在数据处理的算法上,而不必关心记录在存储器上的地址以及在内、外存之间交换数据的具体过程。(3)数据共享一个应用程序可以使用多个数据文件,而一个数据文件也可以被多个应用程序所使用,实现了数据的共享。但是,文件系统中的数据文件是为了满足特定业务领域,或某部门的专门需要而设计的,服务于某一特定应用程序,数据和程序相互依赖。同一数据项可能重复出现在多个文件中,导致数据冗余度大。这不仅浪费存储空间,增加更新开销,更严重的是由于不能统一修改容易造成数据的不一致性。文件系统存在的问题阻碍了数据管理技术的发展,不能满足日益增长的信息需求,这正是数据库技术产生的原动力,也是数据库系统产生的背景。3.数据库管理阶段数据库管理阶段始于20世纪60年代后期,计算机软、硬件技术的快速发展,促进了计算机管理技术的发展,先是将数据有组织、有结构地存放在计算机内形成数据库,然后是有了对数据进行统一管理和控制的软件系统,即数据库管理系统,如图1.3所示。图1.3数据库管理阶段这一时期计算机数据管理的主要特点如下:(1)以数据库的形式保存数据在建立数据库时,以全局的观点组织数据库中的数据,4这样,可以最大限度地减少数据的冗余。(2)数据和程序之间彼此独立数据具有较高的独立性。数据不再面向某个特定的应用程序,而是面向整个系统,从而实现了数据的共享,数据成为多个用户或程序共享的资源,并且避免了数据的不一致性。(3)按一定的数据模型组织数据在数据库中,数据按一定的数据模型进行组织。这样,数据库系统不仅可以表示事物内部数据项之间的关系,也可以表示事物与事物之间的联系,从而反映出现实世界事物之间的联系。(4)使用数据库管理系统由数据库管理系统对数据资源进行统一的、集中的管理,使数据具有相当好的易维护性和易扩充性,极大地提高了程序运行和数据利用的效率。数据库技术效用凸现出来了。本书所介绍的Access就是数据库管理系统软件中的一种。现在,数据库技术已成为计算机科学最重要的分支之一,成为各种管理信息系统和决策支持系统的核心。从20世纪70年代后期至今,数据库技术与网络技术结合,产生了分布式数据库系统,从主机/终端体系结构发展到客户/服务器(Client/Server,C/S)系统结构。在C/S结构中,将应用程序分布到客户的计算机和服务器上,将数据库管理系统和数据库存放到服务器上,客户端的程序使用开放数据库连接(OpenDataBaseConnectivity,ODBC)协议访问远程的数据库。Access也提供了专门的工具创建客户/服务器应用程序。近些年来,数据库技术与面向对象程序设计相结合,产生了面向对象的数据库管理系统,是面向对象方法在数据库领域中的实现和应用。面向对象的数据库管理系统可以处理更为复杂的对象,如声音、图像等。这些对象在面向对象的技术中被定义为抽象的数据类型。1.1.3数据库管理系统数据库的建立、使用和维护都是通过特定的数据库语言进行的。正如使用高级语言需要解释/编译程序的支持一样,使用数据库语言也需要一个特定的支持软件,这就是“数据库管理系统”(databasemanagementsystem,DBMS)。数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它建立在操作系统的基础上,对数据库进行统一的管理。用户利用数据库管理系统提供的一整套命令,可以对数据进行各种操作,从而实现用户的数据处理要求。通常,数据库管理系统应该具有下列功能:(1)数据定义功能数据库管理系统能向用户提供“数据定义语言”(datadefinitionlanguage,DDL),用户通过它可以方便地对数据库中的数据对象进行定义,如建立或删除数据库、基本表和视图等。(2)数据操作功能对数据进行检索和查询,是数据库的主要应用。为此,数据库管理系统向用户提供“数据操作语言”(datamanipulationlanguage,DML),支持用户对数据库中的数据进行查询、更新(包括增加、删除、修改)等操作。(3)控制和管理功能除DDL和DML两类语句外,数据库管理系统还具有必要的控制和管理功能,其中包括:在多用户使用时对数据进行的“并发控制”;对用户权限实施监督的“安全性检查”,数据的备份、恢复和转储功能;对数据库运行情况的监控和报告等。通常数据库系统的规模越大,这类功能也越强,所以大型机数据库管理系统的管理功能一般比PC5机数据库管理系统更强。(4)数据字典数据库管理系统通常提供数据字典功能,以便对数据库中数据的各种描述进行集中管理。数据字典中存放了系统中所有数据的定义和设置信息,如字段的属性、字段间的规则和记录间的规则、数据表间的联系等。用户可以利用数据字典功能,为数据表的字段设置默认值、创建表之间的永久关系等。总之,数据库管理系统是用户和数据库之间的交互界面,在各种计算机软件中,数据库管理系统软件占有极为重要的位置。用户只需通过它就能实现对数据库的各种操作与管理。在其控制之下,用户在对数据库进行操作时可以不必关心数据的具体存储位置、存入方式以及命令代码执行的细节等问题,就能完成对各种相关数据的处理任务,而且可以保证这些数据的安全性、可靠性与一致性。目前,广泛运用的大型数据库管理系统软件有ORACLE、SYBASE、DB2等,而在PC机上广泛应用的则有SQLServer、Access、VisualFoxPro等。1.2数据库系统数据库系统(databasesystem,DBS)是指在计算机系统中引入数据库技术后的系统,狭义地讲,是由数据库、数据库管理系统构成;广义而言,是由计算机系统、数据库管理系统、数据库管理员、应用程序、维护人员和用户组成。1.2.1数据库系统的组成人们利用数据库可以实现有组织地、动态地存储大量的相关数据,并提供数据处理和共享的便利手段,为用户提供数据访问和所需的数据查询服务。一个数据库系统通常由5部分组成,包括计算机硬件、数据库集合、数据库管理系统、相关软件和人员。1.计算机硬件系统任何一个计算机系统都需要有存储器、处理器和输入输出设备等硬件平台,一个数据库系统更需要有足够容量的内存与外存来存储大量的数据,同时需要有足够快的处理器来处理这些数据,以便快速响应用户的数据处理和数据检索请求。对于网络数据库系统,还需要有网络通信设备的支持。2.数据库集合数据库是指存储在计算机外部存储器上的结构化的相关数据集合。数据库不仅包含数据本身,而且还包括数据间的联系。数据库中的数据通常可被多个用户或多个应用程序所共享。在一个数据库系统中,常常可以根据实际应用的需要创建多个数据库。3.数据库管理系统数据库管理系统是用来对数据库进行集中统一管理、帮助用户创建、维护和使用数据库的软件系统。数据库管理系统是整个数据库系统