Java-数据库编程(1.数据库三大范式设计)

1. 数据库三大范式设计

1. 设计数据库步骤
	无论数据库大小复杂程度建议通过下列分析步骤:
		1. 收集信息;
		2. 标识实体;
		3. 标识每个实体需要存储的详细信息;
		4. 标识实体之间的关系;
	
2. 关系型数据库
	1. 优势:关联数据库中的各个项目相关信息
	2. 以酒店为例: 客房与客人有主从关系;

3. 概要设计绘制E-R(Entity-Relationship/实体-关系)
	1.E-R图三大部分:
		1. 实体: 现实世界人或物
		2. 属性: 实体的特征
		3. 联系: 多个实体之间的关联关系
	2. 映射基数: 
		1. 一对一
		2. 一对多
		3. 多对一
		4. 多对多
	3. 实体关系图: 
		1. 矩形: 实体集
		2. 椭圆形: 属性
		3. 棱形: 联系集

4. 关系数据库模式
	1. 实体之间的联系分成: 
		1. 一对一
		2. 一对多
		3. 多对多

	2. 酒店为例就是以一对多的关系,转换后的结果如下:
		1. 房客(房客号(主属性)/房客描述/房客类型/房客状态/床位数/入住人数/价格);
		2. 客人(客人编号(主属性)/客人姓名/身份证/入住日期/结账日期/押金/总金额/客房号(外键));
		Tips: 在表中作为主键,属性为外键;

5. 数据库三大范式: 
	1. 为何存在范式?
		1. 信息重复
		2. 更新异常
		3. 插入异常(无法表示某些信息)
		4. 删除异常(丢失有用的信息)

	2.三大范式如下: 
   		1. 第一范式: 确保每列原子性
		2. 第二范式: 每列都要与主键相关(要有主键)
		3. 第三范式: 列渔猎之间不存在相互依赖关系
	   		1. 如果A--BB--C 可以得出A-->C 这就形成了传递依赖;
	
	3. 生产环境是否一定要遵守三大范式?
		1. 具体要看业务需求不一定要按照三大范式这样会增加性能负担
		2. 阿里/京东开发规约:
			1. [强制] 超过三个表进制jion,需要jion字段,数据类型必须一致;
			2. 多表关联查询时,保证关联字段需要有索引;
			Tips:即使双表jion也要注意表索引,SQL性能

6. 总结: 
	1. 为满足三大范式的话数据操作会收到相应的影响,所以在实际开发中:既要考虑三大范式也要避免数据冗余和各种数据操作异常。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值