関係データベースとSQL

本日の出席

データ定義言語・データ操作言語

SQL: DDL・DMLから成る RDB の定義と操作を行う言語、Structured Query Language

DDL データ定義言語 データを定義する スキーマ+ビュー Data Definition Language CREAT, GRANT など
DML データ操作言語 データを操作する クエリー Data Manipulation Language SELECT, INSERT, UPDATE, DELETE など

データ定義言語: データベース全体の定義+実表の定義+ビュー表の定義を行う

実表:実際にデータベースに存在する表

ビュー表:ユーザが目的に応じて要求したデータを組み合わせて作られる仮の表

権限定義: ユーザが表に対して操作できるかどうか予め定義することができる

DDL での定義命令文機能の意味
スキーマ定義CREATE SCHEMA 文データベース全体を定義
表定義CREATE TABLE 文実表の定義
ビュー定義CREATE VIEW 文ビュー表の定義
権限定義GRANT 文 操作権限 (ALL, SELECT, INSERT, UPDATE, DELETE の許可)の定義

SQL

SELECT 文:SELECT 列 FROM 表 [WHERE 条件]

ワイルドカード:あらゆる文字列を一つの記号で示すことで、 * (アステリスク) を用いることが多い。

SELECT 文に使う関数
AVG平均を出すAVG(列名)
COUNT行数を出すCOUNT(*)
MAX最大値を出すMAX(列名)
MIN最小値を出すMIN(列名)
SUM合計を出すSUM(列名)

COUNT(DISTINCT 列名):重複を排除した行数を数える

GROUP BY重複する行をグループ化する HAVINGグループ化する際の条件

例:SELECT 属性 FROM 表 GROUP BY 属性 HAVING 条件式

INSERT 文:INSERT INTO 表(or 列) VALUES (値)

UPDATE 文:UPDATE 表 SET 列 = 値 [WHERE 条件]

DELETE 文:DELETE FROM 表 WHERE 条件

データの正規化

データの正規化: 繰り返される要素を排除して表を整理すること

正規化の手順

一意:主キーを用いて分類したとき、属性が重複なく分類できていること

完全関数従属:どの主キーで選んでも一意に决まること

部分関数従属:主キーを選べば、一意に决まること

推移関数従属:完全関数従属の関係が複数続くこと

非正規形のデータ 重複する要素が含まれている
第 1 正規形 繰り返しされている情報を複数の行に分けたものを、 複数の表に分解し、重複しない表を作る
第 2 正規形 部分従属変数を取り除くこと
第 3 正規形 推移関数従属を取り除くこと

正規化の例

ある問屋で働く人の手書きの売上げメモを読んでみよう。

これを一覧表にしてみるとどうだろうか?

6月15日 薄型さにーテレビ テレビ まり電器
6月15日 月立計算機 PC ゆっきーのPC
6月15日 ダコモフォーン携帯電話ともき電話取次店
6月15日サーテックPCPCやまがた電機
6月16日サムさんPCPCまる電器店
6月16日ダコモフォーン携帯電話おの商店
6月16日 ぼうだフォーン携帯電話ともき電話取次店
6月16日 サムさんPCPCゆっきーのPC
6月16日 ダコモフォーン、ぼうだフォーン携帯電話おの商店
6月16日 薄型さにーテレビテレビやまがた電機
6月16日ラノボ思考版PCまる電器店
6月17日 サーテックPC、ラノボ思考版PCゆっきーのPC
6月17日 ラノボ思考版PCまり電器
6月17日 ぼうだフォーン携帯電話やまがた電機

これに関して第一正規化を行なう。2 つのデータが含まれているところを分解する。

6月15日 薄型さにーテレビ テレビ まり電器
6月15日 月立計算機 PC ゆっきーのPC
6月15日 ダコモフォーン携帯電話ともき電話取次店
6月15日サーテックPCPCやまがた電機
6月16日サムさんPCPCまる電器店
6月16日ダコモフォーン携帯電話おの商店
6月16日 ぼうだフォーン携帯電話ともき電話取次店
6月16日 サムさんPCPCゆっきーのPC
6月16日 ダコモフォーン携帯電話おの商店
6月16日 ぼうだフォーン携帯電話おの商店
6月16日 薄型さにーテレビテレビやまがた電機
6月16日ラノボ思考版PCまる電器店
6月17日ラノボ思考版PCゆっきーのPC
6月17日サーテックPCPCゆっきーのPC
6月17日 ラノボ思考版PCまり電器
6月17日 ぼうだフォーン携帯電話やまがた電機

卸した取扱商品一覧と卸した店舗名の表に分けてみる。

売れた品目リスト
6月15日薄型さにーテレビテレビ
6月15日月立計算機PC
6月15日ダコモフォーン携帯電話
6月15日サーテックPCPC
6月16日サムさんPCPC
6月16日ダコモフォーン携帯電話
6月16日ぼうだフォーン携帯電話
6月16日サムさんPCPC
6月16日ダコモフォーン携帯電話
6月16日ぼうだフォーン携帯電話
6月16日薄型さにーテレビテレビ
6月16日ラノボ思考版PC
6月17日ラノボ思考版PC
6月17日サーテックPCPC
6月17日ラノボ思考版PC
6月17日ぼうだフォーン携帯電話
卸した先
6月15日テレビまり電器
6月15日PCゆっきーのPC
6月15日携帯電話ともき電話取次店
6月15日PCやまがた電機
6月16日PCまる電器店
6月16日携帯電話おの商店
6月16日携帯電話ともき電話取次店
6月16日PCゆっきーのPC
6月16日携帯電話おの商店
6月16日携帯電話おの商店
6月16日テレビやまがた電機
6月16日PCまる電器店
6月17日PCゆっきーのPC
6月17日PCゆっきーのPC
6月17日PCまり電器
6月17日携帯電話やまがた電機

つぎに、部分従属変数を取り除く。A といえば B または C が該当する、 という状況ならば、A と B の表、A と C の表に分解する。

ここでは、この問屋にとって取引先が PC 取扱専門店、電話取扱専門店かどうか、 が分かる。卸した先をさらに分解すると

ゆっきーのPCPC
まる電器店PC
おの商店携帯電話
ともき電話取次店携帯電話
やまがた電機PC
やまがた電機テレビ
やまがた電機携帯電話
まり電器PC
まり電器テレビ

この例では、やまがた電機は得意先であり、 おの商店やともき電話取次店は携帯電話を専門に扱っていることが分かる。

一方、取扱った商品で表を分解すると

薄型さにーテレビテレビ
月立計算機PC
サーテックPCPC
サムさんPCPC
ラノボ思考版PC
ダコモフォーン携帯電話
ぼうだフォーン携帯電話

となり、この店ではテレビと言えば、薄型さにーテレビとなる。このように、 あるキーを選ぶと必ず特定できるものを完全関数従属という。 取扱った商品の表でで商品を選ぶとかならずある商品区分に分解される。 このように、商品名を選ぶと必ず商品区分が分かるようなものを部分関数従属という。 部分関数従属をあらたに表にしなおすことを第二正規形と呼ぶ。

この問屋は、月立計算機は唯一ゆっきーの PC にのみ卸している。 すなわちこの問屋では、ゆっきーの PC といえば、月立計算機を卸す、 と分析できる。月立計算機は、月立工場からのみ納入されるとすると、 ゆっきーの PC から月立計算機の故障のクレームがあった場合は、 月立工場に直接連絡を取ればよい。すなわち、 連絡先一覧は月立計算機を選ぶと必ずどこにとってよいか分かる。 これらを表にし直すことを第 3 正規形という。

E-R 図

E-R モデルと E-R 図

E-R モデル:Entity (実体) と Relation (関連) に分けてデータベース化すること

E-R 図:E-R モデルを図で表したもの

データベース例

に対しての E-R 図は、属性を関係の矢印で結んだものである。

関係データベースの設計・運用

バックアップ

バックアップ:データベースの運用中に起こりうるハードウェア障害 ・ソフトウェア障害・人為的ミスなどに備えて、 データを定期的に他の記憶装置に記憶しておくこと

フルバックアップ 対象データ全てのバックアップ
差分バックアップ バックアップ更新時に、前回からの変更部分のみのバックアップ

ログファイル:データの更新や閲覧の情報を記録したもの

ロールバック・ロールフォワード

チェックポイント DBMS でデータベースの更新とログファイルの記録を一致させる位置
ロールバック 障害発生時点からチェックポイントまで、 時系列をさかのぼってデータを復帰すること
ロールフォワード チェックポイントから障害発生時点まで、 時系列にそってデータを復帰すること
ジャーナルファイル ある時点のデータベースの内容を複製して保存したファイル
トランザクション処理 複数の表を連続的に変更したのちに処理を完結させる (コミット命令を行う) こと。

本日のレポート課題 : (Subject: 第 10 回レポート「情報処理基礎論 I」)

宛先は

it-ip1-0619-report@e.koeki-u.ac.jp
である。

初級シスアドの平成 17 年度以降の出題のうち、 「データベース」 に関する問題を解く (2 問以上)。本日の講義分で解ける問題でもよいし、 自分で勉強した問題でもよい。前回解いたものは除く。 問題は教科書を購入したり、インターネットから検索して探すことができる。 長文は 1 問でもよい。

  1. レポートには、年度と季節、何問目かを記入し、選択肢を書く。 解答及び解法も記せ(解法は打ち間違いかどうかのチェックに利用する)。
  2. できるだけ他の学生と違う問題にも挑戦せよ。