[PukiWiki]
データベース基礎理論
http://shigeshige.s59.xrea.com/pukiwiki/pukiwiki.php?%5B%5B%A5%C7%A1%BC%A5%BF%A5%D9%A1%BC%A5%B9%B4%F0%C1%C3%CD%FD%CF%C0%5D%5D

[ リロード ]   [ 新規 | 編集 | 差分 | 添付 ]   [ トップ | 一覧 | 単語検索 | 最終更新 | バックアップ ]

最新の20件
2015-03-252015-03-232015-03-212012-03-042010-11-142010-10-102010-10-052010-09-242010-09-202010-03-092007-12-122007-03-262007-03-132006-07-012005-11-012005-04-202005-04-15

<a href="http://px.a8.net/svt/ejp?a8mat=NVYHE+7EQ7SI+3RU+631SX" target="_blank"> <img border="0" width="234" height="60" alt="" src="http://www29.a8.net/svt/bgt?aid=040122194448&wid=001&eno=01&mid=s00000000489001022000&mc=1"></a> <img border="0" width="1" height="1" src="http://www18.a8.net/0.gif?a8mat=NVYHE+7EQ7SI+3RU+631SX" alt="">

データベースの基礎理論

Armstrongの公理系

反射
X->X
拡大
if X->Y then XZ->Y
if ( X->Y and X->Z ) then X->YZ
分解
if X->Y and Z a subset of Y, then X->Z
推移
if ( X->Y and Y->Z ) then X->Z
擬似推移
if ( X->Y and YZ->W ) then XZ->W

正規化理論

第1正規形
関係Rがその属性に繰り返しグループを一つも含まないもの:
第2正規形
関係Rが第1正規形で関係Rのキー以外の属性はいずれも、いかなる候補キーにも完全関数従属なもの
第3正規形
関係Rが第2正規形で候補キーと非キー属性との間に推移関数従属性がないもの:
第4正規形
(調査中)
ボイスコッド正規形
(調査中)

SQL

更新可能なビュー表の条件

  • 問合せの結果のSELECT句は単純な列(演算式や集合関数を含まない)
  • FROM句は一つだけの表
  • DISTINCTを含まない
  • WHERE句にサブクエリーを含まない
  • GROUP BY、HAVING句がない

ANY述語 <-> IN述語の変換

「X = ANY 副問合せ」⇔「X IN 副問合せ」 「X <> ANY 副問合せ」⇔「X NOT IN 副問合せ」

ANY述語 -> EXISTS述語

「WHERE X 比較演算子 ANY (SELECT Y FROM TBL WHERE 探索条件)」⇒「WHERE EXISTS (SELECT * FROM TBL WHERE 探索条件 AND X 比較演算子 TBL.Y)」

⇔は言えないのだろうか?言えそうな気がするがなあー

ALL述語 -> EXISTS述語

「WHERE X 比較演算子 ALL (SELECT Y FROM TBL WHERE 探索条件)」⇒「WHERE NOT EXISTS (SELECT * FROM TBL WHERE 探索条件 AND NOT (X 比較演算子 TBL.Y)」

⇔は言えないのだろうか?言えそうな気がするがなあー

このあたりの話はド・モルガンの定理(法則?)で説明できる

結合

INNER
従来どおりの結合演算
NATURAL
自然結合(要調査)
LEFT OUTER
t1 LEFT OUTER JOIN t2 t1の不一致部分を結果に反映
RIGHT OUTER
t1 RIGHT OUTER JOIN t2 t2の不一致部分を結果に反映
FULL OUTER
t1 FULL OUTER JOIN t2 t1、t2の両方の不一致部分を結果に反映
UNION
t1 UNION JOIN t2 t1にt2の列、t2にt1の列を追加し、追加した列をNULLで埋める

トランザクション管理方式

ACID特性

原子性(Atomicity) トランザクション終了時、全ての処理が完了しているか、まったく行われていないかのどちらか。
一貫性(Consistency) トランザクション処理の終了状態にかかわらず、データベースは一貫性を保っている。
隔離性または独立性(Isolation or Independence) 直列可能であること。更新途中の処理結果が他のトランザクションに見えないこと。
耐久性(Durability) トランザクション完了後、障害などでデータベースの内容が変化しない。

同時実効制御機能

時刻印アルゴリズム
トランザクションの発生した時刻印と読み書き対象のデータの最新の時刻印を比較して読み書きの判定を行う方法。
楽観的アルゴリズム
書き込む段階になってはじめて、該当データを処理をしている間に他のトランザクションが読み込んだデータを更新したかどうかチェックする。更新あり→トランザクション リスタート。更新なし→書き込む。

直列可能性

並列実行される複数のトランザクションのスケジュールが、それらのトランザクションを直列につないで実行した場合と同じ結果を持つとき、そのスケジュールは直列可能である。

すなわち、T1,T2を並列に実行し、結果がT1T2の実行順序と等しいか、T2T1の実行順序と等しいときのことをいう。 ACID特性の独立性を保証する。

直列可能でない=ロストアップデートが発生

直列可能性を判定する

そのうち書きます

トランザクションスケジューリング

順序入れ替えの規則について書きます。

参考書

情報処理教科書 データベース(テクニカルエンジニア)〈平成15年度〉三好 康之 (著), 山下 真吾 (著), 松田 幹子 (著)

iTAC塾経験者が書いた本

プログラマのためのSQL 第2版 ジョー セルコ (著), Joe Celko (原著), 秋田 昌幸 (翻訳)


リロード   新規 編集 差分   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: Fri, 04 Jun 2004 23:06:59 JST (4652d)
Link: FrontPage(3366d)

Modified by Shige

"PukiWiki" 1.3.4 Copyright © 2001,2002,2003 PukiWiki Developers Team. License is GNU/GPL.
Based on "PukiWiki" 1.3 by sng
Powered by PHP 5.3.29

HTML convert time to 0.028 sec.