数据库的设计关键点总结
一、设计数据库的步骤:
1、需求分析阶段:分析客户的业务和数据处理需求。
2、概要设计阶段:绘制数据库的E-R图,用于在团队内部设计、设计人员和客户之间进行沟通,确认需求信息的正确性和完整性。
3、详细设计阶段:将E-R图转换为多张表,进行逻辑分析,确认各表的主外键,并应用数据库设计的三大范式(下面会讲解)进行审核,经过项目组开会讨论确定后,还需要根据项目的技术实现,团队开发能力以及项目的成本进行核算,选择具体的数据库(如MySQL和Oracle)进行物理实现。
无论数据库的大小和复杂程度如何,在进行数据库的分析时,都可以参考下列的基本步骤
(1)收集信息
(2)标识实体
(3)标识每个实体需要存储的详细信息
(4)标识实体之间的关系
在绘制E-R图–映射基数
一对一:X中的一个实体最多于Y中的一个实体关联。
一对多:X中的一个实体可以与Y中的任意实体关联。
多对一:X中的一个实体最多与Y中的一个实体关联。
多对多:X中的一个实体可以与Y中的任意实体关联,Y中的一个实体可以与X中的任意实体关联。
二、规范设计之三大范式
第一范式:
确保数据库的表格每列的原子性,每一列不可再分割(或者每个属性值都是不可再分的最小数据单元),满足这个条件则符合第一范式。
第二范式:
在第一范式的基础上更进一步,其目标是确保表中的每列都有一个主键并且都和主键相关,除了主键外的其他列都全部依赖于该主键,符合这满足第二大范式。
第三范式:
在第二范式的基础上再进一步,确保每列都和主键列直接相关,而不是间接相关,一个表格,除了主键以外的其他列都只能依赖于主键列,列和列之间不存在互相依赖的关系,则满足第三大范式。
数据库的设计关键点总结相关推荐
- 数据库表设计3:微信、QQ第三方多账号登陆
前言:相比于本地注册,第三方登录一般来说比较方便快捷.因为显著降低了用户的注册或登录成本,从而减少由于本地注册的繁琐性而带来的隐形用户流失,最终提高注册转化率.现在几乎大部分的 App 都支持使用多个 ...
- 如何在数据库三范式的基础上进行数据库冗余设计
数据库设计过程中不仅要考虑遵循第三范式,还要考虑是否冗余 很多数据库设计书籍都强调数据库设计三范式,而三范式的一个重要工作就是消除冗余,可以消除冗余在大多数情况下是正确的.当在实际的业务模型中,处理复 ...
- 美多商城之商品(商品数据库表设计)
一.商品数据库表设计 1.1 SPU和SKU 在电商中对于商品,有两个重要的概念:SPU和SKU 1. SPU介绍 [即为商品的一个概述,一种商品的统称] SPU = Standard Pr ...
- Oracle数据库表设计时的注意事项
Oracle数据库表设计时的注意事项 表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据 ...
- 数据库的设计经验(经典)
1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对 ...
- 数据库类型少_全栈之数据库系列 - 数据库的设计、架构和使用规范
当我们要存储的数据比较少的时候,数据库设计的优势并不能发挥出来,但是当我们对数据的需求量越来越大时,对数据库的设计就很有必要性了!如果数据库的设计不当会造成数据冗余.修改复杂.操作数据异常等问题,而好 ...
- 数据库的设计(一些观点) _转
1.数据库的设计 尽量把数据库设计的更小的占磁盘空间. 1).尽可能使用更小的整数类型.(mediumint就比int更合适). 2).尽可能的定义字段为not null,除非这个字段需要null. ...
- 14个数据库的设计技巧 (来自Blogcn中我的窝)
1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对 ...
- mysql设计积分兑换表_积分系统数据库表设计.docx
积分系统数据库表设计 文件编号:JHDZ/SJ 密 级: 云上城积分功能数据库设计文档 项目名称:<云上城>项目代号:XXX版 本:V1.0编制单位:平台运营编制日期:2014-10-08 ...
最新文章
- 【青少年编程】全国青少年软件编程等级考试大纲与说明(Scratch)
- Hbase原理、基本概念、基本架构
- 为什么我们的web前端变的越来越复杂
- 使用css让页面变成黑白
- java getselectedrow_Java swing(2)自己设计完善的独特功能图书管理系统,获取下拉框等的文字内容等...
- 2.3.2 进程互斥的软件实现方法
- linux检测病毒工具,Linux下查杀病毒工具
- ArcGIS中生成蜂窝多边形算法解析
- 利用LDA主题模型的生成过程仿真数据
- Windows Internet Explorer 8 for Windows Vista 和 Windows Server 2008
- 神经网络-GoogleNet的发展,介绍,贡献
- 双系统在linux中修复引导文件,windows ubuntu双系统重装后修复grub引导
- 自己写代码解析工具的注意事项
- 信息学奥赛一本通1032
- 测试大纲法与 场景法
- SPSS软件数据中心化、标准化和归一化
- vue加d3js实现3d饼图
- 【Java入门基础第10天】Java常用的转义字符
- 树莓派python播放报警声(usb音响)
- OpenCV实战——基于GrabCut算法的图像分割
热门文章
- python3爬取教务系统的个人学期课程表(无头谷歌浏览模拟登录)
- 修复计算机用户名密码,win7恢复出厂设置后用户名密码是多少
- scp 使用用户名密码
- 超强悍抓包工具和万能视频下载工具
- 贪心 混合牛奶 Mixing Milk
- FPGA——输入原理图实现按键控制发光二极管的亮灭
- java long类型值不能为0_关于原始类型:Java:为什么不能将int转换为Long
- python快速排名seo代码_seo评价机制图(python快速排名seo)
- [CVPR 2020] D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features
- 摄像头水平视野垂直视野?_动物穿越:新视野的梦想更新