数据库设计心得 -- 十万伏特人间皮卡丘
作者:互联网
数据库设计心得
项目名称:WIFI人体动作识别系统
小组:十万伏特人间皮卡丘
指导老师:周四望
小组成员:潘琳 刘大卫 曹芊 唐诗远 鄢蝶
前言:
在本次软件工程导论课程中,数据库设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出一个数据库系统,去解决课程设计的信息化处理的要求。
在这次项目设计中,我们小组所选择的是设计一个WiFi信号人体动作识别系统,这对我们来说是一次尝试与创新的过程,也可以说是一个挑战的过程。现在我们利用自己学到的知识设计并制作一个人体动作识别系统,这本身就是一个知识转化为生产力的过程,所以大家都很兴奋,都不同程度的投入了很高的热情与努力。
数据库设计流程
1. 规划
当我们这组决定做WiFi人体动作识别系统时,我们并没有立即手写程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。当这些都准备好了之后,我们再进行模块的分工,以及数据库设计。
2. 需求分析
当然这个过程并没有想象中的那么简单,首先我们的需求并不是很明确,这导致我们在后面的设计中遇到了非常多的困难,进而导致我们的数据库设计也寸步难行。
不过当我们的需求初步定了下来以后,小组抽了一整个晚上的时间对数据库进行设计分析,这其中也有过好几个版本,最终在数据库大佬的帮助下才确定下来。
3. 概念结构设计
概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合,归纳与抽象,形成了一个独立于具体DBMS的概念模型。
在小班课展示完原型后,就要进入数据库设计的阶段了,我们根据小班课老师的建议,和项目指导老师进行了讨论,因为我们的项目是偏向于算法的,开始我们能够想到的表很少,与老师讨论后,发现其实也不少,需要包含很多动作数据信息和用户信息。于是进一步结合需求,设计出概念数据模型,包含的实体有用户信息,用户反馈,头像,原始的跑步、行走、摇手数据和处理后的跑步、行走、摇手数据等,也基本确定了每个实体中应该包含的属性。
4. 逻辑结构设计
逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并将进行优化。
根据概念数据模型和它们之间的关系进行逻辑结构的设计,建立了项目数据库的实体及绘制了E-R图。
5. 数据库物理设计
物理设计是为逻辑数据结构模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
根据逻辑结构设计进行数据库的物理设计,因为前面的工作已经基本完成了,所以这个过程比较简单。我们使用的是MySQL数据库,然后用Navicat进行管理。最后利用powerdesigner导出数据字典。
(1)在建用户信息表时,我们考虑过是每类用户建一张表,还是所有的用户在同一张表里,然后添加一个字段表示他是哪一类用户,最后根据高类聚低耦合的原则选择采用后者。
(2)部分组员认为应该有一个表用来存储所有的用户类型,这样才能符合数据库设计的范式,但是另一部分组员认为如果建这样一张表的话,这张表里就只有一个属性,所以并没有这样做的必要。最后我们也是没有添加这个表。
是否需要建管理员与普通用户关系表也产生了一些讨论,我们在考虑,应该在用户信息表里添加一个字段,来表示该用户所属的管理员,还是建一张表来储存他们之间的关系。最后选择了建一张表。
遇到的问题及解决
用例的选择
在设计过程中,对于数据库设计的理解上,组员与组员之间产生分歧。主要体现在我们的数据库的用户分为三类,分别为普通用户,管理员和超级管理员,在设计数据库时,设置普通用户的type为0,管理员的type为1,超级管理员的type为2。在初始情况下,数据库中不存在类型0,1的信息,需不需要设置一个表格来记录type类型0,1,2和对应的用户类别信息。
经最终讨论,我们认为无需另外新建一个表格,原因为我们认为type类型0,1,2为系统可选值,已经存在超级管理员,除超级管理员外,其余用户最初为普通用户,经申请成为管理员,超级管理员保管用户类型,因此无需。
不同类型数据的存储
在设计数据库时,因为我们需要存储矩阵信息,对于矩阵的存储,最初不知道应该如何处理。
后来,我们意识到可以将我们需要存储的矩阵存储在另外的地方,而数据库中只需要存储矩阵存储地址就可以解决。
用户间对应关系
对于删除管理员,下属的所有普通用户的归属问题。即当一个用户,新注册之后或者是管理他的管理员被删除,他所属的管理员不存在的设计上的问题。
我们给出的解决方案为设置一个管理员为默认管理员,当新用户注册还未被管理员管理,或者管理员被删除,则该用户将临时被归于默认的管理员。
总结与收获
团队智慧
我们在小组讨论的过程中相互补充,相互学习,体现了团队的智慧。
知识获取
这次课程设计加深了我们对数据库系统设计相关知识以及MySQL相关功能的理解。比如在建立基本的表、视图、索引、存储过程、触发器等,都比以前更加熟悉了,并在解决各种问题的过程中学到了很多新的知识。在设计中我们基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计方案,然后设计并制作,实施过程中我们深刻的认识到认真执行管理系统软件标准的重要性,由于我们对管理系统软件相关的标准和规范不太了解,缺少行为操作准则,所以在设计中手法比较生硬,主与次也没能很好把握住,这些方面通过这次我们都要加强了解。
理解项目
通过建立数据库,对于我们的项目有了更深层次的理解,逐渐清晰了表与表,数据与数据之间的关系,特别是对于管理员管理用户,超级管理员管理管理员之间的层次关系。
完成分工
在建立数据库的过程中,我们同时讨论了前后端的任务。因此对于前后端的分工也有了很深的认识。
改进
在这次课程设计中,我们以小组为单位去完成本系统的设计与制作,所以小组内的分工和相互协调很重要,大家可以在分工中扬长避短,各取所长,这样可以很好的提高大家的积极性,和合作意识,并有效的缩短开发时间,但我们在这方面做的还不够,缺乏人员管理与沟通,导致人力资源浪费,可以说是不足之处,且迫切的需要思考和改进。这在以后的工作与学习中将会非常重要。
把握进度
很多时候由于之前的设计问题,后面的设计根本无法继续,感觉像是被前面做的各种图以及需求能否完成这一点所限制了。而数据库的设计又会影响到后面的编码设计,感觉一环套一环,如果前面设计得完善合理的话,后面的任务相对而言就会轻松不少。
总的来说,这次数据库设计将课程上讲解的内容运用到了实际中,实践才是检验真理的唯一标准。
标签:存储,--,数据库,用户,管理员,伏特,设计,皮卡丘,我们 来源: https://www.cnblogs.com/cholee/p/14008825.html