Bài 1: ĐỊA LÝ VIỆT NAMCho CSDL Địa lý có cấu trúc như sau : TINH_TP MA_T_TP, DT, DS, TEN_T_TP MIEN MA_T_TP, MIEN BIENGIOI NUOC, MA_T_TP LANGGIENG MA_T_TP, LG Thực hiện các yêu cầu sau
Trang 1Bài 1: ĐỊA LÝ VIỆT NAM
Cho CSDL Địa lý có cấu trúc như sau :
TINH_TP (MA_T_TP, DT, DS, TEN_T_TP)
MIEN ( MA_T_TP, MIEN)
BIENGIOI ( NUOC, MA_T_TP)
LANGGIENG (MA_T_TP, LG)
Thực hiện các yêu cầu sau :
I/Cài đặt CSDL trên với mô tả đặt tính của các thuộc tính cho như sau :
Thuộc tính Mô tả Kiểu Kích thước
MA_T_TP Mã số tỉnh, thành phố Text 3
DT Diện tích (Km2) Number Double
DS Dân số (Người) Number Integer
TEN_T_TP Tên tỉnh, Thành phố Text 20
MIEN Miền (Bắc, Trung, Nam, ) Text 15
NUOC Nước có biên giới Text 15
LG Giống như MA_T_TP
Trang 22,001
80
BÌNH TRỊ THIÊN
III/ Truy vấn các thông tin sau bằng ngôn ngữ SQL:
1 .Xuất ra tên tỉnh, TP cùng với dân số của tỉnh,TP :
a/ - Có diện tích >= 5,000 Km 2
b/ - Có diện tích >= [input]
Xuất ra tên tỉnh, TP cùng với diện tích của tỉnh,TP :
a/ - Thuộc miền bắc
b/ - Thuộc miền [input]
Xuất ra các Tên tỉnh, TP biên giới thuộc miền [input]
Cho biết diện tích trung bình của các tỉnh, TP (Tổng DT/Tổng số tỉnh_TP).
Cho biết dân số cùng với tên tỉnh của các tỉnh, TP có diện tích >7000 Km 2
Cho biết dân số cùng với tên tỉnh của các tỉnh miền Bắc.
Cho biết mã các nuớc biên giới của các tỉnh miền Nam.
Cho biết diện tích trung bình của các tỉnh, TP (sử dụng hàm)
Cho biết mật độ dân số (DS/DT) cùng với tên tỉnh, TP của tất cả các tỉnh,TP.
Cho biết tên các tỉnh,TP láng giềng của tỉnh Long An.
Cho biết số lượng các tỉnh, TP giáp với CPC.
Cho biết tên những tỉnh, TP có diện tích lớn nhất.
Cho biết tỉnh, TP có mật độ DS đông nhất.
Cho biết tên những tỉnh, TP giáp với hai nước biên giới khác nhau.
Cho biết danh sách các miền cùng với các tỉnh, TP trong các miền đó.
Cho biết tên những tỉnh, TP có nhiều láng giềng nhất.
Cho biết những tỉnh, TP có diện tích nhỏ hơn diện tích trung bình của tất cả tỉnh, TP Cho biết tên những tỉnh, TP giáp với các tỉnh, TP ở miền Trung và không phải là miền Trung.
Cho biết tên những tỉnh, TP có một diện tích lớn hơn tất cả các tỉnh, TP láng giềng của nó.
Cho biết tên những tỉnh, TP mà ta có thể đến bằng cách đi từ TP.HCM xuyên qua ba tỉnh khác nhau và cũng khác với điểm xuất phát, nhưng láng giềng với nhau.
Trang 3TN 4,030.0
0772.50 TÂY NINH
Trang 61/Tạo và nhập dữ liệu cho các bảng sau:
SVIEN(MASV, TEN, NAMT, KHOA)
MHOC(MAMH, TEN_MH, TINCHI, KHOA)
DKIEN(MAMH, MAMH_TRUOC)
K_HOC(MAKH, MAMH, HOCKY, NAM, GV)
KQUA(MASV, MAKH, DIEM)
COSC1310 Nhập môn tin
học
COSC3320 Cấu trúc dữ liệu 4 CNTT
Trang 74 Cho biết kết quả học tập của sinh viên có mã số 8
5 Cho biết các mã sô môn học phải học trước môn có mã số COSC3320
6 Cho biết các mã sô môn học phải học sau môn có mã số COSC3320
7 Cho biết tên sinh viên và các môn học mà sinh viên đó tham gia với kết quả cuối khóa trên 7 điểm
8 Cho biết tên s inh viên thuộc về khoa có phụ trách môn học “Tooán rời rạc”
9 Cho biết tên các môn học phải học ngay trước môn “Cơ sở dữ liệu”
10 Cho biết tên các môn học phải học ngay sau môn “Cơ sở dữ liệu”
11 Cho biết tên sinh viên và điểm trung bình của sinh viênđó trong từng học kỳ của từng niên học
12 Cho biết sinh viên đạt điểm cao nhất
13 Cho biết tên sinh viên tham dự tất cả các môn học
14 Hiện DS sinh viên (TEN, MASV) có điểm cao nhất của những môn học năm trong nhiều khóa học nhất
15 Trong từng năm học, học kỳ nào có số môn nhiều nhất
Thông tin cần hiện :NAM, HOCKY, SOMON_NHIEU_NHAT
Trang 8ĐỀ THI THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU
(Thời gian làm bài 60 phút –Không được sử dụng tài liệu)
đề 1 (lần 1)
Để quản lý điểm của một trường ĐH, ta có CSDL sau:
(Dữ liệu được nhập trong qldiem.mdb)
DIEMSV (MASV, MAMH, LAN1.LAN2)
1) Hiện danh sách điểm các môn học mà sinh viên đã theo học lớp
01TH01 (TENLOP)
Ttin cần hiện: MSSV, HOTEN, TEN_MH, LAN1, LAN2
2) Hiện danh sách sinh viên thuộc KHOA CNTT
3) Tính tổng số sinh viên nam, nữ của từng KHOA
Thông tin cần hiện: PHAI, KHOA, SOLUONG
4) Hiện danh sách những sinh viên có điểm thi của tất cả các môn đều trên trung bình
5) Hiện danh sách sinh viên có thi đầy đủ các môn trong lớp
ĐỀ THI THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU
(Thời gian làm bài 60 phút –Không được sử dụng tài liệu)
đề 2 (lần 1)
Để quản lý điểm của một trường ĐH, ta có CSDL sau:
(Dữ liệu được nhập trong qldiem.mdb)
Trang 91) Hiện danh sách điểm các môn học mà sinh viên đã theo học lớp
01DT01 (TENLOP)
Ttin cần hiện: MSSV, HOTEN, TEN_MH, LAN1, LAN2
2) Hiện danh sách sinh viên thuộc KHOA DT
3) Tính tổng số sinh viên nam, nữ của từng KHOA CNTT
Thông tin cần hiện: PHAI, SOLUONG
4) Hiện danh sách những sinh viên có điểm thi cao chỉ thua những người đứng nhất của môn LTC (TEN_MH) trong lần thi thứ 1
Ttin cần hiện: MSSV, HOTEN, LAN1
5) Hiện danh sách sinh viên không thi đầy đủ các môn trong lớp
Trang 10Bộ phận kinh doanh của Công ty Sữa Việt Nam muốn xây dựng hệ thống quản lý kinh doanh, sau khi phân tích có được CSDL:
1. Khách hàng:
KhachHang(MaKH, TenKH, DiaChi, SoDT, SoFax, LoaiKH)
Tân từ: Mỗi khách hàng có một mã khách hàng xác định tên khách
hàng, địa chỉ, số điện thoại, số fax thuộc một loại khách hàng (Đại lý,Công ty, Khác)
2. Sản phẩm:
SanPham(MaSP, TenSP, DVT, DonGia, LoaiSP)
Tân từ: Mỗi sản phẩm có một mã sản phẩm xác định tên sản phẩm,
đơn vị tính, đơn giá và thuộc một loại sản phẩm (Sữa, Bột dinh dưỡng)
3. Nhân viên:
NhanVien(MaNV, HoNV, TenNV)
Tân từ: Mỗi nhân viên có một mã nhân viên xác định họ và chữ lót
nhân viên(HoNv), tên nhân viên
4. Đơn đặt hàng:
DDH(SoDDH, NgayDDH, ThoiHan, MaKH, MaNV)
Tân từ: Mỗi khách hàng có thể có nhiều đơn đặt hàng, mỗi đơn đặt
hàng có một số đơn đặt hàng xác định ngày đặt hàng (phải lớn hơn haybằng ngày hiện tại), thời hạn của đơn đặt hàng tính theo tháng và do mộtnhân viên lập
5. Chi tiết đơn đặt hàng:
DDHCT(SoDDH, MaSP, SoLuong)
Tân từ: Mỗi đơn đặt hàng có nhiều dòng chi tiết, số đơn đặt hàng và
mã sản phẩm xác định số lượng sản phẩm sẽ đặt
CÂU HỎI: Hãy viết bằng ngôn ngữ SQL để thực hiện câu truy vấn sau:
1) Hiện danh sách khách hàng (TenKh, DiaChi) của những khách hàng
có đặt hàng do nhân viên “Trần Văn A” lập đơn đặt hàng (2đ)
2) Hiện danh sách các khách hàng (TenKh, DiaChi) của những kháchhàng có đặt hàng với MaSp là “S01” (2đ)
3) Hiện danh sách loại sản phẫm (LoaiSP, Soluong_Nhieu_Nhat) cónhiều sản phẩm nhất (3đ)
4) Hiện danh sách đơn đặt hàng đặt cùng sản phẩm với số lượng nhiềunhất trong năm 2002
Thông tin cân hiện: SODDH, NGAYDDH, MASP,SOLUONG_NHIEU_NHAT (3đ)
Trang 11Bài tập số 5:
Quản lý dịch vụ Video gồm các quan hệ sau:
1) Phim(MP, TEN_P, HSXUAT, NPPHOI, N_PP, TLOAI, ND)
Tân từ : mỗi Phim có MP (Mã phim) dùng để phân biệt, có TEN_P(tên phim), TEN_HANG(hãng sản xuất), MA_NCC(nhà cung cấp),
Ngay_CC(Ngày cung cấp), LOAI_P(thể loại phim: Hình sự, tình cảm v v)
và có ghi nhận tóm tắc nội dung để giới thiệu khách (ND)
2) NGUON_GOC(TEN_HANG, NUOC_SX)
Tân từ : NGUON_GOC (nguồn gốc) để quản lý nguồn gốc sản xuất phim
có TEN_HANG (hãng sản xuất), mỗi hãng sản xuất xác định một nước sảnxuất duy nhất (NUOC_SX)
3) Nha_CC(MA_NCC, TEN_NCC, DC, DT)
Tân từ : Mỗi nhà cung cấp phim (nha_CC) có MA_NCC (mã nhà cung cấp) dùng để phân biệt, có tên nhà cung cấp (TEN_NCC), địa chỉ nhà cungcấp (DC), điện thoại nhà cung cấp (DT)
4) Dien_vien(MDV, TEN_DV, TT)
Tân từ : Mỗi diễn viên chính (Dien_Vien) để giới thiệu khách xem phim cóMDV dùng để phân biệt, có TEN_DV(tên diễn viên), và TT(thành tích) của diễn viên đạt các giải
5)KHACH_HANG(MKH, TENK, DC_KH, DT_KH, TTC)
Tân Từ : Mỗi khách thuê băng có MKH dùng để phân biệt, có tên khách (TENK), địa chỉ khách(DC_KH), điện thoại (DT_KH), và có thể có gởi tiền thế chân (TTC) hay không
6) P_M_TRA(So_Phieu, NGAY_MUOM, MKH)
Tân từ : mỗi phiếu muợn trả (P_M_TRA) có số phiếu (So_Phieu) dùng để phân biệt, có một ngày mượn (NGAY_MUON), và do một khách muợn duy nhất (MKH)
b) Hiện danh sách khách có gởi tiền đặt cọc
c) Hiện danh sách phim do “Trần Hán “ đóng
Trang 12e) Hiện danh sách diễn viên chính trong phim ? Tên phim do người sử dụng chương trình gõ vào.
f) Hiện dang sách phim do? Tên diễn viên chính do nguời sử dụngchương trình đưa vào
g) Hãy giới nội dung phim ? tên phim do nguời sử dụng chương trình đưa vào
h) Hiện danh sách khách hàng thuê băng nhiều nhất để có tăng thưởng
k) Hiện thể loại phim mà khách hàng ưa thích nhất (Thuê nhiều)
2) Để quản lý việc cho thuê băng cần trả lời các truy vấn sau:
a) Hiện danh sách khách hàng thuê băng quá 3 ngày chưa trả
b) Tính tổng số tiền cho thuê trong ngày 01/01/2002 Biết tiền thuê mỗi ngày là 1.500đ
c) Tính tổng tiền băng của cuốn “Tây Du Ký”
d) Tính doanh thu trong tháng 9/2002
3) Để đảm bảo chất lương phim phục vụ khách Cần loại bỏ những phim xuống cấp do tần suất luợt đi quá nhiều, thời gian băng cũ hoặc kháchhàng phản ảnh phải gởi trả cho nhà phân phối băng Cần phải trả lời các truy vấn sau:
a) Hiện danh sách có số lần cho thuê quá 100 lượt
b) Hiện danh sách băng từ ngày cung cấp đến giờ quá một năm
c) Hiện thông tin của nhà cung cấp phim, thông tin ngày cung cấp củaphim “Kiếp nghèo”
d) Hiện thông tin của nhà cung cấp phim, thông tin ngày cung cấp của phim? Tên phim do nguời sử dụng chương trình đưa vào
Trang 13BÀI TẬP CSDL:
Để quản lý lich thi đấu và kết quả các trận đấu của vòng chung kết WORLD CUP Ta có lđ csdl sau:
1 DOI(MADOI, TENDOI, HLVIEN)
2 TRANDAU(MATRAN, NGAY_T_DAU, GIO, VONGDAU)
3 BANG_TDAU(MADOI, BANG)
4 CAUTHU(MACAUTHU, TENVIETTAT, TENCAUTHU, VITRI,
MADOI, SOAO)
5 BANTHANG_CAUTHU(MATRAN, MACAUTHU, PHUT_THU)
6 CTIET_TRANDAU(MATRAN, MADOI, SOBANTHANG)
7 DUDOAN_KQTD(STT, MATRAN, MADOI, KETQUA,
SONGUOI_DUDOAN, DIENTHOAI)
Tự điển dữ liệu và các tân từ cho các lược đồ quan hệ trên:
ST
1 MADOI Mã đội dùng để phân biệt đội
(DOI) và thuộc một bảng(BANG) thi đấu vòng lọai có trong bảng thi đấu (BANG_TDAU)
3 HLVIEN Huấn luyện viên chính của đội
4 MATRAN Mã trận dùng để phân biệt các trận
đấu (TRANDAU)
5 NGAY_T_DAU Ngày thi đấu của mỗi trận
6 GIO Giờ thi đấu của mỗi trận
7 MACAUTHU Mã cầu thủ dùng để phân biệt các
cầu thủ(CAUTHU), mỗi cầu thủ trong mỗi trận, nếu có ghi bàn sẽ được ghi nhận phút thứ
mấy(PHUT_THU) trong bảng ghi nhận bàn thắng cầu
thủ(BANTHANG_CAUTHU)
8 TENVIETTAT Tên viết tắt, là tên thường gọi của
các cầu thủ
9 TENCAUTHU Tên cầu thủ
10 VITRI Vị trí đá của mỗi cầu thủ
11 SOAO Số áo của mỗi cầu thủ trong đội
hình của đội
12 SOBANTHANG Số bàn thắng Mỗi đội trong mỗi
trận đấu xác định duy nhất số bàn
Trang 1413 STT Số thứ tự dùng để phân biệt lượt dự
đoán kết quả trận đấu(DUDOAN_KQTD) trong các trận đấu của người xem
14 KETQUA Kết quả dự đoán trong mỗi trận, đối
với mỗi đội, có giá trị 0 (thua), 1 (hòa), 3 (thắng)
15 SONGUOI_DUDO
AN
Số người dự đoán đã tham dự
16 DIENTHOAI Điện thọai của người dự đoán
17 VONGDAU Vòng đấu, có giá như : Vòng lọai,
bán kết…
Trang 15STT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Trang 17CTIET_TRANDAU CTIET_TRANDAU
CTIET_TRANDAU
Trang 19Câu hỏi :
1-Hãy xác định khóa của các quan hệ
2-Xác định các Ràng Buộc Tòan Vẹn (trừ các ràng buộc tòan vẹn dạng phụ thuộc hàm suy ra từ khóa)
3-Trả lời các câu hỏi sau bằng ngôn ngữ Đại Số Quan Hệ đã tối ưu hóa: 3.1-Cho biết các đội có tham gia trận đấu ngày #24/06/06#
Thông tin cần hiện: MADOI, TENDOI
3.2-Cho biết tên các cầu thủ có các bàn thắng ở vòng lọai
Thông tin cần hiện: MACAUTHU, TENCAUTHU
4- Trả lời các câu hỏi sau bằng ngôn ngữ SQL:
4.1-Cho biết tên các cầu thủ có tổng số bàn thắng nhiều nhất của cả giải?
Thông tin cần hiện: MACAUTHU, TENCAUTHU
4.2-Cho biết số điện thọai đã trúng thưởng dự đoán trong trận có mã trận
là 15 Biết rằng số điện thọai trúng thưởng là số điện thọai có kết quả dự đoán đúng và số người dự đoán gần với số người dự đoán đúng đã tham
dự dự đoán?
Trang 20Với CSDL trên SV đọc hiểu các đoạn lệnh SQL sau, để tự đặt các câu truy vấn tương ứng với câu lệnh đó và tự mình viết lại đoạn lệnh
(Không xem câu lệnh đã viết) để thực thi chương trình
WHERE TRANDAU.MATRAN=T1.MATRAN And
T1.MATRAN=T2.MATRAN And T1.MADOI<T2.MADOI And
D1.MADOI=T1.MADOI And D2.MADOI=T2.MADOI;
2/DIEMCUAMOITRAN
SELECT T1.MATRAN, D.MADOI, D.TENDOI,
IIF(T1.SOBANTHANG=T2.SOBANTHANG,1,IIF(T1.SOBANTHANG<T2.SOBANTHANG,0,3)) AS DIEM
FROM CTIET_TRANDAU AS T1, CTIET_TRANDAU AS T2, DOI AS D
WHERE T1.MATRAN=T2.MATRAN And T1.MADOI<>T2.MADOI And D.MADOI=T1.MADOI
DIEMCUAMOITRAN.DIEM=DU_DOAN_KQTD.KETQUA;
5/HIEUSO_TB
Trang 21SELECT B.BANG, T.VONGDAU, CT1.MADOI,
COUNT(CT1.MATRAN) AS TSTRAN, SUM(CT1.SOBANTHANG) AS TSBANTHANG, SUM(CT2.SOBANTHANG) AS TSSOBANBAI,
(SUM(CT1.SOBANTHANG)-SUM(CT2.SOBANTHANG)) AS
HIEUSO_THANGBAI
FROM CTIET_TRANDAU AS CT1, CTIET_TRANDAU AS CT2,
BANG_TDAU AS B, TRANDAU AS T
WHERE CT1.MATRAN=CT2.MATRAN And
CT1.MADOI<>CT2.MADOI And T.MATRAN=CT1.MATRAN And CT1.MADOI=B.MADOI
GROUP BY B.BANG, T.VONGDAU, CT1.MADOI;
6/KETQUAVONG1/6
SELECT CTIET_TRANDAU.*
FROM CTIET_TRANDAU, TRANDAU
WHERE CTIET_TRANDAU.MATRAN=TRANDAU.MATRAN And TRANDAU.VONGDAU="VONG 1/6";
7/KETQUAVONGLOAI
SELECT TSDIEM_TUNGDOI.BANG, TSDIEM_TUNGDOI.MADOI, TSDIEM_TUNGDOI.TENDOI, TSDIEM_TUNGDOI.SOTRANDAU, HIEUSO_TB.TSBANTHANG, HIEUSO_TB.TSSOBANBAI,
TSDIEM_TUNGDOI.TSDIEM, HIEUSO_TB.HIEUSO_THANGBAIFROM TSDIEM_TUNGDOI, HIEUSO_TB
WHERE (TSDIEM_TUNGDOI.SOTRANDAU=HIEUSO_TB.TSTRAN) And (TSDIEM_TUNGDOI.MADOI=HIEUSO_TB.MADOI) And
Trang 22FROM XEPHANG_BANG_A, XEPHANG_BANG_B
Trang 23FROM XEPHANG_BANG_C, XEPHANG_BANG_D
WHERE (((BANTHANG_CAUTHU.MACAUTHU)=[CAUTHU]
[MACAUTHU]) AND ((CAUTHU.MADOI)=[DOI].[MADOI]))
GROUP BY DOI.MADOI, DOI.TENDOI,
BANTHANG_CAUTHU.MATRAN;
17/TSDIEM_TUNGDOI
SELECT B.BANG, D.MADOI, D.TENDOI, T.VONGDAU,
COUNT(D.MATRAN) AS SOTRANDAU, SUM(DIEM) AS TSDIEMFROM DIEMCUAMOITRAN AS D, TRANDAU AS T, BANG_TDAU
AS B
WHERE D.MATRAN=T.MATRAN AND B.MADOI=D.MADOI
GROUP BY B.BANG, D.MADOI, D.TENDOI, T.VONGDAU;
18/ XEPHANGBANG_A
SELECT KQ1.BANG, KQ1.MADOI, KQ1.TENDOI,
KQ1.TSBANTHANG, KQ1.TSSOBANBAI, KQ1.TSDIEM,
KQ1.HIEUSO_THANGBAI,
(IIf(KQ1.TSDIEM>KQ2.TSDIEM,1,IIf(((KQ1.HIEUSO_THANGBAI=KQ2.HIEUSO_THANGBAI) And (KQ1.TSDIEM>KQ2.TSDIEM)),1,2)))
AS HANG
FROM KQBANG_A AS KQ1, KQBANG_A AS KQ2
WHERE KQ1.MADOI<>KQ2.MADOI;
19/ XEPHANGBANG_B
SELECT KQ1.BANG, KQ1.MADOI, KQ1.TENDOI,
KQ1.TSBANTHANG, KQ1.TSSOBANBAI, KQ1.TSDIEM,
KQ1.HIEUSO_THANGBAI,
Trang 24Q2.HIEUSO_THANGBAI) And (KQ1.TSDIEM>KQ2.TSDIEM)),1,2)))
AS HANG
FROM KQBANG_A AS KQ1, KQBANG_A AS KQ2
WHERE KQ1.MADOI<>KQ2.MADOI;
20/ XEPHANGBANG_C
SELECT KQ1.BANG, KQ1.MADOI, KQ1.TENDOI,
KQ1.TSBANTHANG, KQ1.TSSOBANBAI, KQ1.TSDIEM,
KQ1.HIEUSO_THANGBAI,
(IIf(KQ1.TSDIEM>KQ2.TSDIEM,1,IIf(((KQ1.HIEUSO_THANGBAI=KQ2.HIEUSO_THANGBAI) And (KQ1.TSDIEM>KQ2.TSDIEM)),1,2)))
AS HANG
FROM KQBANG_B AS KQ1, KQBANG_B AS KQ2
WHERE KQ1.MADOI<>KQ2.MADOI;
21/ XEPHANGBANG_D
SELECT KQ1.BANG, KQ1.MADOI, KQ1.TENDOI,
KQ1.TSBANTHANG, KQ1.TSSOBANBAI, KQ1.TSDIEM,
KQ1.HIEUSO_THANGBAI,
(IIf(KQ1.TSDIEM>KQ2.TSDIEM,1,IIf(((KQ1.TSDIEM=KQ2.TSDIEM) And (KQ1.HIEUSO_THANGBAI>KQ2.HIEUSO_THANGBAI)),1,2)))
AS HANG
FROM KQBANG_C AS KQ1, KQBANG_C AS KQ2
WHERE (((KQ1.MADOI)<>[KQ2].[MADOI]));