数据库的设计

一、数据库设计简介

  1. 什么是数据库设计:将数据库中实体及实体关系进行规划和结构化的过程
  2. 为什么要数据库设计?
  •                  做一个茅草屋无需设计
    
  •  				盖一栋高楼大厦要花大加钱设计
    
  •  				数据库终究由程序来读取和操作
    
  •  				如果设计的不好,会导致数据冗余、修改复杂、读取效率底下等问题
    
  1. 数据库设计的步骤:
  •                 需要分析阶段:了解客户需求
    
  •  				i、收集信息
    
  •  				ii、标识实体
    
  •  				iii、标识每个实体需要存储的信息(属性)
    
  •  				iiii、标识实体之间的关系
    
  •  				概要设计阶段:绘制数据库E-R图
    
  •  				详细设计阶段:将E-R图转换为数据库中的表,进行逻辑设计,审核三大范式
    

二、绘制E-R图(概要设计阶段)

  1. 数据库设计需要图形化的东西
  2. E-R图:entity-relationship(实体-关系)
  3. 图形规则:
  •           实体:矩形        名词
    
  •   		  属性:椭圆        名词
    
  •   		  关系:菱形        动词
    
  1. 映射基数(关系)
  •              一对一(人和身份证)        1:1
    
  •   		   一对多(人和银行卡)        1:n
    
  •   		   多对一                             n:1
    
  •   		   多对多(试卷和试题)         n:n
    
  1. 绘制E-R图的工具
  •           word
    
  •           Retional  Rose
    
  •   		Visio
    
  •   		PowerDesigner
    

数据库设计三大范式

  1. 第一范式:列的原子性,即每列细分的不能再分了
  •              姓名列和地址列,考虑是否可以再分
    
  1. 第二范式:表的原子性(一张表描述一件事),即每列和表的主键是相关的
  •             用户表:用户名、密码、年龄、生日、头像,可以分为账户表和个人信息表
    
  1. 第三范式:表的每列和主键都是直接相关而不是间接关联
  •             用户信息表里的工资,可以放在工资表里会更规范
    
  1. 规范化和性能的关系
  •          三个范式都是层层递进的关系
    
  •   		 实际开发中不一定每一个表的设计都要达到第三范式
    
  •   		 有时候为了提升查询性能和执行效率,会舍弃规范性
    
  •   		 i、商品表:单价、数量、总金额
    
  •   	     规范化和性能在实际生产中需要权衡
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值