第九章——规范数据库设计
第九章——规范数据库设计
9.1 为什么需要设计数据库?
糟糕的数据库
- 数据冗余,浪费空间
- 数据库的插入和删除都会麻烦、异常【屏蔽使用物理外键】
- 程序性能差
良好的数据库
- 节省内存空间
- 保证数据的完整性
- 方便我们开发
数据开发中你那个,关于数据库的设计需要:
- 分析需求:分析业务和需要处理的数据库需求
- 概要设计:设计关系图E-R图
设计数据库的步骤(以个人博客为例):
- 收集信息,分析需求
- 用户表(用户登录注销、用户个人信息、写博客、创建分类)
- 分类表(文章分类,是由谁创建的)
- 文章表(文章的信息)
- 评论表
- 友情链接表(友链信息)
- 自定义表(系统信息,某个关键的字,或者一些主题)
- 说说表(发表心情)
- 标识实体(把需求落地到每个字段)
- 标识实体之间的关系
- 写博客:user--->blog
- 创建分类:user--->category
- 关注:user--->user
- 友链:links
- 评论:user--->user--->blog
9.2 三大范式
为什么需要数据规范化?
- 信息重复
- 更新异常
- 插入异常
- 无法正常显示信息
- 删除异常
- 丢失有效信息
三大范式
第一范式(1NF)
要求数据库的表的每一列都是不可分割的原子数据项
原子性:保证每一列不可再分
第二范式(2NF)
前提是满足第一范式,非主属性必须完全依赖于候选码(在1NF的基础上消除非主属性对主码的部分函数依赖)
每张表只描述一件事情
第三范式(3NF)
前提是满足第一范式和第二范式,任何非主属性不依赖于其他主属性(在2NF的基础上消除传递依赖),第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
第三范式需要确保表中的每一列数据都与主键直接相关,而不能间接相关。
参考链接:三大范式 - 云梦曦 - 博客园
第九章——规范数据库设计相关推荐
- MySQL二十八规范数据库设计
MySQL二十八:规范数据库设计 糟糕的数据库设计: ●数据冗余,浪费空间 ●数据库插入和删除都会麻烦.异常[ 屏蔽使用物理外键] ●程序的性能差 良好的数据库设计: ●节省内存空间 ●保证数据库的完 ...
- MySQL:规范数据库设计
文章目录 十.规范数据库设计 10.1 为什么需要设计 10.1.1 糟糕的数据库设计 10.1.2 良好的数据库设计 10.2 软件开发中,关于数据库的设计 10.3 设计数据库的步骤:(个人博客) ...
- 权限管理和备份;规范数据库设计
8.权限管理和备份 8.1.用户管理 SQL yog:可视化管理 **SQL命令操作 ** 用户表:mysql.user 本质:对这张表进行增删改查 用户的权限管理 -- ============== ...
- MySQL数据库 第4章:数据库设计
MySQL数据库 第4章:数据库设计 4.1 数据库设计概述 4.2 数据库设计范式 4.3 数据建模工具 4.4 数据库设计-电子商务网站 4.4.1 需求分析 4.4.2 准备工作 4.4.3 商 ...
- 第63天学习打卡(MySQL 测试索引 索引原则 数据管理和备份 规范数据库设计)
7.2测试索引 CREATE TABLE `app_user` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(5 ...
- iHRM 人力资源管理系统_第2章、数据库设计与前端框架
文章目录 第2章.数据库设计与前端框架 1.多租户SaaS平台的数据库方案 <1>.多租户概述 <2>.需求分析 <3>.多租户的数据库方案分析 (1).独立数据库 ...
- 关系型数据库第五章笔记---数据库设计
文章目录 数据库设计概述 数据库设计 数据库设计的特点 1. 数据库建设的基本规律 2. 结构(数据)设计和行为(处理)设计相结合 数据库设计方法 数据库设计的基本步骤 需求分析 需求分析的任务(续) ...
- 【数据库原理及应用】经典题库附答案(14章全)——第九章:数据库安全性
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 09——规范数据库设计
当数据库比较复杂的时候,我们就需要详细的设计数据库 9.1 规范设计数据库的原因 糟糕的数据库设计: 数据冗余,浪费空间 数据库插入和删除都会麻烦,异常[屏蔽使用物理外键] 程序的性能差 良好的数据库 ...
最新文章
- byte数组添加数据_数据类型
- cheatengine找不到数值_找商网:百度爱采购与其他B2B平台有何不同,为何能够后来居上?...
- python多久更新一次_Python Tkinter,每秒钟更新一次
- [CF1066C]Books Queries
- Scala入门到精通——第二十四节 高级类型 (三)
- ARM产品系列对应架构图
- Struts1.2 Hibernate Spring框架组合(二)
- DXUT框架剖析(3)
- [面试] C/C++ 语法(六)—— RTTI(运行时类型信息)
- 前端实践(4)——表单验证(密码重复输入检查)
- 比较好用的mysql可视化工具-----pycharm连接mysql图文教程
- python爬虫淘宝评论图片_简单的抓取淘宝图片的Python爬虫
- HTML5期末大作业:我的家乡网站设计——我的家乡-绿城之都-南宁(9页) HTML+CSS+JavaScript 大学生简单个人静态HTML网页设计作品
- 浅谈测试工程师必备软技能:沟通表达篇
- 【Pyecharts50例】GEO使用外国地图/使用美国地图
- MFC窗体的扩展样式和其值
- 【系统测试报告】苏科大App系统测试报告
- Smartforms 总计小计
- iOS开发证书/发布证书不受信任
- 分发服务器性能,高性能P2P流媒体内容分发服务器的设计与实现
热门文章
- scdl matlab,5自由度移动机器人的建模与仿真-硕士论文
- 五路循迹传感器的优点_对于安装五路循迹传感器的机器人来说,如果五个传感器都遇到黑线,说明机器人的状态是()。...
- 【网络空间安全数学基础第8章】环和域
- 3D 打印没那么玄乎
- 公众号创建菜单报错40001及菜单出现在先前公众号上的问题
- 深入浅出Zookeeper集群搭建
- python进行谱曲_使用LSTM-GAN为歌词谱曲
- iOS城市选择器-包含搜索功能
- ps 图片文字改黑白
- 查询Microsoft Visual C++ Debug Library窗体并自动点击忽略按钮的小工具代码