第11回 今日の目標 §3.4 データベース リレーショナルデータベースの特徴を示せる ロールバックやコミットを説明できる

Slides:



Advertisements
Similar presentations
データベースの基礎知識 ACEESS の基本操作. データベースの基礎知識 データベース  特定のテーマや目的に毎のデータの集合体 データベースソフトウェア  データベースを作成、管理するソフトウェアの総 称 Oracle(Oracle) IBM(DB2) Microsoft(SQL Server)
Advertisements

1 データベース 基本情報技術概論 ( 第 11 回 ) 埼玉大学 理工学研究科 堀山 貴史 DB.
情報基礎 A 第 4 週 データベースと表計算 情報基礎 A 第 4 週 データベースと表計算 1 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
SQLエディタによる データベースプログラミング 01. データベースとはデータを1つにまとめて 複数のシステムで共有できるようにしたもの 蔵書管理システム 貸出管理システム 生徒ファイル 生徒番号 学年 クラス 番号 名前 性別 住所 貸出ファイル 貸出番号 図書番号 貸出月 貸出日 蔵書ファイル.
実践!DB逆設計 ~レシートからER図を起こす~
Accessによるデータベース(1) Ver.1 /11.
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
第10回 データベース (Database) (2007/12/11版)
リレーショナル・データベース データベース論 第10回.
データベース工学および演習 第5章 リレーショナルデータベース言語SQL
JPAを利用した RESTful Webサービスの開発
SQLエディタによる データベースプログラミング
CGS カーネルベース 変化するオブジェクトに    進化するデータベースを。.
MySQLに接続するデータベースプログラム
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
第5章 データベースの設計 5.1 データベース設計の概要 5.2 ERモデルとスキーマ設計 5.3 正規化 5.4 一貫性制約.
データベース工学 データベースとは データモデル 関係データベースとSQL 物理データベース編成とインデクス
ACCESSによる データベースアプリケーション開発実習 日本工業大学 情報工学科 “データベースの実際” 教材
続 Entity Framework 入門 SQLWorld #8 サヴロウ.
SQL J2EE I 第3回 /
ユースケース図 FM12012 比嘉久登.
データベースS 第3回 クリッカー配布 2015/4/22 A~Jの箱の中から、自分の学生番号に対応するID番号のラベルが貼られたクリッカーを受け取ること。 教壇 A ~ C D ~ F G ~ J A C E G I 学生番号 ID
RDBMSについて 2年7組  小鹿 慎太郎.
第2章 データベースのモデル 2.1 論理表現と3層モデル 2.2 階層モデル 2.3 ネットワークモデル 2.4 関係モデル.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
朝日大学大学院 経営学研究科 奥山 徹 データベース論 朝日大学大学院 経営学研究科 奥山 徹 2006/04/24 データベース論(2回目)
Web上で管理・利用できる 面接予約データベースシステムの構築
この資料は、テキストをもとに、講義のために作成したものです.学習用に活用してください.
この資料は、テキストをもとに、講義のために作成したものです.学習用に活用してください.
14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作
マイクロソフト Access を使ってみよう 第1回
データベース設計 データベース設計 第0回 オリエンテーション 坂口利裕.
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
データベース設計 データベース設計 第1回 データベース概論 坂口利裕.
15.同時実行制御,トランザクション, データベースの回復
データベース設計 第2回 データベースモデル(1)
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
Chapter7 その他の図 FM13010  須崎研 村上 太一.
その他の図 Chapter 7.
朝日大学大学院 経営学研究科 奥山 徹 データベース論 朝日大学大学院 経営学研究科 奥山 徹 2006/05/22 データベース論(6回目)
マイクロソフト Access での SQL 演習 第5回 副問い合わせ
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
コンピュータ概論B ー ソフトウェアを中心に ー #09 データベース (後編)
マイクロソフト Access での SQL 演習 第4回 並べ替え(ソート)
データベース設計 第8回 クライアント=サーバーモデル(2)
掛下 哲郎 データベースII 第3回 掛下 哲郎
データモデリング モデルの基本作法.
アプリケーション依存の先読みが可能なO/Rマッピングツール
マイクロソフト Access を使ってみよう 第3回
情報システム1及び演習 第一回 データベースの概要.
マイクロソフト Access での SQL 演習 第2回 集計,集約
3.リレーショナルデータベース,主キー, SQL
14.外部キー,データ分析,データベース設計
データベース技術 Network Database, Hierarchical Database 1950年代~ 関係データベース
E-R図 井上卓也.
データベースシステム入門 10.データウエアハウス
関係データベースとSQL MZ Platform講習会(上級).
リレーショナル・データベース J2EE I (データベース論) 第2回 /
磯野ー!そんなことより 正規化しようぜー!
CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
地理情報システム論 第6回 GISによる処理技法 GIS入門(2)
SQL J2EE I (データベース論) 第3回 /
第3章 関係データベースの基礎 3.1 関係とは 3.2 関係代数.
SQL データベース論 第11回.
第8章 データベースシステムの発展 8.1 オブジェクトリレーショナルデータベース 8.2 分散データベース 8.3 インターネットとデータベース.
Presentation transcript:

第11回 今日の目標 §3.4 データベース リレーショナルデータベースの特徴を示せる ロールバックやコミットを説明できる 第11回 今日の目標 §3.4 データベース リレーショナルデータベースの特徴を示せる ロールバックやコミットを説明できる データベースのACID特性を説明できる デッドロックについて説明できる 関係代数について説明できる リレーショナルのキーについて説明できる SQLについて例示できる

データとは データベースとは 人が扱いやすいように表現した基礎となる事実 例:納品書の場合 受注日付、納品先、納品日付、商品名、 数量、単価、金額など データベースとは 広義 ⇒ 関連するデータの集まり 狭義 ⇒ データを管理・保守するためのしくみが備わって        いるシステム、もしくはそのシステムに格納され        ているデータの集まり データを一定のルールで蓄積し、必要に応じて取り出せるようにしたもの

(Database Management System) データベースのしくみ = 図書館のしくみ 検索依頼 「こんな本がほしい」 貸出 図書館司書 案内 貸出依頼 閲覧 データベースシステム 要求(リクエスト) データベース データベース管理 システム (Database Management System) 反応(レスポンス) ダウンロード

データモデルについて 現実社会のデータ データモデリング データモデル Step1: 概念データモデル Step2: 論理データモデル (コンピュータ上で扱える形に置換える作業) データモデル (コンピュータ上で扱える形に置換えられたデータ) Step1: 概念データモデル (現実社会の構造をデータ化して記述したもの) Step2: 論理データモデル (コンピュータで扱いやすいデータ表現にしたもの)

概念データモデル 論理データモデル ER図による表現 Relationship(関連) Entity(実体) Attribute(属性) 商品コード ER図による表現 (記号) 商品 商品名 n 単価 Relationship(関連) 受注番号 Entity(実体) 受注 受注日 Attribute(属性) m 得意先コード 得意先 得意先名 論理データモデル 階層型データモデル ネットワーク型データモデル リレーショナル型データモデル A B C D a b C A a D b B コード 名前 性別 血液型 誕生日 部門コード 101 山口 m A 1972/02/01 10 102 鈴木 AB 1974/09/10 20 103 佐藤 f B 1976/04/21 104 小林 O 1978/12/24 30 105 佐々木 1980/07/04 コード 名称 10 総務部 20 営業部 30 開発部 データの冗長化が発生! アプリのデータ構造依存が大きい!

リレーショナルデータベース フィールド(列) レコード(行) リレーショナルデータベースの特徴 社員テーブル 部門テーブル フィールド(列)名 社員テーブル テーブル(表)名 部門テーブル コード 名前 性別 血液型 誕生日 部門コード 101 山口 m A 1972/02/01 10 102 鈴木 AB 1974/09/10 20 103 佐藤 f B 1976/04/21 104 小林 O 1978/12/24 30 105 佐々木 1980/07/04 コード 名称 10 総務部 20 営業部 30 開発部 フィールド(列) レコード(行) リレーショナルデータベースの特徴 発明者:1969年 エドガー・F・コッド博士 ・複数の2次元の表(テーブル)から構成 ・テーブルは複数のレコードから成り、レコードは複数のフィールドから成る ・テーブル(データ構造)の変更に伴うアプリケーションの変更修正が容易 ・データ構造が単純でわかりやすいため、アプリケーション作成が容易 ・複数のテーブルに同じ値を持つフィールドによって、レコード間の関連付けが可能 ・現在の主流のデータモデル 例) 商用 ⇒ Oracle,Microsoft SQL Server, IBM DB2,Sybase,Microsoft Access     フリー ⇒ PostgreSQL,MySQL,SQLite

トランザクションについて トランザクション トランザクション(Transaction): データベース上の処理の単位 事例) 花子さんはオークションサイトでオークションに参加して、めでたく希望の     商品を落札した。 3万円の支払いは、銀行振込みで行おうとしたのだが・・・ 薬科銀行 明治銀行 落 雷 発 生 花子さんの口座 10万円 システムダウン 3万円減額 出品者の口座 入金なし! 3万円を 口座振込 花子さんの口座 7万円 トランザクション トランザクション(Transaction): データベース上の処理の単位 ロールバック(Rollback) : トランザクションのキャンセル コミット(Commit) : トランザクションの確定

データベースのACID特性とは A ⇒  Atomicity(原子性):トランザクションは処理が完結しているか、まったく処理されていないかのどちらかでなければならない。 C ⇒  Consistency(一貫性):トランザクションの状態にかかわらず、データベースの内容には矛盾がない状態でなければならない。 I ⇒ Isolation(隔離性):複数のトランザクションを同時に実行した場合と、それぞれを1つずつ順番に実行した場合とで、結果は同じでなければならない。 D ⇒  Durability(耐久性):処理が終了したトランザクションは、その後にデータベースに障害が発生した場合でも、データの内容が損なわれてはならない。

ロックについて ロック 太郎くんの100万円はどこに消えた!? 事例) 太郎くんは株で儲けた100万円を振込んだが、ちょうどその時・・・ 太郎くんの行動 太郎くんの銀行口座 会社経理の行動 太郎くんの口座 50万円 口座残高 50万円 残高照会 振込開始 口座残高 50万円 残高照会 100万円 振込 ロック 太郎くんの口座 150万円 口座残高 150万円 残高照会 30万円 振込 太郎くんの口座 80万円 口座残高 80万円 残高照会 太郎くんの100万円はどこに消えた!?

デッドロックについて データベース デッドロックを最小化するには 1.適度に譲り合う 2.ルールを設ける 3.第三者によって監視する 太郎くん 花子さん アプリケーションⅩ アプリケーションY ロックの解除待ち 社員データ 部門データ ロックの解除待ち データベース 条件: 2本のフォークが揃うと食事できる ① ロックする順序が逆になる場合 食事する哲学者の問題 (Dining Philosophers Problem) デッドロックを最小化するには 1.適度に譲り合う ② ロックする順序がループする場合 2.ルールを設ける 3.第三者によって監視する

ユーザー権限について ユーザーの社内的なポスト、所属部門によって、データベースへのアクセス 権限を変えることで、情報の保護が可能となる。 給与データ 参照・変更 経理部 B さん 参照のみ可 売上データ 参照・変更 事業本部 本部長 A さん 社内データベース 営業部 C さん ユーザーの社内的なポスト、所属部門によって、データベースへのアクセス 権限を変えることで、情報の保護が可能となる。

関係演算について Ⓐ Ⓑ Ⓒ 選択演算 (Selection) 射影演算 (Projection) 結合演算 (Join) <学生テーブル> <履修テーブル> Ⓒ <担当テーブル> 結合演算 (Join) 授業 教師名 ネットワーク 増田 ハードウェア 長束 データベース 前田

集合演算について - ☓ + 差集合演算 (Difference) 和集合演算 (Union) 積集合演算 (Product ) <学生テーブル1> <学生テーブル2> 学籍番号 名前 0002 木村 0004 鈴木 学籍番号 名前 0001 田中 0002 木村 0003 伊藤 0004 鈴木 学籍番号 名前 0001 田中 0003 伊藤 0005 小林 - 学生テーブル1 学生テーブル2 和集合演算 (Union) ☓ 学生テーブル1 学生テーブル2 積集合演算 (Product ) 学籍番号 名前 0001 田中 0002 木村 0003 伊藤 0004 鈴木 0005 小林 学籍番号 名前 0001 田中 0003 伊藤 + 学生テーブル1 学生テーブル2

テーブル上のキーについて 社員テーブル 部門テーブル プライマリーキー(主キー、Primary Key) コード 名前 性別 血液型 誕生日 部門コード 101 山口太郎 m A 1972/02/01 10 102 鈴木一郎 AB 1974/09/10 20 103 佐藤輝彦 f B 1976/04/21 104 小林信子 O 1978/12/24 30 105 佐々木昭 1980/07/04 コード 名称 10 総務部 20 営業部 30 開発部 経理部 部門コードが重複している・・・ プライマリーキー(主キー、Primary Key)    テーブル上のレコードを一件に絞り込むためのフィールド。 ユニークキー(Unique Key)    重複したデータを格納できないようにしたフィールド。    プライマリーキーはユニークキーの1つである。 外部キー(Foreign Key)    他のテーブルと関連付けるためのカギとなるフィールド。外部キーとして設定    できるフィールドは、参照される側のプライマリーキーのみとなる。    他のテーブルで外部キーとして使用されているデータは削除できない。

SQL SQLについて SELECTの例) リレーショナルデータベースと対話するための言語 SQLの種類 SELECT:データの取得 1986年~ ANSI, ISO規格化 SQL 1970年 IBM SystemR:初のリレーショナルデータベースに実装された SEQUEL(Structured Engrish Query Language:シークエル) データ定義言語(DDL:Data Definition Language) SQLの種類 データ制御言語(DCL:Data Control Language) データ操作言語(DML:Data Manipulation Language) SELECT:データの取得 INSERT:データの追加 UPDATE:データの更新 DELETE:データの削除 SELECTの例) Ⓐ SELECT 学籍番号,名前 FROM 学生 表示したいフィールドのリスト、 *ならすべてを表示 テーブル名のリスト Ⓑ SELECT 学籍番号,名前,住所 FROM 学生    WHERE  住所=‘神奈川’ 検索条件、不等号による大小比較、ORやANDによる論理演算も可能 Ⓒ SELECT 学生名.履修,授業.履修,教師名.担当    FROM  履修,担当    WHERE  授業.担当=授業.履修

演習 情報科学概論のトップへ 明治薬科大学のホームへ 1.これまでに経験したデッドロックと思われる事象を記述しなさい。 2.以下のEMPLOYEE表から①と②の結果が得られるようなSQLコマンド   (ここでは、SELECT文)をそれぞれ記述せよ。 情報科学概論のトップへ 明治薬科大学のホームへ