有人能否就上述问题给我一个明确的解释?
谢谢。
答案 0 :(得分:1)
假设我们有一个架构,Lending-schema
Lending-schema = (bname, bcity, assets, cname, loan#, amount)
此关系中的元组t具有以下属性:
t [assets]是[bname]
的资产t [bcity]是t [bname]
的城市t [loan#]是分支t [bname]对t [cname]的贷款编号。
t [金额]是t [loan#]
的贷款金额
如果我们希望向我们的数据库添加贷款,我们需要一个包含Lending-schema所需的所有属性的元组。 因此我们需要插入
(SFU, Burnaby, 2M, Turner, L-31, 1K)
我们现在正在为每笔贷款重复资产和分行城市信息。 重复信息浪费空间。 重复信息会使更新变得复杂。
如果分支机构的资产发生变化,我们需要更改许多元组。
所以在分析了这个
之后
- 我们知道分支机构恰好位于一个城市。
- 我们也知道分行可以提供很多贷款。
另一个问题是我们无法代表分支机构(资产和城市)的信息,除非我们在该分支机构有一个贷款元组。
除非我们使用空值,否则我们只能在有贷款时获得此信息,并且必须在最后一笔贷款被清偿时将其删除。
所以如果我们分解成两个模式
Branch-customer-schema = (bname, bcity, assets, cname)
Customer-loan-schema = (cname, loan#, amount)
这两个表是在分解主表后形成的。
简而言之:将表分成多个表是Decomposition
。我们的分解应该是无损连接分解