データベースとは#

Without data, you’re just another person with an opinion.

—Edwards Deming

学習目標#

  • データと情報の違いを理解する.

  • データベースシステムの構成を理解する.

  • データモデルの概念を理解する.

  • リレーショナルデータベースの特徴を理解する.

  • DBMSの主な機能を理解する.

  • SQL, NoSQL, DBMS, RDBMSなどの略語を使える.

用語#

略語

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

データ制御言語

データと情報#

The goal is to turn data into information, and information into insight.

– Carly Fiorina

データ(Data) はコンピューターの処理の対象となる事実.状態・条件などを表す数値・文字・記号.

情報(Information) はある特定の目的について,適切な判断を下したり,行動の意思決定をするために役立つ資料や知識.

Example

  • データ:(太郎, M, 20)

  • 情報:太郎は20歳の男性です.

Example

  • データ:JC 01

  • 情報:中央線快速の東京駅行きの電車です.

データと情報の違い#

  • データは数値・文字・記号などで表現したもの.

  • 情報はデータが処理され,意味を持たせたもの.

  • 情報は意思決定に役立つ.

データベースシステム#

データベース(Database) はデータの組織的な集合である.

データベース管理システム(DBMS) はデータベースを管理し,データに対する操作を提供するソフトウェア.

データベースシステム(DBS) はデータベース,DBMS,アプリケーションプログラムの総称.

データモデル#

データモデル(data model) はコンピューターで,データベースシステムのデータを構造化するパターンである.

代表的なモデル#

  • 階層データモデル

  • ネットワークデータモデル

  • リレーショナルデータモデル

  • オブジェクト指向データモデル

  • XMLデータモデル

リレーショナルモデル#

リレーショナルモデル(relational model) はエドガー・F・コッドが1970年に数学の集合論に基づいて提案したデータモデルで,あらゆるデータがテーブルとして表現される.

Example

ある大学の学生と成績のデータをリレーショナルモデルで表現する.学生と成績のリレーションを以下の2つのテーブルで表現できる.

学生 テーブル

学籍番号

氏名

学科

202501

佐藤桃子

情報工学科

202502

鈴木一郎

機械工学科

成績 テーブル

学籍番号

科目

成績

202501

プログラミング

A

202501

線形代数

B

202502

プログラミング

B

この2つのテーブルを用いて,以下の問いに答えよ.

  • プログラミングの成績がAの学生は誰ですか?

  • その学生の学科は何ですか?

Example

ある企業の社員と部署のデータをリレーショナルモデルで表現する.社員と部署のリレーションを以下の2つのテーブルで表現できる.

社員 テーブル

社員番号

氏名

部署

1001

佐藤

E1

1002

鈴木

K2

1003

山田

E1

部署 テーブル

部署

部署名

部署長

E1

開発部

1003

K2

研究部

1002

この2つのテーブルを用いて,以下の問いに答えよ.

  • 開発部の部署長は誰ですか?

リレーショナルモデルの特徴#

  • データモデルが理解しやすい.

  • 高いデータ独立性の実現.

  • データ操作の非手続き性.

以上の特徴から,リレーショナルモデルはビジネスデータ処理に広く利用されている.

データベース管理システム#

データベース管理システム(DBMS)はデータベースを管理し,データに対する操作を提供するソフトウェア.

リレーショナルデータベース管理システム(RDBMS)は,リレーショナルデータベースを管理するDBMSの一種.

DBMSの主な機能#

  • データベース定義機能:スキーマ定義

  • データベース操作機能:データの追加,削除,更新,検索

  • データベース制御機能:障害回復,同時実行制御

SQLとNoSQL#

SQL(Structured Query Language) はRDBMSにおいてデータの操作を行うためのドメイン固有言語.NoSQL(Not Only SQL) はRDBMS以外のデータベースを指す用語.非リレーショナルデータベース.

Example

30歳以上の従業員を検索するSQL文.

SELECT * FROM employees WHERE age > 30;

以下のSQL文を考えよ.

  • 40歳以下の従業員を検索するSQL文.

  • 部署が「開発部」の従業員を検索するSQL文.

Note

ドメイン固有言語(Domain-specific language)とは特定のタスク向けに設計されたコンピュータ言語である.代表的なドメイン固有言語には以下のようなものがある.

  • SQL: データベース操作するための言語

  • HTML: ウェブページを作成するための言語

  • CSS: ウェブページのスタイルを設定するための言語

  • LaTeX: 文書を作成するための言語

汎用プログラミング言語(General-purpose programming language)のはドメイン固有言語の対義語である.代表的な汎用プログラミング言語には以下のようなものがある.

  • Python

  • Java

  • C++

主要なDBMS#

名称

種類

特徴

SQLite

RDBMS

軽量なRDBMS

MySQL

RDBMS

オープンソースで広く利用されているRDBMS

PostgreSQL

RDBMS

オープンソースのRDBMS.拡張性が高い.

SQL Server

RDBMS

マイクロソフト社が開発した商用RDBMS

MongoDB

NoSQL

非リレーショナルDBMS.JSON形式でデータを格納

Cassandra

NoSQL

分散型DBMS.大規模なデータを扱う.