Tải bản đầy đủ (.pdf) (358 trang)

chương trình đào tạo khoa công nghệ thông tin trường đại học quốc gia hà nội

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.55 MB, 358 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Khoa Công nghệ thông tin












ĐỀ CƯƠNG CHI TIẾT MÔN HỌC


(THEO TÍN CHỈ)

















Hà Nội - 2008



2











PHẦN I

CÁC MÔN HỌC CƠ SỞ


3
NGUYÊN LÝ HỆ ĐIỀU HÀNH
1. Thông tin về giảng viên

 Họ và tên: Nguyễn Hải Châu
 Chức danh, học hàm, học vị: TS
 Thời gian, địa điểm làm việc: Từ 8g đến 16h30g, P305, nhà E3, Khoa
công nghệ thông tin, Đại học công nghệ, ĐHQGHN, 144 Đường Xuân Thuỷ,
Cầu Giấy, Hà Nội.
 Địa chỉ liên hệ: P305, nhà E3, Khoa công nghệ thông tin,
trường Đại học công nghệ, ĐHQGHN, 144 Đường Xuân Thuỷ, Cầu Giấy, Hà
Nội
 Điện thoại: 7547813 Email:
 Các hướng nghiên cứu chính: Tính toán song song, các phương pháp lập
luận mờ.
Thông tin về các giảng viên khác
 PGS TS Hà Quang Thụy, Khoa CNTT, E3, ĐHCN, ĐHQGHN, 144, Xuân
Thuỷ, Cầu Giấy, Hà Nội. ĐT: 7547813, Email:
.
 ThS Lê Hồng Hải, Khoa CNTT, E3, ĐHCN, ĐHQGHN, 144, Xuân Thuỷ,
Cầu Giấy, Hà Nội. ĐT: 7547813, Email:
.
 ThS. Nguyễn Cẩm Tú, Khoa CNTT, E3, ĐHCN, ĐHQGHN, 144, Xuân
Thuỷ, Cầu Giấy, Hà Nội. ĐT: 7547813, Email:
2. Thông tin chung về môn học
 Tên môn học: Nguyên lý hệ điều hành
 Mã môn học:
 Số tín chỉ: 02
 Môn học: - Bắt buộc: 
- Lựa chọn: 
 Các môn học tiên quyết: Kiến trúc máy tính, ngôn ngữ lập trình C/C++.
 Các môn học kế tiếp:
 Các yêu cầu đối với môn học (nếu có):
 Giờ tín chỉ đối với các hoạt động:

 Nghe giảng lý thuyết: 24
 Làm bài tập trên lớp: 0
 Thảo luận: 0
 Thực hành, thực tập (ở PTN, nhà máy, studio, điền dã, thực tập ): 0
 Hoạt động theo nhóm: 0
 Tự học: 6
 Địa chỉ Khoa/ bộ môn phụ trách môn học: Bộ môn Các hệ thống thông tin,
P304-305 nhà E3, ĐHQGHN, 144 đường Xuân Thuỷ, Cầu Giấy, Hà Nội.
3. Mục tiêu của môn học

4
 Kiến thức: Cung cấp cho học sinh những khái niệm cơ bản về hệ điều hành
máy tính: phân loại, nguyên lý, cách làm việc, phân tích thiết kế và chi tiết về
một số hệ điều hành cụ thể.
 Kỹ năng: Làm tốt các bài tập về nguyên lý hệ điều hành, lấy đó làm cơ sở -
nguyên lý cho các vấn đề khác trong thiết kế và cài đặt các hệ thống thông tin.
 Thái độ, chuyên cần: nghiêm chỉnh chấp hành giờ học trên lớp và giờ tự học,
chuẩn bị tốt các câu hỏi trước khi lên lớp.
4. Tóm tắt nội dung môn học
Môn học gồm 5 phần chính, trong đó phần 1 giới thiệu về tổng quan, lịch sử của các
hệ điều hành. Phần 2 nghiên cứu các phương thức quản lý tiến trình, phần 3 giới thiệu
về quản lý lưu trữ (bao gồm quản lý bộ nhớ trong và ngoài). Phần 4 dành để nghiên
cứu vào ra của hệ điều hành và phần 5 dành cho vấn đề bảo vệ, an ninh hệ thống.
5. Nội dung chi tiết môn học
Chương 1. Tổng quan
1.1. Giới thiệu
1.1.1. Hệ điều hành là gì?
1.1.2. Các hệ xử lý theo lô đơn giản
1.1.3. Các hệ xử lý theo lô, đa chương trình
1.1.4. Các hệ phân chia thời gian

1.1.5. Các hệ máy tính cá nhân
1.1.6. Các hệ song song, các hệ phân tán, các hệ thời gian thực
1.2. Cấu trúc hệ điều hành
1.2.1. Các thành phần hệ thống
1.2.2. Các dịch vụ của hệ điều hành
1.2.3. Các lời gọi hệ thống
1.2.4. Các chương trình hệ thống
1.2.5. Cấu trúc hệ thống
1.2.6. Cài đặt và thiết kế hệ thống
Chương 2. Quản lý tiến trình
2.1. Tiến trình
2.1.1. Khái niệm về tiến trình
2.1.2. Lập lịch tiến trình
2.1.3. Các thao tác trên tiến trình
2.1.4. Hiệp tác giữa các tiến trình
2.1.5. Luồng
2.1.6. Truyền thông giữa các tiến trình
2.2. Lập lịch CPU
2.2.1. Các khái niệm cơ sở

5
2.2.2. Các tiêu chí lập lịch
2.2.3. Các thuật toán lập lịch
2.2.4. Đánh giá thuật toán
2.3. Đồng bộ hóa tiến trình
2.3.1. Cơ sở
2.3.2. Bài toán Critical-Section
2.3.3. Cờ hiệu (Semaphore)
2.3.4. Các bài toán cổ điển trong việc đồng bộ hóa
2.3.5. Các vùng critical

2.3.6. Theo dõi (Monitor)
2.3.7. Các giao tác nguyên tố
2.4. Bế tắc
2.4.1. Mô hình
2.4.2. Đặc trưng hóa bế tắc
2.4.3. Phương pháp thao tác với bế tắc
2.4.4. Phòng tránh bế tắc
2.4.5. Phát hiện bế tắc
2.4.6. Khôi phục từ bế tắc
2.4.7. Các cách tiếp cận tổng hợp để giải quyết bế tắc
Chương 3. Quản lý lưu trữ
3.1. Quản lý bộ nhớ
3.1.1. Cơ sở
3.1.2. Bộ nhớ vật lý và bộ nhớ logic
3.1.3. Swap
3.1.4. Cấp phát liên tục
3.1.5. Phân trang
3.1.6. Phân đoạn
3.2. Bộ nhớ ảo
3.2.1. Cơ sở
3.2.2. Phân trang theo yêu cầu
3.2.3. Hiệu năng của phân trang theo yêu cầu
3.2.4. Thay thế trang
3.2.5. Các thuật toán thay thế trang
3.2.6. Cấp phát frame
3.2.7. Thrashing
3.2.8. Các vấn đề khác
3.2.9. Phân đoạn theo yêu cầu
Kiếm tra giữa kỳ: 60 phút
3.3. Giao diện hệ thống tệp


6
3.3.1. Khái niệm tệp
3.3.2. Các phương pháp truy cập
3.3.3. Cấu trúc thư mục
3.3.4. Bảo vệ
3.3.5. Tính nhất quán về ngữ nghĩa
3.4. Cài đặt hệ thống tệp
3.4.1. Cấu trúc hệ thống tệp
3.4.2. Các phương pháp cấp phát
3.4.3. Quản lý không gian rỗi
3.4.4. Cài đặt thư mục
3.4.5. Hiệu quả và hiệu năng
3.4.6. Khôi phục
Chương 4. Hệ vào ra
4.1. Hệ vào ra
4.1.1. Tổng quan
4.1.2. Vào ra phần cứng
4.1.3. Giao diện lập trình vào ra
4.1.4. Hệ vào ra của nhân
4.1.5. Chuyển đổi yêu cầu vào ra thành các thao tác phần cứng
4.1.6. Hiệu năng
4.2. Cấu trúc lưu trữ phụ
4.2.1. Cấu trúc đĩa
4.2.2. Lập lịch đĩa
4.2.3. Quản lý đĩa
4.2.4. Quản lý không gian swap
4.2.5. Độ tin cậy của đĩa
4.2.6. Cài đặt hệ lưu trữ ổn định
4.2.7. Các thiết bị lưu trữ thứ ba: Các công việc của hệ điều hành và vấn đề

về hiệu năng
Chương 5. Bảo vệ và An ninh
5.1. Bảo vệ
5.1.1. Các mục tiêu của việc bảo vệ
5.1.2. Các miền cần bảo vệ
5.1.3. Ma trận truy cập
5.1.4. Cài đặt ma trận truy cập
5.1.5. Hủy bỏ quyền truy cập
5.1.6. Các hệ thống dựa trên khả năng
5.1.7. Bảo vệ dựa trên ngôn ngữ

7
5.2. An ninh
5.2.1. Vấn đề an ninh
5.2.2. Xác thực
5.2.3. Các mật khẩu dùng một lần
5.2.4. Đe dọa với chương trình
5.2.5. Đe dọa với hệ thống
5.2.6. Theo dõi các sự đe dọa
5.2.7. Mã hóa
5.2.8. Phân loại an ninh máy tính
6. Học liệu
6.1. Học liệu bắt buộc
[1] Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Operating System
Concepts, 7
th
edition, John Wiley & Sons, Inc., 2005.
[2] Hà Quang Thụy, Nguyên lý hệ điều hành, NXB Đại học Quốc gia Hà Nội,
1998.
6.2. Học liệu tham khảo

[3] William Stallings, Operating Systems: Internals and Design Principles 5
th

edition, Prentice-Hall, 2005.
[4] Andrew S. Tanenbaum, Modern Operating Systems, 2
nd
edition, Prentice-Hall,
2001.
[5] Andrew S. Tanenbaum, Albert S Woodhull, Operating Systems: Design and
Implementation, 3
rd
edition, Prentice-Hall. 2006.
[6] Robert Love, Linux Kernel Development, Sams Publishing, 2003.
[7] Daniel P. Bovet, Marco Cesati, Understanding Linux Kernel, 2
nd
edition,
O'Reilly & Associates, 2002.
[8] W. Richard Stevens, Advanced Programming in the UNIX Environment,
Addison-Wesley, 1992.

7. Hình thức tổ chức dạy học
7.1. Lịch trình chung
Nội dung (ND)
Hình thức tổ chức dạy học môn học
Tổng

Lên lớp Thực
hành, thí
nghiệm,
điền dã


Tự
học, tự
nghiên
cứu

thuyết
Bài
tập
Thảo
luận
ND 1: Giới thiệu tổng quan
về hệ điều hành và cấu trúc
của hệ điều hành
1.5

0.0



0.5

2.0

ND 2: Khái niệm về tiến trình

1.5

0.0




0.5

2.0


8
ND 3: Lập lịch CPU 1.5

0.0



0.5

2.0

ND 4: Đồng bộ hóa tiến trình 3.0

0.0



1.0

4.0

ND 5: Bế tắc 3.0


0.0



1.0

4.0

ND 6: Quản lý bộ nhớ 2.0

0.0



0.0

2.0

ND 7: Bộ nhớ ảo 2.5

0.0



1.0

3.5

ND 8: Kiểm tra giữa kỳ 0.5


0.0



0.0

0.5

ND 9: Giao diện hệ thống tệp 1.5

0.0



0.5

2.0

ND10: Cài đặt hệ thống tệp 1.5

0.0



0.5

2.0

ND11: Hệ vào ra 1.5


0.0



0.5

2.0

ND12: Cấu trúc lưu trữ phụ 2.0

0.0



0.0

2.0

ND 13: Bảo vệ và an ninh +
Ôn tập cuối môn học
2.0

0.0



0.0

2.0


Cộng 24

0



6

30


7.2. Lịch trình tổ chức dạy học cụ thể
Nội dung 1, tuần 1: Tổng quan về hệ điều hành và cấu trúc của hệ điều hành
Hình thức tổ
chức dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi chú
Lý thuyết Từ
đến
Tại GĐ2
- Tổng quan về hệ
điều hành
- Cấu trúc của hệ
điều hành, các
chiến lược thiết kế
- Các dịch vụ do
hệ điều hành cung

cấp

Bài tập Từ
đến
Tại GĐ2

Thảo luận Từ
đến
Tại GĐ2

Thực hành,
thí nghiệm,
Từ
đến


9
điền dã, … Tại Phòng
TH số ….
Tự học, tự
nghiên cứu
Tại thư
viện hoặc ở
nhà
Nắm được các
khái niệm cơ sở
về hệ điều hành.


Nội dung 2, tuần 2: Khái niệm về tiến trình

Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến
Tại GĐ2
Khái niệm về tiến
trình, sự khác
nhau của tiến trình
và chương trình
Lập lịch, các thao
tác, hiệp tác,
truyền thông giữa
các tiến trình
Luồng
Thử nghiệm trên
một hệ điều hành
cụ thể UNIX hoặc
Windows để có
khái niệm trực
quan về tiến trình.

Bài tập Từ
đến
Tại GĐ2

Thử nghiệm
chương trình tạo
tiến trình và tạo
luồng.

Thảo luận Từ
đến
Tại GĐ2

Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên
cứu
Tại thư
viện, ở nhà
Nắm vững khái
niệm tiến trình,
chương trình,
luồng, cấu trúc và
trạng thái tiến
trình.


Nội dung 3, tuần 3: Lập lịch CPU
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV

chuẩn bị
Ghi
chú
Lý thuyết Từ Các khái niệm cơ
sở về lập lịch, các
Tìm các ví dụ về
xếp hàng trong


10

đến
Tại GĐ2
tiêu chí và thuật
toán lập lịch.
Cách đánh giá các
thuật toán lập lịch.

đời sống hàng
ngày, liên hệ với
các thuật toán lập
lịch đơn giản.
Bài tập Từ
đến
Tại GĐ2
Làm bài tập để
nắm vững khái
niệm lập lịch, tính
thời gian chờ
trung bình, thời

gian lưu hệ thống.
Làm các bài tập ví
dụ trên lớp.

Thảo luận Từ
đến
Tại GĐ2

Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên
cứu
Tại thư
viện, ở nhà
Làm các bài tập
được giao về nhà.


Nội dung 4, tuần 4 và 5: Đồng bộ hóa tiến trình
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến

Tại GĐ2
Tìm hiểu về cơ sở
đồng bộ hóa, các
khái niệm miền
găng, đoạn mã tới
hạn, semaphore,
monitor và các
giao tác nguyên tố
Thử nghiệm một
số ví dụ về đồng
bộ hóa trước khi
học lý thuyết trên
lớp để dễ hiểu bài
hơn.

Bài tập Từ
đến
Tại GĐ2
Giải được một số
bài tập cơ bản về
đồng bộ hóa

Thảo luận Từ
đến
Tại GĐ2

Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên

cứu
Tại thư
viện, ở nhà
Hiểu được tầm
quan trọng của
Tìm một số ví dụ
về đồng bộ hóa và


11

đồng bộ hóa trong
các ứng dụng
CNTT.
mất đồng bộ trong
đời sống hoặc
trong các hệ thống
thông tin.

Nội dung 5, tuần 6 và 7: Bế tắc
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến

Tại GĐ2
Giới thiệu về bế
tắc, cách phương
pháp phòng tránh
và giải quyết bế
tắc.
Đây là nội dung
khó, sinh viên cần
đọc tài liệu
(chương
Deadlock, tài liệu
1) trước khi học lý
thuyết.

Bài tập Từ
đến
Tại GĐ2
Thực hiện một số
bài tập cơ bản về
bế tắc và giải
quyết bế tắc.

Thảo luận Từ
đến
Tại GĐ2

Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên

cứu
Tại thư
viện, ở nhà
Hiểu được tầm
quan trọng của
vấn đề bế tắc
trong các ứng
dụng CNTT.
Tìm một số ví dụ
về bế tắc trong đời
sống hoặc trong
các hệ thống
thông tin.


Nội dung 6, tuần 8: Quản lý bộ nhớ
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến
Tại GĐ2
Giới thiệu các khái
niệm bộ nhớ vật lý,
bộ nhớ logic (ảo),

swap, phân trang,
phân đoạn.

Bài tập Từ Tính toán, chuyển
đổi địa chỉ ảo và
Làm được các
bài tập chuyển


12

đến
Tại GĐ2
địa chỉ vật lý. đổi địa chỉ ảo và
logic.
Thảo luận Từ
đến
Tại GĐ2

Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên
cứu
Tại thư
viện, ở nhà
Thử nghiệm bộ
nhớ vật lý và
logic trong một
ứng dụng đơn

giản.


Nội dung 7 và 8, tuần 9 + 10: Bộ nhớ ảo. Giờ đầu của tuần 10 (nội dung 8) dành
cho kiểm tra giữa kỳ. Thời gian kiểm tra: 60 phút.
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến
Tại GĐ2
Cơ sở của bộ nhớ
ảo, phân trang theo
yêu cầu, khái niệm
phân trang, phân
đoạn, frame.

Bài tập Từ
đến
Tại GĐ2
Làm bài tập về
quản lý bộ nhớ
ảo.

Thảo luận Từ

đến
Tại GĐ2
-
Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên
cứu
Tại thư
viện, ở nhà
Thử nghiệm bộ
nhớ ảo trong
một ứng dụng
cụ thể.





13

Nội dung 9, tuần 11: Giao diện với hệ thống tệp
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú

Lý thuyết Từ
đến
Tại GĐ2
Khái niệm về tệp,
các phương pháp
truy cập, cấu trúc
thư mục.
Khái niệm tệp
trong một hệ
điều hành cụ thể
để so sánh với
nguyên lý
chung.

Bài tập Từ
đến
Tại GĐ2

Thảo luận Từ
đến
Tại GĐ2
-
Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên
cứu
Tại thư
viện, ở nhà
So sánh khái

niệm tệp trong
UNIX/Linux và
Windows.


Nội dung 10, tuần 12: Cài đặt hệ thống tệp
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến
Tại GĐ2
Các phương thức
cài đặt hệ thống tệp:
Cấu trúc, phương
pháp cấp phát và
quản lý không gian
rỗi, cài đặt thư mục,
hiệu quả và hiệu
năng cài đặt.

Bài tập Từ
đến
Tại GĐ2


Thảo luận Từ
đến
-

14

Tại GĐ2
Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên
cứu
Tại thư
viện, ở nhà
So sánh cách
cấp phát của
UNIX/Linux với
Windows/DOS.


Nội dung 11, tuần 13: Hệ vào ra
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ

đến
Tại GĐ2
Tổng quan về vào
ra, hệ vào ra của
nhân hệ điều hành,
API vào ra, hiệu
năng vào ra.

Bài tập Từ
đến
Tại GĐ2

Thảo luận Từ
đến
Tại GĐ2
-
Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên
cứu
Tại thư
viện, ở nhà
Thử nghiệm vào
ra trong một
chương trình
ứng dụng ở các
mức khác nhau.



Nội dung 12, tuần 14: Cấu trúc lưu trữ phụ
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến
Tại GĐ2
Cấu trúc đĩa, lập
lịch đĩa, quản lý đĩa,
quản lý không gian
swap.


15

Bài tập Từ
đến
Tại GĐ2
Làm các bài tập
về quản lý bộ
nhớ ngoài, lập
lịch đĩa và quản
lý không gian
đĩa (rỗi/cấp
phát).


Thảo luận Từ
đến
Tại GĐ2

Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên
cứu
Tại thư
viện, ở nhà


Nội dung 13, tuần 15: Bảo vệ và an ninh, ôn tập cuối môn học
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến
Tại GĐ2
Bảo vệ: miền bảo
vệ, ma trận truy
cập.
An ninh: Xác thực,

mật khẩu, mã hóa,
các nguy cơ về an
ninh cho các hệ
máy tính.

Bài tập Từ
đến
Tại GĐ2

Thảo luận Từ
đến
Tại GĐ2

Thực hành, thí
nghiệm, điền dã, …

Tự học, tự nghiên
cứu
Tại thư
viện, ở nhà
Tìm hiểu về ma
trận truy cập,
cách cài đặt ma
trận truy cập
trên Windows.


16

Tìm hiểu về

virus, hack, mã
hóa, https, SSL.

8. Chính sách đối với môn học và các yêu cầu khác của giảng viên
Yêu cầu và cách thức đánh giá, sự hiện diện trên lớp, mức độ tích cực tham gia các
hoạt động trên lớp, các qui định về thời hạn, chất lượng các bài tập, bài kiểm tra….
 Chuẩn bị tốt các phần được giao tự học.
 Có mặt trên lớp ít nhất là 21/30 giờ học
 Bắt buộc tham dự bài kiểm tra giữa kỳ (điều kiện tham gia thi cuối kỳ).
9. Phương pháp, hình thức kiểm tra - đánh giá kết quả học tập môn học
9.1. Kiểm tra – đánh giá thường xuyên
9.2. Kiểm tra đánh giá định kỳ
Bao gồm các phần sau:
STT Nội dung Trọng số
(%)
Ghi chú
1.

Kiểm tra - đánh giá giữa kỳ 30


2.

Thi cuối kỳ 70



9.3. Tiêu chí đánh giá các loại bài tập
1. Bài tập về lý thuyết
 Trình bày tốt bản chất vấn đề yêu cầu, có mở rộng: 100% số điểm của bài tập

 Trình bày đúng bản chất vấn đề yêu cầu: 80-90%
 Trình bày được vấn đề ở mức trung bình: 50-70%
 Trình bày chưa đúng bản chất, nội dung: 0-40%
2. Bài tập về ứng dụng:
 Làm tốt cả diễn giải và đáp số theo đáp án: 100%
 Viết đúng diễn giải, sai đáp số: 80-90%
 Chỉ viết được diễn giải: 60%
 Chỉ biết công thức, thay số đúng: 50%
 Làm sai, không làm được: 0-40%
9.4. Lịch thi, kiểm tra (kể cả thi lại)
STT Nội dung thi, kiểm tra

Lịch thi Lịch kiểm tra Ghi chú
1. Nội dung 1 đến 8
Kiểm tra giữa
kỳ (60 phút đầu
của giờ học



17

tuần thứ 10)
2. Toàn bộ 15 nội dung Thi cuối kỳ

Theo lịch
chung của
Trường
3. Thi lại


Theo lịch
chung của
Trường



18

NGÔN NGỮ SQL
1. Thông tin về giảng viên
 Họ và tên: Dư Phương Hạnh
 Chức danh, học hàm, học vị: ThS
 Thời gian, địa điểm làm việc: Từ 8g đến 16h30g, P305, nhà E3, Khoa
CNTT, Đại học công nghệ, ĐHQG, 144 Xuân Thuỷ, Cầu Giấy, Hà Nội.
 Địa chỉ liên hệ: P305, nhà E3, Khoa CNTT, trường Đại
học công nghệ, ĐHQGHN, 144 Đường Xuân Thuỷ, Cầu Giấy, Hà Nội
 Điện thoại: 7547813
 Email:
 Các hướng nghiên cứu chính: Cơ sở dữ liệu, Khai phá dữ liệu.
Thông tin về các giảng viên khác
 TS Nguyễn Tuệ, Khoa CNTT, E3, ĐHCN, ĐHQGHN, 144, Xuân Thuỷ, Cầu
Giấy, Hà Nội. ĐT: 7547813.
 ThS. Đặng Thanh Hải, Khoa CNTT, E3, ĐHCN, ĐHQGHN, 144, Xuân
Thuỷ, Cầu Giấy, Hà Nội. ĐT: 7547813.
 ThS. Nguyễn Cẩm Tú, Khoa CNTT, E3, ĐHCN, ĐHQGHN, 144, Xuân
Thuỷ, Cầu Giấy, Hà Nội. ĐT: 7547813.
2. Thông tin chung về môn học
 Tên môn học: Ngôn ngữ SQL
 Mã môn học:
 Số tín chỉ: 2

 Môn học: - Bắt buộc: 
- Lựa chọn: 
 Các môn học tiên quyết: Nhập môn cơ sở dữ liệu .
 Các môn học kế tiếp:
 Các yêu cầu đối với môn học (nếu có):
 Giờ tín chỉ đối với các hoạt động:
 Nghe giảng lý thuyết: 10
 Làm bài tập trên lớp: 3
 Thảo luận: 2
 Thực hành ở PTN: 30
 Hoạt động theo nhóm: 0
 Tự học: 0
 Địa chỉ Khoa/ bộ môn phụ trách môn học: Bộ môn Các hệ thống thông tin,
P304-305 nhà E3, ĐHQGHN, 144 đường Xuân Thuỷ, Cầu Giấy, Hà Nội.
3. Mục tiêu của môn học
 Về kiến thức: Cung cấp cho sinh viên các kiến thức
 Cách mô tả một cơ sở dữ liệu bằng SQL

19

 Cập nhật cơ sở dữ liệu bằng SQL
 Truy vấn cơ sở dữ liệu
 Thực hiện các ràng buộc cơ sở dữ liêu
 Lập trình bằng SQL
 Thiết kế an ninh cơ sở dữ liệu
 Về kỹ năng: Sinh viên có khả năng sử dụng hệ quản trị cơ sở dữ liệu SQL
server để cài đặt và khai thác các cơ sở dữ liệu.
4. Tóm tắt nội dung môn học
 Giới thiệu các khái niệm cơ bản về ngôn ngữ SQL: các lệnh tạo cơ sở dữ liêu,
cập nhật cơ sở dữ liệu, truy vấn cơ sở dữ liệu.

 Kỹ thuật kiểm tra ràng buộc trên cơ sở dữ liệu : mô tả các ràng buộc khoá,
ràng buộc giá trị, viết các khẳng định (assertion), các trigger.
 Cách lập trình trong ngôn ngữ SQL: Viết các chương trình con, lập trình
nhúng
 Các giao tác trong SQL
 An ninh cơ sở dữ liệu trong SQL
5. Nội dung chi tiết môn học
Chương 1. SQL cơ bản
1.1. Giới thiệu ngôn ngữ SQL
1.2. Định nghĩa một lược đồ cơ sở dữ liệu quan hệ
1.2.1. Các kiểu dữ liệu
1.2.2. Các khai báo bảng đơn giản
1.2.3. Sửa đổi các lược đồ quan hệ
1.2.4. Các giá trị ngầm định
1.2.5. Các chỉ số
1.2.6. Nhập môn về lựa chọn chỉ số
1.3. Các truy vấn đơn giản trong SQL
1.3.1. Phép chiếu trong SQL
1.3.2. Phép chọn trong SQL
1.3.3. So sánh các xâu
1.3.4. Ngày tháng và thời gian
1.3.5. Các giá trị null và các so sánh bao hàm null
1.3.6. Giá trị logic UNKNOWN
1.3.7. Sắp xếp thứ tự dữ liệu ra
1.3.8. Các hàm thông dụng trong SQL
1.4. Các truy vấn bao gồm nhiều hơn một quan hệ
1.4.1. Tích và nối trong SQL
1.4.2. Làm rõ nghĩa các thuộc tính
1.4.3. Các biến bộ


20

1.4.4. Các phép hợp, giao, trừ các truy vấn
1.5. Các truy vấn con
1.5.1. Các truy vấn con tạo ra các giá trị vô hướng
1.5.2. Các điều kiện có bao hàm các quan hệ
1.5.3. Các điều kiện có bao hàm các bộ
1.5.4. Các truy vấn con tương quan với nhau
1.5.5. Các truy vấn con trong mệnh đề FROM
1.5.6. Các biểu thức nối của SQL
1.5.7. Nối tự nhiên
1.5.8. Nối ngoài
1.6. Các phép toán quan hệ đầy đủ
1.6.1. Loại bỏ trùng lặp
1.6.2. Trùng lặp trong phép hợp, phép giao, phép trừ
1.6.3. Nhóm và sự kết hợp trong SQL
1.6.4. Các phép toán nhóm
1.6.5. Nhóm
1.6.6. Các mệnh đề HAVING
1.7. Sửa đổi cơ sở dữ liệu
1.7.1. Chèn
1.7.2. Xóa
1.7.3. Cập nhật
1.8. Khung nhìn
1.8.1. Khai báo các khung nhìn
1.8.2. Truy vấn các khung nhìn
1.8.3. Đặt tên lại các thuộc tính
1.8.4. Sửa đối các khung nhìn
1.8.5. Giải thích các truy vấn có chứa các khung nhìn
1.9. Tổng kết chương I và bài tập

Chương 2. Các ràng buộc và các trigger
2.1. Khóa và khóa ngoài
2.1.1. Mô tả khóa chính
2.1.2. Các khóa được mô tả với UNIQUE
2.1.3. Làm có hiệu lực các ràng buộc khóa
2.1.4. Mô tả các ràng buộc khóa ngoài
2.1.5. Duy trì toàn vẹn tham chiếu
2.1.6. Làm chậm việc kiểm tra ràng buộc
2.2. Các ràng buộc trên các thuộc tính và các bộ
2.2.1. Các ràng buộc NOT NULL
2.2.2. Các ràng buộc kiểm tra dựa trên các thuộc tính

21

2.2.3. Các ràng buộc kiểm tra dựa trên các bộ
2.3. Sửa đổi các ràng buộc
2.3.1. Đặt tên cho các ràng buộc
2.3.2. Sửa đổi các ràng buộc trên các bảng
2.4. Các ràng buộc mức lược đồ và các trigger
2.4.1. Khẳng định ( Assertion)
2.4.2. Trigger
2.4.3. Các trigger trong SQL
2.4.4. Các trigger Instead-of
2.5. Tổng kết chương II và bài tập
Chương 3. Lập trình
3.1. SQL nhúng
3.1.1. Vấn đề trở ngại không phù hợp
3.1.2. Giao diện ngôn ngữ chủ/SQL
3.1.3. Phần khai báo
3.1.4. Sử dụng các biến dùng chung

3.1.5. Các câu lệnh Select đơn hàng
3.1.6. Con trỏ ( Cursor)
3.1.7. Cập nhật bằng con trỏ
3.1.8. Bảo vệ khỏi sự cập nhật đồng thời
3.1.9. Con trỏ cuộn
3.1.10. SQL động
3.2. Các thủ tục được lưu giữ trong lược đồ
3.2.1. Tạo các hàm và các thủ tục PSM
3.2.2. Một vài dạng câu lệnh đơn giản trong PSM
3.2.3. Các câu lệnh rẽ nhánh
3.2.4. Các truy vấn trong PSM
3.2.5. Vòng lặp trong PSM
3.2.6. Vòng lặp FOR
3.2.7. Những câu lệnh lặp khác
3.2.8. Các thủ tục được lưu giữ trong SQL Server 2000
3.3. Môi trường SQL
3.3.1. Môi trường
3.3.2. Lược đồ
3.3.3. Danh mục
3.3.4. Client và Server trong môi trường SQL
3.3.5. Kết nối
3.3.6. Phiên
3.3.7. Module

22

3.4. Giao tác trong SQL
3.4.1. Xếp hàng theo thứ tự
3.4.2. Atomicity
3.4.3. Giao tác

3.4.4. Read-only transaction
3.4.5. Dirty read
3.4.6. Các mức cô lập khác
3.5. An toàn và cấp quyền trong SQL
3.5.1. Các quyền
3.5.2. Tạo các quyền
3.5.3. Tiến trình kiểm tra các quyền
3.5.4. Cấp các quyền
3.5.5. Biểu đồ grant
3.5.6. Hủy bỏ các quyền
3.6. Tổng kết chương III và bài tập

6. Học liệu
6.1. Học liệu bắt buộc
[1] Nguyễn Tuệ : Giáo trình ngôn ngữ SQL
6.2. Học liệu tham khảo
[2] Implementing RDBMS Concept with SQL Server 2000. Aptech Worldwide,
USA,2000
[3] Hector Garcia-Molina, Jeffrey D.Ullman, Jennifer Widom. Database System :
The Complete book. Prentice Hall,2002
[4] C.J Date, Hug Darwen. A guid to SQL standard. Addition-Wesley Publishing
company, 1993

7. Hình thức tổ chức dạy học
7.1. Lịch trình chung
Nội dung (ND)
Hình thức tổ chức dạy học môn học
Tổng

Lên lớp Thực

hành, thí
nghiệm,
điền dã

Tự
học, tự
nghiên
cứu

thuyết
Bài
tập
Thảo
luận
ND 1: Giới thiệu ngôn ngữ
SQL
2.0





1.0

ND 2: Truy vấn SQL đơn
giản
1.0

1.0



3.0


4.0


23

ND 3: Các truy vấn tăng
cường
1.0

1.0


3.0


4.5

ND 4: Khung nhìn (View) 1.0

1.0


3.0


4.5


ND 5: Các ràng buộc trên
thuộc tính và các bộ
1.0

1.0


3.0


4.5

ND 6: Các ràng buộc mức
lược đồ và trigger
1.0

1.0


3.0


4.5

ND 7: Thi giữa kỳ



3.0



3.0

ND8: Các thủ tục được lưu
trữ (stored procedure)
1.0

1.0


3.0


4.5

ND9: Quản lý giao tác trong
SQL
1.0

1.0


3.0


4.5

ND10: An toàn và cấp quyền
trong SQL

1.0

1.0


3.0


4.0

ND11: Ôn tập thi cuối kỳ 2.0



3.0


6.0

Cộng 10

3

2

30


45



7.2. Lịch trình tổ chức dạy học cụ thể
Nội dung 1, tuần 1: Giới thiệu ngôn ngữ SQL
Hình thức tổ
chức dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi chú
Lý thuyết Từ
đến
Tại GĐ2
- Lịch sử phát
triển ngôn ngữ
SQL, các chuẩn
ngôn ngữ SQL
khác nhau
- Giới thiệu tổng
quan về ngôn ngữ
SQL

Bài tập
Thảo luận
Thực hành,
thí nghiệm,
điền dã, …

Tự học, tự
nghiên cứu

Tại thư
viện hoặc ở
nhà
Nắm được các
khái niệm cơ sở
về ngôn ngữ SQL


24


Nội dung 2, tuần 2: SQL đơn giản
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến
Tại GĐ2
- Ngôn ngữ định
nghĩa dữ liệu, sửa
đổi dữ liệu
- Truy vấn trên
một quan hệ; các
phép toán; cá giá
trị đặc biệt

- Truy vấn bao
gồm nhiều hơn
một quan hệ

Bài tập Từ
đến
Tại GĐ2
Các bài tập tương
ứng với ba nội
dung trên

Thảo luận Từ
đến
Tại GĐ2

Thực hành, thí
nghiệm, điền dã, …
- Làm quen với hệ
quản trị ơ sở dữ
liệu SQLServer
2000
- Thực hành cài
đặt cơ sở dữ liệu
mẫu theo hướng
dẫn của giáo viên
thực hành

Tự học, tự nghiên
cứu
Tại thư

viện, ở nhà
Thực hành cài đặt
cơ sở dữ liệu mẫu
bằng dòng lệnh


Nội dung 3, tuần 3: Các truy vấn tăng cường
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến
- Truy vấn con
- Các biểu thức


25

Tại GĐ2 nối trong SQL
- Các phép toán
quan hệ đầy đủ
Bài tập Từ
đến
Tại GĐ2
Các bài tập, ví dụ

minh họa tương
ứng với ba nội
dung trên

Thảo luận Từ
đến
Tại GĐ2

Thực hành, thí
nghiệm, điền dã, …
- Thực hành cài
đặt cơ sở dữ liệu
mẫu bằng dòng
lệnh
- Thực hiện các
truy vấn trên cơ
sở dữ liệu mẫu đã
cài đặt.

Tự học, tự nghiên
cứu
Tại thư
viện, ở nhà
Thành thạo các
truy vấn đơn giản
và phức tạp; lưu ý
thao tác trên các
giá trị đặc biệt



Nội dung 4, tuần 4: Khung nhìn.
Hình thức tổ chức
dạy học
Thời gian,
địa điểm
Nội dung chính Yêu cầu SV
chuẩn bị
Ghi
chú
Lý thuyết Từ
đến
Tại GĐ2
- Ý nghĩa của
khung nhìn
- Cách thức định
nghĩa một khung
nhìn
- Sử dụng khung
nhìn trong truy
vấn và sửa đỗi dữ
liệu

Bài tập Từ
đến
Tại GĐ2
Các ví dụ minh
họa

×