挿入異常
Insertion Anomaly
解決:
これは、スキーマが正規化されていないことを意味します。つまり、テーブルにコースに関する情報があります。学生。
したがって、コースの詳細を挿入するには、学生の詳細も提供する必要があります。
読む必要のある正規化にはさまざまな形式がありますが、この例では、この異常を解決するための正しい方法は、3つのテーブル、つまり強力なエンティティタイプを作成することです。学生、
コース、および連想エンティティタイプのリンクテーブル
StudentCourse(おそらく
登録または
グレード)これにより、重複や異常なしに学生とコースのデータを保存したり、多くの学生に多くのコースを割り当てたりすることができます。
次のリンクで正規化の例を読むことができます。より良いアイデアが得られます。
http://www.sqa.org.uk/e-learning/MDBS01CD/page_26.htm#Example
この例では、studentnumとcoursenumが、学生が同じコースに複数回登録できないという整合性ルールを実装する複合主キーを形成していることを前提としています。つまり、組み合わせは一意ではありません。したがって、コースレコードを追加するには、studentnumも必要です。整合性ルールを維持しながらこの状況を回避するために、複合キーは連想エンティティに実装され、コースと学生は別々のエンティティにあります。