Thuật ngữ cơ sở dữ liệu quan hệ và quan hệ mô tả cách dữ liệu trong bảng được kết nối. Cơ sở dữ liệu quan hệ bao gồm một loạt hai hoặc nhiều bảng được liên kết bởi một khóa cụ thể. Cơ sở dữ liệu quan hệ khác với cơ sở dữ liệu phi cấu trúc, vốn phổ biến trong các sáng kiến dữ liệu lớn. Cơ sở dữ liệu quan hệ có xu hướng yêu cầu các quy tắc nghiêm ngặt về cách các bảng được xác định và điều gì tạo nên mối quan hệ hợp lệ giữa các bảng.
Các loại Mối quan hệ Cơ sở dữ liệu
Mối quan hệ cho phép bạn mô tả các kết nối giữa các bảng cơ sở dữ liệu theo những cách mạnh mẽ. Các mối quan hệ này sau đó có thể được tận dụng để thực hiện các truy vấn bảng chéo mạnh mẽ, được gọi là JOIN.
Có ba loại mối quan hệ cơ sở dữ liệu, mỗi loại được đặt tên theo số hàng của bảng có liên quan đến mối quan hệ. Mỗi trong số ba kiểu quan hệ này tồn tại giữa hai bảng.
- Mối quan hệ một-mộtxảy ra khi mỗi mục nhập trong bảng đầu tiên chỉ có một đối trong bảng thứ hai. Mối quan hệ một-một hiếm khi được sử dụng vì thường hiệu quả hơn nếu đặt tất cả thông tin vào một bảng duy nhất. Một số nhà thiết kế cơ sở dữ liệu tận dụng mối quan hệ này bằng cách tạo các bảng chứa một tập hợp con dữ liệu từ một bảng khác.
- Mối quan hệ một-nhiềulà kiểu quan hệ cơ sở dữ liệu phổ biến nhất. Chúng xảy ra khi mỗi bản ghi trong Bảng A tương ứng với một hoặc nhiều bản ghi trong Bảng B, nhưng mỗi bản ghi trong Bảng B chỉ tương ứng với một bản ghi trong Bảng A. Ví dụ: mối quan hệ giữa bảng Giáo viên và bảng Học sinh ở trường tiểu học cơ sở dữ liệu có thể là mối quan hệ một-nhiều vì mỗi học sinh chỉ có một giáo viên, nhưng mỗi giáo viên có một số học sinh. Thiết kế một-nhiều này giúp loại bỏ dữ liệu trùng lặp.
- Mối quan hệ nhiều-nhiềuxảy ra khi mỗi bản ghi trong Bảng A tương ứng với một hoặc nhiều bản ghi trong Bảng B và mỗi bản ghi trong Bảng B tương ứng với một hoặc nhiều bản ghi trong Bảng A. Ví dụ: mối quan hệ giữa bảng Giáo viên và bảng Khóa học có thể là nhiều-nhiều vì mỗi giáo viên có thể hướng dẫn nhiều hơn một khóa học và mỗi khóa học có thể có nhiều người hướng dẫn.
Bottom Line
Mối quan hệ tự tham chiếu xảy ra khi chỉ có một bảng tham gia. Một ví dụ phổ biến là bảng Nhân viên chứa thông tin về người giám sát của mỗi nhân viên. Mỗi người giám sát cũng là một nhân viên và có một người giám sát. Trong trường hợp này, có mối quan hệ tự tham chiếu từ một đến nhiều, vì mỗi nhân viên có một người giám sát, nhưng mỗi người giám sát có thể có nhiều hơn một nhân viên.
Tạo Mối Quan Hệ Với Chìa Khóa Nước Ngoài
Bạn tạo mối quan hệ giữa các bảng bằng cách chỉ định khóa ngoại. Khóa này cho cơ sở dữ liệu quan hệ biết các bảng có liên quan như thế nào. Trong nhiều trường hợp, một cột trong Bảng A chứa các khóa chính được tham chiếu từ Bảng B.
Hãy xem xét ví dụ về bảng Giáo viên và Học sinh. Bảng Giáo viên chứa ID, tên và cột khóa học:
Người hướng dẫn | Giáo_viên | Khóa học |
001 | John Doe | Anh |
002 | Jane Schmoe | Toán |
Bảng Sinh viên bao gồm cột ID, tên và khóa ngoại:
StudentID | Sinh viên_Tên | Thầy_FK |
0200 | Lowell Smith | 001 |
0201 | Brian Ngắn | 001 |
0202 | Corky Mendez | 002 |
0203 | Monica Jones | 001 |
Cột Teacher_FKtrong bảng Sinh viên tham chiếu đến giá trị khóa chính của một giảng viên trong bảng Giáo viên. Thông thường, các nhà thiết kế cơ sở dữ liệu sử dụng PK hoặc FK trong tên cột để xác định khóa chính hoặc cột khóa ngoại.
Hai bảng này minh họa mối quan hệ một-nhiều giữa giáo viên và học sinh.
Mối quan hệ và Chính trực tham chiếu
Sau khi thêm khóa ngoại vào bảng, hãy tạo ràng buộc cơ sở dữ liệu để thực thi tính toàn vẹn tham chiếu giữa hai bảng. Bước này đảm bảo rằng mối quan hệ giữa các bảng vẫn nhất quán. Khi một bảng có khóa ngoại đối với bảng khác, tính toàn vẹn tham chiếu yêu cầu mọi giá trị khóa ngoại trong Bảng B phải tham chiếu đến bản ghi hiện có trong Bảng A.
Thực hiện các mối quan hệ
Tùy thuộc vào cơ sở dữ liệu của bạn, bạn sẽ triển khai mối quan hệ giữa các bảng theo những cách khác nhau. Microsoft Access cung cấp một trình hướng dẫn cho phép bạn liên kết các bảng và cũng thực thi tính toàn vẹn của tham chiếu.
Nếu bạn đang viết SQL trực tiếp, trước tiên hãy tạo bảng Giáo viên, khai báo cột ID là khóa chính:
TẠO BẢNG Giáo viên (Người hướng dẫn INT AUTO_INCREMENT PRIMARY KEY, Giáo viên_Tên VARCHAR (100), Khóa học VARCHAR (100));
Khi bạn tạo bảng Học sinh, bạn khai báo cột Giáo viên_FK là khóa ngoại tham chiếu đến cột ID Người hướng dẫn trong bảng Giáo viên:
TẠO BẢNG Sinh viên (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR (100), Teacher_FK INT, NGOẠI KHÓA (Teacher_FK) TÀI LIỆU THAM KHẢO Giáo viên (GuiductorID)));
Sử dụng các mối quan hệ để tham gia các bảng
Sau khi tạo một hoặc nhiều mối quan hệ trong cơ sở dữ liệu của bạn, hãy tận dụng sức mạnh của chúng bằng cách sử dụng truy vấn SQL JOIN để kết hợp thông tin từ nhiều bảng. Kiểu nối phổ biến nhất là SQL INNER JOIN, là một phép nối đơn giản. Kiểu kết hợp này trả về tất cả các bản ghi đáp ứng điều kiện kết hợp từ một hoặc nhiều bảng.
Ví dụ: điều kiện JOIN này trả về Sinh viên_Nên, Giáo viên_Nên và Khóa học, trong đó khóa ngoại trong bảng Sinh viên khớp với khóa chính trong bảng Giáo viên:
CHỌN Học sinh, Học sinh_Tên, Giáo viên, Giáo viên_Tên, Giáo viên. Chuẩn bị
TỪ Học sinh
INNER THAM GIA Giáo viênTRÊN Học sinh. Teacher_FK=Giáo viên. InstructorID;
Câu lệnh này tạo ra một bảng như sau:
Sinh viên_Tên | Giáo_viên | Khóa học |
Lowell Smith | John Doe | Anh |
Brian Ngắn | John Doe | Anh |
Corky Mendez | Jane Schmoe | Toán |
Monica Jones | John Doe | Anh |