首页 > 数据库 >数据库设计三范式

数据库设计三范式

时间:2023-05-22 23:00:10浏览次数:59  
标签:3NF 范式 数据库 反例 1NF 违反 设计 冗余

概述

1NF  是对属性的原子性约束,要求属性具有原子性,不可再分解

反例:

 name-age 非原子属性,违反1NF, 应该拆解

 

2NF  是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性

反例:

订单表两个相同ID,不能确保唯一性,违反2NF。可以分开,插入中间表

 

3NF  是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余

反例:

订单表中,产品ID 可以在产品表中找到产品名称,存在冗余,违反3NF,应该在订单表吧产品名称去掉

 

反3NF  允许存在少量得冗余

在实际的业务查询中会大量存在着表的关联查询,而大量的表关联很多的时候非常影响查询的性能。

所谓得反范式化就是为了性能和读取效率考虑适当得对数据库设计范式得要求进行违反。允许存在少量得冗余,换句话来说反范式化就是使用空间来换取时间

 

问题

json格式是否违反1NF?

是的,是第一范式的反例

 

参考

https://juejin.cn/post/7050690148689772575

标签:3NF,范式,数据库,反例,1NF,违反,设计,冗余
From: https://www.cnblogs.com/kaituorensheng/p/17407638.html

相关文章

  • oracle_将一个数据库的某一张表复制到另一个数据库(表名与表结构结构相同,数据库不同)
    数据库:数据库A表名:student数据库A的库名:school_A数据库B表名:studentinsertintostudent--要把数据插入数据库B中的student表select*fromstudent@school_A--数据库A:school_A中的student表(注意1:school_A需要是登录状态注意2:输入@时,一般会有提示,也可根据......
  • 07-层次化设计 -- 全加器
    1.层次化设计数字电路中根据模块层次不同有两种基本的结构设计方法:自底向上的设计方法和自顶向下的设计方法1.1自底向上的设计方法(Bottom-Up)自底向上的设计是一种传统的设计方法,对设计进行逐次划分的过程是从存在的基本单元出发的(基本单元是已有的或者是购买的),有基本单......
  • Java设计模式-组合模式
    简介在软件设计中,设计模式是一种被广泛接受和应用的经验总结,旨在解决常见问题并提供可复用的解决方案。组合模式是一种结构型设计模式,它允许将对象组合成树形结构以表示“部分-整体”的层次结构。这种模式能够使客户端以一致的方式处理单个对象和对象集合,将对象的组合与对象的使......
  • 基于JAVA的springboot+vue“智慧食堂”设计与实现,食堂管理系统,附源码+数据库+lw文档+P
    1、项目介绍本系统的用户可分为用户模块和管理员模块两大界面组成。一个界面用于管理员登录,管理员可以管理系统内所有功能,主要有首页,个人中心,用户管理,菜品分类管理,菜品信息管理,留言板管理,系统管理,订单管理等功能;另一界面用于用户登录,用户进入系统可以实现首页,菜品信息,留言板,个人......
  • 设计模式——访问者模式
    访问者模式(VisitorPattern)是GoF提出的23种设计模式中的一种,属于行为模式。据《大话设计模式》中说算是最复杂也是最难以理解的一种模式了。定义(源于GoF《DesignPattern》):表示一个作用于某对象结构中的各元素的操作。ClassVisitor和MethodVisitor都是访问者模式......
  • 编程打卡:面向对象程序设计
    importosimportsqlite3#Createadatabaseconnectionconn=sqlite3.connect('todo.db')#Createatodotablecur=conn.cursor()cur.execute('''CREATETABLEtodo(idINTEGERPRIMARYKEYAUTOINCREMENT,titleTEXTNOTNUL......
  • 几种主流原型设计工具的对比介绍
    PixsoPixso是由国内的万兴科技推出的主打设计协作的工具,可完成涉及多人协作的UI设计、交互设计、原型设计、视觉设计等工作。Pixso操作界面简单明了,内置了许多资源,使用时很容易上手,并且是一款免费的软件。它还是集原型、设计、协同、交付和资源管理于一体的软件。它是搭载在web......
  • Yii2连接多个数据库
    1、使用高级模板yii2-app-advanced2、设置common\config\main-local.php本地文件'components'=>['db'=>['class'=>'yii\db\Connection','dsn'=>'mysql:host=local......
  • 利用Python爆破数据库备份文件
    某次测试过程中,发现PHP备份功能代码如下://根据时间生成备份文件名$file_name='D'.date('Ymd').'T'.date('His');$sql_file_name=$file_name.'.sql';那么形成的文件名格式如:D20180118T101433.sql,理论上是可以爆破的,于是写了一段Python脚本来尝试爆破。Py......
  • 原型设计工具介绍
    一、墨刀墨刀是一款在线原型设计与协同工具,借助墨刀,产品经理、设计师、开发、销售、运营及创业者等用户群体,能够搭建为产品原型,演示项目效果。优点:采用简单的拖拽连线操作,和十分简洁的产品制作设计流程,大大提升设计效率。墨刀还支持云端保存,实时预览,一键分享以及多人协......