首页 > 编程知识 正文

数据库范式通俗解释,数据库中的三大范式

时间:2023-05-04 21:44:24 阅读:56770 作者:3068

第一范例:所有的现场设计都是不可分解的原子值。

范例2 :确保数据库表中的每一列都与主键相关,而不仅仅与主键的一部分相关。 主要是联合体主键的情况。 也就是说,一个数据库表只能在一个表中存储一个数据,不能在同一数据库表中存储多个数据。

第三范式:确保数据表中各列的数据与主键直接相关,而不是间接相关。 例如,在设计订单数据表时,可以使用客户编号作为外键与订单表建立适当的关系。 订单表格中不能添加有关客户的其他信息字段,如名称、所属公司等。 (减少数据冗馀)

引用:

要建立冗馀小、结构合理的数据库,在设计数据库时必须遵循一定的规则。 在关系数据库中,此规则称为范式。 范例是满足某个设计要求的总结。 设计结构合理的关系数据库,必须满足一定的范式。

实际开发中最常见的设计范式有三种。

1 .第一范式

第一范式是最基本的范式。 如果数据库表中的所有字段值都是不可分解的原子值,则数据库表满足第一个范式。

第一范式的合理遵循基于系统的实际需要。 例如,某些数据库系统可能需要使用“地址”属性,但本来可以直接将“地址”属性设计为数据库表中的字段。 但是,如果您经常访问“地址”属性的“城市”部分,则必须将“地址”属性拆分为多个部分(如州、城市和详细地址)进行保存,否则在处理部分地址时会非常有用。 现在,您已经满足了数据库的第一个范式,如下表所示。

用户信息表

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com/3358 www.Sina.com.Sina.com 1张红欣男260378-23459876河南开封朝阳区新华路23号2奋斗的信封平女320751-65432584广州广东白云区天明路148号3ssdmy男210371-87659852河南郑州二七区大学路198号4jzdmj女270371-62567888

2 .第二范式

第二范式在第一范式的基础上进一步发展。 在第二个范例中,必须确保数据库表中的每一列都与主键相关。 并不仅仅与主键的一部分有关。 主要是联合体主键的情况。 也就是说,一个数据库表只能在一个表中存储一个数据,不能在同一数据库表中存储多个数据。

例如,在设计订单信息表时,由于订单中可能包含多个商品,所以将订单编号和商品编号作为数据库表的联合主键,如下表所示。

编号

订单号商品编号商品名称数量单位价格客户所属单位联系方式1台1200000lgdsy上海玖智020-12345670012冲击钻机8台230lgdsy上海玖智020-12345670023叉车2台980000 这样,在该表中,商品名、单位、商品价格等信息并不与该表的主键相关,而只是与商品编号相关。 所以这里违反了第二范式的设计原则。

只要分割此订单信息表,将商品信息分离为其他表,订单项目表也分离为其他表就完美了。 如下所示。

姓名

订单号客户所属公司联系方式001lgdsy上海玖智020-1234567002奋斗的信封北京公司010-1234567 性别

订单编号商品编号数量0011100128002323358 www.Sina.com /

http://www.Sina.com/http://www.Sina.com/http://www.Sina.com/1台挖掘机12000002冲压车辆980000

3 .第三范式

在第三个范例中,必须确保数据表中每一列的数据与主键直接相关,而不是间接相关。

例如,在设计订单数据表时,可以使用客户编号作为外键与订单表建立适当的关系。 订单表格中不能添加有关客户的其他信息字段,如名称、所属公司等。 下表中列出的设计是满足第三范式的数据库表。

订单信息表

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com/3358 www.Sina.com.Sina.com

http://www.Sina.com/http://www.Sina.com/http://www.Sina.com/1 wwddp五一建设132536610152wndss个人经营

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。