课程名称:数据库设计那些事
课程章节:需求分析
讲师:sqlercn
https://www.imooc.com/video/1903
课程内容:
1。数据库设计简介
建立数据库应用系统的设计看作检大厦的过程。大厦建立之前,要先设计、绘制图纸、按照图纸建设大厦。数据库相当于我们大厦的地基。
(1)什么是数据库设计?
就是根据业务系统的具体要求,结合我们所选用的数据库管理系统,为这个业务系统构造出最优的数据存储模型,并建立好数据库中的表结构及表与表之间的关联关系的过程。使之能有效的对应用系统中的数据进行存储,并可以高效地对已经存储的数据进行访问。
(2)常见的数据库管理系统:MYSQL、ORACLE、SQLSERVER、PGSQL,还用目前一种NOSQL系统:mongo、memcache、redis
(3)为什么要进行数据库设计?
数据库系统是应用系统存储数据的关键组成部分,是系统稳定运行的基础,决定着系统是否可以高效地运行。
优良的设计:减少数据冗余,避免数据维护异常,节约空间,高效访问。
糟糕的设计:存在大量的数据冗余,存在数据插入、更新、删除异常,浪费大量存储空间,访问数据低效。
2数据库设计的步骤:
A、需求分析(数据分析)
B、逻辑设计(ER图)
C、物理设计(数据库特点转换)
D、维护优化(需求建表、索引优化,大表拆分)
论需求分析的重要性:不懂得需求分析的孩子不是好孩子。
1,对一个数据库设计前,我们要了解我们数据库要存入哪些数据,
这些数据有哪些特征(重要程度? 时效性? )然后对症下药,时效性不同->可以定时归档,清理。
重要程度或扩展程度不同可以->分库分表……
2,了解数据之间的联系,1对1,1对多还是多对多,从而建立的数据表可以是独立的,可以是关联性质的。
3,如果是日志文件,我们打算存入数据库。就要想到这种数据增长性很大,
如果只存不清理会造成数据库使用量的大幅度增长,是不好的。我们要定期进行归档,清除操作。
课程收获:
数据库设计就是建库、建表,建库是比较容易的,建表是相对复杂的,关系型数据,
表结构就是根本,所以这一步最为关键也最为复杂,建表不好的地方在于,
建立表之间的关系是复杂的,建立表之间的关系的复杂体现在实现表与表之间联系的字段的选择上。
这一步如果搞定之后,下面就是每个表中的字段类型、长度、约束的建立,这些东西,关系到程序是否好写,
存储是否方便,查询是否高效。