データを蓄積し再利用できる
データベースとは、データの基礎・土台、データの基地という意味です。
IT用語でデータベースというときは、追加したり編集したりすることができるという点で、デジタルデータであるといえます。
- データが蓄積され、再利用できるようになっている
このページでは、データベースの例、データベースに関連する用語などについて解説しています。
電話帳
身近な例では、携帯電話やスマートフォンに入っている電話帳・アドレス帳があげられます。
名前や電話番号、メールアドレスなどが登録されています。新規で名前や電話番号を登録したり、必要であれば 登録している内容を編集・削除するということもあります。データが蓄積されており、再利用できます。
一般的な紙・冊子の電話帳がデータベースであるか?というと、データが蓄積しているもの編集や削除はできないため、IT用語でいうデータベースとはやや異なるといえます。
Excel
MicrosoftのExcelで作成した名簿やリストもデータベースです。
データを登録・編集したり、条件を付けて 特定のデータだけを表示させることができます。Excelの表は テーブルともいいます。縦の項目 行、横の項目 列からなり、行と列 それぞれ追加したり削除したりすることができます。
前述した携帯電話やスマートフォンというのは、名前や電話番号などを登録することができますが、入力できる項目というのはある程度 制限があります。Excelは、行だけではなく列もユーザーによって増やしたり設定できるということになります。
データベースの例
IT用語でデータベースというときは、商用的に使われているもの・規模の大きなものを指すことが一般的です。
また慣習的に、このような円柱の図で表わされます。略して DBともいいます。
例えば、あるサービスを利用している会社に電話して、カスタマーセンターの方から会員番号を聞かれたとします。そして確認のため、氏名と生年月日を教えてくださいと言われることがあります。
これはその会社のカスタマーセンターで、端末から社内のデータベースにアクセスして 情報を確認しているということになります。
会員番号に紐付いたその他の情報が表示されており、確認を行っているということです。
また図書館に行ったとします。
本を検索することができるコンピュータがあります。本の名前や著者名を入力すると、該当する本の情報が表示され、出版社名、図書館での陳列場所などを調べることができます。
他に、インターネットでのログイン時やネットショッピングなどでも、データベースは使われています。
例えばネットショップにログインするとします。ログイン時にIDとパスワードを入力し、データベースの情報と合致したらログインすることができます。
データベースから自分用のページが表示されたり、データベースの商品リストにある在庫数などがページに表示されたりします。データベースと連動しているということです。
買い物かごに入れて決済すれば、データベースが更新され在庫数は減ります。
このようにインターネット上でのログイン時、ネットショップ、列車や飛行機の予約、検索エンジンなど 様々なところにデータベースは活用されています。
フィールドとレコード
データベースそのものは、テーブルというもので構成されています。Excelの表と考え方は同じです。
列をフィールド、カラム、行をレコードといいます。
先程のカスタマーセンターの例では、会員番号、名前、住所、電話番号、生年月日、性別、入会日などがフィールドで入力されているテーブルがあります。
会員番号や名前を伝えると、テーブルからレコードが抽出されて表示されています。
主キーと外部キー
テーブルでは、行が重複しないように 一意の数字が割り当てられています。
これを 主キー プライマリキーといいます。例えば、会員番号などは重複しないので主キーになることが多いといえます。主キーは空の値、NULL ヌル(あるいはナル)になることはありません。
またテーブルが複数あるときは、外部キーで他のテーブルと結びつけていることもあります。外部キーで他のテーブルを参照することができます。
データベースは、複数のテーブルを関連付けて使用するのが一般的であり、これを関係データベース、リレーショナルデータベースといいます。
(リレーショナルデータベース:英国 計算機科学者 エドガー・F・コッドの考案)
入力規則・制約
データを一元的に管理することがきるのが データベースです。
そのため、入力の誤りがないようにするというのが データベースの入力時の約束事のようになっています。
例えば 半角と全角を統一するなどです。先程の会員番号の数字を半角のところを全角で入力したり、空白であったりすると 検索・抽出時に出てこないということもあるからです。
こういうことを避けるために データベースでは値を入力するときに、半角や数値でしか入力できないなど設定することができます。これを入力規則や制約といいます。
並べ替え・ソート
データベースの特徴的な機能が、並べ替えです。
値の大小関係をみて、即時に並べ替えが行われます。昇順・降順がよく使われます。
Excelでは並べ替えの機能になります。また通販サイトなどで、評価の高い順・低い順、価格の高い順・低い順、レビューの新しい順・古い順など行うこともあります。このようなWebサイトもデータベースが使われており、並び替えが行われ画面に表示されています。並べ替えは、整列やソートともいいます。
排他制御
一般的にデータベースはデータを閲覧して使用するということが多いのですが、データベースによっては、データの書き換え・編集が必要となることがあります。
例えば複数の端末からアクセスがあり、編集しようとするとデータに不整合が生じることがあります。これを防ぐのが排他制御といわれるものです。
処理中や編集中のデータがあれば、他からのアクセスを制限します。これをロックといいます。ロックには、共有ロックと占有ロックがあります。
共有ロック
データの参照・読み取りができます。書き込みや編集はできません。
共有されているデータに、すでに端末がアクセスしている場合、他の端末がアクセスすると読み取り専用になります。
占有ロック
すでに端末がアクセスしている場合、他の端末は読み取りも書き込みもできません。ロックが解除されたら アクセスすることができます。
また設計の欠陥などで、デッドロックが起きることがあります。デッドロックとは、複数のデータにそれぞれロックがかかり、アクセスしているユーザーが他のデータのロック解除待ちになっている状態です。
システムが作られる際は、デッドロックを防ぐ設計や処理が必要になります。
トランザクション
一連の処理をまとめて、ひとつの処理とすることをトランザクションといいます。
例えば、銀行の振込処理です。
ある口座からある口座へ振込をする場合、振込元の口座からまず残高を減らし、振込先の口座の残高を増やすという2つの処理が行われます。どちらか一方だけということはありません。
最後の処理が行われたときに 一連の処理が確定されます。これを コミットといいます。
また途中 何らかのトラブルで処理が中断したりエラーになったときは、すべての処理を取り消して元に戻る ロールバックが行われます。
トランザクションは、原子性、一貫性、隔離性、持続性を満たす必要があり、この4つの特性を ACID特性といいます。トランザクションはACID特性を備える必要があります。
データベース管理システム
データベースは、レコードとフィールドからなるテーブルがあります。実体としては見えませんがファイルです。
データベースは規模が大きくなると、複数の端末・ソフトウェアからアクセスすることになり、トラブルが起きないようにしなければなりません。読み書き速度が速く、排他制御やトランザクション管理ができるソフトウェアを使う必要があります。
そこで用いられるのが、データベースを管理するソフトウェアです。データベース管理システム、DBMSといいます。
社内のデータベース、Webのデータベースなど 端末上でデータベースへ直接アクセスしているように感じるのですが、実際はデータベース管理システムが間に入って、データベースの読み書きを行っています。
データベースを操作・管理するソフトウェアには MySQL、Oracle Database、Microsoft SQL Server、PostgreSQLなどがあります。つまり SQLと名のつくものは、データベースを管理するものであるということです。
DBMSはデータベースの制御・管理を担当するソフトウェアで、ミドルウェアともいいます。
データベース、あるいはデータベースサーバーという時は、データベースとDBMSを両方含んだものをいいます。
SQL言語
データベースは、データを蓄積し再利用するものです。
そのため、データを追加したり更新できることが必要になります。このデータベースに備わっている最も基本的な機能を、頭文字を取り CRUD クラッドといいます。
- Create・・生成
- Read・・読み取り
- Update・・更新
- Delete・・削除
そして、これらの機能を実現するためにSQL言語が用いられます。
- INSERT・・挿入
- SELECT・・抽出、選択
- UPDATE・・更新
- DELETE・・削除
データベース管理システムでは、SQL言語で レコードを追加したり、値を入力したりなど読み書きを行います。データベースを扱う上での共通の言語となっています。
データベースに問い合わせすることを、命令 クエリの実行、何らかの操作をするときには、SQL文の発行といったりします。
また以下のような言葉も使われます。関係演算といいます。
- 選択・・・1つのテーブルから必要な行を抽出
- 射影・・・1つのテーブルから必要な列を抽出
- 結合・・・テーブルとテーブルをつなげる
2つのテーブルを使い操作します。集合演算といいます。
- 和・・・2つのテーブルの行を合わせ、同じ行は1つにする
- 積・・・2つのテーブルの同じ行を取り出す
- 差・・・1つのテーブルから もう一方のテーブルの同じ行を除く
Access
MicrosoftのAccessは、リレーショナルデータベースソフトです。
このソフトは、上記のアプリケーション、DBMS、データベースをまとめて 比較的簡単に使えるようになっているため、あまり難しいことを考えなくても データベースを構築・使用することができます。主に 中小企業、小規模事業者、SOHOなどで顧客名簿、商品リスト、請求書・納品書の作成などで使われています。
表向きは全く気付かないのですが、内部的には何か操作するたびに SQL文が発行されて動作しています。
MySQL
レンタルサーバーでは、MySQLを使用できることが多くなっています。
管理画面でデータベースを作成し、ホームページをデータベースと結びつけて活用できます。使い方次第でデータベースを活用したWebシステムを構築できるということになります。
phpMyAdminというアプリケーションが使われることがあります。ブラウザ上でデータベースを扱うことができます。
ホームページやブログを作成するソフトウェアとして知られているWordpressもデータベースによるものです。また大学などで運用されている 学習管理システム LMSのひとつ Moodleもデータベースが使われています。
WordPressであれば記事、Moodleであれば問題などのひとつひとつがデータベースとしてサーバーに蓄積されており、ユーザーからページにアクセスがあれば、データベースにある内容をページ上に表示しています。
phpMyAdmin、Wordpress、Moodleなどは、すべてプログラミング言語であるPHPによって開発されていますが、PHPはデータベースと親和性が高いといわれています。
このようにデータベースというのは、データを集約・整理するために主にテーブルが使われており、DBMSやSQL言語などで管理され使われています。