数据表的范式

简介: 数据表的范式

数据表的范式



数据库设计有哪些范式?


关系型数据库一共有 6 种范式,按照范式级别,从低到高分别是:

  • 1NF 第一范式
  • 2NF 第二范式
  • 3NF 第三范式
  • BCNF 巴斯-科德范式
  • 4NF 第四范式
  • 5NF 第五范式,也叫完美范式

数据库的范式设计越高阶,冗余度就越低,高阶范式一定符合低阶范式的要求。


640.png


第一范式 1NF


第一范式的目标是确保每列的原子性,如果每列都是不可再分的最小原子单元。1NF 是指数据库中任何属性都是原子的,不可拆分。

640.png

第二范式 2NF


首先满足第一范式,并且表中非主键不存在对主键的依赖。第二范式要求每个表只描述一件事情


640.png


第三范式 3NF


第三范式定义是,满足第二范式,并且表中的列不存在对非主键列的传递依赖简单的说,一个关系中不包含已在其它关系已包含的非主关键字信息


例子,如果将表设计成如下:


640.png


可以改成如下两个表:

学生表:

640.png


院校表:

640.png

数据表中有哪些键


范式的定义会用到主键和候选键,主键和候选键可唯一标识元组,数据库中的键可以由一个或者多个属性组成。

  • 超键:能唯⼀标识元组的属性集叫做超键。
  • 候选键:如果超键不包括多余的属性,那么这个超键就是候选键。
  • 主键:用户可以从候选键中选择⼀个作为主键。
  • 外键:如果数据表R1中的某属性集不是R1的主键,⽽是另⼀个数据表R2的主键,那么这个属性集就是数据表R1的外键。
  • 主属性:包含在任⼀候选键中的属性称为主属性。
  • ⾮主属性:与主属性相对,指的是不包含在任何⼀个候选键中的属性。
相关文章
|
2月前
|
前端开发 数据库 开发者
数据模型(数据库表设计)生成代码
BizWorks ToolKit 插件集成 Mybatis-Plus 代码生成工具,支持从数据库表批量生成代码,简化开发流程。本文详细介绍配置方法及项目示例,包括配置文件格式、生成选项及具体操作步骤,帮助开发者快速实现代码同步更新。配置文件 `.mp.yaml` 支持自定义输出目录、生成组件等,适用于多种项目结构。
47 0
|
4月前
|
存储 SQL 关系型数据库
MySQL设计规约问题之在数据库设计中,为什么要适当考虑反范式的表设计
MySQL设计规约问题之在数据库设计中,为什么要适当考虑反范式的表设计
|
SQL 存储 关系型数据库
MySQL基础下篇[表的创建/约束的使用/事务和范式以及索引的使用]~3
MySQL基础下篇[表的创建/约束的使用/事务和范式以及索引的使用]~
|
存储 SQL 关系型数据库
MySQL基础下篇[表的创建/约束的使用/事务和范式以及索引的使用]~2
MySQL基础下篇[表的创建/约束的使用/事务和范式以及索引的使用]~2
|
SQL 存储 关系型数据库
MySQL基础下篇[表的创建/约束的使用/事务和范式以及索引的使用]~1
MySQL基础下篇[表的创建/约束的使用/事务和范式以及索引的使用]~
|
SQL 存储 关系型数据库
数据库设计范式
数据库设计范式是一组规则,用于规范化关系型数据库的设计,以提高数据的一致性、减少冗余和数据异常。常见的数据库设计范式包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BC范式(BCNF)。以下是这些范式的简要介绍:
123 0
|
SQL 数据库
基础DQL(数据查询)——多表关系及多表查询概述
我们要想在数据库的层面上体现这种关系,就要建立第三张中间表,中间表至少包含两个外键,分别关联两方主键
113 0
基础DQL(数据查询)——多表关系及多表查询概述
|
存储 关系型数据库 数据库
sql语法、关系建模
sql 数据类型  好处更多的数据存储方案 存储更加灵活 数值:int(11)             bigint(20) 大数据类型相当于Java的long类型           decimal(浮点数据类型) 可以定义大小与保留后几位小数 decimal(20,3)        字符类型.
891 0
|
存储 数据库 索引
下一篇
无影云桌面