1
PHẦN III. MỘT SỐ CHUYÊN ĐỀ BỔ SUNG KIẾN THỨC CHO CÁC VẤN ĐỀ
KHÓ VÀ ĐÁNG QUAN TÂM TRONG CHƯƠNG TRÌNH TIN LỚP 12 –
TRUNG HỌC PHỔ THÔNG.
Mục đích của phần này là đƣa ra một số vấn đề khó và đáng quan tâm qua các
chƣơng của chƣơng trình Tin học lớp 12 THPT. Các vấn đề này đƣợc chúng tôi tham
khảo từ tài liệu Hƣớng dẫn thực hiện chƣơng trình, sách giáo khoa Tin học lớp 12 của
Bộ GDĐT – NXB Giáo dục 2008 ([1]). Qua đó, chúng ta sẽ thảo luận bàn bạc dƣới
góc độ tƣơng tác giữa ngƣời giảng và ngƣời học nhằm làm rõ hơn nữa các khó khăn sẽ
gặp phải khi dạy học Tin học lớp 12 ở THPT. Bên cạnh đó, chúng tôi bổ sung một số
kiến thức mở rộng mà theo chúng tôi là cần thiết cho các vấn đề cần quan tâm nói trên,
hoặc qua kinh nghiệm của chúng tôi thấy rằng ít đƣợc quan tâm trong chƣơng trình đại
học mà ngƣời học đã học trƣớc đây, nhằm giúp các giáo viên dự lớp bồi dƣỡng nâng
cao thêm năng lực trong giảng dạy. Các kiến thức mở rộng đƣợc đƣa thêm trong phần
phụ lục để ngƣời học có thể đọc thêm mà không làm nặng nề buổi học.
Huế, Ngày 20 tháng 11 năm 2008
Nguyễn Thế Dũng
Khoa Tin học – ĐHSP Huế.
0914203620 –
2
Môđun 1: MỘT SỐ NỘI DUNG KHÓ, CẦN QUAN TÂM Ở CHƢƠNG I
I. Mục tiêu
Học viên nắm lại một số vấn đề khó và đáng quan tâm trong chƣơng mà tài liệu
[1] đã đƣa ra. Bên cạnh đó, một số lƣu ý và kiến thức bổ sung để làm rõ thêm các khái
niệm quan trọng trong chƣơng cũng đƣợc đƣa ra.
II. Giới thiệu chung về môđun
Các chủ đề (nội dung chính) của môđun.
- Đƣa ra một số vấn đề khó và cần quan tâm trong chƣơng.
- Một số phần nhỏ của chƣơng cần lƣu ý khi giảng dạy.
- Bổ sung một số kiến thức mở rộng trong chƣơng: Sơ đồ hệ quản trị cơ sở dữ
liệu (QTCSDL), Các bƣớc thiết kế cơ sở dữ liệu (CSDL), qui tắc chuyển từ sơ đồ E/R
(mô hình khái niệm) sang mô hình dữ liệu quan hệ (mô hình logic), vai trò con ngƣời
trong hệ cơ sở dữ liệu, tƣ tƣởng chủ đạo khi dạy một hệ QTCSDL cụ thể nhƣ
Access….
Thời gian để học môđun: 1 buổi (4 tiết).
III. Tài liệu và thiết bị để thực hiện môđun.
- Sách giáo khoa (SGK) và Sách giáo viên (SGV) Tin học lớp 12, tài liệu [1].
- Phụ lục của chƣơng này.
- Máy tính và máy chiếu.
IV. Hoạt động
Hoạt động 1: Nhắc lại và thảo luận về các vấn đề khó, cần quan tâm trong
chương theo tài liệu [1].
Thời gian: 1 tiết.
Dự kiến một số câu hỏi để thảo luận:
+ Cho một số ví dụ để minh họa các khái niệm: các mức thể hiện dữ liệu, hệ
cơ sở dữ liệu, một số chức năng của hệ QTCSDL như kiểm soát điều khiển, an toàn
và toàn vẹn dữ liệu…?
+ Yêu cầu về kỹ năng đối với học sinh khi học xong chương I?
Hoạt động 2: Một số vấn đề cần quan tâm khi dạy học chương này.
Thời gian: 1 tiết.
Tổ chức thảo luận một số vấn đề sau để làm rõ hơn nữa một số kiến thức trong
chƣơng, giúp học viên (HV) nâng cao năng lực giảng dạy.
+ Quản lý là gì? và làm gì?
+ Các bài toán kỹ thuật có cần tổ chức và lưu trữ cơ sở dữ liệu (CSDL) không?
(trang 7 – SGK).
+ Xem xét lại định nghĩa về CSDL ở trang 8 – SGK, có cần thiết đưa cụm từ
“của một tổ chức nào đó” không?
+ Xem xét lại hình vẽ minh họa hệ CSDL ở trang 9 – SGK và vai trò của con
người trong hệ CSDL. Vấn đề này cần được quan tâm, nếu không học sinh sẽ hiểu
sai và không nhận thức được hết vai trò của con người trong hệ CSDL, hơn nữa qua
đây chúng ta chỉ ra được phần nào qui trình của công nghệ phần mềm và định
hướng một số nghề nghiệp của học sinh trong lĩnh vực công nghệ thông tin.
+ Anh chị có suy nghĩ về câu hỏi ở trang 20 – SGK? (câu hỏi không chỉ kiếm tra
chức năng của hệ QTCSDL mà còn định hƣớng học sinh hiểu rõ các chức năng của hệ
QTCSDL gần gũi và cần thiết nhất với vai trò của từng nhóm ngƣời trong hệ CSDL).
3
+ Vai trò của con người trong hệ CSDL – trang 18 – SGK - có cần thiết bổ sung
thêm người phân tích và thiết kế CSDL không?
+ Ở bài tập 3 trang 21 – SGK có cần xem xét nhân viên thủ thư không? và có
lưu ý gì giữa khái niệm “đối tượng cần quản lý” trong bài tập này và khái niệm “cá
thể” “chủ thể” ở trang 27? (điều này sẽ làm học sinh khi học dễ lẫn lộn khái niệm và
khó hiểu).
Hoạt động 3: Giới thiệu một số kiến thức bổ sung và giải thích thêm một khái
niệm khó mà học viên đưa ra.
Thời gian: 2 tiết
+ Trình bày sơ lƣợc một số kiến thức bổ sung để làm rõ hơn một số khái niệm
quan trọng và một số lƣu ý khi giảng dạy.
- Kiến trúc của hệ QTCSDL.
- Sự tương tác của hệ QTCSDL và chương trình ứng dụng (Nhằm
làm rõ hơn trang 18 – SGK).
- Sơ đồ thiết kế CSDL (Làm rõ hơn qui trình thiết kế CSDL với mô
hình phát triển phần mềm - trang 19- SGK).
- Sơ đồ quan hệ thực thể ER và qui tắc chuyển đổi từ sơ đồ ER sang
các lược đồ quan hệ và ý nghĩa của các qui tắc chuyển đổi (Nhằm
giúp cho HV rõ hơn, khi họ bƣớc sang dạy chƣơng II có một số
chồng chéo khái niệm giữa đối tƣợng quản lý, cá thể, chủ thể, đối
tƣợng của Access. Bên cạnh đó giúp HV có một cái nhìn rộng hơn về
mối liên hệ giữa mô hình dữ liệu khái niệm và mô hình logic và mô
hình dữ liệu vật lý, sự hợp lý trong thiết kế CSDL (cụ thể là các
bảng), điều này sẽ giúp họ dạy tốt hơn trong các chƣơng tiếp theo -
trang 21 – SGK).
+ Giải thích thêm một khái niệm khó mà học viên đƣa ra.
+ Tổng kết môđun.
Nhiệm vụ:
Giảng viên nêu vấn đề và tổ chức thảo luận.
HV thảo luận và giảng viên tổng kết các ý kiến trên cơ sở tƣơng tác nhằm giúp
HV giảng dạy tốt hơn.
Thông tin cho hoạt động:
- Xem phụ lục kèm theo môđun.
- Tài liệu tham khảo:
[1]. Quách Tất Kiên và một số tác giả, Hƣớng dẫn thực hiện chƣơng trình, sách
giáo khoa lớp 12 – môn Tin học, NXB Giáo dục 2008.
[2]. Nguyễn Thế Dũng, Bài giảng Cơ sở dữ liệu, ĐHSP Huế 2008.
[3]. Hồ Thuần, Hồ Cẩm Hà, Các hệ cơ sở dữ liệu – lý thuyết và thực hành, NXB
Giáo dục 2004.
V. Đánh giá
GV nêu một câu hỏi vận dụng trong thực tế và một số câu hỏi liên quan đến thực
tiễn đổi mới dạy và học hiện nay ở cơ sở giáo dục.
VI. Phụ lục
4
Trình ứng dụng
Truy vấn
Lƣợc đồ CSDL
D
B
M
S
Bộ tiền xử lý
ngôn ngữ thao
tác dữ liệu
Bộ xử lý truy
vấn
Chƣơng trình dịch
ngôn ngữ khai báo
dữ liệu
Mã chƣơng trình
Bộ quản lý
CSDL
Bộ quản lý từ
điển
Bộ quản lý tệp
Phƣơng thức truy cập
Bộ đệm hệ thống
Database
Các thành phần chính của một DBMS
Mã đích
chƣơng trình
Bộ xử lý yêu
cầu
Bộ quản lý từ
điển
Trình QL
quyền truy cập
Trình xử lý câu
lệnh
Trình QL
giao tác
Trình QL bộ
nhớ đệm
Trình tối ƣu
hóa câu hỏi.
Trình lập lịch
Trình QL khôi
phục dữ liệu
Trình kiểm tra
tính toàn vẹn
Phƣơng pháp
truy cập
Bộ quản lý tệp
Vùng nhớ đệm
của hệ thống
CSDL+thƣ mục hệ
thống+từ điển dữ liệu
DM
5
Hoạt động một chƣơng trình ứng dụng thông qua một DBMS
Vùng đệm
của chƣơng
trình ứng
dụng A
Vùng đệm
làm việc của
DBMS
Chƣơng trình
ứng dụng A
DBMS
Lƣợc đồ
ngoài
Lƣợc đồ khái
niệm
Hệ điều hành
Hệ quản lý
nhập/xuất
(I/O)
Lƣợc đồ vật
lý
Database
6
A. Tóm lƣợc một số nguyên tắc thiết kế sơ đồ ERD
+ Phân tích yêu cầu:
Phân tích yêu cầu là bƣớc quan trọng của vòng đời CSDL. Ngƣời thiết kế
phải khảo sát, phỏng vấn nhằm xác định CSDL đáp ứng đƣợc gì và cần cái. Mục
tiêu cơ bản của bƣớc này là:
• Xác định rõ yêu cầu của từng bộ phận, khách quan trung thực. Phân loại
thực thể, thuộc tính.
• Mô tả thông tin về các đối tƣợng và xác định mối quan hệ giữa các đối
tƣợng cần thiết kế. Nội dung thực thể.
• Xác định các loại giao dịch trên CSDL và tƣơng tác giữa các giao dich.
• Xác định các ràng buộc toàn vẹn, tính bảo mật để áp đặt lên CSDL.
• Xác định phần cứng hệ thống, điều kiện cài đặt.
• Tài liệu khảo sát.
+ Các bước thiết kế:
• (1) Xác định tập thực thể.
• (2) Xác định mối quan hệ.
Thế giới
thực tại
Phân tích yêu cầu
Phân tích khái niệm
Thiết kế mức logic
Thiết kế mức vật lý
Các yêu cầu về dữ liệu
Lược đồ khái niệm
Lược đồ logic
Lược đồ trong
Chương trình ứng dụng
Thiết kế
chương trình ứng dụng
Phân tích chức năng
Các yêu cầu về chức năng
Các đặc tả chức năng
Không
phụ
thuộc
vào
DBMS
Phụ
thuộc
vào
DBMS
Quá trình thiết kế một CSDL trong quá trình
thiết kế hệ thống thông tin.
7
• (3) Xác định thuộc tính và gắn thuộc tính cho tập thực thể và mối quan
hệ.
• (4) Quyết định miền giá trị cho thuộc tính.
• (5) Quyết định thuộc tính khóa.
• (6) Quyết định (min, max) cho mối quan hệ.
+ Các nguyên tắc thiết kế:
• Khảo sát kỹ qui trình nghiệp vụ của ngƣời dùng và ứng dụng.
• Giao tiếp với nhiều nhóm ngƣời dùng.
• Sử dụng các thuật ngữ của thế giới thực.
• Chính xác, đơn giản, dễ hiểu và tránh trùng lắp.
+ Phương pháp tiếp cận:
• Nhận dạng các thành phần cơ bản của lƣợc đồ
- Các kiểu thực thể, kiểu liên kết và các thuộc tính.
- Các thuộc tính khóa, tỉ lệ lực lƣợng và ràng buộc tham gia.
- Các kiểu thực thể yếu.
- Các chuyên biệt hóa và tổng quát hóa.
• 2 phƣơng pháp tiếp cận
- Thiết kế trực tiếp lƣợc đồ tổng thể.
- Thiết kế lƣợc đồ tổng thể bằng cách tích hợp các lƣợc đồ con.
+ Tinh chỉnh lược đồ:
Để tinh chỉnh lƣợc đồ ERD sau khi thiết kế, cần lƣu ý một số điểm sau.
• Kiểu thực thể hay thuộc tính. Ví dụ Tên của Khoa có thể là thuộc tính
của các thực thể sau: Sinh viên, Giảng viên, Môn học… có thể đƣợc tách
ra thành một thực thể KHOA.
• Kiểu liên kết hay thuộc tính.
• Sắp xếp các thuộc tính.
• CBH hay TQH.
• Liên kết nhị phân hay liên kết n-phân. Nên tìm cách để chuyển các liên
kết n- phân về thành các liên kết nhị phân.
B. Chuyển đổi từ sơ đồ thực thể - quan hệ (ERD) sang lƣợc đồ quan hệ
Nếu xem mô hình ER là mô hình dữ liệu ngoài (khái niệm) và mô hình dữ liệu
quan hệ là mô hình logic, ta có một số qui tắc chuyển đổi từ sơ đồ thực thể - quan hệ
(ERD) sang lƣợc đồ quan hệ, nhằm chuyển đổi một cách “hợp lý” các dữ liệu ở mức
khái niệm sang mức logic để tổ chức lƣu trữ và xử lý.
Qui tắc 1: Biến đổi một tập thực thể thành một quan hệ.
Đối với tập thực thể thông thƣờng (regular entity type): khóa của quan hệ là
khóa của tập thực thể.
Lƣu ý : Thuộc tính của quan hệ là thuộc tính của tập thực thể ; Quan hệ chỉ
chứa các thuộc tính thành phần của thuộc tính phức hợp; Quan hệ không chứa các
thuộc tính đa trị.
8
Đƣợc chuyển thành các lƣợc đồ tƣơng ứng:
PHONGBAN(TENPHG, MAPHG)
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG)
Qui tắc 2: Biến đổi thuộc tính đa trị thành một quan hệ.
Quan hệ chứa khóa của tập thực thể và thuộc tính đa trị.
Khóa của quan hệ gồm khóa của tập thực thể và thuộc tính đa trị.
Ví dụ: Xét mô hình thực thể quản lý CÔNG TY với kiểu thực thể ĐƠNVỊ. Kiểu
thực thể này có thuộc tính ĐịađiểmĐV là một thuộc tính đa trị (có thể nhận một lúc
nhiều giá trị - vì một đơn vị có thể có nhiều địa điểm đặt khác nhau). Khi chuyển thành
mô hình quan hệ nó sẽ đƣợc chuyển thành một quan hệ có khoá chính là MãsốĐV, Địa
điểm và có thể có thêm một số thuộc tính khác lƣu thông tin về địa điểm.
Qui tắc 3: Biểu diễn mối liên kết 1-ngôi (đệ qui) hoặc 2-ngôi có quan hệ một-
một.
Đặt khóa của kiểu thực thể bên phía bắt buộc và các thuộc tính của mối liên
kết vào quan hệ của kiểu thực thể bên phía tùy chọn.
Khi chuyển đổi về các lƣợc đồ quan hệ thì quan hệ PHONGBAN cần lƣu ý
PHONGBAN(MAPHG, TENPHG, MANV, NG_NHANCHUC)
Qui tắc 4: Biểu diễn mối liên kết 1-ngôi hoặc 2-ngôi có quan hệ một-nhiều.
Đặt khóa của kiểu thực thể bên phía một và các thuộc tính của mối liên kết vào
quan hệ của kiểu thực thể bên phía nhiều.
NHANVIEN
TENNV
NGSINH
DCHI
PHAI
LUONG
HONV
MANV
Lam_viec
La_truong_phong
PHONGBAN
MAPHG
TENPHG
(1,1)
(1,n)
(1,1)
(1,1)
NHANVIEN
TENNV
NGSINH
DCHI
PHAI
LUONG
HONV
MANV
La_truong_phong
PHONGBAN
MAPHG
TENPHG
(1,1)
(1,n)
NG_NHANCHUC
NGSINH
DCHI
LUONG
HONV
MANV
MAPHG
TENPHG
(1,1)
(1,n)
9
Khi đó ta chuyển MAPHG vào lƣợc đồ NHANVIEN lam khoa ngoại của lƣợc đồ
này
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG,
MAPHG
)
Qui tắc 5: Biến đổi mối liên kết 1-ngôi hoặc 2-ngôi có quan hệ nhiều-nhiều thành
một quan hệ.
Quan hệ chứa các khóa của các kiểu thực thể tham gia vào mối liên kết.
Khóa của quan hệ gồm cả hai khóa của hai kiểu thực thể.
Thuộc tính của quan hệ là thuộc tính của mối liên kết.
Liên kết Phan_cong đƣợc chuyển thành lƣợc đồ quan hệ:
PHANCONG(MANV, MADA, THOIGIAN)
Qui tắc 6: Biến đổi mối liên kết tam phân (3-ngôi) thành một quan hệ.
Quan hệ chứa ba khóa của ba kiểu thực thể tham gia vào mối liên kết.
Mối liên kết có bao nhiêu kiểu thực thể bên phía một thì quan hệ có bấy nhiêu
khóa: đối với một kiểu thực thể bên phía một thì khóa của quan hệ gồm cả hai khóa
của hai kiểu thực thể còn lại. Nếu không có kiểu thực thể bên phía một thì khóa của
quan hệ bao gồm cả ba khóa của ba kiểu thực thể.
Thuộc tính của quan hệ là thuộc tính của mối liên kết.
Ví dụ: Giả sử chúng ta có kiểu liên kết ĐẠILÝ <cung cấp> VẬTTƢ <cho>
DỰÁN. Đây là một kiểu liên kết cấp ba. Giả sử rằng kiểu thực thể ĐẠILÝ có thuộc
tính khoá là MãsốĐL, kiểu thực thể VẬTTƢ có thuộc tính khoá là MãsốVT, kiểu thực
thể DỰÁN có thuộc tính khoá là MãsốDA còn kiểu liên kết <cung cấp> có thuộc tính
là Sốlƣợng để lƣu số lƣợng vật tƣ mà một đai lý cung cấp cho môt dự án. Khi đó kiểu
liên kết <cung cấp> sẽ đƣợc chuyển thành một quan hệ có tên là CUNGCẤP với các
thuộc tính MãsốĐL, MãsốVT , MãsốDA, Sốlƣợng và khoá chính gồm ba thuộc tính
MãsốĐL, MãsốVT, MãsốDA.
Qui tắc 7: Thực thể yếu
DEAN
TENDA
DDIEM_DA
MADA
NHANVIEN
TENNV
NGSINH
DCHI
PHAI
LUONG
HONV
MANV
Phan_cong
(1,n)
(1,n)
THOIGIAN
10
Chuyển thành một quan hệ có cùng tên với thực thể yếu, thêm vào thuộc tính
khóa của quan hệ liên quan.
Ta có lƣợc đồ sau tƣơng ứng với thực thể yếu THANNHAN trong sơ đồ trên.
THANNHAN(MANV, TENTN, PHAI, NGSINH, QUANHE)
THANNHAN
TENTN
PHAI
NGSINH
NHANVIEN
TENNV
NGSINH
DCHI
PHAI
LUONG
HONV
MANV
QUANHE
Co_than_nhan
(1,1)
(1,n)
11
Môđun 2: MỘT SỐ NỘI DUNG KHÓ, CẦN QUAN TÂM Ở CHƢƠNG II
I. Mục tiêu
Học viên nắm lại một số vấn đề khó và đáng quan tâm trong chƣơng mà tài liệu
[1] đã đƣa ra. Bên cạnh đó, một số lƣu ý và kiến thức bổ sung để làm rõ thêm các khái
niệm quan trọng trong chƣơng cũng đƣợc đƣa ra.
II. Giới thiệu chung về môđun
Các chủ đề (nội dung chính) của môđun.
- Đƣa ra một số vấn đề khó và cần quan tâm trong chƣơng.
- Một số phần nhỏ của chƣơng cần lƣu ý khi giảng dạy.
- Bổ sung một số kiến thức mở rộng cho chƣơng: Tƣ tƣởng chủ đạo khi dạy một
hệ QTCSDL cụ thể nhƣ Access, các lọai mối liên kết trong sơ đồ ER, các phép kết nối
trong đại số quan hệ, bản chất của truy vấn dữ liệu và câu lệnh Select.
Thời gian để học môđun: 1 buổi (4 tiết).
III. Tài liệu và thiết bị để thực hiện môđun.
- SGK và SGV Tin học lớp 12, tài liệu [1].
- Phụ lục của chƣơng này.
- Máy tính và máy chiếu.
IV. Hoạt động
Hoạt động 1: Nhắc lại và thảo luận về các vấn đề khó, cần quan tâm trong
chương theo tài liệu [1].
Thời gian: 1 tiết.
Dự kiến một số câu hỏi để thảo luận:
+ Phân biệt một số khái niệm: đối tượng cần quản lý, cá thể, chủ thể, đối
tượng của Access? (chủ yếu cho ví dụ và Giáo viên nên vẽ hình minh họa sẵn trên
slide hoặc giấy khổ lớn)
+ Mẫu hỏi là gì? danh từ hay động từ?
+ Mối liên hệ giữa mẫu hỏi, biểu mẫu và báo cáo với truy vấn dữ liệu?
+ Yêu cầu về kỹ năng đối với học sinh khi học xong chương II?
Hoạt động 2: Một số vấn đề cần quan tâm khi dạy học chương này.
Thời gian: 2 tiết.
Tổ chức thảo luận một số vấn đề sau để làm rõ hơn nữa một số kiến thức trong
chƣơng, giúp học viên (HV) nâng cao năng lực giảng dạy.
+ Cần liên hệ thế nào giữa các chức năng của một hệ QTCSDL với cách dạy,
cách đặt vấn đề khi dạy chương II?
+ Cần phân biệt rõ các chế độ thiết kế (Design View) và chế dộ trang dữ liệu
(Datasheet) ở trang 31 – SGK. Ý nào trong các mô tả của SGK là chính?
+ Lưu ý trong Access còn có thêm chế độ câu lệnh truy vấn SQL.
+ Ở trang 38 – SGK cần lưu ý khi thay đổi hay xóa 1 trường của bảng có làm
mất dữ liệu trong trường đó không (nếu bảng đã có trước đó)?
12
+ Có suy nghĩ về câu hỏi 1 ở trang 39 – SGK?
+ Biểu mẫu (form) còn có một số công dụng khác như: tạo thuận lợi cho việc
nhập (âm thanh, hình ảnh…), xem (giảm lật trang, giống biểu mẫu thực tế), tu sửa
dữ liệu, tạo các nút lệnh thực hiện thao tác…
+ Có suy nghĩ gì về câu hỏi 1 ở trang 54 – SGK?
+ SGK đã nêu được ý nghĩa của liên kết và cách thức liên kết nhưng chưa
làm rõ được thế nào là liên kết và các loại mối liên kết. Vì vậy khi dạy học phần liên
kết các bảng cần nắm rõ liên kết là gì và nhìn nhận sự liên kết của Access qua các
loại mối liên kết.
+ Ở trang 64 - SGK chưa nêu rõ trường tính toán là gì.
+ Trang 65 – SGK không nêu rõ là khi tạo mẫu hỏi các bảng đã thiết lập liên
kết chưa và cần lưu ý nếu công thức điều kiện lọc có chứa phép and thì thế nào?
+ Bài tập 3 trang 68 – SGK nên chuẩn bị sẵn một số câu hỏi trắc nghiệm đúng
sai để kiểm tra cách viết biểu thức trong Access.
+ Có suy nghĩ gì về câu hỏi 1 và câu hỏi 3 trang 74 – SGK?
Hoạt động 3: Giới thiệu một số kiến thức bổ sung và giải thích thêm một khái
niệm khó mà học viên đưa ra.
Thời gian: 1tiết
+ Trình bày sơ lƣợc một số kiến thức bổ sung để làm rõ hơn một số khái niệm
quan trọng và một số lƣu ý khi giảng dạy.
- Lƣu ý một CSDL bao giờ cũng phải gắn liền với mục đích? Và
có thể có nhiều bảng dữ liệu cùng với các thành phần khác nữa, do đó
không nên gọi 1 file *.mdb (management data base) là một file CSDL.
- Một số kiến thức về ràng buộc toàn vẹn dữ liệu nhằm giúp dạy
tốt hơn các bài tập1 và 4 trang 39 – SGK (xem tài lệu tham khảo [2]).
- Nhắc lại các lọai mối quan hệ trong sơ đồ ER và các phép kết
nối trong đại số quan hệ.
- Nhắc lại bản chất của truy vấn dữ liệu là gì và câu lệnh Select
trong SQL. Đồng thời lƣu ý trong báo cáo của Access nếu có điều kiện
lọc các bản ghi cần báo cáo (điều kiện Where) thì sao? Qua đó liên hệ
giữa câu lệnh Select với mẫu hỏi, biểu mẫu và báo cáo trong Access.
+ Giải thích thêm một khái niệm khó mà học viên đƣa ra.
+ Tổng kết môđun.
Nhiệm vụ:
Giảng viên nêu vấn đề và tổ chức thảo luận.
HV thảo luận và giảng viên tổng kết các ý kiến trên cơ sở tƣơng tác nhằm giúp
HV giảng dạy tốt hơn.
Thông tin cho hoạt động:
- Xem phụ lục kèm theo môđun.
- Tài liệu tham khảo:
13
[1]. Quách Tất Kiên và một số tác giả, Hƣớng dẫn thực hiện chƣơng trình, sách
giáo khoa lớp 12 – môn Tin học, NXB Giáo dục 2008.
[2]. Nguyễn Thế Dũng, Bài giảng Cơ sở dữ liệu, ĐHSP Huế 2008.
[3]. Hồ Thuần, Hồ Cẩm Hà, Các hệ cơ sở dữ liệu – lý thuyết và thực hành, NXB
Giáo dục 2004.
V. Đánh giá
GV nêu một câu hỏi vận dụng trong thực tế và một số câu hỏi liên quan đến thực
tiễn đổi mới dạty và học hiện nay ở cơ sở giáo dục.
VI. Phụ lục
A. Định nghĩa ràng buộc toàn vẹn.
Trong một CSDL luôn luôn có nhiều mối liên hệ, nhiều sự ràng buộc qua lại giữa
các thuộc tính, giữa các bộ với nhau. Các mối liên hệ ràng buộc này là những điều kiện
bất biến mà tất cả các bộ của những quan hệ có liên quan trong CSDL đều phải thoả
mãn ở bất kỳ thời điểm nào. Những điều kiện bất biến đó đƣợc gọi là “ràng buộc toàn
vẹn”.
Trong thực tế, ràng buộc toàn vẹn thƣờng là các qui tắc quản lí đƣợc áp đặt lên
trên các đối tƣợng của thế giới thực. Việc xác định rõ ràng và đầy đủ các ràng buộc
toàn vẹn trên cơ sở dữ liệu không những nâng cao tính ngữ nghĩa của cơ sở dữ liệu mà
còn là những ràng buộc, yêu cầu để phân tích thiết kế hệ thống thông tin. Nhằm bảo
đảm tính kết dính của các thành phần cấu tạo nên CSDL, tính nhất quán của dữ liệu và
làm cho CSDL luôn biểu diễn đúng ngữ nghĩa thực tế.
Ví dụ: Cho CSDL quản lý sinh viên, gồm các lƣợc đồ quan hệ sau.
1. Sinh viên (MASV, HOSV, TENSV, NGSINH , MAKH, HBONG)
2. Kết quả (MASV, MAMH, LANTHI, DIEM).
3. Khoa (MAKH, TENKH, DIACHI).
Trong CSDL này, chúng ta có một số ràng buộc toàn vẹn sau:
R
1
: Mỗi sinh viên có một mã số (MASV) riêng biệt không trùng với bất kì với
một sinh viên nào khác.
R
2
: Mỗi sinh viên phải đăng kí vào một khoa của một trƣờng nhất định.
R
3
: Mỗi sinh viên chỉ đƣợc thi tối hai lần cho một môn học
Công việc kiểm tra ràng buộc toàn vẹn có thể tiến hành vào một trong các thời
điểm sau:
+ Kiểm tra ngay sau khi thực hiện một thao tác cập nhập CSDL (thêm, sửa,
huỷ, ). Thao tác cập nhập đƣợc xem là hợp lệ nếu nhƣ nó không vi phạm bất cứ một
ràng buộc toàn vẹn nào (nghĩa là không làm cho CSDL rơi vào tình trạng mất tính kết
dính).
+ Kiểm tra định kì hay đột xuất. Đối với những trƣờng hợp vi phạm ràng buộc
toàn vẹn hệ thống sẽ có xử lí ngầm hoặc yêu cầu ngƣời sử dụng xử lí những sai sót
một cách tƣờng minh.
Các yếu tố của ràng buộc toàn vẹn.
Một ràng buộc toàn vẹn có 3 yếu tố:
+ Nội dung.
+ Bối cảnh.
+ Tầm ảnh hƣởng.
14
B. Phép kết nối
Đƣợc dùng để kết hợp các bộ của các quan hệ lại với nhau. Ký hiệu
Cho R(A
1
, A
2
, …, A
n
) và (B
1
, B
2
, …, B
m
).
Kết quả của phép kết là một quan hệ Q, có n + m thuộc tính Q(A
1
, A
2
, …, A
n
, B
1
,
B
2
, …, B
m
). Mỗi bộ của Q là tổ hợp của 2 bộ trong R và S, thỏa mãn một số điều kiện
kết nào đó có dạng A
i
B
j
, với:
A
i
là thuộc tính của R, B
j
là thuộc tính của S
A
i
và B
j
có cùng miền giá trị
là một trong các phép so sánh , , , , ,
Có thể phân loại các phép kết nhƣ sau:
Kết theta (theta join) là phép kết có điều kiện. Ký hiệu R
C
S. C gọi là điều
kiện kết trên thuộc tính.
Kết bằng (equi join) khi C là điều kiện so sánh bằng.
Kết tự nhiên (natural join). Ký hiệu R S hay R S.
Kết quả của phép kết bằng hay kết nối tự nhiên bỏ bớt đi 1 cột với các cột giống
nhau.
Cho hai quan hệ r
1
và r
2
nhƣ sau:
r
1
r
2
Với điều kiện kết nối C = “B>=H”. Ta đƣợc kết quả r
1 C
r
2
là quan hệ sau:
Còn r
1
* r
2
là quan hệ sau:
Phép kết nối ngoài
Phép kết nối ngoài nhằm mở rộng phép kết để tránh mất mát thông tin. Phép toán
này bao gồm các bƣớc:
- Thực hiện phép kết
- Lấy thêm các bộ không thỏa điều kiện kết
Có 3 hình thức
Mở rộng bên trái
Mở rộng bên phải
Mở rộng 2 bên
A
B
C
6
5
4
7
5
5
4
2
6
B
C
H
5
4
9
4
6
8
7
5
3
A
B
C
B
C
H
6
5
4
7
5
3
6
5
5
7
5
3
A
B
C
H
6
5
4
9
15
Ví dụ: Với 2 quan hệ r
1
, r
2
cho ở phần phép kết, ta có: r
1
r
2
là quan hệ sau:
Phép nửa nối
Cho hai quan hệ r xây dựng trên R(U
1
)và s trên S(U
2
). Phép nửa nối của r và s,
ký hiệu là r < s là một quan hệ trên lƣợc đồ R
1
gồm các bộ của
sr
chiếu lên R, tức
là:
r < s ={t: t
sr
.U
1
}
Ví dụ: Giả sử r và s là các quan hệ sau:
r = A B C s = B C D
a b c b c d
d b c b c e
b b f a d b
c a d
Khi đó ta có
r < s A B C
a b c
d b c
c a d
Tƣơng tự có thể định nghĩa r > s nhƣ là r
*
s rồi lấy chiếu trên S
Ta có thể chứng minh hoặc đƣa ra các ví dụ để kiểm chứng:
r < s = r *(s.U
1
U
2
)
r < s r > s
Phép nửa nối rất có ý nghĩa khi tối ƣu hoá các biểu thức quan hệ tƣơng ứng với
các yêu cầu vấn tin.
Hãy cho một ví dụ trong thực tiễn có sử dụng đến phép nửa nối.
A
B
C
H
6
5
4
9
7
5
5
Null
4
2
6
Null
16
Môđun 3: MỘT SỐ NỘI DUNG KHÓ, CẦN QUAN TÂM Ở CHƢƠNG III
I. Mục tiêu
Học viên nắm lại một số vấn đề khó và đáng quan tâm trong chƣơng mà tài liệu
[1] đã đƣa ra. Bên cạnh đó, một số lƣu ý và kiến thức bổ sung để làm rõ thêm các khái
niệm quan trọng trong chƣơng cũng đƣợc đƣa ra.
II. Giới thiệu chung về môđun
Các chủ đề (nội dung chính) của môđun.
- Đƣa ra một số vấn đề khó và cần quan tâm trong chƣơng.
- Một số phần nhỏ của chƣơng cần lƣu ý khi giảng dạy.
- Bổ sung một số kiến thức mở rộng cho chƣơng: Ngôn ngữ CSDL SQL, Ràng
buộc dữ liệu với SQL, quy tắc xây dựng khóa của lược đồ quan hệ từ khóa của thực
thể trong sơ đồ ER…
Thời gian để học môđun: 1 buổi (4 tiết).
III. Tài liệu và thiết bị để thực hiện môđun.
- SGK và SGV Tin học lớp 12, tài liệu [1].
- Phụ lục của chƣơng này.
- Máy tính và máy chiếu.
IV. Hoạt động
Hoạt động 1: Nhắc lại và thảo luận về các vấn đề khó, cần quan tâm trong
chương theo tài liệu [1].
Thời gian: 1 tiết.
Dự kiến một số câu hỏi để thảo luận:
+ Các đặc trưng chính của mô hình dữ liệu là gì?
+ Mô hình dữ liệu là gì? và dùng để làm gì?
+ Trình bày các khái niệm chính của mô hình dữ liệu quan hệ? (Giúp cho HV
thấy đƣợc mô hình dữ liệu quan hệ là mô hình dữ liệu ở mức lôgic)
+ Ngôn ngữ CSDL gồm các nhóm ngôn ngữ con nào? (Qua đây làm rõ các
thao tác trên cơ sở dữ liệu quan hệ)
+ Có nhận xét gì về việc phân chia các thao tác: cập nhật dữ liệu – khai thác
dữ liệu (thao tác dữ liệu); Truy vấn dữ liệu – xem dữ liệu – kết xuất báo cáo (Truy
vấn dữ liệu) của tài liệu [1/51].
Hoạt động 2: Một số vấn đề cần quan tâm khi dạy học chương này.
Thời gian: 1 tiết.
Tổ chức thảo luận một số vấn đề sau để làm rõ hơn nữa một số kiến thức trong
chƣơng, giúp học viên (HV) nâng cao năng lực giảng dạy.
+ Hãy cho biết ý nghĩa của Khóa (tìm kiếm, kết nối…) và tại sao khóa là tập
thuộc tính vừa đủ để phân biệt 2 bô khác nhau?
+ Cho nhận xét câu “hệ QTCSDL là một ngôn ngữ - ngôn ngữ CSDL” [1/49]?
+ Phân tích sơ đồ chức năng của hệ QTCSDL [1/50].
+ Tổ chức lớp HV làm slide vẽ hình vẽ 40 sách giáo viên Tin hoc 12 THPT.
17
+ Cho nhận xét về chú ý ở trang 85 – SGK? (khóa của lƣợc đồ quan hệ chứ
không phải là khóa của quan hệ).
+ Vì sao khóa chính là khóa có ít thuộc tính nhất?.
+ So sánh các khái niệm sau: Khóa, mã số, mã vạch, sêri…
+ Lưu ý: quan hệ một tập hợp; bảng ?; trường ? (của sơ đồ ER)
(nhằm lƣu ý với HV về quá trình xây dựng các bảng của CSDL sao cho hợp lý, không
dữ thừa dữ liệu và có cơ sở);
+ Có nhận xét gì về việc chọn khóa chính ở trang 89 – SGK? Có liên hệ gì với
ID và Auto number trong Access và quy tắc xây dựng khóa của lược đồ quan hệ từ
khóa của thực thể trong sơ đồ ER?
+ Cho nhận xét về câu “SQL là một công cụ mạnh“ ở trang 92 – SGK (SQL là
ngôn ngữ dữ liệu khác với SQL Server là một hệ QTCSDL) và bài tập 1 – trang 93 –
SGK (quản lý là gì? và làm những việc gì?).
Hoạt động 3: Giới thiệu một số kiến thức bổ sung và giải thích thêm một khái
niệm khó mà học viên đưa ra.
Thời gian: 2 tiết
+ Trình bày sơ lƣợc một số kiến thức bổ sung để làm rõ hơn một số khái niệm
quan trọng và một số lƣu ý khi giảng dạy.
- Tính phi thủ tục của ngôn ngữ CSDL – SQL.
- Lƣu ý mã số chƣa hẳn đã là khóa và hãy cho ví dụ trong đó một
lược đồ có khóa khác mã số.
- Ràng buộc dữ liệu với SQL (Constraint).
- Bản chất của truy vấn dữ liệu quan hệ? (chọn các cột (thuộc tính)
và các hàng (bản ghi) từ các bảng trong CSDL để tạo thành bảng
chứa kết quả truy vấn (mẫu hỏi))
+ Giải thích thêm một khái niệm khó mà học viên đƣa ra.
+ Tổng kết môđun.
Nhiệm vụ:
Giảng viên nêu vấn đề và tổ chức thảo luận.
HV đọc tài liệu ở mục III, thảo luận và giảng viên tổng kết các ý kiến trên cơ sở
tƣơng tác nhằm giúp HV sẽ giảng dạy tốt hơn.
Thông tin cho hoạt động:
- Xem phụ lục kèm theo môđun.
- Tài liệu tham khảo:
[1]. Quách Tất Kiên và một số tác giả, Hƣớng dẫn thực hiện chƣơng trình, sách
giáo khoa lớp 12 – môn Tin học, NXB Giáo dục 2008.
[2]. Nguyễn Thế Dũng, Bài giảng Cơ sở dữ liệu, ĐHSP Huế 2008.
[3]. Hồ Thuần, Hồ Cẩm Hà, Các hệ cơ sở dữ liệu – lý thuyết và thực hành, NXB
Giáo dục 2004.
V. Đánh giá
18
GV nêu một câu hỏi vận dụng trong thực tế và một số câu hỏi liên quan đến thực
tiễn đổi mới dạy và học hiện nay ở các cơ sở giáo dục.
VI. Phụ lục
A. Quy tắc xây dựng khóa của lƣợc đồ quan hệ từ khóa của thực thể trong
sơ đồ ER?
Một thực thể đƣợc chuyển thành 1 lƣợc đồ quan hệ, nếu thực thể không có khóa
thì ta lấy tên của tập thực thể và số thứ tự làm khóa của lƣợc đồ (ID và Auto number
trong Access).
B. Ràng buộc dữ liệu với SQL (Constraint)
Trong phần này, chúng ta sẽ tìm hiểu nhóm các câu lệnh đƣợc sử dụng để định
nghĩa và quản lý các đối tƣợng CSDL nhƣ bảng, khung nhìn, chỉ mục, - ngôn ngữ
định nghĩa dữ liệu (DLL).
Về cơ bản, ngôn ngữ định nghĩa dữ liệu bao gồm các lệnh:
• CREATE: định nghĩa và tạo mới đối tƣợng CSDL.
• ALTER: thay đổi định nghĩa của đối tƣợng CSDL.
• DROP: Xoá đối tƣợng CSDL đã có.
B.1. Tạo bảng dữ liệu
Câu lệnh CREATE TABLE đƣợc sử dụng để định nghĩa một bảng dữ liệu mới
trong cơ sở dữ liệu.
Câu lệnh CREATE TABLE có cú pháp nhƣ sau:
CREATE TABLE tên_bảng
(
tên_cột thuộc_tính_cột các_ràng_buộc
[,
,tên_cột_n thuộc_tính_cột_n các_ràng_buộc_cột_n]
[,các_ràng_buộc_trên_bảng]
)
Ví dụ 1: Câu lệnh dƣới đây định nghĩa bảng NHANVIEN với các trƣờng MANV
(mã nhân viên), HOTEN (họ và tên), NGAYSINH (ngày sinh của nhân viên),
DIENTHOAI (điện thoại) và HSLUONG (hệ số lƣơng)
CREATE TABLE nhanvien
(
manv NVARCHAR(10) NOT NULL,
hoten NVARCHAR(50) NOT NULL,
ngaysinh DATETIME NULL,
dienthoai NVARCHAR(10) NULL,
hsluong DECIMAL(3,2) DEFAULT (1.92)
)
B.1.1 Ràng buộc CHECK
Ràng buộc CHECK đƣợc sử dụng nhằm chỉ định điều kiện hợp lệ đối với dữ liệu.
Mỗi khi có sự thay đổi dữ liệu trên bảng (INSERT, UPDATE), những ràng buộc này
sẽ đƣợc sử dụng nhằm kiểm tra xem dữ liệu mới có hợp lệ hay không.
Ràng buộc CHECK đƣợc khai báo theo cú pháp nhƣ sau:
[CONSTRAINT tên_ràng_buộc]
CHECK (điều_kiện)
19
Trong đó, điều_kiện là một biểu thức logic tác động lên cột nhằm qui định giá trị
hoặc khuôn dạng dữ liệu đƣợc cho phép. Trên mỗi một bảng cũng nhƣ trên mỗi một
cột có thể có nhiều ràng buộc CHECK.
Ví dụ 2: Câu lệnh dƣới đây tạo bảng DIEMTOTNGHIEP trong đó qui định giá
trị của cột DIEMVAN và DIEMTOAN phải lớn hơn hoặc bằng 0 và nhỏ hơn hoặc
bằng 10.
CREATE TABLE diemtotnghiep
(
hoten NVARCHAR(30) NOT NULL,
ngaysinh DATETIME,
diemvan DECIMAL(4,2)
CONSTRAINT chk_diemvan
CHECK(diemvan>=0 AND diemvan<=10),
diemtoan DECIMAL(4,2)
CONSTRAINT chk_diemtoan
CHECK(diemtoan>=0 AND diemtoan<=10),
)
Nhƣ vậy, với định nghĩa nhƣ trên của bảng DIEMTOTNGHIEP, các câu lệnh
dƣới đây là hợp lệ:
INSERT INTO diemtotnghiep(hoten,diemvan,diemtoan)
VALUES('Le Thanh Hoang',9.5,2.5)
còn câu lệnh dƣới đây là không hợp lệ:
INSERT INTO diemtotnghiep(hoten,diemvan,diemtoan)
VALUES('Tran Van Hanh',6,10.5)
do cột DIEMTOAN nhận giá trị 10.5 không thoả mãn điều kiện của ràng buộc
Thay vì chỉ định ràng buộc trên mỗi cột, ta có thể chỉ định các ràng buộc ở mức
bảng bằng cách khai báo các ràng buộc sau khi đã khai báo xong các cột trong bảng.
Ví dụ 3: Câu lệnh
CREATE TABLE lop
(
malop NVARCHAR(10) NOT NULL ,
tenlop NVARCHAR(30) NOT NULL ,
khoa SMALLINT NULL ,
hedaotao NVARCHAR(25) NULL
CONSTRAINT chk_lop_hedaotao
CHECK (hedaotao IN ('chính quy','tại chức')),
namnhaphoc INT NULL
CONSTRAINT chk_lop_namnhaphoc
CHECK (namnhaphoc<=YEAR(GETDATE())),
makhoa NVARCHAR(5)
)
có thể đƣợc viết lại nhƣ sau:
CREATE TABLE lop
(
malop NVARCHAR(10) NOT NULL ,
tenlop NVARCHAR(30) NOT NULL ,
20
khoa SMALLINT NULL ,
hedaotao NVARCHAR(25) NULL,
namnhaphoc INT NULL ,
makhoa NVARCHAR(5),
CONSTRAINT chk_lop
CHECK (namnhaphoc<=YEAR(GETDATE()) AND
hedaotao IN ('chính quy','tại chức'))
)
B.1.2 Ràng buộc PRIMARY KEY
Ràng buộc PRIMARY KEY đƣợc sử dụng để định nghĩa khoá chính của bảng.
Ràng buộc PRIMARY KEY là cơ sở cho việc đảm bảo tính toàn vẹn thực thể cũng
nhƣ toàn vẹn tham chiếu.
Để khai báo một ràng buộc PRIMARY KEY, ta sử dụng cú pháp nhƣ sau:
[CONSTRAINT tên_ràng_buộc]
PRIMARY KEY [(danh_sách_cột)]
Nếu việc khai báo khoá chính đƣợc tiến hành ở mức bảng (sử dụng khi số lƣợng
các cột tham gia vào khoá là từ hai trở lên) thì bắt buộc phải chỉ định danh sách cột
ngay sau từ khóa PRIMARY KEY và tên các cột đƣợc phân cách nhau bởi dấu phẩy.
Ví dụ 4: Câu lệnh dƣới đây định nghĩa bảng SINHVIEN với khoá chính là
MASV
CREATE TABLE sinhvien
(
masv NVARCHAR(10)
CONSTRAINT pk_sinhvien_masv PRIMARY KEY,
hodem NVARCHAR(25) NOT NULL ,
ten NVARCHAR(10) NOT NULL ,
ngaysinh DATETIME,
gioitinh BIT,
noisinh NVARCHAR(255),
malop NVARCHAR(10)
)
Ví dụ 5: Câu lệnh dƣới đây tạo bảng DIEMTHI với khoá chính là tập bao gồm
hai cột MAMONHOC và MASV
CREATE TABLE diemthi
(
mamonhoc NVARCHAR(10) NOT NULL ,
masv NVARCHAR(10) NOT NULL ,
diemlan1 NUMERIC(4, 2),
diemlan2 NUMERIC(4, 2),
CONSTRAINT pk_diemthi PRIMARY KEY(mamonhoc,masv)
)
B.1.3 Ràng buộc UNIQUE
Ràng buộc UNIQUE đƣợc sử dụng trong câu lệnh CREATE TABLE để định
nghĩa khoá phụ cho bảng và đƣợc khai báo theo cú pháp sau đây:
[CONSTRAINT tên_ràng_buộc]
UNIQUE [(danh_sách_cột)]
21
Ví dụ 6: Giả sử ta cần định nghĩa bảng LOP với khoá chính là cột MALOP
nhƣng đồng thời lại không cho phép các lớp khác nhau đƣợc trùng tên lớp với nhau, ta
sử dụng câu lệnh nhƣ sau:
CREATE TABLE lop
(
malop NVARCHAR(10) NOT NULL,
tenlop NVARCHAR(30) NOT NULL,
khoa SMALLINT NULL,
hedaotao NVARCHAR(25) NULL,
namnhaphoc INT NULL,
makhoa NVARCHAR(5),
CONSTRAINT pk_lop PRIMARY KEY (malop),
CONSTRAINT unique_lop_tenlop UNIQUE(tenlop)
)
B.1.4. Ràng buộc FOREIGN KEY
Ràng buộc FOREIGN KEY đƣợc định nghĩa theo cú pháp dƣới đây:
CONSTRAINT tên_ràng_buộc]
FOREIGN KEY [(danh_sách_cột)]
REFERENCES tên_bảng_tham_chiếu(danh_sách_cột_tham_chiếu)
ON DELETE CASCADE | NO ACTION | SET NULL | SET DEFAULT]
ON UPDATE CASCADE | NO ACTION | SET NULL | SET DEFAULT]
Việc định nghĩa một ràng buộc FOREIGN KEY bao gồm các yếu tố sau:
• Tên cột hoặc danh sách cột của bảng đƣợc định nghĩa tham gia vào khoá
ngoài.
• Tên của bảng đƣợc tham chiếu bởi khoá ngoài và danh sách các cột đƣợc
tham chiếu đến trong bảng tham chiếu.
• Cách thức xử lý đối với các bản ghi trong bảng đƣợc định nghĩa trong trƣờng
hợp các bản ghi đƣợc tham chiếu trong bảng tham chiếu bị xoá (ON DELETE)
hay cập nhật (ON UPDATE). SQL chuẩn đƣa ra 4 cách xử lý:
CASCADE: Tự động xoá (cập nhật) nếu bản ghi đƣợc tham chiếu bị xoá
(cập nhật).
NO ACTION: (Mặc định) Nếu bản ghi trong bảng tham chiếu đang
đƣợc tham chiếu bởi một bản ghi bất kỳ trong bảng đƣợc định nghĩa thì
bàn ghi đó không đƣợc phép xoá hoặc cập nhật (đối với cột đƣợc tham
chiếu).
SET NULL: Cập nhật lại khoá ngoài của bản ghi thành giá trị NULL
(nếu cột cho phép nhận giá trị NULL).
SET DEFAULT: Cập nhật lại khoá ngoài của bản ghi nhận giá trị mặc
định (nếu cột có qui định giá trị mặc định).
Ví dụ 7: Câu lệnh dƣới đây định nghĩa bảng DIEMTHI với hai khoá ngoài trên
cột MASV và cột MAMONHOC (giả sử hai bảng SINHVIEN và MONHOC đã đƣợc
định nghĩa)
CREATE TABLE diemthi
(
mamonhoc NVARCHAR(10) NOT NULL ,
masv NVARCHAR(10) NOT NULL ,
22
diemlan1 NUMERIC(4, 2),
diemlan2 NUMERIC(4, 2),
CONSTRAINT pk_diemthi PRIMARY KEY(mamonhoc,masv),
CONSTRAINT fk_diemthi_mamonhoc
FOREIGN KEY(mamonhoc)
REFERENCES monhoc(mamonhoc)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_diemthi_masv
FOREIGN KEY(masv)
REFERENCES sinhvien(masv)
ON DELETE CASCADE
ON UPDATE CASCADE
)
23
Môđun 4: MỘT SỐ NỘI DUNG KHÓ, CẦN QUAN TÂM Ở CHƢƠNG IV
I. Mục tiêu
Học viên nắm lại một số vấn đề khó và đáng quan tâm trong chƣơng mà tài liệu
[1] đã đƣa ra. Bên cạnh đó, một số lƣu ý và kiến thức bổ sung để làm rõ thêm các khái
niệm quan trọng trong chƣơng cũng đƣợc đƣa ra.
II. Giới thiệu chung về môđun
Các chủ đề (nội dung chính) của môđun.
- Đƣa ra một số vấn đề khó và cần quan tâm trong chƣơng.
- Một số phần nhỏ của chƣơng cần lƣu ý khi giảng dạy.
- Bổ sung một số kiến thức mở rộng cho chƣơng: Sƣ mất an toàn và bảo mật
thông tin, mã hóa thông tin và chữ ký điện tử trong bảo mật CSDL, một số bài toán
liên quan đến bảo mật cơ sở dữ liệu.
Thời gian để học môđun: 1 buổi (4 tiết).
III. Tài liệu và thiết bị để thực hiện môđun.
- SGK và SGV Tin học lớp 12, tài liệu [1].
- Phụ lục của chƣơng này.
- Máy tính và máy chiếu.
IV. Hoạt động
Hoạt động 1: Nhắc lại và thảo luận về các vấn đề khó, cần quan tâm trong
chương theo tài liệu [1].
Thời gian: 1 tiết.
Dự kiến một số câu hỏi để thảo luận:
+ Phân biệt hệ CSDL trung tâm và khách/chủ (FPT và Clinet Server)
+ Phân biệt xử lý phân tán và CSDL phân tán.
+ Ưu nhược điểm của kiến trúc phân tán.
+ Nén dữ liệu thực chất là mã hóa dữ liệu. Lưu ý: việc ghi biên bản hệ thống
chủ yếu phục vụ cho việc khôi phục dữ liệu (an toàn dữ liệu) chứ không phải là giải
pháp chủ yếu của bảo mật dữ liệu.
+ Ai là người cấp bảng phân quyền dữ liệu (ngƣời quản trị CSDL chứ không
phải là ngƣời lập trình nhƣ trong SGK trình bày trong bài tập 3 trang 107).
+ Có giải pháp bảo mật tuyệt đối không và nói bảo vệ CSDL là bảo vệ những
gì? (trang 101 – SGK)
Hoạt động 2: Một số vấn đề cần quan tâm khi dạy học chương này.
Thời gian: 1 tiết.
Tổ chức thảo luận một số vấn đề sau để làm rõ hơn nữa một số kiến thức trong
chƣơng, giúp học viên (HV) nâng cao năng lực giảng dạy.
+ Bảng phân quyền ở trang 102 – SGK dành cho đối tượng nào trong hệ
CSDL?
+ CSDL cá nhân có tính bảo mật cao hay thấp?
24
+ Lưu ý các hình vẽ minh họa CSDL trung tâm, khách chủ, phân tán và tập
trung xử lý phân tán.
+ Nêu ý nghĩa của CSDL ở mức khung nhìn? (ngoài tính trong suốt của kiến
trúc CSDL – khung nhìn cũng là một giải pháp bảo mật dữ liệu).
+ Có suy nghĩ về câu hỏi 4 trang 104 và bài tập 3 trang 107 – SGK?
Hoạt động 3: Giới thiệu một số kiến thức bổ sung và giải thích thêm một khái
niệm khó mà học viên đưa ra.
Thời gian: 2 tiết
+ Trình bày sơ lƣợc một số kiến thức bổ sung để làm rõ hơn một số khái niệm
quan trọng và một số lƣu ý khi giảng dạy.
- Xử lý tƣơng tranh (trang 100 – SGK) (xem tài liệu [3]).
- Các câu lệnh điều khiển dữ liệu SQL (trang 102 – SGK).
- Một số khả năng rò rĩ dữ liệu (trang 103 – SGK)
- Giải pháp bảo mật dữ liệu qua khung nhìn (trang 102 – SGK).
- Mã hóa công khai - Chữ kí điện tử (trang 103 – SGK).
- Bài toán đa ngƣời dùng và phân quyền trên các trƣờng dữ liệu
(trang 103 – SGK).
- Mã hóa Huffman và Z77, Z78… với việc nén dữ liệu.
- Stenography (chữ ký thủy vân).
+ Giải thích thêm một khái niệm khó mà học viên đƣa ra.
+ Tổng kết môđun.
Nhiệm vụ:
Giảng viên nêu vấn đề và tổ chức thảo luận.
HV đọc tài liệu ở mục III, thảo luận và giảng viên tổng kết các ý kiến trên cơ sở
tƣơng tác nhằm giúp HV sẽ giảng dạy tốt hơn.
Thông tin cho hoạt động:
- Xem phụ lục kèm theo môđun.
- Tài liệu tham khảo:
[1]. Quách Tất Kiên và một số tác giả, Hƣớng dẫn thực hiện chƣơng trình, sách
giáo khoa lớp 12 – môn Tin học, NXB Giáo dục 2008.
[2]. Nguyễn Thế Dũng, Bài giảng Cơ sở dữ liệu, ĐHSP Huế 2008.
[3]. Hồ Thuần, Hồ Cẩm Hà, Các hệ cơ sở dữ liệu – lý thuyết và thực hành, NXB
Giáo dục 2004.
V. Đánh giá
GV nêu một câu hỏi vận dụng trong thực tế và một số câu hỏi liên quan đến thực
tiễn đổi mới dạy và học hiện nay ở các cơ sở giáo dục.
VI. Phụ lục
A. Các nguyên nhân làm mất an toàn dữ liệu:
Sự nhòm đọc: Chỉ việc tìm kiếm thông tin thông qua bộ nhớ chính hay phụ (các
dữ liệu bí mật, riêng tƣ, )
25
Sự rò rỉ: Chỉ sự truyền dữ liệu tới ngƣời dùng không đƣợc phép bởi các quá trình
với sự hợp pháp truy cập dữ liệu.
Suy diễn: Nói đến việc phát hiện dữ liệu bí mật về một cá nhân nào đó bằng cách
lấy tƣơng quan các thống kê đƣợc công bố.
Sự phá hoại ngẫu nhiên: Do phần mềm có lỗi, sai sót ngƣời dùng, các sự cố về
phần cứng,
Một số kỹ thuật chung bảo vệ cho hệ thống cơ sở dữ liệu:
Nhận diện ngƣời sử dụng, Bảo vệ vật lý, Duy trì và chuyển giao các quyền.
Một số phƣơng pháp bảo mật cơ sở dữ liệu:
Một trong những phƣơng pháp bảo mật thông dụng nhất là hình thức mã hóa.
Mã hóa ở mức độ tập tin: Đây là giải pháp đơn giản nhất để bảo vệ dữ liệu trong
cơ sở dữ liệu, chống lại sự truy cập trái phép vào các tập tin cơ sở dữ liệu. Tuy nhiên,
mã hóa dữ liệu ở mức độ này không cung cấp mức độ bảo mật truy cập đến CSDL ở
mức độ bảng (table), cột (column) và dòng (row). Một điểm yếu nữa của giải pháp này
là bất cứ ai với quyền truy xuất CSDL đều có thể truy cập vào tất cả dữ liệu trong
CSDL. Điều này phát sinh một nguy cơ nghiêm trọng, cho phép các đối tƣợng với
quyền quản trị (admin) truy cập tất cả các dữ liệu nhạy cảm. Thêm vào đó, giải pháp
này bị hạn chế vì không cho phép phân quyền khác nhau cho ngƣời sử dụng CSDL.
Mã hóa ở mức ứng dụng: Giải pháp này xử lý mã hóa dữ liệu trƣớc khi truyền dữ
liệu vào CSDL. Những vấn đề về quản lý khóa và quyền truy cập đƣợc hỗ trợ bởi ứng
dụng. Truy vấn dữ liệu đến CSDL sẽ trả kết quả dữ liệu ở dạng mã hóa và dữ liệu này
sẽ đƣợc giải mã bởi ứng dụng. Giải pháp này giải quyết đƣợc vấn đề phân tách quyền
an ninh và hỗ trợ các chính sách an ninh dựa trên vai trò (Role Based Access Control –
RBAC). Tuy nhiên, xử lý mã hóa trên tầng ứng dụng đòi hỏi sự thay đổi toàn diện kiến
trúc của ứng dụng, thậm chí đòi hỏi ứng dụng phải đƣợc viết lại. Đây là một vấn đề
đáng kể cho các công ty có nhiều ứng dụng chạy trên nhiều nền CSDL khác nhau.
Bên cạnh đó một giải pháp bảo mật CSDL tối ƣu cần hỗ trợ các yếu tố chính sau:
1. Hỗ trợ mã hóa tại các mức dữ liệu cấp bảng, cột, hàng.
2. Hỗ trợ chính sách an ninh phân quyền truy cập đến mức dữ liệu cột, hỗ trợ
RBAC.
3. Cơ chế mã hóa không ảnh hƣởng đến các ứng dụng hiện tại.
Để đảm bảo các yếu tố trên một số mô hình đƣợc xây dựng nhƣ sau: