PHẦN BÓNG ĐÁ ABC VIỆT NAM
Nhóm dự án FB đang tiến hành xây dựng hệ thống quản lý giải bóng đá cho công ty cổ phần bóng đá ABC Việt Nam. Các thành phần và đối tượng tham gia giải thường bao gồm: Ban tổ chức giải, các quan chức, các giám sát và trọng tài, các câu lạc bộ, ban tổ chức trận đấu và điều phối viên.
Sau quá trình phân tích yêu cầu, nhóm đã tiến hành thiết kế chức năng và cơ sở dữ liệu. Chức năng chính của hệ thống quản lý gồm:
1. Quản lý các đối tượng tham gia giải: - Quản lý cầu thủ
- Quản lý câu lạc bộ - Quản lý huấn luyện viên - Quản lý trọng tài
2. Quản lý trận đấu:
- Cấp mã trận đấu theo nguyên tắc hình thành mã trận đấu là duy nhất. Các câu lạc bộ sẽ thi đấu theo thể thức vòng tròn sao cho một đội sẽ thi đấu với 11 đội còn lại. Cả lượt đi và về đội phải thi đấu 22 trận tất cả. Trong đó 2 đội bất kỳ sẽ gặp nhau 2 lần/mùa giải
- Các đội bóng không bị trùng lịch thi đấu, tại một thời điểm chỉ tồn tại duy nhất một trận đấu trên một sân. Tại một thời điểm trọng tài điều khiển duy nhất một trận đấu.
- Sắp xếp các thông tin liên quan tới lịch thi đấu: lịch thi đấu theo ngày, lịch thi đấu theo sân diễn ra, lịch thi đấu theo tên câu lạc bộ tham gia, lịch thi đấu theo trọng tài điều khiển trận đấu
Kết quả của giai đoạn thiết kế cơ sở dữ liệu bao gồm thiết kết logic và thiết kế vật lý như sau:
Thiết kế chi tiết các bảng:
1. Bảng CAU_THU: lưu thông tin của các cầu thủ tham gia giải
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaCT Char 10 CTxx Khóa chính
TenCT Char 20 Not Null
Ngaysinh Date Not Null
SoDienThoai Nvarchar2 20 MaQuocTich Nvarchar2 15
SoAo Number 3 Not Null Số áo
ChieuCao Char 3 Chiều cao
CanNang Char 3 Cân nặng
ChanThuan Nvarchar2 10 Chân thuận
khi đá
MaCLB Nvarchar2 14 Not Null Mã câu lạc
bộ
MaViTri Nvarchar2 12 Not Null Mã vị trí
SoBanThang Number 5 Số bàn
thắng
SoTheVang Number 5 Số Thẻ
Vàng
SoTheDo Number 5 Số Thẻ Đỏ
2. Bảng CauLacBo: Lưu thông tin các câu lạc bộ tham gia giải
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaCLB Nvarchar2 14 CLBxxxx Khóa chính Mã Câu lạc bộ
TenCLB Nvarchar2 20 Not Null Tên câu lạc
bộ
MaSanBong Nvarchar2 14 SBxxxx Mã sân
bóng
MaHLV Nvarchar2 16 Mã huấn
luyện viên
Diem Number 10 Điểm
SoBanThang Number 10 Số Bàn
Thắng
SoBanThua Number 10 Số bàn thua
3. Bảng CT_TRANDAU_BANTHANG: Lưu thông tin về các bàn thắng của giải
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaTDCT Nvarchar2 30 Khóa chính Mã trận đấu
cầu thủ
Thoigian Nvarchar2 20 Khóa chính Thời gian
ghi bàn
SoBanThang Number 5 Số bàn
thắng
Ghichu Nvarchar2 40 Ghi chú
4. Bảng CT_TRANDAU_THE: Lưu thông tin về các thẻ phạt của giải
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaTDCT Nvarchar2 30 Khóa chính Mã trận đấu
cầu thủ
Thoigian Nvarchar2 20 Khóa chính Thời gian
MaThe Char 5 Mã thẻ
SoThe Number 4 Số thẻ
Ghichu Nvarchar2 40 Ghi chú
5. Bảng HuanLuyenVien: Lưu thông tin về các huấn luyện viên
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaHLV Nvarchar2 14 HLVxxx Khóa chính Mã huấn
luyện viên
TenHLV Nvarchar2 30 Tên huấn
luyện viên GioiTinh Nvarchar2 10
NgaySinh Date
MaQuocTich Nvarchar2 15 SoDienThoai Nvarchar2 20
6. Bảng Quoc_Tich: Lưu thông tin về quốc tịch
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaQuocTich Nvarchar2 15 QTxxxx Khóa chính TenQuocTich Nvarchar2 30
7. Bảng SAN_BONG: Lưu thông tin về sân bóng
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaSB Nvarchar2 15 SBxxxx Khóa chính Mã sân
bóng
TenSB Nvarchar2 30 Tên sân
bóng 8. Bảng THE: Lưu thông tin về thẻ
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaThe Nvarchar2 15 THExxxx Khóa chính Mã thẻ
TenThe Nvarchar2 30 Tên thẻ
9. Bảng TRAN_DAU: Lưu các thông tin về các trận đấu của giải
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaTranDau Nvarchar2 15 TDxxxx Khóa chính Mã trận đấu
TenTranDau Nvarchar2 30 Tên trận
đấu
VongDau Number 5 Vòng đấu
MaDoiNha Nvarchar2 14 Not Null Mã đội nhà
MaDoiKhach Nvarchar2 14 Not Null Mã đội
khách SBThangDN Number 5 Số bàn thắng đội chủ nhà SBThangDK Number 5 Số bàn thắng đội khách SoTheVangDN Number 5 Số thẻ vàng đội chủ nhà SoTheDoDN Number 5 Số thẻ đỏ đội nhà SoTheVangDK Number 5 Số thẻ vàng đội khách SoTheDoDK Number 5 Số thẻ đỏ đội khách
Thoigian Date Not Null Thời gian
đấu
TrongTaiChinh Nvarchar2 15 Not Null Trọng tài
chính
TrongTaiBien1 Nvarchar2 15 Trọng tài
biên 1
TrongTaiBien2 Nvarchar2 15 Trọng tài
biên 2
Ghichu Nvarchar2 20 Ghi chú
10. Bảng TRANDAU_CAUTHU: Lưu các thông tin về các cầu thủ ra sân trong
các trận đấu
Thuộc tính Kiểu dữ liệu Kích
thước
Định dạng Ràng buộc Chú thích
MaTDCT Nvarchar2 30 TDCTxxxxxx Khóa chính Mã trận đấu cầu thủ
MaTranDau Nvarchar2 15 Mã trận
đấu
MaCauThu Nvarchar2 15 Mã cầu
thủ 11. Bảng TRONG_TAI: Lưu các thông tin về trọng tài
Thuộc tính Kiểu dữ liệu Kích
thước
Định dạng Ràng buộc Chú thích
MaTrongTai Nvarchar2 20 TTxxx Khóa chính Mã trọng tài
TenTrongTai Nvarchar2 30 Tên trọng
tài GioiTinh Nvarchar2 10
NgaySinh Date
MaQuocTich Nvarchar2 15 SoDienThoai Nvarchar2 20
12. Bảng VI_TRI: Lưu thông tin về vị trí trên sân của các cầu thủ
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaViTri Nvarchar2 10 VTxxx Khóa chính Mã vị trí
Giả sử anh/chị là thành viên của đội FB và được giao nhiệm vụ phát triển cơ sở dữ liệu này trên hệ quản trị CSDL Oracle 11g. Anh/chị hãy thực hiện những công việc cần thiết sau đây để giải quyết công việc được giao:
1. Tạo cơ sở dữ liệu với tên phù hợp
Chú ý: Hệ thống phải đảm bảo lưu trữ đầy đủ, chính xác các thông tin liên quan đến giải đấu như: cầu thủ, câu lạc bộ tham gia, huấn luyện viên, trọng tài, lịch thi đấu (từng trận đấu, kết quả), bảng xếp hạng, danh sách ghi bàn. Thông thường mỗi năm có khoảng 12-15 câu lạc bộ tham dự giải. Anh/chị hãy lựa chọn các thông số để tạo cơ sở dữ liệu cho phù hợp.
2. Với số lượng bảng như trên, theo anh/chị có cần thiết phải tạo nhiều tablespace không? Hãy đưa ra những giải thích cho lựa chọn của anh/chị?
3. Tạo các tablespace cần thiết, các bảng như đã thiết kế và mối quan hệ giữa chúng.
4. Ban quản lý thường xuyên phải thực hiện các truy vấn sau: - Các trận đấu chưa diễn ra
- Các trận đã diễn ra
- Danh sách các cầu thủ ghi bàn - 10 cầu thủ ghi bàn nhiều nhất
- Các bàn thắng của trận đấu (theo tên đã biết trước)
- Bảng xếp hạng bao gồm: Tên câu lạc bộ; số trận thi đấu; số trận thắng, hòa, thua trên sân nhà; số trận thắng, hòa, thua trên sân khách; Hiệu số bàn thắng thua, Điểm. Câu lạc bộ nào có chỉ số cao được xếp lên trên.
- Tổng số bàn thắng của giải, tổng số thẻ phạt của giải.
Chú ý: Cách thức điểm được tính như sau: Điểm cho mỗi trận, đội thắng được 3 điểm, đội hòa được 1 điểm, thua 0 điểm.
Để cải thiện hiệu năng hoạt động của hệ thống thì cần phải cải thiện tốc độ thực hiện của những truy vấn này trước tiên. Anh/chị hãy vận dụng những kiến thức đã học để tối ưu tốc độ thực hiện của những truy vấn đã nêu, đồng thời thực hiện truy vấn đã nêu.
5. Hệ thống chủ yếu được dùng bởi các nhóm người dùng sau: - Quản trị: có toàn quyền với hệ thống
- Các trọng tài, cầu thủ: được phép sửa đổi thông tin của riêng cá nhân mình. Xem thông tin về giải đấu, lịch thi đấu, sân bóng,...
- Khán giả: xem mọi thông tin về giải đấu, câu lạc bộ, sân bóng, cầu thủ,... Anh/chị hãy thiết lập cơ chế bảo mật phù hợp cho cơ sở dữ liệu.
6. Hãy đưa ra phương án backup phù hợp cho cơ sở dữ liệu trên.
7. Để đảm bảo yêu cầu về mặt hiệu năng của hệ thống, một số quy tắc nghiệp vụ được yêu cầu thực thi ở phía CSDL. Anh chị hãy chọn đối tượng phù hợp để triển khai những quy tắc nghiệp vụ này.
- Cập nhật số lượng cầu thủ của câu lạc bộ khi thêm mới/update/xóa cầu thủ, - Cập nhật điểm đội nhà, điểm đội khách, số bàn thắng đội khách, số bàn thắng của cầu thủ, số bàn thắng đội nhà, số bàn thua đội nhà, số bàn thắng đội khách, số bàn thua đội khách KHI thêm mới bàn thắng
- Thêm mới trận đấu
- Tìm kiếm thông tin về cầu thủ
8. Giả sử hệ thống đã đi vào hoạt động ổn định. Đột nhiên một ngày hệ thống diệt virus của server phát hiện một log file của CSDL bị virus tấn công (tất nhiên là file đó bị hỏng). Anh chị hãy nghĩ ra phương án khắc phục sự cố trên.