避免冗余
冗余的定义,用不同的方式表达了同样的事务。
冗余带来空间的浪费和容易引起数据不一致性。
右图manufacter of beer 被表示了两次,一次作为beers的属性,一次作为实体,manfs.
这个设计的问题是如果某个manufacter当前没有beers,则它的地址丢失了。
表示为实体集需要至少满足以下两个条件之一。
1.至少有一个非key的属性。即它不仅仅是某个名字而已。
2.处于多对多或者多对一关系中多的一方。
beers,处于多对一关系的多的一方,manfs有非key属性address.
如果manfs仅仅有name属性那么不需要成为一个实体,作为beers的属性即可。