そもそも、リレーショナルデータベースとは何か?:ゼロからのリレーショナルデータベース入門(1)(1/4 ページ)
データベースを基礎から勉強し理解を深めていくことは簡単なことではありません。本連載では、データベースに対するハードルを少しでも低くするために、初心者の方に必要なデータベースの基本から、障害対策やチューニングといった実践に即した内容までを幅広く解説していきます。今回は、データベースの役割と、それを管理するソフトウェアであるDBMSの基本機能について解説します。【更新】
目次
- 「データベース」とは何か?
- 「DBMS」とは何か
- 「リレーショナルデータベース(RDB)」とは何か
- 「SQL」を使ってデータを処理するとはどういうことか
- 「トランザクション」とは何か
- 「同時実行制御/ロック」とは何か
「データベース」とは何か?
企業には、顧客に関するデータや商品の在庫数など、企業活動で生じた「さまざまなデータ」が存在します。このようなデータを共有利用するために1つにまとめたデータの集合体が「データベース」です。
どこの会社でも行っている「売上管理」でデータベースを考えてみましょう。会社の規模が小さいうちは、「表計算ソフトウェアで、簡単に管理できる」と思うかもしれません。しかし、売り上げが伸び、取引先が増え、従業員数も増えていくに従って、これだけでは問題が発生するようになります。例えば、複数の従業員が同じようなデータを、それぞれ独自のやり方で作成/保持していると、「どれが最新のデータか分からない」「どれが正しいデータなのか分からない」「ある月の特定の日の売り上げデータだけが知りたかったのに、探すのに時間がかかる」、といったように、データ管理が徐々に難しくなり、必要かつ正確なデータをすぐに取り出せなくなる状況に陥ります。
そうならないように活用するのがデータベースです。データベースは大量のデータでも安全かつ効率的に管理できる仕組みが整えられたシステムです。そのため、複数の人が大量のデータを扱う際にとても有効なツールです。もう少し具体的な例で、データベースの必要性を解説していきましょう。
ある企業では、「社員データ」「顧客データ」など、業務上必要なさまざまなデータを支店ごとに個別に管理しています(図1)。
社員データは全国どの支店でも必要ですが、それを各支店で個別に管理するとなると、いくつかの問題が生じます。
例えば新入社員が入社し、社員データベースとしてその情報を反映するとします。そのとき、各支店単位でデータを登録し、管理する方法では、ある支店だけ登録し忘れたた、変更が必要だったのにされていなかった、といったトラブルが起こり得ます。また、支店がそれぞれデータを保持するということは、データ保持のための仕組みやディスク領域がそれぞれ必要になります。全社的に考えると無駄が多く、管理もとても煩雑になってしまいます(図2)。
このような状況は、全社で共有するデータを1つの「集合体」にすると解決できます。そうすれば、データの登録漏れや変更漏れが発生する心配がなくなります。無駄にディスク領域を使わなくても済むようになります。このデータの集合体が、データベースというわけです(図3)。
「DBMS」とは何か
前述したように、データベースは「共有利用」を前提として複数のデータを1つにまとめたデータの集合体です。しかし、1つのデータベースを複数の利用者(以下、ユーザーとします)で使う場合には、また別の問題が発生します。
その1つが、「複数のユーザーが、ほぼ同時に同じデータを変更してしまった場合」の対処です。例えば、Aさんが変更作業している途中に、Bさんが“別の内容に置き換えてしまう”と、「データの矛盾」が発生してしまいます。このデータの矛盾を防ぐためには、ユーザーが順番にデータにアクセスできるように、つまり、誰かの作業中にはファイルを更新できないように制御する必要があります。
また、全てのユーザーがあらゆるデータにアクセスできてしまうのも大きな問題です。セキュリティやコンプライアンスを考える上で、「誰がどのデータにアクセスできるのか」を制御する「アクセス制御」も必要になります。
これを全て人力で管理するのはとても大変です。しかし、データベースを複数人で利用しても適切に管理してくれるソフトウェアがあります。このソフトウェアが、データベース管理システムです。「DBMS(Database Management System)」とも呼ばれます(図4)。
ユーザーからのデータベースに対する要求は、必ずDBMSを介して行われます。DBMSは、データを処理する前に「順序制御」や「権限確認」などを行ってくれます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQLの基礎 「SELECT」文を覚えよう
- SQLとはどういう言語か
「SQLは何となく苦手」という人は意外と多いものです。すでに何らかのプログラミング言語を習得している人を見ても、SQLを苦手としている人は少なくありません。そこで、実際にSQLを入力して結果を見ながら学習する連載を始めます。用意するのはインターネットにつながったWebブラウザだけ。気軽に始めてみてください。(編集部) - RDBMS製品のビッグ3、それぞれの“癖”をつかもう
本連載はOracleを使ったデータベースシステムの開発・運用管理にある程度の知識を持つ読者を対象に、Oracle以外の商用RDBMSであるMicrosoft SQL ServerとIBM DB2とのアーキテクチャの違いを明らかにし、マルチベンダに対応できるデータベースシステムの設計・開発・運用ノウハウを紹介していく。(編集局) - NoSQLはRDBMSに取って代わるものなのか?
「memcached」や「Apache Cassandra」、「Apache CouchDB」など、RDBMSとは異なる考えで設計してあるデータベース管理システムが普及しつつあります。この連載では、これら新しいデータベース管理システムの特徴と、RDBMSとの使い分け方について解説します。(編集部)