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 小テスト

以下の選択肢から正しいものを一つ選びなさい.

  1. データベースとは何か?
    1. データを保存するためのソフトウェア
    2. データの組織的な集合
    3. データを処理するためのプログラム
    4. データを分析するためのツール
  2. リレーショナルデータベースの特徴はどれか?
    1. データをツリー構造で管理する
    2. データを表形式で管理し、テーブル間の関係を持つ
    3. データをグラフ構造で管理する
    4. データをオブジェクト指向で管理する
  3. SQLは何の略か?
    1. Structured Query Language
    2. Simple Query Language
    3. Standard Query Language
    4. Secure Query Language
  4. データベース管理システム(DBMS)の主な機能でないものはどれか?
    1. データベース定義機能
    2. データベース操作機能
    3. データベース制御機能
    4. データベース設計機能
  5. データベースシステム(DBS)の構成要素でないものはどれか?
    1. データベース
    2. DBMS
    3. アプリケーションプログラム
    4. オペレーティングシステム

1.7.2 練習課題

以下の問いに答えなさい.

  1. データと情報の違いを説明しなさい.
  2. RDBMSを言及した上で,SQLとNoSQLの違いを説明しなさい.
  3. データベースシステムの構成要素を説明しなさい.