データベースとは#
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.大規模なデータを扱う. |