Tin học 12 Bài tập và thực hành 10: Hệ cơ sở dữ liệu quan hệ

Hiểu rõ về lý thuyết Mục đích và yêu cầu Biết cách chọn khóa cho các bảng dữ liệu trong một bài toán quen thuộc. Biết cách xác lập liên kết giữa các bảng thông...

Hiểu rõ về lý thuyết

Mục đích và yêu cầu

  • Biết cách chọn khóa cho các bảng dữ liệu trong một bài toán quen thuộc.
  • Biết cách xác lập liên kết giữa các bảng thông qua khóa để có thể tìm được những thông tin liên quan đến một cá thể được quản lý.

Nội dung

Sở giáo dục của một tỉnh tổ chức một kỳ thi để kiểm tra chất lượng môn Toán cho các lớp 12 của tỉnh. Trong cơ sở dữ liệu quản lý kỳ kiểm tra này có ba bảng với cấu trúc được cho như trong cơ sở dữ liệu mẫu dưới đây:

Bảng 1. Bảng THÍ SINH

Bảng 2. Bảng ĐÁNH PHÁCH

Bảng 3. Bảng ĐIỂM THI

Bảng THÍ SINH được niêm yết cho tất cả các thí sinh biết. Bảng ĐÁNH PHÁCH chỉ có người đánh phách là Chủ tịch Hội đồng thi giữ. Bảng ĐIỂM THI có các giáo viên trong Hội đồng chấm thi biết. Có thể liên kết ba bảng trên để có được bảng kết quả kỳ thi dưới đây:

Bảng 4. Bảng KẾT QUẢ THI

Hoạt động 1: Hãy chọn khóa cho mỗi bảng trong cơ sở dữ liệu trên và giải thích lý do lựa chọn đó.

Hướng dẫn giải:

  • Bảng THÍ SINH: SBD (Số báo danh) làm khóa chính. Vì SBD của các thí sinh yêu cầu phải khác nhau.
  • Bảng ĐÁNH PHÁCH: SBD hoặc Phach đều thỏa mãn có thể làm khóa chính. Vì một SBD chỉ cho đúng một phách, một phách cũng chỉ đánh đúng cho một số báo danh.
  • Bảng ĐIỂM THI: Phách là khóa chính. Điểm có thể xuất hiện nhiều lần trong bảng. Tuy nhiên, mỗi phách chỉ tương ứng với một điểm (không thể có trường hợp một bài có hai điểm).

Hoạt động 2: Hãy chỉ ra các mối liên kết cần thiết giữa ba bảng để có được kết quả thi thông báo cho thí sinh.

Hướng dẫn giải:

  • Bảng THÍ SINH liên kết với bảng ĐÁNH PHÁCH qua trường SBD.
  • Bảng ĐÁNH PHÁCH liên kết với bảng ĐIỂM THI qua trường phách.
  • Bảng THÍ SINH liên kết với bảng ĐIỂM THI thông qua bảng ĐÁNH PHÁCH.
  • Liên kết giữa THÍ SINH và ĐÁNH PHÁCH là liên kết 1-1.
  • Liên kết giữa ĐÁNH PHÁCH và ĐIỂM THI là liên kết 1-1.
  • Để thông báo kết quả thi, ta sử dụng trường STT, SBD, Họ tên thí sinh, Ngày sinh, Trường của bảng THÍ SINH, trường phách của bảng ĐÁNH PHÁCH, trường điểm thi của bảng ĐIỂM THI.

Hoạt động 3: Hãy dùng hệ quản trị CSDL Access để làm các việc sau: a) Tạo lập cơ sở dữ liệu nói trên: gồm ba bảng (mỗi bảng với khóa đã chọn), thiết đặt các mối liên kết cần thiết, đưa dữ liệu giả định (khoảng trên 10 thí sinh). b) Đưa ra kết quả thi để thông báo cho thí sinh. c) Đưa ra kết quả thi theo trường. d) Đưa ra kết quả thi của toàn tỉnh theo thứ tự giảm dần của điểm thi.

Hướng dẫn giải: a) Tạo lập cơ sở dữ liệu nói trên:

  • Tạo bảng THÍ SINH: Bảng THÍ SINH

  • Tạo bảng ĐÁNH PHÁCH: Bảng ĐÁNH PHÁCH

  • Tạo bảng ĐIỂM THI: Bảng ĐIỂM THI

  • Thiết lập liên kết: Nhấn Database Tools chọn Relationships. Liên kết

  • Chọn bảng để tạo mối quan hệ: Chọn bảng

  • Nhập liệu: Nhập liệu

b) Đưa ra kết quả thi và thông báo cho thí sinh.

  • Chọn Create rồi nhấn Query Design: Query Design

  • Lần lượt chọn các bảng THÍ SINH, ĐÁNH PHÁCH, ĐIỂM THI: Chọn bảng cho query

  • Điền vào các điều kiện như hình dưới đây: Điều kiện query

  • Nhấn Run để thực thi Query: Thực thi query

  • Kết quả: Kết quả

c) Đưa ra kết quả thi theo trường.

  • Dựa vào kết quả của Query vừa chạy ta sẽ xuất ra báo cáo. Báo cáo

  • Nhấn vào Create chọn Report Wizard. Report Wizard

  • Nhấn dấu >> để đưa toàn bộ các trường vào báo cáo. Các trường báo cáo

  • Nhấn Next -> Next. Sau đó sẽ xuất hiện bảng để ta chọn thuộc tính gộp nhóm. Ở đây ta sẽ chọn trường trương rồi nhấn mũi tên >. Gộp nhóm

  • Nhấn Finish để kết thúc quá trình tạo báo cáo. Kết thúc tạo báo cáo

  • Trường Ngày sinh bị hiện lên dấu ##### do độ dài trường không đủ để hiển thị. Để có thể hiển thị chính xác ta có thể chỉnh lại báo cáo trong Design View. Chỉnh sửa báo cáo

  • Di chuột vào trường Ngày sinh và tiến hành kéo sang phải: Kéo trường

  • Trở lại Report View. Report View

d) Đưa ra kết quả thi của toàn tỉnh theo thứ tự giảm dần của điểm thi.

  • Dựa vào kết quả của Query đưa ra điểm thi của toàn tỉnh. Kết quả toàn tỉnh

  • Để sắp xếp theo thứ tự giảm dần của điểm thi, ta nhấn vào trường điểm thi rồi ấn nút sắp xếp Z -> A. Sắp xếp kết quả

  • Kết quả: Kết quả sắp xếp

Luyện tập

Câu 1: Hai bảng trong một CSDL quan hệ liên kết với nhau thông qua: A. Địa chỉ của các bảng B. Thuộc tính khóa C. Tên trường D. Thuộc tính của các trường được chọn (không nhất thiết phải là khóa)

Câu 2: Giả sử một bảng có 2 trường SOBH (số bảo hiểm) và HOTEN (họ tên) thì nên chọn trường SOBH làm khóa chính hơn vì: A. Trường SOBH là duy nhất, trong khi đó trường HOTEN không phải là duy nhất B. Trường SOBH là kiểu số, trong khi đó trường HOTEN không phải là kiểu số C. Trường SOBH đứng trước trường HOTEN D. Trường SOBH là trường ngắn hơn

Câu 3: Danh sách của mỗi phòng thi gồm có các trường: STT, Họ tên học sinh, Số báo danh, phòng thi. Ta chọn khóa chính là: A. STT B. Số báo danh C. Phòng thi D. Họ tên học sinh

Câu 4: Giả sử một bảng có 2 trường SOBH (số bảo hiểm) và HOTEN (họ tên) thì nên chọn trường SOBH làm khóa chính hơn vì: A. Trường SOBH là duy nhất, trong khi đó trường HOTEN không phải là duy nhất B. Trường SOBH là kiểu số, trong khi đó trường HOTEN không phải là kiểu số C. Trường SOBH đứng trước trường HOTEN D. Trường SOBH là trường ngắn hơn

Câu 5: Trong bảng sau đây, mỗi học sinh chỉ có một mã số (Mahs): Bảng học sinh

Khoá chính của bảng là: A. Khoá chính = {Mahs} B. Khoá chính = {HoTen, Ngaysinh, Lop, Diachi, Toan} C. Khoá chính = {HoTen, Ngaysinh, Lop, Diachi, Li} D. Khoá chính = {HoTen, Ngaysinh, Lop, Diachi}

Kết luận

Qua bài học này, chúng ta cần đạt được những yêu cầu sau:

  • Nắm vững các thao tác tạo bảng, chọn khóa chính.
  • Biết cách xác lập liên kết giữa các bảng thông qua khóa để có thể tìm được những thông tin liên quan đến một cá thể được quản lý.
1