数据库规范化

填写一张表,标记其主键并声明函数依赖,即可查看它如何拆分为 1NF、2NF 和 3NF。

所有内容都在此浏览器中计算,不会发送到任何服务器。

表

3 行 × 5 列

单元格中包含以逗号或分号分隔的值时,会被视为多值。

主键

勾选组成主键的列(一个或多个)。

函数依赖

依赖表示决定列确定被依赖列的值。

还没有依赖。请添加适用于你的表的依赖。

这个工具教你一步步完成数据库规范化。你输入一张表(起始为3行5列,最多20行10列),标出主键并声明成立的函数依赖。点击“规范化”后,它会检测这张表所处的范式(不满足1NF、1NF、2NF或3NF),并展示依次应用1NF、2NF和3NF后得到的表,包括主键、外键以及每次拆分的原因。如果某一步已经满足,会直接说明并不做改动。适合学习关系模型。所有计算都在浏览器中完成,不会发送到任何服务器。

使用方法

  1. 输入表格数据,需要的话重命名列。你可以添加或删除行和列。
  2. 勾选主键列,单列或复合均可。
  3. 添加函数依赖:为每条依赖选择决定列和被决定列。
  4. 点击“规范化”,查看当前范式以及1NF、2NF和3NF的各步骤及其生成的表。

常见问题

什么算多值单元格?
一个单元格含有用逗号或分号分隔的多个值,例如“ann; luis”。它不会检测其他类型的非原子数据,比如复合地址(“Street 1, 28000 Madrid”会被当成两个值),或 phone1、phone2 这类重复列。
它会根据数据推断函数依赖吗?
不会。需要由你声明,因为行数很少时,数据不足以判断哪些依赖成立。工具只会检查数据是否与它们矛盾。
它涵盖哪些范式?
第一、第二和第三范式。不涵盖BCNF、4NF或5NF,并且只支持单一主键。
可以用JSON加载或复制我的数据吗?
可以。“以JSON编辑”按钮会把表、主键和依赖显示为JSON,供你修改并应用;“示例”按钮会加载示例表。结果中的每张表都有“复制JSON”按钮,可粘贴到编辑器中从该步骤继续。

相关工具