检测弱实体
Detecting Weak Entity
我正在研究 ER 图,我遇到了一个关于 BANK 迷你世界的问题。
问题说:
- 对于每笔贷款付款,银行都会维护付款日期和金额。
- 每笔贷款付款都与特定贷款相关联,并由付款编号标识,在该贷款的付款中是唯一的。
我认为支付实体应该是强(正规)实体。它具有唯一的密钥。但是,答案说它是弱实体。
在这种情况下如何判断实体是弱的还是常规的(强)?
如果付款编号单独唯一标识每笔付款,那么它就是一个常规实体集。如果付款编号是一个序数或值,只能区分同一笔贷款的不同付款,那么它是一个弱实体集。
例如,常规实体关系将包含如下行:
payment_number | loan_number | date | amount
1 | 123 | 2018-01-01 | 1000.00
2 | 123 | 2018-02-01 | 1010.00
3 | 200 | 2018-01-02 | 500.00
4 | 200 | 2018-02-02 | 550.00
如您所见,payment_number
本身就是唯一标识。
弱实体关系可能有这样的行:
loan_number | payment_number | date | amount
123 | 1 | 2018-01-01 | 1000.00
123 | 2 | 2018-02-01 | 1010.00
200 | 1 | 2018-01-02 | 500.00
200 | 2 | 2018-02-02 | 550.00
在这种情况下,payment_number
本身不足以识别每一行,我们必须使用 (loan_number, payment_number)
.
的组合
我正在研究 ER 图,我遇到了一个关于 BANK 迷你世界的问题。
问题说:
- 对于每笔贷款付款,银行都会维护付款日期和金额。
- 每笔贷款付款都与特定贷款相关联,并由付款编号标识,在该贷款的付款中是唯一的。
我认为支付实体应该是强(正规)实体。它具有唯一的密钥。但是,答案说它是弱实体。
在这种情况下如何判断实体是弱的还是常规的(强)?
如果付款编号单独唯一标识每笔付款,那么它就是一个常规实体集。如果付款编号是一个序数或值,只能区分同一笔贷款的不同付款,那么它是一个弱实体集。
例如,常规实体关系将包含如下行:
payment_number | loan_number | date | amount
1 | 123 | 2018-01-01 | 1000.00
2 | 123 | 2018-02-01 | 1010.00
3 | 200 | 2018-01-02 | 500.00
4 | 200 | 2018-02-02 | 550.00
如您所见,payment_number
本身就是唯一标识。
弱实体关系可能有这样的行:
loan_number | payment_number | date | amount
123 | 1 | 2018-01-01 | 1000.00
123 | 2 | 2018-02-01 | 1010.00
200 | 1 | 2018-01-02 | 500.00
200 | 2 | 2018-02-02 | 550.00
在这种情况下,payment_number
本身不足以识别每一行,我们必须使用 (loan_number, payment_number)
.