Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
データベースシステム論
2016年度 前期 水曜 1・2時限 情24教室
担当:横山昌平
データベースシステム論 第 回2016 [ 9 ] 1p.
講義計画
• 関係データベースの歴史と基本概念
• SQLの基礎と応用(演習を含めつつ)
• データベースの設計と構成
• SQL問い合わせ処理とそれを支える技術
• 関係データモデル以外のデータベース
データベースシステム論 第 回2016 ...
データベースシステム論
演習3 課題 答え合わせ
データベースシステム論 第 回2016 [ 9 ] 3p.
提出課題3 IN句・EXISTS句
• 以下の問い合わせのSQL文を作成せよ。
• ただし以下の3通りのクエリを作れ
• IN句を使って表す
• EXISTS句を使って表す
• スカラー副問い合わせを使って表す
• 提出物
• 各SQLとその出...
1
データベースシステム論 第 回2016 [ 9 ] 5p.
SELECT * FROM vineyard
WHERE did IN
(SELECT did FROM wine
WHERE price<(SELECT avg(price) F...
データベースシステム論
第9回 SQL応用演習2 ビューとトリガ、アクセス権
データベースシステム論 第 回2016 [ 9 ] 6p.
これまでに学んだSQL構文
• SQLの役割
• データ定義言語
• テーブルの作成 (CREATE TABLE)前々回
• ビューの作成 (CREATE VIEW)
• データ操作言語
• タプルの挿入・削除・変更 (INSERT, DELE...
ビュー(VIEW)
• テーブル
• CREATE TABLEで作ったテーブル
• 実表(base table)と呼ぶ
• SELECTの結果として得られたテーブル
• 導出表(derived table)
• SELECTの結果に名前を付けた...
ビュー(VIEW) - 例
• wineテーブルには産地のIDしか無いから不便
• 毎回vineyardテーブルと結合して利用する
• じゃぁ、その問い合わせをVIEWにしよう!
• あたかもテーブルの様に使えます(SELECT以外は別途説明)...
三層スキーマアーキテクチャ
• 内部スキーマ:データの物理的格納構造(二次記
憶上でのデータ編成法)とアクセスパス(インデ
クスなどの特定のデータに対するアクセス方法,
アクセスメソッドとも)を記述する.
• 概念スキーマ:内部スキーマの上にあ...
三層スキーマアーキテクチャ
データベースシステム論 第 回2016 [ 9 ] 11p.
概念スキーマ
内部スキーマ
外部スキーマ 外部スキーマ外部スキーマ
ディスク上にどう格納する?
いわゆる行と列からなる表
データ型、制約etc
ビュー
第...
ビューの概念
データベースシステム論 第 回2016 [ 9 ] 12p.
ビュー
wine_list
wid
name
district
price
テーブル
vineyard
did
district
テーブル
wine
wid
name
...
ビューは挿入・更新可能?
• このビューは複数のテーブルに跨っている
• districtはvineyardテーブルから
• それ以外はwineテーブルから
• ビューに表れていないカラムもある
• didはJOIN条件には使われているがビュ-...
トリガーを使えば可能
• トリガーとは
• 文字の意味は「引き金」
• RDBとしての意味は
• テーブルやビューに対して何等かの操作が加わった時に、
別の操作を誘発させる仕組み。
• 実行形態として二種類に分けられる
• 実行タイミングとして...
トリガ作成
• イベント:SELECT, DELETE, UPDATE等
• 関数名:PostgresではSQLを直接書けないのでちょっと不便
• ただ関数はユーザが定義できる
データベースシステム論 第 回2016 [ 9 ] 15p.
CR...
ビューに挿入するトリガ
• 考え方
データベースシステム論 第 回2016 [ 9 ] 16p.
ビュー
wine_list
wid
name
district
price
テーブル
vineyard
did
district
テーブル
win...
ビューに挿入するトリガ
• wine_listにINSERTされた時に発動
• ビューにINSERTされる代わりに(INSTEAD OF)
• 挿入される行毎に(FOR EACH ROW)
• function_insert_wine_list...
func_insert_wine_list関数定義
データベースシステム論 第 回2016 [ 9 ] 18p.
CREATE FUNCTION function_insert_wine_list()
RETURNS TRIGGER
AS $$...
実践:関数とトリガの定義
• 講義Webページに記載しているSQLのコピペで
構いませんので、関数とトリガを定義してくだ
さい。
データベースシステム論 第 回2016 [ 9 ] 19p.
実践:ビューへの挿入と確認
• wine_listビューにデータを挿入してみましょう。
• 挿入はできましたか?
• select * from wine_listで確認
• wineテーブルにも挿入されていますか?
• select * fr...
データ制御
• GRANT文、REVOLE文
• ユーザへテーブルへのアクセス権限を設定
• と、その前に
• ユーザを作って
• ログアウトしそのユーザでログイン
データベースシステム論 第 回2016 [ 9 ] 21p.
CREATE U...
ユーザoreの問い合わせ
• ユーザoreはwine_listをSELECTする権限が無い
• postgresはdbsysの所有者の為「全権限」を持つ
• oreにwine_listをSELECTする権限を付与する
• GRANT文を使う(つ...
ユーザoreの問い合わせ続き
• 権限付与が成功していたら次の結果を得る
データベースシステム論 第 回2016 [ 9 ] 23p.
SELECT * FROM wine_list;
dbsys=> SELECT * FROM wine_li...
アクセス権限の定義
• GRANT文(アクセス権限の付与)
• アクセス権
• SELECT, INSERT, UPDATE, DELETE等
• ALL :全権限
• REVOKE文(アクセス権限の剥奪)
データベースシステム論 第 回201...
権限の有用な使い方
• できた? - NO!
データベースシステム論 第 回2016 [ 9 ] 25p.
SELECT * FROM wine;
SELECT * FROM vineyard;
dbsys=> SELECT * FROM wi...
データベースシステム論
講義前半のまとめ と 講義後半の概要
データベースシステム論 第 回2016 [ 9 ] 26p.
第1回 ガイダンス
• DB (Database)とは?
• 大量のデータを保持するためのシステム
• RDB (Relational Database)とは?
• 関係データモデルに基づいたデータベース
• RDBMS (Relational...
第2回 データベースの歴史と今
• 様々なデータモデル
• ネットワーク型データモデル(1960年代)
• 階層型データモデル(1960年代後半)
• 関係データモデル(1970年代)
• Web三層システム
データベースシステム論 第 回20...
第3回 関係データモデルと関係代数
• 三層スキーマアーキテクチャ
• 外部スキーマ、概念スキーマ、内部スキーマ
• 制約
• (内部)キー
• 人工キー、自然キー、候補キー、主キー、代理キー、複合キー
• 外部キー
• 定義域制約
• 関数従...
第4回 関係代数(結合演算・集約演算)
• 関係代数part2
• 結合演算
• クロス結合(cross join) = 直積
• Θ結合, 等結合(Θ-join, equijoin)
• 自然結合(natural join)
• 準結合(半結...
第5回 PostgreSQLのインストール
• PostgreSQL
• オープンソースのRDBMS
• 参考:同じぐらい気軽に使えるRDBMS
• MySQL
• 世界No1のシェアを持つオープンソースRDBMS
• 紆余曲折の末、現在はオラ...
第6回 SQL基礎演習1
データの定義と操作
• SQL演習 day1
• CREATE TABLE文
• ALTER TABLE文
• DROP TABLE文
• INSERT文
• UPDATE文
• DELETE文
• 表・行の削除におけ...
第7回 SQL基礎演習2
データの問い合わせ
• SQL演習 day2
• SELECT文
• 射影
• AS句(リネーム)
• WHERE句/HAVING句(選択)
• ORDER BY句(整列)
• GROUP BY句(集約演算)
• 集約...
第8回 SQL応用演習
結合演算
• SQL演習 day3
• 結合演算
• JOIN~ON句
• JOIN
• LEFT JOIN, RIGHT JOIN, FULL JOIN
• EXISTS句, IN句
• それを使ったアンチ結合の実装
...
第9回 SQL応用演習2
ビューとトリガ、アクセス権
• SQL演習 day4
• ビュー
• CREATE VIEW句
• トリガー
• ビューの更新
• CREATE TRIGGER句
• CREATE FUNCTION句
• ユーザへのテ...
講義後半のキーワード(予定)
• データベースの設計(第10回講義)
• 従属性
• 正規形:第一、第二、第三、Boyce-codd
• 物理的なデータ格納法(第11回講義)
• 二次記憶・一時記憶
• インデクス
• データベースの最適化(第...
次回予告
第10回 データベースの設計
データベースシステム論 第 回2016 [ 9 ] 37p.
第10回 データベースの設計
• 漠然とした「情報」を関係データベースのテー
ブルとしてどのように設計すると良いのかの基
本的な考え方を学びます。
• 来週学ぶこと
• 従属性
• 正規化
• スキーマ分解
• 予習
• 対応箇所:教科書第5章...
Upcoming SlideShare
Loading in …5
×

データベースシステム論09 - SQL応用演習2 ビューとトリガ、アクセス権

3,007 views

Published on

静岡大学情報学部「データベースシステム論」講義スライド
第9回:SQL応用演習2 ビューとトリガ、アクセス権

  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

データベースシステム論09 - SQL応用演習2 ビューとトリガ、アクセス権

  1. 1. データベースシステム論 2016年度 前期 水曜 1・2時限 情24教室 担当:横山昌平 データベースシステム論 第 回2016 [ 9 ] 1p.
  2. 2. 講義計画 • 関係データベースの歴史と基本概念 • SQLの基礎と応用(演習を含めつつ) • データベースの設計と構成 • SQL問い合わせ処理とそれを支える技術 • 関係データモデル以外のデータベース データベースシステム論 第 回2016 [ 9 ] 2p. ※現時点での予定です。進捗に応じて変更します。 27Apr. 20Apr. 13Apr. 25May 18May 11May 1June 8June 29June 22June 20July 13July 6July 27July
  3. 3. データベースシステム論 演習3 課題 答え合わせ データベースシステム論 第 回2016 [ 9 ] 3p.
  4. 4. 提出課題3 IN句・EXISTS句 • 以下の問い合わせのSQL文を作成せよ。 • ただし以下の3通りのクエリを作れ • IN句を使って表す • EXISTS句を使って表す • スカラー副問い合わせを使って表す • 提出物 • 各SQLとその出力結果 • 出力結果は当然全て同じものでなければならない データベースシステム論 第 回2016 [ 9 ] 4p. (全ワインの)平均価格未満のワインを1つで も持つ産地のdidと産地名(distinct)を表示せよ
  5. 5. 1 データベースシステム論 第 回2016 [ 9 ] 5p. SELECT * FROM vineyard WHERE did IN (SELECT did FROM wine WHERE price<(SELECT avg(price) FROM wine)); SELECT * FROM vineyard WHERE EXISTS (SELECT NULL FROM wine WHERE vineyard.did = wine.did AND price<(SELECT avg(price) FROM wine)); SELECT DISTINCT wine.did,district FROM wine JOIN vineyard ON wine.did = vineyard.did WHERE price <(SELECT avg(price) FROM wine));
  6. 6. データベースシステム論 第9回 SQL応用演習2 ビューとトリガ、アクセス権 データベースシステム論 第 回2016 [ 9 ] 6p.
  7. 7. これまでに学んだSQL構文 • SQLの役割 • データ定義言語 • テーブルの作成 (CREATE TABLE)前々回 • ビューの作成 (CREATE VIEW) • データ操作言語 • タプルの挿入・削除・変更 (INSERT, DELETE, UPDATE)前々回 • 問い合わせ (SELECT)前回 • データ制御言語 • トランザクション管理 (BEGIN, ROLLBACK)あとで • ユーザ管理とセキュリティ (GRANT, REVOKE) データベースシステム論 第 回2016 [ 9 ] 7p.
  8. 8. ビュー(VIEW) • テーブル • CREATE TABLEで作ったテーブル • 実表(base table)と呼ぶ • SELECTの結果として得られたテーブル • 導出表(derived table) • SELECTの結果に名前を付けたもの • ビュー表(view table)、ビュー(view)と呼ぶ データベースシステム論 第 回2016 [ 9 ] 8p. CREATE VIEWビュー名 AS query
  9. 9. ビュー(VIEW) - 例 • wineテーブルには産地のIDしか無いから不便 • 毎回vineyardテーブルと結合して利用する • じゃぁ、その問い合わせをVIEWにしよう! • あたかもテーブルの様に使えます(SELECT以外は別途説明) データベースシステム論 第 回2016 [ 9 ] 9p. CREATE VIEW wine_list AS SELECT wid, name, district, price FROM wine JOIN vineyard ON wine.did = vineyard.did; SELECT * FROM wine_list;
  10. 10. 三層スキーマアーキテクチャ • 内部スキーマ:データの物理的格納構造(二次記 憶上でのデータ編成法)とアクセスパス(インデ クスなどの特定のデータに対するアクセス方法, アクセスメソッドとも)を記述する. • 概念スキーマ:内部スキーマの上にあり,物理的 な詳細情報を隠蔽し,データベースに格納される 実体のデータ型,関係,制約,操作を利用者全体 に対して論理的に記述する. • 外部スキーマ:概念スキーマの上にあり,その一 部を特定の利用者グループ(アプリケーションプ ログラムも含む)からのアクセスに対して記述し, 残りの部分を隠蔽する.ビューともいう データベースシステム論 第 回2016 [ 9 ] 10p. 第三回目のスライド
  11. 11. 三層スキーマアーキテクチャ データベースシステム論 第 回2016 [ 9 ] 11p. 概念スキーマ 内部スキーマ 外部スキーマ 外部スキーマ外部スキーマ ディスク上にどう格納する? いわゆる行と列からなる表 データ型、制約etc ビュー 第三回目のスライド
  12. 12. ビューの概念 データベースシステム論 第 回2016 [ 9 ] 12p. ビュー wine_list wid name district price テーブル vineyard did district テーブル wine wid name did price 概念スキーマ 外部スキーマ ユーザー SQL 仮想的なテーブル
  13. 13. ビューは挿入・更新可能? • このビューは複数のテーブルに跨っている • districtはvineyardテーブルから • それ以外はwineテーブルから • ビューに表れていないカラムもある • didはJOIN条件には使われているがビュ-内に無い • 挿入・更新できない?? データベースシステム論 第 回2016 [ 9 ] 13p. CREATE VIEW wine_list AS SELECT wid, name, district, price FROM wine JOIN vineyard ON wine.did = vineyard.did; この話は長くなるので、まずは手を止めて話を聞いてください。
  14. 14. トリガーを使えば可能 • トリガーとは • 文字の意味は「引き金」 • RDBとしての意味は • テーブルやビューに対して何等かの操作が加わった時に、 別の操作を誘発させる仕組み。 • 実行形態として二種類に分けられる • 実行タイミングとして3+1種類ある データベースシステム論 第 回2016 [ 9 ] 14p. 文例:データベースシステム論の単位を落とした事 が引き金となって、大学を留年した。 行トリガ 文トリガ BEFORE AFTER INSTEAD OF WHEN
  15. 15. トリガ作成 • イベント:SELECT, DELETE, UPDATE等 • 関数名:PostgresではSQLを直接書けないのでちょっと不便 • ただ関数はユーザが定義できる データベースシステム論 第 回2016 [ 9 ] 15p. CREATE TRIGGERトリガ名 [BEFORE|AFTER|INSTEAD OF] イベント ON テーブル名 FROM 参照テーブル名 FOR EACH [STATEMENT|ROW] [WHEN 条件] EXECUTE PROCEDURE 関数名(引数); ※PostgreSQLが提供しているのは現時点ではSQL標準のサブセット
  16. 16. ビューに挿入するトリガ • 考え方 データベースシステム論 第 回2016 [ 9 ] 16p. ビュー wine_list wid name district price テーブル vineyard did district テーブル wine wid name did price INSERT INTO wine_list VALUES( , ‘コンチャ・イ・トロ’, ‘チリ’, 980 ); widの最大値+1 スカラ副問い合わせ (SELECT MAX(wid)+1 FROM wine) widの最大値+1 INSERT トリガ 関数
  17. 17. ビューに挿入するトリガ • wine_listにINSERTされた時に発動 • ビューにINSERTされる代わりに(INSTEAD OF) • 挿入される行毎に(FOR EACH ROW) • function_insert_wine_listという関数が実行される • ↑この関数内でwineテーブルに挿入すればOK データベースシステム論 第 回2016 [ 9 ] 17p. CREATE TRIGGER trigger_insert_wine_list INSTEAD OF INSERT ON wine_list FOR EACH ROW EXECUTE PROCEDURE function_insert_wine_list();
  18. 18. func_insert_wine_list関数定義 データベースシステム論 第 回2016 [ 9 ] 18p. CREATE FUNCTION function_insert_wine_list() RETURNS TRIGGER AS $$ BEGIN INSERT INTO wine VALUES( NEW.wid, NEW.name, (SELECT did FROM vineyard WHERE district = NEW.district), NEW.price); END; $$ LANGUAGE plpgsql; • NEWにはINSERT文で挿入する値 が入っている。(当然OLDもある) • wineテーブルに入れるdidはラス ター副問い合わせを使って 、 vineyardテーブルから求める。 • 関数の中は「PL/pgSQL」という SQLとの親和性の高いプログラ ミング言語で記述する。(その他 CやPython等様々な言語がサポー トされている)
  19. 19. 実践:関数とトリガの定義 • 講義Webページに記載しているSQLのコピペで 構いませんので、関数とトリガを定義してくだ さい。 データベースシステム論 第 回2016 [ 9 ] 19p.
  20. 20. 実践:ビューへの挿入と確認 • wine_listビューにデータを挿入してみましょう。 • 挿入はできましたか? • select * from wine_listで確認 • wineテーブルにも挿入されていますか? • select * from wineで確認 • 正しいdidが付与されていますか? データベースシステム論 第 回2016 [ 9 ] 20p.
  21. 21. データ制御 • GRANT文、REVOLE文 • ユーザへテーブルへのアクセス権限を設定 • と、その前に • ユーザを作って • ログアウトしそのユーザでログイン データベースシステム論 第 回2016 [ 9 ] 21p. CREATE USER ore PASSWORD ’oreore’; dbsys=>¥q # psql –d dbsys –U ore
  22. 22. ユーザoreの問い合わせ • ユーザoreはwine_listをSELECTする権限が無い • postgresはdbsysの所有者の為「全権限」を持つ • oreにwine_listをSELECTする権限を付与する • GRANT文を使う(ついでにINSERT権限もつけよう) • 一度ログオフしてpostgresユーザでログインしてから実行 データベースシステム論 第 回2016 [ 9 ] 22p. SELECT * FROM wine_list; dbsys=> SELECT * FROM wine_list; ERROR: リレーション wine_list への権限がありません GRANT SELECT,INSERT ON wine_list TO ore;
  23. 23. ユーザoreの問い合わせ続き • 権限付与が成功していたら次の結果を得る データベースシステム論 第 回2016 [ 9 ] 23p. SELECT * FROM wine_list; dbsys=> SELECT * FROM wine_list; wid | name | district | price -----+---------------+------------+------- 1 | シャブリ | ブルゴーニュ | 2400 2 | ジュヴレシャンベルタン | ブルゴーニュ | 3000 3 | サンテミリオン | ボルドー | 5800 4 | オーメドック | ボルドー | 2200 5 | サンセール | ロワール | 2800 6 | シャンパン | シャンパーニュ | 4000 (6 行)
  24. 24. アクセス権限の定義 • GRANT文(アクセス権限の付与) • アクセス権 • SELECT, INSERT, UPDATE, DELETE等 • ALL :全権限 • REVOKE文(アクセス権限の剥奪) データベースシステム論 第 回2016 [ 9 ] 24p. GRANT アクセス権 ON テーブル名 TO ユーザ名; REVOKE アクセス権 ON テーブル名 FROM ユーザ名;
  25. 25. 権限の有用な使い方 • できた? - NO! データベースシステム論 第 回2016 [ 9 ] 25p. SELECT * FROM wine; SELECT * FROM vineyard; dbsys=> SELECT * FROM wine; ERROR: リレーション wine への権限がありません dbsys=> SELECT * FROM vineyard; ERROR: リレーション vineyard への権限がありません ビュー: wine_list テーブル: wine テーブル: vineyardユーザ: ore ユーザ: postgres SELECT,INSERT
  26. 26. データベースシステム論 講義前半のまとめ と 講義後半の概要 データベースシステム論 第 回2016 [ 9 ] 26p.
  27. 27. 第1回 ガイダンス • DB (Database)とは? • 大量のデータを保持するためのシステム • RDB (Relational Database)とは? • 関係データモデルに基づいたデータベース • RDBMS (Relational Database Management System)とは? • RDBに対しデータの管理・処理機能をパッケージ • SQL (Structured Query Language)とは? • RDBを操作する為の宣言型プログラミング言語 • 宣言型言語とは? • 手続型は”how”を記述するのに対し”what”を記述 データベースシステム論 第 回2016 [ 9 ] 27p.
  28. 28. 第2回 データベースの歴史と今 • 様々なデータモデル • ネットワーク型データモデル(1960年代) • 階層型データモデル(1960年代後半) • 関係データモデル(1970年代) • Web三層システム データベースシステム論 第 回2016 [ 9 ] 28p. DBサーバブラウザ Webサーバ
  29. 29. 第3回 関係データモデルと関係代数 • 三層スキーマアーキテクチャ • 外部スキーマ、概念スキーマ、内部スキーマ • 制約 • (内部)キー • 人工キー、自然キー、候補キー、主キー、代理キー、複合キー • 外部キー • 定義域制約 • 関数従属性 • 関係代数part1 • 選択、射影、集合和、集合差、集合積、直積、商、リネーム データベースシステム論 第 回2016 [ 9 ] 29p.
  30. 30. 第4回 関係代数(結合演算・集約演算) • 関係代数part2 • 結合演算 • クロス結合(cross join) = 直積 • Θ結合, 等結合(Θ-join, equijoin) • 自然結合(natural join) • 準結合(半結合,semijoin) • アンチ結合(antijoin) • 外部結合 • 左外部結合, 右外部結合, 完全外部結合 • グルーピングと集約 • 整列 データベースシステム論 第 回2016 [ 9 ] 30p.
  31. 31. 第5回 PostgreSQLのインストール • PostgreSQL • オープンソースのRDBMS • 参考:同じぐらい気軽に使えるRDBMS • MySQL • 世界No1のシェアを持つオープンソースRDBMS • 紆余曲折の末、現在はオラクルの傘下にある • Firebird • 第三のオープンソースRDBMS • ユーザはまだ少ない(特に日本において) データベースシステム論 第 回2016 [ 9 ] 31p.
  32. 32. 第6回 SQL基礎演習1 データの定義と操作 • SQL演習 day1 • CREATE TABLE文 • ALTER TABLE文 • DROP TABLE文 • INSERT文 • UPDATE文 • DELETE文 • 表・行の削除における外部キーの振る舞い データベースシステム論 第 回2016 [ 9 ] 32p.
  33. 33. 第7回 SQL基礎演習2 データの問い合わせ • SQL演習 day2 • SELECT文 • 射影 • AS句(リネーム) • WHERE句/HAVING句(選択) • ORDER BY句(整列) • GROUP BY句(集約演算) • 集約関数 • 様々な組み合わせによる問い合わせ データベースシステム論 第 回2016 [ 9 ] 33p.
  34. 34. 第8回 SQL応用演習 結合演算 • SQL演習 day3 • 結合演算 • JOIN~ON句 • JOIN • LEFT JOIN, RIGHT JOIN, FULL JOIN • EXISTS句, IN句 • それを使ったアンチ結合の実装 • 副問い合わせ データベースシステム論 第 回2016 [ 9 ] 34p.
  35. 35. 第9回 SQL応用演習2 ビューとトリガ、アクセス権 • SQL演習 day4 • ビュー • CREATE VIEW句 • トリガー • ビューの更新 • CREATE TRIGGER句 • CREATE FUNCTION句 • ユーザへのテーブルのアクセス権付与と剥奪 • GRANT文 • REVOKE文 • ビューの権限付与によるアクセス可能情報の制限 データベースシステム論 第 回2016 [ 9 ] 35p.
  36. 36. 講義後半のキーワード(予定) • データベースの設計(第10回講義) • 従属性 • 正規形:第一、第二、第三、Boyce-codd • 物理的なデータ格納法(第11回講義) • 二次記憶・一時記憶 • インデクス • データベースの最適化(第12回講義) • トランザクション(第13回講義) • 障害と復旧(第14回講義) • RDB以外のデータベース(第15回講義) データベースシステム論 第 回2016 [ 9 ] 36p.
  37. 37. 次回予告 第10回 データベースの設計 データベースシステム論 第 回2016 [ 9 ] 37p.
  38. 38. 第10回 データベースの設計 • 漠然とした「情報」を関係データベースのテー ブルとしてどのように設計すると良いのかの基 本的な考え方を学びます。 • 来週学ぶこと • 従属性 • 正規化 • スキーマ分解 • 予習 • 対応箇所:教科書第5章 • 関連個所:CREATE TABLE文 データベースシステム論 第 回2016 [ 9 ] 38p.

×