CÁC MỐI QUAN HỆ TRONG CƠ SỞ DỮ LIỆU

Share:

Một trong các mục tiêu của việc thiết kế cơ sở dữ liệu tốt là phải loại bỏ được dữ liệu thừa (dữ liệu trùng lặp). Để đạt được mục tiêu này, bạn hãy chia dữ liệu thành nhiều bảng theo chủ đề để mỗi sự kiện chỉ được thể hiện một lần. Sau đó bạn cung cấp cách thức để Access tổng hợp các thông tin đã phân tách lại với nhau — bạn thực hiện thao tác này bằng cách đặt các trường phổ biến vào vào các bảng liên quan. Tuy vậy, để thực hiện đúng bước này, bạn phải hiểu các mối quan hệ giữa các bảng, rồi sau đó xác định các mối quan tiền hệ này vào cơ sở dữ liệu của bạn.

Bạn đang đọc: Các mối quan hệ trong cơ sở dữ liệu

Trong bài viết này

Giới thiệu

Các kiểu quan hệ bảng

Tại sao phải tạo mối quan hệ nam nữ bảng?

Hiểu tính toàn diện tham chiếu

Xem mối quan hệ bảng

Giới thiệu

Sau lúc bạn đã tạo dứt một bảng đến từng chủ đề trong cơ sở dữ liệu của bạn, bạn phải giới thiệu cách để Access tổng hợp các thông tin đó lại lúc cần thiết. Bạn thực hiện điều này bằng cách đặt các trường thông thường vào các có tương quan và bằng cách xác định các mối quan liêu hệ giữa các bảng. Sau đó bạn có thể tạo các tầm nã vấn, biểu mẫu và báo cáo sẽ cùng hiển thị tin tức từ một số bảng. Ví dụ: biểu mẫu hiện ở trên đây bao gồm các tin tức được lấy từ một vài bảng:

*

1. Các tin tức trong biểu mẫu này được lấy từ bảng Khách hàng...

2. ...bảng Đơn hàng...

3. ...bảng Sản phẩm...

4. ...và bảng bỏ ra tiết Đơn hàng.

Tên khách hàng trong hộpGửi hóa đối kháng đếnđược tróc nã xuất từ bảng Khách hàng, ID Đơn hàng và các giá trị Ngày Đơn hàng được lấy từ bảng Đơn hàng, thương hiệu Sản phẩm được lấy từ bảng Sản phẩm và các giá trị Giá Đơn vị và Số lượng được lấy từ bảng bỏ ra tiết Đơn hàng. Các bảng này được nối kết với nhau theo nhiều cách để thu thập các thông tin từ mỗi bảng vào vào biểu mẫu.

Trong ví dụ trước, các trường trong các bảng phải được phối hợp để thể hiện các thông tin về cùng một 1-1 hàng. Thực hiện việc phối hợp này bằng cách dùng các mối quan liêu hệ bảng. Mối quan tiền hệ bảng hoạt động bằng cách khớp dữ liệu vào các trường khóa— thường là một trường có cùng tên trong cả nhị bảng. Trong hầu hết các trường hợp, các trường khớp này đều làkhóa chính - primary keytừ một bảng, bảng này sẽ cung cấp một mã định danh duy nhất cho từng bản ghi vàkhóa ngoại- foreign keytrong bảng khác. Ví dụ: nhân viên cấp dưới có thể được kết hợp với các đối chọi hàng mà họ chịu trách nhiệm qua việc tạo ra một mối quan lại hệ bảng giữa các trường IDNhân viên vào các bảng nhân viên và Đơn hàng.

*

1. IDNhân viên xuất hiện ở cả nhị bảng— ở dạng khóa chính...

2. ... Và ở dạng khóa ngoại.

Các kiểu dáng quan hệ bảng

Có tía kiểu quan hệ giới tính bảng vào Access.

Mối quan hệ giới tính một - nhiều

Chúng ta hãy dùng cơ sở dữ liệu theo dõi solo hàng chẳng hạn như bao gồm một bảng Khách hàng và một bảng Đơn hàng. Một khách hàng có thể đặt bất kỳ số lượng solo hàng nào. Vì vậy, đối với mọi khách hàng được thể hiện trong bảng Khách hàng, có thể có nhiều đối kháng hàng được thể hiện trong bảng Đơn hàng. Mối quan liêu hệ giữa bảng Khách hàng và bảng Đơn hàng là mối quan tiền hệ một đối nhiều.

Để thể hiện mối quan hệ một-nhiều trong thiết kế cơ sở dữ liệu của bạn, hãy mang khóa bao gồm ở bên "một" của mối quan tiền hệ rồi thêm khóa đó dưới dạng một ngôi trường hay các trường bổ sung vào bảng ở bên "nhiều" của mối quan tiền hệ. Ví dụ như trong trường đúng theo này, các bạn thêm một ngôi trường mới— ngôi trường ID tự bảng Khách_hàng— vào bảng Đơn_hàng, rồi để tên mang lại trường sẽ là ID_khách_hàng. Sau đó, Access rất có thể sử dụng số ID quý khách trong bảng Đơn_hàng để khẳng định khách hàng phù hợp cho từng đơn hàng.

Mối quan hệ tình dục nhiều đối nhiều

Bây giờ chúng ta hãy xem mối quan hệ giữa bảng Sản phẩm và bảng Đơn hàng. Mỗi một đối kháng hàng có thể bao gồm nhiều rộng một sản phẩm. Phương diện khác, mỗi một sản phẩm có thể mở ra trên nhiều 1-1 hàng. Vì vậy, đối với mỗi bản ghi trong bảng Đơn hàng, có thể có nhiều bản ghi vào bảng Sản phẩm. Thêm vào đó, đối với mỗi bản ghi trong bảng Sản phẩm, có thể có nhiều bản ghi trong bảng Đơn hàng. Mối quan hệ này được gọi là mối quan tiền hệ nhiều đối nhiều. Lưu giữ ý là để tìm ra các mối quan lại hệ nhiều đối nhiều đã có sẵn giữa các bảng của bạn, điều quan tiền trọng là bạn hãy cân nặng nhắc cả hai phía của mối quan tiền hệ.

Để thể hiện một mối quan tiền hệ nhiều đối nhiều, bạn phải tạo ra một bảng thứ ba, bảng này sẽ tách mối quan liêu hệ nhiều đối nhiều thành hai mối quan hệ một đối nhiều. Bạn hãy chèn khóa chính từ mỗi bảng trong nhì bảng vào bảng thứ ba. Kết quả là bảng thứ tía sẽ ghi lại từng lần xuất hiện xuất xắc từng phiên bản của mối quan tiền hệ. Ví dụ: bảng Đơn hàng và bảng Sản phẩm có mối quan hệ nhiều đối nhiều vốn được xác định bằng cách tạo ra nhị mối quan hệ một đối nhiều đối với bảng bỏ ra tiết Đơn hàng. Một đối chọi hàng có thể có nhiều sản phẩm và mỗi sản phẩm có thể xuất hiện bên trên nhiều 1-1 hàng.

Mối quan hệ tình dục một đối một

Trong dục tình một đối một, mỗi bản ghi trong bảng thứ nhất có thể chỉ có một bản ghi khớp với bảng thứ hai và mỗi bản ghi vào bảng thứ nhì có thể chỉ có một bản ghi khớp với bản ghi thứ nhất. Mối quan lại hệ là không bình thường, vì phổ biến nhất đó là tin tức có liên quan theo cách này phải được lưu giữ trong cùng một bảng. Bạn có thể dùng quan tiền hệ một đối một để phân chia một bảng có nhiều trường, để tách một phần của bảng bởi vì các lý bởi vì bảo mật hoặc để giữ các thông tin chỉ áp dụng đối với một tập hợp con trong bảng chính. Khi bạn thực sự xác định được một mối quan tiền hệ, thì cả nhì bảng phải có một trường chung.

Tại sao phải tạo mối quan liêu hệ bảng?

Bạn có thể tạo các mối quan hệ bảng một cách rõ ràng bằng cách dùng cửa sổ Relationships hoặc bằng cách kéo một trường từ ngănField List. Access sẽ dùng mối quan tiền hệ bảng để xác định cách nối các bảng khi bạn cần dùng chúng trong một đối tượng cơ sở dữ liệu. Có một số nguyên nhân giải thích tại sao bạn phải tạo các mối quan liêu hệ bảng trước lúc bạn tạo ra các đối tượng cơ sở dữ liệu khác như biểu mẫu, truy vấn và báo cáo.

Mối quan lại hệ bảng truyền dữ liệu cho các thiết kế tróc nã vấn của bạn

Để làm việc với các bản ghi có nhiều bảng, bạn thường phải tạo một truy tìm vấn để nối các bảng. Tầm nã vấn hoạt động bằng cách khớp các giá trị trong trường khóa chính vào bảng đầu với một trường khóa ngoạị ở bảng thứ hai. Ví dụ: để trả về các hàng theo đó sẽ liệt kê tất cả các solo hàng mang đến từng khách hàng, bạn hãy dựng một tầm nã vấn để nối bảng Khách hàng với bảng Đơn hàng dựa vào trường ID Khách hàng. Trong hành lang cửa số Mối quan tiền hệ, bạn có thể xác định trường để nối một cách thủ công. Tuy vậy nếu bạn đã có một mối quan tiền hệ đã xác định giữa các bảng, Access phải cung cấp đường nối mặc định, dựa trên mối quan tiền hệ bảng đã có sẵn. Ngoài ra, nếu bạn dùng một vào số các trình hướng dẫn truy tìm vấn, Access phải dùng thông tin nó thu thập được từ các mối quan liêu hệ bảng bạn đã xác định để cung cấp các lựa chọn tin tức cập nhật đến bạn và để nhập trước thiết đặt thuộc tính cùng với các giá trị mặc định thích hợp.

Mối quan lại hệ bảng truyền dữ liệu mang đến các thiết kế biểu mẫu và báo cáo của bạn

Khi bạn thiết kế một biểu mẫu giỏi một báo cáo, Access dùng tin tức nó thu thập được từ các mối quan lại hệ bảng bạn đã xác định để cung cấp các lựa chọn thông tin cập nhật mang đến bạn và để nhập trước thiết đặt thuộc tính cùng với các giá trị mặc định thích hợp.

Xem thêm: Những Nội Dung Kế Hoạch Kinh Doanh Của Doanh Nghiệp Gồm Mấy Phần

Mối quan liêu hệ bảng là nền tảng theo đó bạn có thể bắt buộc tính toàn diện tham chiếu để giúp ngăn các bản ghi vô định vào cơ sở dữ liệu của bạn. Bản ghi vô định là một bản ghi có tham chiếu tới một bản ghi không tồn tại— ví dụ: một bản ghi solo hàng tham chiếu tới một bản ghi khách hàng ko tồn tại.

Khi bạn thiết kế một cơ sở dữ liệu, bạn hãy chia thông tin thành các bảng, mỗi bảng có một khóa chính. Sau đó bạn thêm các khóa ngoạị vào các bảng tương quan sẽ tham chiếu tới các khóa chính đó. Cặp khóa ngoại-khóa chính này sẽ tạo nền tảng cho các mối quan liêu hệ bảng và các truy vấn vấn đa bảng. Điều quan liêu trọng là các tham chiếu của khóa ngoại-khóa chính này vẫn phải được đồng bộ hóa. Tính toàn diện tham chiếu, phụ thuộc vào các mối quan liêu hệ bảng, sẽ giúp bảo đảm là các tham chiếu tiếp tục được đồng bộ hóa.

Hiểu tính toàn vẹn tham chiếu

Khi bạn thiết kế một cơ sở dữ liệu, bạn hãy chia thông tin cơ sở dữ liệu thành nhiều bảng theo chủ đề để giảm thiểu việc dư thừa dữ liệu. Sau đó bạn hãy giới thiệu cách để Access hợp dữ liệu lại bằng cách đặt các trường thông thường vào các bảng liên quan. Ví dụ: để thể hiện quan liêu hệ một đối nhiều bạn hãy lấy một khóa chính từ bảng "một" và thêm nó ở dạng một trường bổ sung vào bảng "nhiều". Để hợp dữ liệu lại với nhau, Access sẽ lấy giá trị trong bảng "nhiều" và tra cứu giá trị tương ứng vào bảng "một". Bằng cách này các giá trị trong bảng "nhiều" sẽ tham chiếu các giá trị tương ứng trong bảng "một".

Giả sử bạn có quan lại hệ một đối nhiều giữa bảng công ty Vận tải Hàng hải và Đơn hàng và bạn muốn xóa bỏ một công ty Vận tải Hàng hải. Nếu công ty vận tải hàng hải bạn muốn xóa bỏ có các đối chọi hàng trong bảng Đơn hàng, thì các đơn hàng đó sẽ trở thành "mồ côi" lúc bạn xóa bỏ bản ghi của doanh nghiệp Vận tải Hàng hải đó. Các đối kháng hàng vẫn sẽ chứa ID của doanh nghiệp vận tải hàng hải, dẫu vậy ID đó sẽ ko còn hợp lệ, vì bảng ghi nó tham chiếu tới ko còn tồn tại nữa.

Mục đích của tính trọn vẹn tham chiếu là phải chống được các dòng mồ côi và giữ các tham chiếu trong tình trạng đồng bộ hóa để tình huống giả định này không xảy ra.

Bạn triển khai tính trọn vẹn tham chiếu bằng cách kích hoạt tính toàn vẹn trong quan hệ bảng. Khi vẫn bắt buộc tính toàn vẹn tham chiếu, Access đã từ chối bất kể thao tác nào vi phạm luật tính toàn diện tham chiếu so với mối quan hệ tình dục bảng đó. Điều này tức là Access sẽ không đồng ý cả update làm thay đổi đích của tham chiếu lẫn những xóa khỏi nhằm loại trừ đích của tham chiếu. Có thể là bạn có một nhu cầu hoàn toàn hợp lý để cầm cố đổi khóa chính đối với một công ty vận tải hàng hải có các solo hàng vào bảng Đơn hàng. Vào trường thích hợp này, những gì bạn cần là để đến Access auto cập nhật tất cả các hàng bị tác động như là 1 phần của từng thao tác. Bằng cách đó, Access sẽ bảo đảm là cập nhật được kết thúc đầy đầy đủ để các đại lý dữ liệu của người sử dụng không bị rơi vào tình thế trạng thái không độc nhất quán, cùng với một số hàng thì được update và một số thì không. Vì lý vày này Access sẽ hỗ trợ mang lại tùy chọnCascade Update Related Fields. Khi chúng ta bắt buộc tính toàn diện tham chiếu và chọn tùy chọnCascade Update Related Fields và sau đó update một khóa chính, Access sẽ auto cập nhật tất cả các trường tham chiếu khóa chính.

Có thể bạn có một nhu cầu hợp lý để xóa bỏ một hàng cùng tất cả bạn dạng ghi liên quan— ví dụ, một phiên bản ghi công ty Vận tải Hàng hải và toàn bộ các đơn hàng liên quan lại cho công ty vận tải hàng hải đó. Vì tại sao này, Access cung cấp tùy chọnCascade Delete Related Records. Khi bạn buộc tính toàn vẹn tham chiếu và lựa chọn tùy chọnCascade Delete Related Recordsvà kế tiếp xóa bỏ một bản ghi ở phía khóa chủ yếu của mối quan tiền hệ, Access sẽ auto xóa bỏ toàn bộ các bản ghi tham chiếu khóa chính.

Xem quan hệ bảng

Để coi mối quan liêu hệ bảng, hãy bấmRelationshipstrên tabDatabase Tools. Hành lang cửa số Relationships sẽ mở và hiển thị mọi mối quan lại hệ có sẵn. Nếu chưa có mối quan hệ bảng nào được xác định và bạn vẫn mở cửa sổ Mối tình dục lần đầu tiên, Access sẽ nhắc bạn thêm bảng hoặc truy hỏi vấn vào cửa sổ này.

Mở cửa sổ Relationships

BấmFile, rồi bấmOpen.Chọn và mở cơ sở dữ liệu.Trên tabDatabase Tools, vào nhómRelationships, bấmRelationships.Nếu cơ sở dữ liệu có chứa các mối quan tiền hệ, thì hành lang cửa số Mối tình dục sẽ xuất hiện. Nếu cơ sở dữ liệu không chứa bất kỳ mối quan lại hệ nào và bạn sẽ mở hành lang cửa số Mối quan hệ nam nữ lần đầu, thì hộp thoạiShow Tablesẽ xuất hiện. BấmCloseđể đóng hộp thoại.Trên tabDesign, trong nhómRelationships, hãy bấmAll Relationships.Thao tác này sẽ hiển thị tất cả các mối quan hệ đã xác định trong cơ sở dữ liệu của bạn. Xin lưu ý là các bảng ẩn (bảng có vỏ hộp kiểmHiddentrong vỏ hộp thoạiProperties của bảng được chọn) và các mối quan hệ của bọn chúng sẽ không được thể hiện trừ khi bạn lựa chọn hộp kiểmShow Hidden Objectstrong vỏ hộp thoạiNavigation Options.

Một quan hệ tình dục bảng được thể hiện bởi một đường quan lại hệ nối giữa nhị bảng trong cửa sổ Quan hệ. Một mối quan hệ không buộc tính toàn diện tham chiếu sẽ xuất hiện ở dạng một đường mảnh giữa các trường thông thường để hỗ trợ mang lại mối quan tiền hệ. Lúc bạn chọn mối quan hệ bằng cách bấm vào đường quan lại hệ, thì đường này sẽ dày lên để biểu thị là nó được chọn. Nếu như bạn bắt buộc tính toàn vẹn tham chiếu đến mối quan liêu hệ này, thì đường này sẽ hiện dày hơn ở từng đầu. Ngoài ra, số1sẽ xuất hiện trên phần dày của đường ở một phía của mối quan lại hệ và biểu tượng vô cực () sẽ xuất hiện ở phần dày của đường ở phía kia.

Khi cửa sổ Relationships được kích hoạt, bạn có thể chọn các lệnh sau đây:

Trên tabDesign, vào nhómTools:

Edit RelationshipsMở vỏ hộp thoạiEdit Relationships. Lúc bạn chọn một đường quan liêu hệ, bạn có thể bấmEdit Relationshipsđể nắm đổi quan liêu hệ bảng. Chúng ta có thể bấm đúp vào đường quan liêu hệ.Clear Layout Loại bỏ sự hiển thị của tất cả các bảng và mối quan tiền hệ trong cửa sổ Relationships. Giữ ý là lệnh này chỉ ẩn được các bảng và các mối quan hệ— nó không xóa bỏ được chúng.Relationships Report Tạo ra một báo cáo mà sẽ hiển thị các bảng và các mối quan tiền hệ vào cơ sở dữ liệu của bạn. Báo cáo sẽ chỉ hiện các bảng và các quan liêu hệ ko bị ẩn trong cửa sổ Relationships.

Trên tabDesign, vào nhómRelationships:

Show TableMở hộp thoạiShow Tableđể bạn có thể chọn những bảng và các truy vấn để coi trong cửa sổ Relationships.Hide TableẨn các bảng đã chọn trong hành lang cửa số Relationships.All Relationships Hiển thị tất cả các quan hệ và các bảng liên quan đối với bảng đã chọn trong cửa sổ Relationships, nếu như chúng không được hiển thị.All Relationships Hiển thị tất cả các mối quan hệ và bảng tương quan trong cơ sở dữ liệu trong cửa sổ Relationships. Lưu giữ ý là sẽ không còn hiện được những bảng ẩn (các bảng tất cả hộp kiểmHiddenđược chọn ở trong vỏ hộp thoạiProperties của bảng) tương tự như mối quan hệ giới tính của chúng trừ lúc bạn chọn Show Hidden Objects trong hộp thoại Navigation Options.CloseĐóng hành lang cửa số Relationships. Nếu bạn đã thực hiện bất kỳ nạm đổi nào đối với bố trí của cửa sổ Relationships, thì bạn sẽ được yêu cầu là bạn có muốn lưu giữ các cố gắng đổi đó giỏi không.

Bài viết liên quan