Database 1NF至3NF——审查

Database 1NF至3NF——审查,database,normalization,Database,Normalization,所以我从课本上的这个问题开始: 然后我必须找到所有的依赖项,并从原始文件创建一个3NF。。。我花了几个小时试图弄明白这一点,并使其正确。有人能给我提供到目前为止的最终产品的反馈吗? (我知道这是在关系模型中,而不是ERD中——我想这会更容易)我同意您的大多数解决方案。然而,有几个细节很突出: 您在TRAINING中介绍了TRAINING\u ID或TRAINING\u DESCR。最初的EMP_培训只有一个值域。规范化只会提供桥接表 您在教育中介绍了EDUC\u code或EDUC\u DES

所以我从课本上的这个问题开始: 然后我必须找到所有的依赖项,并从原始文件创建一个3NF。。。我花了几个小时试图弄明白这一点,并使其正确。有人能给我提供到目前为止的最终产品的反馈吗?
(我知道这是在关系模型中,而不是ERD中——我想这会更容易)

我同意您的大多数解决方案。然而,有几个细节很突出:

  • 您在
    TRAINING
    中介绍了
    TRAINING\u ID
    TRAINING\u DESCR
    。最初的
    EMP_培训
    只有一个值域。规范化只会提供桥接表
  • 您在
    教育
    中介绍了
    EDUC\u code
    EDUC\u DESCR
    。最初的
    EMP_教育
    有一个单一的价值领域。规范化只会提供桥接表
  • 您引入了
    EMP\u code
    作为
    JOB\u类的属性。我在原始文件中没有看到匹配的属性
  • dependent_NUM
    没有错,但这取决于您是将
    EMP_DEPENDENTS
    解释为有序列表还是无序列表。我会使用
    (EMP\u NUM,DEPEN\u FNAME)
    作为
    依赖项的键。你的解决方案同样有效

我希望这有帮助

请列出您的函数依赖项。没有给出函数依赖项,我发现从1NF到3NF的部分依赖项和过渡依赖项必须是函数依赖项(FD),部分依赖项是FD,过渡依赖项是FD的组成部分。列出您标识的FD的目的是为了检查您是否正确地使用它们来规范化。我可以从你的解决方案中得出FDs,但我将你的答案与我自己对数据的解释进行比较。我对你的前三点感到困惑。对于前两种情况,培训和教育是一种多对多的关系,因为一个员工可以有很多培训或学位,而一个学位或培训可以属于很多员工,所以我需要用一座桥来打破这种关系。是吗?第三个应该是EMP_Num,它将修复我相信遵循规范化规则会给你一个关系
(EMP_Num,EMP_EDUCATION)
。原始数据中没有单独的代码和说明。培训也是一样。
JOB
中的
JOB\u CLASS->EMP\u NUM
错误-有两名员工的职务类别为SLS。您在
EMP\u NUM->JOB\u CLASS
中已经有了
EMP\u CLASS
,它捕获了正确的依赖关系。因此,我会完全取出培训表和教育表,让这两个桥保持原样,并从JOB表中删除EMP\u NUM?如果我将JOB\u CLASS和EMP\u NUM都设置为JOB表的主键会怎么样这能解决问题吗?