第三章 多表操作1(建表三范式)

待我称王封你为后i 2022-02-04 02:11 283阅读 0赞

1 为什么需要用多表保存数据

(1) 数据库中的不同的表一般对应不同的实体,不同的实体具有不同的属性,如果将所有的表都汇总成一张表,则需要将所有的属性都集合在一起,不管哪个实体有没有,然后在没有此属性的实体赋值时,赋值为空,这严重浪费了磁盘的空间吧。

(2)数据库中每张表都存储一定的记录,若将所有的记录都汇总成一张表,你查询的时候,速度将会非常慢,数据库查询的时候,你给它表名,它根据表名找到此表,然后一条一条的查询记录,但若都集中的一张表中,那此表的记录将时原来分开表中记录的n多倍,那得查询多少时间啊??

所以才产生见表的规范 建表三范式

2 建表三范式

第一范式:消除组中的重复,也就是说列中是否存储了其他列中的信息(字段不可再分)

比如:

1 设计的表要有主键

比如说 有张表示 有这么几个字段 name address 如果在表中有几条记录是一致的,假设出现2个王武,地址也一样,就会出现数据的冗余。

2 列不可分,和重复。

比如说 有张表 user 只有一个字段 为userinfo 保存数据是 张三,23,北京市 ,带来的问题就是,不方便查询和维护,建议有用3个字段来表示。但是实际问题,实际分析。

第二范式:消除部分依赖列,也就是说是否有依赖于一部分主键的列 (非主键字段完全依赖主键字段)

比如:

20190506180009992.png

这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关

合理的设计如下:

  1. ![20190506180024620.png][]

第三范式:消除非依赖列,是否有依赖于非主键的列 (消除传递依赖)

比如:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpcGlhbmZlbmdfeWU_size_16_color_FFFFFF_t_70

这样在查询订单信息的时候,就可以使用客户编号来引用客户信息表中的记录,也不必在订单信息表中多次输入客户信息的内容,减小了数据冗余。

总结:

归结起来3句话: 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖;

发表评论

表情:
评论列表 (有 0 条评论,283人围观)

还没有评论,来说两句吧...

相关阅读

    相关 数据库设计-------范式

          在数据库设计中,为了更好地实现数据库操作的高效性和便捷性,有三个范式的规则可以遵循,三个范式分别是: **        第一范式:**1NF是对属性的原...

    相关 范式

    第三范式(Third Normal Form)是数据库设计的一种范式。它是在第二范式的基础上进一步消除传递依赖的一种范式。 在第二范式中,一个关系满足第二范式,当且仅当它满足

    相关 范式

    第三范式是关系数据库设计中的一个标准化概念,用于确保数据库表的数据结构具有一定的规范性和减少冗余数据。它是数据库范式理论中的一部分,旨在分解表以消除数据冗余,提高数据完整性和查