Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

ĐỀ THI GIỮA KỲ

THỰC HÀNH CƠ SỞ DỮ LIỆU


Thời gian 120' - Sử dụng tài liệu

Bài 1. Hãy độc mô tả sau đây về một cơ sở dữ liệu quan hệ.


Cho một cơ sở dữ liệu với các bảng sau:
University
UniversityID UniversityName Place

Faculty
UniversityID Faculty ID Faculty Name NumberOfStudents

Student
UniversityID Facult ID StudentID StudentName Birth Place

Câu hỏi con 1


Trong nhóm các câu trả lời dưới đây, câu nào có thể dùng để biết những trường đại học nào có
khoa Công nghệ thông tin (Information Technology)

Câu hỏi con 2


Trong nhóm các câu trả lời con dưới đây, câu nào có thể dùng để biết số sinh viên của tất cả các
khoa Công nghệ thông tin, số sinh viên của tất cả các khoa Tin học(infomatics), và số sinh viên
các khoa Toán – Tin (Mathematics – Informatics)?

Câu hỏi con 3


Trong nhóm các câu trả lời dưới đây, câu nào có thể dùng để biết các sinh viên đang học trong
trường đại học nằm cùng địa phương về quê quán (BirthPlace) của sinh viên đó?

Nhóm các câu trả lời


a. SELECT FacultyName, Sum(NumberOfStudents)
FROM Feculty
WHERE FacultyName = ‘Information Technology’
AND FacultyName = ‘Informatics’
AND FacultyName = ‘ Mathematics - Informatics’
GROUP BY FacultyName

b. SELECT FacultyName, Sum(NumberOfStudents)


FROM Faculty
WHERE FacultyName = ‘Information Technology’
OR FacultyName = ‘Informatics’

1
OR FacultyName = ‘ Mathematics - Informatics’
HAVING BY FacultyName

c. SELECT FacultyName, Sum(NumberOfStudents)


FROM Faculty
WHERE FacultyName = ‘Information Technology’
OR FacultyName = ‘Informatics’
OR FacultyName = ‘ Mathematics - Informatics’
GROUP BY FacultyName

d. SELECT UniversityName FROM University, Faculty


WHERE FavcultyName = ‘Information Techenology’

e. SELECT UniversityName FROM University, Faculty


WHERE University.UniversityID = Faculty.UniversityID
AND FacultyName = ‘Information Technology’

f. SELECT UniversityName FROM University, Faculty


WHERE University.UniversityID = Faculty.UniversityID
OR FacultyName = ‘Information Technology’

g. SELECT UniversityName, StudentName, Place FROM Student


WHERE University.Place = Student.BirthPlace

h. SELECT UniversityName, StudentName, Place


FROM University, Student
WHERE University.Place = Student.BirthPlace

i. SELECT UniversityName, StudentName, Place


FROM University, Student
WHERE University.UniversityID = Student.UniversityID
University.Place = Student.BirthPlace

2
Bài 2. Hãy đọc mô tả sau về cơ sở dữ liệu quan hệ, và trả lời các câu hỏi con từ 1 đến 3

Một cơ sở dữ liệu gồm có bảng University, bảng Subject, bảng Examinee và bảng Score để lưu tất cả
các điểm thi của thí sinh vào các trường đại học.

Bảng University
UniversityId UniversityName NoOfStudentAvailable

Trong đó:
Trường UniversityId là mã trường đại học, là khoá chính (PRIMARY key) của bảng này.
Trường UniversityName là tên của trường đại học.
Trường NoOfStudentAvailable là số sinh viên cần tuyển.

Bảng Subject
SubjectId SubjectName

Trong đó :
Trường SubjectId là mã ôn thi, là khoá chính (PRIMARY key) của bảng này
Trường SubjectName là tên môn thi.

Bảng Examinee
ExamineeId ExamineeName UniversityId

Trong đó:
Mỗi thí sinh chỉ có thể đăng ký vào một trường
Trường ExamineeId là mã thí sinh, là khóa chính (PRIMARY key) của bảng này.
Trường ExamineeName là tên thí sinh.
Trường UniversityId là mã trường đại học mà thí sinh muốn thi vào.

Bảng Score
ExamineeId SubjectId Mark

Trong đó:
Trường ExamineeId là mã thí sinh.
Trường SubjectId là mã môn thi.
Trường Mark là điểm mà thí sinh đạt được trong môn thi.

3
Câu hỏi con 1
Câu nào sau đây có thể dùng để liệt kê tên trường đại học, số sinh viên cần tuyển, số thí sinh,
đối với tất cả các trường đại hoc?

Câu hỏi con 2


Câu nào sau đây có thể dùng để liệt kê tên thí sinh, tổng số điểm của thí sinh đối với tất cả các
thí sinh thi của trường ‘DHBK Ha Noi’ và đạt tổng số điểm lớn hơn 20?

Câu hỏi con 3


Câu nào sau đây có thể dùng để liệt kê tên trường đại học, số thí sinh có tổng số điểm lớn hơn
20, đối với tất cả các trường đại học?

Nhóm câu trả lời cho các câu hỏi con từ 1 đến 3

a) SELECT UniversityName, NoOfStudentAvailable, Count(*)


FROM Examinee, University
WHERE Examiniee. UniversityId = University.UniversityId
GROUP BY UniversityId

b) SELECT UniversityName, NoOfStudentAvailable, SUM(mark)


FROM Examinee, University, Score
WHERE Examinee.UniversityId = University.UniversityId
AND Score. ExamineeId = Examinee.ExamineeId
GROUP BY Examinee.UniversityId, UniversityName,
NoOfStudentAvailable

c) SELECT ExamineeName, SUM(mark) AS Total_score


FROM Examinee, University, Score
WHERE Examinee.UniversityId = University.UniversityId
AND UniversityName = ‘DHBK Ha Noi’
AND Examinee.ExamineeId In (SELECT ExamineeId FROM Score
GROUP BY ExamineeId Having SUM(mark) > 20)

d) SELECT UniversityName, NoOfStudentAvailable, Count(*) AS


NoOfExaminee
FROM Examinee, University
WHERE Examinee.UniversityId= University.UniversityId
GROUP BY Examinee.UniversityId, UniversityName,
NoOfStudentAvailable

e) SELECT UniversityName, COUNT (*) AS NoOfExaminee


FROM Examinee, University
WHERE Examinee.UniversityId = University.UniversityId
GROUP BY Examinee.UniversityId, UniversityName

f) SELECT ExamineeName, SUM(mark) AS Total_score


FROM Examinee, University, Score

4
WHERE Examinee.UniversityId = University.UniversityId
AND Examinee.ExamineeId = Score.ExamineeId
AND UniversityName = ‘DHBK Ha Noi’
AND Examinee.ExamineeId In (SELECT ExamineeId,
SUM(mark) FROM Score GROUP BY ExamineeId HAVING
SUM(mark) > 20)
GROUP BY Examinee.ExamineeId, ExamineeName

g) SELECT ExamineeName, SUM(mark) AS Total_score


FROM Examinee, University, Score
WHERE Examinee.UniversityId = University.UniversityId
AND Examinee.ExamineeId = Score.ExamineeId
AND UniversityName = ‘DHBK Ha Noi’
AND Examinee.ExamineeId In (SELECT ExamineeId
FROM Score GROUP BY ExamineeId HAVING SUM(mark)> 20)
GROUP BY Examinee.ExamineeId, ExamineeName

h) SELECT UniversityName, COUNT(*) AS NoOfExaminee


FROM Examinee, University
WHERE Examinee.UniversityId = University.UniversityId
AND Examinee.ExamineeId In (SELECT ExamineeId FROM Score
GROUP BY ExamineeId HAVING SUM(mark) > 20)

i) SELECT UniversityName, COUNT(*) AS NoOfExaminee


FROM Examinee, University
WHERE Examinee.UniversityId = University.UniversityId
AND Examinee.ExamineeId In (SELECT ExamineeId FROM Score
GROUP BY ExamineeId HAVING SUM(mark) > 20)
GROUP BY Examinee.UniversityId, UniversityName

5
Bài 3. Cho CSDL gồm các quan hệ sau:

GiangVien:

GV# HoTen DiaChi NgaySinh


GV01 Vũ Tuyết Trinh Hoàng Mai, Hà Nội 10/10/1975
GV02 Nguyễn Nhật Quang Hai Bà Trưng, Hà Nội 03/11/1976
GV03 Trần Đức Khánh Đống Đa, Hà Nội 04/06/1977
GV04 Nguyễn Hồng Phương Tây Hồ, Hà Nội 10/12/1983
GV05 Lê Thanh Hương Hai Bà Trưng, Hà Nội 10/10/1976

DeTai:

DT# TenDT Cap KinhPhi


DT01 Tính toán lưới Nhà nước 700
DT02 Phát hiện tri thức Bộ 300
DT03 Phân loại văn bản Bộ 270
DT04 Dịch tự động Anh Việt Trường 30

ThamGia:

GV# DT# SoGio


GV01 DT01 100
GV01 DT02 80
GV01 DT03 80
GV02 DT01 120
GV02 DT03 140
GV03 DT03 150
GV04 DT04 180

Yêu cầu: Viết chương trình C


A.Tạo CSDL có tên là QLKH, tạo các bảng trên và nhập dữ liệu như trên. Chú ý: Hai thuộc tính GV#
và DT# trong bảng ThamGia tham chiếu đến thuộc tính cùng tên trong bảng GiangVien và bảng
DeTai

B. Hãy viết các câu lệnh truy vấn để:


1. Đưa ra thông tin giảng viên có địa chỉ ở quận “Hai Bà Trưng”, sắp xếp theo thứ tự giảm dần của
họ tên.
2. Đưa ra danh sách gồm họ tên, địa chỉ, ngày sinh của giảng viên có tham gia vào đề tài “Tính
toán lưới”.
3. Đưa ra danh sách gồm họ tên, địa chỉ, ngày sinh của giảng viên có tham gia vào đề tài “Phân
loại văn bản” hoặc “Dịch tự động Anh Việt”.
4. Cho biết thông tin giảng viên tham gia ít nhất 2 đề tài.
5. Cho biết tên giảng viên tham gia nhiều đề tài nhất.
6. Đề tài nào tốn ít kinh phí nhất?

6
7. Cho biết tên và ngày sinh của giảng viên sống ở quận Tây Hồ và tên các đề tài mà giảng viên
này tham gia.
8. Cho biết tên những giảng viên sinh trước năm 1980 và có tham gia đề tài “Phân loại văn bản”
9. Đưa ra mã giảng viên, tên giảng viên và tổng số giờ tham gia nghiên cứu khoa học của từng
giảng viên.
10. Giảng viên Ngô Tuấn Phong sinh ngày 08/09/1986 địa chỉ Đống Đa, Hà Nội mới tham gia
nghiên cứu đề tài khoa học. Hãy thêm thông tin giảng viên này vào bảng GiangVien.
11. Giảng viên Vũ Tuyết Trinh mới chuyển về sống tại quận Tây Hồ, Hà Nội. Hãy cập nhật thông
tin này.
12. Giảng viên có mã GV02 không tham gia bất kỳ đề tài nào nữa. Hãy xóa tất cả thông tin liên
quan đến giảng viên này trong CSDL.

You might also like