1.数据库管理系统(DBMS)的定义
数据库管理系统(Database Management System,DBMS)安装于操作系统之上,是一个管理、控制数据库中各种数据库对象的系统软件,如图1-2所示。数据库用户无法直接通过操作系统获取数据库文件中的具体内容;数据库管理系统通过调用操作系统的服务,如进程管理、内存管理、设备管理及文件管理等服务,为数据库用户提供管理、控制数据库中各种数据库对象、数据库文件的接口,实现对数据的管理和维护。
图1-2 数据库管理系统与操作系统之间关系图
数据库管理系统通常会选择某种“数学模型”存储、组织、管理数据库中的数据,常用的数学模型包括“层次模型”“网状模型”“关系模型”及“面向对象模型”等。基于“关系模型”的数据库管理系统称为关系数据库管理系统(Relation-al Database Management System,RDBMS)。随着关系数据库管理系统的日臻完善,目前关系数据库管理系统已占据主导地位。
通过关系数据库管理系统,数据库开发人员可以轻而易举地创建关系数据库容器,并在该数据库容器中创建各种数据库对象(表、索引、视图、存储过程、触发器、函数等),以及维护各种数据库对象。
数据库管理系统的目标是让用户能够更方便、更有效、更可靠地建立数据库和使用数据库中的信息资源。数据库管理系统不是应用软件,它不能直接用于诸如工资管理、人事管理资料管理等事务管理工作,但数据库管理系统能够为事务管理提供技术和方法、应用系统的设计平台和设计工具,使相关的事务管理软件很容易设计。也就是说,数据库管理系统是为设计数据管理应用项目提供的计算机软件,利用数据库管理系统设计事务管理系统可以达到事半功倍的效果。
数据库管理系统与数据库应用系统的区别如下:
1)前者是提供数据库管理的计算机系统软件,后者是实现某种具体信息管理功能的计算机应用软件。
2)前者是为后者提供了数据库的定义、存储和查询方法,后者是通过前者管理数据库。
3)前者及其数据库安装在服务器端,它们之间通过数据访问技术进行数据通信。后者安装在客户端,由专门的开发系统或语言设计。
2.数据库管理系统(DBMS)的主要功能
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
其主要功能包括如下几个方面:
(1)数据库的建立和维护
数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监听、分析功能等。这些功能通常是由一些实用程序或管理工具完成的。
(2)数据定义功能
DBMS提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。
(3)数据组织、存储和管理
DBMS要分类组织、存储和管理各种信息,包括数据字典、用户数据、数据的存取路径等。要确定以何种文件结构和存取方式在存储器上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法(如索引查找、Hash查找、顺序查找等)来提高效率。
(4)数据操作功能
DBMS还提供了数据操作语言(Data Manipulation Language,DML),用户可以使用DML操作数据,实现对数据库的基本操作,如查询、插入、删除和修改等。
(5)数据库事务管理和运行管理
数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
(6)其他功能
包括DBMS与网络中其他软件系统的通信功能;一个DBMS和另一个DBMS或文件系统的数据的转换功能;异构数据之间的互访和互操作功能等。
3.常见的关系型数据库管理系统
目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。主要有Oracle公司的Oracle和MySQL,IBM公司的DB2,SYBASE公司的Sybase,Microsoft公司的SQL Server、Access和Visual FoxPro等。
(1)Oracle
Oracle是美国Oracle公司开发的一种适用于大型、中型和微型计算机的关系数据库管理系统。提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(Cli-ent/Server)或B/S体系结构的数据库之一。Oracle数据库由三种类型的文件组成,即数据库文件、日志文件和控制文件。Oracle自动建立并更新一组数据字典,用来记录用户名、数据库元素及用户权限等信息。DBA可通过数据字典来监视Oracle的状态,并帮助用户完成其应用。Oracle本身也是根据数据字典来管理和控制整个数据库的。
Oracle数据库最新版本为Oracle Database12c。
(2)DB2
DB2是IBM公司研制出的一种关系型数据库管理系统,分别在不同的操作系统平台上服务。DB2主要应用于大型应用系统,具有较好的可伸缩性,可以支持从大型机到单用户环境,应用于OS/2、Windows等平台下。DB2提供了高层次的数据利用性、完整性、安全性和可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2还采用了数据分级技术,能够使大型数据很方便地下载到LAN数据库服务器,使C/S用户和基于LAN的应用程序可以访问大型数据,并且使数据库本地化及远程连接透明化。
(3)Sybase
Sybase是美国SYBASE公司推出的客户机/服务器(C/S)模式的关系数据库系统,也是世界上第一个真正的基于客户机/服务器架构的关系数据库管理系统。Sybase数据库将用户分为四种不同的类型,即系统管理员、数据库管理员、数据库对象管理员和其他一般用户。系统管理员可访问所有数据库和数据库对象。
(4)MySQL
MySQL是目前最流行的关系型数据库管理系统之一,由瑞典MySQLAB(AB,在瑞典语中表示“股份公司”,是“aktiebolag”的首字母缩写)公司开发,目前属于Oracle公司。在Web应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。目前最新的版本是5.6,本书也将以此版本作为讲述对象。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
(5)SQL Server
SQL Server是美国微软公司开发的一个关系数据库管理系统,采用客户/服务器体系结构,以T-SQL作为其数据库查询和编程语言。SQL Server采用二级安全验证、登录验证以及数据库用户许可验证等安全模式。SQL Server支持两种身份验证模式:WindowsNT身份验证和SQL Server身份验证,权限分配非常灵活。SQL Server可以在不同的Windows操作平台上运行,并支持多种不同类型的网络协议,如TCP/IP、IPX/SPX等。近年来,SQL Server不断更新版本,最新版本为SQL Server2014。
(6)PostgreSQL
PostgreSQL是一个开放源代码的关系型数据库管理系统,它是在加州大学伯克利分校计算机系开发的POSTGRES基础上发展起来的。目前,PostgreSQL数据库已经是一个非常优秀的开源项目,很多大型网站都使用PostgreSQL数据库来存储数据。
PostgreSQL支持大部分SQL标准,并且提供了许多其他特性,如复杂查询、外键、触发器、视图、事务完整性和MVCC。同样,PostgreSQL可以用许多方法扩展,例如,通过增加新的数据类型、函数、操作符、聚集函数和索引方法等。
(7)Access
1992年,Microsoft公司首次发布了Access。Access是Microsoft公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化,为建立功能完善的数库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的功能。由于Access只是一种桌面数据库,所以它适合数据量少(记录数不多和数据库文件不大)的应用。目前最新版本为Access 2013。
(8)Visual FoxPro
Visual FoxPro简称VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。Visual FoxPro源于美国Fox Software公司推出的数据库产品FoxBase,在DOS上运行,与xBase系列相容。FoxPro原来是FoxBase的加强版,最高版本曾出过2.6。之后,Fox Software被微软收购,加以发展,使其可以在Windows上运行,并且更名为Visual Fox-Pro。目前最新版为Visual FoxPro 9.0。在桌面型数据库应用中,处理速度极快,是日常工作中的得力助手。
注: Visual FoxPro、Access和SQL Server都是Microsoft公司的产品,只能在Microsoft公司Windows系列的操作系统上运行。而Oracle、DB2、MySQL和PostgreSQL等数据库是可以跨平台的,它们不仅可以在Windows系列的操作系统上运行,还可以在其他操作系统(例如UNIX、Linux和Max OS)上运行。