サイベース株式会社 様のご厚意により, オーム社 様の書籍
"詳解 SYBASE SQL SERVER on Linux" を
ブックレビューコーナー にご献本いただきました.
この本のレビューをして頂くべく,
Linux Users ML
や本サイトにおいて公募を行い,
これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.
ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)
サイベース 様および レビューアの皆様のご厚意に感謝いたします.
なお, 以下のレビューは初版を対象としています.
この本は, 世間に多いいわゆる Linux 本とは違い, Sybase 社の方々の執筆によるものであり, 製品の紹介・宣伝を兼ねた本であるように思いましたので, 若干辛めで書きたいと思いますが, 決して悪気はないので, よろしくお願いいたします. m(_ _)m > Sybase 社
この本を受け取り, 期待と共に梱包を空けますと, 赤い腰巻き (本当は何と言うか知らなかったのですが^^; 宣伝の帯のようなものです) がついた本が出てきました. 「すごい! これがフリーのデータベース?! この本 1 冊で実務に耐え, 2000 年問題にも対応した, 本格データベース・システムが構築できる! Microsoft SQL Server データベースを Linux で動作させるガイド付」とありました.
一見して, この書の目的の一つに, MS SQL Server を意識し, それを Linux 上で動かすことに関心を引いていることがわかりました. 「ええ?!」っと驚きました. MS SQL Server を Linux に移植できるわけもなく, また, データベースを直接エクスポートできるわけでもないでしょうに, と思い, すぐに目次を開き, 「12 章 Microsoft SQL Server からの移行」から読むことにしました. そうして読み進むうちに, MS SQL Server のルーツが Sybase であることを強調したいということだった, ということに気がつきました. 特別インターフェースがあるわけでも, 変換ツールが付属しているわけでもなく, 結局 bcp を使用し, また互換でない SQL をごりごりと手直ししなければなりません. 確かに他の DB に移行するよりは少ない工数でできるのかもしれませんが, これは「MS SQL Server を Linux で動作させる」というのとは 違うのではないでしょうか... またこの章での「MS SQL Server for Linux」という言葉 (恐らくはタイプミス) にも, 「をいをい…」 という感じがあります. この宣伝ベルトは言い方こそ微妙ではあるものの, スポーツ新聞顔負けのすれすれのキャッチを使用しているように感じました.
この本は以下のような構成になっています.
第一部 | 入門編 |
第二部 | 導入編 |
第三部 | 応用編 |
第四部 | 管理編 |
第五部 | 開発編 |
Appendix | A-E |
これはとても良い構成だと思います. そして, Linux 用の本であるとはいえ, インストールに深入りしていない点もコンセプトとしてはバランスがとれています. 実際, 特別この Sybase SQL Server に関係のある点と言えば, /opt/ ディレクトリについて言及している程度です. この本の持つ使命の一つには, Sybase SQL Server を日本の Linux 界で普及させるというものがあると思います (実際執筆者は全員 Sybase 社の方々です) から, この本 1 冊で名乗りをあげ, とにかく語り尽くそうという意気込みは感じられました. その影響でしょうか, 率直に言って, リファレンス的な要素が強く, 内容的には盛りだくさんで, 必要なことはどこかに書いてあるものの, Sybase SQL Server を試用するユーザの観点からは読みにくい気がしました.
RDBMS に関してはどうしても MS 屋さんが多いわけですから, やはりそのような人たちの観点から, この書籍を分析すべきだろうと考えました. その視点を代表した感想かどうか自信はありませんが, 以下のような観点を考えてみました.
(1) | MS で作ってきた DB アプリは, Linux でどのように動くのか, MS SQL Server と何が違うのか |
---|---|
(2) | Linux 上のほかの DBMS と何が違うのか |
(3) | この DB をばっちりインストールし, 管理するにはどうすれば良いのか |
(4) | Web/DB 系のイントラに使えるのか使えないのか |
(1) については該当する章があります. しかし, どうせなら一覧を対応表にまとめて欲しいと思いました.
(2) 特に主張は感じられませんでした. ロックの形式は 「2kByte 単位のページロック」なんだそうですが, テーブルレベルロックよりは小さい範囲だと言いたいのかもしれませんが, 結局どういうことなのか良くわかりませんでした. あとは, MS SQL のルーツだ, ということがとにかくウリという印象があります.
(3) 概ねわかりやすいのですが, あえて言うならば, 第 4 部管理編の「第 9 章バックアップとリストア」で テープデバイスについてアプリケーションから見たことは書いてある一方, インストールの部分ではハードウエア構成のところで SCSI やテープについては全く触れられていません. UNIX の経験者ならそう難しいことではないとのことでも, 実際テープドライブの使用については UNIX 系の技術者でないとわからない部分です. インストールの部分か, あるいはバックアップの章で, せめて SCSI のテープデバイスについては少しでも触れておかないと, 第9章はほとんど意味をなさなくなるように思います.
(4)WEB とのインターフェースについては, 主に SybPerl の紹介が載せられています. また, ODBC については「別売です」程度で, 皆無に等しい状態です. 率直に言ってこの面に関しては非常に貧弱な内容で, ほとんど「自分で考えてね」的な雰囲気です. これでは IIS + MS SQL Server な人は Sybase SQL Server に あえて移行する価値を認めないでしょう. せめて, CGI を使用したアクセススクリプト例などを掲載して欲しい気がしました.
総じて, 執筆者陣の Sybase SQL Server に関する できるだけ多くのことを扱おうとする姿勢は感じられます. ですから, Sybase SQL Server を使用し始めた人への リファレンスとしては良いでしょう.
しかし, 実際にこれから Sybase SQL Server を使用するよう促す目的と言いますか, いわゆる啓蒙的な部分や, 実際に活用させる意欲を高めるという部分では, 相当物足りなさを感じました. しかしながら, 言うまでもなく, Linux で数々の本格的な RDBMS が動くことは, とても素晴らしいことです. 続編を期待したいと思います.
どうもつらつらと偉そうなことを書いてごめんなさい(^^;)/
まず最初に本書の感想を簡単に述べると, 非常にバランスがとれた目的のはっきりした 1 冊であると思います. データベースソフトの解説本の中には SQL の構文などの解説と, 各データベースソフト特有の設定などの解説とを両方カバーしようとした結果, まとまりのない内容になってしまっている本もあると思われます.
それに対して, 本書の目的は, MS SQL Server6.5 をすでになんらかの形で利用している人が, Linux 上で動くサイベースの SQL Server に置き換えてみたいと考えたときに有益な手引きになることだと思います. 私は最近仕事で MS SQL Server6.5 でデータベースを構築したことがあります. そして今回ブックレビューを書かせていただく際に, 実際に Linux にサイベースの SQL Server をインストールして, 試しにデータベースを構築してみました. そこで思ったのは, Linux 上では各種設定は GUI では行えないこと, インストールの際もいろいろと手順があること, MS SQL Server6.5 上で構築されたデータベースは当然のことながら, そのまま移行できるとは限らないということです. また, クライアント側のアプリケーションは どのようにしてサーバーのデータベースにクエリーを発行すればよいかという疑問も, クライアントのアプリケーションも Linux で動作させるとしたら発生するかと思います. 例えば, HTTP サーバーを走らせて CGI 上でデータベースを参照したいといった場合は 必ずこの問題は解決しなくてはいけません. 以上述べた点に関して本書は的確に説明していると思います.
まず, インストールに関しては 3 章で簡潔に説明されています. そして, 4 章で isql (クエリーを発行できるコマンドライン型のアプリケーション) を起動して, サーバーにログインするまでを解説しています. これらの説明を参考にすれば, まず問題なくインストールを行い, サーバーにログインして, 「ちゃんと動いているんだ」というのを確認することができるかと思います.
そしてさまざまな設定は, 10 章 3 節に 「SQL Server の動作設定」という形で説明されています. やや分量が短めですので, 本格的にチューニングをする際には MS SQL Server6.5 のマニュアルや, 解説本を参考にする必要があるかと思います. あと, 設定の中でも頻度が高いデータベースの領域拡張については 6 章 1 節のなかの「ユーザ・データベースの作成」という個所で述べられています.
あと, MS SQL Server6.5 とサイベースの SQL Server の違いは, 12 章の「Microsoft SQL Server からの移行」という個所で説明されています. タイトルの通り, 移行を前提として両者の違いが解説されているので 非常にわかりやすくまとまっていると思います.
最後にクライアント側のインターフェースは 11 章「アプリケーション・インターフェイス」で説明されています. この章では, クライアント側でサーバーへの接続を実装する際の方法について 一通り説明しています. そして最後には, CGI での利用にも言及しています. Sybperl という perl スクリプトが CD-ROM に付属していますので このスクリプトを利用すれば CGI でデータベースが参照できるそうです. 本当は実際に試してみたかったのですが時間に余裕がなくてできませんでした. 残念です.
このように, 本書を参考にすれば, 「MS SQL Server6.5 を使ってたけれど, Linux にサイベースの SQL Server をいれてみた. でも, 設定とかしたいのにどうすればいいのかわからない, これだったらわざわざ Linux でなくて Windows で MS SQL Server6.5 を使い続ければいいじゃない」 といった結論にはならなくてすむと思います. さらに, 本書の著者は「じゃあ結局どっちがいいの?」という疑問にも 本音の見解を述べています. それは, 読んでみてのお楽しみということにさせていただきたいと思いますが, 個人的にはまことにまっとうな考えだと思います.
私なりの意見を申し上げると, サイベース SQL Server は商用 UNIX 版があって, Linux 版があります. Linux 版は書籍を購入すれば, CD-ROM にソフトウエアが入っていて, 書籍自体が解説本になっています. それに対して商用 Unix 版はきちんと製品として「購入」しなくてはいけません. その差は説明するまでもないと思います. そして, 他にもフリーの Linux で動くデータベースソフトは存在しますし, むしろそれらのデータベースソフトの方が今は使用されている数は多いかと思います. ですが, MS SQL Server は使い慣れているけど Linux でデータベースサーバーを立ち上げたいと思っている方ならば, 迷わず本書を購入して Sybase SQL Server で データベースを構築すればいいと思います.
最後に物足りないなと思った点ですが, チューニングに関して言及がない点です. 実務で使用するなら, きっと必要な情報かと思いますので, 項目を設けていただきたかったです.
会社に入る前は, 学校で EWS4800/10 という, SystemIV 系を使用していた. 多少ブランクがあり, SunOS4.1.x を会社で使うことになり, ずっと, BSD 形式に慣れてきた. ところがある日, メーカーが SystemIV 系 をベースにするとのことになり, Solaris2.x となってきている. 私がずっと, Sun を使用してきたのと同時に, 徐々に管理もやり, かつ, いろいろなツールなどを使用してきた経歴がある. まさか, ここまで, Linux が力をもつとは思ってもみなかったし, 技術者の勉強用の OS であると見ていたのだが, ここへきて, 状況がかわってきた. ここまで, Linux の性能があがってくるかと. それと同時に, UNIX の RISC チップで動作していたものがここにきて, Linux の x86 に移植され, 結構な性能をあげるまでとなっている. 特に, DataBase は, 重く CPU に結構な負担をかける物であったとおもっていたが, Sybase SQL Server が Linux に移植され, この分野までも使用できるようになってきた.
今回, その Sybase SQL Server の Linux 版がでるとともに, やっと念願の本がでてきたとは嬉しい限りである. 私自身, Sybase SQL Server を使用し開発をするときには, 参考になる本が無く, 洋書で探すか, MS-SQL Server 6.5 を参考にして勉強したものである. 以下, 今回出た本についてのレビューである.
はじめて, SQL Server にふれたときに, まさか, 管理者が必要なものだとは思わなかった. 私自身, 通常のアプリケーションと同じようにインストールして, 設定ファイルや使い方を教えるだけで, あとは, 使用者にまかせておけばいい, 手の掛からない物だと思っていた. ところが, はじめて, 使用する者にとっては, どのように管理をしていけばいいのかわからないだろう. 本をみていただければわかるように, ちゃんと管理者でも手軽に使えるように配慮されていることに気がつくに違いない. 通常は, 管理者マニュアルとユーザーマニュアルがあって, それから... 考えただけでも多量なマニュアルとの死闘を繰り返すことになるに違いない.
ところがこの本には, 管理者が行う, ユーザ管理からデータのバックアップやリストアは書かれており, きっと, 重宝するに違いないと思う. 一度, 読んだあとでも辞書のように使える本であると思う (DB の拡張を行う場合, 管理者がやる場合もあるだろうし, 管理者以外の方が行なう場合もありえると思う. この本があれば, 簡単に目的のことが見つかるだろう).
私自身, びっくりしたのは, DataBase もカーネルのテクノロジーが使われているんだという点だ. いいかえれば, 管理者として大事な仕事を理解しなければいけないことに, はたと気が付かされるとは思いもよらなかった.
しかし, トラブルが発生した場合, どうすればよいのか書かれていないのは, きっと, 著者の意図的な物だろうか? まぁ, 通常, データベースのバックアップをとっておけば, 復旧時にはとても役に立つかもしれない. その意味で書かれていないのかもしれない. できれば, ヒントとかを書いていただければありがたかったと思う.
結局のところ, DB の管理を初めてやる方にとっては, やさしい本なのかもしれない.
最近はやりの Web-DB 連携を Sybperl によって構築することができるのだが, ある雑誌に紹介され早速使おうと思い試した. しかし, Sybase のライブラリと Perl の関係で, うまくインストールができなくて, 悔しい思いをしていた.
ちゃんと, 本には構築方法が書いてあるので, 迷わず Sybperl を使用することが簡単にでき, 私が試していたときにかかった多量な時間が いったいなんだったんだろうかと思わせるくらい丁寧に書いてある.
でも, Sybase SQL Server 専用の Perl を作成しなければならないので, どのような問題がでるかは各々の環境や状態によってちがってくるだろうと思われる. しかし, ほとんどの Web サイトでは mySQL を使用したりしているところがあるので, トランザクションが使えるだけでもありがたいのではないかと思われる. Web 開発者にとっては, ありがたいかと思う.
もちろん, NT Server から Linux に置き換える方などがおられると思うので, そのようなニーズにも応えてくれるようなことも書いてある. かゆいところに手が届くと言ってもいいのではないかと思う.
もちろん, C などの言語に開発される方にも, 関数の使用方法があるので, 参考書にもいいのではないかと思う (VB の場合は, Sybase より OpenClient を購入するか, ODBC ドライバーを捜してきて, クライアント側にインストールする必要がある).
アスキー出版局 Microsoft Press Microsoft ODBC3.0 プログラマーズリファレンス & SDK 付属の ODBC ドライバをインストール, MS-SQL6.5 の ISQL/w を使用して Sybase SQL server のアクセスは問題なくできました.
1 冊この本を持っていて, 損をすることはないだろうと思う. できれば, システム管理者, 開発者, そして, 興味があって, Linux と DB の知識がある程度ある方にとっては, 使える本だろうと思います. また, 教科書にしてもいいかと思います.
第 2 部「導入編」の 5 章「Transact-SQL によるクエリの実行」においては, 時間の問題かもしれないが, 一部に網掛けがあることになっているが実際存在していない. SQL をはじめてやる方にとっては迷うかもしれない. SQL の文をできれば知っている方に相談して訂正してもらい, 読むのが無難だろう.
SQL Server の解説書の中で本書のように DB の物理的構造からチューニング方法まで詳細に言及したものには, なかなか出会えませんでした. 筆者が書いてらっしゃるように本書は Linux 環境での DB 構築方法だけでなく, SQL Server の総合的な解説書に仕上がっています.
そういった意味で, これから SQL Server を用いて DB アプリケーションを構築しようと考えている方々にはうってつけの一冊と言えます.
CD-ROM は 2 枚付属しており, 一枚は TurboLinux 日本語版 3.0, もう一枚に ASE(Adaptive Server Enterprise for Linux)11.0.3 とサンプルプログラム等が収録されています. まっさらの PC でも, これだけでシステムを組むことができる充実した内容です
これで \6,500 は価値はある内容といえるでしょう. でも個人で少し DBMS に触れてみたい場合には少々高く感じる価格と思います. もし仮にこの本が\3,000 以下だとしたら SQL-Server の裾野も広くなり, 敷居も低く感じられたかもしれません. やっぱり誰にでも気軽に買える値段じゃないです. ただ繰り返し申し上げますが, 値段だけの価値はあります.
1 章 | SQL Server 入門 |
2 章 | SQL Server を動作させるために |
ここでは RDBMS の概要と SQL Server の概要が述べられています. また TurboLinux のインストール方法にも簡単に説明があります. 筆者が述べられているように, 本書はインストール本ではないので, Linux のインストールに関しては必要最低限のことしか書かれていません. Linux のインストールが全く初めての方には苦しいかも知れません. なお, 私はすでに導入済みの Vine Linux 上に SQL Server を構築しましたので, 本書付属の TurboLinux は使用しておりません.
3 章 | SQL Server のインストールとサーバ構築 |
4 章 | はじめてのログイン |
5 章 | Transact-SQL によるクエリの実行 |
ここでの SQL Server のインストールは, とても丁寧に説明されていて解りやすかったです. 私も説明とおり進んで問題なくインストールでき, SQL Server が稼動しました. ただ動くといっても Windows の世界で現役引退しそうなマシン (Pentium100MHz,メモリ 40MB) で SQL Server が動くのだから凄いものです. ログインし SQL を投げ, 結果セットが返って来たときには感動してしまいました. 一通り DB 構築ができた現在では 開発用マシン, テストマシンとして重宝しています.
6 章 | データベースの作成 |
7 章 | Transact-SQL 応用 |
私は, この応用編が一番参考になりました. データベースの構築方法からデバイス上の物理構造, データ部とログの格納構造, テーブル, キー作成の論理構造まで バランス良くデータベース構築のポイントが押さえられています.
また特に第 7 章でのトリガの使い方, コマンドバッチ, ストアドプロシージャやカーソルの使い方などは 例を用いて解りやすく書かれています.
8 章 | トランザクション管理 |
9 章 | バックアップとリストア |
10 章 | 一歩踏み込んだ SQL Server の世界 |
ここも DBMS を運用する者にとっては欠くことのできない部分です. 一般的リカバリや排他制御の説明のみならず, SQL Server のメモリ使用状況やキャッシュの詳細まで丁寧な解説が続きます. 現在のバックアップやログの運用を見なおす良い機会を得ることができました.
第 10 章ではマルチスレッドの解説などと共にチューニング方法も紹介されています. 今回のブックレビューでは一つ一つ試してみることが出来ませんでしたが, 時間をとって是非ともじっくり検証してみたい部分です.
11 章 | アプリケーション・インターフェース |
12 章 | Microsoft SQL Server からの移行 |
本章は私個人の開発環境として Windows クライアントが主であることもあり, 実際にサンプルプログラムを実行するまでには至りませんでした. ただ CGI を用いた Web サーバーは是非トライしてみようと思っています. 本書では, さまざまな形態の開発環境の解説がサンプルプログラムとともに 具体的になされており, SQL Server の DB サーバーとしての有用性を 検証できるようになっています.
Linux で DB サーバーを構築しようと思っておられる方は, 初心者であっても本書一冊で可能です. SQL Server を DBMS として一通りの機能は満足するサーバーに仕上がるはずです. Linux の環境はさておき, DBMS を構築し, 開発, 運用することは可能です. またチューニングに関しても詳細に解りやすく解説されており, DB そのものに関するチューニングについても解決できそうな気がします.
今回は時間の関係でできませんでしたが, 10 万件程度 (欲を言えば 100 万件程度) の DB を構築し 10 台以上のクライアント環境でのテストが 是非したくなるような気にさせる DBMS でした.
昨今, Linux は企業システムの OS の選択肢として 毎日のようにセンセーショナルに取り上げられています. 今回のブックレビューを通して SQL Server が Linux の魅力や有用性を加速させる要因の一つとして 大きな役割を占める可能性を実感しました.
最後に, 私にこのような貴重な機会を与えてくださいました JLA Webmasters ブックレビュー企画担当の方に感謝いたします. ありがとうございました.