1.2 数据库系统
1.数据库
随着信息技术的发展和市场需求的提升,特别是20世纪90年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需的各种数据管理的方式。数据库(DataBase, DB)可直观地理解成数据仓库,是按照一定数据结构来组织、存储和管理数据的集合,不仅包含了描述事物本身的数据,还包含了相关数据之间的联系。数据库以文件的形式存储在外存中,用户通过数据库管理系统统一管理和控制数据。
数据库有多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统,都在各方面得到了广泛的应用。
2.数据库管理系统
数据库管理系统(DBMS)是一种操纵和管理数据库的软件,用于建立、使用和维护数据库。它在操作系统基础上运行,对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据,数据库管理员通过数据库管理系统进行数据库的维护工作,使多个应用程序和用户可以用不同的方法同时或不同时地建立、修改和查询数据库。
数据库管理系统提供了数据定义语言(Data Definition Language, DDL)、数据操作语言(Data Manipulation Language, DML)和数据控制语言(Data Control Language, DCL),供用户定义数据库的模式结构和权限约束,实现对数据的追加、删除等操作,以及设置或更改数据库用户或角色权限。数据库管理系统的主要功能如下。
数据定义:利用DDL,供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中。
数据操作:利用DML,供用户实现对数据的追加、删除、更新、查询等操作。
数据控制:利用DCL,设置或更改数据库用户或角色权限,实现对数据库的控制和管理,包括并发控制、安全性检查、完整性检查、数据维护等功能。不同于程序设计语言,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等人员才有权力执行DCL。
3.数据库系统
数据库系统(DataBase System, DBS)是由数据库及其管理软件组成的系统,是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。数据库系统是一个实际可运行的存储、维护和为应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。
数据库系统通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序和数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般由业务水平较高、资历较深的人员担任。
数据库系统的个体含义是指一个具体的数据库管理系统软件和用它建立起来的数据库,其学科含义是指研究、开发、建立、维护和应用数据库系统涉及的理论、方法、技术所构成的学科。
数据库系统的出现是计算机应用的一个里程牌,使得计算机应用从以科学计算为主转向以数据处理为主,从而使计算机得以在各行各业乃至家庭普遍使用。
数据库系统一般由4部分组成:数据库,数据库管理系统(DBMS),数据库管理员(DBA)和用户,应用程序。
4.数据库的发展
数据库技术的发展已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。数据库技术最初产生于20世纪60年代中期,根据数据模型的发展,可以划分为三个阶段:第一阶段的网状、层次数据库系统,第二阶段的关系数据库系统,第三阶段的以面向对象模型为主要特征的数据库系统。
第一阶段数据库的代表是1969年IBM公司研制的层次模型的数据库管理系统IMS和70年代美国数据库系统语言协商CODASYL下属的数据库任务组DBTG提议的网状模型。层次数据库的数据模型是有根的定向有序树,网状模型对应的是有向图。这两种数据库奠定了现代数据库发展的基础。这两种数据库具有如下共同点:
◉ 支持三级模式(外模式、模式、内模式),保证数据库系统具有数据与程序的物理独立性和一定的逻辑独立性。
◉ 用存取路径来表示数据之间的联系。
◉ 有独立的数据定义语言。
◉ 导航式的数据操纵语言。
第二阶段数据库的主要特征是支持关系数据模型(数据结构、关系操作、数据完整性)。关系模型具有以下特点:
◉ 关系模型的概念单一,实体和实体之间的连系用关系来表示。
◉ 以关系数学为基础。
◉ 数据的物理存储和存取路径对用户不透明。
◉ 关系数据库语言是非过程化的。
第三阶段数据库产生于20世纪80年代,随着科学技术的不断进步,各领域对数据库技术提出了更多的需求,关系型数据库已经不能完全满足需求,于是产生了第三代数据库。主要有以下特征:
◉ 支持数据管理、对象管理和知识管理。
◉ 保持和继承了第二代数据库系统的技术。
◉ 对其他系统开放,支持数据库语言标准,支持标准网络协议,有良好的可移植性、可连接性、可扩展性和互操作性等。
第三代数据库支持多种数据模型(如关系模型和面向对象的模型),并与诸多新技术相结合(如分布处理技术、并行计算技术、人工智能技术、多媒体技术、模糊技术),广泛应用于多个领域(商业管理、GIS、计划统计等),由此也衍生出多种数据库技术。
分布式数据库允许用户开发的应用程序把多个物理分开的、通过网络互连的数据库当作一个完整的数据库看待。并行数据库通过簇技术把一个大的事务分散到簇中的多个节点去执行,提高了数据库的吞吐和容错性。多媒体数据库提供了一系列用来存储图像、音频和视频对象的类型,更好地对多媒体数据进行存储、管理、查询。模糊数据库是存储、组织、管理和操纵模糊数据库的数据库,可以用于模糊知识处理。
20世纪80年代中期,喷气发动机实验室(JPL)与其他政府机构一样,也使用微型机。这些独立的计算机使工程师有时不用操作大型机就能处理大量的数据集合,同时把简单的类似英语的命令(他们可以在DOS下执行这些命令)组合到程序中。这些程序变成了应用程序,并且一种新型的应用程序开发人员诞生了。那时经常使用电子数据表和静态数据包,但是它们都比较麻烦,并且容易造成数据丢失。
数据库是处理大量数据的逻辑解决方案,因此天才程序员C. Wayne Ratliff(韦恩·莱特莱夫)当时编写了一个自带有数据库的程序(Vulcan),同时添加了一组可以在数据上执行的命令。该程序带有一个交互式的点提示符,使用易于记住的惯用语,允许工程师使用一组简短的命令操作自己的数据就像操作物理数据集合一样。Wayne Ratliff说:“dBASE与BASIC、C、FORTRAN和COBOL是不同的,在dBASE程序中很多麻烦的工作已经被做好了。数据维护是由dBASE而不是由用户完成的,因此用户可以把精力集中在自己的事务上,不必与处理打开、读取和关闭文件、管理空间分配这些麻烦的工作绞在一起。”这个程序最终成为Ashton-Tate的dBASE数据库程序。
在它发布后的几年之内,大量的dBASE克隆产品冲击了市场。1986年,美国FOX软件公司发布了与dBASE兼容的FoxBase, FoxBase的高速和稳定性使它获得了很大的名气。此外,Fox小组很敏捷,对用户团体做出的响应更多。通过定期的修补,通过CompuServe和重要版本的及时支持,作为对用户请求的回应,FoxBase在非常接近原始版本的同时,通过添加提高生产率的工具变得更快了。
FoxPro是FoxBase的加强版。FoxPro比FoxBase在功能和性能上有了很大的改进,主要引入了窗口、按纽、列表框和文本框等控件,进一步提高了系统的开发能力。Fox小组已经提供了跨平台的编译器,允许开发者在UNIX或DOS上以及Windows版本和Mac上部署应用程序。接着出现了FoxPro 2.0,它带来了“Rushmore”(FoxPro著名的数据性能增强部分)技术、在线的SQL命令、图形屏幕和报表编写器。
1992年,Fox Software公司被微软公司收购,微软公司利用自身的技术优势,在不到4年的时间内,先后开发出了FoxPro 2.5、FoxPro 2.6等约20个软件产品及相关产品。1995年,微软公司发布了Visual FoxPro 3.0,全面支持面向对象技术和可视化编程技术。1998年,微软公司推出了包含Visual FoxPro 6.0在内的可视化编程语言集成包Visual Studio 6.0。
虽然很久以来,Visual FoxPro被众多迷人的产品掩盖了光芒,但现在它仍然是市场中用于完成数据事务的最佳工具之一。目前,Visual FoxPro仍然是希望完成事务的专业人员的选择,特别适合那些主要工作不是编写代码的工作人员,仍然是那些对已有代码做了很大投入的开发者的选择,仍然是资源有限的企业的选择。
进入21世纪以来,微软公司相继发布了Visual FoxPro 7.0(2001年)、Visual FoxPro 8.0(2003年)和Visual FoxPro 9.0(2004年),本书将以Visual FoxPro 9.0作为教学平台。
5.数据库系统的结构
(1)组成结构
数据库系统由支持数据库运行的硬件、数据库、数据库管理系统、相关软件和各类人员等组成,如图1-3所示。
图1-3
(2)体系结构
考察数据库系统的结构可以有多种不同的层次和角度,从数据库最终用户角度看,数据库系统分为单用户、主从式结构、客户机-服务器结构、浏览器/服务器结构等数据库系统。
① 单用户。单用户数据库系统是一种最简单的数据库系统。整个数据库系统包括应用程序、数据库管理系统、数据库都安装在一台计算机上,一个用户独占数据,不同的计算机用户不能共享数据。通常,单用户数据库系统适于用户少、数据量不多的情况。
② 主从式结构。主从式结构是指一个主机带多个终端的结构,如图1-4所示。数据库都集中存放在主机上,终端只作为主机的输入、输出设备,多个用户可通过终端存取主机上的数据。由于所有任务都是由主机来完成的,当终端用户数目增加到一定程度后,主机的任务会过于繁重,响应缓慢,系统性能将会大幅下降。目前,只有少数大型机构还使用这种架构。
图1-4
③ 客户机-服务器结构(Client/Sever, C/S)。C/S数据库系统可以分为集中式和分布式两种结构。集中式C/S结构如图1-5所示,所有数据存放在一台数据库服务器上;分布式C/S结构如图1-6所示,适用于业务上相互联系而地理上分散的数据库,数据被分散在多台数据库服务器上。
图1-5
图1-6
④ 浏览器/服务器结构数据库(Browser/Web/Server, B/W/S)。B/W/S结构在Internet中得到了广泛应用,如图1-7所示。客户端仅安装浏览器软件,用户通过URL(Uniform/Universal Resource Locator,统一资源地址)向Web服务器发出请求,Web服务器运行脚本程序,向数据库服务器发出数据请求;数据库服务器执行相应处理后,将处理结果返回给Web服务器;Web服务器根据结果产生网页文件,客户端接受到网页文件后,浏览器将结果显示出来。
图1-7