AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 124789
Accepted
A_V
A_V
Asked: 2015-12-30 08:35:44 +0800 CST2015-12-30 08:35:44 +0800 CST 2015-12-30 08:35:44 +0800 CST

范式定义

  • 772

我很难在网上找到正常形式的直接定义。

我不想要任何示例或隐喻,只是以一种很好的格式定义了每种形式!我相信有超过 4 种正常形式,所以如果您能提供额外的信息,我们将不胜感激。

请填写我发现的任何遗漏信息或以更好的格式列出:

1FN:

  • 每个单元格都是单值的
  • 列中的条目必须属于同一类型
  • 行必须唯一标识

2FN:

  • 所有属性都必须依赖于键

3FN:

  • 行必须只能通过键唯一标识

4FN:

  • 没有多值依赖
normalization
  • 2 2 个回答
  • 741 Views

2 个回答

  • Voted
  1. agpoweredmg
    2015-12-30T09:36:07+08:002015-12-30T09:36:07+08:00

    @A_V,我想你可以在这里找到你要找的东西。它有 1NF - 4NF 的解释,包括 BCNF。

    从页面:

    第一范式 (1NF) 为有组织的数据库设置了非常基本的规则:

    从同一个表中消除重复的列。

    为每组相关数据创建单独的表,并用唯一的列或一组列(主键)标识每一行。

    第二范式 (2NF) 进一步解决了删除重复数据的概念:

    满足第一范式的所有要求。删除适用于表的多行的数据子集,并将它们放在单独的表中。通过使用外键在这些新表和它们的前任表之间创建关系。

    第三范式 (3NF) 更进了一大步:

    满足第二范式的所有要求。删除不依赖于主键的列。

    Boyce-Codd 范式,也称为“三分之二 (3.5) 范式”,增加了一个要求:

    满足第三范式的所有要求。每个行列式都必须是候选键。

    最后,第四范式 (4NF) 有一个附加要求:

    满足第三范式的所有要求。如果一个关系没有多值依赖关系,则它属于 4NF。

    请记住,这些规范化准则是累积的。对于处于 2NF 中的数据库,它必须首先满足 1NF 数据库的所有条件。

    • 2
  2. Best Answer
    Jaidyn Belbin
    2015-12-30T23:53:56+08:002015-12-30T23:53:56+08:00

    您可能会发现此站点也很有帮助。我认为它最多只能达到 3NF,但是它使用了非常好的示例和清晰的语言:

    http://www.essentialsql.com/get-ready-to-learn-sql-database-normalization-explained-in-simple-english/

    • 第一范式——信息存储在关系表中,每列包含原子值,并且没有重复的列组。
    • 第二范式——表是第一范式,所有列都依赖于表的主键。
    • 第三范式——表是第二范式,它的所有列都不传递依赖于主键
    • 2

相关问题

  • 什么是第一范式中的原子关系

  • 多语言词典数据库问题

  • 重复列以加快查询速度?

  • 高级规范化形式是否总是符合低级规范化形式的标准?

  • 标准化练习资源

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve