4. Thiết kế CSDL
4.3 Chuẩn hóa
Dưới đây sẽ phân tích và kết luận về dạng chuấn của các báng (lược đồ) dữ liệu. Với mỗi bảng ta sẽ hệt kê danh sách các cột (các thuộc tính), xác định khóa chính, khóa ngoài và các phụ thuộc hàm từ ý nghĩa thực tế. Từ đó rút ra kết luận về dạng chuẩn của từng bảng
1- Bảng Hồ chứa nước - Reservoirs
Các thuộc tính : rid, name, rivername, location, opv-authority, x-eoordinate, V-
coordinate, maxstorage, maxdischarge,
Khóa chính: rid
Các phụ thuộc dữ liệu (phụ thuộc hàm):
F D 1: rid —►nam e, rivername, location, opr-authurỉíy, x-coordinate, V-
Dạng chuẩn: B C N F
Giải thích :
- rid là mã định danh duy nhất cho mỗi hồ chứa, Nó xác định tất cả các thuộc * tính còn lại của một hồ chứa.
- Ngoài ra không còn phụ thuộc hàm nào khác
2 - Bảng sha relation
Các thuộc tính: id, rid, storage, height, surface
Khóa chính: id
Khóa ngoài: rid
Các phụ thuộc dữ liệu (phụ thuộc hàm):
FD1: id —» rid, storage, height, surface
FD2: (rid, height) —» storage, surface, id
FD3: (rid, storage) —►height, surface, id
FD4: (rid, surface) —*■ storage, height, id
Giải thích về các phụ thuộc dữ liệu:
- FD1 là hiển nhiên vỉ id là mã duy nhất cho mỗi cỉòne trong báng
s h a r e ỉa tio n
- Mỗi hồ chứa có một rid duy nhất. Với mỗi hô chúa, có nhiêu bộ ba lượng chứa, độ cao mực nước, diện tích mặt nước (storage, height, surface) đặc trưns cho hình khối của lòng hồ. Dễ thấy ràng với mồi hồ chứa, nếu biết một thuộc tính bất kì trong 3 thuộc tính trên thì sẽ xác định đưọc 2 thuộc tính còn lại. Do đó có các phụ thuộc dữ liệu
(rid, height) —> storage, surface (rid, storage) —> height, surface (rid, surface) —*■storage, height
- Một hồ chứa có nhiều bộ ba (storage, height, surface) trong hang
nếu xét cặp kết hợp (rid, height) thì chỉ có một dòng duy nhất trone bảng. TÙ đó có phụ thuộc (rid, height) —►id.
- Lập luận tương tự, có các phụ thuộc dữ liệu (rid, storage) —> i d, (rid,
• surface) —> id
- Các nhận xét trên chứng minh các quan hệ phụ thuộc dữ liệu FD2. FD3,
FD4.
Dạng chuẩn: B C N F
Lược đồ có dạng chuẩn BCNF vì vế trái của tất cá các phụ thuộc hàm đều là super key
3 - Bảng rulecurve
Các thuộc tính: id, rid, date, volume
Khóa chính: id
Khóa ngoài: rid
Các phụ thuộc dữ liệu (phụ thuộc hàm): FD1: id —> rid, date, volume
FD2: (rid, date) —* volume, id
Dạng chuẩn: B C N F
- Giải thích về các phụ thuộc dữ liệu và dạng chuân tương tự như trons mục 2. Mỗi hồ chứa có một n d duy nhất. Với mỗi hồ chứa, có nhiều cặp ngàv
thảng, lượng chứa (date, volume) phản ánh quy tắc vận hành của hồ đó. Dễ
thấy rằng với mỗi hồ chứa, cho một ngày xác định có trong báng quy tẳc vận hành, ta tìm được lượns nước tương ứng. Do đó có phụ thuộc dữ liệu
(rid, dale) —> volume
- Một hồ chửa có nhiều cặp {date, volume) trong bảne rule curve, nahĩa là có nhiêu dòng cùng một ri LÍ tronạ bảng này, Nhưng nêu xét cặp kêt hợp
4 - Bảng waterlevel
Các thuộc tính: id, rid, time, waterlevel
Khéa chính: id
Khóa ngoài: rid
Các phụ thuộc dữ liệu (phụ thuộc hàm):
F D 1: id —* rid, time, water level
FD2: (rid, time) —> water level, id
Dạng chuẩn: B C N F
Giải thích về các phụ thuộc dữ liệu và dạng chuẩn tương tự như trên:
- Với mỗi hồ chứa, có nhiều cặp thời điểm, mức nước (time, waterlevel)
phản ánh diễn biến thực tế của mức nước trong hồ. Dễ thấy rang với mỗi hồ chứa, cho một thời điêm xác định, ta tìm được độ cao mực nước thực tế tại thời điếm đó. Do đó có phụ thuộc dữ liệu
(rid, time) —*■waterlevel
- Một hồ chứa có nhiêu cặp (time, waterlevel') trone báng, nghĩa là có nhiêu dòng cùng một rid trong bảng này. Nhưng nêu xét cặp kêt hợp (rid, time)
thì chỉ có một dòng duy nhất trong bảng. Từ đó có phụ thuộc (rid, time) —»
id.
5 - Bảng diversion
Các thuộc tính: did, rivername, location, opr-authoritỵ, x-coordinate, V-
cuordinate, type, capaciw
Khóa chính: did
Các phụ thuộc dừ liệu (phụ liiuộc hàm):
FD1: did —►rivername, location, opr-authority-, x-coordinate, y-
coordinate, type, capacity
Dạng chuẩn: B C N F
Giải thích :
- did là mã định danh duy nhất cho mỗi diversion. N ó xác định tất cả các thuộc tính còn lại của đập ngăn.
- • Ngoài ra không còn phụ thuộc hàm nào khác