sql - 什么是数据库规范化和功能依赖?

标签 sql database normalization database-normalization

我正在阅读 Database Normalization tutorial我很难理解以下内容:

Functional dependency says that if two tuples have same values for attributes A1, A2,..., An, then those two tuples must have to have same values for attributes B1, B2, ..., Bn.

Functional dependency is represented by an arrow sign (→) that is, X→Y, where X functionally determines Y.

以上两个指的是什么? “功能决定”是什么意思?

我可以有一个元组,其中 A1、A2、A3 相同但 B1、B2、B3 不同。

最佳答案

当关系中的一个属性唯一地确定另一个属性时,就会发生函数依赖。这可以写成 A -> B,这与声明“B 在功能上依赖于 A”是一样的。

在列出员工特征(包括社会安全号码 (SSN) 和姓名)的表格中,可以说姓名在功能上取决于 SSN(或 SSN -> 姓名),因为员工的姓名可以根据其 SSN 唯一确定。但是,反向语句(姓名 -> SSN)不正确,因为不止一名员工可以拥有相同的姓名但不同的 SSN。

关于sql - 什么是数据库规范化和功能依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29764062/

相关文章:

sql - 有没有办法将 JSON 对象数组与其他 View /表中的另一个 JSON 对象数组合并?

database - 标准化跨表共享的通用 ID 类型

database - 船舶管理数据库结构讨论(应该非规范化?)

php - 比较 2 个 MySQL 表并将新行移动到第二个表

sql - 添加日期时间和时间

sql - 困难的 SQL 子查询来计算一些东西

sql-server - 在远程 SQL Server 引擎上创建数据库

python - 使用 scipy 和 numpy 中的函数计算 z-score

php - SQL LOAD DATA INFILE 的编码问题?或者不同

php - 如何在查询中使用整数变量作为随机值?