ER模型对功能依赖解决方案的解释
Explanation of ER model to functional dependencies solution
我正在尝试了解一项将 ER 模型转换为功能依赖项的练习的解决方案。
正如你在上面看到的,我们只有关系名称,除此之外没有其他任何东西,并且通过解决方案,他们以某种方式得出结论
母亲、女儿 → 父亲
父亲、女儿→母亲
母亲、儿子 → 父亲
父亲、儿子→母亲
此外,我们可以推断出额外的 f 依赖关系来更准确地表示现实世界:
母亲、儿子 → 父亲
父亲、儿子→母亲
我在这里不明白的是,我们如何仅通过查看关系名称来将我们的转换建立在函数依赖关系的基础上,因为当我从 ER 模型转换为关系模型时,我总是通过查看属性名称。这个练习有没有可能有什么问题,或者任务提供者只是想让我们翻译成函数依赖关系更接近我作为学生第一次看它的时候(即通过更具教育意义)?
TL;DR
As you can see above, we only have relation names and nothing else besides that
嗯,有几行,每行都有一个名字和一个数字或字母。
作业没有什么奇怪的。转到您的教科书并找出每个技术术语和图形元素的确切含义。 (特别是您可能会对 "relationship" 或您的基数标签的含义感到困惑。)解决方案的产生方式如下。
ERM 中的 R(对于实体关系模型)代表 "relationship",就像在 n 元关联中一样。类似地,RM 中的 R(对于关系模型)根据其在数学中的相关含义使用 "relation" 作为 n 元 relationship/association & 作为参与或满足这种关系的一组值元组,就是这样 related/associated。但是这些 ER 和 RM "relationships" 不是参与或 FK(外键),它们被声称是 ER 或关系但不是的方法和表示称为 "relationships" 或 "relations"。
Chen ER 图的每个实体类型都有一个方框,每个关系类型有一个菱形,每个参与有一条线。一行中的名称给出了该参与的关系中的属性。一行上的 1 或 N 标签给出该参与的基数信息。
每个 ER 实体和关系类型都有一个表示关系。因此,每个盒子和钻石的关系以及每行的 FK。 FD(函数依赖)适用于关系。所以我们可以说 FD 适用于一段关系。
大概图表的relationships/relations是这样的:
-- man [son] is the son of man [father] & woman [mother]
isSon(son, father, mother)
-- woman [daughter] is the daughter of man [father] & woman [mother]
isDaughter(daughter, father, mother)
信息建模方法、图表和基数标签有多种样式。您的图表似乎是真正 ER 的 Chen 风格之一。关系类型中实体类型参与的基数标签表示 有多少该类型的实体 可以参与或共享 a 给定的 instance/subtuple其他参与者类型 涵盖所有可能出现的情况。 1 表示恰好一个,N 表示一个或多个。 n元关系基数是n个这样的参与基数的序列,"X:Y:..."或"X to Y to ..."。
请注意,这样的序列假定了 entities/attributes 的特定顺序。请注意,对于二元关系,N:1 对于一个顺序意味着 1:N 对于相反的顺序。 (hasMother(child, mother)
是 N:1 when/iff isMother(mother, child)
是 1:N。)注意 X:Y 中的每个 entity/attribute:... 断言关于"a given" 或 "one given" 其他子元组。 "one" 不是来自基数标签。它来自插入标签的短语。特别是它不是来自二进制 N:1 或 1:N.
中的 1
从你的台词我们得到:
isSon
N sons participate with a given father-mother pair
1 father participates with a given son-mother pair
1 mother participates with a given son-father pair
isDaughter
N daughters participate with a given father-mother pair
1 father participates with a given daughter-mother pair
1 mother participates with a given daughter-father pair
(二进制 X:Y 通常草率地表示为 "X entities have Y of the other & Y entities have X of the other"。它的意思是 "a given 1st appears with Y of the other & a given 2nd appears with X of the other"。这种措辞不会推广到 n 元关系或 X:Y:.... (A given nth entity appears with how many of what?)那个草率的表达也打算表示,使用第n个字母和第n个实体,"X of the 1st appear with a given subtuple of the others & Y of the 2nd appear with a given subtuple of the others"。这是Chen的n元解释对于 n=2。您可能认为我们可以使用 X:Y:... 来表示 "a given 1st appears with X subtuples of others & a given 2nd appears with Y subtuples of others & ..."。然而,事实证明这并没有那么有用,而且它与二进制 [=111] 的正常含义相矛盾=] 将其理解为 Y:X 通常的意思。)
这种特殊形式的基数约束恰好直接告诉我们一些关于在表示关系中保持和不保持的 FD(函数依赖)的信息。观察带有 1s 和 Ns 的线与一些持有和不持有的 FD 平行:
isSon
{father, mother} → {son} does not hold
{son, mother} → {father}
{son, father} → {mother}
isDaughter
{father, mother} → {daughter} does not hold
{daughter, mother} → {father}
{daughter, father} → {mother}
我们可以确定每个 "the real world" 的 FD 取决于我们认为它包含什么以及每个关系的确切含义's/relation 是什么——它的元组成员 condition/criterion--its (特征)谓词。约束——包括 FK 和 FD——由谓词和可能出现的 situations/states 决定。反过来,这取决于规范中使用的词语的含义,包括那些表达谓词和业务规则的词语。
如果上面的谓词涉及 生物 儿子和女儿,那么我们可以合理地预期给定的基数,也可以预期 {son} → {father, mother}
和 {daughter} → {father, mother}
。 (请注意,这些 FD 暗示了确定 {father}
& {mother}
及其基数标签的上述 FD。)
然而,对于其他谓词和业务规则(根据表达它们的表达式以及其中的词的含义)和 "the real world" 的概念,我们可能有不同的 FD。这完全取决于 "father"、"mother"、"son" & "daughter" 或 "man" & "woman" 的确切意图,以及您假设的相关规则是什么 situations/states 可能会出现在您的申请中——结婚、离婚、收养、剥夺继承权、养育子女、死亡等,以及您从哪些人那里吸取什么以及何时等。一个真的需要真清楚。
但是你没有明确给出谓词或者业务规则。 (或者解释图表的图例。)所以很难说其他非隐含 FD 可能持有或不持有什么。
所以这个作业没有什么奇怪的。
PS 当你被卡住时,去你的教科书上查明每句话的确切含义,并问一个关于你第一次卡住理解或遵循特定定义的问题,axiom/assumption, theorem/fact 或 algorithm/method/process/heuristic。这个问题不是因为创造性地被卡住了;在这里你应该机械地套用课本上的方法。
PS
我正在尝试了解一项将 ER 模型转换为功能依赖项的练习的解决方案。
正如你在上面看到的,我们只有关系名称,除此之外没有其他任何东西,并且通过解决方案,他们以某种方式得出结论
母亲、女儿 → 父亲
父亲、女儿→母亲
母亲、儿子 → 父亲
父亲、儿子→母亲
此外,我们可以推断出额外的 f 依赖关系来更准确地表示现实世界:
母亲、儿子 → 父亲
父亲、儿子→母亲
我在这里不明白的是,我们如何仅通过查看关系名称来将我们的转换建立在函数依赖关系的基础上,因为当我从 ER 模型转换为关系模型时,我总是通过查看属性名称。这个练习有没有可能有什么问题,或者任务提供者只是想让我们翻译成函数依赖关系更接近我作为学生第一次看它的时候(即通过更具教育意义)?
TL;DR
As you can see above, we only have relation names and nothing else besides that
嗯,有几行,每行都有一个名字和一个数字或字母。
作业没有什么奇怪的。转到您的教科书并找出每个技术术语和图形元素的确切含义。 (特别是您可能会对 "relationship" 或您的基数标签的含义感到困惑。)解决方案的产生方式如下。
ERM 中的 R(对于实体关系模型)代表 "relationship",就像在 n 元关联中一样。类似地,RM 中的 R(对于关系模型)根据其在数学中的相关含义使用 "relation" 作为 n 元 relationship/association & 作为参与或满足这种关系的一组值元组,就是这样 related/associated。但是这些 ER 和 RM "relationships" 不是参与或 FK(外键),它们被声称是 ER 或关系但不是的方法和表示称为 "relationships" 或 "relations"。
Chen ER 图的每个实体类型都有一个方框,每个关系类型有一个菱形,每个参与有一条线。一行中的名称给出了该参与的关系中的属性。一行上的 1 或 N 标签给出该参与的基数信息。
每个 ER 实体和关系类型都有一个表示关系。因此,每个盒子和钻石的关系以及每行的 FK。 FD(函数依赖)适用于关系。所以我们可以说 FD 适用于一段关系。
大概图表的relationships/relations是这样的:
-- man [son] is the son of man [father] & woman [mother]
isSon(son, father, mother)
-- woman [daughter] is the daughter of man [father] & woman [mother]
isDaughter(daughter, father, mother)
信息建模方法、图表和基数标签有多种样式。您的图表似乎是真正 ER 的 Chen 风格之一。关系类型中实体类型参与的基数标签表示 有多少该类型的实体 可以参与或共享 a 给定的 instance/subtuple其他参与者类型 涵盖所有可能出现的情况。 1 表示恰好一个,N 表示一个或多个。 n元关系基数是n个这样的参与基数的序列,"X:Y:..."或"X to Y to ..."。
请注意,这样的序列假定了 entities/attributes 的特定顺序。请注意,对于二元关系,N:1 对于一个顺序意味着 1:N 对于相反的顺序。 (hasMother(child, mother)
是 N:1 when/iff isMother(mother, child)
是 1:N。)注意 X:Y 中的每个 entity/attribute:... 断言关于"a given" 或 "one given" 其他子元组。 "one" 不是来自基数标签。它来自插入标签的短语。特别是它不是来自二进制 N:1 或 1:N.
从你的台词我们得到:
isSon
N sons participate with a given father-mother pair
1 father participates with a given son-mother pair
1 mother participates with a given son-father pair
isDaughter
N daughters participate with a given father-mother pair
1 father participates with a given daughter-mother pair
1 mother participates with a given daughter-father pair
(二进制 X:Y 通常草率地表示为 "X entities have Y of the other & Y entities have X of the other"。它的意思是 "a given 1st appears with Y of the other & a given 2nd appears with X of the other"。这种措辞不会推广到 n 元关系或 X:Y:.... (A given nth entity appears with how many of what?)那个草率的表达也打算表示,使用第n个字母和第n个实体,"X of the 1st appear with a given subtuple of the others & Y of the 2nd appear with a given subtuple of the others"。这是Chen的n元解释对于 n=2。您可能认为我们可以使用 X:Y:... 来表示 "a given 1st appears with X subtuples of others & a given 2nd appears with Y subtuples of others & ..."。然而,事实证明这并没有那么有用,而且它与二进制 [=111] 的正常含义相矛盾=] 将其理解为 Y:X 通常的意思。)
这种特殊形式的基数约束恰好直接告诉我们一些关于在表示关系中保持和不保持的 FD(函数依赖)的信息。观察带有 1s 和 Ns 的线与一些持有和不持有的 FD 平行:
isSon
{father, mother} → {son} does not hold
{son, mother} → {father}
{son, father} → {mother}
isDaughter
{father, mother} → {daughter} does not hold
{daughter, mother} → {father}
{daughter, father} → {mother}
我们可以确定每个 "the real world" 的 FD 取决于我们认为它包含什么以及每个关系的确切含义's/relation 是什么——它的元组成员 condition/criterion--its (特征)谓词。约束——包括 FK 和 FD——由谓词和可能出现的 situations/states 决定。反过来,这取决于规范中使用的词语的含义,包括那些表达谓词和业务规则的词语。
如果上面的谓词涉及 生物 儿子和女儿,那么我们可以合理地预期给定的基数,也可以预期 {son} → {father, mother}
和 {daughter} → {father, mother}
。 (请注意,这些 FD 暗示了确定 {father}
& {mother}
及其基数标签的上述 FD。)
然而,对于其他谓词和业务规则(根据表达它们的表达式以及其中的词的含义)和 "the real world" 的概念,我们可能有不同的 FD。这完全取决于 "father"、"mother"、"son" & "daughter" 或 "man" & "woman" 的确切意图,以及您假设的相关规则是什么 situations/states 可能会出现在您的申请中——结婚、离婚、收养、剥夺继承权、养育子女、死亡等,以及您从哪些人那里吸取什么以及何时等。一个真的需要真清楚。
但是你没有明确给出谓词或者业务规则。 (或者解释图表的图例。)所以很难说其他非隐含 FD 可能持有或不持有什么。
所以这个作业没有什么奇怪的。
PS 当你被卡住时,去你的教科书上查明每句话的确切含义,并问一个关于你第一次卡住理解或遵循特定定义的问题,axiom/assumption, theorem/fact 或 algorithm/method/process/heuristic。这个问题不是因为创造性地被卡住了;在这里你应该机械地套用课本上的方法。
PS