Tạo các bảng trong Access (Bài trước)
Các Query trong Access
Tìm hiểu các liên kết (relationship) giữa các bảng cách tạo các liên kết trong MS Access
Khái niệm về các liên kiết trong MS Access, thực hành tạo cập nhật các liên kết, những kiểu kết nối join type trong Access
Khái niệm về quan hệ (liên hệ – relationship) trong Access
Nhằm đảm bảo CSDL không phát sinh ra những dữ liệu rác,
những dữ liệu trùng lặp (tính toàn vẹn dữ liệu),
thì Database thường tạo ra nhiều bảng
dữ liệu – chia thông tin ra nhiều bảng
– mỗi bảng này hướng quản lý một loại thông tin nào đó.
Sau đó những bảng này kết hợp lại với nhau để có thông tin đầy đủ
về đối tượng nào đó.
Để làm điều này, bạn sẽ thiết lập những trường dữ liệu chung
của các bảng từ đó hình thành mối liên hệ giữa các bảng.
Phần này tìm hiểu về các mỗi liên hệ (relationship)
giữa các bảng và cách sử dụng chúng trong CSDL
Khi tạo được mối liên hệ giữa các bảng thì bạn có thể tạo ra các truy
vấn, các biểu mẫu và báo cáo hiện thị thông tin các nhiều bảng một lúc.
File CSDL ví dụ:
Download
Các kiểu liên hệ giữa các bảng Access
Quan hệ một nhiều 1 - n
1 - nhiều – một dòng (record) của bảng mộtliên kết với nhiều dòng của
bảng nhiều. Nói ngược lại thìnhiều dòng của
bảng nhiều liên kết với một dòng ở bảng một Ví dụ bảng DanhMuc, mỗi dòng là một danh mục sản phẩm
(đồ nội thất, đồ điện tử …) liên kết với nhiều
dòng (nhiều sản phẩm) ở bảng Sanpham
Quan hệ 1 - n được hình thành bằng cách tạo liên
hệ giữa khóa chính (Primary key) và khóa ngoại (Foreign key)

Quan hệ nhiều – nhiều n - n
Hãy xem quan hệ giữa hai bảng Sanpham
và bảng DonHang. Một sản phẩm có thể nằm trong nhiều
đơn hàng, ngược lại một đơn hàng có thể có nhiều sản phẩm.
Từ đó hai bảng này hình thành mối quan hệ nhiều nhiều.
Mối liên hệ này được hình thành qua hai khóa ngoại của
DonHangChiTiet là có DonHangID
và SanphamID
Quan hệ n - n được hình thành do mỗi quan hệ
giữa hai khóa ngoại (Foreign key)

Một loại sản phẩm có nhiều đơn hàng

Một đơn hàng có nhiều sản phẩm

Quan hệ một – một 1 - 1
1 - 1 là 1 dòng (record) của bảng nàyliên kết với 1 dòng (record) duy nhất của bảng khác.
Hãy xem mối quan hệ giữa bảng Sanpham và bảng
HuongDan. Mỗi sản phẩm (record) có thể có một hướng dẫn
sử dụng sản phẩm đó.
Quan hệ 1 - 1 hình thành do mối liên hệ giữa hai
khóa chính của hai bảng

Tạo ra các liên hệ trong Access
Khi tạo mối quan hệ, trước tiên hãy đóng các bảng nếu nó đang mở. Từ menu Ribbon,
chọn mục Database Tools, tiếp theo chọn
Relationships để mở cửa sổ soạn thảo các liên hệ:

Nếu là lần đầu vào thiết lập quan hệ, nó xuất hiện hộp thoại
Show Table, tại đây chọn các bảng rồi bấm vào Add
để đưa chúng vào cửa sổ soạn thảo liện hệ.
Bất cứ lúc nào đều có thể bật lại cửa sổ này bằng
cách bấm phải chuột chọn Show Table
Các bảng xuất hiện, hãy kéo – thả để sắp xếp sao cho dễ quan sát trong
cửa sổ. Cố gắng sắp xếp theo mối quan hệ bảng cha / bảng con theo
vị trí trái / phải. Ví dụ, như hình dưới:


Để bắt đầu tạo ra mối liên hệ, ví dụ tạo liên hệ bảng DanhMuc (bảng trái) và bảng Sanpham (bảng phải),
bấm vào tên khóa chính của DanhMuc
(DanhMucID), kéo thả vào tên khóa ngoại DanhMucID của bảng Sanpham, lập tức
xuất hiện hộp thoại Edit Relationships (soạn
thảo liên hệ). Xem lại các thông tin như bảng trái, bảng phải, các
khóa liên hệ chính xác chưa rồi bấm vào Create
để tạo mối liên hệ.
Trong bảng này cũng lưu ý các tùy chọn:
- Enforce Reference Integrity: Đảm bảo tính
toàn vẹn dữ liệu. Trường trong bảng trái bắt buộc phải có thì
bảng phải có. Ví dụ nếu một sản phẩm có DanhMucID là 10, thì trong
bảng DanhMuc phải có record với DanhMucID là 10. - Cascade Update Related Fields: khi bảng
trái (cha) thay đổi giá trị khóa chính – bảng phải cập nhật theo. - Cascade Delete Related Records –
record bảng trái bị xóa, các record bảng phải có liên hệ bị xóa theo
Nếu muốn mở lại cửa sổ Edit Relationships
nháy đúp chuột vào đừng biểu diễn liên kết. Hoặc nhấn phải chuột
vào đường biểu diễn liên kết rồi chọn
Edit Relationships
Nếu muốn xóa một liên hệ, nhấn phải chuột vào liên hệ, rồi
chọn Delete
Kiểu kết nối
Trong liên hệ giữa hai bảng, có ba kiểu khớp nối dữ liệu. Để điều chỉnh
nó vào cửa sổ Edit Relationships bấm vào Join Type. Tại đây có thể chọn một trong ba kiểu

-
Only include rows where the joined field from both tables are equal
Đây gọi là liên kết nội, mặc định và phổ biến. Kết quả truy vấn theo
liên hệ trả về dữ liệu mà trường liên kết tồn tại trong cả hai bảng.Ví dụ, Query lấy
SanphamvàHuongDan:
thì là liên kết nội, nên chỉ những sản phẩm nào cốHuongDan
mới được trả về từ truy vấn
-
Include all records from “bảng bên trái” and only those records from “bảng bên phải” where the joined fields are equal
Toàn bộ bảng trái, kể cả trường liên kết ở bảng phải không có

-
Include all records from “bảng bên phải” and only those records from “bảng bên trái” where the joined fields are equal
Toàn bộ bảng phải, kể cả bảng trái không có
Tạo các bảng trong Access (Bài trước)
Các Query trong Access