Sức mạnh của khóa ngoại trong cơ sở dữ liệu quan hệ

Chìa khóa nước ngoài mở ra cánh cửa cho toàn bộ thế giới dữ liệu

Các nhà thiết kế cơ sở dữ liệu sử dụng rộng rãi các khóa khi phát triển cơ sở dữ liệu quan hệ. Trong số các khóa phổ biến nhất là các khóa chính và khóa ngoài. Khóa ngoài của cơ sở dữ liệu là một trường trong bảng quan hệ khớp với cột khóa chính của bảng khác. Để hiểu cách một khóa ngoại hoạt động, chúng ta hãy xem xét kỹ hơn ý tưởng về một cơ sở dữ liệu quan hệ.

Một số khái niệm cơ bản về cơ sở dữ liệu quan hệ

Trong một cơ sở dữ liệu quan hệ, dữ liệu được lưu trữ trong các bảng chứa hàng và cột, giúp dễ dàng tìm kiếm và thao tác. Có một số toán học nghiêm trọng đằng sau khái niệm cơ sở dữ liệu quan hệ (đại số quan hệ, được đề xuất bởi EF

Codd tại IBM vào năm 1970), nhưng đó không phải là chủ đề của bài viết này.

Đối với mục đích thực tế (và phi toán học), một cơ sở dữ liệu quan hệ lưu trữ dữ liệu "liên quan" trong các hàng và cột. Hơn nữa — và đây là nơi nó trở nên thú vị - hầu hết các cơ sở dữ liệu được thiết kế sao cho dữ liệu trong một bảng có thể truy cập dữ liệu trong một bảng khác. Khả năng tạo mối quan hệ giữa các bảng là sức mạnh thực sự của một cơ sở dữ liệu quan hệ.

Sử dụng khóa ngoại

Hầu hết các bảng, đặc biệt là các bảng trong cơ sở dữ liệu lớn, phức tạp, có các khóa chính. Các bảng được thiết kế để truy cập các bảng khác cũng phải có khóa ngoài.

Để sử dụng cơ sở dữ liệu Northwinds thường được trích dẫn, đây là một đoạn trích từ bảng Product:

Bảng trích dẫn bảng sản phẩm của cơ sở dữ liệu Northwind
ID sản phẩm Tên sản phẩm Thể loại ID QuantityPerU UnitPrice
1 Chai 1 10 hộp x 20 túi 18,00
2 Chang 1 24 - 12 oz chai 19,00
3 Xi-rô Aniseed 2 12 - 550 ml chai 10.00
4 Gia vị Cajun của đầu bếp Anton 2 Bình 48 - 6 oz 22,00
5 Hỗn hợp Gumbo của Đầu bếp Anton 2 36 hộp 21,35
6 Sự lây lan Boysenberry của bà 2 12 - 8 oz lọ 25,00
7 Lê khô hữu cơ của Bác Bob 7 12 - 1 lb pkg. 30,00

Cột ProductID là khóa chính của bảng này. Nó gán một ID duy nhất cho mỗi sản phẩm.

Bảng này cũng chứa cột khóa ngoài, CategoryID . Mọi sản phẩm trong bảng Sản phẩm đều liên kết đến một mục trong bảng Danh mục xác định danh mục của sản phẩm đó.

Lưu ý trích đoạn này từ bảng Danh mục của cơ sở dữ liệu:

Danh mục bảng cơ sở dữ liệu Northwind của Table Excerpt
Thể loại ID Tên danh mục Sự miêu tả
1 Đồ uống Nước giải khát, cà phê, trà, bia và bia
2 Gia vị Nước sốt ngọt và mặn, gia vị, lan truyền và gia vị
3 Nhiễm trùng Món tráng miệng, bánh kẹo và bánh ngọt
5 Sản phẩm từ sữa Pho mát

Cột CategoryID là khóa chính của cột này. (Nó không có khóa ngoài vì nó không cần truy cập vào một bảng khác.) Mỗi ​​khoá ngoài trong bảng Product sẽ liên kết đến khóa chính trong bảng Categories. Ví dụ, sản phẩm Chai được chỉ định một danh mục "Đồ uống", trong khi Aniseed Syrup nằm trong danh mục Gia vị.

Kiểu liên kết này tạo ra vô số cách để sử dụng và tái sử dụng dữ liệu trong cơ sở dữ liệu quan hệ.