Bài tập - Thiết kế CSDL - sử dụng trong giải đấu bóng đá FIFA - champions league - world cup - Lập trình SQL Server
1. Thiết kế CSDL và các bảng
Bảng Trọng tài (Referee)
id: int → primary key → identity(1,1)
fullname: nvarchar(50) → not null
address: nvarchar(200) → not null
level: float → cấp độ/đánh giá kinh nghiệm
exp: date → ngày bắt đầu tham gia làm trọng tài
Bảng Đội bóng (Club)
id: int → primary key → identity(1,1)
name: nvarchar(50) → tên đội bóng
stadium: nvarchar(100) → sân chủ nhà
coach: nvarchar(50) → huấn luyện viên
Bảng Cầu thủ (Player)
id: int → primary key → identity(1,1)
fullname: nvarchar(50)
birthday: date
salary: money → lương/tuần
start_date: date → ngày bắt đầu tham gia thi đấu
Bảng Đội bóng – Cầu thủ (Club_Player)
id_club: int → FK tham chiếu Club(id)
id_player: int → FK tham chiếu Player(id)
join_date: date → ngày tham gia đội bóng
PK: (id_club, id_player)
Bảng Lịch sử bắt của trọng tài (Referee_History)
id: int → primary key → identity(1,1)
referee_id: int → FK tham chiếu Referee(id)
tournament: nvarchar(100) → tên giải đấu
match_date: date → ngày bắt chính
rate: float → đánh giá về trọng tài
id_club_1: int → FK tham chiếu Club(id)
id_club_2: int → FK tham chiếu Club(id)
note: nvarchar(500) → ghi chú
2. Thêm dữ liệu mẫu
Thêm ít nhất 5 bản ghi cho mỗi bảng (Referee, Club, Player).
Mỗi Club có ít nhất 3 Player.
Mỗi Referee có ít nhất 2 lịch sử bắt.
3. Truy vấn
Liệt kê danh sách lịch sử bắt gồm: tên trọng tài, level, exp, tên giải đấu, tên đội 1, tên đội 2.
Liệt kê danh sách cầu thủ của một đội bóng bất kỳ (tham số đầu vào là tên hoặc id đội bóng).
Tìm danh sách trọng tài đã từng bắt cho một đội bóng cụ thể (tham số đầu vào là id đội bóng).
Liệt kê tổng số tiền lương mỗi đội bóng phải trả cho cầu thủ của mình.
Tìm đội bóng có tổng lương cầu thủ cao nhất.
4. VIEW
Tạo view vRefereeHistory hiển thị: tên trọng tài, level, exp, giải đấu, tên đội 1, tên đội 2, rate.
Tạo view vClubPlayers hiển thị: tên đội bóng, tên cầu thủ, ngày tham gia đội bóng.
Tạo view vClubSalary hiển thị: tên đội bóng, tổng lương cầu thủ.
5. STORED PROCEDURE / FUNCTION
Stored procedure ThemCauThu: thêm cầu thủ mới (tham số: tên, ngày sinh, lương, ngày bắt đầu).
Stored procedure DanhSachCauThuTheoDoiBong: trả về danh sách cầu thủ của một đội bóng (tham số: id_club).
Stored procedure LichSuTrongTaiTheoDoiBong: hiển thị lịch sử bắt của trọng tài cho một đội bóng (tham số: id_club).
Function TinhTongLuongCauThu(id_club): trả về tổng lương của toàn bộ cầu thủ trong một đội bóng.
Function TinhTongLuongTatCa(): trả về tổng lương cầu thủ của tất cả các đội bóng trong hệ thống.
Tags: