数据库的设计原则

1.三大范式

第一范式(确保每列保持原子性);
第二范式(确保表中的每列都和主键相关,避免低级冗余);
第三范式(第二范式的基础上,确保非主键之间不存在依赖关系,避免高级冗余和低级冗余)。

高级冗余:派生字段;低级冗余,别的表也有的字段。

 

 

2.OLTP(Transactional)还是 OPAP(Analytical)

OLTP关注数据的CRUD。
OLAP关注数据分析、报表、趋势预测。“插入” 和 “更新” 操作相对比较少。目的是更加快速地查询、分析数据。

3.不用绝对遵循“避免冗余”

如果对性能有迫切的需求,考虑一下打破常规。常规情况下你需要做多个表的连接操作,而在非常规的情况下这样的多表连接是会大大地降低性能的。

4.若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。这样,原来一个多对多的关系,现在变为两个一对多的关系。
eg:在“图书馆信息系统”中,“图书”和“读者”。一本书被多人借阅,一个借多本书。要在二者之间增加第三个实体,该实体取名为“借还书”,属性为:借还时间、借还标志(0表示借书,1表示还书),两个外键(“图书”的主键,“读者”的主键)。

5.主键与外键在多表中的重复出现,不属于数据冗余。非键字段的重复出现, 是一种低级冗余,即重复性的。高级冗余不是字段的重复出现,而是字段的派生出现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值