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 の許可)の定義 |
SELECT 文:SELECT 列 FROM 表 [WHERE 条件]
ワイルドカード:あらゆる文字列を一つの記号で示すことで、 * (アステリスク) を用いることが多い。
AVG | 平均を出す | AVG(列名) |
COUNT | 行数を出す | COUNT(*) |
MAX | 最大値を出す | MAX(列名) |
MIN | 最小値を出す | MIN(列名) |
SUM | 合計を出す | SUM(列名) |
COUNT(DISTINCT 列名):重複を排除した行数を数える
例: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日 | サーテックPC | PC | やまがた電機 |
6月16日 | サムさんPC | PC | まる電器店 |
6月16日 | ダコモフォーン | 携帯電話 | おの商店 |
6月16日 | ぼうだフォーン | 携帯電話 | ともき電話取次店 |
6月16日 | サムさんPC | PC | ゆっきーの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日 | サーテックPC | PC | やまがた電機 |
6月16日 | サムさんPC | PC | まる電器店 |
6月16日 | ダコモフォーン | 携帯電話 | おの商店 |
6月16日 | ぼうだフォーン | 携帯電話 | ともき電話取次店 |
6月16日 | サムさんPC | PC | ゆっきーのPC |
6月16日 | ダコモフォーン | 携帯電話 | おの商店 |
6月16日 | ぼうだフォーン | 携帯電話 | おの商店 | 6月16日 | 薄型さにーテレビ | テレビ | やまがた電機 |
6月16日 | ラノボ思考版 | PC | まる電器店 |
6月17日 | ラノボ思考版 | PC | ゆっきーのPC |
6月17日 | サーテックPC | PC | ゆっきーのPC |
6月17日 | ラノボ思考版 | PC | まり電器 |
6月17日 | ぼうだフォーン | 携帯電話 | やまがた電機 |
卸した取扱商品一覧と卸した店舗名の表に分けてみる。
6月15日 | 薄型さにーテレビ | テレビ |
6月15日 | 月立計算機 | PC |
6月15日 | ダコモフォーン | 携帯電話 |
6月15日 | サーテックPC | PC |
6月16日 | サムさんPC | PC |
6月16日 | ダコモフォーン | 携帯電話 |
6月16日 | ぼうだフォーン | 携帯電話 |
6月16日 | サムさんPC | PC |
6月16日 | ダコモフォーン | 携帯電話 |
6月16日 | ぼうだフォーン | 携帯電話 |
6月16日 | 薄型さにーテレビ | テレビ |
6月16日 | ラノボ思考版 | PC |
6月17日 | ラノボ思考版 | PC |
6月17日 | サーテックPC | PC |
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 取扱専門店、電話取扱専門店かどうか、 が分かる。卸した先をさらに分解すると
ゆっきーのPC | PC |
まる電器店 | PC |
おの商店 | 携帯電話 |
ともき電話取次店 | 携帯電話 |
やまがた電機 | PC |
やまがた電機 | テレビ |
やまがた電機 | 携帯電話 |
まり電器 | PC |
まり電器 | テレビ |
この例では、やまがた電機は得意先であり、 おの商店やともき電話取次店は携帯電話を専門に扱っていることが分かる。
一方、取扱った商品で表を分解すると
薄型さにーテレビ | テレビ |
月立計算機 | PC |
サーテックPC | PC |
サムさんPC | PC |
ラノボ思考版 | PC |
ダコモフォーン | 携帯電話 |
ぼうだフォーン | 携帯電話 |
となり、この店ではテレビと言えば、薄型さにーテレビとなる。このように、 あるキーを選ぶと必ず特定できるものを完全関数従属という。 取扱った商品の表でで商品を選ぶとかならずある商品区分に分解される。 このように、商品名を選ぶと必ず商品区分が分かるようなものを部分関数従属という。 部分関数従属をあらたに表にしなおすことを第二正規形と呼ぶ。
この問屋は、月立計算機は唯一ゆっきーの PC にのみ卸している。 すなわちこの問屋では、ゆっきーの PC といえば、月立計算機を卸す、 と分析できる。月立計算機は、月立工場からのみ納入されるとすると、 ゆっきーの PC から月立計算機の故障のクレームがあった場合は、 月立工場に直接連絡を取ればよい。すなわち、 連絡先一覧は月立計算機を選ぶと必ずどこにとってよいか分かる。 これらを表にし直すことを第 3 正規形という。
E-R モデルと E-R 図
E-R モデル:Entity (実体) と Relation (関連) に分けてデータベース化すること
E-R 図:E-R モデルを図で表したもの
データベース例
に対しての E-R 図は、属性を関係の矢印で結んだものである。
バックアップ:データベースの運用中に起こりうるハードウェア障害 ・ソフトウェア障害・人為的ミスなどに備えて、 データを定期的に他の記憶装置に記憶しておくこと
フルバックアップ | 対象データ全てのバックアップ |
差分バックアップ | バックアップ更新時に、前回からの変更部分のみのバックアップ |
ログファイル:データの更新や閲覧の情報を記録したもの
ロールバック・ロールフォワード
チェックポイント | DBMS でデータベースの更新とログファイルの記録を一致させる位置 |
ロールバック | 障害発生時点からチェックポイントまで、 時系列をさかのぼってデータを復帰すること |
ロールフォワード | チェックポイントから障害発生時点まで、 時系列にそってデータを復帰すること |
ジャーナルファイル | ある時点のデータベースの内容を複製して保存したファイル |
トランザクション処理 | 複数の表を連続的に変更したのちに処理を完結させる (コミット命令を行う) こと。 |
宛先は
it-ip1-0619-report@e.koeki-u.ac.jp である。初級シスアドの平成 17 年度以降の出題のうち、 「データベース」 に関する問題を解く (2 問以上)。本日の講義分で解ける問題でもよいし、 自分で勉強した問題でもよい。前回解いたものは除く。 問題は教科書を購入したり、インターネットから検索して探すことができる。 長文は 1 問でもよい。