当前位置:网站首页>数据库中的范式:第一范式,第二范式,第三范式

数据库中的范式:第一范式,第二范式,第三范式

2022-07-05 10:17:00 小的时候可菜了

元组:表中的一行

码:表中的一列

候选码:可唯一标识,如通过(身份证号码)或者 (学校,班级,学号)可唯一标识一个人;主属性:候选码中出现过的属性

主码 : 也叫主键,从候选码中选出一个老大

外码也叫外键。如果一个关系中的一个属性另外一个关系中的主码则这个属性为外码

第一范式,第二范式,第三范式的超简单介绍

第一范式: 不可再分

如一个表中有两个属性: 公司、商品(名称、数量),但商品可由名称、数量表示,不符合,而公司、名称、数量符合

第二范式:建立在第一范式基础上,消除部分依赖

订单号产品号产品数量产品折扣产品价格订单金额订单时间
10001251000.9950002022-07-22
10001262000.8970002022-07-23

订 单 号 、 产 品 号 → 产 品 数 量 、 产 品 折 扣 、 产 品 价 格 订 单 号 → 订 单 金 额 、 订 单 时 间 订单号、产品号\to产品数量、产品折扣、产品价格 \\ 订单号\to 订单金额、订单时间

‘订单号’ 和 ‘产品号’ 是表的主键(主码),这两个字段一起决定了 ‘产品数量‘ ’产品折扣‘ ’产品价格‘ ,

而‘订单金额’和‘订单时间’仅由‘订单号’决定,不是由 主键(‘订单号’ 和 ‘产品号’)共同决定,所以‘订单金额’和‘订单时间’是部分依赖于主键

正确版本

订单号产品号产品数量产品折扣产品价格
10001251000.99
10001262000.89
订单号订单金额订单时间
1000150002022-07-22
1000170002022-07-23

第三范式:建立在第二范式基础上,消除传递依赖

身份证号姓名性别年龄
34666666666张三22

身 份 证 → 姓 名 → 性 别 、 年 龄 身份证 \to 姓名 \to 性别、年龄

“性别”和“年龄”虽然间接依赖‘身份证号’,但直接依赖的是“姓名”,正确版本

身份证号姓名
34666666666张三
姓名性别年龄
张三22

传递函数依赖 身 份 证 → 姓 名 → 性 别 、 年 龄        但 是        性 别 、 年 龄 ↛ 姓 名 ↛ 身 份 证 身份证 \to 姓名 \to 性别、年龄 ~~~~~~但是~~~~~~ 性别、年龄 \not\to 姓名 \not\to 身份证             

原网站

版权声明
本文为[小的时候可菜了]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_30763385/article/details/125597175