WEBシステムの開発にはデータを保存するデータベースというものを用います。
略してDBと言い、”デービー”と読むのが一般的で僕もそれに馴染んでましたが、ただの年配の人の発音ですね。
WorfPressでWEBサイトを作るときにもDBを使います。
DBはWEB開発を行う上で、PHPなどサーバーサイドのプログラミング言語とセットと言っても過言じゃないです。
DBの種類
一般的にはDBと呼びますが、正確にはDBMSです。
DBMSはデータベースマネジメントシステムの略です。
DBMSにはデータを保存する構造でいくつかの種類に分かれます。
リレーショナルデータベース(RDB)
一般的にDBと言ったらこのリレーショナルデータベース(以下RDB)を指します。
稀に別のものを使う場合もあるのかもしれませんが、僕はRDBしか使ったことがないです。
RDBとはデータを複数の表(テーブル)で管理し、その表と表を関連させるモデルからリレーショナル(関連する)データベースと言われています。
例えば、ユーザーテーブルと商品テーブル、購入履歴テーブルなどがあったとします。
ユーザーテーブル
ID | ユーザー名前 |
---|---|
1 | 田中 |
2 | 鈴木 |
3 | 山田 |
商品テーブル
ID | 商品名 |
---|---|
1 | りんご |
2 | みかん |
3 | マンゴー |
購入履歴テーブル
ID | ユーザーID | 商品ID |
---|---|---|
1 | 3 | 1 |
2 | 3 | 3 |
3 | 1 | 2 |
ユーザーテーブル は、ユーザー情報を管理するだけのテーブルです。
商品テーブル は、商品情報を管理するだけのテーブルです。
ここまでは何も関連はありません。
ここで 購入履歴テーブル を用意すると3つのテーブルが関連してくるのが分かります。
購入履歴テーブルのIDが1の行(データ)を見ると、ユーザーIDが3なので山田さんで、商品IDが1なのでりんごになります。
つまり山田さんがりんごを購入したことが分かります。
このように各データを表で管理し、それぞれを関連させてデータを管理するモデルをRDBモデルと言います。
他のDBMS
RDB以外にも、ネットワーク型データモデルや階層型データモデルなどがあります。
僕は一度も使ったことが無いので詳しいことは分かりませんが、階層型データモデルだと例えば会社の役職を管理する構造に似ています。
階層型データモデルのイメージです。
詳細は詳しく説明されているサイトがたくさんありますのでそちらをどうぞ。
ここでは実際に使われるRDBについて解説します。
リレーショナルデータベース(RDB)の種類
RDBにも種類があります。
種類というか製品です。
MySQL
WEBサイトを構築する環境としてLAMPというものがあります。
LはLinuxというOS。AはApacheでWEBサーバー(HTTPサーバー)。MはMySQLというDB。PはPHPのことです。
LAMPではDBにMySQLが指定されています。
MySQLは無料で使え、レンタルサーバーにも搭載されていることが多いです。
もともと、スウェーデンの単一の営利企業である「MySQL AB」によって維持されていた。2008年2月26日に MySQL AB がサン・マイクロシステムズに買収されたことをもって、サン・マイクロシステムズの所有となった。その後、2010年1月27日、サン・マイクロシステムズがオラクルに買収されたことにより、商標権ならびに著作権もオラクルに移管された。
引用:wiki
現在ではオラクルの管理下にあるんですね。
このブログでSQLについて記事を書くときはMySQLをベースに書きます。
Oracle(オラクル)
オラクルもRDBの一つで、オラクル社が開発しています。オラクルはDBMSの最大手でしょう。
オラクルの社長のラリー・エリソンは世界の長者番付にも出てくる超大金持ちです。
Javaの案件に携わっていたときはオラクルのDBを使うことが多かったように思います。
今ではJava言語もオラクルのものですし相性の問題ですかね。
人気が高いのは高機能でパフォーマンスが良いところだと思います。
でも値段もめっちゃ高いので個人で開発するときには使いません。
大規模案件に携わったらお目にかかる可能性は高いです。
DB2
DB2はIBM社が開発したDBです。
こちらもオラクル並に人気の高いDBMSです。
僕が新人の頃にいたプロジェクトはこのDBでした。
PostgreSQL
たしかこれも無料だったと思います。
僕は使ったことは無いですが、プログラマー仲間は結構経験があるようなので人気のDBではあると思います。
Microsoft SQL Server
こちらはMicrosoftが開発したDBMSです。
C#などの開発時にWindows Serverと一緒に見かけます。
RDBのデータを操作するSQL
SQLはRDBのテーブルを作成したり、そのテーブルのデータを操作するときに使うプログラミング言語です。
上で紹介したRDBはこのSQLを使ってデータを操作します。
メーカーの違いは多少ありますが、基本的な構文は同じです。
WEB開発時にはPHPやJavaなどサーバーサイドのプログラミング言語内でSQLを構築し、DBに投げて実行します。
複雑で大規模なシステムになってくるとデータ量も膨大になり、テーブルの設計やSQLの作り方でパフォーマンスに大きく影響してきます。
SQLの基礎についても今後このブログで説明していきます。
まとめ
WEB上で作成されたデータを保存するシステムをDBMSという。
一般的にはDBMSの中でもRDBというテーブルの関連を用いたものを使うことが多い。
RDBはSQLというプログラミング言語で操作する。
コメントを残す