数据库基础知识数据库发展史当今流行的数据库管理系统简介数据库技术是现代计算机应用的一项重要技术,在计算机应用领域中被广泛地使用,成为计算机软件开发不可缺少的一部分。数据库技术是20世纪60年代末开始兴起的一门数据处理与信息管理的学科,是计算机科学中的一个重要分支。本章主要介绍数据库的历史、特点以及组成。数据库基础111第第章章导读SQL技术与网络数据库开发详解·2·1.1数据库基础知识本节将介绍有关数据库的一些概念、数据库的发展史、数据库系统的特点和数据库系统的组成等数据库基础知识。1.1.1几个数据库应用案例自从计算机被发明之后,人类社会就进入了高速发展阶段,大量的信息堆积在人们面前。此时,如何组织存放这些信息,如何在需要时快速检索出信息,以及如何让所有用户共享这些信息就成为一个大问题。数据库技术就是在这种背景下诞生的,这也是使用数据库的原因。当今,世界上每一个人的生活几乎都离不开数据库了。如果没有数据库,很多事情几乎无法解决。例如,没有银行存款数据库,则取钱就会成为一个很复杂的问题,更不用说异地取款了。又如,如果没有手机用户数据库,难以想象计费系统会怎样工作;没有计费系统,人们也就不能随心所欲地拨打手机了。还有,没有数据库的支持,网络搜索引擎就无法继续工作,网上购物就更不用想了。可见,数据库应用在不知不觉中已经遍布了人们生活的各个角落。1.1.2相关数据库的名词在学习具体的数据库管理系统和SQL语言之前,首先应该了解有关数据库的一些名词。因为笔者发现,即使学习过具体数据库管理系统的人员也通常会混淆这些名词,虽然这并不妨碍其表达出来的意思,但听起来总是很别扭。下面就是容易让人混淆的几个关于数据库的名词及其解释。1.数据库数据库(DB)是一个以某种组织方式存储在磁盘上的数据的集合。它通过现有的数据库管理系统(例如,Access、SQLServer和Oracle等)创建和管理。数据库不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。数据库中存放的数据可以被多个用户或多个应用程序共享。例如,某航空公司票务管理系统的数据库,在同一时刻可能有多个售票场所都在访问或更改该数据库中的数据。2.数据库应用系统数据库应用系统是指基于数据库的应用软件,例如学生管理系统、财务管理系统等。数据库应用系统由两部分组成,分别是数据库和程序。数据库由数据库管理系统软件创建,而程序可以由任何支持数据库编程的程序设计语言编写,如C语言、VisualBasic、Java等。3.数据库管理系统数据库管理系统(DBMS)用来创建和维护数据库。例如,Access、SQLServer、Oracle、PostgreSQL等都是数据库管理系统。图1.1描述了DB、DBMS和数据库应用系统之间的联系。第1章数据库基础·3·数据库管理系统例如,Oracle、SQLServer等创建维护数据库访问返回程序文件数据库应用系统图1.1DB、DBMS和数据库应用系统之间的联系4.关系数据库管理系统关系数据库管理系统(RDBMS)是DBMS的一种,它用于创建和维护关系数据库。当今流行的大多数DBMS,其实都是关系数据库管理系统,如Access、SQLServer和Oracle等。5.对象-关系型数据库管理系统对象-关系型数据库管理系统(ORDBMS)也是DBMS的一种,它用于创建和维护面向对象数据库。当今最佳的对象-关系型数据库管理系统的代表是PostgreSQL。1.1.3计算机数据管理数据管理的历史由来已久,早在计算机发明之前,人们就在纸或者竹简甚至在石头上记录各种数据,以此对数据进行管理和处理。在发明计算机之后,人们开始逐渐使用计算机管理各种数据。这一过程经历了人工管理、文件系统、数据库系统、分布式数据库系统和面向对象数据库系统等几个阶段。1.人工管理阶段20世纪50年代中期以前,计算机还没有类似于硬盘的外部存储设备,只能将数据存储在卡片、纸带、磁带等设备上,所以,随机访问、直接存取数据在那个年代是不可能完成的工作。那时也没有专门管理数据的软件,数据和处理它的程序放在一起保存为一个文件,所以程序设计人员就充当了数据管理员的角色,负责数据的存储结构、存取方法和输入输出方式等。由于数据和程序放在一起,所以根本就不能重用或允许其他程序共享数据。当需要编写使用同样数据的新程序时,还必须在新程序下手动重写同样的数据,因此造成了不同程序文件中存有大量重复数据的问题,这就是数据的冗余。2.文件系统阶段20世纪50年代后期至60年代中后期,计算机开始被用来进行数据处理,而且是大量用于数据处理。因此,数据存储、查询检索和维护的需求就变得非常重要。这一时期,可直接存取的硬盘(磁盘)成为了主要的外部存储器,而且还出现了高级语言和操作系统。操作系统中的文件系统是专门管理外部存储器的数据管理软件。在这一阶段,人们开始将程序和数据分开存储,即出现了程序文件和数据文件的区别,也使得数据文件可以被多个不同的程序多次使用。SQL技术与网络数据库开发详解·4·但是,文件系统中的数据文件是为了满足特定业务领域或某部门的专门需要而设计的,服务于某个特定应用程序,数据和程序的依赖程度非常大,同一个数据项可能重复出现在多个数据文件中,导致数据冗余大,且非常容易造成数据的不一致性。例如,A文件中的张三的职称被修改为教授,而B文件中的张三的职称由于疏忽未进行修改依然还是副教授等。因为上述问题的存在,文件系统越来越不能满足日益增长的信息需求,所以人们开始了探索数据库技术的征程。3.数据库系统阶段从20世纪60年代后期开始,需要计算机管理的数据量急剧增长,同时对数据共享的需求也日趋强烈,文件系统的数据管理方法已经无法再适应开发应用系统的需求了。为了实现计算机对数据的统一管理,并达到数据共享的目的,人们发展了数据库技术。数据库技术主要解决了以下几类问题。提高了数据的共享性,使多个用户能够使用同一个数据库中的数据。可以最大程度地减少数据的冗余度,以此提高数据的一致性和完整性。在很大程度上使数据和程序相互独立,从而在改变程序或改变数据时减少了相互的影响。4.分布式数据库系统阶段在20世纪70年代后期以前,多数数据库系统是集中式的,这种数据管理技术在某些情况下会出现一些问题,例如,当同一时刻访问数据库的用户特别多时,就会严重影响数据库的效率,甚至由于网络堵塞,用户的终端会很长时间内不作出任何反应。除此之外,美国军方由于战略方面的考虑也急需将集中的数据分开放在不同地理位置的机器上,以保证数据不会一次性被彻底破坏掉。由于上述原因,分布式数据库系统走上了数据管理的历史舞台。分布式数据库系统分为物理上分布、逻辑上集中的分布式数据库结构和物理上分布、逻辑上分布的分布式数据库结构两种。物理上分布、逻辑上集中的分布式数据库结构,是一个逻辑上统一,而数据存放的地理位置不同的数据管理方式。这些地理位置不同的数据组成了逻辑上的一个整体数据库,并受分布式数据库管理系统的统一控制和管理,这就使得不同地理位置上的用户可以就近存取数据,而不用再访问远端数据库中的数据了,从而也提高了数据库系统的效率。物理上分布、逻辑上分布的分布式数据库结构,实际上是将很多独立的集中式数据库通过网络连接起来,共享给网络用户的数据管理方式。在这种结构中每个独立的集中式数据库都由本地数据库管理系统自行管理。5.面向对象数据库系统面向对象思想起源于程序设计语言,但如今它却被广泛地应用在计算机科学的各个领域,发展之迅猛令人惊叹。面向对象数据库是数据库技术与面向对象程序设计相结合的产物,是面向对象方法在数据库领域中的实现和应用。不过,目前面向对象数据库系统的商品化现状不是很好,其原因是多方面的,在此就不一一介绍了,如果读者感兴趣,也可以参阅相关书籍。1.1.4数据库系统的组成数据库系统是指引进数据库技术的计算机系统,由4部分组成,即计算机硬件、数据库集合、数据库管理系统及相关软件和人员。第1章数据库基础·5·1.计算机硬件计算机硬件是指有形的物理设备,它是计算机系统中实际物理设备的总称,由各种元器件和电子线路组成。计算机硬件的配置必须满足数据库系统的需要。2.数据库集合数据库集合是存放数据的仓库,它是将数据按一定格式有组织地存放在计算机存储器中,并实现数据共享功能的数据集合。数据库是数据库系统操作的对象,可为多种应用服务,具有共享性、集中性、独立性与较小的数据冗余。数据库应包含数据表、索引表、查询表与视图。3.数据库管理系统及相关软件数据库管理系统(DBMS)对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据,数据库管理员也通过数据库管理系统进行数据库的维护工作。DBMS有以下4个基本功能:数据定义功能:可以通过DBMS提供的数据定义语言DDL对数据库的数据对象进行定义。数据操纵功能:可以通过DBMS提供的数据操纵语言DML对数据库进行基本操作,如查询、插入、删除与修改等。数据库的运行管理:DBMS能统一地对数据库在建立、运行和维护时进行管理与控制,可保证数据库的安全性与完整性,并使数据库在故障后得以恢复。数据库的建立和维护功能:DBMS能对数据库进行初始输入、数据转换与修改、恢复与重组、性能监控与分析,以确保数据库系统的正常运行。DBMS是数据库系统的核心软件,位于用户和操作系统之间。DBMS的以上功能是由一些系统程序与相关软件模块完成的。4.人员人员是指使用数据库的人。数据库系统中主要有如下4类人员:数据库管理员:负责数据库系统正常运行的高级人员,决定数据库的数据内容、存储结构、定义数据的安全性与完整性、监控数据库的运行与数据的重组恢复。系统分析员:负责数据库应用系统的需求分析、规范说明、与用户及数据库管理员一起确定系统的软硬件配置,参与概要设计。数据库设计人员与应用程序员:负责数据库中数据的确定、数据库的模式设计、应用程序的编写,参与需求分析与系统分析。最终用户:通过数据库系统提供的应用软件对数据库进行使用与访问。数据库系统的组成如图1.2所示。1.1.5数据库系统的特点数据库系统能被广泛地应用起来,原因是它有很多特点,或者应该说是优点。下面列出了数据库系统的特点供读者参阅。最低的数据冗余度:最低程度地减少了数据库系统中的重复数据,使存取速度更快,在有限的SQL技术与网络数据库开发详解·6·存储空间内可以存放更多的数据。避免数据的不一致、具有较高的数据独立性:数据和程序彼此独立,数据存储结构的变化尽量不影响用户程序的使用,使应用程序的开发更加自由。数据可以共享:可以使更多的用户更充分地使用已有数据资源,减少资料收集、数据采集等重复劳动和相应费用,降低了系统开发的成本,使用户提高了工作效率。具有数据安全性和完整性保障:数据库系统具有数据的安全性,可以防止数据丢失和被非法使用;具有数据的完整性,可以保护数据的正确、有效和相容。并发控制和数据恢复:数据可以并发控制,避免并发程序之间的相互干扰,多用户操作可以进行并行调度;具有数据的恢复功能,在数据库被破坏或数据不可靠时,系统有能力把数据库恢复到最近某个时刻的正确状态。易于使用、便于扩展:数据库系统的使用简单,开发的应用软件便于用户掌握。图1.2数据库系统1.2数据库发展史为了反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型表示。因此,数据模型是数据库系统的核心和基础,具体的数据库系统都基于一定的数据模型。随着数据模型的发展,数据库系统被分为了第一代、第二代和第三代等。1.2.1第一代数据库第一代数据库是层次和网状模型数据库系统时代。虽然层次模型基于树形结构,网状模型基于有向图结构,但它们具有很多共同的特征,因此,它们被统称为第一代数据库系统。第一代数据库的典型产品有基于层次模型的IMS系统(信息管理系统),该系统由IBM公司于1969年研制成功。另一个典型代表是美国数据库系统语言协商会(CODASYL)下属的数据库任务组(DBTG)在20世纪60年代后期写成的第一个数据库标准规范——CODAS