数据库设计与三大范式_第1页
数据库设计与三大范式_第2页
数据库设计与三大范式_第3页
数据库设计与三大范式_第4页
数据库设计与三大范式_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

20XX/XX/XX数据库设计与三大范式汇报人:XXXCONTENTS目录01

课程导入02

数据库设计基础认知03

数据库设计完整流程04

三大范式核心概念讲解CONTENTS目录05

三大范式实际应用案例06

常见误区与问题解答07

课程总结与作业布置课程导入01为什么要学数据库设计

提升数据存储效率合理的数据库设计能减少冗余数据,像淘宝通过优化数据库存储,大幅提升了用户数据的读取速度。

保障数据一致性规范的设计可避免数据冲突,如银行系统依赖严谨的数据库设计,确保账户收支数据准确无误。

降低系统维护成本科学的数据库结构便于后期修改维护,比如企业ERP系统,良好设计能减少运维的人力投入。本次课程学习目标掌握三大范式核心定义与判定标准清晰理解第一、第二、第三范式的规则,能快速判定现有数据库表是否符合范式要求。熟练运用范式优化数据库表结构学会将冗余度高的表结构,按照三大范式拆解为规范表,例如优化电商订单信息表。构建符合范式的实用数据库模型结合企业进销存场景,独立设计出满足三大范式要求的基础数据库模型。数据库设计基础认知02保障数据存储的准确性通过规范字段定义与约束设置,避免像电商订单系统中出现重复收货地址这类数据错误。提升数据访问的高效性合理设计表结构与索引,比如银行账户查询系统,能大幅缩短数据检索的响应时间。实现数据的可扩展性预留灵活的字段与表关联空间,满足社交平台新增用户标签这类业务拓展需求。数据库设计的核心目标不良设计的常见问题

数据冗余过度如用户信息表重复存储地址、联系方式等数据,不仅浪费存储空间,还易引发数据不一致问题。

插入异常频发若订单表绑定客户信息,新增无订单的客户时,会因订单字段为空无法正常插入数据。

更新异常难控当客户手机号变更时,需修改其所有关联订单中的手机号,易出现漏改导致数据错乱。数据库设计完整流程03需求分析阶段

业务场景调研深入走访零售企业、金融机构等客户,梳理核心业务流程与数据流转逻辑,明确业务诉求。

用户需求采集通过问卷调查、访谈等形式,收集如电商平台用户信息管理、订单追踪等具体功能需求。

数据需求梳理整理业务所需的各类数据,像银行客户的账户信息、交易记录等,明确数据的来源与用途。绘制E-R概念模型图通过梳理业务实体、属性及关联关系,绘制E-R图,比如电商系统中用户、商品、订单的关联建模。验证概念模型合理性邀请业务人员与技术人员共同评审,比如检查教务系统中学生与课程的关联是否符合实际业务逻辑。优化概念模型结构合并冗余实体、简化复杂关联,例如将客户系统中重复的“联系人”实体进行整合优化。概念结构设计阶段逻辑结构设计阶段概念模型转换为关系模型将E-R图等概念模型转化为关系模式,比如电商系统中把用户、商品等实体转为对应的数据表。数据规范化处理依据三大范式优化关系模式,像拆分包含多个属性的订单表,消除数据冗余与更新异常。关系模式优化调整结合业务需求调整关系模型,例如为高频查询的用户表建立索引,提升数据访问效率。物理设计与优化存储结构选型设计根据业务数据特性,选择合适的存储结构,如MySQL的InnoDB引擎适配事务型场景,MyISAM适配读密集场景。索引策略制定优化针对高频查询字段创建B+树索引,如电商订单表的用户ID字段,同时避免冗余索引降低写入性能。分区表与分库分表规划对于超大规模数据,采用分区表或分库分表,如阿里云DRDS拆分用户表,提升数据读写效率。三大范式核心概念讲解04字段值的不可拆分性第一范式要求每个字段值都是不可拆分的原子数据,比如用户地址字段需拆分省、市、区,避免混合存储。避免多值字段存储禁止在单个字段中存储多个值,如"兴趣爱好"字段不能同时存"读书,运动",需拆分为独立记录。单一属性的独立存储每个字段仅对应单一属性,例如用户表中"姓名"字段不能同时存储姓氏和名字两个属性。第一范式:原子性要求第二范式:消除部分依赖部分依赖的定义与判定

部分依赖指非主属性仅依赖主键的一部分,如订单表中,商品名称仅依赖订单明细ID而非整个订单主键。消除部分依赖的常见方法

可通过拆分数据表实现,如将订单表拆分为订单主表和订单明细表,分别存储不同维度数据。符合第二范式的案例展示

以电商平台订单系统为例,拆分后的订单主表存订单号、用户ID,明细表存订单明细ID、商品ID,消除部分依赖。第三范式:消除传递依赖明确传递依赖判定标准需识别非主键字段间的依赖关系,如订单表中“客户地址”依赖“客户ID”,而非直接依赖“订单ID”。传递依赖消除实操方法可拆分原表为多张关联表,如将订单表拆分为订单表和客户表,各自存储对应独立信息。第三范式的应用价值体现以电商平台订单系统为例,消除传递依赖后,修改客户地址仅需操作客户表,大幅降低数据冗余。三大范式实际应用案例05第一范式:拆分冗余字段将包含多门选修课程的字段拆分为独立字段,如将“选修课程”拆分为“课程1”“课程2”等,确保原子性。第二范式:消除部分依赖把“学生姓名”“班级”等依赖于学号的字段,与仅依赖课程号的“课程名称”“学分”拆分至不同表。第三范式:传递依赖拆解将依赖于班级的“班主任姓名”“教室位置”单独建表,避免通过班级号间接关联产生的数据冗余。学生信息表设计案例订单系统设计案例

第一范式:拆分订单信息字段将包含多商品名称的字段拆分为独立字段,像淘宝订单会单独列出每件商品的名称、规格等信息。

第二范式:分离订单与商品关联数据把订单编号、用户信息单独存储,商品信息存入商品表,避免京东订单表出现大量重复商品数据。

第三范式:拆分冗余的用户附属信息将订单中用户的地址、联系方式拆分到用户信息表,避免拼多多订单表重复存储相同用户地址。范式过度设计的问题

数据查询效率大幅降低过度拆分数据表会增加多表关联查询次数,如某电商平台因过度范式化,订单查询耗时增长30%。

数据维护成本显著提升拆分过细的表需频繁更新关联数据,某金融系统因过度范式设计,每月数据维护时长增加40小时。

业务逻辑复杂度陡增过度遵循范式会使业务逻辑需跨多张表实现,某CRM系统因该问题,新功能开发周期延长25%。反范式的适用场景

高并发查询的电商交易系统如淘宝订单系统,通过冗余订单关联的商品名称,避免多表联查,提升大流量下的查询速度。

数据实时分析的金融风控平台像支付宝风控系统,冗余用户历史交易数据至风控表,减少联查次数,保障实时分析效率。

离线统计报表的物流管理系统例如顺丰统计报表模块,冗余各网点揽收数据,无需频繁联查,加快报表生成速度。常见误区与问题解答06必须严格遵循三大范式吗

三大范式的灵活调整场景部分OLAP场景需反范式设计,如数据仓库为提升查询效率,会适当增加冗余字段。

业务优先的范式取舍原则电商订单表为简化关联查询,会将部分用户信息冗余存储,无需死守范式。

过度遵循范式的负面影响过度拆分表会增加关联查询复杂度,像小型企业客户管理系统易因多表关联拖慢速度。不满足范式的常见情况

冗余数据大量存在例如电商用户表重复存储收货地址,不仅占用存储空间,还易因修改不一致引发数据错误。

非主属性部分依赖主码如订单表用“订单号+商品ID”做主码,却将订单日期仅依赖订单号,违背第二范式要求。

非主属性传递依赖主码如员工表中,主码是员工ID,部门名称依赖部门ID,而部门ID依赖员工ID,违背第三范式。课程总结与作业布置07第一范式核心要求解析第一范式要求每个属性不可再分,如学生表中不能将“姓名+学号”合并为一个字段存储。第二范式依赖关系梳理第二范式需消除非主属性对主键的部分依赖,例如选课表需拆分出独立的学生表和课程表。第三范式传递依赖规避第三范式要消除非主属性对主键的传递依赖,比如员工表不能通过部门编号间接关联部门地址。核心知识点梳理课后实践作业要求

01独立

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论