数据库基础知识

本文详细介绍了数据库设计的流程,包括需求分析中数据特点和实体分析,逻辑设计的ER图,以及设计范式(1NF,2NF,3NF,BCNF)的应用。还讨论了物理设计中的字段选择、反范式化及其优缺点,以及维护和优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

什么是数据库设计?
简单来说,数据库设计就是根据业务系统的具体需要,结合我们所选用的DBMS(数据库管理系统),为业务系统构造出最优的数据存储模型,建立好数据库中的表结构和表之间的关联关系的过程。使其可以对应用系统的数据进行存储,并可以高效的访问已存储的数据。
关系型数据库:MySQL、Oracle、PgSql、SQLServer
NoSQL: redis、MemCache、Mongo
为什么要进行数据库设计?
在这里插入图片描述
数据库设计的流程
需求分析在这里插入图片描述
逻辑设计:使用ER图对数据库进行逻辑建模
物理设计:根据数据库自身的特点把逻辑设计转为物理设计,即选用那种数据库系统。
维护优化:

  • 新的需求建表
  • 索引优化
  • 大表拆分

需求分析

数据特点分析:

  1. 了解系统中所要存储的数据
  2. 了解数据存储特点
  3. 了解数据生命周期

数据库实体分析:

  1. 实体与实体之间的关系(1对1,1对多,多对多)
  2. 实体所包含的属性有什么
  3. 那些属性或属性的组合可以唯一标识一个实体

逻辑设计

  • 将需求转化为数据库的逻辑模型
  • 通过ER图的形式对逻辑模型进行展示

ER图

基本概念
在这里插入图片描述
在这里插入图片描述
电商网站:用户模块、商品模块、订单模块、购物车模块、供应商模块
在这里插入图片描述

设计范式

设计范式概要

第一范式、第二范式、第三范式、BC范式
在这里插入图片描述

第一范式(1NF)

在这里插入图片描述

第二范式(2NF)

在这里插入图片描述
商品表优化
在这里插入图片描述

第三范式(3NF)

在这里插入图片描述
在这里插入图片描述
存在的问题:
(分类,分类描述)对于每一个商品都会进行记录,所以存在数据冗余(相同分类下,分类描述都会冗余)。同时存在数据插入、更新、删除异常。
数据插入异常:如果数据表中没有酒水饮料分类下的商品,那酒水饮料分类的信息在表中也不存在,分类依赖于商品名称而存在。
优化后的表:
在这里插入图片描述

BC范式(BCNF)

在这里插入图片描述
在这里插入图片描述

物理设计

物理设计要做什么
1.选择合适的数据库管理系统
2.定义数据库、表及字段的命名规范
3.根据所选的多DBMS系统选择合适的字段类型
4.反范式化设计(为了读写效率提升,可能会不满足范式要求)

字段类型选择原则

在这里插入图片描述

反范式化

反范式化就是为了性能和读取效率的考虑而适当的对第三范式的要求进行违反,而允许存在少量的数据冗余,换句话说就是空间换时间。
符合范式化的表设计
在这里插入图片描述
反范式化设计
在这里插入图片描述
反范式化优点
1.减少表的关联数量
2.增加数据的读取效率
3.反范式化要适度

维护和优化

1.维护数据字典
加备注COMMENT, 可通过SQL导出
在这里插入图片描述

2.维护索引
在这里插入图片描述

3.维护表结构
在这里插入图片描述

4.在适当时候对表进行水平拆分或垂直拆分

参考

https://www.imooc.com/video/1906

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值