09——规范数据库设计
当数据库比较复杂的时候,我们就需要详细的设计数据库
9.1 规范设计数据库的原因
糟糕的数据库设计:
- 数据冗余,浪费空间
- 数据库插入和删除都会麻烦,异常【屏蔽使用物理外键】
- 程序的性能差
良好的数据库设计:
- 节省内存空间
- 保证数据库的完整性
- 方便我们开发系统
软件开发中,关于数据库的设计
- 分析需求:分析业务和需要处理的数据库的需求
- 概要设计:设计关系图 E-R图
9.2 设计数据库的步骤(个人博客)
- 收集信息,分析需求
- 用户表(用户登录注销,用户的个人信息,写博客,创建分类)
- 分类表(文章分类,谁创建的)
- 文章表(文章的信息)
- 友链表(友链信息)
- 自定义表(系统信息,某个关键的字,或者某些主字段)
- 说说表(发表心情…id ,content ,time)
- 标识实体(把需求落地到每个字段)
- 标识实体之间的关系
- 写博客 user–>blog
- 创建分类 user–>category
- 关注 user–>user
- 友链–>links
- 评论 user–>user
9.3 三大范式
为什么需要数据规范化?
- 信息重复
- 更新异常
- 插入异常
- 删除异常
- 无法正常显示异常
- 删除异常
- 丢失有效的信息
三大范式
第一范式(1NF)
原子性:保证每一列不可再分
第二范式(2NF)
前提:满足第一范式
每张表只描述一件事情
第三范式(3NF)
前提:满足第一范式和第二范式
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
(规范数据库的设计)
规范性和性能的问题
关联查询的表,不得超过三张表
- 考虑商业化的需求和目标(成本和用户体验) 数据库的性能更加重要
- 再规范性能的问题的时候,需要适当的考虑一下,规范性
- 故意给某些表加一些冗余的字段(从多表,变成单表)
- 故意增加一些计算列(从大数据量降低为小数据量的查询:索引)
09——规范数据库设计相关推荐
- MySQL二十八规范数据库设计
MySQL二十八:规范数据库设计 糟糕的数据库设计: ●数据冗余,浪费空间 ●数据库插入和删除都会麻烦.异常[ 屏蔽使用物理外键] ●程序的性能差 良好的数据库设计: ●节省内存空间 ●保证数据库的完 ...
- MySQL:规范数据库设计
文章目录 十.规范数据库设计 10.1 为什么需要设计 10.1.1 糟糕的数据库设计 10.1.2 良好的数据库设计 10.2 软件开发中,关于数据库的设计 10.3 设计数据库的步骤:(个人博客) ...
- 第九章——规范数据库设计
第九章--规范数据库设计 9.1 为什么需要设计数据库? 糟糕的数据库 数据冗余,浪费空间 数据库的插入和删除都会麻烦.异常[屏蔽使用物理外键] 程序性能差 良好的数据库 节省内存空间 保证数据的完整 ...
- 权限管理和备份;规范数据库设计
8.权限管理和备份 8.1.用户管理 SQL yog:可视化管理 **SQL命令操作 ** 用户表:mysql.user 本质:对这张表进行增删改查 用户的权限管理 -- ============== ...
- 第63天学习打卡(MySQL 测试索引 索引原则 数据管理和备份 规范数据库设计)
7.2测试索引 CREATE TABLE `app_user` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(5 ...
- 数据库设计方法与规范 数据库设计过程
数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求. 数据库设计中需求分析阶段综合各个用 ...
- 运用范式的规范数据库设计的好处
①要设计合适的关系模式,使其逻辑结构更加符合要求,出现了规范化理论.而三大范式即第一.第二和第三范式就是规范化理论重要部分. ② 范式是为了在设计中更好的解决数据冗余,数据有效性检查,提高存储效率. ...
- MySQL 规范数据库设计
为什么需要设计数据库 当数据库很复杂时,需要设计 糟糕的数据库设计 数据冗余,浪费空间 插入和删除很麻烦(屏蔽物理外键) 程序性能差 良好的数据库设计 数据紧凑,节省空间 保证数据的完整性 方便开发系 ...
- 数据库设计原则与开发规范,你知道多少?
VOL 187 21 2020-12 今天距2021年11天 这是ITester软件测试小栈第187次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周早上 08:30准 ...
最新文章
- Educational Codeforces Round 56 Editorial
- mybatis一级缓存二级缓存
- 排序函数(sort()、sorted()、argsort()函数)
- 扩散(信息学奥赛一本通-T1437)
- listview的简单实现
- 理解Docker(1):Docker 安装和基础用法
- python ip,python-IPy模块
- pip和pip3 换源
- 【备注】【C14】《HeadFirstJava(中文版)(第2版)》 PDF 下载
- 三星 android 调试模式设置,三星 W2016 开启USB调试模式
- 电视剧房前屋后剧情介绍第1-47集
- pytorch学习(二)梯度:什么叫梯度?什么叫梯度下降
- 睿智的目标检测——YoloV7-Tiny-OBB旋转目标检测算法部署
- 二叉树的创建——递归与非递归
- tkinter标签Lable组件的详细讲解
- python求列表的中位数_python中获取中位数的两种方法
- 面试攻略java提问
- 高校版MATLAB license checkout failed问题及解决
- OpenLayers 调用 Tomcat 发布的栅格切片服务
- spring boot 使用 javax.mail发送邮件常见错误Authentication failed、Mail server connection failed
热门文章
- 《精英日课》第三季_2019年四月新书《九个工作谎言》_1工作是具体的,公司是虚拟的
- 怎么把SEO和SEM配合起来
- http_认证机制https加密TLSSSL密钥对(公钥私钥)
- 使用docker创建属于你的ChatGPT
- Java Grammar(二):运算符
- PHP多进程 - opcode缓存与用户缓存(APC, XCache, eAcclerator,Zend Opcache,Yac)
- 阿里云和腾讯云服务器10M带宽能支持多少人在线?
- 如何将excel表格转化为QQ在线多人同时编辑表格
- API 接口监控产品全新改版,免费开放全部功能
- html表格转excel有科学计数法,table2excel生成excel表格出现科学计数法问题