Các nội dung trọng tâm của môn học Nội dung trọng tâm của môn học đã được ghi ở phần mục tiêu môn học trong đề cương môn học: Nội dung kiến thức: 1 Cơ sở dữ liệu quan hệ và các khái niệm
Trang 1TÀI LIỆU HƯỚNG DẪN ÔN TẬP MÔN HỌC: NHẬP MÔN CƠ SỞ DỮ LIỆU
I Các nội dung trọng tâm của môn học
Nội dung trọng tâm của môn học (đã được ghi ở phần mục tiêu môn học trong
đề cương môn học):
Nội dung kiến thức:
1) Cơ sở dữ liệu quan hệ và các khái niệm liên quan
2) Đại số quan hệ và phép toán quan hệ
3) Ngôn ngữ SQL (DDL và DML)
4) Phụ thuộc hàm và các bài toán liên quan
5) Các dạng chuẩn và việc chuẩn hóa cơ sở dữ liệu
Nội dung thực hành:
1) Thiết kế cơ sở dữ liệu quan hệ
2) Viết lệnh SQL
3) Xác định dạng chuẩn và chuẩn hóa cơ sở dữ liệu
4) Tìm khóa của quan hệ
II Cách thức ôn tập
- Môn học này gồm 4 tín chỉ, có nội dung kiến thức khá nhiều Trong đó nội dung quan trọng nằm ở cả phần lý thuyết và phần thực hành
- Ở các nội dung có tính lý thuyết, sinh viên cần nắm vững phần tổng quan trước, sau đó mới tìm hiểu đến các nội dung chi tiết Cách tiếp cận để học tốt các nội dung lý thuyết thường là: lần lượt trả lời các câu hỏi dạng:
o Chúng ta học chương/ phần/ khái niệm này để làm gì?
o Ngữ cảnh kiến thức này ở đâu, mức độ nào, lĩnh vực nào, quan trọng như thế nào, phục vụ cho công việc gì, cho ai?
Trang 2o Tính cập nhật (hay tính mới) và giá trị thời gian sử dụng của nội dung này như thế nào?
o Nếu chúng ta không biết đến chương/ phần/ khái niệm này thì chúng ta
có bất lợi gì, chúng ta sẽ không thể biết hay không thể làm được gì, chúng ta sẽ không thể học tiếp được những gì?
o Cấu trúc nội dung cần học từ tổng quan đến chi tiết là như thế nào?
o Làm tất cả các câu hỏi hay bài tập có liên quan đến nội dung đã học
- Ở các nội dung thực hành, sinh viên cần nắm rõ ý nghĩa và mục tiêu của công việc phải làm trước, sau đó mới tìm hiểu đến các thao tác chi tiết Cách học tốt các nội dung thực hành là nên làm tất cả các bài tập thực hành (có thể làm lại nhiều lần nếu cần thiết) và hiểu rõ đề bài (từ đó hiểu ý nghĩa, mục đích của bài thực hành) và cách thực hiện để có kết quả đúng theo yêu cầu của đề bài thực hành
III Hướng dẫn làm bài kiểm tra, bài thi cuối kỳ
Môn này có thể có một hay hai cột điểm Nếu giảng viên không cho kiểm tra thực hành và không cho làm bài tập lớn thì điểm thi tự luận cuối kỳ sẽ có trọng số 100% Nếu có kiểm tra thực hành hay cho làm bài tập lớn thì điểm thi được tính như sau:
- Bài kiểm tra (hay thi) thực hành trên máy lấy điểm quá trình (trọng số 40%) Bài kiểm tra này có thể được thay thế bằng một bài tập lớn môn học có nội dung liên quan đến kỹ năng thực hành của môn học
- Bài kiểm tra (hay thi) lý thuyết tự luận trên giấy lấy điểm thi cuối kỳ (trọng số 60%)
a Nội dung đề thi thực hành
Đề thi thực hành được yêu cầu thực hiện trên máy tính trong thời gian 90 phút, trên phần mềm Microsoft Access, các nội dung chính là:
1) Thiết kế cơ sở dữ liệu quan hệ (trên máy) (3-4 điểm)
2) Sử dụng công cụ QBE để tạo các truy vấn dữ liệu dạng DML để xem, thêm, xóa, sửa, thống kê dữ liệu (2-4 điểm)
Trang 33) Thiết kế form xem, thêm, xóa, sửa dữ liệu; form main/sub; form thống
kê dữ liệu; form điều khiển chương trình (2-6 điểm) 4) Thiết kế report (có đánh số thứ tự, có gom nhóm dữ liệu, có thống kê dữ liệu) (2-4 điểm)
b Nội dung đề thi lý thuyết cuối kỳ
Đề thi cuối kỳ là đề thi tự luận trong 120 phút trên giấy, các nội dung chính là:
1) Thiết kế cơ sở dữ liệu quan hệ (2-4 điểm)
2) Viết lệnh SQL để tạo các truy vấn dữ liệu dạng DML (có kết nhiều bảng, có nhiều điều kiện lọc dữ liệu, có thống kê, có gom nhóm dữ liệu,
có truy vấn con) (4-6 điểm) 3) Xác định dạng chuẩn và chuẩn hóa cơ sở dữ liệu (2-3 điểm)
4) Tìm tất cả các khóa ứng viên của một quan hệ (1-2 điểm)
IV Đánh giá kết quả học tập cuối môn học
Kiểm tra lấy điểm quá trình (thi thực hành hay làm bài tập lớn): 40% Kiểm tra cuối kỳ (thi tự luận trên giấy): 60%
V Đề thi mẫu
Đề thi lý thuyết mẫu: 3 đề (đề 1 có đáp án, thang điểm)
Đề thi thực hành mẫu: 2 đề
Trang 4TRƯỜNG ĐẠI HỌC MỞ TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ THI CUỐI HỌC KỲ (ĐỀ 1) MÔN: NHẬP MÔN CƠ SỞ DỮ LIỆU LỚP: - HỆ: ĐẠI HỌC
Thời gian làm bài: 120 phút Sinh viên không được sử dụng tài liệu Câu 1: (4 điểm)
Thiết kế một cơ sở dữ liệu quan hệ đạt dạng chuẩn 3NF (hay BCNF) để lưu dữ liệu quản lý đăng ký xe gắn máy 2 bánh Các yêu cầu khi thiết kế:
Thông tin về chủ sở hữu xe máy: họ, tên, số CMND, ngày sinh, hộ khẩu, địa chỉ liên lạc, số điện thoại
Thông tin về xe máy: nhãn hiệu xe (model), số sườn, số máy, hãng sản xuất, nước sản xuất, nguồn gốc xe, dung tích xi-lanh, màu sơn
Thông tin về đăng ký xe như: ngày đăng ký, chủ sở hữu, xe máy đăng ký, biển
số được cấp, tình trạng xe khi đăng ký, người duyệt thủ tục, người ký giấy đăng
ký
Một người có thể đăng ký nhiều xe gắn máy
Một xe gắn máy (qua thời gian) có thể được nhiều chủ sở hữu đăng ký, hay được một chủ sở hữu đăng ký nhiều lần (ví dụ chủ sở hữu đã bán xe sau đó mua lại chính chiếc xe đã bán)
Câu 2: (3 điểm)
Cho các quan hệ:
Xe(MãXe, TênXe, NhãnHiệu, NgàyMua, GiáTiềnMua, TìnhTrạngXe, GhiChú) KháchThuê(MãKT, HọKT, TênKT, SốCMND, ĐịaChỉLiênLạc, ĐiệnThoại, GhiChú)
ThuêXe(MãXe, MãKT, NgàyGiờThuê, NgàyGiờTrả, TiềnThuê, ĐặtCọc, GhiChú)
Các khóa ngoại:
- Thuộc tính khóa ngoại ThuêXe.MãXe tham khảo đến thuộc tính Xe.MãXe
- Thuộc tính khóa ngoại ThuêXe.MãKT tham khảo đến thuộc tính KháchThuê.MãKT
Trang 52.1 (1 điểm) Lập danh sách các xe chưa cho thuê được lần nào Danh sách gồm 2 cột
mã xe và tên xe
2.2 (1 điểm) Lập danh sách thống kê số lần cho thuê và số tiền cho thuê (doanh thu) của từng xe trong năm 2012 Danh sách gồm có 4 cột: Mã xe, tên xe, số lần cho thuê
và số tiền cho thuê
2.3 (1 điểm) Lập danh sách thống kê tổng số lần thuê xe và tổng số tiền thuê xe của từng khách thuê, chỉ tính các khách thuê từ 5 lần trở lên Danh sách gồm có 5 cột: Mã khách thuê, họ khách thuê, tên khách thuê, số lần thuê xe và số tiền thuê xe
Câu 3: (3 điểm)
Xác định tất cả các khóa ứng viên của lược đồ quan hệ:
R(A,B,C,D,E,G,H) với tập phụ thuộc hàm là:
F = { C AD (f1)
G B (f3) }
HẾT
ĐÁP ÁN
ĐỀ THI CUỐI HỌC KỲ (ĐỀ 1) Câu 1: (4 điểm)
Đáp án:
XeGM(MãXeGM, NhãnHiệuModel, SốSườn, SốMáy, HãngSảnXuất, NướcSảnXuất,
NguồnGốcXe, DungTíchXiLanh, MàuSơn, GhiChú)
ChủSởHữu(MãCSH, Họ, Tên, SốCMND, NgàySinh, HộKhẩu, ĐịaChỉLiênLạc,
SốĐiệnThoại, GhiChú)
ĐăngKýXeGM(MãCSH, MãXeGM, NgàyĐăngKý, BiểnSốĐượcCấp,
TìnhTrạngXeKhiĐăngKý, NgườiDuyệtThủTục,NgườiKýGiấyĐăngKý, GhiChú)
Các khóa ngoại:
ĐăngKýXeGM.MãCSH là khóa ngoại tham khảo đến ChủSởHữu.MãCSH
ĐăngKýXeGM.MãXeGM là khóa ngoại tham khảo đến XeGM.MãXeGM
Ghi chú thang điểm chấm bài:
- Các bảng không thỏa dạng chuẩn 1: 0 điểm
Trang 6- Sai do không xác định được các quan hệ: trừ từ 0,5 đến 1,5 điểm
- Sai do không xác định được các khóa chính: trừ từ 1 đến 1,5 điểm
- Sai do không xác định được các khóa ngoại: trừ từ 0,5 đến 1,5 điểm
Câu 2: (3 điểm)
Viết câu lệnh SQL:
Ghi chú thang điểm chấm từng câu SQL:
- Sai cú pháp SQL cơ bản: 0 điểm
- Không viết điều kiện kết bảng: 0 điểm
- Viết sai mệnh đề SELECT: trừ 0,25 đến 0,5 điểm
- Danh sách kết quả bị lặp: trừ 0,25 điểm
- Sử dụng nhiều bảng hơn đáp án: trừ 0,25 đến 0,5 điểm
- Mỗi lỗi khác: trừ 0,25 điểm
Đáp án:
2.1 (1 điểm) Lập danh sách các xe chưa cho thuê được lần nào Danh sách gồm 2 cột
mã xe và tên xe
SELECT MãXe, TênXe FROM Xe
WHERE MãXe NOT IN (SELECT MãXe FROM ThuêXe);
2.2 (1 điểm) Lập danh sách thống kê số lần cho thuê và số tiền cho thuê (doanh thu) của từng xe trong năm 2012 Danh sách gồm có 4 cột: Mã xe, tên xe, số lần cho thuê
và số tiền cho thuê
SELECT Xe.MãXe, TênXe, Count(NgàyGiờThuê) AS SốLầnThuê, Sum(TiềnThuê) AS SốTiềnThuê
FROM Xe, ThuêXe WHERE Xe.MãXe = ThuêXe.MãXe AND Year(NgàyGiờThuê) = 2012 GROUP BY Xe.MãXe, TênXe;
2.3 (1 điểm) Lập danh sách thống kê tổng số lần thuê xe và tổng số tiền thuê xe của từng khách thuê, chỉ tính các khách thuê từ 5 lần trở lên Danh sách gồm có 5 cột: Mã khách thuê, họ khách thuê, tên khách thuê, số lần thuê xe và số tiền thuê xe
Trang 7SELECT KháchThuê.MãKT, HọKT, TênKT, Count(NgàyGiờThuê) AS SốLầnThuê, Sum(TiềnThuê) AS SốTiềnThuê
FROM KháchThuê, ThuêXe
WHERE KháchThuê.MãKT = ThuêXe.MãKT
GROUP BY KháchThuê.MãKT, HọKT, TênKT
HAVING Count(NgàyGiờThuê)>=5;
Câu 3: (3 điểm)
Xác định tất cả các khóa ứng viên của lược đồ quan hệ:
R(A,B,C,D,E,G,H) với tập phụ thuộc hàm là:
F = { C AD (f1)
G B (f3) }
Đáp án:
Tập gốc = {CEH}
Tập lá = {A}
Tập trung gian = {BDG}
Xét {CEH}+ = {CEHAD} <> R {CEH} không là khóa ứng viên
Xét {CEHB}+ = {CEHBADG} = R {CEHB} là khóa ứng viên thứ nhất Xét {CEHD}+ = {CEHDA} <> R {CEHD} không là khóa ứng viên
Xét {CEHG}+ = {CEHGADB} = R {CEHG} là khóa ứng viên thứ hai
Xét {CEHDB}: là siêu khóa vì {CEHB} là khóa ứng viên
Xét {CEHDG}: là siêu khóa vì {CEHG} là khóa ứng viên
Kết luận: có tất cả 2 khóa ứng viên là {CEHB} và {CEHG}
Ghi chú thang điểm chấm bài:
- Hiểu sai các thuật ngữ cơ bản khóa ứng viên, siêu khóa, quan hệ, thuộc tính, bao đóng, : 0 điểm
- Làm sai giải thuật tìm tất cả các khóa ứng viên: 0 điểm
- Tìm được 1 khóa ứng viên: trừ 0,5 đến 1,5 điểm
- Chỉ xác định được các tập gốc, lá, trung gian: 0,5 điểm
- Mỗi lỗi khác: trừ từ 0,25 – 1,0 điểm
HẾT
Trang 8TRƯỜNG ĐẠI HỌC MỞ TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ THI CUỐI HỌC KỲ (ĐỀ 2) MÔN: NHẬP MÔN CƠ SỞ DỮ LIỆU LỚP: - HỆ: ĐẠI HỌC
Thời gian làm bài: 120 phút Sinh viên không được sử dụng tài liệu Câu 1: (3 điểm)
Anh chị hãy thiết kế một cơ sở dữ liệu (CSDL) quan hệ đạt dạng chuẩn 3NF hay BCNF để lưu dữ liệu quản lý nhân sự đoàn vận động viên Việt nam đi thi đấu ở SEAGAMES 24 tại Thái lan Các thông tin cần thiết để thiết kế CSDL là:
Đoàn gồm 4 thành phần sau đây: Quan chức, Huấn luyện viên, Cán bộ hỗ trợ,
và các Vận động viên
Một vận động viên có thể tham gia 1 hay nhiều môn thi đấu, và có một huấn luyện viên chính
Một bộ môn (ví dụ bóng bàn) gồm nhiều môn thi đấu (ví dụ bóng bàn đơn nam), một môn thi đấu thuộc 1 bộ môn
Một bộ môn gồm nhiều huấn luyện viên, một huấn luyện viên thuộc 1 bộ môn
Một bộ môn gồm nhiều cán bộ hỗ trợ và có 1 quan chức phụ trách
Một cán bộ hỗ trợ chỉ thuộc 1 bộ môn, 1 quan chức có thể phụ trách nhiều bộ môn
Thông tin cá nhân của 4 thành phần nhân sự trong đoàn cần được lưu, trong đó cần lưu thêm thông tin về thành tích của huấn luyện viên và thành tích của vận động viên
Thông tin về các bộ môn và các môn thi đấu cũng cần được lưu
Câu 2: (5 điểm)
Cho các quan hệ:
KHÁCH_HÀNG(mã_kh, tên_kh, giới_tính, địa_chỉ)
HÀNG_HÓA(mã_hh, tên_hh, đơn_giá_mua, đơn_vị_tính, loại_hàng)
ĐƠN_HÀNG(mã_đh, mã_kh, ngày_mua)
CHI_TIẾT_ĐH(mã_đh, mã_hh, đơn_giá_bán, số_lượng)
Anh chị hãy viết câu truy vấn bằng lệnh SQL cho các câu hỏi sau:
1) Lập danh sách khách hàng ở tại Phú quốc (1đ)
Trang 92) Lập danh sách hàng hóa được bán cho khách hàng ở tại Phú quốc (1đ)
3) Lập danh sách thống kê gồm 3 cột: mã hàng hóa, tên hàng hóa và tổng số tiền
đã bán, sắp xếp theo chiều giảm dần tổng số tiền đã bán (1đ)
4) Lập danh sách thống kê gồm 4 cột: mã khách hàng, tên khách hàng, tổng số đơn hàng đã mua, và tổng tiền đã mua, sắp xếp tăng dần theo mã khách hàng (1đ)
5) Lập danh sách khách hàng chưa mua đơn hàng nào (1đ)
Câu 3: (2 điểm)
Xác định tất cả các khóa ứng viên của lược đồ quan hệ có 7 thuộc tính sau:
R(A,B,C,D,E,G,H) với tập phụ thuộc hàm
F = {CH B ; DB G ; DGH C ; H DE }
HẾT
Trang 10TRƯỜNG ĐẠI HỌC MỞ TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ THI CUỐI HỌC KỲ (ĐỀ 3) MÔN: NHẬP MÔN CƠ SỞ DỮ LIỆU LỚP: - HỆ: ĐẠI HỌC
Thời gian làm bài: 120 phút Sinh viên không được sử dụng tài liệu Câu 1: (3 điểm)
Anh chị hãy thiết kế một cơ sở dữ liệu (CSDL) quan hệ đạt dạng chuẩn 3NF để lưu dữ liệu quản lý bán hàng cho một siêu thị mini Các thông tin cần thiết để thiết
kế CSDL là:
Thông tin về hàng hóa và loại hàng hóa, biết rằng một hàng hóa thuộc một loại hàng hóa, một loại hàng hóa có nhiều hàng hóa
Thông tin về khách hàng như họ tên, địa chỉ, điện thoại
Thông tin về hóa đơn bán hàng, biết 1 khách hàng mỗi lần mua sẽ có 1 hóa đơn bán hàng, 1 hóa đơn bán hàng có thể gồm nhiều hàng hóa khách đã mua
Thông tin về nhân viên của siêu thị
Thông tin về 1 hóa đơn gồm: khách hàng, ngày mua, nhân viên tính tiền
Mỗi món hàng trong 1 hóa đơn có kèm thông tin đơn giá, số lượng
Câu 2: (5 điểm)
Cho các quan hệ:
MÔN_HỌC(mã_mh, tên_mh, số_tín_chỉ, mã_bộmôn)
BỘ_MÔN(mã_bộmôn, tên_bm, tên_trưởng_bm, khoa)
SINH_VIÊN(mã_sv, họ_sv, tên_sv, giới_tính, ngày_sinh, lớp, khoa, địa_chỉ) HỌC(mã_sv, mã_mh, ngày_đăng_ký, điểm)
Anh chị hãy viết câu truy vấn bằng lệnh SQL cho các câu hỏi sau:
1) Lập danh sách các môn học có số tín chỉ lớn hơn hay bằng 3 (1đ)
2) Lập danh sách các môn học thuộc bộ môn có tên bộ môn là “đồ họa” (1đ) 3) Lập danh sách các sinh viên có đăng ký học môn học có tên là “Hệ điều hành” (1đ)
Trang 114) Lập danh sách thống kê gồm 4 cột: mã sinh viên, họ, tên sinh viên và tổng số môn học sinh viên đã đăng ký học (1đ)
5) Lập danh sách thống kê gồm 3 cột: mã bộ môn, tên bộ môn và số lượng môn học của bộ môn (1đ)
Câu 3: (2 điểm)
Xác định tất cả các khóa ứng viên của lược đồ quan hệ có 6 thuộc tính sau:
R(A,B,C,D,E,G) với tập phụ thuộc hàm
F = {G CD; CEG B; AC E; BG A}
HẾT
Trang 12TRƯỜNG ĐẠI HỌC MỞ TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ KIỂM TRA THỰC HÀNH (ĐỀ 1) MÔN: NHẬP MÔN CƠ SỞ DỮ LIỆU THỜI GIAN: 90 PHÚT
ĐƯỢC SỬ DỤNG TÀI LIỆU GIẤY Chú ý: Sinh viên phải đặt tên file đúng theo qui định của đề thi, và phải lưu đúng vào thư mục được hướng dẫn trong phòng thi
Câu 1: (4 điểm)
Thiết kế một CSDL bằng MS Access (lưu tên file MSSV-HoTen-Cau1.mdb) để lưu dữ liệu quản lý nhân sự cho một công ty xây dựng theo các miêu tả sau:
Công ty hiện có 3 chi nhánh là Sài gòn, Đà nẳng và Hà nội Mỗi chi nhánh có các phòng ban như phòng thiết kế, phòng kế toán, phòng thi công, … Mỗi chi nhánh có 1 giám đốc và 2 phó giám đốc, mỗi phòng ban có 1 trưởng phòng ban
và các nhân viên
Các nhân viên có thể được lưu chuyển qua các phòng ban khác nhau và các chi nhánh khác nhau sau một khoảng thời gian làm việc CSDL phải lưu được tất
cả quá trình tham gia vào các phòng ban của các nhân viên như ngày vào làm việc tại phòng ban và ngày thôi làm việc tại phòng ban
CSDL lưu các thông tin cá nhân về nhân viên như họ tên, ngày sinh, địa chỉ, quê quán, số CMND, số điện thoại liên lạc, …
Khi sử dụng, CSDL phải lưu được các chi nhánh sau này sẽ mở thêm như ở Cần thơ, Huế, …
Chú ý: CSDL phải có relationship và tạo look-up combo cho các thuôc tính khóa ngoại
Câu 2: (tổng cộng 6 điểm)
Copy file CSDLCau2.mdb, sửa lại tên file MSSV-HoTen-Cau2.mdb sau đó mở file này và thực hiện các câu sau:
2.1 Hãy tạo 2 form cho 2 bảng tương ứng của CSDL là form: (2 điểm)
- Form Sản phẩm (dạng tabular)
- Form Đơn đặt hàng (dạng columnar,)
Đặt tên các form trùng với tên các bảng tương ứng Trên mỗi form có 2 nút lệnh để
mở report ở câu 2.2, nút thứ nhất mớ rerport in tất cả thông tin; nút thứ hai mở report chỉ in thông tin liên quan đến thông tin hiện hành trên form