データベースは大量なデータを効率よく管理するためのソフトウェアです。複数のユーザからのデータの更新を制御したり、必要なデータへの高速なアクセス方法を提供します。インターネットの普及に伴い、様々な用途にデータベースが利用されるようになっています。
データベースの種類
データベースといっても様々なタイプのデータベース・ソフトウェアが存在します。ここではデータベースの種類について確認しておきましょう。
- リレーショナル・データベース
- テーブル(表)でデータを管理する。テーブルとテーブルの間に関係を定義する。
- キーバリュー・データベース
- キーとバリュー(値)のペアでデータを管理する
- ドキュメント指向データベース
- JSONデータなどの階層構造をもつデータを管理する
開発現場では、開発するシステムの規模や特性によってデータベースの種類を決定します。一般的な規模のWebアプリケーションではリレーショナル・データベースを利用することが多いです。
キーバリュー・データベースやドキュメント指向データベースは、リレーショナル・データベースに比べて後発のデータベースです。これらのデータベースはインターネットの普及に伴って登場しました。大規模なシステムではキーバリュー・データベースを使うことで、システムのパフォーマンスや拡張性を優先することがあったり、アプリケーションの特性に合わせてドキュメント指向データベースを利用することもあります。
本講座ではリレーショナル・データベースを中心に扱います。ここではリレーショナル・データベース以外にもデータベースが存在するということを覚えておいてください。
リレーショナル・データベース
リレーショナル・データベースは、データをテーブルと呼ばれる仕組みで管理します。テーブルとはデータをスプレッドシートのような表形式で管理する仕組みです。
リレーショナル・データベースでは、データをテーブル(表)で管理し、テーブルとテーブルの間に関係(リレーションシップ)を定義します。これによって複数のテーブルを結合して必要なデータにアクセスできます。
リレーショナル・データベースの文脈ではテーブルのことをエンティティと呼び、テーブル間の関係(関連)のことをリレーションシップと呼ぶこともあります。
主要なリレーショナル・データベースプロダクト
WebブラウザにGoogle ChromeやMicrosoft Edge、FireFoxといったプロダクトがあるように、リレーショナル・データベースにもいくつかのプロダクトが存在します。
- MySQL
- オープンソースのデータベース・プロダクト。世界中で利用されている実績のあるデータベース。
- PostgreSQL
- オープンソースのデータベース・プロダクト。MySQLと同様に実績のあるデータベース。
- SQLite
- オープンソースのデータベース・プロダクト。スタンドアローン型で動作する軽量のデータベース。
- Oracle
- Oracle社の開発しているデータベース・プロダクト。
- SQLServer
- Microsoft社の開発しているデータベース・プロダクト。
データベースプロダクトによって、ユーザインタフェースや内部的なデータの管理方式は異なります。またデータベースのバックアップ等の管理コマンドもデータベースプロダクトによって異なります。
それからソフトウェア・ライセンスについてもMySQLはGPLv2ライセンス、PostgreSQLはBSDライセンスのように、データベースプロダクトごとにライセンスが存在します。一部のデータベースプロダクトは有償ライセンスを購入して利用するものもあります。これらのライセンスにしたがって利用する必要があります。
このようにデータベースプロダクトによって違いは存在するもののSQL(Structure Query Language)というプログラミング言語を使用して、データにアクセスするという点は共通しています。SQLは厳密にはデータベースプロダクトごとに完全な互換性があるわけではないですが、SQLを学んでおけば多くのデータベースプロダクトを同様の命令で操作することができます。
本講座ではこれからリレーショナル・データベースの1つであるMySQLをセットアップした後、実際にSQLを入力してデータを操作する方法を学習します。
まとめ
- データベースにもさまざまな種類がある
- 一般的なWebアプリケーション開発ではリレーショナルデータベースを用いることが多い
- リレーショナルデータベースにもさまざまなプロダクトが存在する