MySQL & mSQL

作者:Randy Jay Yarger、George Reese 和 Tim King
出版社:O'Reilly & Associates
电子邮件:info@ora.com
价格:34.95 美元
ISBN:1-56592-434-7
评论者:Reuven M. Lerner
关系型数据库基于 20 世纪 70 年代最初发明的技术。它们的技术可能很旧,但数据库在我们日益信息化的世界中发挥着至关重要的作用。它们旨在轻松、快速和可靠地存储和检索信息。
随着万维网的增长,越来越多的人开始意识到关系型数据库的用处。个性化网页、购物车、日历/日记网站、股票投资组合和图书推荐都因数据库与 Web 的结合而成为可能。
虽然创建和发布网站相对便宜,但数据库通常购买昂贵,需要昂贵的硬件,并且占用一名或多名全职数据库管理员。难怪公司可以为数据库收取高昂的费用——任何有能力安装和维护数据库的人也都能负担得起五位数的购买价格。
然而,潮流开始转变,MySQL 和 mSQL 正是普及数据库使用的运动的前沿。它们可以在几分钟内安装完成,维护成本低,并且性能出色。此外,它们还支持大多数在较大型数据库上使用的标准 SQL(结构化查询语言)语法。这意味着任何接受过较大型数据库系统培训的人都能够将该知识应用于 MySQL 和 mSQL。反之亦然;MySQL 和 mSQL 让人们可以在使用 Oracle、Sybase、DB2 和其他大型产品之前学习关系型数据库的基础知识。
MySQL & mSQL,O'Reilly and Associates 的新书,对于想要使用其中一种或两种产品的人来说是一本好书。它对关系型数据库背后的理论进行了出色的介绍,并以相对清晰简洁的方式解释了数据规范化——数据库良好设计的关键方面。它描述了 SQL 数据类型,并经常举例说明如何使用它们。我通常使用 MySQL,因此,本书的 mSQL 部分与我的日常工作无关。尽管如此,我发现了解两者之间的差异以及切换可能会获得或失去什么很有用。根据本书的介绍,没有数据库编程经验的人很难在两者之间做出决定。
MySQL and mSQL 首先概述了数据库,然后重点介绍了这两种数据库产品。本书继续从多个角度审视数据库编程,包括各种语言(C、C++、Java、Perl、Python 和 PHP)。最后,它提供了 SQL 和几个特定于语言的 API 的参考。
话虽如此,MySQL & mSQL 的几件事让我感到困扰。令我惊讶的是,示例 CGI 程序没有使用 -T(taint)标志,这可以显着提高程序的安全性。我还希望看到对 Perl 的 DBI(数据库接口)的更长篇幅的描述,而不是用空间来描述旧的 Mysql.pm 模块。
我开始学习 Python,很高兴看到 MySQL & mSQL 包含关于该主题的章节。不幸的是,本书没有告诉我可以在哪里找到 Python 的 MySQL 模块,也没有说明示例中使用了哪个模块。经过一个小时的搜索、下载和安装失败后,我放弃了。作者当然可以就这个问题给出更清晰的说明。
令我惊讶的是,我在工作中广泛使用的 DESCRIBE 命令在索引中只有一次提及——而且指向的是本书 SQL 参考中的一个空条目。
初学者可能需要一个简短的、循序渐进的演示,说明如何 CREATE 表,向表中 INSERT 行,UPDATE 表的一列,DELETE 行,最后 DROP 表。MySQL & mSQL 详细描述了这些命令,但很少给出交互式数据库命令的示例。
也许我对 MySQL & mSQL 最大的问题是它缺乏对使用这些低端数据库时可能出现的问题的关注。我已经使用 MySQL 多年,并将继续将其用于许多应用程序,无论是 для 自己还是 для 我的客户。但它缺乏有用的项目,例如触发器、存储过程和嵌套 SELECT 语句。更重要的是,它缺乏事务和约束,这有助于确保数据安全。
关系型数据库通常需要大量的计算能力和维护,作者本应更详细地说明为什么会这样。特别是,如果能更多地了解事务,以及在什么情况下,Oracle 或 Sybase 的额外费用与公司责任相比显得微不足道,那就太好了。
尽管存在缺陷,MySQL & mSQL 仍然是一本值得欢迎的书。它提供了比以前可用的这些产品更好的文档,并为刚接触关系型数据库的程序员指明了正确的方向。如果您有兴趣编写使用数据库的应用程序,MySQL & mSQL 是一个不错的起点。
