$ 10 : Cơ sở dữ liệu quan hệtiết 3Ngà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
Trang 1$ 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 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
Trang 2Bả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’
Trang 3- 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án dữ
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án dữ 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
Trang 4liệ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ính’ngay 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án dữ 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’
Trang 5+ 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ản…Vậ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 đó?
Trang 6- 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
Trang 7vậ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
Trang 8