330 likes | 499 Views
5 章 データベース言語SQL. p.79-90 1組. 5 章 データベース言語SQL. P79~82 H102065 高埜直樹 H102086 外松真一. SQLとは. SQLは関係モデルに基づく標準のデータベース言語。 データ定義からデータ操作まで 1 つの言語体系で構成されている。 ISO(国際標準化機構)によって標準化されたデータベース言語。. SQLの規格. 最初のSQLの国際規格 ( ISO/IEC 9075)1987 年に出版。 日本工業規格 (JIS X 3005)1987 年に制定。
E N D
5章 データベース言語SQL p.79-90 1組 051019
5章 データベース言語SQL P79~82 H102065 高埜直樹 H102086 外松真一
SQLとは • SQLは関係モデルに基づく標準のデータベース言語。 • データ定義からデータ操作まで1つの言語体系で構成されている。 • ISO(国際標準化機構)によって標準化されたデータベース言語。
SQLの規格 • 最初のSQLの国際規格 (ISO/IEC 9075)1987年に出版。 • 日本工業規格(JIS X 3005)1987年に制定。 これまでに出版されたSQLは、1987年度1989年度、 1992年度版がある。 SQL-87 SQL-89 SQL-92 と呼ばれている。 JIS X 3005規格もSQLに対応し、改訂されている。
SQL-87 • 関係モデルに基づくデータ定義 (スキーマ定義) • データベース操作の基本的な機能を データベース言語として規定。
SQL-89 • 参照制約を含む整合性機能の拡張が 行なわれた。
SQL-92 • SQL2とも呼ばれる。 • 整合性制約の拡張 • データ定義の操作(スキーマ操作) • 動的SQLなど大幅な機能拡張が行なわれた。 • クライアントサーバ環境での機能をサポートするため SQL/CLI(call level interface) SQL/PMS(persistent stored modules) 2つの機能が別冊パートで追加されている。
SQL/CLI(call level interface) • SQL/CLIは クライアントサーバ間で、 SQL文を実行するための 1つの結合形態を提供する 呼び出しインターフェース。 この仕組みは、動的SQLと類似した仕組み。
SQL/PMS(persistent stored modules) ● SQL/PMSは SQLで記述されたプログラムを データベースに格納、呼び出す機能 を持っている • プログラムは、フロー制御を行なう文も提供されている。
水準 • SQLー87, SQL-89は SQLー92により置き換えられた。 • SQL-92には 初級SQL 中級SQL 完全SQL という水準が設けられている。
新しいSQL • SQLでは、SQL-92よりオブジェクト指向拡張などを行うSQL3の開発が行われている。 • SQLを用いて フルテキスト(全文情報) 地理情報 など マルチメディアデータベース アプリケーションパッケージ の標準を開発するSQL/MM (SQL multimedia and application packages) の検討が行われている。
表 行 • SQLのデータベースのデータの構造 列 • SQLの表(table)、行(row)、列(column)は関係モデルのリレーションタプル、属性に対応する。
関係モデルのリレーション →タプルの非同値性という制約。 • SQL ・制約無し。 ・マルチ集合から構成できる。 ※マルチ集合・・・必ずしも異ならない対象の 順序付けられていない集まり。
表 • 表には・・・ ・実表(base table) →永続的または一時的に実在。 ・ビュー表(viewed table) →ある視点からとらえ仮想的。 ・導出表(derived table) →問合せの評価によって他の表から生成。 がある。
行、列 • 行 ・表に挿入または削除できるデータの最小単位。 • 列 ・マルチ集合 ・同じデータ型(data type)または定義域でなくてはならない。 ・一つの列の一つの値は表から選択できて、更新できるデータの最小単位。
データ型 • 表現可能な値の集まり。 ・データ列型(文字列型(CHARACTER,CHARA-CTER VARYING) ・漢字列型(NATIONAL CHAR) ・ビット列型(BIT,BIT VARYING) ・数型(真数型(NUMERIC,DECIMAL,INTEGER,SMALLINT) ・概数型(FLOAT,REAL,DOUBLE PRECISION)) ・日時型(DATA,TIME,TIMESTAMP)
データベース論 テキストP83~P85のプレゼンテーション 発表日:平成16年11月17日(水) H102137 山田 雄大 H102021 大島 翔太
SQLのデータ定義(スキーマ定義)(1) 定義域 表(列) ビュー 権限 表名 文字集合 照合順 文字変換 などの定義と制約を記述 スキーマ定義 スキーマ操作 変 更 削 除
SQLのデータ定義(2) [定義域](店名) 定義域名店名を定義 [実表1](支店) 支店名、所在地、 代表電話番号 を列名として定義 主キー [実表2](社員) 社員番号、社員名、 所属支店、入社日 を列名として定義 「所属支店」は支店の 「支店名」を参照し、 参照元が削除、更新 されたら同様に更新 [ビュー表](みなと支店社員) みなと支店だけの社員 からなる表を生成
SQLのデータ定義(3) ビュー表とは 「社員」実表の列「所属支店」が“みなと”のものだけを取り出し、 仮想的な表(ビュー表)を作成 ある条件を満たすタプルだけを 取り出して作成された仮想的な表
SQLのデータ定義(4) 図5・2のスキーマ定義を元に表を作成した例 [定義域](店名) [実表1](支店) [実表2](社員) [ビュー表](みなと支店社員)
SQL-92で追加されたスキーマ操作 • スキーマ削除文(スキーマの破壊) • 表変更文(列定義の追加・変更・削除・表制約定義の追加・削除など) • 表削除文(表の破壊) • ビュー削除文(ビューの破壊) • 定義域変更文(定義域制約定義の追加・削除など) • 定義域削除文(定義域の破壊) • 文字集合削除文(文字集合の破壊) • 照合順削除文(照合惇の破壊) • 文字変換削除文(文字変換の破壊) • 表名削除文(表明の破壊) • REVOKE文(権限の破壊)
データベース論SQLのトランザクションP88-90データベース論SQLのトランザクションP88-90 H102008 池上直隆 H102403 花岡智史
SQLのトランザクション • トランザクションはデータベースの処理単位
ACID特性 • ACID特性 • 原子性(Atomicity) • 正常に完了(コミット) • すべて無効(ロールバック) • 一貫性(Consistency) • 隔離性(Isolation) • 持続性(Durability)
SQL-92 • SQLのトランザクションはSQL文の並びで構成 • 正常に完了→COMMIT文で終了 • すべて無効→ROLLBAKC文で終了 • SQL-92はSETーTRANSACTION文が導入 • アクセスモード • 隔離性水準
隔離性水準 • 隔離性水準には四つの水準があり、次の三つ現象の可能性がある P1:汚れのある読み出し (dirty read) P2:繰り返し不可能読み出し(non-repeatable read) P3:幻(phantom)
P1: 汚れのある読み出し(dirty read) トランザクションT1 トランザクションT2 トランザクションT1で行を更新 ↓ T1がCOMMITされない状態 トランザクションT2がT1で ↓ 更新した行を読み込む T1がROLLBACKを実行 ↓ T2が存在しなかった行を 読み込むことになる
P2: 繰り返し不可能読み出し(non-repeatable read) トランザクションT1 トランザクションT2 トランザクションT1で行を 読み込む T2がT1の読み込んだ行 を更新や削除しCOMMIT T1が再びその行を読み込む と以前の呼び出しと異なる
P3: 幻(phantom) トランザクションT1 トランザクションT2 トランザクションT1である 検索条件を満たす行の集合 を読み出す T2がT1の検索条件を満 たす新しい行を生成する T1が再び同じ検索条件で 読み込むと以前の呼び出し と異なる