メモですよ〜〜
午後2の足りないリレーションを追加していくタイプの問題は
テーブル1個ずつちゃんとリレーション足りてるかどうか検証していくのがいいぞ
全知全能な目線ですべてのテーブルを眺めながら違和感と矛盾を探すのはやめるんだ
引当とか納品とかそういう単語が苦手すぎる
3層スキーマ
外部 - 概念 - 内部
外部 → ビュー
概念 → テーブル
内部 → インデックスとかそういうの?B木がどうとか?
参考:3層スキーマ
wikiからコピペ
体現ビュー(マテリアライズドビュー)
実際のテーブルみたいな感じで実態?があるビュー
インデックスがつかえる
参照元が変わってもそのままだと更新されないのでリフレッシュしないといけない
部分関数従属
キーの一部が非キーに関数従属してるやつ
非キー同士はだめ 非キー同士は推移的関数従属
キー → 非キーA → 非キーB(推移的関数従属)
キーの一部 → 非キー(部分関数従属)
内部結合
結合のキーが両方のテーブルでマッチしたやつだけで結合
外部結合
結合のキーがマッチしなかったやつも合わせて結合
マッチしなかったテーブルの属性は空になる
左外部結合
左側のテーブルのタプル全部に対して右側のマッチするやつを結合
右外部結合
逆
なので左内部結合とかはない
テーブルの演算の商
属性1 |
---|
a |
b |
で割る場合割られる側のテーブルで属性1の値がaとbのやつだけ抽出
属性1以外の値が等しいレコード間で属性1がaとbをもってるやつだけにする
この計算はわかりやすい説明がどこにもねーなと思ってたけど実際説明しづらい
2層ロックプロトコル
デットロックになりうる
何がツーフェーズなにかよくわからん
ロックと開放でツーフェーズ・・・?
データベーススペシャリストに出てくる単語はたまにデータベーススペシャリスト関連でしかでてこないやつがあるきがする
時刻印方式
更新されたタイミングを記録しといて
トランザクション開始 -> 更新しようとするときに更新されたタイミングと最初に記録した更新されたタイミングを比較->ほかのやつに更新されちゃってたらやーんぴみたいな?
ロックっぽいけどロックはしないからデッドロックはおきない
READ COMMITED
コミットされたやつをよむ
READ UNCOMMITED
コミットされてなくてもよむ
もはやなんのためのコミットだかおれにはわからん
弱実体
他のエンティティが消えたら一緒に消えちゃうエンティティのこと
SQLの外部参照のカスケードにまきこまれて消えるやつのことかな
きえないやつは今日実体
WAL
ライトアヘッドログ
データベース更新前にログかいちゃうやつ
データベース更新時になんかおきておじゃんになってもログかいてあるから復旧できてうれしい
スイミーみたいなやつ