Nhiều bảng cơ sở dữ liệu có một hay nhiều field để nhận dang duy nhất từng dòng trong bảng dữ liệu và duge goi la primary key (khóa chính). Khóa chính của bảng Cusfomers trong cơ sở dữ liệu Northwind 1a field CustomerID.
Chuan Hóa
Norntalizotion (chuẩn hóa) bao gồm việc thi hành một tập hợp các quy tắc thiết kế các bảng cơ sở dữ liệu. Chuẩn hóa bao gồm ít nhất 4 lợi điểm sau:
mg Loại bỏ các thông tin thừa: Nhiều cơ sở dữ liệu không yêu cầu nhập cùng một thông tin liên hệ vào nhiều form.
Việc loại bớt sự dư thừa sẽ giảm khả năng gây lỗi nhập liệu dẫn đến có thể làm hư hồng cơ sở dữ liệu. Nó còn có thể đơn giản hóa sự bảo quản cơ sở dữ liệu bởi vì một giá trị chỉ được lưu ở một nơi, vì thế việc xóa và cập nhật cũng xảy ra ở một. nơi.
M Giảm bích thước cơ sở dữ liệu: Bởi vì mỗi loại thông tín chỉ được lưu trữ ở một nơi, cơ sở dữ liệu không phải lưu một thông tin thành nhiều bảng. Việc tiêu chuẩn hóa cơ sở đữ liệu sẽ làm giảm tối thiểu số lượng cột trong bảng dữ liệu, đo đó làm giảm kích thước của cơ sở đữ liệu.
m Đơn giản hóa uiệc tìm hiếm: Người xây dựng cơ sở dữ liệu chuyên nghiệp am hiểu những quy tắc chuẩn hóa sẽ biết ngay tức khắc cách thức điều khiến những bảng dữ liệu như thế nào để tìm ra thông tin mà họ cần tìm cho bằng được.
Những người dùng cơ sở dữ liệu ngẫu nhiên sẽ tìm thiết kế bang logic bởi vì mỗi bảng đữ liệu diễn giải cho một thực thể và tất cả những thuộc tính của nó là các cột trong bảng
dữ liệu.
189
M Đơn giửn héa query (van tin): Một cột của bảng chứa một kiểu dữ liệu, như tên hoặc tên họ, không thể là cả hai tên.
Bằng cách lưu trữ dòng tên họ trong một cột khác, cơ sở dữ liệu có thể dễ dàng cung cấp danh sách tất cả các dòng với tên họ rõ ràng. Với cơ sở dữ liệu không chuẩn hóa, cột tên và họ được lưu trữ trong cùng một cột, một query phải trích xuất cột họ trước khi chọn ra giá trị cho nó.
Có ba quy tắc chuẩn hóa dưới đây được gọi là First Normal Form, Second Normal Form va Third Normal Form — có sự khác nhau của những quy tắc đặc biệt này.
First Normal Form
Trang thai First Normal Form (dang chuẩn hóa thứ nhất) là mỗi fủield trong bảng nờn chứa một mục thụng tin khụng thể chia cắt được. Bang Order Details trong co sé dit ligu Northwind minh họa quy tắc này. Hình 3-1 trình bày một phần trong bảng với 3 đơn đặt hàng. Mỗi cột chứa một loại dữ liệu. Cột thứ hai chứa tên sản phẩm—không phải vừa là tên sản phẩm vừa là đơn giá. Mỗi sản phẩm chỉ nằm trên một dòng.
2/0 7]
^
Cider D b
Order ID Product Unit Price
, 10248 Gueso Cabrales $1400
10248 Singaporean Hokkien Fned tee $3 80 10248 Mozzarelia dị Gioyanm $34 0O
10249 Tofy $18 60
10249 Manjimup Died Appies $42 40 10250 Jack's New England Clam Chowder $770 10250 Manjimup Dued Apptes $42 46 10250 Lousiana Frery Hot Peppet Sacce $16 BO Record. 141 6 if Ý „tt [re] of 215%
[Quantity] Discount 10 t2
5 40 ta 3 15
0% 8%
0% a%
0% a%
15% 15%
Hinh 3-1. Mgt phan cia bang Order Details minh hoa quy tắc chuẩn hóa thứ nhất. Các thành phần trong mỗi cột hoặc field cùng một kiểu đữ liệu và đối với bất kỳ dòng nào, những thành phần trong một cột không thể chia cắt được.
190
Chương 3: THIẾT KẾ BẰNG
Các bảng cơ sở dữ liệu không tuân theo chuẩn héa First Normal Form thường rơi vào một trong hai trường hợp. Đầu tiên đặt nhiễu mục vào trong một field. (lưu ý bảng dữ liệu trong Hình 3-1 chỉ cú một mục trờn mỗi fủield.) Vớ dụ một bảng đữ liệu lưu trữ phần tờn và phần họ trong một fủield. Điều này làm phức tạp trong việc trích xuất thông tin. Cách thứ hai, chuẩn héa First Normal Form bị vi phạm, có nghĩa là trong bảng mỗi sản phẩm trong đơn đặt hàng có một field để chứa nó, điều này đòi hỏi phải có nhiều fủield đơn giỏ, số lượng, và chiết khấu, hơn nữa nú phỏ vỡ quy tắc First Normal Form. Kiểu thiết kế này làm tăng kích thước của bảng và nhiều giá trị của một số cột sẽ bị bỏ trống.
Các bảng tuân theo chuẩn hóa First Normal Form giếng như được tổ chức quanh những thực thể logic, làm cho việc tìm kiếm thông tin duoc dé dang và chúng có khả năng có một khóa chính, điểu đó chắc rằng mỗi một dòng trong bảng là duy nhất. Nhắc lại rằng các bảng cơ sở dữ liệu mô tả những trường hợp của các thực thể. Trong bảng trình bày ở Hình 3-1, mỗi một dòng là một mục trong đơn đặt hàng của khách hàng. Khoá chính của bảng dữ liệu là một khóa phức hợp dựa trên các số OrderID và ProducHD bởi vì mỗi mục trong đơn đặt hàng có thể được xác định bằng sự kết hợp duy nhất của số liệu đơn đặt hàng của khách hàng và ID của mã
sản phẩm (tức là tên sản phẩm). :
Second Normal Form
Second Normal Form chỉ định một mối quan hệ cần phải có giữa các cột trong một dòng. Để tuân theo chuẩn hóa Second Normal Form bảng phải tuân theo chuẩn hóa First Normal Form.
Cộng thêm vào tất cả các giá trị trong dòng phải chứa thông tin về thực thể miờu tả bởi dũng đú. Ngoài ra khụng thể cú hai fủeld bị phụ thuộc vào một fủeld khỏc. Một sự vi phạm thụng thường của quy tắc này là đặt những feld của hai thực thể riêng biệt vào trong
một bảng.
191
Bang Order Details trong co sở dữ liệu Northwind tuân theo chuẩn hóa Second Normal Form. Field sé luong ré rang thich hop cho mỗi mục. Cột đơn giá và chiết khấu có thé thay đổi phụ thuộc vào mỗi mục, việc đặt cột đơn giá và cột chiết khấu trong bảng làm cho ứng dụng dễ dàng theo đôi những mục đó trong từng đơn đặt hàng.
Cơ sở dữ liệu Northwind có cột đơn giá trong cả hai bảng Order Details va Products. Diéu nay cé lẽ vì phạm chuẩn hóa Second Normal Form. Tuy nhiên, thiết kế này làm cho người quần lý cập nhật đơn giá cho từng mục mà không ảnh hưởng đến đơn gía các mục đã được đặt hàng. Những đơn đặt hàng riêng lẻ có thể dùng các danh mục đơn giá và chiết khấu trong bảng Products như là một nguyên tắc chỉ đạo hơn là một quy tắc cứng nhắc cho tất cả các giao dịch.
Third Normal Form
Chuẩn hóa Third Normal Form chi rõ rằng cdc field trong mỗi dòng phải duy nhất và không phụ thuộc vào field khác. Ví dụ, quy tắc này cho phép trên một dòng chỉ có một field ngày tháng năm. Nếu bang Orders chứa field ngày tháng năm đặt hàng thì nó không chứa field biểu thị ngày trong tuần hoặc tháng dat hang.
(ứng dụng cú thể lấy thỏng của đơn đặt hàng từ ủield ngày thỏng dat hang.) Bang Orders khong cd nhiều field chứa giá tri Date/Time, nhung nó có thể tham chiếu đến thời gian bắt đầu đặt hàng, ngày tháng khách hàng yêu cầu giao hàng, ngày tháng vận chuyển hàng v.v..
Tuôn Thủ Các Quy Tắc
Trong khi tuân thủ các quy tắc chuẩn hóa là giải pháp khôn ngoan nhưng đôi khi bạn có lý đo để lựa chọn chúng, ví dụ để tránh có nhiều bảng. Một field chứa mã bưu điện cùng với những field mã
192