Linux豆知識 056
SQLとデータベース設計
公開日:2010年04月30日
今回は、「SQLとデータベース設計」について。
SQLとは、前回紹介した「リレーショナルデータベース」を制御するための言語です。リレーショナル型のデータベースからデータを検索したり、テーブル(表)を作ったり、データを入力・変更・削除するなどの作業を行うことができます。現在ではSQLは「事実上のリレーショナルデータベース制御の標準言語」となっており、SQLはリレーショナルデータベースの制御には絶対に欠かせないものになっています。
ちなみに、MySQL、PostgreSQLなどといったソフトウェアに「SQL」の文字が入っているため、「SQL」という用語は「リレーショナルデータベースのマネージメントシステムを指す用語」だと誤解されがちですが、実際にSQLが指しているのは「言語」です。
さて、このSQLという言語には少々厄介な面が存在します。それは、ソフトウェアによって若干の差異が存在するということです。「方言」と言えばわかりやすいでしょうか。たとえばMySQLとostgreSQLでは通じるSQLに違いがあるのです。そのため、SQLを習得するときに「これはどのマネージメント
システムでも通じる!」と思ってしまうと少し苦労するかもしれません。
とはいえ、大きな差異はないので、学ぶときに意識さえすれば問題ないでしょう。また、SQLはANSI(American National Standards Institute)で標準化が行われています。ANSIで標準化されているものとしてはC言語などがあります。興味があればANSI標準のSQLについても調べてみるといいでしょう。
データベースを学ぶ上で欠かせないのは「SQL」だけではありません。「データベース設計」についても学ぶ必要があります。設計せずに書かれたデータベースはたいてい「効率が非常に悪く」なります。SQLも同じで、効率の良い検索ができるようになるには、上手にデータベースを設計し、上手なSQL文が書けるようになるというスキルが必要になります。本当に小さなシステムを動かすだけならば問題になりませんが、少し込み入ったシステムとになると、「上手な設計、上手なSQL」が必須になります。学ぶときには「上手な設計と上手なSQL」を習得するように心がけてみて下さい。