数据库设计心得

撰写人:赵春生、王思涵

一、数据库设计的重要性

数据库设计软件开发的过程中起着很大的作用,如若不进行数据库设计就进行开发,很可能会导致诸如设计与需求不符、性能低下、数据完整性丧失、可扩展性性差、非必要数据冗余量大、不利于计算或统计、没有详尽的数据记录信息、表之间的耦合性大、字段设计考虑不周等问题。数据库设计在整个软件开发的起到的举足轻重的作用,它与需求设计是相辅相成的,软件设计的整个过程环环相扣,后一过程是建立在前一过程正确的前提基础之上的。如果在数据库设计阶段发现纰漏,可以进行需求修改,如果到了实际开发阶段发现这个错误,那么我们就要把从把整个设计全部遍历才能在进行错误的修改,越到后面发现设计上的问题,所付出的代价越大,修改的难度也越大。

二、数据库设计的原则

1、数据库设计最起码要占用整个项目开发的40%以上的时间

2、数据库设计不仅仅停留于页面demo的表面

3、数据库设计完成后,项目80%的设计开发在脑海中就已经完成了

4、数据库设计时就要考虑到效率和优化问题

5、添加必要的(冗余)字段

6、设计合理的表关联

7、设计表时不加主外键等约束性关联,系统编码阶段完成后再添加约束性关联

8、选择合适的主键生成策略

三、需求分析

对于每个项目,数据库的设计都是很重要的。设计数据库需要考虑各方面的因素,比如数据是否可维护,数据是否冗余等,同时也关系到接口开发实现的难度。所以在设计之前我们先对需求进行分析,通过对需求的分析来确定需要的表。

我们使用 PowerDesigner 进行设计概念模型CDM,再由概念模型导出SQL语句、物理模型数据字典等。

四、CDM设计

根据之前讨论需要的表及字段创建实体

然后确定各实体间的关系一对一、一对多、多对多(我们队刚开始在这里出错搞混了实体间的关系),然后创建出CDM:

 

数据库课程设计 java mysql 数据库课程设计心得_数据库设计

这是我们概念模型的整体截图

需要注意的是,要满足第三范式同时也要注意一些命名的规范

创建好CDM可根据自己需求使用PowerDesigner的Tolls导出PDM、SQL语句、数据字典

五、心得体会

遇到的问题

1、再设计CDM时,由于是分工写实体,所以存在许多重复的地方

2、在确定实体间关系时没有查相关资料,除了一对一、一对多、多对多,还写了一些其他东西,最后在老师的指正下修改过来(实体关系只有一对一、一对多、多对多三种)

3、在写实体的字段时,对是否需要增加外键存在疑惑

收获:

通过这次数据库设计,帮助我们重新梳理了一遍需求,也让我们对用PowerDesigner来进行设计更加熟悉,对数据库设计有了一次宝贵的实战经验