Category:
[Cánh diều] Trắc nghiệm Tin học 11 KHMT bài 3 Quan hệ giữa các bảng và khóa ngoài trong cơ sở dữ liệu quan hệ
Tags:
Bộ đề 1
2. Trường MaNhanVien trong bảng ChucVu (Chức vụ) tham chiếu đến trường MaNhanVien trong bảng NhanVien (Nhân viên). Điều này thiết lập quan hệ gì?
Nếu mỗi chức vụ chỉ áp dụng cho một nhân viên duy nhất, nhưng một nhân viên có thể có nhiều chức vụ khác nhau theo thời gian (hoặc trong các hệ thống phức tạp hơn), thì MaNhanVien trong ChucVu tham chiếu đến MaNhanVien trong NhanVien có thể biểu diễn quan hệ Nhiều-Một (nhiều chức vụ thuộc về một nhân viên). Tuy nhiên, nếu mỗi nhân viên chỉ có đúng một chức vụ tại một thời điểm, thì đây là Một-Một. Giả định phổ biến hơn cho ChucVu là nó mô tả đặc điểm của một nhân viên cụ thể, nên Một-Một là hợp lý, hoặc nếu chức vụ là một loại vị trí và có nhiều nhân viên cùng giữ một loại chức vụ đó thì đó là Nhiều-Một. Xét theo cách đặt tên ChucVu thường mô tả một vai trò cho một nhân viên cụ thể, quan hệ Một-Một là khả dĩ nhất. Tuy nhiên, nếu ChucVu là một bảng mô tả các loại chức vụ và NhanVien có một trường khóa ngoại chỉ đến bảng đó thì đó là Nhiều-Một. Giả định rằng ChucVu là một bảng chứa thông tin chi tiết của một chức vụ mà một nhân viên nắm giữ, thì quan hệ là Nhiều-Một (nhiều bản ghi chức vụ có thể liên quan đến một nhân viên cụ thể nếu nhân viên đó thay đổi chức vụ). Để rõ ràng hơn, nếu bảng ChucVu chứa thông tin về các chức vụ mà nhân viên đang nắm giữ, và một nhân viên có thể có nhiều chức vụ (ví dụ: kiêm nhiệm), hoặc một chức vụ có thể chỉ định cho một nhân viên, thì phổ biến nhất là Nhiều-Một. Tuy nhiên, nếu ChucVu là bảng mô tả *một* chức vụ cụ thể của *một* nhân viên, thì đó là Một-Một. Phân tích lại dựa trên cấu trúc ChucVu và NhanVien, nếu ChucVu mô tả một vai trò cho một nhân viên cụ thể (ví dụ: ChucVu có thể là Trưởng phòng, Nhân viên, và trường MaNhanVien trong ChucVu là khóa ngoại đến NhanVien), thì mỗi bản ghi trong ChucVu tương ứng với một vai trò của một nhân viên. Nếu một nhân viên chỉ có một vai trò chính, đó là Một-Một. Nếu một nhân viên có thể có nhiều vai trò (kiêm nhiệm), thì đó là Một-Nhiều từ NhanVien sang ChucVu. Tuy nhiên, câu hỏi đặt MaNhanVien trong ChucVu tham chiếu đến MaNhanVien trong NhanVien. Điều này thường ngụ ý rằng mỗi bản ghi trong ChucVu là liên quan đến một nhân viên cụ thể. Nếu mỗi chức vụ chỉ thuộc về một nhân viên, và một nhân viên có thể có nhiều chức vụ, thì đó là Một-Nhiều từ NhanVien sang ChucVu. Nếu mỗi chức vụ chỉ có một nhân viên nắm giữ và mỗi nhân viên chỉ có một chức vụ, thì là Một-Một. Câu hỏi hơi mơ hồ về bản chất của bảng ChucVu. Tuy nhiên, cách diễn đạt MaNhanVien trong ChucVu tham chiếu đến MaNhanVien trong NhanVien chỉ ra rằng mỗi bản ghi trong ChucVu có một trường MaNhanVien xác định. Nếu MaNhanVien là khóa chính trong NhanVien, thì giá trị trong ChucVu.MaNhanVien phải là một MaNhanVien hợp lệ. Nếu mỗi chức vụ chỉ được gán cho một nhân viên, và một nhân viên có thể được gán nhiều chức vụ, thì đó là Một-Nhiều từ NhanVien sang ChucVu. Tuy nhiên, câu hỏi lại diễn đạt ngược lại. Hãy xem xét chiều ngược lại: từ ChucVu đến NhanVien. Nếu mỗi bản ghi trong ChucVu đại diện cho một chức vụ mà một nhân viên có, và một nhân viên có thể có nhiều chức vụ, thì MaNhanVien trong ChucVu là khóa ngoại. Điều này tạo ra quan hệ Một-Nhiều từ NhanVien đến ChucVu. Ngược lại, nếu ChucVu là một bảng mô tả các loại chức vụ và NhanVien có một khóa ngoại tham chiếu đến đó, thì đó là Nhiều-Một. Câu hỏi diễn đạt MaNhanVien trong ChucVu tham chiếu đến MaNhanVien trong NhanVien. Điều này có nghĩa là mỗi bản ghi trong ChucVu liên kết với một bản ghi trong NhanVien. Nếu mỗi chức vụ chỉ thuộc về một nhân viên duy nhất (và một nhân viên có thể giữ nhiều chức vụ), thì đó là Một-Nhiều từ NhanVien sang ChucVu. Nếu một nhân viên chỉ có một chức vụ duy nhất, và một chức vụ có thể có nhiều nhân viên (ví dụ: chức vụ Trưởng phòng có nhiều người), thì đó là Nhiều-Một từ ChucVu sang NhanVien. Xét theo ngữ cảnh ChucVu thường mô tả một vai trò cho một người, quan hệ Một-Một hoặc Nhiều-Một là phổ biến. Tuy nhiên, với cách diễn đạt MaNhanVien trong ChucVu tham chiếu đến MaNhanVien trong NhanVien, nếu MaNhanVien trong ChucVu không phải là khóa chính và chỉ là khóa ngoại, nó cho phép nhiều chức vụ có thể cùng tham chiếu đến một nhân viên. Điều này ngụ ý rằng một nhân viên có thể có nhiều chức vụ, và mỗi chức vụ đó được ghi nhận trong bảng ChucVu. Do đó, quan hệ là Một-Nhiều từ NhanVien sang ChucVu. Tuy nhiên, câu hỏi lại hỏi quan hệ được thiết lập. Nếu MaNhanVien là khóa chính trong NhanVien và là khóa ngoại trong ChucVu, thì nó biểu diễn mối quan hệ từ góc độ của bảng ChucVu. Nếu mỗi chức vụ chỉ được gán cho một nhân viên, nhưng một nhân viên có thể có nhiều chức vụ, thì quan hệ từ NhanVien là Một-Nhiều. Nhìn từ góc độ ChucVu, thì nó là Nhiều-Một. Tuy nhiên, cách diễn đạt MaNhanVien trong ChucVu tham chiếu đến MaNhanVien trong NhanVien thường ám chỉ rằng mỗi dòng trong ChucVu đại diện cho một đặc điểm của một nhân viên, và nếu một nhân viên có thể có nhiều đặc điểm tương tự (ví dụ: nhiều chức vụ), thì đó là Một-Nhiều từ NhanVien đến ChucVu. Lựa chọn Nhiều-Một (Many-to-One) thường chỉ ra rằng nhiều bản ghi ở bảng có khóa ngoại tham chiếu đến một bản ghi ở bảng có khóa chính. Trong trường hợp này, nếu nhiều bản ghi ChucVu có cùng một MaNhanVien (nghĩa là một nhân viên có nhiều chức vụ), thì quan hệ từ ChucVu đến NhanVien là Nhiều-Một. Kết luận Lý giải: Nhiều-Một (Many-to-One).