MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

DBMSの推移的な依存関係


推移的な依存関係とは

間接的な関係が機能依存性を引き起こす場合、それは推移的依存性と呼ばれます。

P->QおよびQ->Rが真の場合、P->Rは推移的な依存関係です。

3NFを達成するには、推移的な依存関係を排除します。

Movie_ID
Listing_ID
Listing_Type
DVD_Price($)
M08
L09
犯罪
180
M03
L05
ドラマ
250
M05
L09
犯罪
180


上記の表は、推移的な機能依存性があるため、3NFには含まれていません-

Movie_ID-> Listing_ID
Listing_ID-> Listing_Type


したがって、以下には推移的な機能依存性があります。

Movie_ID-> Listing_Type


上記は、関係が第3正規形(3NF)に違反していることを示しています。

違反を削除するには、テーブルを分割し、推移的な関数従属性を削除する必要があります。

<映画>

Movie_ID

Listing_ID
DVD_Price($)
M08 L09 180
M03 L05 250
M05 L09 180


<リスト>

Listing_ID

Listing_Type
L09 犯罪
L05 ドラマ
L09 犯罪


これで、上記の関係は正規化の第3正規形(3NF)になります。


  1. DBMSの機能依存性

    機能従属性とは 名前が示すように、DBMSの機能依存性は、相互に依存するテーブルの属性間の関係です。 E. F. Coddによって導入され、データの冗長性を防ぎ、悪い設計について知るのに役立ちます。 (矢印記号)で表されます。 次に、以下は矢印記号-で属性間の機能依存性を表します。 B 上記は次のことを示唆しています: 例 以下は、関数従属性を理解しやすくする例です- があります 2つの属性を持つテーブル-DeptId およびDeptName 。 DeptId =部門ID DeptName =部門名 DeptId 主キ

  2. DBMSのデッドロック

    デッドロックは、2つ以上のプロセスが、他のプロセスによって保持されている実行を完了するために何らかのリソースを必要とする場合に発生します。 上の図では、プロセス1にはリソース1があり、リソース2が必要です。同様にプロセス2にはリソース2があり、リソース1が必要です。これらの各プロセスは、完了するために他のリソースを必要としますが、どちらもリソースを放棄する意思はありません。したがって、プロセス1とプロセス2はデッドロック状態にあります。 コフマンの状態 デッドロックは、4つのコフマン条件が当てはまる場合にのみ発生します。これらの条件は、必ずしも相互に排他的ではありません。それらは: 相