什么是数据库三大范式,它们是做什么的

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。

一、第一范式(1NF)

所谓第一范式(1NF)是指在关系模型中,对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域。

二、第二范式(2NF)

在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分。选取一个能区分每个实体的属性或属性组,作为实体的唯一标识。例如在员工表中的身份证号码即可实现每个一员工的区分,该身份证号码即为候选键,任何一个候选键都可以被选作主键。在找不到候选键时,可额外增加属性以实现区分,如果在员工关系中,没有对其身份证号进行存储,而姓名可能会在数据库运行的某个时间重复,无法区分出实体时,设计辟如ID等不重复的编号以实现区分,被添加的编号或ID选作主键。(该主键的添加是在ER设计时添加,不是建库时随意添加),第二范式(2NF)要求实体的属性完全依赖于主关键字。

三、第三范式(3NF)

在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

第三范式(3NF)是第二范式(2NF)的一个子集,即满足第三范式(3NF)必须满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性,也就是在满足2NF的基础上,任何非主属性不得传递依赖于主属性。

来源:https://blog.csdn.net/weixin_46329056/article/details/125452643

延伸阅读

什么是jOOQ

jOOQ(Java Object Oriented Querying)是一个用于Java编程语言的数据库查询构建器,它提供了一种类型安全、面向对象的方式来构建和执行SQL查询。jOOQ允许开发人员使用Java代码来构建复杂的数据库查询,而无需直接编写SQL语句。

类型安全的查询构建:jOOQ使用Java API来构建查询,它提供了类型安全的方法和操作符,以避免编写错误的SQL语句。开发人员可以利用Java编译器的类型检查功能,减少在编写查询时的错误。

对象关系映射(ORM):jOOQ提供了对象关系映射(ORM)功能,可以将数据库结果集映射为Java对象。通过定义表和对象之间的映射关系,可以更方便地使用查询结果,并在应用程序中进行对象操作。

支持多种数据库:jOOQ支持多种主流数据库,包括MySQL、Oracle、SQL Server、PostgreSQL等。它提供了数据库特定的功能和语法支持,以满足不同数据库的要求。

复杂查询和表达式:jOOQ支持复杂的查询操作,包括连接(JOIN)、子查询、聚合函数、排序、分页等。它提供了丰富的表达式和函数,以构建灵活和复杂的查询条件。

SQL代码生成:jOOQ提供了SQL代码生成工具,可以根据数据库模式自动生成相关的Java类和代码。这样可以减少手动编写SQL和映射代码的工作量,并提高开发效率。

支持原生SQL:除了查询构建器,jOOQ还支持直接执行原生SQL语句,以满足一些特殊的需求。

文章标题:什么是数据库三大范式,它们是做什么的,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/53817

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年6月4日
下一篇 2023年6月4日

相关推荐

  • 建设项目管理是什么

    建设项目管理是指在项目建造过程中,依据特定的目标和限制条件,对资源进行有效配置和调配,运用系统化、科学化的管理原理和方法,确保项目按期、质量、成本目标的实现。主要内容包括:1、项目策划与初始阶段管理、2、项目设计与计划、3、资源调配与施工管理、4、风险控制与合同管理、5、项目交付与后期维护。 特别地…

    2024年1月8日
    9900
  • 返回值被忽略是什么情况

    返回值被忽略是因为:1. 函数返回值没有被赋值;2. 函数返回值被丢弃;3. 函数返回值没有被检查。当我们调用函数时,如果函数的返回值没有被赋值给任何变量,就会出现返回值被忽略的情况。 1. 函数返回值没有被赋值 当我们调用函数时,如果函数的返回值没有被赋值给任何变量,就会出现返回值被忽略的情况。例…

    2023年2月28日
    1.8K00
  • 争值管理中PV,EV与AC的区别

    争值管理中PV,EV与AC的区别有:1、定义与意义;2、计算方式;3、使用场景;4、与项目进度关系;5、与项目成本关系;6、管理的重点。其中,定义与意义指的是PV、EV和AC在项目管理中所代表的概念和重要性。 1、定义与意义 PV(Planned Value,计划值):到某一时间点,按照计划应完成的…

    2023年7月30日
    1.2K00
  • Mysql从4000多万条数据里进行查询,有什么好的优化方案

    面对在MySQL数据库中从超过4000万条数据进行查询的挑战,一些关键的优化方案必不可少。主要策略包括使用索引、查询优化、数据库表结构优化、分区、硬件升级。首先是使用索引,它可以大幅降低数据检索时间。其次,通过查询优化来减少不必要的数据加载和转换。接着,数据库表结构优化可以通过正规化设计来提高查询性…

    2023年11月16日
    18000
  • 项目研发人员管理制度

    项目研发人员管理制度的关键在于规范人员行为、提升团队效率与增进产品品质。1、拟定明确的岗位职责,确保每位成员明了本职工作。2、实施绩效考评系统,激发员工积极性。3、设立培训与发展机制,讲求技能提升和个人成长。4、加强沟通机制建设,鼓励信息共享与团队协作。5、完善薪酬福利政策,保障员工的物质与心理需求…

    2024年1月10日
    16400
  • 进度管理的意义是什么

    进度管理的意义有以下几点:1、进度管理对全局管理有重要意义;2、有效的进度管理能提高项目管理水平;3、合理的进度管理能提高经济效益。进度管理通过对影响进度的匀速进行全面分析、预测和控制,及时发现各种问题并解决问题,确保工程可以按时交付。

    2022年11月30日
    2.1K00
  • 商业智能实现的三个层次包括哪些

    商业智能实现的三个层次包括:1、数据报表;2、多维数据分析;3、数据挖掘。这个概念是在信息系统项目管理师的教材中提到的,也是商业智能实现的标准方式。

    2022年10月25日
    88300
  • 如何通过API与第三方工具扩展知识库功能

    通过API与第三方工具扩展知识库功能的方法:1、理解API与集成的基本概念;2、选择适用的API;3、明确扩展的功能需求;4、选择适合的第三方工具;5、实施API集成;6、测试集成功能;7、文档和培训;8、监控和反馈机制;9、安全性和隐私保护。通过API与第三方工具的集成,可以为知识库带来更广泛、更强大的功能。

    2023年11月17日
    20900
  • 前端图表插件有哪些

    前端图表插件有:1、Echarts;2、Highcharts;3、G2(antV);4、D3。ECharts缩写来自Enterprise Charts,是百度推出的一款开源的商业级数据图表,它最初是为了满足百度公司商业体系里各种业务系统(如凤巢、广告管家等等)的报表需求。

    2023年1月16日
    94500
  • c++注释快捷键

    C++编程中的注释是解释代码段或暂时禁用某部分代码的重要部分。在不同的集成开发环境(IDE)中,C++注释的快捷键可能会有所不同。本文将解释以下三个方面:1、C++注释的基本用法;2、常见IDE中C++注释的快捷键;3、注释在代码维护和协作中的重要性。其中,常见的IDE包括Visual Studio…

    2023年8月14日
    1.4K00

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部