当数据库比较复杂的时候,我们就需要详细的设计数据库

9.1 规范设计数据库的原因

糟糕的数据库设计:

  • 数据冗余,浪费空间
  • 数据库插入和删除都会麻烦,异常【屏蔽使用物理外键】
  • 程序的性能差

良好的数据库设计:

  • 节省内存空间
  • 保证数据库的完整性
  • 方便我们开发系统

软件开发中,关于数据库的设计

  • 分析需求:分析业务和需要处理的数据库的需求
  • 概要设计:设计关系图 E-R图

9.2 设计数据库的步骤(个人博客)

  • 收集信息,分析需求

    • 用户表(用户登录注销,用户的个人信息,写博客,创建分类)
    • 分类表(文章分类,谁创建的)
    • 文章表(文章的信息)
    • 友链表(友链信息)
    • 自定义表(系统信息,某个关键的字,或者某些主字段)
    • 说说表(发表心情…id ,content ,time)
  • 标识实体(把需求落地到每个字段)
  • 标识实体之间的关系
    • 写博客 user–>blog
    • 创建分类 user–>category
    • 关注 user–>user
    • 友链–>links
    • 评论 user–>user

9.3 三大范式

为什么需要数据规范化?

  • 信息重复
  • 更新异常
  • 插入异常
  • 删除异常
    • 无法正常显示异常
  • 删除异常
    • 丢失有效的信息

三大范式

第一范式(1NF)

原子性:保证每一列不可再分

第二范式(2NF)

前提:满足第一范式

每张表只描述一件事情

第三范式(3NF)

前提:满足第一范式和第二范式

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

(规范数据库的设计)

规范性和性能的问题

关联查询的表,不得超过三张表

  • 考虑商业化的需求和目标(成本和用户体验) 数据库的性能更加重要
  • 再规范性能的问题的时候,需要适当的考虑一下,规范性
  • 故意给某些表加一些冗余的字段(从多表,变成单表)
  • 故意增加一些计算列(从大数据量降低为小数据量的查询:索引)

09——规范数据库设计相关推荐

  1. MySQL二十八规范数据库设计

    MySQL二十八:规范数据库设计 糟糕的数据库设计: ●数据冗余,浪费空间 ●数据库插入和删除都会麻烦.异常[ 屏蔽使用物理外键] ●程序的性能差 良好的数据库设计: ●节省内存空间 ●保证数据库的完 ...

  2. MySQL:规范数据库设计

    文章目录 十.规范数据库设计 10.1 为什么需要设计 10.1.1 糟糕的数据库设计 10.1.2 良好的数据库设计 10.2 软件开发中,关于数据库的设计 10.3 设计数据库的步骤:(个人博客) ...

  3. 第九章——规范数据库设计

    第九章--规范数据库设计 9.1 为什么需要设计数据库? 糟糕的数据库 数据冗余,浪费空间 数据库的插入和删除都会麻烦.异常[屏蔽使用物理外键] 程序性能差 良好的数据库 节省内存空间 保证数据的完整 ...

  4. 权限管理和备份;规范数据库设计

    8.权限管理和备份 8.1.用户管理 SQL yog:可视化管理 **SQL命令操作 ** 用户表:mysql.user 本质:对这张表进行增删改查 用户的权限管理 -- ============== ...

  5. 第63天学习打卡(MySQL 测试索引 索引原则 数据管理和备份 规范数据库设计)

    7.2测试索引 CREATE TABLE `app_user` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(5 ...

  6. 数据库设计方法与规范 数据库设计过程

    数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求. 数据库设计中需求分析阶段综合各个用 ...

  7. 运用范式的规范数据库设计的好处

    ①要设计合适的关系模式,使其逻辑结构更加符合要求,出现了规范化理论.而三大范式即第一.第二和第三范式就是规范化理论重要部分. ② 范式是为了在设计中更好的解决数据冗余,数据有效性检查,提高存储效率. ...

  8. MySQL 规范数据库设计

    为什么需要设计数据库 当数据库很复杂时,需要设计 糟糕的数据库设计 数据冗余,浪费空间 插入和删除很麻烦(屏蔽物理外键) 程序性能差 良好的数据库设计 数据紧凑,节省空间 保证数据的完整性 方便开发系 ...

  9. 数据库设计原则与开发规范,你知道多少?

    VOL 187 21 2020-12 今天距2021年11天 这是ITester软件测试小栈第187次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周早上 08:30准 ...

最新文章

  1. Educational Codeforces Round 56 Editorial
  2. mybatis一级缓存二级缓存
  3. 排序函数(sort()、sorted()、argsort()函数)
  4. 扩散(信息学奥赛一本通-T1437)
  5. listview的简单实现
  6. 理解Docker(1):Docker 安装和基础用法
  7. python ip,python-IPy模块
  8. pip和pip3 换源
  9. 【备注】【C14】《HeadFirstJava(中文版)(第2版)》 PDF 下载
  10. 三星 android 调试模式设置,三星 W2016 开启USB调试模式
  11. 电视剧房前屋后剧情介绍第1-47集
  12. pytorch学习(二)梯度:什么叫梯度?什么叫梯度下降
  13. 睿智的目标检测——YoloV7-Tiny-OBB旋转目标检测算法部署
  14. 二叉树的创建——递归与非递归
  15. tkinter标签Lable组件的详细讲解
  16. python求列表的中位数_python中获取中位数的两种方法
  17. 面试攻略java提问
  18. 高校版MATLAB license checkout failed问题及解决
  19. OpenLayers 调用 Tomcat 发布的栅格切片服务
  20. spring boot 使用 javax.mail发送邮件常见错误Authentication failed、Mail server connection failed

热门文章

  1. 《精英日课》第三季_2019年四月新书《九个工作谎言》_1工作是具体的,公司是虚拟的
  2. 怎么把SEO和SEM配合起来
  3. http_认证机制https加密TLSSSL密钥对(公钥私钥)
  4. 使用docker创建属于你的ChatGPT
  5. Java Grammar(二):运算符
  6. PHP多进程 - opcode缓存与用户缓存(APC, XCache, eAcclerator,Zend Opcache,Yac)
  7. 阿里云和腾讯云服务器10M带宽能支持多少人在线?
  8. 如何将excel表格转化为QQ在线多人同时编辑表格
  9. API 接口监控产品全新改版,免费开放全部功能
  10. html表格转excel有科学计数法,table2excel生成excel表格出现科学计数法问题