Normalization 和 Denormalization 是關聯式資料庫中的概念,用來描述資料庫中表格的設計。
Normalization 意旨為「正規化」,它是使資料表符合某些特定規則,以減少資料冗餘和提高資料表格結構設計的程式;Denormalization 意旨為「去正規化」,這是在資料表中添加重複資訊,以加速特定查詢的進行。
舉例來說,假設你有一個資料表格,包括以下資料:
Customer
這個資料表格沒有正規化,因為它包含數個重複的資料。舉例來說,如果同一個顧客有多筆資料,例如他們在不同的地址下喜好不同商品,他們的姓名和電話欄位將會是重複的。這樣,你可以考慮建立一個表格專門用來儲存顧客資訊,再建立一個表格用來儲存他們在每個地址下的訂單。這些表格正規化了原始資料,將顧客資訊存儲一次,允許您更輕易地編寫查詢並避免資料冗餘。
另一方面,Denormalization 可以用來提高特定查詢的性能。舉例來說,假設您有一個包含產品,分類和庫存的表格,並且您想查詢所有庫存的內容。在這種情況下,您可以將產品和分類的資料添加到庫存表格中,以便這些查詢能快速執行。換句話說,Denormalization 可以用來優化查詢,即使這意味著增加了一些資料冗餘。
總之,Normalization 和 Denormalization 是資料庫設計的兩個相反的概念,在資料庫設計中,需要達到平衡點,以達到資料表格的最佳效能。
Normalization:
Denormalization:
答案:Normalization 是一種關係型資料庫設計的技術,目的是為了減少重複資料並提高資料庫設計的效率和可維護性。三種正規化形式分別是1NF、2NF 和 3NF。
答案:這表明這張表格不符合3NF限制,可以使用2NF 或 3NF去除重複資料。
答案:1.在資料重複較多的查詢上添加冗餘欄位,以提高查詢效率。2. 藉由合併多張表格,以減少查詢中的表格連接數量和提高效率。
答案:冗餘欄位就是多餘的資料欄位。比如,在一個訂單表中,有一個包含訂單總價金額的欄位,如果再在該訂單表中添加一個新的欄位,可以計算出每個產品單價的總價金額,那這個新欄位就是一個冗餘欄位。
答案:1.增加了資料庫的複雜度和體積,提高了系統維護成本。2. 如果不小心產生錯誤或欄位重複,可能會導致數據不一致。