基于瞳孔检测算法---数据库设计心得
一、 项目介绍
我们的项目是基于OpenCV的瞳孔识别和个性化推荐系统。
人的瞳孔可以体现很多的信息,它往往能体现一个人的喜怒哀乐,或者反应外界的环境,并且每个人的瞳孔信息中的一部分是独一无二的,基于这些想法有许许多多的基于瞳孔的科技被开发了。
如今随着人们生活水平的提高,人们对于购物的多样性与针对性有了些许要求,随之而来的就是各种基于不同方式的推荐功能。
将瞳孔的信息与推荐系统进行结合,基于用户的瞳孔比例变化对用户进行互联网内容个性化的推荐。
二、 设计过程(准备工作 需求分析 数据库设计)
1. 准备工作
工具
Powerdesigner,版本为V16.5,powerdesigner用于软件建模,可以从需求直到物理模型,支持UML2.0语法,可用于UML图绘制。最大特色是能够使设计到实现无缝衔接,如:概念模型->逻辑模型->物理模型,概念模型->OOM,而且能够生成多种DBMS的脚本或代码脚本,很方便我们进行实现设计好的数据库。
需求分析
数据库的设计离不开需求分析,一个成功的数据库最基本的特点就是能完美的契合我们项目的所有功能,满足项目的要求。所以,我们小组根据需求文档,对每一个需求进行拆分,每一项功能对应数据库的一个模块,然后思考如何进行表与表之间的逻辑关联,进行了数据库的设计。
2. 完整性约束
数据完整性用于保证数据库中数据的正确性、一致性和可靠性。一共包括四个类型,实体完整性(Entity Integrity),域完整性(Domain Integrity),参照完整性(Referential Integrity),用户定义完整性(User-defined Integrity)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。所以我们在进行数据库设计的时候非常注重完整性约束以及是否满足三范式。
3. 数据库设计
表的创建
在powerdesigner创建CDM,然后创建实体(Entity),也就是我们的所说的表,设置表格名字,然后是属性的设置,包括字段名,字段code,数据类型,是否可以为空,设置主键等等。其中很重要的一点,我们必须明确表的每一个属性的数据类型。
表的关系
在设计完数据库表,我们应该着手思考表与表之间的关联,那么就是E-R图的绘制了。关系包括一对一、一对多以及多对多。例如用户与用户权限之间的关系就是一对一;班级与学生的关系就是一对多;老师与学生的关系是多对多。以及我们需要注意关系的箭头,谁是一谁又是多,这一步至关重要,会影响物理模型的生成。通过这次设计,我们小组成员收获良多。
物理模型生成
Powerdesigner提供了两种方式,一是通过CDM直接生成物理模型,也可以自己进行设计,这里我们是利用CDM直接生成物理模型
三、 实验心得/总结
对于我们小组来说这是第一次使用powerdesigner这种类型的工具进行数据库设计,我们的第一个收获学会了powerdesigner的使用。从一点不懂到现在可以流畅的设计一个系统的数据库,我们在整个过程中对具体的设计步骤、思路、方法、技巧都有了进一步的了解。
软件工程的项目离不开需求文档。软件工程导论课程的第一张讲的内容便是教我们如何去进行需求分析。分析得出的需求贯穿项目的每一个步骤,包括数据库设计,我们设计的数据库无不围绕着用户的需求,其实我们最终的目的便是满足或者超额满足用户的需求。通过数据库的设计,更加深了我们对需求的理解。
好的数据库设计能够有效地节约资源、保证数据完整性、提高运行效率降低运行时间、良好的拓展性等等。在设计上,我了解了第一、第二、第三范式,能够有效避免了数据的冗余。
这次数据库设计对我们来说是一次挑战,更是机遇,不仅让我们学会了如何进行团队合作,齐心协力共同解决问题;也加深了我们对数据库系统设计相关知识以及MySQL相关功能的理解。比如在建立基本的表、视图、索引、存储过程、触发器等,都比以前更加熟悉了,并在解决各种问题的过程中学到了很多新的知识。
以上就是我们团队在数据库设计过程中的心得和体会,希望能提供一点借鉴意义。
Helloworld小组
李星沛 徐颖 李翰林 肖云杰