0

私は Oracle データベースの正規化を学ぼうとしていましたが、正規化が解決策であるという問題、つまりさまざまな異常 (挿入、削除、および更新) を正しく理解できないという問題を理解することに衝撃を受けました。そうではありません、私はそれらについて何も知りません。私は教科書 (Navathe & Elmsari) から理論を学びました。異常は、これらのプロセス中にデータベースで発生する問題であり、データベースの一貫性が失われます。しかし、それを適切に視覚化することはできません。つまり、異常がデータベースにどのように導入されるかです。したがって、誰かが非常に単純なデータベースの例を考え出し、これらの異常がデータベースにどのように導入されるかを理解するのに役立ちます. インターネットで検索しようとしましたが、良い例を見つけることができませんでした。

4

1 に答える 1

6

アナモリー: 分類が難しい

ここに画像の説明を入力

正規化されていないデータベース テーブルのデータの冗長性に起因する問題は、まとめて更新異常として知られています。そのため、データベースを矛盾した状態のままにするデータベースの挿入、削除、または変更は、更新の異常を引き起こしたと言われています。それらは次のように分類されます

挿入の異常: 支店 B1 に配置された新しいスタッフの詳細を上記の Tbl_Staff_Branch テーブルに挿入するには、支店の詳細が他の行の支店 B1 の値と一致するように、支店番号 B1 の正しい詳細を入力する必要があります。 . 現在スタッフのメンバーがいない新しいブランチの詳細を Tbl_Staff_Branch テーブルに挿入するには、staffID が主キーであるため許可されていないスタッフの詳細に null を入力する必要があります。しかし、第 2 正規形 (2NF) の Tbl_Staff_Branch を第 3 正規形 (3NF) に正規化すると、最終的に Tbl_Staff と Tbl_Branch になり、上記の問題は発生しません。

削除の異常: Tbl_Staff_Branch テーブルから、その支店に配置されたスタッフの最後のメンバーを表す行 (たとえば、支店番号 B"、B3、または B4 の行) を削除すると、その支店に関する詳細もデータベースから失われます。

変更の異常: Tbl_Staff_Branch テーブル内の特定のブランチのアドレスを変更する必要がある場合、そのブランチに配置されているすべてのスタッフの行を更新する必要があります。この変更が関連するすべての行に対して実行されない場合、データベースは不整合になります。

詳細: http://www.mahipalreddy.com/dbdesign/dbqa.htm#update

于 2015-07-27T01:19:09.070 に答える