ラベル MySQL の投稿を表示しています。 すべての投稿を表示
ラベル MySQL の投稿を表示しています。 すべての投稿を表示

2012年8月5日日曜日

3.1 MySQLのインストール


MySQLは、オープンソースのDBMSとしては、世界でもっとも広
く使われているソフトウェアです。

3.1.2 MySQLの概要


MySQLは、スウェーデンのMySQL AB社で開発されたリレーショナル・デ
ータベース管理システムです。1995年にバージョン1.0が登場し、現在はバ
ージョン5.1系(安定版)と5.4系(開発版)、最新機能を盛り込んだ6.0系(開
発版)が提供されています。

MySQL AB社は2007年にSun Microsystems社に買収され、以後はSun
MicrosystemsがMySQLの開発と提供を行ってきました。

MySQLの最大の特徴は「軽快さ」です。大規模なデータベースでも高速な
アクセスが可能ですが、その反面、古いバージョンでは他のRDBMSにある
ような機能が含まれていませんでした。しかし現在では標準的な機能を実装
し、かつ高速性も備えています。

Webアプリケーションの標準的なオープンソースプラットフォームとして
「LAMP」(Linux、Apache、MySQL、PHP/Perl/Python)という言葉があ
りますが、そこにMySQLが含まれているとおり、Webアプリケーションの
土台としても広く利用されてきています。

MySQLは、Linux、UNIX、Windowsをはじめ、20種類以上のOS上で実行
することができます。Linuxディストリビューションでは標準パッケージを
用意しているものも多く、手間をかけずに使い始めることができます。

3.1.3 RPMパッケージでのインストール(CentOS)


CentOSでは、MySQLのRPMパッケージが用意されていますので、yumコ
マンドを使ってインストールできます。どのようなMySQL関連のパッケー
ジがあるのかは、次のようにして調べることができます。



# yum search mysql
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.riken.jp
* updates: ftp.riken.jp
* addons: ftp.riken.jp
* extras: ftp.riken.jp
======================= Matched: mysql ========================
mod _ auth _ mysql.i386 : Basic authentication for the Apache web
server using a
: MySQL database.
qt-MySQL.i386 : MySQL drivers for Qt's SQL classes.
MySQL-python.i386 : An interface to MySQL
bytefx-data-mysql.i386 : MySQL database connectivity for Mono
freeradius-mysql.i386 : MySQL bindings for freeradius
libdbi-dbd-mysql.i386 : MySQL plugin for libdbi
mysql.i386 : MySQL client programs and shared libraries.
mysql-bench.i386 : MySQL benchmark scripts and data.
mysql-connector-odbc.i386 : ODBC driver for MySQL
mysql-devel.i386 : Files for development of MySQL applications.
mysql-server.i386 : The MySQL server and related files.
mysql-test.i386 : The test suite distributed with MySQL.
pdns-backend-mysql.i386 : MySQL backend for pdns
perl-DBD-MySQL.i386 : A MySQL interface for perl
php-mysql.i386 : A module for PHP applications that use MySQL
databases.
php-pdo.i386 : A database access abstraction module for PHP
applications
php-pear-MDB2-Driver-mysql.noarch : MySQL MDB2 driver
qt4-mysql.i386 : MySQL drivers for Qt's SQL classes
rsyslog.i386 : Enhanced system logging and kernel message
trapping daemons
rsyslog-mysql.i386 : MySQL support for rsyslog
unixODBC.i386 : A complete ODBC driver manager for Linux.

 主なMySQL関連パッケージを表にまとめます。


MySQL関連パッケージ

パッケージ名説明
mysql-server MySQLサーバ
mysql MySQLクライアントプログラムと共有ライブラリ
mysql-bench MySQLベンチマークプログラム
mysql-server 開発用パッケージ
mysql-connector-odbc ODBCドライバ
php-mysql PHPからMySQLを利用するためのモジュール
perl-DBD-MySQL PerlからMySQLを利用するためのインターフェース


MySQLサーバとMySQLクライアントをインストールするには、次のコマン
ドを実行します。

# yum install mysql mysql-server -y

MySQLがインストールされたかどうかは、次のコマンドで確認できます。

# rpm -qa | grep mysql
mysql-5.0.45-7.el5
mysql-server-5.0.45-7.el5




2012年8月3日金曜日

1.3 リレーショナル・データベース管理システムとOSSの実装


オープンソースとして実装されたリレーショナル・データベース管
理システムには、MySQL、PostgreSQL、Firebird、SQLiteな
どがあります。SQLiteをのぞき、クライアント/サーバ型の構成を
とります。

1.3.1 MySQL


MySQLは、スウェーデンのMySQL AB社で開発され、現在はSum
Microsystemsによって開発されているリレーショナル・データベース管理
システムです。1995年にバージョン1.0が登場し、現在はバージョン5.1系(安
定版)と5.4系(開発版)、最新機能を盛り込んだ6.0系(開発版)が提供さ
れています。機能よりも高速性と堅牢性を重視して発展してきましたが、現
在では機能においても他のRDBMSに劣らないものとなっています。オープ
ンソースのRDBMSとしては世界でもっとも普及しています。















MySQLはオープンソースとして開発されていますが、無償で利用できる
GPLライセンスと、有料のコマーシャルライセンスのデュアルライセンスを
採用しており、用途に合わせて選択できます。無償版は「M y S Q L
Community Server」、有償版は、一般的なDBサーバとして社内やASP等で
使われる「MySQL Enterprise」、組込み用途やアプライアンスとして使われ
る「MySQL エンベデッドデータベース」、高い可用性とスケーラビリティ、
パフォーマンスを備えた「MySQL Cluster」があります。有償版は開発元に
よってテストが行われたバイナリが採用されており、サポートも付属します。
日本では、MySQLのユーザーコミュニティとして日本MySQLユーザ会
(http://www.mysql.gr.jp)があり、メーリングリストを中心に活動してい
ます。


◆MySQL公式サイト
http://www.mysql.com
◆MySQL日本語サイト
http://www-jp.mysql.com
◆MySQLユーザ会
http://www.mysql.gr.jp

1.3.2 PostgreSQL


PostgreSQLは、PostgreSQL Global Development Groupによって開発さ
れているリレーショナル・データベース管理システムです。商用データベ
ース並みの充実した機能を持っており、特に日本国内では商用システムに
おいて広く利用されています。




日本では、PostgreSQLのユーザーコミュニティとしてPostgreSQLユーザー
会(http://www.postgresql.jp/)があります。

◆PostgreSQL公式サイト
http://www.postgresql.org/
◆PostgreSQLユーザー会
http://www.postgresql.jp/

1.3.3 Firebird



Firebirdは、商用RDBMSのInterBaseから派生したリレーショナル・データ
ベース管理システムです。Mozilla Public Licenseに近いInterBase Public
L i c e n s e に基づいてオープンソースで開発されており、M y S Q L 、
PostgreSQLに次ぐオープンソースRDBMSとして注目されています。

◆公式サイト
http://www.firebirdsql.org/
◆Firebird日本ユーザー会
http://firebird.gr.jp/


1.3.4 SQLite


SQLiteは、アプリケーションに組み込んで利用される形態の簡易RDBMSで、
クライアント/サーバ型ではなくライブラリとして提供されます。PHPや
Pythonでは標準ライブラリに組み込まれており、プログラムから簡単に利
用することができます。

◆SQLite公式サイト
http://www.sqlite.org/

1.3.5 商用RDBMSとオープンソースのRDBMS


よく知られた商用RDBMS製品としては、Oracle社のOracle Database、
Microsoft社のSQL Server、IBM社のDB2などがあります。いずれも有償の
製品であり、ベンダーによるサポートが付属しています。

これらの商用RDBMSと比較して、オープンソースのRDBMSは何が違うの
でしょうか。おそらく一般的な用途では、機能面でオープンソースの
RDBMSが大きく劣るということはなくなってきています。サポートに関し
ても、オープンソースのRDBMSをサポートしているサードパーティベンダ
ー*がありますから、有償でサポートを受けることは可能です。比較的大規
模なデータベースにも、オープンソースRDBMSを適用することができます。

ただ、パフォーマンスやスケーラビリティについては商用製品に利があるこ
とが多いでしょう。もちろん、パフォーマンスチューニングを施すことによ
ってオープンソースRDBMSの性能を高めることはできますが、そのための
ノウハウが十分に提供されているとは言えない状況があります。パフォーマ
ンスチューニングをせずにオープンソースRDBMSを導入し、「やはり無料
のソフトウェアは使えない」と判断されるケースも耳にします。オープンソ
ースRDBMSを導入する場合は、その特徴を理解し、性能を十分に発揮でき
るように工夫しなければならないこともあります。

また、実務で利用する場合は、協力会社が必要なスキルを持っているか、教
育・研修体制が十分か、開発ツールが対応しているか、他のシステムとの親
和性はあるか、技術情報が豊富に存在するか、といったことも重要になって
きます。

RDBMSを導入する場合は、そのような点を考慮し、オープンソースを採用
するのか、商用製品を採用するのかを決定する必要があるでしょう。
*MySQLの場合は開発元である






1.1 データベース


データベースとは、構造化された電子データの集合です。単なるデ
ータの集まりではなく、相互に関連するデータを整理・統合し、検
索性を考慮して構造化しています。


1.1.1 データベース利用のメリット

さまざまな業務システムやWebアプリケーションにおいては、データベー
スを利用しないものよりも利用するものの方がずっと多いでしょう。現在
のアプリケーション開発では、データベースは不可欠なものとなってきて
います。
アプリケーションでデータを扱うには、たとえばファイルに独自フォーマ
ットでデータを記録する処理をアプリケーションごとに用意する方法もあ
りますが、そういった方法と比較して、データベースを利用するメリット
には、次のようなものがあります。
・データの一元管理
複数のファイルやホストにデータが分散せず、一カ所で一元管理すること
ができます。
・データの共有
複数のアプリケーション、複数のユーザーでデータを安全に共有できます。
・処理とデータの分離
データへアクセスするアプリケーションと、データそのものとを分離する
ことで、保守が容易になります。
・データを関連づけて格納
複数のデータを相互に関連づけて格納し、検索することができます。
・登録するデータへの制約付与
ある項目には数値のみ、ある項目には20文字以内の文字列しか登録でき
ないなど、制約を付けることができます。
・データの整合性確保
データの一貫性を確保することができます。
・複数のデータアクセス同時処理
複数のアプリケーションから複数のデータへ同時にアクセスしても、同時
に処理をさばくことができます。
・データの安全な格納
アクセス権限を設定し、機密性を確保しやすくなっています。

1.1.2 データベースの種類


データベースの論理的なデータ構造を論理データモデルといいます。論理
データモデルには、階層型データベース、ネットワーク型データベース、
リレーショナル・データベース、オブジェクト指向データベースなどがあ
ります。
◆階層型データベース
データをツリー構造として格納するモデルです。親となるデータが複数の子
データを持つことができ、子データには必ず親データが存在します。
◆ネットワーク型データベース
データをネットワーク構造として格納するモデルです。
◆リレーショナル・データベース
データ構造を二次元の表を使って表します。表と表との間には関連づけ(リ
レーションシップ)を行うことで、複雑なデータ構造も表現できます。現在
主流となっている形式のデータベースです。
◆オブジェクト指向データベース
オブジェクト指向の概念(カプセル化、クラス、継承など)を取り入れてお
り、データをオブジェクトとして格納できます。そのため、オブジェクト指
向プログラミング言語での開発がスムーズになります。