Employé3: {noEmp, ability, country}
我有一小部分属性和以下限制:每个员工可能具有与某个国家相关的一些能力。例如,阿尔弗雷德可以烹制意大利和中国菜,也可以用法语写作。
我的问题在于我无法确定哪种DM是最佳解决方案。我试过用
noEmp,country ->> aptitude
,但它让我感到困扰。它说我可以有两个具有相同(noEmp,country)
的元组,但不一定具有相同的能力。好的,但是够了吗?
我想过使用noEmp->>country,ability
,但似乎并没有表达能力与国家之间的关系。
当然,所有这些DM都是微不足道的,因为它抱怨所有的属性,所以也许这是一个愚蠢的问题......
另一个问题:钥匙怎么样?我可以使用DM来确定它吗?起初我认为不,因为关键必须是单一的。但在这种情况下,我将被迫使用所有属性作为键,它有点奇怪,如果我不能使用DM来确定某些东西,我怎么可能有4FN关系呢?
答案 0 :(得分:1)
对(ability, country)
是复合属性。由于缺乏更好的术语,我们称之为ethnic_ability
。复合属性是复杂的域,它们被展平为多列原始数据类型。示例:(yyyy_mm_ss_date, hh_mm_daytime)
,(first_name,last_name)
,(integer_part_of_real_number,decimal)
。从DM角度来看,复合属性可以被视为原子。因此,您有一个包含两列{noEmp, ethnic_ability}
的表,并且依赖理论对二元谓词的说法并不多。