最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

数据库三范式规则

互联网 admin 1浏览 0评论

数据库三范式规则

遵循三范式开发会减少数据冗余、提升系统可扩展性和查询性能。

第一范式:

确定主键字段,拆分多值字段为多列,将重复含义的几个字段挪到新表;

举例:
将学生信息多值字段拆分成学号、姓名、电话三个字段,每个字段只能代表一种含义;

电话1、电话2俩个重复含义字段要挪到新表

第二范式:

首先要满足第一范式,如果定义了联合主键,只依赖联合主键一部分的字段,要挪到新表;

举例:

学生姓名只依赖主键学号,可以将学号、学生姓名单独挪到一张表。

第三范式:

首先满足第二范式,若非主键字段要依赖其他非主键字段,则需要挪到新表

举例:

班级名称依赖于班级编号字段,将班级编号、班级名称移出创建新表。

注意:

一般来说,我们在系统设计过程,只要全部满足到一、二范式、大部分满足三范式,这已经很ok了,我们尽量去遵循三范式去做表结构设计,当然这不是金科玉律,不是说你所有的表必须都得按照三范式规范设计,有些特殊情况是需要逆规范化设计(这个过程也是需要先规范化设计,再逆规范化设计)。

数据库三范式规则

遵循三范式开发会减少数据冗余、提升系统可扩展性和查询性能。

第一范式:

确定主键字段,拆分多值字段为多列,将重复含义的几个字段挪到新表;

举例:
将学生信息多值字段拆分成学号、姓名、电话三个字段,每个字段只能代表一种含义;

电话1、电话2俩个重复含义字段要挪到新表

第二范式:

首先要满足第一范式,如果定义了联合主键,只依赖联合主键一部分的字段,要挪到新表;

举例:

学生姓名只依赖主键学号,可以将学号、学生姓名单独挪到一张表。

第三范式:

首先满足第二范式,若非主键字段要依赖其他非主键字段,则需要挪到新表

举例:

班级名称依赖于班级编号字段,将班级编号、班级名称移出创建新表。

注意:

一般来说,我们在系统设计过程,只要全部满足到一、二范式、大部分满足三范式,这已经很ok了,我们尽量去遵循三范式去做表结构设计,当然这不是金科玉律,不是说你所有的表必须都得按照三范式规范设计,有些特殊情况是需要逆规范化设计(这个过程也是需要先规范化设计,再逆规范化设计)。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论