関係データベースを計算機に入れ、 前回行った演算を実行するには専用の言語を必要とする。 アプリケーションは PostgreSQL (ぽすとぐれしーける) を使う。 言語は SQL, Structured Query Language を用いる。英語では "しーける" と発音するが、日本ではアルファベット読みが通用している。
SQL で実行したいことは、 そもそも表を作ったり変更したりする許可を与えること、 どの表を閲覧できる許可を与えること、 その上でレコードを操作すること、である。 SQL は表に対して設定する言語と、 レコードに対して動作を行う言語から成り立っている。 表に実行を行う許可を与えることは、 データ定義言語と呼ばれる DDL, Data Definition Language を使って行い、 表の操作はデータ操作言語と呼ばれる DML, Data Manipulation Language を使う。
DDL は、情報処理基礎論 I 内で講義予定である。
関係データベースにおいてデータを操作するのには、射影、選択、結合があった。 このような操作は、データを照会しながら行うので、query (照会) と呼ばれる。
Query には SELECT, INSERT, UPDATE, DELETE, をよく使うので覚えておこう。
ワイルドカードの文字は * を使う。 ワイルドカードとは、あらゆる文字列の代わりになる文字のこと。
あるレコードを取り出すときに使う。
SELECT 属性 FROM 表 [WHERE 条件]
何かを取り出すのに関数を使うことができる。以下のような関数を知っておくと便利である。
関数 | 目的 | 使いかた |
---|---|---|
AVG | 平均を出す | AVG(属性) |
COUNT | 行数を出す | COUNT(*) |
MAX | 最大値を出す | MAX(属性) |
MIN | 最小値を出す | MIN(属性) |
SUM | 合計を出す | SUM(属性) |
上の演習問題でも、順位の和や平均は意味がないが、練習のために行っている。
COUNT は、* で全てを数えること以外に、重複しない行数を数える指定ができる。 それには重複している情報を含む属性を DISTINCT で指定すればよい。
COUNT (DISTINCT (属性)):重複を排除した行数を数える
GROUP BY を使って、属性に関して重複する行をグループ化することができる。 もしそこに条件をつける場合は、HAVING を使う。
GROUP BY 属性:属性に関して重複する行をグループ化。複数の属性を SELECT した場合は、それらを指定する必要がある。 HAVING 条件式:集計結果に対する問い合わせ条件を指定
グループ化した結果を求めるには
SELECT 属性1, 属性2 ... FROM 表 GROUP BY 属性1, 属性2 ... HAVING 条件式
とする。
表を指定してから属性を指定する必要がある。
表.属性
として、区別する。
AND あるいは OR を使う。
WHERE 条件 1 AND 条件 2 [OR 条件 3] ...
SELECT english AS '日本語' で表すことができる。
関係データベースを作るに際し、関係をまとめるために使われる図である。
E-R モデル:Entity (実体) と Relation (関連) に分けてデータベース化すること
E-R 図:E-R モデルを図で表したもの。 データモデルに独立なデータモデルを表現する方法
矢印に数が示されている場合はその対応の数を示すが、 一般に矢でないほうの対応する数は多く、矢のほうは 1 である。
実体 | ![]() |
|
属性 | ![]() |
|
関連 | ![]() |
|
直線 | ![]() |
1 対 1 |
矢印 | ![]() |
1 対多 |
両矢印 | ![]() |
多対多 |
E-R 図は、属性を関係づけるものである。
属性 | |||||
「名前」 | 「学籍番号」 | 「語学クラス」 | 「情報科目クラス」 | ||
組 | レコード 1 | 相田みつこ | c105901 | 中国語 | 情報 A |
レコード 2 | 飯島なおき | c105902 | 中国語 | 情報 B | |
レコード 3 | 内田外男 | c105903 | ロシア語 | 情報 C | |
レコード 4 | 江口洋子 | c105904 | ロシア語 | 情報 C | |
レコード 5 | 岡田増太 | c105905 | 韓国語 | 情報 A | |
レコード 6 | 鎌田鍬夫 | c105906 | 韓国語 | 情報 A | |
レコード 7 | 木村拓世 | c105907 | 英語 | 情報 C | |
レコード 8 | 熊本みかん | c105908 | 英語 | 情報 D | |
レコード 9 | 今朝羽根坊 | c105909 | 英語 | 情報 D |
前回のデータベースを使用し、E-R 図を作れ。もし無理であるならば、 自分の家族構成や好きなこと、就職希望業種などを考察し E-R 図を作れ。 Tgif の Edit--Shape を使うとよい。
を明記すること。前回のデータであっても、再度記入する。
次回、E-R 図について発表する(5 分)。