Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Phụ thuộc đa trị (Multivalued Dependency) trong DBMS

Phụ thuộc đa trị (Multi-valued Dependency) là gì?

Khi sự tồn tại của một hoặc nhiều hàng trong một bảng ngụ ý một hoặc nhiều hàng khác trong cùng bảng, thì các phụ thuộc đa trị xảy ra.

Nếu một bảng có thuộc tính P, Q và R, thì Q và R là các sự thực đa trị của P.

Được biểu diễn bằng mũi tên kép:

→→

Ví dụ của chúng ta:

P→→Q
P→→R

Trong trường hợp trên, Phụ thuộc đa trị chỉ tồn tại nếu Q và R là các thuộc tính độc lập.

Một bảng có phụ thuộc đa trị vi phạm 4NF.

Ví dụ

Ví dụ:

<Student>

StudentName CourseDiscipline Activities
Amit Mathematics Singing
Amit Mathematics Dancing
Yuvraj Computers Cricket
Akash Literature Dancing
Akash Literature Cricket
Akash Literature Singing

Trong bảng trên, ta thấy Sinh viên Amit và Akash quan tâm nhiều hơn một hoạt động.

Đây là phụ thuộc đa trị vì CourseDiscipline của sinh viên độc lập với Activities, nhưng phụ thuộc vào sinh viên.

Do đó, phụ thuộc đa trị:

StudentName →→ CourseDiscipline
StudentName →→ Activities

Quan hệ trên vi phạm Dạng chuẩn thứ tư (4NF) trong Chuẩn hóa.

Để sửa, chia bảng thành hai bảng riêng biệt và phá vỡ Phụ thuộc đa trị:

<StudentCourse>

StudentName CourseDiscipline
Amit Mathematics
Amit Mathematics
Yuvraj Computers
Akash Literature
Akash Literature
Akash Literature

<StudentActivities>

StudentName Activities
Amit Singing
Amit Dancing
Yuvraj Cricket
Akash Dancing
Akash Cricket
Akash Singing

Điều này phá vỡ phụ thuộc đa trị và bây giờ chúng ta có hai phụ thuộc hàm:

StudentName → CourseDiscipline
StudentName → Activities