カメラを買いました!
先日,OLINPUS PENというカメラを購入しました。
マイクロ一眼と呼ばれるもので,一眼レフカメラよりもコンパクト,でも普通のコンパクトデジカメよりもいろんな表現ができます。見た目もとてもレトロですごくかわいい。
“欲しいのは一眼レフカメラではなく,一眼レフカメラしか撮れない写真”
このキャッチコピーにやられてしまい,ついつい購入してしまいまいた。
とはいえ,カメラに関してはかなりの初心者。どのボタンが何なのか,まだ使いこなせていません。撮影モードのMとか,Pとか,Aとか…それすらイマイチ使いこなせていないのですが,とりあえず,カメラをもっていざお出かけ!
シャッターを切ったときの“カシャ”という音がたまりません。小さくてもちゃんと一眼レフ!存在感があります。腕は今ひとつですが,がんばってマニュアル撮影で上手に撮れるようにがんばります。
あらゆるものにデータベースは存在する!
さて,今日は「平成21年度【春期】【秋期】ITパスポート試験合格教本」の第五章の続き,データベースについて勉強しました。
データベースと聞くと,なんだか私にはちょっと取っつきにくい難しいモノのようなイメージが強く,かなり敬遠していたのですが,この書籍ではそんなデータベースの基本を優しく解説されています。
データベースと一口にいっても様々な種類があるようです。その中で,一番普及しているのがリレーショナルデータベースとよばれるもの。
たとえば,投稿されたブログの記事の情報,はたまた携帯電話に登録されている電話帳の情報などなど,幅広くデータベースは活用されています。
サーバサイドで使われるデータベース管理システム
サーバサイドのデータベースについて触れたときによく耳にするSQLは,データベース管理システム(DBMS)の中のデータモデル,関係データベース管理システム(RDBMS)において, データの操作や定義などを行うためのデータベース言語なのだそう。そして,RDBMSで作成されたデータベースをリレーショナルデータベースというそうです。
データベース管理システムを使うことで,必要なデータを選択したり,結合させたり,目的に応じたデータベースの操作を行うことで,うまく活用することが出来るのですね。また,データベース管理システムを実装するソフトとして有名なのがMySQL,Oracle Databaseなど。
Web制作の現場でよく使われるのがオープンソースのMySQL。Apache,PHPとの親和性が高いのでこの組み合わせはとてもポピュラーです。
たとえば,Webサイト上の検索窓から,欲しい情報を検索した場合,PHPを使ってMySQLに情報を問い合わせ,返ってきたデータをPHPが受け取り,ブラウザ側に返します。
普段,ブラウザで表示された情報を何気なく閲覧していますが,その裏側,サーバーサイドでは常にデータベースとのやりとりを重ねているわけです。データベースの扱いについて,普段はサーバサイドエンジニアに任せっきりで,私の中でブラックボックスと化していた部分だったのですが,その入り口が少し見えてきました。
データベースは活用して初めて意義がある!
またリレーショナルデータベースには,他のデータと重複しないように固有のIDが振られています。これをITパスポート試験の書籍では主キー(primary key)と呼ぶことが解説されています。
そして,データベースはその用途に応じて,複数用意し,データの重複による更新漏れなどを防ぐことも可能です。
たとえば,図のように商品を販売する場合,複数ある商品を管理するためのデータベースと,実際に商品を販売した場合の受注を管理するデータベースを用意しておきます。
この場合,それぞれのデータベースの主キーは,商品管理のデータベースが商品番号,受注管理のデータベースが受注番号ということになります。受注を管理するデータベースでは商品名を主キーで管理しています。
ここで例えば,S1の”うさもTシャツ”を“うさもスペシャルTシャツ”という商品名に変更したいとします。この場合,データの変更箇所は,商品管理のデータベースを変更すると,受注のデータベースに当てはめられている,商品の主キー,S1の値もすべて変更されたことになります。
これがもし,受注を管理するデータベースに対して,商品名を記載していたとすると,重複する商品名すべてを書き換えなくてはいけない,という手間が発生,また更新のミスを引き起こす可能性を増やしてしまいます。
このようにデータベースは目的に合わせて活用しやすいように,体系化させることがキーポイントのようです。後々の仕事の効率もぐんと変わりそうですね。
これを機に,データベースについてもう少し理解を深め,実務にも生かせるようになれればよいな,と感じた今日この頃です。
イラスト:Sayuri Wakamatsu (rokunana)