37.数据库的设计

一、了解设计数据库的步骤
1.需求分析阶段:了解客户的想法,对整个项目的功能进行分析,
①收集信息
2.概要设计阶段:对需求进行设计,绘制E-R图。和客户进行沟通需求的完整性和正确性,
①标识实体(数据库要管理的对象(抽象的表))
②标识实体属性(实体要具体储存的信息,(抽象到表的字段/列))
③标识实体之间的关系(抽象的外键)
④根据需求 你自己设计结果去绘制E-R图
矩形------:实体
椭圆------:实体属性
菱形-------:实体之间的关系
3.详细设计阶段:对上述木星进行详细的设计,应用三大规范进行规范化
4.代码编写的阶段;物理实现数据库
5.软件测试阶段:将客户的项目功能场景分别进行模拟测试
6.安装部署:数据库已经完整,则开始进行使用

7.数据库不是每一个公司都有的,一般小型的创业公司,在自己项目的前期经常拿着MongoDB数据库(最像关系型数据库的非关系型数据库)来进行数据库的前期使用

二、使用数据库E-R图
1.实体和实体之间的关系进行一下分类
一对多:
举例:①客房和客人,一间客房可以住多个客人,一个客人却只能住一间客房。(客房是一 客人是多的关系)
②班级和学生:一个班级可以有许多的学生,一个学生只能属于一个班级,(班级是一,学生是多)
2.多对多
学生和课程:一个学生可以有多个课程,一个课程也可以属于多个学生。
商品和订单:一个商品可以属于多个订单,一个订单可以有多个商品,
往往是把一个多对多拆分成俩个或者多个一对多

学生实体                                 课程实体
1	   小明                                  1        java
2      小王                                   2      C语言 
3      小韩                                  3        大数据 
						(中间表)学生_课程表
						1				1
						1				2	
						1				3
						2				1	
						2				2
						2				3	
						3				1
						3				2
						3				3

一对一:不常见,例如一个人有一个身份证号
(常常我们将身份证号归类为人的一个属性的信息,所以将它们出现的信息出现在一张表内)

三、绘制E-R图
可以上网下载一下visio,然后自己进行操作化流程图,设计数据库的模型图
四、使用三大范式实现数据设计规范化
1.第一范式:保证数据表的每一列都是最小的单元,不可分割(俗称原子单元)
2.第二范式(应用比较广泛)每张表应该只做一件事情(就是只描述一个实体)
3.第三范式:不允许出现依赖传递(一个表中列一依赖于列二 列二又依赖于列三)

五、数据库的规范和数据库性能之间的关系
数据库的性能和数据库的规范应该取他们的平衡点
1.在一定的情况下,我们可能会对一张表添加一些冗余的数据,为了降低查询的复杂度和降低查询的效率(例如:一个简单的数据需要查询许多张表才能进行查到,效率比较低)
2.在一定的情况下,我们可能会对一张表添加一些用于计算机储存计算列的值,为了降低查询和计算难度。(例如每次要查询许多张表来进行计算的场景)

猜你喜欢

转载自blog.csdn.net/weixin_44614066/article/details/88899101