jiangcristian
Senior Member
Các bác ở đây cho em hỏi là chuẩn hóa csdl có phải là yêu cầu bắt buộc khi thiết kế csdl cho một hệ thống không ạ. Tại vì em thấy đôi khi tăng độ chuẩn hóa lên sẽ làm tăng tải hơn cho hệ thống.
Vd 1: Trong 1 db hệ thống quản lí cửa hàng, bảng lưu thông tin hóa đơn thường sẽ có thông tin về đơn giá mặt hàng, số lượng mặt hàng. Tổng giá của hóa đơn có thể được tính bằng đơn giá một mặt hàng x số lượng hàng. Đây có thể coi là 1 ví dụ kinh điển mà mỗi khi học về chuẩn hóa csdl ở trường đại học luôn được nhắc đến.
Nhưng nếu thay vì quản lí 1 cửa hàng nhỏ, hệ thống của chúng ta quản lí rất nhiều gian hàng, hoặc 1 sàn tmđt thì sao, bảng ghi hóa đơn có thể gồm hàng triệu record, và lúc này mỗi khi xem hóa đơn sẽ phải query trong 1 đống record đó và tính lại giá trị hóa đơn để hiển thị cho người dùng. Điều này liệu có thể khiến hệ thống chạy chậm hơn không?
Vd 2: Giả sử hệ thống quản lí điểm số của sinh viên trong 1 trường đại học, các thông tin cần lưu bao gồm điểm thành phần từng môn, số tín chỉ của từng môn. Như vậy điểm tổng kết của sinh viên là một thuộc tính có thể tính toán dựa trên điểm từng môn và số tín chỉ dựa trên công thức cho trước.
Tuy nhiên nếu k lưu lại giá trị điểm tổng kết này thì giả sử sau này công thức tính điểm cũ được thay = công thức tính điểm mới => điểm tổng kết của các sinh viên cũ có thể bị thay đổi.
Trong 2 ví dụ trên thậm chí csdl còn chưa đạt chuẩn 1, nếu chuẩn hóa lên các dạng cao hơn thậm chí có thể có nhiều vấn đề phát sinh hơn, các bác nghĩ sao ạ.
Vd 1: Trong 1 db hệ thống quản lí cửa hàng, bảng lưu thông tin hóa đơn thường sẽ có thông tin về đơn giá mặt hàng, số lượng mặt hàng. Tổng giá của hóa đơn có thể được tính bằng đơn giá một mặt hàng x số lượng hàng. Đây có thể coi là 1 ví dụ kinh điển mà mỗi khi học về chuẩn hóa csdl ở trường đại học luôn được nhắc đến.
Nhưng nếu thay vì quản lí 1 cửa hàng nhỏ, hệ thống của chúng ta quản lí rất nhiều gian hàng, hoặc 1 sàn tmđt thì sao, bảng ghi hóa đơn có thể gồm hàng triệu record, và lúc này mỗi khi xem hóa đơn sẽ phải query trong 1 đống record đó và tính lại giá trị hóa đơn để hiển thị cho người dùng. Điều này liệu có thể khiến hệ thống chạy chậm hơn không?
Vd 2: Giả sử hệ thống quản lí điểm số của sinh viên trong 1 trường đại học, các thông tin cần lưu bao gồm điểm thành phần từng môn, số tín chỉ của từng môn. Như vậy điểm tổng kết của sinh viên là một thuộc tính có thể tính toán dựa trên điểm từng môn và số tín chỉ dựa trên công thức cho trước.
Tuy nhiên nếu k lưu lại giá trị điểm tổng kết này thì giả sử sau này công thức tính điểm cũ được thay = công thức tính điểm mới => điểm tổng kết của các sinh viên cũ có thể bị thay đổi.
Trong 2 ví dụ trên thậm chí csdl còn chưa đạt chuẩn 1, nếu chuẩn hóa lên các dạng cao hơn thậm chí có thể có nhiều vấn đề phát sinh hơn, các bác nghĩ sao ạ.