序章 データベースとは
1. データベース管理システムが必要な理由
それでは今回の章ではまずはじめにデータベースの基礎について書いていきたいと思います。
データベースってどのような時に使うの?
データベースは目に見えるものではないので初めて扱う人にはイメージしづらいものです。
ではデータベースとは何者なのでしょうか。
簡単に言えば、データベースとはデータ(情報)を格納するものです。
データを格納するものを考えてみると、以下のようなものがあります。
・紙媒体
・表計算シート
・データベース管理システム
データベースの種類も色々あります。どのようなものか1つずつ確認していきましょう。
紙媒体
最近では手紙も書くことが少なくなってきましたね。
だんだんと紙を使用する頻度は年々と減ってきています。
しかし、コンピュータが存在していなかったとき、情報を管理していたのは紙でした。
さすがに銀行の口座情報を紙で管理していた時代には生まれていませんでしたが、
映画で銀行窓口でお金をおろす為、通帳のような紙に従業員が引き出し記録を
書いているのを見たことがあります。
この紙媒体での管理は想像できるように管理が大変です。
情報量が100万、1000万件となってきた場合、、
こんな仕事誰もやりたくありませんね。。
また計算ミスなどもありえるので、使用する人からするとあまり紙での管理は
良いものではありませんでした。
でも前の時代はこのように管理していたことを考えると、すごいですよね。。
表計算シート
時代は進み、表計算シート(Excel等)などが出てきました。
表計算シートであれば、住所録などの情報を何万件も管理することができます。
そして何より計算ミスもなくなります。
ただ表計算シートでは1日に何億件の更新が行われるようなシステムでは管理が難しいのです。
たとえば、ツイッターでは1日あたり2億5000万のつぶやきが発生しているとのことです。
これは2011年10月時点の発表なので、現在では数倍となっているのではないでしょうか。
使用するユーザが小規模であれば、問題ないですが、この処理量を計算シートで管理するのは
ほぼ不可能です。
データベース管理システム(DBMS)
データベース管理システム(DBMS)とは、前述のような大量の処理をこなすことができます。
現在はOracle社やマイクロソフト社、IBM社などがDBMS製品を販売しています。
Oracle社はOracle DatabaseやMySQL,マイクロソフト社はSQL SERVER,
IBM社はDB2というDBMS製品を扱っています。これらはすべて有償製品となりますが、
無償のRDBMS製品としてはPostgreSQLやsqliteなどがあります。
これらのデータベース管理システムは、リレーショナルデータベースという種類の
データベースを採用しています。
2. SQL言語(Structure Query Language)
リレーショナルデータベース(RDB)は1960年代にコッド博士がRDBを発表しました。
RDBは次の要素から構成されています。
・データを格納するリレーションの集合体
・データを参照・更新する手段として演算子を使用する
・データの正確性および一貫性のためのデータ整合性
定義とか要素という言葉はイメージができなくて難しくなりがちです。
簡単に言ってしまうと、データは列と行で構成される表に格納されていて、
格納されているデータを取得したり、更新するときにはSQL文を使ってね。
ということです。
SQL文とはStructure Query Languageの略でデータを操作するときに使用します。
SQL文は大きく以下の項目に分けることができます。
データ操作言語 (DML文) |
SELECT INSERT UPDATE DELETE MERGE |
データ定義言語 (DDL文) |
CREATE DROP TRUNCATE ALTER
|
トランザクション 制御文 |
COMMIT ROLLBACK SAVEPOINT |
※DML,DDL,トランザクション制御文で紹介しているコマンドは一部だけとなります。
試験を受ける人はこの選択問題はよく出てくるので、DML,DDLの種類覚えておきましょう。
英単語で大体どのような処理を行うSQL文なのかはイメージがつくと思いますが以下の通りです。
SELECT:データの取得
INSERT:データの挿入
UPDATE:データの更新
DELETE:データの削除
3. 表
リレーショナルデータベースはデータを表に格納し、SQLを使用して表に格納されている
データを操作します。
では表を見てみましょう
表は縦と列の構成となっており、@は
列と呼びます。
列は名前が定義されていて、この例ではFIRST_NAMEという列名です。
こちらの列には名前が格納されています。
Aは
行と呼びます。行は特定の人の情報が格納されています。
この例では、EMP_ID列の値が3で、FIRST_NAMEがkeikoでというように、
あるユーザの情報を確認することができます。
Bは
フィールドと呼びます。フィールドには1つの値を格納することができます。
格納できる値は文字や数値、日付などがあります。
今回は5500000という数値が格納されています。
Cはフィールドですが、値が入っていません。
このように値がない状態のことを
NULLと呼びます。
NULLというのは値が入っていない状態のことなので、
数値の0(ゼロ)や文字の空白(スペース)とは異なりますのでご注意ください。
いかがでしたでしょうか。本章ではデータベースとはについて書いていきました。
まだまだもやもやすることも多々あると思いますが、
たくさんのSQL文がありますがこれからこの構文を理解していき、
RDBMSから自由にデータを取得したり、更新、削除したり出来るよう
しっかり学んでいきましょう。
また今回学んでいくSQL文はOracle Databaseを使用するSQL文を学んでいきますが、
SQLはANSIの規格のため、Oracleだけでなく別のRDBMSでも使用可能です。