1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Môn cơ sở dữliệubài tập thực hành x ngôn ngữ định nghĩa dữ liệu (data definition language)

19 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN MÔN CƠ SỞ DỮ LIỆU BÀI TẬP THỰC HÀNH X GVHD: Nguyễn Ngọc Quí Sinh viên thực hiện: Nguyễn Hoàng Vũ  Tp Hồ Chí Minh, 09/2023  IT004 – Cơ sở dữ liệu NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……., ngày…… tháng……năm 2023 Người nhận xét (Ký tên và ghi rõ họ tên) 2|Page IT004 – Cơ sở dữ liệu MỤC LỤC I Ngôn ngữ định nghĩa dữ liệu (Data Definition Language) 5 1 Tạo quan hệ và khai báo tất cả các ràng buộc khóa chính, khóa ngoại Thêm vào 3 thuộc tính GHICHU, DIEMTB, XEPLOAI cho quan hệ 5 3 Thuộc tính GIOITINH chỉ có giá trị là “Nam” hoặc “Nu” 7 4 Điểm số của một lần thi có giá trị từ 0 đến 10 và cần lưu đến 2 số lẽ (VD: 6.22) 8 II Ngôn ngữ thao tác dữ liệu (Data Manipulation Language) 10 1 Tăng hệ số lương thêm 0.2 cho những giáo viên là trưởng khoa 10 2 Cập nhật giá trị điểm trung bình tất cả các môn học (DIEMTB) của mỗi học viên (tất cả các môn học đều có hệ số 1 và nếu học viên thi một môn nhiều lần, chỉ lấy điểm của lần thi sau cùng) .11 3 Cập nhật giá trị cho cột GHICHU là “Cam thi” đối với trường hợp: học viên có một môn bất kỳ thi lần thứ 3 dưới 5 điểm .14 4 Cập nhật giá trị cho cột XEPLOAI trong quan hệ HOCVIEN 17 III Link code sql 19 3|Page IT004 – Cơ sở dữ liệu DANH MỤC BẢNG 1 Bảng KHOA 2 Bảng MONHOC 3 Bảng DIEUKIEN 4 Bảng GIAOVIEN 5 Bảng LOP 6 Bảng HOCVIEN 7 Bảng GIANGDAY 8 Bảng KETQUATHI 4|Page IT004 – Cơ sở dữ liệu NỘI DUNG BÀI LÀM Câu I.1: Tạo quan hệ và khai báo tất cả các ràng buộc khóa chính, khóa ngoại Thêm vào 3 thuộc tính GHICHU, DIEMTB, XEPLOAI cho quan hệ HOCVIEN - Input: 5|Page IT004 – Cơ sở dữ liệu - Output: - Hướng giải thuật : 1 Để tạo và khai báo tất cả các ràng buộc khóa chính và khóa ngoại ta chỉ cần quan sát các mối liên hệ giữa các thuộc tính của mỗi quan hệ với nhau 2 Để thêm vào thuộc tính GHICHU, DIEMTB, XEPLOAI cho quan hệ HOCVIEN xác định được kiểu dữ liệu của từng thuộc tính và sử dụng lệnh ALTER TABLE 6|Page IT004 – Cơ sở dữ liệu Câu I.3: Thuộc tính GIOITINH chỉ có giá trị là “Nam” hoặc “Nu” - Input: Bảng HOCVIEN, GIAOVIEN - Output: - Hướng giải thuật:  Câu truy vấn "ALTER TABLE HOCVIEN ADD CONSTRAINT CHECK_GTHV CHECK (GIOITINH IN ('Nam', 'Nu'))" sẽ thêm một ràng buộc kiểm tra (CHECK constraint) vào bảng HOCVIEN Ràng buộc kiểm tra này đảm bảo rằng giá trị của cột GIOITINH trong bảng HOCVIEN chỉ có thể là 'Nam' hoặc 'Nu'  Tương tự, câu truy vấn "ALTER TABLE GIAOVIEN ADD CONSTRAINT CHECK_GTGV CHECK (GIOITINH IN ('Nam', 'Nu'))" sẽ thêm một ràng buộc kiểm tra (CHECK constraint) vào bảng GIAOVIEN Ràng buộc kiểm tra này đảm bảo rằng giá trị của cột GIOITINH trong bảng GIAOVIEN chỉ có thể là 'Nam' hoặc 'Nu'  Điều này có nghĩa là khi thêm hoặc cập nhật dữ liệu trong các bảng HOCVIEN và GIAOVIEN, hệ thống sẽ kiểm tra xem giá trị của cột GIOITINH có thuộc danh sách cho phép ('Nam' hoặc 'Nu') hay không Nếu giá trị không hợp lệ, câu lệnh INSERT hoặc UPDATE sẽ bị từ chối và không thể thực hiện thành công 7|Page IT004 – Cơ sở dữ liệu Câu I.4: Điểm số của một lần thi có giá trị từ 0 đến 10 và cần lưu đến 2 số lẽ (VD: 6.22) - Input: 8|Page IT004 – Cơ sở dữ liệu - Output: 9|Page IT004 – Cơ sở dữ liệu - Hướng giải thuật:  Câu truy vấn "ALTER TABLE KETQUATHI ADD CONSTRAINT CHECK_DIEM CHECK (DIEM BETWEEN 0 AND 10 AND RIGHT(CAST(DIEM AS VARCHAR), 3) LIKE '. ')" sẽ thêm một ràng buộc kiểm tra (CHECK constraint) vào bảng KETQUATHI Ràng buộc kiểm tra này đảm bảo rằng giá trị của cột DIEM trong bảng KETQUATHI phải nằm trong khoảng từ 0 đến 10 và có đúng 3 chữ số thập phân sau dấu phẩy  Để làm điều này, câu truy vấn sử dụng hai điều kiện Đầu tiên, điều kiện "DIEM BETWEEN 0 AND 10" đảm bảo rằng giá trị của cột DIEM phải nằm trong khoảng từ 0 đến 10 Điều này đảm bảo rằng giá trị DIEM không vượt quá giới hạn cho phép  Thứ hai, điều kiện "RIGHT(CAST(DIEM AS VARCHAR), 3) LIKE '.'" sử dụng một hàm chuỗi để xác định rằng phần thập phân của giá trị DIEM phải có đúng 3 chữ số sau dấu phẩy Hàm RIGHT dùng để lấy ra 3 ký tự cuối cùng của giá trị DIEM dưới dạng chuỗi Đồng thời, điều kiện LIKE '.' đảm bảo rằng ký tự đầu tiên và ký tự thứ ba phải là bất kỳ ký tự nào, còn ký tự thứ hai phải là dấu chấm  Kết hợp hai điều kiện trên, ràng buộc kiểm tra này chỉ cho phép các giá trị DIEM trong khoảng từ 0 đến 10 và có đúng 3 chữ số sau dấu phẩy Tất cả các giá trị không thoả mãn các điều kiện này sẽ bị từ chối khi thêm hoặc cập nhật dữ liệu trong bảng KETQUATHI Câu II.1: Tăng hệ số lương thêm 0.2 cho những giáo viên là trưởng khoa - Input: 10 | P a g e IT004 – Cơ sở dữ liệu - Output: - Hướng giải thuật:  Câu truy vấn "UPDATE GIAOVIEN SET HESO = HESO + 0.2 WHERE MAGV IN (SELECT TRGKHOA FROM KHOA)" tăng giá trị cột HESO của các giáo viên có mã giảng viên nằm trong danh sách TRGKHOA từ bảng KHOA thêm 0.2 Câu II.2: Cập nhật giá trị điểm trung bình tất cả các môn học (DIEMTB) của mỗi học viên (tất cả các môn học đều có hệ số 1 và nếu học viên thi một môn nhiều lần, chỉ lấy điểm của lần thi sau cùng) 11 | P a g e IT004 – Cơ sở dữ liệu - Input: 12 | P a g e IT004 – Cơ sở dữ liệu - Output: 13 | P a g e IT004 – Cơ sở dữ liệu - Hướng giải thuật:  Câu truy vấn trên được sử dụng để cập nhật trường "DiemTB" (Điểm trung bình) trong bảng "HocVien" Giá trị mới của trường "DiemTB" được tính bằng cách lấy trung bình của tất cả các điểm trong bảng "KetQuaThi" cho lần thi có giá trị "LanThi" lớn nhất tương ứng với mỗi học viên trong bảng "HocVien"  Đầu tiên, câu truy vấn sử dụng phần SELECT để lấy giá trị trung bình của trường "Diem" từ bảng "KetQuaThi" Điều này được thực hiện bằng cách sử dụng phần WHERE để chỉ lấy các bản ghi từ bảng "KetQuaThi" có giá trị "LanThi" bằng với giá trị "LanThi" lớn nhất của mỗi học viên Điều này được thực hiện bằng cách sử dụng câu truy vấn con (SELECT MAX(LanThi) FROM KetQuaThi KQ WHERE MaHV = KetQuaThi.MaHV GROUP BY MaHV) để xác định "LanThi" lớn nhất tương ứng với mỗi học viên Sau đó, câu truy vấn sử dụng phần GROUP BY để nhóm các bản ghi theo trường "MaHV" (Mã học viên) và phần HAVING để chỉ lấy các bản ghi có giá trị "MaHV" bằng với giá trị "MaHV" của mỗi học viên trong bảng "HocVien"  Tiếp theo, câu truy vấn sử dụng phần UPDATE để cập nhật trường "DiemTB" trong bảng "HocVien" với giá trị trung bình tính được từ phần SELECT ở trên Câu II.3: Cập nhật giá trị cho cột GHICHU là “Cam thi” đối với trường hợp: học viên có một môn bất kỳ thi lần thứ 3 dưới 5 điểm 14 | P a g e IT004 – Cơ sở dữ liệu - Input: 15 | P a g e IT004 – Cơ sở dữ liệu - Output: - Hướng giải thuật:  Câu truy vấn trên được sử dụng để cập nhật trường "GHICHU" (Ghi chú) trong bảng "HOCVIEN" Các học viên có điểm dưới 5 trong lần thi thứ 3 sẽ được đánh dấu là "Cam thi" trong trường "GHICHU"  Đầu tiên, câu truy vấn sử dụng phần SELECT để lấy danh sách các học viên có điểm dưới 5 trong lần thi thứ 3 từ bảng "KETQUATHI" Điều này được thực hiện bằng cách sử dụng phần WHERE để chỉ lấy các bản ghi từ bảng "KETQUATHI" có giá trị "LANTHI" bằng 3 và "DIEM" dưới 5  Sau đó, câu truy vấn sử dụng phần UPDATE để cập nhật trường "GHICHU" trong bảng "HOCVIEN" cho các học viên được lấy từ phần SELECT ở trên Trường "GHICHU" sẽ được cập nhật thành "Cam thi" cho các học viên này 16 | P a g e IT004 – Cơ sở dữ liệu Câu II.4: Cập nhật giá trị cho cột XEPLOAI trong quan hệ HOCVIEN như sau: • Nếu DIEMTB ≥ 9 thì XEPLOAI = “XS” • Nếu 8 ≤ DIEMTB < 9 thì XEPLOAI = “G” • Nếu 6.5 ≤ DIEMTB < 8 thì XEPLOAI = “K” • Nếu 5 ≤ DIEMTB < 6.5 thì XEPLOAI = “TB” • Nếu DIEMTB < 5 thì XEPLOAI = “Y” - Input: 17 | P a g e IT004 – Cơ sở dữ liệu - Output: 18 | P a g e IT004 – Cơ sở dữ liệu - Hướng giải thuật:  Câu truy vấn trên được sử dụng để cập nhật trường "XEPLOAI" (Xếp loại) trong bảng "HOCVIEN" Xếp loại của học viên được xác định dựa trên giá trị của trường "DIEMTB" (Điểm trung bình)  Câu truy vấn sử dụng phần SET để cập nhật trường "XEPLOAI" với giá trị được xác định bằng phần CASE  Nếu giá trị của trường "DIEMTB" lớn hơn hoặc bằng 9, xếp loại được gán là 'XS' (Xuất sắc)  Nếu giá trị của trường "DIEMTB" lớn hơn hoặc bằng 8 và nhỏ hơn 9, xếp loại được gán là 'G' (Giỏi)  Nếu giá trị của trường "DIEMTB" lớn hơn hoặc bằng 6.5 và nhỏ hơn 8, xếp loại được gán là 'K' (Khá)  Nếu giá trị của trường "DIEMTB" lớn hơn hoặc bằng 5 và nhỏ hơn 6.5, xếp loại được gán là 'TB' (Trung bình)  Nếu giá trị của trường "DIEMTB" nhỏ hơn 5, xếp loại được gán là 'Y' (Yếu) LINK CODE: https://drive.google.com/file/d/1_6yKJY5nKOqqnHkn0gZSAQCF_lC9BYF _/view?usp=sharing 19 | P a g e

Ngày đăng: 20/03/2024, 22:00

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w