Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Dựa trên yêu cầu của bài toán, ta có thể đề xuất các bảng dữ liệu và các trường làm khoá chính và khoá ngoài như sau:
- Bảng HocSinh:
Trường: Mã số báo danh, Họ tên, Ngày sinh, Địa chỉ
Khoá chính: Mã số báo danh
Khoá ngoài: Không có
- Bảng MonHoc:
Trường: Tên môn học, Mã môn học
Khoá chính: Mã môn học
Khoá ngoài: Không có
- Bảng PhongThi:
Trường: Mã phòng thi, Tên phòng thi
Khoá chính: Mã phòng thi
Khoá ngoài: Không có
- Bảng ThiSinh_MonHoc:
Trường: Mã số báo danh, Mã môn học
Khoá chính: Mã số báo danh, Mã môn học
Khoá ngoài: Mã số báo danh tham chiếu đến bảng HocSinh, Mã môn học tham chiếu đến bảng MonHoc
- Bảng KetQuaThi:
Trường: Mã số báo danh, Mã môn học, Mã phòng thi, Điểm thi
Khoá chính: Mã số báo danh, Mã môn học, Mã phòng thi
Khoá ngoài:
Mã số báo danh tham chiếu đến bảng HocSinh
Mã môn học tham chiếu đến bảng MonHoc
Mã phòng thi tham chiếu đến bảng PhongThi
Lưu ý rằng, trong bảng ThiSinh_MonHoc, ta cần sử dụng một tập hợp các trường (Mã số báo danh, Mã môn học) để tạo thành khoá chính, bởi vì một thí sinh có thể đăng kí thi nhiều môn học khác nhau. Còn trong bảng KetQuaThi, ta cần sử dụng một tập hợp các trường (Mã số báo danh, Mã môn học, Mã phòng thi) để tạo thành khoá chính, bởi vì một thí sinh có thể thi cùng một môn học ở nhiều phòng thi khác nhau.
Tham khảo:
Khi hai bảng trong một CSDL có liên quan đến nhau, mỗi giá trị khoá ngoài ở bảng tham chiếu sẽ được giải thích chi tiết hơn ở bảng được tham chiếu. Ví dụ “HS-001” được giải thích bằng thông tin “Họ và tên: Trần Văn An, Ngày sinh: 14/9/2009, Lớp: 12A2”. Nếu có một giá trị khoá ngoài nào không xuất hiện trong giá trị khoá ở bảng được tham chiếu. Trong Hình 3, “HS-007” không xuất hiện trong Số thẻ TV của bảng NGƯỜI ĐỌC. Do vậy, việc bổ xung cho bảng MƯỢN-TRẢ một bảng ghi mới có giá trị khoá ngoài là: “HS-007” sẽ làm cho dữ liệu trong CSDL không còn đúng nữa, không giải thích được “HS-007” là số thẻ thư viện của ai. Muốn cập nhập đó hợp lệ, phải bổ xung bản ghi có giá trị khoá là “HS-007” vào bảng NGƯỜI ĐỌC trước.
Có thể khai thác được những thông tin:
- Học sinh đạt điểm cao nhất môn toán
- Tổng số điểm trên trung bình môn toán.
- Điểm trung bình chung môn toán của mỗi học sinh.
Ngoài việc ghi điểm vào sổ điểm, có thể có những công việc:
- Sửa, xóa, bổ sung điểm của học sinh
- Thống kê số liệu.
…
Tham khảo:
#include <stdio.h>
#define GIOI "\nXep loai gioi"
#define KHA "\nXep loai kha"
#define TB "\nXep loai trung binh"
#define YEU "\nXep loai yeu"
/*
Format code: Alt + Shift + F
*/
int main()
{
// Nhập điểm 3 môn
float diemToan;
float diemVan;
float diemAnh;
float dtb;
printf("\nNhap diem toan = ");
scanf("%f", &diemToan);
printf("\nNhap diem van = ");
scanf("%f", &diemVan);
printf("\nNhap diem anh = ");
scanf("%f", &diemAnh);
dtb = (diemToan + diemVan + diemAnh) / 3;
printf("\nDTB = %.2f", dtb);
if (dtb < 4)
{
printf(YEU);
}else if (dtb < 6.5){
printf(TB);
}else if(dtb < 8.0){
printf(KHA);
}else{
printf(GIOI);
}
}
Trong CSDL học tập này, ta có thể xác định các khoá chính và các khoá ngoài của từng bảng như sau:
- Bảng Hocsinh:
Khoá chính: Số CCCD
Khoá ngoài: Không có
- Bảng Monhoc:
Khoá chính: Mã môn
Khoá ngoài: Không có
- Bảng Diem:
Khoá chính: Số thẻ học sinh, Mã môn, Năm, Học kì, Loại điểm
Khoá ngoài:
Số thẻ học sinh tham chiếu đến bảng Hocsinh.
Mã môn tham chiếu đến bảng Monhoc.
Số CCCD có thể được sử dụng làm khoá chính của bảng Hocsinh, nhưng không nên sử dụng nó làm khoá chính của bảng Diem, bởi vì một học sinh có thể có nhiều môn học và điểm khác nhau trong các môn học đó. Do đó, ta cần sử dụng một tập hợp các trường (số thẻ học sinh, mã môn, năm, học kì, loại điểm) để tạo thành khoá chính của bảng Diem.