「マンガでわかるデータベース」読了

マンガでわかるデータベース

マンガでわかるデータベース

2010.02.27読了

データベースについて人に教える時に使えるかもしれない。

<なるほどと思ったこと>

・データベースを使うメリット(→矛盾や重複がなく効率的。アクセス制限などが行える。など)
・正規化しないとなぜ困るか(→表に追加することができず管理できないデータが発生してしまう)
SQLが必要になる例(→複数の正規化された表から、一覧表を作成する)
・ストアドプログラムの必要性(→ネットワークへの負担を減らすためによく使う処理をデータベースに記録しておく)

<疑問点>

・「selectして→updateする」というトランザクションが2組あった場合、共有ロックと排他ロックを使い分けても不整合は起きるんじゃないかと思った。

トランザクションAがselect(共有ロック)

トランザクションBがselect(共有ロック)<--*

トランザクションAがupdate(共有ロック解除→排他ロック→排他ロック解除)

トランザクションBがupdate(排他ロック)(*で読み込んだ値をもとに更新)

実際は、「トランザクションAが終わるまで、トランザクションBはselectも行わない」という動きのようだ。じゃあ共有ロックはどういうところで使われるんだろう。

・第一正規形への変換は「繰り返しをなくす(1行に1つの値が入るようにする)だけ」と覚えていたが、この本では表を2つに分割している。第一正規形への変換方法は、一通りでなくいろいろあるようだ。