我目前正在学习数据库管理,我们被介绍了功能依赖的概念:
设A和B是关系中的属性。B被认为在函数上依赖于A,当且仅当对于每个A值,你都可以确定一个B值。即A -> B
我的问题:
如果是这种情况,那么给定A、B和C;如果C可以用A和B进行算术评估,你能认为C在功能上依赖于A和B吗?
即(A/B) = C
<>AB -> C
例如:
假设我有一张包含在线订单信息的表格。它包括属性:PROD_PRICE
、QTY
和TOTAL_PRICE
。既然总价可以通过PROD_PRICE
乘以QTY
来确定,那么说PROD_PRICE
QTY
准确吗→TOTAL_PRICE
?
如果是这种情况,则给定A、B和C;如果C可以用A和B进行算术评估,你能认为C在功能上依赖于A和B吗?
是的,根据功能依赖性的定义。在函数依赖中,通常情况下,你有一组属性("行列式"(来确定另一个集合("确定性"(,也就是说,每次在一个关系的实例中,我们发现行列式的值相同时,确定性必须相等,如果确定性是作为表达式在确定性上的值获得的,这是真的,就像在你的例子中一样。
注意,一般情况下,你不知道哪个函数是从行列式产生行列式的,只要你知道这样一个函数存在。函数依赖性概念抓住了这一事实,这在表示数据时非常重要。
因此,如果对于表的每一行,我们都有c=a/b
,那么ab->c
,但例如,当PRODUCT_ID -> PRODUCT_NAME
成立时,没有数学函数可以从前者导出后者。