数据库设计小结

数据库设计

根据业务系统的具体需求,结合所选用的DBMS,为该业务系统构造出最优的数据存储模型,并建立号数据库中表结构以及表与表之间的关联关系的过程。

需求分析

为什么
  • 了解系统中所要储存的数据
  • 了解数据的储存特点
  • 了解数据的生命周期
怎么样
  • 实体所包含的属性
  • 实体的唯一标识的属性或属性组合 - 实体的储存特点
  • 实体与实体的关系

逻辑设计

ER图

关系、元组、属性、候选码、主码、域、分量

第一范式

定义:数据库表中的所有字段都是单一属性,不可再分,由基本的数据类型组成

第二范式

定义:数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖,即单关键字段的表

部分函数依赖师指存在着组合关键字中的某一关键字决定非关键字的情况

如:(商品名称)-〉(价格,描述,重量,商品有效期)(供应商名称)-〉(供应商电话)

第三范式

定义:如果数据表中不存在非关键字段对任意候选关键字段的传递函数依赖

传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。

如:在关系R(学号 ,宿舍, 费用)中,(学号)->(宿舍),宿舍!=学号,(宿舍)->(费用),费用!=宿舍,所以符合传递函数的要求;

BC范式

定义:数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖,也就是说如果存在符合关键字,则复合关键字之间也不能存在函数依赖关系

数据库操作异常及数据冗余
  • 插入异常
  • 更新异常
  • 删除异常
  • 数据冗余

物理设计

选择合适的DBMS

选择合适的DBMS

定义数据库、表及字段的命名规范
根据所选的DBMS选择合适的字段类型
  1. 当一个列可以选择多种数据类型时,应该优先考虑数字类型,其次时日期或二进制类型,最后时字符类型。对于相同级别的数据类型,应该优先选择占用空间小的数据类型。

定义数据库、表及字段的命名规范
注意:
- 字符处理比数字处理慢
- 在数据库中,数据处理以页作为单位,列的长度越长,利于性能提高

  1. char与varchar如何选择

    • 如果存储的数据长度差不多一致的,应该考虑用char;
    • 如果最大数据长度小于50Byte,应该用char
  2. decimal与float如何选择

    • decimal储存精确数据,float只能储存非精确数据
  3. 时间类型如何储存

    • timestamp比较少用,date比较常用
反范式化

定义:为了性能和读取效率的考虑而适当的对第三范式的要求进行违反,而允许存在少量的数据冗余
注意事项:
- 主键:
- 外键:高并发的系统尽量少使用外键约束
- 触发器:尽量减少触发器
- 预留字段:严禁使用预留字段

维护优化

维护数据词典
维护索引
维护表结构
在适当的时候对表进行水平拆分或垂直拆分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值