Tại sao phải liên kết giữa các bảng

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

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

Quan hệ 1 - nhiều - một dòng [record] của bảng một liê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]

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ệ 1 - 1 là 1 dòng [record] của bảng này liê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

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 Sanpham và 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ải app VietJack. Xem lời giải nhanh hơn!
  • Lý thuyết Tin học 12 bài 7: Liên kết giữa các bảng [hay, chi tiết]

Câu 1: Liên kết giữa các bảng cho phép:

A. Tránh được dư thừa dữ liệu

B. Có thể có được thông tin tổng hợp từ nhiều bảng

C. Nhất quán dữ liệu

D. Cả A, B, C đều đúng

Hiển thị đáp án

Trả lời: Liên kết giữa các bảng cho phép:

+ Có thể có được thông tin tổng hợp từ nhiều bảng

+ Tránh được dư thừa dữ liệu [các dữ liệu không bị lặp lại]

+ Nhất quán dữ liệu [ví dụ của khách hàng ở các đơn hàng khác nhau là giống nhau].

Đáp án: D

Câu 2: Để tạo liên kết giữa các bảng, ta chọn:

A.Tool/ Relationships hoặc nháy nút

B.Tool/ Relationships

C.Edit/ Insert/ Relationships

D.Tất cả đều đúng

Hiển thị đáp án

Trả lời: Các bước để tạo liên kết giữa các bảng là:

+ Chọn Tool\Relationships hoặc nháy nút

+ Chọn các bảng sẽ liên kết

+ Tạo liên kết đôi một giữa các bảng

+ Đóng hộp thoại Realationships/ Yes để lưu lại

Đáp án: A

Câu 3: Sắp xếp các bước theo đúng thứ tự thực hiện để tạo liên kết giữa hai bảng:

1. Kéo thả trường khóa làm liên kết từ bảng phụ tới bảng chính[ trường khóa làm khóa chính]

2. Chọn các tham số liên kết

3. Hiển thị hai bảng [các trường] muốn tạo liên kết

4. Mở cửa sổ Relationships

A. 2→4→1→3     B. 4→1→2      C. 4→2→3→1      D. 3→1→4→2

Hiển thị đáp án

Trả lời: Các bước thực hiện để tạo liên kết giữa hai bảng:

+ Mở cửa sổ Relationships

+ Hiển thị hai bảng [các trường] muốn tạo liên kết

+ Kéo thả trường khóa làm liên kết từ bảng phụ tới bảng chính[ trường khóa làm khóa chính]

+ Chọn các tham số liên kết

Đáp án: B

Câu 4: Trong Access, để tạo liên kết giữa 2 bảng thì hai bảng đó phải có hai trường thỏa mãn điều kiện:

A. Có tên giống nhau

B. Có kiểu dữ liệu giống nhau

C. Có ít nhất một trường là khóa chính

D. Cả A, B, C

Hiển thị đáp án

Trả lời: Trong Access, để tạo liên kết giữa 2 bảng thì hai bảng đó phải có hai trường thỏa mãn điều kiện:

+ Có kiểu dữ liệu giống nhau

+ Có tên giống nhau

+ Có ít nhất một trường là khóa chính

Đáp án:C

Câu 5: Điều kiện cần để tạo được liên kết là:

A. Phải có ít nhất hai bảng

B. Phải có ít nhất một bảng và một mẫu hỏi

C. Phải có ít nhất một bảng mà một biểu mẫu

D. Tổng số bảng và mẫu hỏi ít nhất là 2

Hiển thị đáp án

Trả lời: Điều kiện cần để tạo được liên kết là phải có ít nhất hai bảng và trường liên kết của hai bảng phải cùng kiểu dữ liệu.

Đáp án: A

Câu 6: Điều kiện để tạo mối liên kết giữa hai bảng là :

A. Trường liên kết của hai bảng phải cùng kiểu dữ liệu

B. Trường liên kết của hai bảng phải là chữ hoa

C. Trường liên kết của hai bảng phải là kiểu dữ liệu số

D. Trường liên kết của hai bảng phải khác nhau về kiểu dữ liệu

Hiển thị đáp án

Trả lời: Điều kiện để tạo mối liên kết giữa hai bảng là trường liên kết của hai bảng phải cùng kiểu dữ liệu, có ít nhất 2 bảng.

Đáp án: A

Câu 7: Tại sao khi lập mối quan hệ giữa hai trường của hai bảng nhưng Access lại không chấp nhận

A. Vì bảng chưa nhập dữ liệu

B. Vì một hai bảng này đang sử dụng [mở cửa sổ table]

C. Vì hai trường tham gia vào dây quan hệ khác kiểu dữ liệu[data type], khác chiều dài [field size]

D. Các câu B và C đều đúng

Hiển thị đáp án

Trả lời: khi lập mối quan hệ giữa hai trường của hai bảng nhưng Access lại không chấp nhận vì một hai bảng này đang sử dụng [mở cửa sổ table], vì hai trường tham gia vào dây quan hệ khác kiểu dữ liệu[data type], khác chiều dài [field size].

Đáp án: D

Câu 8: Khi liên kết bị sai, ta có thể sửa lại bằng cách chọn đường liên kết cần sửa, sau đó:

A. Nháy đúp vào đường liên kết  chọn lại trường cần liên kết

B. Edit → RelationShip

C. Tools → RelationShip → Change Field

D. Chọn đường liên kết giữa hai bảng đó và nhấn phím Delete

Hiển thị đáp án

Trả lời: Khi liên kết bị sai, ta có thể sửa lại bằng cách chọn đường liên kết cần sửa, sau đó nháy đúp vào đường liên kết  chọn lại trường cần liên kết trong hộp thoại Edit Relationship.

Đáp án: A

Câu 9: Muốn xóa liên kết giữa hai bảng, trong cửa sổ Relationships ta thực hiện:

A. Chọn hai bảng và nhấn phím Delete

B. Chọn đường liên kết giữa hai bảng đó và nhấn phím Delete

C. Chọn tất cả các bảng và nhấn phím Delete

D. Cả A, B, C đều sai

Hiển thị đáp án

Trả lời: Muốn xóa liên kết giữa hai bảng, trong cửa sổ Relationships ta thực hiện nháy vào đường liên kết giữa hai bảng đó và nhấn phím Delete hoặc Click phải chuột, chọn Delete → Yes.

Đáp án:B

Câu 10: Để xóa liên kết, trước tiên ta chọn liên kết cần xóa. Thao tác tiếp theo nào sau đây là sai?

A. Bấm Phím Delete → Yes

B. Click phải chuột, chọn Delete  Yes

C. Edit → Delete → Yes

D. Tools → RelationShip → Delete → Yes

Hiển thị đáp án

Trả lời: Để xóa liên kết, trước tiên ta chọn liên kết cần xóa. Thao tác tiếp theo là:

+ Click phải chuột, chọn Delete → Yes

+ Bấm Phím Delete → Yes

+ Edit → Delete → Yes.

Đáp án: D

Xem thêm các bài Lý thuyết và câu hỏi trắc nghiệm Tin học lớp 12 có đáp án hay khác:

Giới thiệu kênh Youtube VietJack

bai-tap-va-thuc-hanh-5-lien-ket-giua-cac-bang.jsp

  • Tải app VietJack. Xem lời giải nhanh hơn!

Để học tốt Tin học lớp 12, nội dung bài học là trả lời câu hỏi, giải bài tập Tin học 12 Bài 7: Liên kết giữa các bảng hay nhất, ngắn gọn. Bên cạnh đó là tóm tắt lý thuyết ngắn gọn và bộ câu hỏi trắc nghiệm Tin 12 Bài 7 có đáp án.

1. Khái niệm

• Trong CSDL, các bảng thường có liên quan đến nhau. Liên kết được tạo giữa các bảng cho phép tổng hợp dữ liệu từ nhiều bảng

• Có hai cách lập CSDL:

   + Cách 1: Lập CSDL gồm một bảng duy nhất chứa tất cả các thông tin cần thiết

   + Cách 2: Lập CSDL thành các bảng với các cấu trúc tương ứng.

Lưu ý: cách thứ nhất có những nhược điểm sau:

   + Dư thừa dữ liệu

   + Không đảm bảo sự nhất quán

2. Kỹ thuật tạo liên kết giữa các bảng

• Ta có thể chỉ ra mối liên kết giữa các bảng với nhau nhằm để Access biết phải kết nối các bảng như thế nào khi kết xuất thông tin.

• Các mối liên kết được thể hiện trong cửa sổ Relationships, các thao tác: xem, tạo, sửa, xoá được thực hiện ở đây.

Database Tools → Relationships

Ví dụ: cho CSDL như trong 3 bảng dưới đây:

KHACH_HANG

• 1. Mở Database Tools → Relationships

• 2. Chọn các bảng: HOA_DON, MAT_HANG, KHACH_HANG rồi nhấn Add.

• 3. Thiết lập mối liên kết giữa các bảng

Kéo thả trường Ma_khach_hang trong bang KHACH_HANG qua trường Ma_khach_hang của bảng HOA_DON

• 4. Trong hộp thoại Edit Relationships, nháy Create.

• 5. Tương tự ta thiết lập các bảng còn lại, kết quả:

   + Kéo trường liên kết ở bảng khách hàng và thả vào trường tương ứng ở bảng hoá đơn.

   + Tương tự thiết lập liên kết bảng hóa đơn và bảng mặt hàng.

• 6. Nháy nút để đóng cửa sổ Relationships. Nháy Yes để lưu lại liên kết.

Xem thêm các bài giải bài tập Tin học lớp 12 hay, chi tiết khác:

Giới thiệu kênh Youtube VietJack

Video liên quan

Video liên quan

Chủ Đề