什么是数据库范式

数据库范式

首先,我们先要了解什么是数据库,数据库简单来说就是数据集合。它有以下几个特点:以一定方式存储在一起,能与多个用户共享,具有尽可能小的冗余度,与应用程序彼此独立的数据集合。我们可以视为电子化的文件柜——存储电子文件的处所。用户可以对文件的数据进行新增,查询,更新,删除等操作。

其次,什么是范式,简单来说,范式就是指某种约束。百度百科的解释:范式来自英文Normol form(规范的表单),简称NF。想要设计一个好的关系,必须使关系满足一定的约束条件,磁约束条件已经形成了规范,分成几个等级,一级比一级要求严格。


什么是数据库范式?

设计关系数据库时,遵循不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的规范数据库冗余越小。

普及关系型数据库哪些?常见的关系型数据库有:mysql,oracle,db2,sqlserver等

目前关系型数据库有六种范式:第一范式(1NF),第二范式(2NF),第三范式(3NF),巴斯-科德范式、第四范式、第五范式(完美范式)。

比较常用的有三大范式:第一范式:确保每一列的原子性(做到每一列不可拆分)

第二范式:在第一范式的基础上,非主字段必须依赖主字段(一个表只做一件事)

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

以上的是比较官方的语言,不容易理解

那么第一范式:确保每一列的原子性,也就是

当我们设计用户表的时候,如果address字段列的数据是”中国-北京“,当我们统计地区的时候不好统计。这里是可以拆分的,可以拆分成国籍:中国,城市:北京。这样就符合第一范式的要求。

 那什么又是第二范式,第二范式建立在在第一范式的基础上,非主字段必须依赖于主字段,一个表只做一件事

我们在用户表后面又添加了数学成绩,英语成绩,家庭财产情况等一系列的字段,如果这样设计的话,一张表可以满足一个项目所的需要,但是都合成在一张表中(后面无限加字段),这样就很乱了,也违背了第二范式

那什么又是第三范式,第三范式建立在第二范式的基础之上(消除传递依赖

 当我们设计一张订单表,里面有数量,单机,以及总价一些字段,但总价这个不应该有的,因为总价是可以通过数量乘以单价得到,这就没有遵守第三范式(消除传递依赖))。

最后扩展一下:反三大范式

范式越高意味着表的划分更细,一个数据库中需要的表也就越多。当用户同时需要这些数据时只能采用连接表的形式将数据重新合并在一起。但是同时把多个表联接在一起的消耗是巨大的,尤其是当需要连接的两张或者多张表数据的时候,表连接操作几乎是一个噩梦,这严重地降低了系统运行性能

所以没有冗余的数据库未必是好的数据库。有时为了提高运行效率,就必须降低 范式标准,适当保留冗余数据。基于业务的需要合理设计数据库。这就是反三大范式。

原文地址:https://www.cnblogs.com/youhongliang/p/12167694.html

时间: 2024-11-09 01:54:19

什么是数据库范式的相关文章

数据库范式的设计

数据库范式的设计     关系数据库就是通过二维表(行和列)来保存数据. 实体:现实世界中客观存在并可以被区别的事物.比如"一个学生"."一本书"."一门课"等等.值得强调的是这里所说的"事物"不仅仅是看得见摸得着的"东西",它也可以是虚拟的,不如说"老师与学校的关系". 属性:教科书上解释为:"实体所具有的某一特性",由此可见,属性一开始是个逻辑概念,比如说,&qu

数据库范式那些事

转载至:http://www.cnblogs.com/CareySon/archive/2010/02/16/1668803.html 简介 数据库范式在数据库设计中的地位一直很暧昧,教科书中对于数据库范式倒是都给出了学术性的定义,但实际应用中范式的应用却不甚乐观,这篇文章会用简单的语言和一个简单的数据库DEMO将一个不符合范式的数据库一步步从第一范式实现到第四范式. 范式的目标 应用数据库范式可以带来许多好处,但是最重要的好处归结为三点: 1.减少数据冗余(这是最主要的好处,其他好处都是由此而

一看就懂的数据库范式介绍(1NF,2NF,3NF,BC NF,4NF,5NF)

原文:http://josh-persistence.iteye.com/blog/2200644 一.基本介绍 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小. 目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式(3NF).巴斯-科德范式(BCNF).第四范式(4NF)和第五范式(5NF,又称完美范式).满足最低要求的范式是第一范式(1NF).在第一范式的基础上进一步满足更

SQL语句类别、数据库范式、系统数据库组成

前言 终于等到这一天,我要开始重新系统学习数据库了,关于数据库这块,不出意外的话,每天会定时更新一篇且内容不会包含太多,简短的内容,深入的理解. SQL语句类别 SQL语句包括以下三个类别 (1)数据定义语言(Data Definnition Language)即DDL,我们数据最终从何而来,当然首先必须得建立表,所以它包括CREATE.ALTER.DROP表. (2)数据操作语言(Data Manipulation Language)即DML,我们对数据需要进行什么操作,当然无非就是增删改查,

MYSQL学习笔记——数据库范式及MYSQL优化整体思路

一.数据库范式                                                                               为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 1.1.第一范式(1NF:每一列不可包含多个值)      所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列

转载:数据库范式

数据库范式——通俗易懂[转] (2012-04-02 21:15:43) 数据库范式是数据库设计中必不可少的知识,没有对范式的理解,就无法设计出高效率.优雅的数据库.甚至设计出错误的数据库.而想要理解并掌握范式却并不是那 么容易.教科书中一般以关系代数的方法来解释数据库范式.这样做虽然能够十分准确的表达数据库范式,但比较抽象,不太直观,不便于理解,更难以记忆.       本文用较为直白的语言介绍范式,旨在便于理解和记忆,这样做可能会出现一些不精确的表述.但对于初学者应该是个不错的入门.我写下这

[转]数据库范式的设计

数据库范式的设计     关系数据库就是通过二维表(行和列)来保存数据. 实体:现实世界中客观存在并可以被区别的事物.比如“一个学生”.“一本书”.“一门课”等等.值得强调的是这里所说的“事物”不仅仅是看得见摸得着的“东西”,它也可以是虚拟的,不如说“老师与学校的关系”. 属性:教科书上解释为:“实体所具有的某一特性”,由此可见,属性一开始是个逻辑概念,比如说,“性别”是“人”的一个属性.在关系数据库中,属性又是个物理概念,属性可以看作是“表的一列”. 元组:表中的一行就是一个元组. 分量:元组

数据库范式1NF 2NF 3NF BCNF(实例)通俗易懂的讲解

[转] 数据库范式1NF 2NF 3NF BCNF(实例)通俗易懂的讲解     本文对大多数初学数据库原理的同学绝对是个大福利,哈哈,完完整整的看完此篇博文一定能够清晰地理解数据库的四大范式.    不懂者留言相互讨论.     设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合.构造数据库必须遵循一定的规则.在关系数据库中,这种规则就是范式.关系数据库中的关系必须满足一定的要求,即满足不同的范式.目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF)

【转载】数据库范式那些事

数据库范式那些事 简介 数据库范式在数据库设计中的地位一直很暧昧,教科书中对于数据库范式倒是都给出了学术性的定义,但实际应用中范式的应用却不甚乐观,这篇文章会用简单的语言和一个简单的数据库DEMO将一个不符合范式的数据库一步步从第一范式实现到第四范式. 范式的目标 应用数据库范式可以带来许多好处,但是最重要的好处归结为三点: 1.减少数据冗余(这是最主要的好处,其他好处都是由此而附带的) 2.消除异常(插入异常,更新异常,删除异常) 3.让数据组织的更加和谐- 但剑是双刃的,应用数据库范式同样也

数据库范式 通俗演义

以某知名搜索引擎公司的研发工程师的一道笔试题开篇: 题目:如果关系模式R=(A,B,C,D,E)中的函数依赖集F={A→B,B→C,CE→D},这是第几范式? 答:F={A→B,B→C,CE→D},主键为(A,E),非主属性B,C,不完全依赖于码(A,E),只依赖于主键 A,因此不符合2NF.因此为1NF. 解析: 第一范式(1NF):属性不可分: 第二范式(2NF):符合1NF,有主键,非主属性完全依赖于主键,而不是依赖于部分主键属性(部分依赖): 第三范式(3NF):符合2NF,非主键不能相