Phụ thuộc cơ sở dữ liệu là gì?

Các phụ thuộc cơ sở dữ liệu là một chủ đề thường làm lẫn lộn cả sinh viên và các chuyên gia cơ sở dữ liệu. May mắn thay, chúng không phức tạp và tốt nhất có thể được minh họa thông qua việc sử dụng một số ví dụ. Trong bài viết này, chúng tôi kiểm tra các loại phụ thuộc cơ sở dữ liệu chung.

Cơ sở dữ liệu phụ thuộc / phụ thuộc chức năng

Sự phụ thuộc xảy ra trong cơ sở dữ liệu khi thông tin được lưu trữ trong cùng một bảng cơ sở dữ liệu xác định duy nhất các thông tin khác được lưu trữ trong cùng một bảng. Bạn cũng có thể mô tả điều này như là một mối quan hệ mà biết giá trị của một thuộc tính (hoặc một tập các thuộc tính) là đủ để cho bạn biết giá trị của một thuộc tính khác (hoặc tập các thuộc tính) trong cùng một bảng.

Nói rằng có một sự phụ thuộc giữa các thuộc tính trong một bảng cũng giống như nói rằng có một sự phụ thuộc chức năng giữa các thuộc tính đó. Nếu có một sự phụ thuộc trong cơ sở dữ liệu sao cho thuộc tính B phụ thuộc vào thuộc tính A, bạn sẽ viết điều này là “A -> B”.

Ví dụ, trong bảng liệt kê các đặc điểm của nhân viên bao gồm Số an sinh xã hội (SSN) và tên, có thể nói tên đó phụ thuộc vào SSN (hoặc SSN -> tên) vì tên của nhân viên có thể được xác định duy nhất từ ​​SSN của họ. Tuy nhiên, câu lệnh ngược (tên -> SSN) không đúng bởi vì nhiều hơn một nhân viên có thể có cùng tên nhưng SSN khác nhau.

Phụ thuộc chức năng tầm thường

Một phụ thuộc chức năng tầm thường xảy ra khi bạn mô tả một phụ thuộc chức năng của một thuộc tính trên một tập hợp các thuộc tính bao gồm thuộc tính ban đầu. Ví dụ, "{A, B} -> B" là một phụ thuộc chức năng tầm thường, như là "{name, SSN} -> SSN". Loại phụ thuộc chức năng này được gọi là tầm thường bởi vì nó có thể bắt nguồn từ ý thức chung. Rõ ràng là nếu bạn đã biết giá trị của B, thì giá trị của B có thể được xác định duy nhất bởi kiến ​​thức đó.

Phụ thuộc đầy đủ chức năng

Một sự phụ thuộc đầy đủ chức năng xảy ra khi bạn đã đáp ứng các yêu cầu cho một sự phụ thuộc chức năng và tập các thuộc tính ở phía bên trái của câu lệnh phụ thuộc chức năng không thể giảm thêm nữa. Ví dụ, “{SSN, age} -> name” là một phụ thuộc chức năng, nhưng nó không phải là một phụ thuộc đầy đủ chức năng vì bạn có thể loại bỏ tuổi từ phía bên trái của câu lệnh mà không ảnh hưởng đến mối quan hệ phụ thuộc.

Phụ thuộc Transitive

Phụ thuộc transitive xảy ra khi có một mối quan hệ gián tiếp gây ra một sự phụ thuộc chức năng. Ví dụ, "A -> C" là một phụ thuộc chuyển tiếp khi nó là đúng chỉ vì cả hai "A -> B" và "B -> C" là đúng sự thật.

Phụ thuộc đa giá trị

Các phụ thuộc đa trị xảy ra khi sự hiện diện của một hoặc nhiều hàng trong một bảng ngụ ý sự hiện diện của một hoặc nhiều hàng khác trong cùng một bảng đó. Ví dụ, hãy tưởng tượng một công ty xe hơi sản xuất nhiều mẫu xe, nhưng luôn luôn làm cho cả hai màu đỏ và màu xanh của mỗi mô hình. Nếu bạn có một bảng có chứa tên mẫu, màu sắc và năm của mỗi chiếc xe mà công ty sản xuất, có một sự phụ thuộc đa giá trị trong bảng đó. Nếu có một hàng cho một tên mẫu nhất định và năm có màu xanh lam, thì cũng phải có một hàng tương tự tương ứng với phiên bản màu đỏ của cùng một chiếc xe đó.

Tầm quan trọng của phụ thuộc

Các phụ thuộc cơ sở dữ liệu rất quan trọng để hiểu vì chúng cung cấp các khối xây dựng cơ bản được sử dụng trong việc chuẩn hóa cơ sở dữ liệu . Ví dụ: