标准化第三范式

2019-08-02 01:11

第三范式

第三范式(3NF)是数据库规范化中所使用的一种正规形式,用来检验是否所有非键属性都只和候选键有相关性,也就是说所有非键属性互相之间应该是无关的。 第三范式和第二范式不同的地方在于,在第三范式里,所有的非键属性都必须和每个候选键有直接相关。如果再对第三范式做进一步加强就成了BC范式,它所强调的重点就在于 \数据间的关系是奠基在键上、以整个键为考量、而且除了键之外不考虑其他因素\。

以下面这个定义机械组件的关系为例:

机械组件 组件编号 制造商名称 制造商地址 (主键) 1000 1001 1002 Toyota Park Avenue Mitsubishi Lincoln Street Toyota Park Avenue 本例中制造商地址很明显地不该被列在这个关系里面,因为和组件本身比起来,制造商地址应该和制造商比较有关系;正确的做法应该是把独立成为一个新的数据表:

制造商 制造商名称 制造商地址 (主键) Toyota Park Avenue Mitsubishi Lincoln Street 然后把原本的数据表改成这样:

机械组件 组件编号 制造商名称 (主键) 1000 1001 1002 Toyota Mitsubishi Toyota 先前那个数据表的问题在于每提到一次制造商名称就要多存一次它的地址,而这就不符合第三范式的原则。 下面提供了另一个例子:

订单 (Order) 订单编号 (Order Number) (主键) 1000 1001 1002 客户名称 (Customer Name) David Jim Bob 单价 (Unit Price) $35.00 $25.00 $25.00 数量 (Quantity) 3 2 3 小计 (Total) $105.00 $50.00 $75.00 在本例中,非主键字段完全依赖于主键订单编号,也就是说唯一的订单编号能导出唯一非主键字段值,符合第二范式。第三范式要求非主键字段之间不能有依赖关系,显然本例中小计依赖于非主键字段单价和数量,不符合第三范式。小计不应该放在这个数据表里面,只要把单价乘上数量就可以得到小计了;如果想要符合第三范式的话,就把小计拿掉吧 (不过在做查询的时候,本来用 \FROM Order\就要改成用 \了)。

订单 (Order) 订单编号 (Order Number) (主键) 1000 1001 1002

客户名称 (Customer Name) David Jim Bob 单价 (Unit Price) $35.00 $25.00 $25.00 3 2 3 数量 (Quantity)


标准化第三范式.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018届高三第二次模拟考试语文试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: