Database BCNF和3NF:数据库模式的规范化

Database BCNF和3NF:数据库模式的规范化,database,3nf,lossless,bcnf,Database,3nf,Lossless,Bcnf,将模式转换为BCNF或3NF形式时,是否保证它们是无损的 i、 e如果关系模式R的依赖关系违反BCNF或3NF的条件,将其分解为R1和R2,使R1和R2在BCNF或3NF中,R1和R2将始终满足以下条件: R1 ⋈ R2 = R 可以保证您始终可以进行无损连接和保持依赖关系的3NF分解 它还保证具有无损连接BCNF分解,但不保证保持依赖关系。我想这是一个定义问题。当然有人会说有损模式转换不是有效的分解。一般转换产生的模式规范化并不意味着转换的损失。这是否意味着与原始模式相比,转换为BCNF或3N

将模式转换为BCNF或3NF形式时,是否保证它们是无损的 i、 e如果关系模式R的依赖关系违反BCNF或3NF的条件,将其分解为R1和R2,使R1和R2在BCNF或3NF中,R1和R2将始终满足以下条件:

R1 ⋈ R2 = R

可以保证您始终可以进行无损连接和保持依赖关系的3NF分解


它还保证具有无损连接BCNF分解,但不保证保持依赖关系。

我想这是一个定义问题。当然有人会说有损模式转换不是有效的分解。一般转换产生的模式规范化并不意味着转换的损失。这是否意味着与原始模式相比,转换为BCNF或3NF可能会导致信息损失?作为一个极端的例子,我可以将任何模式转换为空模式以实现完美的规范化,以完全丢失数据为代价。我不知道有谁会认为这是一个有效的“分解”。我的观点是,“分解”是否有损是该术语定义的一部分,或者至少是它的内在含义。我想大多数人都会说无损耗转换是一种有效的分解。谢谢,用例子来说明。