前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库三范式

数据库三范式

作者头像
九转成圣
发布2024-04-17 08:00:28
960
发布2024-04-17 08:00:28
举报
文章被收录于专栏:csdncsdn

基础知识

码=主键码(主属性)+候选码

候选码

能够唯一标识一行数据的列或列的组合,候选码具有一下2个特性

  1. 唯一性:候选码的值在表中必须是唯一的,即不允许重复值。
  2. 最小性:不能从候选码中移除任何列而仍然保持唯一性

主键码

主键码是候选码中的一个,一个表可能有多个候选码,可以从其中选择一个作为主键码

例如:学号,姓名,身份证号,手机号,邮箱,其中候选码有学号,身份证号,手机号,邮箱4个,可以选择其中的一个作为主键码

三范式

目的

  1. 降级数据冗余
  2. 提高数据一致性
  3. 减少数据插入、更新和删除操作的复杂性

1nf

列的原子性

举例
  1. 地址包含省市县区详细信息(对象)
  2. 学生选择的课程,一个学生可以选择多门课程(数组)

2nf

概念

在1nf基础上,非码属性必须完全依赖与候选码(消除了非主属性对主码的部分依赖关系)

举例

学号

课程编号

课程分数

代课老师

码:学号+课程编号

主属性:学号+课程编号

非码属性:课程分数,代课老师

(学号,课程编号)->课程分数,非码属性课程分数完全依赖与候选码学号+课程编号

(课程编号)->代课老师,非码属性代课老师部分依赖于候选码学号+课程编号

代课老师冗余了

3nf

概念

在2nf基础上,任何非主属性不依赖与其他非主属性(消除了传递依赖)

举例

学号(主键)

姓名

所在系(系主键)

系地址

候选码:学号

主属性(主键码):学号

非主属性:姓名,所在系,系地址

满足1nf:列都具有原子性

满足2nf:主属性只有一个,因此不存在部分依赖关系

不满足3nf:非主属性系地址依赖与非主属性所在系

系地址冗余了

直接函数依赖

(学号)->所在系

(所在系)>系地址

传递函数依赖

(学号)->系地址

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础知识
    • 码=主键码(主属性)+候选码
      • 候选码
        • 主键码
        • 三范式
          • 目的
            • 1nf
              • 举例
            • 2nf
              • 概念
              • 举例
            • 3nf
              • 概念
              • 举例
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档