rdbms
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
rdbms [2012/04/15 05:32] – nullpon | rdbms [2014/03/31 05:07] (現在) – [エンタープライズRDBMS無料版] nullpon | ||
---|---|---|---|
行 2: | 行 2: | ||
===== トランザクション ===== | ===== トランザクション ===== | ||
+ | |||
+ | ==== エラーリード ==== | ||
+ | |||
+ | | ダーティリード | 未コミットデータをリードすること。ロールバックされると不正な値を読み込んだという事になる。| | ||
+ | | ファジーリード | トランザクション中に同じ条件で2回リードしたときに、結果が異なる。トランザクション中に他トランザクションによってコミットされると発生する。| | ||
+ | | ファントムリード | トランザクション中に同じ条件で2回リードしたときに、行が消えたり増えたりしている。トランザクション中に他トランザクションによって挿入、削除がコミットされると発生する。| | ||
==== トランザクション分離レベル ==== | ==== トランザクション分離レベル ==== | ||
- | | Read Uncommited | コミットされてないデータも読める。 | | + | | Read Uncommited | コミットされてないデータが読める。| |
- | | Read Commited | コミットされてないデータは読めない。しかし、トランザクションAは、トランザクションBに影響を与えうるデータをupdadeやinsertする事ができる | + | | Read Commited | コミットされてないデータは読めない。ダーティリードを抑止する。 | |
- | | Repeatable Read | コミット済みのデータしか読めず、読み込んだデータはトランザクション終了まで他トランザクションからupdateされない。しかし、トランザクションAは、トランザクションBに影響を与えうるデータをinsertする事ができる | | + | | Repeatable Read | トランザクション終了まで、そのトランザクションに影響するデータを更新できない。ファジーリードまで防げる。| |
- | | Serializable | トランザクション終了まで別のトランザクションを実行できず、待ち状態になる | | + | | Serializable |トランザクション終了まで、そのトランザクションに影響しうるトランザクションは実行されず、待ち状態になる。ファントムリードまで防げる。| |
+ | 下に行く程安全だが性能が犠牲になる。多くのDBはRead Commitedがデフォルト。MySQL(InnoDB)はRepeatable Readがデフォルト。 | ||
+ | 例えばRepeatable Readでは、あるトランザクションAで '' | ||
===== エンタープライズRDBMS無料版 ===== | ===== エンタープライズRDBMS無料版 ===== | ||
Oracleなどの高価なDBMSにも無料版が存在する。ライセンスをよく読んで使用すること。 | Oracleなどの高価なDBMSにも無料版が存在する。ライセンスをよく読んで使用すること。 | ||
- | * [[http:// | + | * [[http:// |
* 要OTN登録 | * 要OTN登録 | ||
- | * [[http:// | + | * [[http:// |
* [[http:// | * [[http:// | ||
- | |||
- | Oracleは無料でWebアプリのバックエンド等に使える。スケールアップの必要がでてきたらクラスタリング等高度な機能を有する有料版にアップグレードできる(それがOracleの戦略だろう)。企業向けのアプリならば、初期費用を抑え、大規模になってきたらOracle社のスペシャリストに任せるという方法も良いだろう。 | ||
- | |||
rdbms.1334467930.txt.gz · 最終更新: 2012/04/15 05:32 by nullpon