2006年9月24日星期日

第七章 数据库服务

  现在不会再有人怀疑数据库的重要性了,Linux 平台下可供选择的数据库有很多种,既有商业化的数据库产品,也有自由的免费数据库系统。千万不要以为免费的就是质量差的代名词,事实上许多免费的数据库系统的性能指标甚至比商业化数据库还好。利用它们同样可以构造性能优良、安全高效的数据库应用系统。除了性能之外,如果还很关心成本,那么 MySQL、PostgreSQL 这类免费的数据库软件肯定是你不二的选择。
 
第一节 数据库系统与 SQL
 
  做一名数据库管理员可不是一件轻松的事,成为一名优秀的数据库管理员就更难了,这是因为数据库管理涉及许多方面,要求有相当深厚的知识背景。什么是数据库?什么是数据库系统?什么是 SQL?什么是结构化查询?如果这一切都还似懂非懂,那就一起来进行一次上岗前的基本培训吧!

 
1、数据库系统

 
  数据库系统简单地说就是具有数据存储与处理能力的计算机应用系统。它是一个能处理种类数据的大管家,负责对数据进行统一的保存、更新和查询。一个完整的数据库系统包含两个部分,即数据库和数据库管理系统,前者指的就是数据库中所储存的数据(通常是具有特定结构的文件),而后者则是用来处理这些数据并管理整个系统的应用程序。

 
  虽然目前存在的数据库系统有很多种,但真正实用的还得算关系型数据库。关系型数据库以二维矩阵构成的表格来存储数据,每笔数据称为一条记录,而每条数据一般又分成多个字段。借助表格中“行”与“列”的关系,可以很轻松地获得真正所需的数据,如表 7-1-1 所示。
 
表 7-1-1 通讯录
 
  Name  City  Telephone  ID
  kevin  Abc 123456789 1
  erica  Abc 123456789 2
 
  在表 7-1-1 所示的表格中,假设要找到“kevin”所在的城市,可以由横向的“kevin”记录与纵向的“City”字段的关系相交而得。说穿了,关系型数据库就是由多个二维表格所组成的有机系统,只不过这些表格这间存在着各种各样的关系罢了。当然,这些关系可能很简单,也可能很复杂。
 
2、SQL 服务器
 
  结构化查询语言(Structured Query Language,SQL)是目前各种关系型数据库系统采用的一种通信标准,它使得管理员可以与数据库服务器进行有效的沟通,来获得真正感兴趣的数据。可不要被 SQL 名称中的“查询”两个字给蒙蔽了,以为它只能用来查询数据,事实上对数据库的添加、删除、修改等操作,也都可以通过SQL 来完成。
 
  SQL 最早源自 IBM 公司开发的 DB2 数据库系统,后来经美国国家标准组织(ANSI)和国际标准组织(ISO)的推动,开始被广泛地使用在关系型数据库系统之中。由于 SQL 的广泛应用,以至于许多数据库产品为了强调本身具有的 SQL 功能,都纷纷在名称中加上 SQL 几个字,最明显的莫过于 Microsoft 公司推出的 SQL Server 了。具有 SQL 执行能力的数据库系统常常被人们简称为 SQL 服务器。
 
  Red Hat Linux AS 4 自带了两个非常优秀的 SQL 服务器:PostgreSQL 和 MySQL。
 
  PostgreSQL 是一个优秀的对象关系型(object-relational)数据库系统,以关系型数据库的设计为基础,支持绝大多数 SQL 特性,包括子查询、事物处理以及用户自定义数据库类型等,并且是一种完全免费的数据库系统,许多 Linux 发行版都将其作为首选的 SQL 服务器。
 
  相比之下,MySQL 是一个小型的多用户、多进程的 SQL 服务器,管理起来简单方便,因此适合于普通的应用场合,难怪许多 Linux 数据库管理员都对它情有独钟。
 
3、认识 MySQL
 
  MySQL 目前在 Linux 操作系统上非常流行,它是一个真正意义上的多用户、多线程,并完全符合 SQL 标准的关系型数据库服务器。它提供了一个很好的客户机/服务器解决方案,不仅包含基本的服务器和客户机软件,还提供了 Perl 等语言的接口和用于 Windows 平台的 ODBC 驱动程序。MySQL 的最大魅力在于它是免费的自由软件,能和其它重量级的自由软件如 Apache 服务器、PHP 动态页面编程语言等紧密结合,从而成为架设动态网站的黄金组合。
 
  MySQL 最主要的特点是快速、健壮、易用,其目标是提供一个在普通的硬件设备上能快速处理海量数据的 SQL 服务器。MySQL 依赖的是一组经过多年严格测试的程序,虽然它们仍处在发展阶段,但已经是一个能提供丰富功能的实用系统了。曾经有人使用 MySQL 处理了 10,000 个表格,其中有 500 个表格存有超过 700 万条的记录,数据总量达到 100GB,这对一个免费的 SQL 服务器软件来讲是非常难得的。
 
  尽管 MySQL 还有一些 SQL 的高级特性没有实现,但在一般应用场合下,特别是在那些速度要求很快但功能要求不是很高的 Web 应用中,MySQL 可以算是最佳的选择。

没有评论: