$ 10 : Cơ sởdữliệuquan hệ(tiết 3) Ngày soạn ngày tháng năm Ngày giảng, ngày tháng năm Ngời soạn: Nguyễn Thị Nhung A Ngời hớng dẫn: Ngô Thị Tú Quyên I Mục đích yêu cầu - Biết đợc cách xác định khoá chính, biết sự phân biệt sự khác nhau giữa khoá và khoá chính, sự liên kết giữa các bảng. II Chuẩn bị của giáo viên và học sinh - Giáo viên chuẩn bị bảng phụ III Nội dung 1. ổn định lớp(1) - Lớp trởng báo cáo sĩ số Vắng: học sinh(có phép:., không phép ) 2. Kiểm tra bài cũ(15) Câu hỏi: Em hãy định nghĩa khoá? Em hãy xác định khoá của các bảng sau và giải thích vì sao lại lựa chọn nh vậy? Bảng mợn sách Bảng ngời mợn Bảng sách Trả lời: - Trong các thuộc tính của bảng, ta quan tâm đến tập thuộc tính (có thể chỉ gồm một thuộc tính) vừa đủ để phân biệt đợc các bộ, nghĩa là không thể bỏ bớt đợc thuộc tính nào. Tập các thuộc tính nh vậy đợc gọi là khoá của một bảng.(3đ) - Xác định khoá của các bảng o Bảng sách có 2 khoá Khoá 1: gồm 1 thuộc tính là ma so sach Khoá 2: gồm 1 thuộc tính là ten sach Vì ma so sach là thuộc tính đủ để phân biệt các bộ trong bảng. Tơng tự nh vậy ten sach là thuộc tính đủ để phân biệt các bộ trong bảng(1đ) o Bảng ngời mợn có 2 khoá khoá 1: gồm có 1 thuộc tính là stt khoá 2 : gồm có 1 thuộc tính là sothe Vì stt là thuộc tính có thể đủ để phân biệt các bộ, trong bảng. Tơng tự nh vậy thuộc tính sothe cũng đủ để phân biệt các bộ trong bảng. (2đ) o Bảng mợn sách có 1 khoá gồm 3 thuộc tính là sothe, ma so sach, ngay muon. Vì theo quy định một ngày mỗi học sinh không đợc mợn một cuốn sách nhiều lần, nên phải gồm ba thuộc tính trên mới phân biệt đợc các bộ trong bảng.(2đ). 3. Nội dung bài mới Nội dung Hoạt động của giáo viên và học sinh TG * Khoá chính GV: các em hãy quan sát 3 bảng trên có 15 - Trong 1 bảng có thể có nhiều khoá.Trong các khoá của một bảng ngời ta thờng chọn 1 khoá làm khoá chính. Dữliệu của cột khoá chính khi nhập không đợc bỏ trống * Mục đích của xác định khoá chính là: Để đảm bảo sự nhất quándữ liệu, tránh trờng hợp thông tin về một cá thể xuất hiện hơn một lần sau những lần nhập dữliệu * Chú ý: - Mỗi bảng có ít nhất một khoá. Việc xác định khoá phụ thuộc vào quan hệ lôgic của các dữ bảng ngời mợn và bảng sách có 2 khoá, bảng còn lại là đều có 1 khoá. Nh vậy trong 1 bảng có thể có nhiều khoá, ngời ta thờng chọn một khoá làm khoá chính, nhng nếu bảng mà chỉ có 1 khoá thì khoá đó chính là khoá chính. Tại sao chúng ta phải chọn khoá chính, nếu không chọn khoá chính cho bảng thì có hiện tợng gì xảy ra?VD nh khi các em gửi th các em ghi đầy đủ địa chỉ của ngời gửi, và ngời nhận, nếu ta coi địa chỉ của ngời gửi và ngời nhận là các khoá, song nếu ta không ghi 1 trong 2 địa chỉ của ngời nhận hoặc ngời gửi thì điều gì sẽ xảy ra? HS: Chúng ta có thể không ghi địa chỉ của ngời gửi, nhng bắt buộc chúng ta cần phải ghi địa chỉ của ngời nhận. GV: Đúng vậy trong trờng hợp này địa chỉ của ngời nhận chính là khoá chính. Trong một hệ QTCSDL quan hệ, khi nhập dữliệu cho một bảng, dữliệu tại các cột khoá chính không đợc để trống. Vậy mục đích của xác định khoá chính là gì? HS: Đảm bảo sự nhất quándữ liệu, tránh trờng hợp thông tin về một cá thể xuất hiện nhiều hơn một lần sau những cập nhật dữ liệu. - GV: Trong mô hình quan hệ, ràng buộc nh vậy về dữliệu còn đợc gọi là ràng buộc toàn vẹn thực thể ( hay gọi ngắn gọn là ràng buộc khoá). -HS: Lắng nghe GV: Trong các bảng mà cô đa ra cho các liệu chứ không phụ thuộc vào giá trị các dữ liệu. - Nên chọn khoá chính là khoá có it thuộc tính nhất - - Cách tạo khoá chính gồm có 2 bớc: + Chọn trờng làm khoá chính em ở trên có bảng nào không có khoá không? HS: Không có bảng nào là không có khoá GV: Việc xác định khoá ta căn cứ vào yếu tố gì? Có phải là căn cứ vào giá trị của các dữliệu không? HS: Việc xác định khoá ta căn cứ vào tập các thuộc tính vừa đủ để phân biệt các bộ trong bảng, chứ không phải căn cứ vào giá trị của các dữliệu trong bảng( Tức là ta không quan tâm đến việc là dữliệu của thuộc tính mà ta chọn làm khoá là thuộc kiểu dữliệu nào). GV: Các em hãy quan sát lên bảng ngời mợn. Nếu ta giả sử trong một lớp không có 2 học sinh nào có họ tên trùng nhau mà ngày sinh cũng trùng nhau, thì ta có thể chọn cá thuộc tính ngay sinh, ho ten, lop làm khoá. Nhng khi chọn khoá chính thì ta không nên chọn khoá gồm các thuộc tínhngay sinh, ho ten, lop làm khoá chính, mà ta nên chọn khoá gồm có 1 thuộc tính là SBD làm khoá chính vì cột khoá chính dữliệu không đợc để trống nên khi nhập dữliệu rất khó cho việc đảm bảo sự nhất quándữ liệu, vì vậy mà ta nên chọn khoá chính là khoá gồm có ít thuộc tính. GV: Yêu cầu học sinh nhắc lại cách tạo khoá chính đã đợc học ở chơng 2 HS: Gồm có 2 bớc: + Chọn trờng làm khoá chính 12 + Nháy nút hoặc chọn lệnh Edit-> Primary Key * Liên kết - Thực chất của sự liên kết giữa các bảng đợc xác lập dựa trên thuộc tính khoá. + Nháy nút hoặc chọn lệnh Edit-> Primary Key GV: Chúng ta thấy rằng các bảng trên không có bảng nào chứa đầy đủ thông tin về tên sách, mã sách, tên ngời mợn, ngày mợn, nhà xuất bảnVậy theo các em để biết đầy đủ thông tin nh vậy thì ta cần làm gì? HS: Ta cần liên kết các bảng lại với nhau GV: Yêu cầu học sinh nhắc lại cách tạo liên kết giữa các bảng đã đợc học ở ch- ơng 2? HS: Nhắc lại gồm có 8 bớc($ 7 chơng II- liên kết giữa các bảng). GV: Chúng ta đã biết cách tạo liên kết giữa các bảng ở chơng II. Khi liên kết đ- ợc giữa các bảng thì các bảng cần phải có thuộc tính chung hay không? HS: Giữa các bảng cần phải có thuộc tính chung? GV: Thuộc tính chung của các bảng có phải là các thuộc tính khóa của bảng không? HS: Các thuộc tính chung của các bảng là các thuộc tính khoá của các bảng. GV: => Nh vậy thực chất của sự liên kết giữa các bảng đợc xác lập dựa trên thuộc tính khoá. GV: Dựa vào 3 bảng đã có ở trên cùng học sinh liên kết giữa các bảng lại với nhau, và giải thích rõ cho học sinh mục đích của sự liên kết đó? - Sự liên kết giữa các bảng tạo thành một CSDL quan hệ đơn giản, đợc lu trữ ở bộ nhớ ngoài phục vụ cho việc quản lý dữliệu dễ dàng và chính xác thuận tiện. HS: Quan sát và lắng nghe giáo viên tạo sự liên kết giữa các bảng. GV: Sau khi liên kết giữa các bảng chúng ta có đợc sơ đồ liên kết nh sau IV.Củng cố(1) - Trong một bảng có nhiều khoá, ta thờng chọn một khoá làm khoá chính, cột khoá chính không đợc bỏ trống khi nhập dữ liệu.Nên chọn khoá chính là khoá gồm ít thuộc tính nhất. Việc xác định khoá phụ thuộc vào quan hệ logic của các dữliệu chứ không phụ thuộc vào giá trị các dữ liệu. - Thực chất của việc xác định thuộc tính khoá là để tạo sự liên kết giữa các bảng trong một CSDL quan hệ. Việc tạo liên kết giữa chúng nh vậy tạo thành CSDL đơn giản hơn, phục vụ cho việc quản lý dữ liệu, thuận tiện và chính xác. V. Bài tập về nhà(1) - Học thuộc bài cũ, làm các bài tập 3.14, 3.15, 3.16 trong sách bài tập và làm bài 1,2,3 bài thực hành 10. Nhận xét của giáo viên hớng dẫn . $ 10 : Cơ sở dữ liệu quan hệ(tiết 3) Ngày so n ngày tháng năm Ngày giảng, ngày tháng năm Ngời so n: Nguyễn Thị Nhung A Ngời hớng dẫn: Ngô Thị Tú Quyên I. trên mới phân biệt đợc các bộ trong bảng.(2đ). 3. Nội dung bài mới Nội dung Hoạt động của giáo viên và học sinh TG * Khoá chính GV: các em hãy quan sát 3 bảng trên có 15 - Trong 1 bảng có thể có. thuộc tính là stt khoá 2 : gồm có 1 thuộc tính là sothe Vì stt là thuộc tính có thể đủ để phân biệt các bộ, trong bảng. Tơng tự nh vậy thuộc tính sothe cũng đủ để phân biệt các bộ trong bảng.