2.3.1关于规范化-创新互联

规范化是一个数据设计过程,其高级目标是将每个事实保持在一个位置,以避免数据冗余以及插入,更新和删除异常。有多个级别的规范化,本节将介绍前三个级别。考虑到第三范式(3NF)项是多么基本,只看到如何达到3NF才有意义。

成都创新互联是一家专注于成都做网站、成都网站建设与策划设计,涪城网站建设哪家好?成都创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:涪城等地区。涪城做网站价格咨询:18982081108

考虑一种跟踪销售情况的情况。您跟踪的核心实体是销售订单,其中每个销售订单包含有关所购买的每个项目的详细信息(称为行项目):其名称,价格,数量等。该订单还包含客户的名称和地址等。有些订单有很多不同的订单项,有些订单只有一个。

在第一范式(1NF)中,没有重复的数据组,也没有重复的行。行和列(字段)的每个交集都只包含一个值,并且没有包含相同事实的列组。为避免重复行,有一个主键。对于销售订单,在第一范式中,不显示表格的单个字段中的每个销售订单的多个行项目。此外,不会有多个列显示订单项。

然后是第二范式(2NF),其中设计是第一范式,每个非键列依赖于完整的主键。因此,订单项会分为销售订单行项目表,其中每行代表一个订单的一个订单项。您可以查看订单项表,并查看所售商品的名称不依赖于订单项表的主键:销售商品是其自己的实体。因此,您将销售项目移动到其自己的表格,显示项目名称。每件商品的价格可能因订单而异(例如,由于折扣),因此这些价格保留在订单项表中。对于销售订单,客户的名称和地址不依赖于销售订单的主键:客户是其自己的实体。从而,

接下来是第三范式,其目标是确保不依赖于非关键属性。因此,目标是获取与行的主题(主键)不直接相关的列,并将它们放在自己的表中。因此,有关客户的详细信息(例如客户名称或客户城市)应放在单独的表中,然后将客户外键添加到订单表中。

2NF表与3NF表的不同之处的另一个例子是网球锦标赛的获胜者表,其中包含锦标赛,年份,获胜者和获胜者出生日期的列。在这种情况下,获胜者的出生日期很容易出现不一致,因为同一个人可能会在不同的记录中显示出生日期。避免这个潜在问题的方法是将桌子分成一个用于比赛获胜者,另一个用于球员出生日期

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:2.3.1关于规范化-创新互联
网站路径:http://pwwzsj.com/article/dhgjii.html