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 – [email protected]
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ủ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ố
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
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.
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.
Đƣợ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.
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
)
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.
- 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
- 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”.
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
nhau.
Cho hai quan hệ r
1
và r
2
nhƣ sau:
r
1
r
2Vớ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:
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
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
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
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
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 ,
[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
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
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.
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.