函数依赖和规范化

2024-03-21

我正在尝试寻找一个很好的资源来研究函数依赖性和规范化。

有人知道我应该去哪里吗?我很难区分 FD 属于 1NF、2NF 还是 3NF?

我一直在阅读维基百科并使用谷歌搜索来找到好的研究,但找不到任何简单的解释。

也许你们也可以分享一下您在生活中是如何学习FD和正常化的。


函数依赖定义了属性之间的函数关系。例如:PersonId功能上决定BirthDate(通常写为PersonId -> BirthDate)。另一种说法是:一个人的任何给定实例都有一个出生日期。请注意,相反的情况可能成立,也可能不成立。许多人可能是同一天出生的。给定一个BirthDate我们可能会发现很多PersonId分享那个日期。

函数依赖集可用于合成关系(表)。的定义 前 3 个范式,包括 Boyce Codd 范式 (BCNF),用以下形式表示 给定的一组关系如何表示函数依赖关系。第四范式和第五范式涉及多值依赖(又一个问题)。

这里有一些关于函数依赖、规范化和数据库设计的免费资源。 在学习本材料时,准备好锻炼你的大脑和数学技能。

以下是来自各个学术网站的“幻灯片”...

  • 功能依赖 https://webhome.cs.uvic.ca/%7Ethomo/csc370/functional-dep2.ppt
  • 关系数据库的功能依赖性和规范化 https://cs.gmu.edu/%7Eaobaidi/spring-02/Normalization.ppt
  • 关系数据模型:函数依赖理论 https://web.archive.org/web/20100801142526/http://myweb.lmu.edu/dondi/share/db/fd-theory.pdf

以下为学术论文。阅读量较大,但值得付出努力。

  • 函数依赖理论在关系数据库中的应用 https://watermark.silverchair.com/25-1-68.pdf?token=AQECAHi208BE49Ooan9kkhW_Ercy7Dm3ZL_9Cf3qfKAc485ysgAAAsIwggK-BgkqhkiG9w0BBwagggKvMIICqwIBADCCAqQGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMwpoGasMz9Dka07vFAgEQgIICdV-VGDNReZ-XrDCpiZRZHPVndN3hV3tJISvgHOfqyiQfeUQutLnYiHw8Yy-jtpR4CwenTc3bCZ767WzJYiMRf9dzWBSS04ElNzWKyAst5Un8V9PkwvZg1tn--Tlipgc8BMdPqQna-YQEu41-1hm1S7u0GWS1aWxPes76NJ3Vbzl77tdLBQ1MupqHaP_Gx8gyhTDRRSut-39B8PS9L5mnUVGXk4QsO1Dn-2ywQWNkfGIwggzustW_rbDTNTi7YVbfrU5cMgaTGA3gmKEB8RegaFhGNuqv_7zwiCSDokEtemiEfhbw1ImgtXbOQuRj06px-PMzTJ2iwI6qKTr-so3TtK52UbMpmwWzhjD9Mn08HIaodu0jATf_vljAwwExm-5l8mBDegI99nm3O39dWPsFg6RSZXX_mzrvLLmDgkf0g4XGEvdiNxumcSCj1PpKAPDLAUHG1JFrf6X--MxiiBU3qQ7Makjck9CCGVnjn0lMMbZIOyUjoalwF0ZyM5qbIztG8d2pOGoiCvg5CIUMvWQc8ozEbhtk8Ke3WjVv0uxyEVvleXv2ke71NSnmDZf1Ai6xkMB87yOgoVElyIoNNp2Ln6_1AI-bLKTCH-jB3b230dUZ_li3ZGb2m8aFjf0fYXWT2BOIAPAyXtOhQKVr4Ey7L3Z6JiOuyPeIS0E6O7kaM5NMr_XKjPo4sc0XX7x-FTnMs0Y8Dl-sFmVVMbAM61nyGbWtq5PNBJik0gKGYcZRlLyfEg52tpYQXnlSFRR-ivtjOXguKm1Pg--bwCEQDTAllPcCEffyODajISOwa05Jti50iUbnB2YFsZLnLT6qnCJTnpyvtWJ_
  • 关系数据库中五种范式的简单指南 https://web.archive.org/web/20170922003307/http://www.mathe2.uni-bayreuth.de/axel/papers/kent:a_simple_guide_to_five_normal_forms_in_relational_database_theory.pdf
  • 关系数据库中保证高范式的简单条件 https://web.archive.org/web/20090220214149/http://www.almaden.ibm.com:80/cs/people/fagin/tods92.pdf

如果你对这个主题很感兴趣,我建议你花点钱买一本好书 关于关系数据库设计的主题。例如:数据库系统简介,作者:C.J. Date https://rads.stackoverflow.com/amzn/click/com/0321197844

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数依赖和规范化 的相关文章

  • Python Peeweeexecute_sql() 示例

    我使用 Peewee 模块作为我的项目的 ORM 我看了整个文档 没有明确的 有关如何处理 db execute sql 结果的示例 我跟踪代码 只能发现db execute sql 返回游标 有谁知道如何处理光标 例如迭代它并获取 返回复
  • 如何使用过程填充数据库

    我有大约 15 个不同的表 其中填充了不同的数据和不同的实体关系 我需要创建一个脚本 用这些表的内容填充我的数据库 脚本完成后 我使用 sqlplus 在 cmd 中运行它 然后使用 START文件路径 我有两个不同的 sql 文件 一个名
  • SQLite3 数据库中的派生字段

    各位晚上好 今天想问一个关于SQLite3中的派生字段 也称为计算字段 的问题 利用存储在我的数据库中的两个值 重量 和 距离 我知道可以利用它们来执行计算 以利用需要这两个值的公式返回我想要的值 但是我想知道是否有一种方法可以通过 SQL
  • ORA-01438: 值大于此列允许的指定精度

    有时我们会从合作伙伴的数据库中收到以下错误 i ORA 01438 value larger than specified precision allows for this column i 完整响应如下所示
  • 如何使用过程更改列的默认值

    这是我当前的 SQL 的样子 DELIMITER CREATE PROCEDURE updateDefaultUserRole IN rid in INT BEGIN ALTER TABLE users MODIFY rid INT 255
  • MySQL 错误:无法创建表(errno:121“写入或更新时重复键”)

    我使用 MySQL Workbench 生成数据库的图表和代码 当我将代码放入 phpMyAdmin 时 它显示错误 1005 无法创建表wypozyczalnia wypozyczenie 错误号 121 写入或更新时密钥重复 哪里有问题
  • 使用 元素通过 Wix 运行 SQL 脚本文件

    我是 Wix 安装程序的新手 我有一个要求 必须提供 SQL Server 登录凭据并从特定路径运行脚本 我不明白出了什么问题 项目已成功构建并创建了 msi 运行后我收到以下错误 错误26204 错误 2147217900 无法执行SQL
  • PHP - 多个不同的数据库依赖注入类

    我花了过去几个小时试图找到 最佳 最合乎逻辑的方法的答案 以编写一个 php 数据库类以同时连接到一个 postgresql 数据库和一个 mysql 数据库 另外 我想采用依赖注入设计 但对整个概念还是陌生的 到目前为止我已经想出了 cl
  • 可能的 PDOException 错误(MySQL 5)?

    因此 我正在为我的网络应用程序设置一个安装程序 并具有数据库凭据的输入字段 我的验证过程的一部分包括测试数据库连接 使用 PHP 的 PDO 库 如果连接失败 我希望能够区分错误的密码 错误的地址 不存在的数据库名称等 以便我可以引用表单上
  • 计算 HBase 表中列族的记录数

    我正在寻找一个 HBase shell 命令来计算指定列族中的记录数 我知道我可以运行 echo scan table name hbase shell grep column family name wc l 然而 这将比标准计数命令运行
  • 通过php将MYSQL数据导出到Excel/CSV

    我想通过 php 将 MYSQL 数据导出到 Excel CSV 这样我以后就可以使用我的数据库 或者有人可以使用并理解它 要使用适合 EXCEL 的语法创建 CSV 文件 您可以使用基本 SQL SELECT FROM mytable I
  • 如何使用文本框在数据网格视图中搜索数据?

    这是我当前的代码 private void searchTextBox TextChanged object sender EventArgs e dataGridView1 DataSource as DataTable DefaultV
  • 使用 Rails/ActiveRecord 覆盖旧数据库中列的名称或别名

    我正在针对旧数据库编写 Rails 应用程序 此旧数据库中的一个表有一个名为object id 很遗憾object id也是 Ruby 中每个对象的属性 因此当 ActiveRecord 尝试使用这些对象来制定查询时 它使用 Ruby 定义
  • Java中对象的序列化需要什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 谁能告诉我Java中对象序列化的需求是什么 并给我一个示例场景来解释需求 我已经了解什么是序列化 我只是想了解何时使用它以及如何使用它
  • 如何检查 postgres 的 psql 是否自动提交

    我使用的是 postgres 9 5 如何检查自动提交是否打开或关闭 我试过SHOW AUTOCOMMIT我在哪里得到的ERROR unrecognized configuration parameter autocommit 然后我做了一
  • 将计算列设置为非空时遇到问题

    我在将计算列设置为时遇到问题not null 我想要实现的是C001 C002 等 同时将其设置为not null 我在论坛上读到 这可以通过使用 NULL 值的默认值 0 来实现 E g ISNULL Price Taxes 0 我尝试应
  • MySQL:主键的所有部分都必须为 NOT NULL;如果您需要在键中使用 NULL,请使用 UNIQUE 代替

    我的 MySQL 有问题 我创建了名为 BucketList 的数据库 然后尝试创建名为 tbl user 的表 它看起来像这样 CREATE TABLE BucketList tbl user user id BIGINT NULL AU
  • 如何将包含 5000 条记录的 Excel 文件插入到 documentDB 中?

    我有一个 Excel 文件 最初约有 200 行 我能够将 Excel 文件转换为数据表 并且所有内容都正确插入到 documentdb 中 Excel 文件现在有 5000 行 在插入 30 40 条记录后不会插入 其余所有行不会插入到
  • Rails 中的多列主键

    我正在尝试将桌面应用程序迁移到rails 还处理相当老式的现有数据库 问题是我在一列中没有唯一的 ID 但表的三列保证了记录的唯一性 鉴于我有三个表 authors author name author letter author nr1
  • 如何在javascript中设置从数据库输入的最大数量?

    我希望根据数据库中的数量设置 输入类型 数字 中输入的最大数量 目前 我正在尝试让它在数据最大的基础上工作 然后再尝试从数据库中获取最大值 但它似乎无法工作 之前已经在这里问过 但我仍然无法理解 在 php javascript 中设置数据

随机推荐

  • 类常量的 PHP 表达式

    我试图找出为什么我会遇到此代码的异常 class Test const test Two rows 我在包含 const 的行上遇到异常 解析错误 语法错误 意外的 期望 或 在 home BZUMUL prog php 第 X 行 我本来
  • Java 客户端/服务器套接字

    我从 java 套接字开始 并且有奇怪的 缺乏 输出 这是我的套接字方法的来源 客户端源码 public void loginToServer String host String usnm try Socket testClient ne
  • Indy 可以运行 Javascript 吗?

    有一种名为 AnyChart 的软件产品 非常适合在网页中嵌入基于 Flashed 的图表 AnyCharts 还可以导出为 PNG 文件格式 这是一个例子
  • 如何使用 sublime 在终端上运行 ruby

    我什至不确定这个问题是否正确 我正在以下链接上编写 ruby 教程 www youtube com watch v Dji9ALCgfpM 他在sublime上编写代码 并在终端上显示运行的代码 我曾经在 Integrated ruby i
  • 带选择标签的 dataTables 列过滤插件

    我正在使用数据表 v1 92 以及列过滤插件 v1 5 0 问题 我需要为单个列过滤创建下拉列表 其标记将是
  • 如何上传图片并将其保存到数据库中? [复制]

    这个问题在这里已经有答案了 我必须使用 JavaScript 创建一个表单 用户将上传一个 JPG 文件并与其他信息 例如姓名 电子邮件等 一起提交 当用户单击 提交 时 表单中的所有信息都将加载到值对象中 对于图像文件我将其设置为byte
  • 在 JavaFX 中显示字符串/标签

    我需要帮助弄清楚如何在程序中显示文本 以便它可以在我创建的多边形形状的中间显示 停止 我想做的是创建一个停车标志 我已经负责创建和显示该停止标志 所以现在我只需要在 t 中显示 停止 package application public c
  • 在 django-rest 框架中使用原始 SQL?

    我使用 Django 1 8 和带有表和物化视图的 Postgres 9 4 后端 我有一个 80GB 的表 名为spending包含支出项目 每个项目都有一个组织代码和一个区域代码 class Prescription models Mo
  • C++11 中的可变参数模板和多重继承

    我正在努力实现这样的目标 我有一个模板化基类 我想动态继承它 template
  • MSVC 的 open_memstream 的等效项

    我在用打开内存流在我的一个库中 但我想将该库移植到 MSVC 似乎没有可用的等效功能 但是有足够相似的功能吗 What 打开内存流所做的是它需要一个 char 目的地和大小并返回一个您可以写入的 FILE 数据存储在动态分配的缓冲区中 可从
  • 如何在 OS X 中包含 FFI?

    我在构建时遇到问题这个项目 https github com metaeducation ren c启用 FFI 扩展 为了隔离问题 我正在尝试编译这个例子 http www chiark greenend org uk doc libff
  • OSError:图像文件被截断

    当我处理一堆图像时 其中一个图像出现此错误 File home tensorflowpython firstmodel yololoss py line 153 in data generator image box get random
  • ASP.NET MVC - 如何根据登录用户的角色权限隐藏或显示链接/按钮?

    我正在使用 ASP NET MVC4 这是我的用户角色 1 Administrator 2 L1 Admin 3 L2 Admin 管理员组用户有设置权限 用于添加 权限设置 查看日志 错误报告等 如果用户是管理员组的成员 他只能看到与上述
  • Typescript + React/Redux:类型“IntrinsicAttributes”和“IntrinsicClassAttributes”上不存在属性“XXX”

    我正在开发一个使用 Typescript React 和 Redux 全部在 Electron 中运行 的项目 当我将一个基于类的组件包含在另一个组件中并尝试在它们之间传递参数时 我遇到了问题 宽松地说 我的容器组件结构如下 class C
  • 如何使用类型提示指定多个返回类型

    我在 python 中有一个函数 它可以返回一个bool or a list 有没有办法使用类型提示指定返回类型 例如 这是正确的方法吗 def foo id gt list or bool 从文档中 联合型 https docs pyth
  • TSQL 仅显示第一行

    我有以下 SQL 查询 SELECT DISTINCT MyTable1 Date FROM MyTable1 INNER JOIN MyTable2 ON MyTable1 Id MyTable2 Id WHERE Name John O
  • 禁用 jquery 1.6 中的元素

    随着 jQuery 1 6 的发布 对 SO 的建议是普遍开始使用prop http api jquery com prop 你以前用过的地方attr 当我想禁用某个元素时会发生什么 control prop disabled disabl
  • 如何解决查询 ImportRange 错误

    希望能得到一个正确方向的小指点 我绝对不是程序员 但我正在努力学习 QUERY IMPORTRANGE 1ZKw8d7OKX LqnYx 84IHP2fuBo 6rzzZ7TuaQOfCjio Data A2 D7 select Col1
  • 如何在 Vue.js 中实现父孙之间的双向数据绑定

    我遇到了一个问题 我通过 cookie 解决它 但我想在没有 cookie 的情况下解决问题 我有一个名为 app header 的组件 它还有另一个名为 outmodal 的组件 现在 我的第一个 Vue 实例需要组件应用程序标头 var
  • 函数依赖和规范化

    我正在尝试寻找一个很好的资源来研究函数依赖性和规范化 有人知道我应该去哪里吗 我很难区分 FD 属于 1NF 2NF 还是 3NF 我一直在阅读维基百科并使用谷歌搜索来找到好的研究 但找不到任何简单的解释 也许你们也可以分享一下您在生活中是