Suche senden
Hochladen
SQLアンチパターン読書会 4章 キーレスエンエントリ(外部キー嫌い)
•
4 gefällt mir
•
10,971 views
makopi 23
Folgen
2013/6/13(木) SQLアンチパターン読書会のアジェンダ資料です。
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 16
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
例外設計における大罪
例外設計における大罪
Takuto Wada
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
Kenjiro Kubota
Empfohlen
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
例外設計における大罪
例外設計における大罪
Takuto Wada
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
Kenjiro Kubota
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
まじめに!できる!LT
まじめに!できる!LT
Akabane Hiroyuki
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア
akira6592
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
deep dive distributed tracing
deep dive distributed tracing
Takayoshi Tanaka
こわくない Git
こわくない Git
Kota Saito
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
モダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとは
Takuya Tejima
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
お悩み解決!データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
お悩み解決!データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
オラクルエンジニア通信
実はとても面白い...Documentation library
実はとても面白い...Documentation library
Kouta Shiobara
Weitere ähnliche Inhalte
Was ist angesagt?
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
まじめに!できる!LT
まじめに!できる!LT
Akabane Hiroyuki
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア
akira6592
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
deep dive distributed tracing
deep dive distributed tracing
Takayoshi Tanaka
こわくない Git
こわくない Git
Kota Saito
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
モダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとは
Takuya Tejima
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
Was ist angesagt?
(20)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
まじめに!できる!LT
まじめに!できる!LT
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
deep dive distributed tracing
deep dive distributed tracing
こわくない Git
こわくない Git
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
Tackling Complexity
Tackling Complexity
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
モダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとは
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Ähnlich wie SQLアンチパターン読書会 4章 キーレスエンエントリ(外部キー嫌い)
お悩み解決!データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
お悩み解決!データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
オラクルエンジニア通信
実はとても面白い...Documentation library
実はとても面白い...Documentation library
Kouta Shiobara
MySQL最新情報
MySQL最新情報
yoyamasaki
SharePoint 2013 Preview レビュー
SharePoint 2013 Preview レビュー
Hirofumi Ota
超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!
オラクルエンジニア通信
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ
kumake
Oracle設計
Oracle設計
Kouta Shiobara
楽天における大規模データベースの運用
楽天における大規模データベースの運用
Rakuten Group, Inc.
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
Insight Technology, Inc.
JANOG37 Pattern BoF text
JANOG37 Pattern BoF text
Ken SASAKI
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
非エンジニアのSQL活用が加速させる事業成長
非エンジニアのSQL活用が加速させる事業成長
Keiko Inagaki
AWS朝会2022/1 セッション① 数年間、レイクハウスを設計運用してみた
AWS朝会2022/1 セッション① 数年間、レイクハウスを設計運用してみた
tatsuya 264
CoreDataをバックグラウンドで扱うためのTips
CoreDataをバックグラウンドで扱うためのTips
Yohei Yamaguchi
Azure SQLデータベース最新動向&TIPS
Azure SQLデータベース最新動向&TIPS
nishioka1
Miyazaki流sql
Miyazaki流sql
hafuu
20180922 jazug8 cosmosdb_search
20180922 jazug8 cosmosdb_search
Kazuhiro Wada
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
fisuda
データベース技術の羅針盤
データベース技術の羅針盤
Yoshinori Matsunobu
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
Mikiya Okuno
Ähnlich wie SQLアンチパターン読書会 4章 キーレスエンエントリ(外部キー嫌い)
(20)
お悩み解決!データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
お悩み解決!データベースの仮想化統合(DBの仮想化統合には気をつけろ!)
実はとても面白い...Documentation library
実はとても面白い...Documentation library
MySQL最新情報
MySQL最新情報
SharePoint 2013 Preview レビュー
SharePoint 2013 Preview レビュー
超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ
Oracle設計
Oracle設計
楽天における大規模データベースの運用
楽天における大規模データベースの運用
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
[db tech showcase Tokyo 2018] #dbts2018 #D1L 『"何が必要?どう実現?"~異種DB間データリアルタイム連携』
JANOG37 Pattern BoF text
JANOG37 Pattern BoF text
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
非エンジニアのSQL活用が加速させる事業成長
非エンジニアのSQL活用が加速させる事業成長
AWS朝会2022/1 セッション① 数年間、レイクハウスを設計運用してみた
AWS朝会2022/1 セッション① 数年間、レイクハウスを設計運用してみた
CoreDataをバックグラウンドで扱うためのTips
CoreDataをバックグラウンドで扱うためのTips
Azure SQLデータベース最新動向&TIPS
Azure SQLデータベース最新動向&TIPS
Miyazaki流sql
Miyazaki流sql
20180922 jazug8 cosmosdb_search
20180922 jazug8 cosmosdb_search
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
データベース技術の羅針盤
データベース技術の羅針盤
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
Kürzlich hochgeladen
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Kürzlich hochgeladen
(10)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
SQLアンチパターン読書会 4章 キーレスエンエントリ(外部キー嫌い)
1.
SQLアンチパターン読書会 4章:キーレスエントリ(外部キー嫌い) 2013/6/13(木) @makopi23
2.
2 4.1 目的: DBのアーキテクチャを単純化する 外部キーを使用しない主な理由 1.
データの更新が、参照整合性制約と衝突する。 2.DB設計の柔軟性が極めて高いので、参照整合性制約 をサポートできない 3. データベースが外部キーのために作成するインデックス が、パフォーマンスに影響すると考えている。 4. 外部キーをサポートしないデータベース製品を使ってい る 5. 外部キーを宣言する構文を調べなくてはならない。
3.
3 4.2 アンチパターン:外部キー制約を使用しない 外部キー制約を使用しないと ➢ データベース設計がシンプルになる...? ➢
柔軟性が高まる...? ➢ 実行速度が早くなる...? 代償(トレードオフ) ➢ 開発者が、参照整合性を保証するためのコードを書く 責任が生じる。
4.
4 4.2.1 完璧なコードを前提にしている (1/2) ●
参照整合性を保証するための解決策 ➢ データの関連付けを常に維持するためのコードを書く。 ➢ 変更を適用する前に追加のSELECTクエリを実行し、 変更によって参照が壊れないことを確認する。 ✔ 例1: 行を挿入する前に、親の行が存在することを確認する。 ✔ 例2: 行を削除する前に、子の行が存在しないことを確認する。
5.
5 4.2.1 完璧なコードを前提にしている (2/2) ●
この解決策の欠点 ➢ 確認クエリを実行した直後に、別の場所で誰かにDBを 更新された場合に不具合が生じる可能性が出る。 ➢ 「確認+更新」の間、テーブルロックをかければ上記の 問題は解決するが、性能問題など別の問題に直面す る。
6.
6 4.2.2 ミスを調べなければならない ● 間違った解決策 ➢ 壊れた参照をチェックするスクリプトを書く ● なぜダメなのか ➢
すべての参照に対してスクリプトが必要となる ➢ 数百ものチェックを毎日、何回も実行しなくてはならない ➢ 壊れた参照を検出したとしても、修正できるとは限らな い
7.
7 4.2.3 「私のミスではありません!」 ● データベースに関するすべてのコードが完璧であ ることは、まずありえない。 ➢
すべての更新ロジックに対し、参照整合性を担保するた めの対処を施したか確認するのは、簡単ではない。 (複数のアプリが同一のDBにアクセスすることもある) ➢ あるユーザが、SQL実行ツールや自ら書いたスクリプト によって直接DBを変更し、参照を壊してしまう可能性が ある。 DBDBにアクセスするすべてのアプリとスクリプトがにアクセスするすべてのアプリとスクリプトが 正しく変更を行ったかどうかは、信頼できない!正しく変更を行ったかどうかは、信頼できない!
8.
8 4.2.4 「キャッチ=22」なUPDATE ● 子の行が依存する列をUPDATEする際のジレンマ ➢ 親の行を更新するまで、子の行の更新はできない ➢
親の更新も、参照する子の値を更新する前に実行でき ない ● 親と子を両方同時に変更する必要があるが、2つ の異なる更新処理を同時に実行することは不可能
9.
9 4.3 アンチパターンの見つけ方 次のような言葉を耳にしたらアンチパターンの兆候 があることを示している。 ➢
あるテーブルには存在するけど、もう1つのテーブルに は存在しない値を調べるクエリは、どう書けばいい? ➢ あるテーブルの値が、別のテーブルへの挿入に使われ ていることを簡単にチェックする方法はある? ➢ 外部キー?データベースの実行速度を遅くするから、 使ってはならないと教わったのだけど。
10.
10 4.4 アンチパターンを用いても良い場合 ● 外部キーをサポートしていないデータベース製品を 使わざるを得ない場合 ➢
MySQLのMyISAMストレージエンジン ➢ バージョン3.6.19未満のSQLite ● 外部キーを用いた関連付けを行えない、極端に柔 軟なデータベース設計を扱わなければならない場 合
11.
11 4.5 解決策:外部キー制約を宣言する 参照整合性の強制の利点 ➢ データの不整合を検出してから修正するのではなく、 DBへの登録時点でミスを阻止できる。 ➢ 既存のコードも、その場限りのクエリも、同じ外部キー に従うようになる。 ➢
うっかり見逃していたコードが、この制約の強制を逃れ ることがなくなる。 ➢ 不要なコードを書く手間を省く。 ➢ DBを変更した場合でも、すべてのコードが同じように 適切に動作することを保証する。 ➢ コードの作成だけでなく、修正や保守の時間も大幅に 削減してくれる。
12.
12 4.5.1 複数テーブルの変更をサポートする カスケード更新 CREATE TABLE
Bugs ( -- 他の列. . . reported_by BIGINT UNSIGNED NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 'NEW', FOREIGN KEY (reported_by) REFERENCES Accounts(account_id) ON UPDATE CASCADEON UPDATE CASCADE ON DELETE RESTRICT,ON DELETE RESTRICT, FOREIGN KEY (status) REFERENCES BugStatus(status) ON UPDATE CASCADE ON DELETE SET DEFAULTON DELETE SET DEFAULT);
13.
13 4.5.2 オーバーヘッド、…にはなりません ● 外部キー制約によって、多少のオーバーヘッドが生じ るのは事実。 ● しかし、以下に挙げるように、ほかの選択肢と比べる と、外部キーの方がより効果的 ➢ 挿入、更新、削除の際に、チェックのためにSELECTクエリ を実行する必要がない。 ➢ 複数テーブルの変更を防ぐために、テーブルをロックする 必要がない。 ➢ 他の方法のように孤児が生じてしまうことがないので、デー タ品質管理用スクリプトを定期的に実行する必要がない。
14.
14 まとめ ● 外部キーは簡単に使え、パフォーマンスも改善す る。 ● 単純か複雑化に問わず、あらゆるデータの変更に おける参照整合性の維持に役立つ。 データベースでのミスの発生を未然にデータベースでのミスの発生を未然に 防ぐために、外部キー制約を用いましょう。防ぐために、外部キー制約を用いましょう。
15.
15 参考図書 書籍「データベースリファクタリング」 第8章:参照整合性リファクタリング ➢ 外部キー制約の追加 ➢ 計算カラムへのトリガーの追加 ➢ 外部キー制約の削除 ➢ カスケード削除の導入 ➢ ハードデリートの導入 ➢ ソフトデリートの導入 ➢ 履歴のためのトリガーの導入
16.
16 データベースリファクタリング:第8章 遅延制約チェック 制約の妥当性のチェックは、トランザクション終了時まで 遅延できる。 – 遅延制約: 制約が満たされているかどうかのチェックがコミット時にし か実行されない。遅延制約違反があると、コミット時にそ のトランザクションは取り消される。 – 即時制約: チェックはそれぞれの文が終わった時点で実行される。 制約違反があると、その文は即時にロールバックされる。 Oracle
11g: http://otndnld.oracle.co.jp/document/products/oracle11g/1 11/doc_dvd/server.111/E05765-03/data_int.htm#66501
Jetzt herunterladen