1 データベースとは
Without data, you’re just another person with an opinion.
– Edwards Deming
1.1 学習目標
- データと情報の違いを理解する.
- データベースシステムの構成を理解する.
- データモデルの概念を理解する.
- リレーショナルデータベースの特徴を理解する.
- DBMSの主な機能を理解する.
- SQL, NoSQL, DBMS, RDBMSなどの略語を使える.
1.2 データと情報
The goal is to turn data into information, and information into insight.
– Carly Fiorina
データ(Data) はコンピューターの処理の対象となる事実.状態・条件などを表す数値・文字・記号.
情報(Information) はある特定の目的について,適切な判断を下したり,行動の意思決定をするために役立つ資料や知識.
例 1.1
- データ:(太郎, M, 20)
- 情報:太郎は20歳の男性です.
例 1.2
- データ:JC 01
- 情報:中央線快速の東京駅行きの電車です.
1.2.1 データと情報の違い
- データは数値・文字・記号などで表現したもの.
- 情報はデータが処理され,意味を持たせたもの.
- 情報は意思決定に役立つ.
1.3 データベースシステム
データベース(Database) はデータの組織的な集合である.
データベース管理システム(DBMS) はデータベースを管理し,データに対する操作を提供するソフトウェア.
データベースシステム(DBS) はデータベース,DBMS,アプリケーションプログラムの総称.

1.4 データモデル
データモデル(data model) はコンピューターで,データベースシステムのデータを構造化するパターンである.
1.4.1 代表的なモデル
- 階層データモデル
- ネットワークデータモデル
- リレーショナルデータモデル
- オブジェクト指向データモデル
- XMLデータモデル
1.4.2 リレーショナルモデル
リレーショナルモデル(relational model) はエドガー・F・コッドが1970年に数学の集合論に基づいて提案したデータモデルで,あらゆるデータがテーブルとして表現される.
例 1.3 ある大学の学生と成績のデータをリレーショナルモデルで表現する.学生と成績のリレーションを以下の2つのテーブルで表現できる.
学生 テーブル
| 学籍番号 | 氏名 | 学科 |
|---|---|---|
| 202501 | 佐藤桃子 | 情報工学科 |
| 202502 | 鈴木一郎 | 機械工学科 |
| … | … | … |
成績 テーブル
| 学籍番号 | 科目 | 成績 |
|---|---|---|
| 202501 | プログラミング | A |
| 202501 | 線形代数 | B |
| 202502 | プログラミング | B |
| … | … | … |
この2つのテーブルを用いて,以下の問いに答えよ.
- プログラミングの成績がAの学生は誰ですか?
- その学生の学科は何ですか?
例 1.4 ある企業の社員と部署のデータをリレーショナルモデルで表現する.社員と部署のリレーションを以下の2つのテーブルで表現できる.
社員 テーブル
| 社員番号 | 氏名 | 部署 |
|---|---|---|
| 1001 | 佐藤 | E1 |
| 1002 | 鈴木 | K2 |
| 1003 | 山田 | E1 |
| … | … | … |
部署 テーブル
| 部署 | 部署名 | 部署長 |
|---|---|---|
| E1 | 開発部 | 1003 |
| K2 | 研究部 | 1002 |
| … | … | … |
この2つのテーブルを用いて,以下の問いに答えよ.
- 開発部の部署長は誰ですか?
1.4.2.1 リレーショナルモデルの特徴
- データモデルが理解しやすい.
- 高いデータ独立性の実現.
- データ操作の非手続き性.
以上の特徴から,リレーショナルモデルはビジネスデータ処理に広く利用されている.
1.5 データベース管理システム
データベース管理システム(DBMS)はデータベースを管理し,データに対する操作を提供するソフトウェア.
リレーショナルデータベース管理システム(RDBMS)は,リレーショナルデータベースを管理するDBMSの一種.
1.5.1 DBMSの主な機能
- データベース定義機能:スキーマ定義
- データベース操作機能:データの追加,削除,更新,検索
- データベース制御機能:障害回復,同時実行制御
1.5.2 SQLとNoSQL
SQL(Structured Query Language) はRDBMSにおいてデータの操作を行うためのドメイン固有言語.NoSQL(Not Only SQL) はRDBMS以外のデータベースを指す用語.非リレーショナルデータベース.
例 1.5 30歳以上の従業員を検索するSQL文.
SELECT * FROM employees WHERE age > 30;以下のSQL文を考えよ.
- 40歳以下の従業員を検索するSQL文.
- 部署が「開発部」の従業員を検索するSQL文.
ドメイン固有言語(Domain-specific language)とは特定のタスク向けに設計されたコンピュータ言語である.代表的なドメイン固有言語には以下のようなものがある.
- SQL: データベース操作するための言語
- HTML: ウェブページを作成するための言語
- CSS: ウェブページのスタイルを設定するための言語
- LaTeX: 文書を作成するための言語
汎用プログラミング言語(General-purpose programming language)のはドメイン固有言語の対義語である.代表的な汎用プログラミング言語には以下のようなものがある.
- Python
- Java
- C++
1.5.3 主要なDBMS
| 名称 | 種類 | 特徴 |
|---|---|---|
| SQLite | RDBMS | 軽量なRDBMS |
| MySQL | RDBMS | オープンソースで広く利用されているRDBMS |
| PostgreSQL | RDBMS | オープンソースのRDBMS.拡張性が高い. |
| SQL Server | RDBMS | マイクロソフト社が開発した商用RDBMS |
| MongoDB | NoSQL | 非リレーショナルDBMS.JSON形式でデータを格納 |
| Cassandra | NoSQL | 分散型DBMS.大規模なデータを扱う. |
1.6 用語
| 略語 | English | 日本語 |
|---|---|---|
| DBMS | Database Management System | データベース管理システム |
| RDBMS | Relational Database Management System | リレーショナルデータベース管理システム |
| SQL | Structured Query Language | - |
| NoSQL | Not Only SQL | - |
| DDL | Data Definition Language | データ定義言語 |
| DML | Data Manipulation Language | データ操作言語 |
| DCL | Data Control Language | データ制御言語 |
1.7 演習問題
1.7.1 小テスト
以下の選択肢から正しいものを一つ選びなさい.
- データベースとは何か?
- データを保存するためのソフトウェア
- データの組織的な集合
- データを処理するためのプログラム
- データを分析するためのツール
- リレーショナルデータベースの特徴はどれか?
- データをツリー構造で管理する
- データを表形式で管理し、テーブル間の関係を持つ
- データをグラフ構造で管理する
- データをオブジェクト指向で管理する
- SQLは何の略か?
- Structured Query Language
- Simple Query Language
- Standard Query Language
- Secure Query Language
- データベース管理システム(DBMS)の主な機能でないものはどれか?
- データベース定義機能
- データベース操作機能
- データベース制御機能
- データベース設計機能
- データベースシステム(DBS)の構成要素でないものはどれか?
- データベース
- DBMS
- アプリケーションプログラム
- オペレーティングシステム
1.7.2 練習課題
以下の問いに答えなさい.
- データと情報の違いを説明しなさい.
- RDBMSを言及した上で,SQLとNoSQLの違いを説明しなさい.
- データベースシステムの構成要素を説明しなさい.