毕业设计-区块链海量数据存储(案例分析)-附源码

摘 要

随着人类向信息社会的不断迈进,风起云涌的信息时代正掀起一次新的革命,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的区块链海量数据存储来管理海量数据信息,会使管理工作系统化、规范化,提高管理效率。

本课题的研究对象是区块链海量数据存储,该系统实现了首页、网站管理(轮播图、公告信息)人员管理(管理员、普通用户)内容管理(交流论坛、论坛分类、新闻资讯、资讯分类)模块管理(数据储存)个人管理等功能。本系统在设计上,考虑到系统内容以及系统的受众群体,在系统的美工方面采用了比较正规的设计,同时也提供了友好的页面以及简单的操作,系统采用java语言、Hadoop框架、MVC模式、MySQL数据库,这样的组合不但利用上了在大学中所学到的知识,并且能够使系统真正的发布到互联网上,而不是一个单纯的演示系统。

本系统经过测试,运行效果稳定,操作方便、快捷。在具体的应用过程中,有可能会出现一些问题,今后还会对本系统不断地进行完善、更新,使其功能更强大,应用更广泛。

关键词:B/S结构;管理效率;java语言;互联网

Blockchain massive data storage

Abstract

With the continuous progress of human beings towards the information society, the surging information age is setting off a new revolution. At the same time, with the rapid development of computer network technology, network management has become more and more widely used. Therefore, building a blockchain massive data storage with B/S structure to manage massive data information will systematize and standardize the management work and improve the management efficiency.

The research object of this project is blockchain massive data storage. The system implements the functions of homepage, website management (broadcast map, announcement information), personnel management (administrators, ordinary users), content management (exchange forum, forum classification, news information, information classification), module management (data storage), personal management, etc. In the design of the system, taking into account the system content and the audience group of the system, the system adopts a more formal design in the aspect of art design, and also provides friendly pages and simple operations. The system uses Java language, Hadoop framework, MVC mode, and MySQL database. This combination not only makes use of the knowledge learned in the university, but also enables the system to be truly published on the Internet, It is not a simple demonstration system.

The system has been tested and the running effect is stable, and the operation is convenient and fast. In the specific application process, there may be some problems. In the future, the system will continue to be improved and updated to make it more powerful and widely used.

Key words: B/S structure; Management efficiency; Java language; internet

目  录

第1章 绪论

1.1开发背景与意义

1.2开发现状

1.3论文结构

第2章 主要技术和工具介绍

2.1 Hadoop框架介绍

2.2 MySQL 数据库

2.3 B/S结构

2.4 JAVA技术

2.5 MVVM模式介绍

第3章 系统分析

3.1可行性分析

3.1.1经济可行性

3.1.2技术可行性

3.1.3操作可行性

3.2需求分析

3.3业务流程分析

3.4数据流程分析

第4章 系统设计

4.1开发环境

4.2系统结构设计

4.3主要功能模块设计

4.4数据库设计

4.4.1数据库设计概述

4.4.2概念设计

4.4.3表设计

第5章  系统实现

5.1登录模块的实现

5.2用户子系统模块的实现

5.2.1用户首页的实现

5.2.2注册模块的实现

5.2.3评论模块的实现

5.3管理员子系统模块的实现

5.3.1用户管理模块的实现

5.3.2密码修改模块的实现

5.3.3数据存储模块的实现

5.3.4资讯管理模块的实现

第6章  系统测试

6.1软件测试

6.2功能测试

6.3测试结果

第7章  总结

致  谢

参考文献

第1章 绪论

1.1开发背景与意义

根据第六届世界互联网大会发布的《世界互联网发展报告2019》报道:截至2018年末,全世界互联网用户数量已达38.9亿,首次超过全球总人口数的50%4。在连接的134亿设备中,80.6 亿为移动端连接。预计在2020年,世界范围内将有385亿台设备连接到互联网,全球数据流量将比2005年增长91倍。国际数据公司(International Data Corporate,IDC)预测,到2025年,全球数据生产量将比2016年的数据量增长10倍,预计达到163ZB (Zettabytes,ZB)。

数据的生成速度呈现出显著的上升趋势。2010年,全球创造的数据总量超过1ZB。预计到2020年,全球数据总量将达到44ZB,而我国数据量约达806OEB (Exabyte,EB),占全球数据总量的18%。数据的增长每两年翻一番。如今互联网上每秒产生的数据比20年前存储在整个互联网上的数据还要多。

但是随着分布式存储的广泛应用,用户将数据保存到异端服务器,便无法再直接管理数据,失去了对数据的物理控制权以及和访问控制管理,数据的安全性面临着严峻挑战5。从存储的角度来看,用户为了确保外包数据的安全性,必须定时对存储数据进行检测,以确保数据正确、完整地被保存;从销毁的角度来看,当数据结束生命周期后,服务器应正确地删除存储数据,确保数据不可恢复,从而保证数据的安全性。概括地讲,这就是数据存储的完整性问题和确定性删除问题。

近年来,区块链技术随着不同密码货币的流行得到许多行业的广泛关注。区块链网络由不同的对等节点组成,所有节点通过一致性共识算法共同维护网络稳定和安全,它具有开放、去中心化、防篡改、交易透明、可溯源、可审计等诸多特性[6l,利用这些特性,能够有效地解决数据安全和用户隐私保护问题。因此,针对分布式存储中数据完整性问题和数据确定性删除问题,使用区块链技术来解决以上问题便成了一种不错的选择。

1.2开发现状

在当下社会,人们越来越注重网络的发展,自动化管理技术和信息化管理技术逐渐被人们所使用。在以往的手工管理模式中已经越来越能体现出问题和不足,如管理效率低下,信息处理速度慢,劳动强度大,信息的准确率低。因此如何改变这一现状,从根本上帮助数据存储提升他们在设备方面的效率,真正的解放劳动力,相关信息处理过程中的正确率以及速度就成为关键。由此可见,开发区块链海量数据存储是非常具有实际意义的。现代经济发展速度非常快,市场更是变化无常,可以说当前数据存储在这种条件下生存就不得不面临诸多威胁,同时也必须做到相关系统的完善和升级。那么数据存储的设备管理,就需要一个可靠的系统管理软件来管理设备以及对用户使用的安排管理,因此开发出一个优秀并且可靠的系统就十分必要了。

随着现代数据存储发展的快速发展,可以说数据管理已经逐渐成为现代数据存储管理过程中最为重要的部分之一。但是一直以来我国传统的数据存储管理并没有建立一套完善的行之有效的区块链海量数据存储,传统的数据存储设备管理已经无法适应高速发展的现代数据存储,无论是从效率还是从效果来看都远远的和预计相差甚多,可以断言,传统的数据存储设备管理模式已经不再适应现代数据存储,甚至已经拖累了现代数据存储的发展。因此,需要一个操作方便,高效的管理体系。

系统设计的主要意义在于,一方面,对于数据存储来讲,系统上线后可以带来很大的便利性,数据管理属于非常细致的管理模式,要求数据量大,计算机管理可以提高精确性,更为便利的就是信息的查询,大大的提高了工作效率,改善了管理质量;另一方面,通过系统的设计,自己对软件设计有了更加深入的了解,并且产生了浓厚的学习兴趣,在对问题分析方面有了独特的方式,是进入社会之前一次很好的锻炼机会。

1.3论文结构

第一章是论文的绪论部分,主要介绍了课题的研究背景以及研究目的和意义。

第二章研究了区块链海量数据存储的所采用的开发技术和开发工具。

第三章研究了区块链海量数据存储的需求分析,根据系统的特点,分析系统采用的体系结构及开发方法,以及该系统的运行环境,并分析了业务流程,绘制了业务流程以及数据流程。

第四章是对系统的详细设计进行说明。

第五章是系统的具体实现,介绍系统的各个模块的具体实现。

第六章在前几章的基础上对系统进行测试和运行。

最后对系统进行了认真的总结,以此对未来有一个新的展望。

第2章 主要技术和工具介绍

2.1 Hadoop框架介绍

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFSMapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

2.2 MySQL 数据库

MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。因为其自身的功能相当强大,目前已成为最为流行的数据库软件之一[7]。

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库[8]。

2.3 B/S结构

系统计划采用BS模式,是因为比传统的C/S结构具有明显的优越性。B/S模式也就是浏览器/服务器模式,它的界面部分是在浏览器端展示,而主要工作是由服务器端进行实现的,用户的请求由浏览器端提交给服务器端进行处理,而服务器将处理结果反馈给浏览器端,在浏览器端界面描画给用户查看。采用B/S模式不仅可以避免用户必须安装专业软件才能开发系统或者访问系统的局限性,而且更加便利。

2.4 JAVA技术

Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技术。

JAVA语言功能:

面向对象:面向对象是Java编程语言的标志之一,是一种软件开发方法。最重要的是将所有东西变成对象,然后以某种方式编程。编程时,代码和数据写在每个对象上。 面向对象编程方法的出现使得人们在编程过程中的设计思考和操作变得非常简单,同时也提高了程序的安全性。

跨平台:Java流行的一个关键特性是它的跨平台特性,这使得用Java编程变得容易。您可以用Java编写程序并在其他地方运行它,而无需在编译后更改它。

垃圾回收机制:用来将那些在程序不操作时无用的对象所占用的内存空间释放掉,C ++最被人厌恶的就是因为其不能将在编程的过程中所占用的内存空间进行及时的释放,导致随着编程时间的变长所占用的内存空间越来越多。对于一些编程高手而言,他们会在刚开始编程的时候配置一块内存地址放在堆栈上,然后在不需要的时候会对其进行释放,而一些新手和菜鸟在很多的时候会忘记删除这个内存地址,从而导致程序在运行的过程中会变得十分的不稳定,最终有可能会导致程序崩溃。所以很多C ++的高手在编写程序时往往都会将删除后的指针的值设置为NULL,然后在删除之前确定一个指针的值是否为NULL。

2.5 MVVM模式介绍

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频视频3D动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。

第3章 系统分析

3.1可行性分析

分析用户需求和数据需求,得到一个方案,然后设定系统的开发方案,为每个功能模块设计出物理设计方案,开发本系统的是否可行?本文从技术上、操作上和经济上对本系统的开发进行可行性分析。

3.1.1经济可行性

区块链海量数据存储属于一个工具型的系统,它可以节省工作人员大量数据收集、方便快捷,能够极大地提高工作效率,最大限度的降低管理员的工作量,使管理尽量简便,同时促进数据存储管理的信息化、现代化,及时提供必要的信息统计。因为整个系统采用Tomcat+MySQL+java组合,这几个软件都是免费开源的,系统开发所需的费用是比较低的,由于系统并不复杂,其运行与培训费用也不会占用很多资金,可以预见系统完成后可以带来较大的经济效益。

3.1.2技术可行性

本系统采用Windows10作为操作平台。数据库开发平台选用MySQL,该数据库管理系统在Windows7和Windows8/10上都能运行,并提供数据库之间的数据复制功能,可代替现有系统单据数据的手工传递工作,。本系统的应用软件开发平台选用Pycharm

3.1.3操作可行性

本系统使用的是现流行的开发语言,即Hadoop技术。同时所有的信息都是以网页的形式展示,系统中的信息都可以在后台操作数据库达到数据更新的效果。用户只需要会计算机的基本操作或者会上网就可以使用本系统。系统布局较简单,功能操作不复杂,完全符合现代市场需求。

3.2需求分析

针对现存的问题和需要,通过功能需求的分析,特建立了数字化、信息化的区块链海量数据存储。

本系统主要包含了首页、网站管理(轮播图、公告信息)人员管理(管理员、普通用户)内容管理(交流论坛、论坛分类、新闻资讯、资讯分类)模块管理(数据储存)个人管理等多个功能模块。下面分别简单阐述一下这几个功能模块需求。

表3-1功能需求表

编号

功能名称

功能描述

用户登录

保证用户通过身份验证进入系统进行操作

用户注册

没有账号并想使用系统的用户可以使用用户注册,检测用户的注册内容,信息通过检测之后成为本系统的用户

站内搜索

用户可以通过各种各样的关键字模糊搜索站内信息

在线点赞

普通用户登录系统前台可以添加在线点赞

评论添加

普通用户选择要评论的信息进行添加评论

评论管理

管理员对用户的评论信息进行管理,包括删除、修改

添加收藏

普通用户可以选择信息添加收藏

收藏管理

个人用户可以对自己的收藏记录进行管理包括删除、修改

修改个人信息

用户可以根据自己当前的情况修改个人的信息

后台登录

仅管理员能够登录后台

添加数据管理信息

管理员添加数据管理信息

编辑数据管理信息

管理员修改数据管理信息

删除数据管理信息

管理员删除数据管理信息

添加资讯信息

管理员添加资讯信息

编辑资讯信息

管理员修改资讯信息

删除资讯信息

管理员删除资讯信息

论坛交流

论坛提供用户一个互相交流的论坛,管理员管理论坛版块,用户发布帖子、查看他人帖子、回复他人帖子

3.3业务流程分析

经过对系统功能的分析,调查,研究,总结出区块链海量数据存储主要实现的是对数据储存、用户管理、新闻资讯等管理功能。这样,可以对该系统绘制业务流程图。

系统的业务流程如下图所示。

图3-2系统业务流程图

3.4数据流程分析

根据上文所述的业务流程特点,首先对各个方面总的数据处理环节和外部实体进行了描述, 根据自顶向下原则,逐层分解功能,这个过程产生DFD图。

零层数据流程是流程中最抽象的一层,它包括了注册与登录管理、用户功能管理和检索维护管理等功能模块,在登录注册模块使用到的数据存储有用户账户信息文档、用户信息文档,用户功能管理模块需要的存储是用户动态信息文档、留言信息文档、数据管理信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。

系统的0层数据流图如下图所示。

图3-4系统数据流图(0层)

一层数据流程图是对零层数据流程图的细化,将登录与注册细分为填制登录注册信息和完善信息,用户功能管理细分为用户基本功能管理和用户特色功能管理。

系统的1层数据流图如下图所示。

图3-5系统数据流图(1层)

二层数据流程是对一层数据流层图中填写登录注册信息、用户基本功能和用户特色功能的细化。即:填写登录注册信息细化为填制信息、后台审核,用户基本功能细化为收藏操作、评论操作操作,用户特色功能细化为首页、交流论坛、公告消息、新闻资讯、个人账户、个人收藏。

第4章 系统设计

4.1开发环境

  1. 软件体系结构方案:采用B/S模式,B/S代表的是服务器端由Web服务器发放,客户端由浏览器接收的系统,它的前台是Html语言,由浏览器解释。B/S结构可以由Web服务器能够解释的脚本语言如Django。
  2. 操作系统方案:Windows10(旗舰版)操作系统,该系统可以兼容需要的软件,并且具有良好的运行速度,界面良好。
  3. 后台数据库:选用MySQL。MySQL旨在通过数据库加密、更加安全的默认设置、加强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供最高级别的安全性。
  4. 开发工具:前台网页使用Dreamweaver工具,后台逻辑选用Pycharm。
  5. 开发语言:java语言。
  6. 开发技术:Hadoop+MVC +Html+CSS+JS技术

4.2系统结构设计

本系统使用的角色主要有系统管理员、普通用户,本系统分为系统前台和系统后台,首先在系统前台,游客用户可以经过账号注册,管理员审核通过后,用账号密码登录系统前台,进行首页、交流论坛、公告消息、新闻资讯、个人账户、个人收藏管理,在线点赞、在线收藏,在前台用户可以通过标题和类别进行前台信息的搜索,普通用户可以登录个人中心进行个人资料等功能。

后台主要由管理员使用,以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用首页、网站管理(轮播图、公告信息)人员管理(管理员、普通用户)内容管理(交流论坛、论坛分类、新闻资讯、资讯分类)模块管理(数据储存)个人管理等功能操作。同时管理员可以通过关键字搜索可以搜索相应的信息,打印各种详细信息,导出各类信息列表至excel中。

系统的功能结构图如下图所示。

图4-1系统功能结构图

4.3主要功能模块设计

  1. 用户管理模块

该模块包括普通用户管理和系统用户管理,系统用户主要是普通管理员,对用户信息进行管理,只有普通用户才可在该系统上进行相应的操作。用户对个人信息可进行修改;管理员可对自己的个人信息进行维护,同时可对用户的密码信息进行修改,也可删除系统中的用户

  1. 登录模块

根据用户输入的 Id 和密码到数据库中查找该用户,如果未能找到该用户则做出 提醒“用户名或密码错误”,如果找到该用户,则要判断用户的类别然后根据用户类别进入相应的页面。

  1. 注册模块

当新用户第一次登陆时,要求注册账号。在登陆页点击注册后进入用户注册界面,新用户需要填写本人的手机号、用户名、设置登录密码,之后单击注册,则完成了初步信息的填写

  1. 数据管理信息管理模块

(1)数据管理添加:必须填写数据名称、数据类型、数据描述、数据内容、编号必须是唯一的, 提交后判断某一项是否为填写, 如果是则做出提醒, 填写符合规则后方可添加到数据库。

(2)数据存储管理查询:可以根据数据名称等信息对数据管理进行查询,查询结果可能有多个。

  1. 资讯信息管理模块

(1)资讯添加:必须填写标题、内容,且编号必须是唯一的,各项都不能为空。

(2)资讯查询:该功能能够显示资讯的基本信息,可以根据资讯的编号等信息对资讯做出查询。

(3)资讯修改:如果资讯信息需要被修改,可修改的信息包括资讯内容等基本信息,但是编号是唯一、固定 的,不能被修改。

(4)资讯删除:首先找到要删除的资讯(一个或多个),然后删除即可。

  1. 留言信息管理模块

用户登录系统后,可在留言板进行留言,管理员在后台可以查看或搜索留言信息,同时可回复或删除留言信息。

  1. 评论信息管理模块

评论模块分为用户评论和管理员管理评论信息,用户登录系统后,选择想要评论的数据管理,添加评论,管理员查询该评论信息,并有权对其管理,包括删除。

  1. 论坛交流模块

论坛交流需要设计2张表分别是版块表和帖子表,存储版块信息和帖子信息,操作员对论坛版块管理,交流话题的版块,相应的话题对应相应的版块,用户在话题版块里,发表相应的帖子,查看他人的帖子,回复他人的帖子,一个帖子里可以包含多个回复内容。

4.4数据库设计

4.4.1数据库设计概述

为了实现系统的功能设计,就要有相应的数据库表设计。根据系统的功能设计要求为各个数据库表设计字段、数据类型、是否为空等的相关信息。在实际调研和需求分析的基础上,对该系统设计数据库。再有系统的需求分析可以看出,本系统有两个角色:普通用户和管理员,他们分别在系统的运行和使用中起着不同的作用。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。数据库中表的设计主要考虑两个方面:一是整个管理系统的所有表中的数据要共享性高、冗余度小、占用最可能小的存储空间。

4.4.2概念设计

概念设计是整个数据库设计的关键,在概念设计阶段,由需求分析得到了E-R模型。E-R图是识别功能模型与数据模型间关联关系的,在主题数据库的抽取和规范化的过程中,采用的是简化的E-R图表示方法,从而避免过繁过细的E-R图表示影响规划的直观和可用性。是对现实世界的抽象和概括,是数据库设计人员进行数据可设计的有力工具,能够方便直接地表达应用中的各种语义知识,令一方面它简单、清晰、易于用户理解。

系统总体ER图如下图所示。

图4-10系统总体ER图

4.4.3表设计

概念模型是独立于任何一种数据模型的信息结构。将概念模型转换成逻辑模型,转换的一般原则如下:

(1)一个实体性转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。

(2)一个1:1联系可以转化为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

(3)一个1:n联系可以转化为一个独立的关系模式,也可以与n端对应的关系模式合并。

(4)一个m:n联系转化为一个关系模式。

本系统设计如下多个表,包括数据存储表、资讯表、评论表、点赞表。

access_token

字段名称

类型

长度

不是null

主键

字段说明

token_id

int

11

主键

临时访问牌ID

token

varchar

64

临时访问牌

info

text

0

maxage

int

2

最大寿命

create_time

timestamp

0

创建时间

update_time

timestamp

0

更新时间

user_id

int

11

用户编号

comment

字段名称

类型

长度

不是null

主键

字段说明

comment_id

int

11

主键

评论ID

user_id

int

11

评论人ID

reply_to_id

int

11

回复评论ID

content

longtext

0

内容

nickname

varchar

255

昵称

avatar

varchar

255

头像地址

create_time

timestamp

0

创建时间

update_time

timestamp

0

更新时间

source_table

varchar

255

来源表

source_field

varchar

255

来源字段

source_id

int

10

来源ID

data_storage

字段名称

类型

长度

不是null

主键

字段说明

data_storage_id

int

11

主键

数据储存ID

data_name

varchar

64

数据名称

data_type

varchar

64

数据类型

data_label

varchar

64

数据标签

data_description

varchar

64

数据描述

data_content

text

0

数据内容

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

forum_type

字段名称

类型

长度

不是null

主键

字段说明

type_id

smallint

5

主键

分类ID

name

varchar

16

分类名称

description

varchar

255

描述

url

varchar

255

外链地址

father_id

smallint

5

上级分类ID

icon

varchar

255

分类图标

create_time

timestamp

0

创建时间

update_time

timestamp

0

更新时间

ordinary_users

字段名称

类型

长度

不是null

主键

字段说明

ordinary_users_id

int

11

主键

普通用户ID

user_name

varchar

64

用户姓名

user_gender

varchar

64

用户性别

user_age

varchar

64

用户年龄

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

praise

字段名称

类型

长度

不是null

主键

字段说明

praise_id

int

10

主键

点赞ID

user_id

int

11

点赞人

create_time

timestamp

0

创建时间

update_time

timestamp

0

更新时间

source_table

varchar

255

来源表

source_field

varchar

255

来源字段

source_id

int

10

来源ID

status

tinyint

1

点赞状态1为点赞,0已取消

slides

字段名称

类型

长度

不是null

主键

字段说明

slides_id

int

10

主键

轮播图ID

title

varchar

64

标题

content

varchar

255

内容

url

varchar

255

链接

img

varchar

255

轮播图

hits

int

10

点击量

create_time

timestamp

0

创建时间

update_time

timestamp

0

更新时间

第5章  系统实现

5.1登录模块的实现

区块链海量数据存储的系统入口就是用户登录功能,在浏览器输系统地址跳转至系统前台首页,系统前台的登录窗口在首页左面,包括用户名、密码、权限、验证码,除了权限框使用下拉列表,其他使用文本框,验证码下方为登录和重置两个按钮,用户点击登录按钮,则进行登录验证。

登录流程图如下所示。

图5-1登录流程图

系统登录界面如下所示。

图5-2系统登录

5.2用户子系统模块的实现

5.2.1用户首页的实现

在区块链海量数据存储的用户首页,主要有用户登录页面,以及首页、交流论坛、公告消息、新闻资讯、个人账户、个人收藏展示等主要模块。

如下图所示为系统的用户首页界面。

图5-3用户首页

5.2.2注册模块的实现

这块程序首先根据所取得的表单中的用户名查询数据库中是否有相同用户名的记录,如果数据库存在相同的用户名,则提示用户名已存在,否则,打开记录集并添加一条新的记录,然后系统默认要给用户发送注册成功的提醒。

用户注册流程图如下所示。

图5-4用户注册流程图

用户注册界面如下图所示。

图5-5用户注册

5.2.3评论模块的实现

用户点击某个数据管理点进入数据管理详细页,点击评论按钮进入评论页,提交评论信息,成功发布评论,管理员管理用户的评论信息。

用户评论流程图如下所示。

图5-6用户评论流程图

用户评论界面如图所示。

图5-7用户评论

5.3管理员子系统模块的实现

5.3.1用户管理模块的实现

系统用户管理主要是对新用户的添加和旧用户的删除。新用户的添加主要是指添加用户名称并确定其密码;旧用户的删除也是从下拉菜单中找到对应的用户名称将其删除。不论是新用户添加还是旧用户的删除,这个权限只有管理员具有。

系统用户管理界面如下图所示。

图5-8系统用户管理

5.3.2密码修改模块的实现

密码修改是对当前登录用户的密码进行修改,在用户登录后右上方也能进行密码修改。

密码修改流程图如下所示。

图5-9密码修改流程图

密码修改界面如图所示。

图5-10修改密码

5.3.3数据存储模块的实现

数据存储信息添加功能主要指对其数据名称、数据类型、数据标签、数据描述、数据内容等一些基本信息的添加、删除和修改。数据存储查询能根据数据存储id、名称、标题等多种条件对数据存储信息进行查询。

数据存储信息流程图如下所示。

图5-11数据存储管理流程图

数据存储信息添加如下图所示:

图5-12数据存储信息管理添加

数据存储管理查询如下图所示:

图5-13数据管理查询

5.3.4资讯管理模块的实现

管理员发布新的资讯信息,系统前台显示资讯信息,资讯信息添加功能主要指对其标题、内容等一些基本信息的添加、删除和修改。资讯查询能根据资讯id、名称、标题等多种条件对资讯信息进行查询。

资讯管理流程图如下所示。

图5-14资讯管理流程图

资讯添加如下图所示:

图5-15资讯添加

资讯查询如下图所示:

图5-16资讯查询

第6章  系统测试

6.1软件测试

在设计系统的过程中,存在一些错误是不可避免的。For语句语法错误,运行的提示,并要求立即纠正,因此,容易发现和纠正错误等。但另一种类型的错误是程序执行时由于不正确的操作或对某些数据计算公式的逻辑错误导致错误的结果。这种错误的隐蔽性强,有时会出现,有时不出现,因此,这种误差动态屏幕耗时。

6.2功能测试

功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项检测,检查产品是否达到用户要求的功能。下面列出的测试用例是基于需求分析阶段的用例描述而进行的设计。

下面将通过表格的形式介绍针对本系统每个功能模块所进行的功能测试。

1.注册模块功能测试,如下表所示。

表6-1注册测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

用户注册

用户打开注册界面

输入合适的用户名,密码为空

无法注册

提示密码不得为空,无法注册

正常

用户注册

用户打开注册界面

输入不合适的用户名、2次相同的密码

无法注册

提示用户注册失败

正常

用户注册

用户打开注册界面

输入合适的用户名,两次密码不一致

无法注册

提示用户名不得为空,无法注册

正常

用户注册

用户打开注册界面

输入的用户名为空

无法注册

提示用户名不能为空

正常

用户注册

用户打开注册界面

输入合适的用户名和两次相同的密码

正常注册

注册成功

正常

2.登录模块功能测试,如下表所示。

表6-2登录测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

登录系统

用户打开登录界面

输入正确的用户名,密码为空

无法登录

提示密码不得为空,无法登录

正常

登录系统

用户打开登录界面

输入正确的用户名,输入错误密码

无法登录

提示密码不正确,无法登录

正常

登录系统

用户打开登录界面

输入正确的密码,用户名为空

无法登录

提示用户名不得为空,无法登录

正常

登录系统

用户打开登录界面

输入正确的密码,错误的用户名

无法登陆

提示用户名不正确,无法登录

正常

登录系统

用户打开登录界面

用户名及密码都为空

无法登录

提示用户名和密码不得为空,无法登录

正常

登录系统

用户打开登录界面

用户名及密码都输入错误

无法登录

提示用户名和密码正确,无法登录

正常

登录系统

用户打开登录界面

输入正确的用户名和密码

正常登录

进入主界面

正常

3.修改密码模块功能测试,如下表所示。

表6-3修改密码测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

修改密码

用户打开修改密码界面

输入正确初始密码和2次相同的新密码

密码修改成功

密码修改成功

正常

修改密码

用户打开修改密码界面

输入错误的原始密码

密码修改失败

密码修改失败

正常

修改密码

用户打开修改密码界面

输入正确初始密码和2次不相同的新密码

密码修改失败

密码修改失败

正常

5.个人中心功能测试,如下表所示。

表6-5个人中心测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

用户信息修改

用户已登录,进入个人中心,且打开个人信息界面

输入内容不合法或必填项为空

修改失败

提示输入内容非法

正常

用户信息修改

用户已登录,进入个人中心,且打开个人信息界面

输入内容合法

修改成功

提示修改成功

正常

6.资讯管理功能测试,如下表所示。

表6-6资讯管理测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

资讯信息添加

用户已登录,打开资讯添加界面

输入资讯标题、内容等信息

资讯添加成功

资讯添加成功,新资讯成功显示

正常

资讯信息添加

用户已登录,打开资讯添加界面

用户未输入资讯标题和内容

资讯添加失败

资讯添加失败

正常

7.数据存储管理功能测试,如下表所示。

表6-7数据存储管理测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

数据管理信息添加

用户已登录,打开数据管理添加界面

输入数据管理标题、内容等信息

数据管理添加成功

数据管理添加成功,新数据管理成功显示

正常

数据管理信息添加

用户已登录,打开数据管理添加界面

用户未输入数据管理标题和内容

数据管理添加失败

数据管理添加失败

正常

6.3测试结果

通过对区块链海量数据存储整个流程管理的测试,发现了许多无法实现的功能并及时得到改正和实现,为区块链海量数据存储的发布奠定了基础。此系统中各模块的功能都基本实现,不过还存在着许多不足,在以后的学习中通过测试还需加强和完善。

第7章  总结

本文主要研究了区块链海量数据存储的设计与实现。本次论文主要研究的内容主要包括:

(1)分析研究了本课题的开发背景和课题的研究意义。

(2)对此次毕业设计进行了详尽的需求分析,并根据实际需求,分析了其数据字典。

(3)概要设计了系统的功能模块,详细设计了系统所使用的数据库表,并研究了该系统的ER图。

(4)详细介绍了该平台要实现的功能,构建了此系统。

从技术上来说,整个系统的基本实现环境是Win10操作系统搭配Pycharm下的java环境,数据库的建立使用MySQL软件,系统开发使用Pycharm软件,用java语言进行系统的设计和开发,图片采用Photoshop CS6处理,使整个系统在视觉上和功能上尽量做到完整和美观。系统界面设计美观大方,功能较为完整,技术较先进且具有一定现实意义。

在摸索中前进。对MySQL数据库的使用,如何设计后台表结构,使得系统更加合理,健壮,是面临的又一个难题,通过查找相关资料,以及在充分的需求分析基础上,解决了以上问题。若条件允许,系统的功能模块能够更丰富,某些模块的功能也能更完善,用户之间权限的处理逻辑性也能更强。今后在改善客观条件的情况下,本系统还需要进一步进行研究开发。

致  谢

经历了几个月的毕业设计之旅,遭遇了无数难题与挑战,几经波折后,近乎要摧毁我当初选择这个题目的信心。好在我的导师一直坚持对我悉心支持,并对此套系统提出了诸多改善意见,解决了我所遇到的众多难题,区块链海量数据存储也得以在这样的境况下圆满完成。老师给予了我正确的指导和极大的帮助,这不仅仅使我获得了足够多的开发经验,更使我在系统设计过程中少走了许多的弯路,巩固了以前所学的知识,提高了应用能力,这使我对以后的工作也信心满满。

敬业的工作态度都给予了我极大的鼓励与帮助。对于提出的问题和遇到的困难都给予细心的解答和真诚的帮助,再次表示衷心的感谢。我还要对学院及系里的各位领导、老师们表示谢意,在这次毕业论文期间给我们提供了良好的学习和生活环境,并给予软硬件的支持,使得我的系统设计工作及论文撰写工作更加顺畅、便利。最后我还要感谢所有为我的毕业设计提出指导意见的各位老师、同学。

参考文献

[1]Yusuf Mathiinul Hakim,Risfidian Mohadi,Mardiyanto Mardiyanto,Idha Royani. Ammonium-assisted Intercalation of Java Bentonite as Effective of Cationic Dye Removal[J]. Journal of Ecological Engineering,2022(prepublish).

[2]郑歆.Java程序设计课程的教学实践[J].集成电路应用,2022,39(11):94-95.DOI:10.19339/j.issn.1674-2583.2022.11.036.

[3]. USU Software Asset Management is Verified for Data Discovery of JAVA Software[J]. M2 Presswire,2022.

[4]李乐.Java语言应用研究[J].智慧中国,2022(09):80-81.

[5]娄用够.基于B/S的实验室数据管理系统设计[J].信息与电脑(理论版),2022,34(18):86-88.

[6]彭莉芬.大数据视域下Java集合应用研究[J].福建电脑,2022,38(09):55-58.DOI:10.16707/j.cnki.fjpc.2022.09.012.

[7]欧阳桂秀.基于Java和MySQL的数据库管理系统的设计与实现[J].信息记录材料,2022,23(09):240-242.DOI:10.16009/j.cnki.cn13-1295/tq.2022.09.007.

[8]仓业金.基于Java的软件保护技术研究[J].电脑知识与技术,2022,18(23):29-30+52.DOI:10.14004/j.cnki.ckt.2022.1597.

[9]余晓明,孙咸凯,曹远见,蒋俊慧,吴超.基于B/S架构的企业干部信息管理系统[J].自动化技术与应用,2022,41(07):170-172+190.DOI:10.20033/j.1003-7241.(2022)07-0170-04.

[10]杨迎.Java技术在嵌入式系统中的作用探讨[J].无线互联科技,2022,19(14):96-98.

[11]杜成龙.基于MVC模式的三层架构研究[J].软件,2022,43(06):100-102.

[12]于昕,廖晨伶,周卫丽.基于MVC的软件架构重构与优化研究[J].吉林化工学院学报,2021,38(07):49-52.DOI:10.16039/j.cnki.cn22-1249.2021.07.010.

[13]檀翔.基于B/S架构的分布式测控技术研究[J].现代信息科技,2021,5(05):8-12+18.DOI:10.19850/j.cnki.2096-4706.2021.05.002.

[14]张国华,叶苗,王自然,周婷婷.大数据Hadoop框架核心技术对比与实现[J].实验室研究与探索,2021,40(02):145-148+176.DOI:10.19927/j.cnki.syyt.2021.02.028.

[15]王珈珞,曹前.基于Hadoop框架下高职微课程的研究与分析[J].现代信息科技,2020,4(18):140-143.DOI:10.19850/j.cnki.2096-4706.2020.18.039.

[16]许文鹏,李胜广,赵士伟,李思,李攀.基于Hadoop框架的大数据平台探析[J].中国安防,2020(04):38-45.

[17]陈彬.基于Hadoop框架的海量数据运营系统研究[J].自动化技术与应用,2020,39(03):178-181.

[18]蔡晓晨,徐勇.基于Hadoop框架在电力大数据技术的探究[J].信息技术与信息化,2019(12):254-256.

[19]陈龙,黄丹芸.基于hadoop框架的大数据处理与分析系统[J].福建电脑,2018,34(05):116-117.DOI:10.16707/j.cnki.fjpc.2018.05.059.

[20]陈坤. 基于Hadoop框架的专题信息存储及多维分析系统构建研究[D].南京理工大学,2018.

点赞+收藏+关注  →私信领取本源代码、数据库

关注博主下篇更精彩
一键三连!!!
一键三连!!!
一键三连!!!
感谢一键三连!!!