如何解决部分依赖和传递依赖?

How to resolve dependencies that are both partial as well as transitive?

我为虚拟汽车租赁业务创建了这个 ER Diagram。每辆 CAR 都可以有多个副本 (CARCOPY),在其生命周期内可以多次租用。一位客户可以一次租用多个 CARCOPY。

我创建了一个名为 HIREDETAIL 的实体,它作为桥接实体来解决多对多关系。我希望整体场景是第三范式(3NF)。

我看到的问题出在 HIREDETAIL 实体中。有一列名为 HD_DAYS_RENT(租车天数)。还有另一列 (HD_DUEDATE) 取决于 HD_DATS_RENT 以及 HIRE table 内部的 HIRE_DATE。它与 CARCOPY table 无关。这是否被视为部分依赖或传递依赖?它依赖于一个主属性和一个非主属性。

此外,HD_TOTAL_COST 也观察到类似的情况(费用根据 CAR_DAILY_RENT 和 HD_DAYS_RENT 的日租金计算)。它取决于CARCOPY_NUM(素数属性)table,但也取决于HD_DATS_RENT(非素数属性)

另一个传递依赖在于HD_DAYSLATE,它基本上只是HD_DUEDATE和HD_RETURNDATE之间的区别。

如何解决所有这些依赖关系?我只看到了非常简单的部分依赖和传递依赖,但我无法理解这一点。我应该更改什么以使其至少为 3NF。

据我了解,HD_DUEDATEHD_DAYSLATEHD_TOTAL_COST 计算 ,因此, 非规范化 本质上。

如果您删除那里的三列,您的模型将符合 3FN 标准。

我假设HD_RETURNDATE 可以为空,设置在汽车 return 上。