美文网首页
关系 范式

关系 范式

作者: 咸鱼有梦想呀 | 来源:发表于2017-10-08 14:29 被阅读0次

一、索引

所有的索引都是建立在字段上的

索引的作用

系统根据某种算法,将已有数据(未来可能增加的数据),单独建立一个文件:
文件能够实现快速的匹配数据,并且能够快速的找到对应表中的记录

索引的意义:

  • 提升查询数据的效率
  • 约束数据的有效性(唯一性等)

增加索引的前提条件:索引本身会产生索引文件(有时候有可能比数据还大),会耗费磁盘空间。

如果某个字段需要作为查询的条件经常使用,可以使用索引。
如果某个字段需要进行数据的有效性约束,也可以使用索引(eg:主键,唯一键)

MySQL中的索引:
1、主键索引:primary key
2、普通索引:unique key
3、全文索引:fulltext index
4、普通索引:index

全文索引:针对文章内部的关键字进行索引(弊端:如何确定关键字)

二、关系

将实体与实体的关系,反应到最终数据库表的设计上,表与表之间的关系;将关系分为以下几种:

  • 一对一
  • 一对多(多对一)
  • 多对多

1、一对一

一张表的一条记录只能与另一张表的一条记录进行对应

eg:将常用的和不常用的信息分离存储,分为两张表,找一个具有唯一特性(确定记录)的字段来共同链接两张表。一个常用表中的一条记录:永远只能在一张不常用表中匹配一条记录;反过来,一个不常用表中的一条记录在常用表中也只能匹配一条记录

2、一对多(多对一)

一张表中有一条记录可以对应另外一张表中的多余记录;但是,另一张表的一条记录只能对应第一张表的一条记录

eg:在某一张表中增加一个字段,能够找到另外一张表中的记录

3、多对多

一张表中(A)的一条记录能够对应另外一张表(B)中的多条记录;同时B表中的一条记录也能对应A表中的多条记录

一张表中的多条记录对应另一张表中的多条记录:增加一张中间表,使两张表形成联系。中间表分别与两张表为一对多的关系。

三、范式(Normal Format)

是一种离散数学中的知识,是为了解决一种数据的储存与优化的问题:保存数据的存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储:目的是为了解决数据的冗余

范式:是一种分层结构的规范,分为六层:每一层都比上一层更加严格:若要满足下一层范式,前提是满足上一层范式

六层范式:1NF,2NF,3NF,4NF,5NF,6NF。1NF是最底层;6FN是最高层,最严格。

而MySQL属于关系型数据库:有空间浪费,因此也是为了于节省存储空间,与范式所要解决的问题相同,所以在设计数据库的时候,会利用到范式来指导设计。
但是由于数据库不仅仅解决的是空间问题,要保证效率,所以数据库的设计不可能完全按照范式的要求实现;一般情况下,只有前三种范式需要满足。

1NF:第一范式,要求字段的数据具有原子性——不可再分

在设计表存储数据的时候,
如果表中设计的字段存储的数据,在取出来使用之前还需要额外的处理(拆分),
那么说表的设计不满足第一范式

2NF:第二范式,要求表中不允许出现部分依赖。要想满足第二范式,就要满足第一范式

在数据设计过程中,如果有复合主键(多字段主键),
字段并不是由整个主键来确定,而是依赖主键中的某个字段(主键的部分);
存在字段依赖主键的部分的问题,称之为部分依赖

3NF:第三范式,解决传递依赖。要满足第三范式就要满足第二范式

理论上讲,一张表中的所有字段都应该直接以来主键,如果表设计中存在的一个字段,
并不直接依赖主键,而是通过某个非主键字段依赖,最终实现依赖主键
把这种不是直接依赖主键,而是依赖非主键字段的依赖关系称之为传递依赖

逆规范化:在设计表的时候,如果一张表中有几个字段是需要从另外的表中去获取信息,但是效率低,如果在某些表中,不去保存另外表的主键,而是直接保存想要的数据信息,这样,在查询数据的时候,一张表可以直接提供数据,就不需要多表查询。会导致数据冗余。

相关文章

  • 设计数据持久层(上):理论分析

    关系数据库 关系 事务 数据库范式 第一范式(1 NF): 第一范式要求每个属性值都是不可再分的。 第二范式(2 ...

  • 关系 范式

    一、索引 所有的索引都是建立在字段上的 索引的作用系统根据某种算法,将已有数据(未来可能增加的数据),单独建立一个...

  • MySQL范式

    范式介绍 目前关系型数据库有6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(B...

  • 数据库范式

    关系数据库六种范式: 第一范式(1NF)、 第二范式(2NF)、 第三范式(3NF)、 巴斯-科德范式(BCNF)...

  • 数据库范式原则,第一,第二

    目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、...

  • MySQL数据库基础知识

    数据库三大设计范式 其实,目前的关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、...

  • MySQL数据库基础知识

    表与表之间的引用,即为外键 范式:第一范式,第二范式,第三范式 关系运算选择:挑选符合的行投影:挑选符合的列 表与...

  • 数据库

    关系型数据库的范式 范式可以理解为设计标准 第一范式 1NF 定义 字段不可再分 举例 第一范式 的缺点 存在如下...

  • 数据库基础知识-范式

    1. 第一范式:1NF 如果关系模式中R不包含多值属性,则R满足第一范式; 2. 第二范式:2NF 如果一个关系R...

  • 范式

    范式 范式是符合某一种级别的关系模式的集合。在关系型数据库中必须满足一定的要求,满足不同程度要求的为不同范式。也可...

网友评论

      本文标题:关系 范式

      本文链接:https://www.haomeiwen.com/subject/tdxsyxtx.html