
データベースって、いろんな情報(データ)を保存しておくためのものだよね?

そうっすよ。

普通のファイル保存でもよくない?なんでわざわざデータベースなんか使うの?

データベースはただデータを蓄積するだけじゃなく、それを効率的に活用することまでを目的としてるんすよ。
目標 | ・データベース及びデータベース管理システム(DBMS:Database Management System)の意義,目的,考え方を理解する。 |
説明 | ・体系的に構成された数値,文字列などのデータの集合物であるデータベースと,データを構造的に蓄積し,それらの一貫性を保ち,効率的に取り出すための機能を備えたものであるデータベース管理システムについて,その意義,目的,考え方を理解する。 |
目次 非表示
データベースの目的
データベース(Database)とは、大量の情報(データ)を整理して、効率的に保存・検索・更新・管理するための仕組みやシステムのことです。ただデータを蓄積するだけではなく、データベース管理システムや他のソフトウェアを利用して、蓄積されたデータの有効活用を目的とします。
データベースの目的
- データの効率的な管理
大量のデータを整然と管理し、無駄なく利用できるようにする。 - データの検索・更新の迅速化
必要なデータをすばやく検索・変更・削除できる。 - データの共有と同時利用
複数の人やアプリが、同時にデータを使っても矛盾が起きないようにする。 - データの整合性と信頼性の確保
間違ったデータが登録されたり、破損したりしないように守る。 - データの安全性の確保
アクセス制御やバックアップによって、不正アクセスや障害から守る。
データベースモデル
データベースモデルとは、データの構造・関係・ルールを定義する枠組みのことで、データベースがどのように情報を整理・保存・関連付けるかを決める重要な設計要素です。
リレーショナル型データベース(関係データベース・関係データモデル)
リレーショナル型データベースは、現在最も広く使われているデータベースモデルの一つで、次のような特徴をもちます。
データを行(レコード)と列(フィールド・カラム)で構成されたテーブル(表)で管理

各テーブルは主キーで識別され、外部キーで他のテーブルと関連付けられる
主キーとは、データベースにおいてテーブル内の各行(レコード)を一意に識別するための列(または列の組み合わせ)のことで、外部キーとは、別のテーブルの主キーを参照する列(フィールド)のことです。
以下の顧客表では、顧客IDが分かれば顧客の名前と電話番号が特定できます。また、メニュー表ではメニューIDが分かれば商品名と価格が特定できるため、これらがそれぞれのテーブルの主キーとなります。
さらに注文表では顧客IDとメニューIDによって、顧客表とメニュー表を参照することができるため、これらが外部キーとなります。

なお、主キーには重複しない & NULL(データが空)でない必要があります。以下の顧客表の例では、「名前」の列はデータの重複がある(同姓同名がいる)ため主キーになれません。また、「電話番号」の列にはNULL(電話を持っていない等)があるためこの列も主キーにはなれません。

データの操作は主にSQLを使って行う
SQL(Structured Query Language)とは、リレーショナル型データベースを操作・管理するための標準的な言語です。
例えば、顧客表から名前の列を取得したい場合は、
SELECT 名前 FROM 顧客表;
のように書きますが、ITパスポート試験でSQL文の書き方までは問われません。
NoSQL
NoSQL(Not Only SQL)は、従来のリレーショナル型データベースとは異なるアプローチでデータを管理する非リレーショナル型データベースの総称です。特に、大規模なデータ処理や柔軟なデータ構造を必要とするアプリケーションに向いています。
階層型データベース
親子関係を持つ木構造(ツリー構造)でデータを管理するデータベースモデルです。古くからあるデータベースモデルで、特に1960〜70年代に企業の業務システムで広く使われました。
ツリー構造のため、1つの親に対して複数の子を持てますが、子は1つの親だけを持つのが原則です。

ネットワーク型データベース
階層型データベースの制約を克服するために開発された柔軟な構造を持つデータベースモデルで、1960年代後半に登場しました。
データ同士の関係を網の目のようにつながった状態で表現します。

JSONやBSONなどの形式でドキュメント単位でデータを格納。
ノード(実態)とエッジ(関連)で構成されたグラフ構造で、複雑な関係性を扱う。
単純なキーと値のペアでデータを保存。なお、保存したいデータ(value:値)に対し、対応する識別子(key:キー)を組み合わせて格納するデータストア(データの保管場所)のことをキーバリューストア(KVS)と呼びます。
データベース管理システム
データベース管理システム(DBMS:Database Management System)とは、データベースを効率的・安全に扱うためのソフトウェアのことです。なお、リレーショナル型データベースのDBMSはRDBMS(Relational DataBase Management System)と表現されることもあります。

データベースが情報そのもの(データの集合)であるのに対して、DBMSはデータの操作・管理機能を提供するソフトウェア(システム)をいいます。
DBMSは次のような機能を備えています。
- データ定義機能
テーブルの作成、主キーや外部キーの設定など、データベースの構造(スキーマ)を定義します。 - データ操作機能
データの追加、更新、削除、検索を行います。 - データ検索機能
ユーザーからの問い合わせ(クエリ)を効率的に処理します。 - トランザクション管理機能
複数の操作をまとめて1つの単位(トランザクション)として処理します。 - 同時実行制御
複数ユーザーが同時にアクセスしても、データの整合性を保ちます。 - 障害回復機能
システム障害発生時にデータを復旧します。 - データ保護
アクセス制御により、ユーザーごとの権限設定や不正アクセスの防止を行います。 - データの整合性維持
データの正確さや一貫性を保証します。 - バックアップとリストア
データの定期的なバックアップと、必要に応じて復元できる機能です。 - データベースカタログ管理
データベースに関するメタデータ(データのデータ)を管理します。
確認○×問題
データベースの論理的構造を規定した論理データモデルのうち、関係データモデルとは、データ同士の関係を木構造で表現したモデルである。
(出典:平成26年度秋期分 問74一部改変)
答え:×
設問の文章は階層型データベースの説明です。なお、関係データモデル(関係データベース)とは、データの集まりを表形式で表現するモデルです。
関係データベースにおいて、レコード(行)を一意に識別するための情報を主キーと言い、表と表を特定のフィールドで関連付けることもできる。
(出典:平成23年度特別 問72一部改変)
答え:〇
正しい記述です。主キーとは、データベースにおいてテーブル内の各行(レコード)を一意に識別するための列(または列の組み合わせ)のことです。
関係データベースの主キーの設定に関する次の記述中、適切なものは2つある。
- 値が他のレコードと重複するものは主キーとして使用できない。
- 主キーの値は数値でなければならない。
- 主キーは複数フィールドを組み合わせて設定することができる。
- 主キーに設定したフィールドの値に1行だけならNULLを設定することができる。
- 主キーに設定したフィールドの値を更新することはできない。
- 主キーに設定したフィールドは他の表の外部キーとして参照することができない。
(出典:令和5年度春期分 問78一部改変)
答え:〇
- 適切です。主キーは一意性を有する(他のレコードと重複しない)ことが必要です。
- 不適切です。主キーは数値である必要はありません。文字や複数の列を組み合わせた複合キーも主キーとして設定できます。ただし、高速に検索できる、コンパクトでシンプル、変更が起きにくいなどの理由から、特別な理由がない限り、数字(数値ID)を主キーにするのが推奨されます。
- 適切です。関係データベースでは、複数の列(フィールド)を組み合わせて1つの主キーとして設定することができます。これを複合主キーと呼びます。
- 不適切です。主キーにはNULL値を一切設定できません。
- 不適切です。主キーの値は技術的には更新可能です。ただし、主キーは一意な識別子なので、原則として「変更されない値」であるべきです。また、主キーが他のテーブルの外部キーとして参照されている場合、更新は整合性エラーの原因になるため、「更新すべきでない」とされる場合が多いです。
- 不適切です。主キーは、他の表の外部キーとして参照されるために使われるのが一般的です。
よって、適切な記述は1.と3.の2つです。
条件①〜⑤によって、関係データベースで管理する”従業員”表と”部門”表を作成した。”従業員”表の主キーとして、最も適切なものは「部門コード」である。
〔条件〕
① 各従業員は重複のない従業員番号を一つもつ。
② 同姓同名の従業員がいてもよい。
③ 各部門は重複のない部門コードを一つもつ。
④ 一つの部門には複数名の従業員が所属する。
⑤ 1人の従業員が所属する部門は一つだけである。

(出典:令和4年度春期分 問65一部改変)
答え:×
〔条件〕④に「一つの部門には複数名の従業員が所属する」とあるため、部門コードが重複する可能性があります。そのため、部門コードを主キーとするのは不適切です。
また、〔条件〕②に「同姓同名の従業員がいてもよい」とあるため、従業員名も重複する可能性があり、主キーとするのは不適切です。
この問題の場合、重複のない従業員番号を主キーとするのが適切です。
関係データベースの操作を行うための言語はFAQである。
(出典:平成31年度春期分 問95一部改変)
答え:×
関係データベースの操作を行うための言語はSQL(Structured Query Language)です。なお、FAQ(Frequently Asked Questions) とは「よくある質問」のことで、問い合わせ対応の手間を減らし、ユーザー自身が迅速に解決策を見つけられるようにするためのものです。
次のa~gのうち、DBMSに備わる機能として、適切なものは4個ある。
a.アクセス権管理
b.障害回復
c.同時実行制御
d.ファイアウォール
e.ウイルスチェック
f.データ検索・更新
g.テーブルの正規化
(出典:令和3年度春期分 問75一部改変)
答え:〇
正しい記述です。以下のものはDBMSの機能ではありません。
d.ファイアウォール
e.ウイルスチェック
g.テーブルの正規化
よって、DBMSに備わる機能として、適切なものは4個(a.アクセス権管理、b.障害回復、c.同時実行制御、f.データ検索・更新)です。