Sự phụ thuộc trong DBMS là mối quan hệ giữa hai hoặc nhiều thuộc tính. Nó có các loại sau trong DBMS -
- Sự phụ thuộc vào chức năng
- Phụ thuộc đầy đủ chức năng
- Sự phụ thuộc bắc cầu
- Sự phụ thuộc nhiều giá trị
- Phụ thuộc một phần
Chúng ta hãy bắt đầu với Sự phụ thuộc vào chức năng -
Sự phụ thuộc vào chức năng
Nếu thông tin được lưu trữ trong một bảng có thể xác định duy nhất một thông tin khác trong cùng một bảng, thì nó được gọi là Phụ thuộc chức năng. Hãy coi nó như một sự liên kết giữa hai thuộc tính của cùng một mối quan hệ.
Nếu P xác định Q theo chức năng thì
P -> Q |
Hãy để chúng tôi xem một ví dụ -
EmpID | EmpName | EmpAge |
E01 | Amit | 28 |
E02 | Rohit | 31 |
Trong bảng trên, EmpName phụ thuộc về mặt chức năng vào EmpID bởi vì EmpName chỉ có thể nhận một giá trị cho giá trị đã cho của EmpID:
EmpID -> EmpName |
Tương tự được hiển thị bên dưới -
Phụ thuộc đầy đủ chức năng
Một thuộc tính có đầy đủ chức năng phụ thuộc vào một thuộc tính khác, nếu nó Phụ thuộc về mặt chức năng vào thuộc tính đó và không phụ thuộc vào bất kỳ tập hợp con thích hợp nào của nó.
Ví dụ:một thuộc tính Q hoàn toàn phụ thuộc vào chức năng của một thuộc tính P khác, nếu nó phụ thuộc chức năng vào P và không phụ thuộc vào bất kỳ tập con thích hợp nào của P.
Hãy để chúng tôi xem một ví dụ -
ProjectID | Chi phí dự án |
001 | 1000 |
002 | 5000 |
EmpID | ProjectID | Ngày (chi cho dự án) |
E099 | 001 | 320 |
E056 | 002 | 190 |
Các quan hệ trên cho biết:
EmpID, ProjectID, ProjectCost -> Ngày |
Tuy nhiên, nó không hoàn toàn phụ thuộc vào chức năng.
Trong khi tập hợp con {EmpID, ProjectID} có thể dễ dàng xác định {Ngày} nhân viên đã chi cho dự án.
Điều này tóm tắt và đưa ra sự phụ thuộc đầy đủ chức năng của chúng ta -
{EmpID, ProjectID} -> (Ngày) |
Phụ thuộc bắc cầu
Khi một mối quan hệ gián tiếp gây ra sự phụ thuộc chức năng thì nó được gọi là Sự phụ thuộc bắc cầu.
Nếu P -> Q và Q -> R đúng, thì P-> R là một phụ thuộc bắc cầu.
Sự phụ thuộc nhiều giá trị
Khi sự tồn tại của một hoặc nhiều hàng trong bảng ngụ ý một hoặc nhiều hàng khác trong cùng một bảng, thì phụ thuộc Nhiều giá trị xảy ra.
Nếu một bảng có các thuộc tính P, Q và R thì Q và R là các dữ kiện đa giá trị của P.
Nó được biểu thị bằng mũi tên kép -
-> -> |
Ví dụ của chúng tôi:
P -> -> Q Q -> -> R |
Trong trường hợp trên, Phụ thuộc nhiều giá trị chỉ tồn tại nếu Q và R là các thuộc tính độc lập.
Phụ thuộc một phần
Phụ thuộc một phần xảy ra khi thuộc tính không chuẩn phụ thuộc về mặt chức năng vào một phần của khóa ứng viên.
Dạng chuẩn thứ 2 (2NF) loại bỏ sự phụ thuộc từng phần. Hãy để chúng tôi xem một ví dụ -
ID sinh viên | ProjectNo | Tên sinh viên | Tên dự án |
S01 | 199 | Katie | Vị trí Địa lý |
S02 | 120 | Ollie | Khám phá Cụm |
Trong bảng trên, chúng ta có phụ thuộc một phần; hãy để chúng tôi xem làm thế nào -
Các thuộc tính khóa chính là StudentID và ProjectNo.
Như đã nêu, các thuộc tính không phải nguyên tố, tức là Tên sinh viên và ProjectName phải phụ thuộc về mặt chức năng vào một phần của khóa ứng cử viên, là Phụ thuộc một phần.
Tên sinh viên có thể được xác định bởi StudentID điều đó làm cho mối quan hệ Phụ thuộc một phần.
ProjectName có thể được xác định bởi ProjectID , mà mối quan hệ Phụ thuộc một phần.