会員登録すると
学習することができます。
会員登録する(無料)
登録済みの方はこちら
ログイン

データベース ― 正規化・SQL・トランザクションを注文の表で理解する

目安学習時間 25分

課題

全問正解でレクチャー完了です。

【問題1】

SQLで「顧客ごとの数量の合計が150以上の顧客」だけを出したいとき、合計の条件を書く場所として正しいものはどれですか。

[選択肢]

【問題2】

トランザクションの途中で処理が失敗したときに、それまでの変更を全部取り消す操作はどれですか。

[選択肢]
会員登録すると
学習することができます。
会員登録する(無料)

学ぶ目的

正規化は、同じ事実を1か所に書くこと

1つの表に顧客の住所と注文を一緒に書くと、同じ住所が何行にも出てきます。住所が変わったとき、全部を直さないと食い違います。これを更新時の異常と呼びます。正規化は、表を分けて、1つの事実を1か所にだけ書く作業です。
- 第1正規形 … 1つの欄に1つの値。繰り返しの項目をなくす
- 第2正規形 … 主キーの一部だけで決まる項目を、別の表に分ける
- 第3正規形 … 主キー以外の項目で決まる項目を、別の表に分ける

SQLの集計

GROUP BY でグループごとにまとめ、SUM や COUNT で集計します。WHERE は集計の前の行を絞り、HAVING は集計した後のグループを絞ります。

トランザクション

「在庫を減らす」と「注文を登録する」のように、まとめて成功か失敗かにしたい処理の単位です。途中で失敗したら全部取り消します(ロールバック)。同時に同じデータを書き換えると、片方の更新が消えることがあるので、ロックで順番を守ります。

このレクチャーで学ぶこと

  • 正規化の目的と、第1〜第3正規形
  • GROUP BY と HAVING と WHERE の違い
  • トランザクションとコミット・ロールバック
  • 排他制御(ロック)とデッドロック

質問

まだ質問は投稿されていません。

質問投稿

ログイン後に質問の投稿ができます。