确定这些数据是否真的处于第4范式?

时间:2016-08-27 19:32:18

标签: normalization database-normalization

我有一些 - 公司位置产品详细信息要存储在数据库中。

sample data
company  location      product
------------------------------
abc      hilltop       alpha
abc      hilltop       beta
abc      riverside     alpha
abc      riverside     beta
buggy    underbridge   gama
buggy    underbridge   theta
buggy    underbridge   omega

据我所知,这种关系是多重的。并且数据需要在MVD为

时进行标准化
  1. 不是来自候选键(公司 - >>位置和公司 - >>产品,其中公司不是候选键)
  2. 或者工会没有制作整套(公司U位置< R等产品)。
    但是我的同事不同意我的看法,他坚持认为,对于一个具有多值依赖关系的关系,每个公司应该存在至少四个相同的公司列值。即 t1(公司)= t2(公司)= t3(公司)= t4(公司),
    对于公司abc这是真的。但对于在三个地点只生产一种产品的公司“越野车”,这是不真实的。
  3. 对于正式定义和类似示例,我引用了: https://en.wikipedia.org/wiki/Multivalued_dependency  和wiki上的Fourth_normal_form示例。

    我知道我的同事正在教育学,但在阅读正式定义之后,我也开始看到同样的问题。 (毕竟这些都是在数学基础上得出的。)

    更新:我不是问如何将这些数据标准化为4NF,我想我知道。 (我需要将其分为两个表1)公司 - 地点和2)公司 - 产品 我已经做过了。

    有人可以解释这种关系如何仍然是MVD,即使它不符合正式定义吗? 详细解释非常受欢迎。

1 个答案:

答案 0 :(得分:1)

“存在”表示存在一些,并且它们不必不同 EXISTS后跟一些名称(s )表示存在某些条件所引用的某些,条件成立。多个名称可以引用相同的值。 (FOR ALL可以用EXISTS表示。)

MVD的概念可以应用于变量和值。实际上,链接定义的形式是当MVD保持在值意义上时,MVD保持在变量意义上 “在任何法律关系中”。要知道特定价值是合法的,您需要商业知识。然后,您可以显示该值是否满足MVD。但要显示其变量是否满足MVD,您必须证明MVD满足变量可以容纳的“任何法律关系”值。一个有效值可以告诉您MVD 保留(它和)其变量,但它无法告诉您MVD 保留其变量。这需要更多商业知识

您可以通过使用MVD的定义来证明此违反了4NF。定义说当某个条件适用于任何条件时,关系变量满足MVD有效关系“值:

  

对于所有元组t1& r中的t2使得t1 [a] = t2 [a]存在元组t3& t4 [...]

对于t1和amp;的MVD和值t2你的同事是否声称​​不存在 t3&的值T4?对于t1和amp;没有MVD和值的这种组合。 T2。例如{company}↠{product}和t1& t2(bug,underbridge,gamma),我们可以将(公司,underbridge,gamma)作为t3和amp;的值。 t4等等,用于t1&的所有其他选择T2。

F↠Tholding 的另一个定义是二元JD(连接依赖)* {FUT,FU(A-T)}成立,即该关系等于其投影的连接关于FUT& F U(A - T)。这个定义可能对您有更直接的帮助。你的同事,因为它避免了你和你的术语。他们误解了。例如,您的示例数据是这两个预测的连接:

company  location
--------------------
abc      hilltop
abc      riverside
buggy    underbridge

company  product
----------------
abc      alpha
abc      beta
buggy    gamma
buggy    theta
buggy    omega

因此它满足JD * {{company,location},{company,product}},因此它满足MVD {company}↠{location}和{company}↠{product}(以及其他)。 (也许你将能够想到一个或多个(平凡的和/或非平凡的)MVD所拥有的零,一,二,三等元组关系的例子。)

当然,这两种定义是描述相同条件的两种不同方式。

PS 1 每当FD F→T成立时,MVDF↠T成立。对于BCNF中的关系,违反4NF&的MVD。 5NF是那些与FD无关的人。

PS 2 当且仅当它的值被替换为给定语句模板或谓词<时,它才能保存元组,当且仅当它在业务术语中生成真实语句时/ em>的。加上MVD的JD定义为在业务术语中满足MVD的关系变量提供了条件。这里我们的谓词的格式为...company...location...product...。 (例如 company named company is located at location and makes product {{ 1}}。)对于所有有效的业务情况{1},

,这个MVD适用于变量
product