Normalization 和 Denormalization 是关联式资料库中的概念,用来描述资料库中表格的设计。
Normalization 意旨为“正规化”,它是使资料表符合某些特定规则,以减少资料冗余和提高资料表格结构设计的程式;Denormalization 意旨为“去正规化”,这是在资料表中添加重复资讯,以加速特定查询的进行。
举例来说,假设你有一个资料表格,包括以下资料:
Customer
这个资料表格没有正规化,因为它包含数个重复的资料。举例来说,如果同一个顾客有多笔资料,例如他们在不同的地址下喜好不同商品,他们的姓名和电话栏位将会是重复的。这样,你可以考虑建立一个表格专门用来储存顾客资讯,再建立一个表格用来储存他们在每个地址下的订单。这些表格正规化了原始资料,将顾客资讯存储一次,允许您更轻易地编写查询并避免资料冗余。
另一方面,Denormalization 可以用来提高特定查询的性能。举例来说,假设您有一个包含产品,分类和库存的表格,并且您想查询所有库存的内容。在这种情况下,您可以将产品和分类的资料添加到库存表格中,以便这些查询能快速执行。换句话说,Denormalization 可以用来优化查询,即使这意味着增加了一些资料冗余。
总之,Normalization 和 Denormalization 是资料库设计的两个相反的概念,在资料库设计中,需要达到平衡点,以达到资料表格的最佳效能。
Normalization:
Denormalization:
答案:Normalization 是一种关系型资料库设计的技术,目的是为了减少重复资料并提高资料库设计的效率和可维护性。三种正规化形式分别是1NF、2NF 和 3NF。
答案:这表明这张表格不符合3NF限制,可以使用2NF 或 3NF去除重复资料。
答案:1.在资料重复较多的查询上添加冗余栏位,以提高查询效率。2. 藉由合并多张表格,以减少查询中的表格连接数量和提高效率。
答案:冗余栏位就是多余的资料栏位。比如,在一个订单表中,有一个包含订单总价金额的栏位,如果再在该订单表中添加一个新的栏位,可以计算出每个产品单价的总价金额,那这个新栏位就是一个冗余栏位。
答案:1.增加了资料库的复杂度和体积,提高了系统维护成本。2. 如果不小心产生错误或栏位重复,可能会导致数据不一致。