Vì sao cần mã học sinh?
Hai bạn có thể cùng họ tên. Nếu chỉ dựa vào tên để liên kết điểm với người học, ta có thể nhầm. Mã nhận diện giúp phân biệt các đối tượng.
Từ bảng đến quan hệ
Quan sát sơ đồ để nối các khái niệm với nhau.
Trong CSDL quan hệ, bảng gồm các hàng (bản ghi) và cột (trường/thuộc tính). Khóa là tập thuộc tính giúp phân biệt bản ghi và không thừa thuộc tính cho nhiệm vụ ấy; có thể có nhiều khóa ứng viên. Khóa chính là một khóa được chọn, không trùng và không nhận giá trị rỗng theo ràng buộc khóa chính. Khóa có thể gồm nhiều trường.
Khóa ngoài tham chiếu khóa phù hợp ở bảng được liên kết. Một giá trị khóa ngoài có thể lặp ở nhiều hàng; nếu cho phép NULL thì giá trị đó biểu thị chưa có tham chiếu, còn giá trị khác NULL phải thỏa ràng buộc. Hai cột cùng tên chưa tự tạo quan hệ có kiểm soát.
Một lớp có nhiều học sinh
Bảng Lop có MaLop khóa chính và TenLop. Bảng HocSinh có MaHS khóa chính, HoTen và MaLop khóa ngoài tới Lop. Nhiều học sinh cùng MaLop là bình thường; hai học sinh cùng MaHS vi phạm khóa chính. Quan hệ là một lớp có nhiều học sinh.
Thử vận dụng
Trong bảng HocSinh, trường nào thích hợp hơn làm khóa chính nếu quy định mã học sinh là duy nhất?
Họ tên có thể trùng.
Đúng: mã được quy định phân biệt từng học sinh.
Nhiều học sinh cùng tỉnh.
Ngày sinh cũng có thể trùng.
Lời giải
MaHS được quy định duy nhất; tên, tỉnh hoặc ngày sinh có thể trùng.
Khóa ghép trong đăng kí
Bảng DangKi có MaHS, MaCLB và NgayDangKi. Nếu mỗi học sinh chỉ đăng kí mỗi CLB một lần, cặp (MaHS, MaCLB) có thể làm khóa chính. Từng MaHS hoặc từng MaCLB riêng lẻ có thể lặp nên không đủ phân biệt một đăng kí.
Ví dụ xem cách làm
Bảng Lop chỉ có mã A và B. Thêm học sinh mang MaLop = C có vi phạm khóa ngoài đang được thực thi không?
Lời giải
Có, nếu C không tồn tại ở bảng Lop và trường này tham chiếu MaLop của Lop. Cần tạo lớp hợp lệ hoặc sửa mã đúng, không bỏ ràng buộc chỉ để nhập được.
Ví dụ xem cách làm
Có thể kết luận HoTen là khóa vì năm hàng đang xem chưa có ai trùng tên không?
Lời giải
Chưa đủ. Khóa phải bảo đảm duy nhất theo quy tắc dữ liệu của bài toán, không chỉ tình cờ không trùng trong vài hàng hiện tại.
Những điều cần nhớ
Khóa chính nhận diện bản ghi, khóa ngoài liên kết có ràng buộc. Xét quy tắc của bài toán và nhớ khả năng dùng khóa ghép.
Đang học