电子书管理系统毕业论文
2020-02-23 18:17:46
摘 要
随着互联网技术的广泛应用,每个参与互联网的个体和组织都可能成为一个信源体,在多种信息载体上传达各式各样的信息数据。数量庞大的节点和链路,造成互联网时代的数据爆炸性增长,规模疯狂扩大,数据结构多样性增多。电子书作为互联网中常见的媒体资源,其本身是一种非结构化数据。这使得电子书信息的数据量不仅多,而且多样性十分复杂。大数据时代对传统电子书管理系统提出了新的挑战,传统的关系模型数据库具有坚实的数学理论基础,应用广泛,可靠性高,但是缺乏应对大规模数据检索的能力,全文检索能够较好的应对大规模数据检索的应用场景,在电子书管理系统中引入全文检索技术很有意义。
课题将基于JAVA构建一个电子书管理系统,将电子书管理、用户管理等各个功能模块化,并给出具体设计与实现。为了保证系统的安全性,为系统创建角色模型,明确功能与角色权限的对应关系,为管理员提供高效率和安全的管理平台。
电子书管理系统的后台部分负责根据前端请求进行业务数据加工、返回响应、访问数据库、具体功能实现等功能。
为了提高系统应对大规模电子书数据的搜索能力,搜索模块给出了一种将Elasticsearch与MySQL数据库相结合的联合搜索方案。该方案设计并实现了MySQL的数据访问、Elasticsearch的数据访问和数据同步等关键技术,使电子书管理系统具备了检索大规模电子书信息的能力。
关键词:电子书,JAVA,权限,Elasticsearch,检索
Abstract
With the wide application of Internet technology, each individual and organization participating in the Internet may become a source of information, transmitting various kinds of information data on various information carriers. A large number of nodes and links have caused explosive growth of data in the Internet era, the scale has grown wildly, and the diversity of data structures has increased. E-books, as a common media resource in the Internet, are themselves unstructured data. This makes the amount of data in the e-book information not only more, but the diversity is very complicated. The era of big data poses new challenges to the traditional e-book management system. The traditional relational model database has a solid mathematical theory basis, is widely used, and has high reliability, but it lacks the ability to deal with large-scale data retrieval, and full-text search can be better. To deal with the application scenario of large-scale data retrieval, it is very meaningful to introduce full-text retrieval technology into the e-book management system.
The project will build an e-book management system based on JAVA, modularize the functions of e-book management and user management, and provide specific design and implementation. In order to ensure the security of the system, a role model is created for the system, and the corresponding relationship between the functions and role permissions is clarified, providing the administrator with an efficient and secure management platform.
The background part of the e-book management system is responsible for processing business data according to the front-end request, returning responses, accessing the database, and implementing specific functions.
In order to improve the system's ability to respond to large-scale e-book data search, the search module provides a joint search solution that combines Elasticsearch with the MySQL database. The program designs and implements key technologies such as MySQL data access, Elasticsearch data access, and data synchronization, enabling e-book management systems to have the ability to retrieve large-scale e-book information.
Keywords: E-book, JAVA, Permission, Elasticsearch, Retrieval
目录
摘要 3
Abstract 4
目录 5
第1章 绪论 6
1.1 研究背景与意义 6
1.2 论文主要研究内容 6
1.3 论文结构安排 6
第2章 电子书管理系统相关技术概述 8
2.1 关系型数据库 8
2.1.1 关系模型 8
2.1.2 数据库事务 8
2.2 对象关系映射技术 8
2.3 Elasticsearch技术 9
2.4 本章小结 9
第3章 电子书系统后台总体架构设计 10
3.1 系统后台概述 10
3.2 系统需求分析 10
3.2.1 用例分析 10
3.2.2 功能性需求分析 10
3.3 系统总体架构设计 11
3.3.1 系统功能模块 11
3.3.2 系统开发层次 13
3.4 本章小结 15
第4章 电子书管理系统后台详细设计与实现 17
4.1 数据存储层 17
4.1.1 MySQL数据库设计 17
4.1.2 Elasticsearch数据库设计 20
4.2 业务逻辑层 21
4.2.1 用户模块 21
4.2.2 电子书模块 21
4.2.3 电子书搜索模块 22
4.3 本章小结 24
第5章 系统运行测试 25
5.1运行测试 25
5.2 本章小结 31
第6章 总结与展望 32
6.1 总结 32
6.2 展望 33
参考文献 34
致谢 35
第1章 绪论
1.1 研究背景与意义
随着社会时代数字化的进步,人们越来越喜欢使用电子产品进行书籍阅读,纸质阅读方式遭到挑战。电子书发展的十分迅速,在整个数字出版中有着十分重要的地位。发达国家的电子书发展较我国早很多,领先很大。我国数字出版尚处在初步发展,各大数字出版商还有很大不足,尤其是电子书的经营和管理方面。
随着大数据时代的到来,人们对数据的认知已经改变。互联网中的信息内容含量巨大,是数字化形式的各种结构化数据、非结构化数据、信息的聚合。电子书本身就是一种非结构化数据,它无法用数据库的二维表格关系来表现和存储,但是电子书在信息流通过程中还附带一些结构化信息,如电子书名称、简介、作者、日期等等,所以电子书信息相当繁杂。大数据时代电子书数据的规模越来越大,多样性越来越大,传统的关系型数据库管理工具难以单独应对复杂大量的电子书文件和数据,具备高效全文检索能力的搜索工具和分布式的可应对异构数据的新兴数据库能够帮助应对大数据的挑战,提高对数据的管理、检索和利用效率。
随着书籍的数字化越来越普遍,很多人积累了大量的电子书籍,主要通过手工管理,容易丢失,查找也不容易,读过了哪些书,书中有价值的内容也没有记录,以后需要相关的知识时也无法立即回忆起来,因此设计这个电子书管理系统,帮助读者更好管理,阅读,回忆,查找相关书籍及其内容有现实意义。
本文的研究对系统开发的总的设计目标是实现电子书管理的系统化、规范化和自动化,实现对电子书的集中统一的管理。通过该系统可以实现电子书查找、电子书分类、电子书标签管理、用户信息的管理等各种功能,实现电子书管理的快捷、高效。
1.2 论文主要研究内容
本文针对基于B/S结构的电子书管理系统的开发工作给出了一种设计方案并加以实现,具体工作如下:
1)分析了电子书管理系统的角色用例和功能需求,明确了系统开发需要实现的业务功能,将系统开发划分成各个功能模块,细化了功能。
2)分析比较了开发工作需要用到的Web开发技术的优缺点,提出了一种电子书管理系统框架结构,对每个功能模块做了可行性分析,明确了开发实施方案,给出了开发工作的任务分配和工期计划。
3)给出了电子书管理系统概要设计,对系统进行模块化、层次化划分,详细设计了功能模块的实现方式。
4)给出了对系统层次化的详细设计:设计了数据存储层MySQL表结构、数据字段并搭建了数据库服务器;设计并实现业务逻辑层各模块的业务功能。
1.3 论文结构安排
本文共分为 6 章,各章的组织如下:
第1章:绪论。主要给出了本课题研究背景、电子书管理系统发展现状,阐述本文的主要工作。
第2章:电子书管理系统相关技术概述。详细介绍了电子书管理系统所使用的Java Web开发技术,关系型数据库、对象关系映射、Spring Boot框架以及Elasticsearch技术。
第3章:电子书管理系统后台总体架构设计。对系统进行了需求分析,包括用例需求与功能性需求,给出了系统开发中各个层次的架构设计。
第4章:电子书管理系统后台详细设计与实现。详细介绍了数据库设计。在业务逻辑层中,针对不同模块的不同功能,给出了流程设计和具体实现方法。
第5章:系统运行测试。对电子书管理系统进行了运行测试,展现了系统所有的功能。
第6章:总结与展望。对论文的主要工作进行了总结,提出了电子书管理系统的不足和未来可以扩展的方向。
第2章 电子书管理系统相关技术概述
本章针对电子书管理系统开发的具体需求,对系统的框架、模式等方面所涉及的关键技术进行了分析和研究。
2.1 关系型数据库
2.1.1 关系模型
目前最常见的数据模型就是关系模型,数据模型所具有的基本元素为数据操作、数据结构和完整性约束条件。数据结构是一张二维表,由行和列组成,表中一行内容称为元祖,它是不能重复的,表中每一列作为属性,一个实体一般拥有多个属性。数据操作基本是集合操作,主要操作为数据查询、插入、删除和修改。三种完整性约束条件为:参照完整性、实体完整性和用户定义完整性,参照完整性保证外键引用不能为空,实体完整性保证元组的主键不能为空,用户定义完整性即对某个属性的取值进行约束。关系模型有很多优势,比如,关系模型存取路径对于用户隐蔽,数据独立性和安全性较高,结构简易,易于理解,具有严格的数据理论基础。这些优势使得关系模型被广泛接受和应用,成为最主流的数据库模型。MySQL、Oracle、DB2等等都是著名的关系型数据库。
2.1.2 数据库事务
数据库事务是对数据库的一系列连续操作,一般是由高级编程语言的程序引起的。支持事务的数据库必须满足以下性质:
2)原子性:是指事务包含的所有操作要么全部成功,要么全部失败回滚到操作前的状态;
3)一致性:事务执行过程中都要处于一致性的状态;
4)隔离性:多个事务并发执行时,事务之间相互隔离,互不影响执行;
5)持久性:一旦事务成功,数据就永久储存在数据库中。
这些特性称为ACID(Atomicity、Consistency、Isolation、Durability)特性。
2.2 对象关系映射技术
长期以来,面向对象编程Java和SQL之间的差异一直都是开发人员讨论的问题,面向对象和SQL分别对应面向对象的域模型和持久化关系模型,主要问题有以下几点:
1)粒度问题:Java域模型中的类具有自定义的粒度级别,有粗粒度的实体父类,也可以有较小粒度的实体子类。但是SQL中只有两种粒度级别,一种是用户创建的关系类型,即二维表格关系结构可以作为一个粒度,另一种是数据库的内置数据类型,如VARCHAR、INT、TIMESTAMP等。这就逼迫面向对象的模型为了适应SQL不得不扁平化。
2)子类型问题:Java面向对象的一个重要特性就是继承,Java可以任意地使用继承来扩展已有的类。但是SQL的表结构无法实现继承,或者说没有统一的标准和形式来定义表之间的继承和多态。这就造成,Java域模型的继承结构必须持久化到一个不能实现继承的SQL数据库中。
3)标识问题:Java中有两种判断实例是否相同的方法,一种是判断数据在内存中的地址是否一致,即“地址相等”,另一种是使用equals()方法判断两个实例的值是否相等,即“值相等”。在SQL中则通过数据的主键标识进行比较。Java可能发生几个不同实例同时代表数据库中同一行数据的情况,比如在多线程并发场景中。
Java与SQL之间存在很多不匹配的问题,ORM(Object Relational Mapping)技术是解决这些问题的有效办法之一。ORM使用元数据描述Java类与SQL数据库结构之间的映射,令Java应用程序中的对象可以自动持久化到SQL数据库中的二维表格关系表中,或者从SQL数据库中取出数据转化成Java中的对象
2.3 Elasticsearch技术
Elasticsearch是由Shay Banon发起的一个开源搜索服务器项目,并于2010年2月公开了源代码。Elasticsearch使用Java开发并使用Lucene作为其核心来实现所有索引和搜索功能,通过简单的RESTful API隐藏了Lucene的复杂性。该项目目前已经成为搜索解决方案领域十分重要的一员。由于Elasticsearch出色的实时搜索能力和分布式特性,其经常被应用于文档数据库中。
Elasticsearch存储数据的方式与传统的关系型数据库具有实质区别。
Elasticsearch中索引概念和关系型数据库不一样,Elasticsearch中索引指存放数据文档的地方,相当于关系型数据库的表。文档是Elasticsearch存储数据的实体,相当于关系型数据库的行,Elasticsearch同一个索引中的文档不是固定结构,可以具备不同的结构,但多个文档之间共用的字段的类型相同。Elasticsearch的文档由各种字段组成,字段相当于表格型数据的列。字段都具有类型,比如字符串、数值或者日期,也可以是自定义文档和数组。Elasticsearch能够自动确定字段类型,并根据字段类型不同选择执行的操作。
Elasticsearch的服务器具有分布式的特性,它既可以作为一个独立的搜索服务器工作,也可以在多台服务器上协同工作,处理大规模数据,增加存储数据的容错能力。协同工作的服务器群被称作集群,集群中的服务器被称作节点,大量的数据被分割存放在不同的节点上,查询索引时,Elasticsearch将对每一个相关节点发送查询命令,再将每个节点返回的信息组合在一起。节点又被分割成多个分片,每一个分片都是一个Apache Lucene实例。Elasticsearch具有分片副本功能,副本分片是原始分片的拷贝,原始分片为主分片。Elasticsearch的所有操作都发生在主分片上,当原始分片丢失时,集群可以将一个副本分片提升为主分片。数据量很大时,硬件性能和搜索速度就会遇到瓶颈,多个分片可以分摊压力,同时为数据存储的水平扩展提供了可能。主分片故障时,副分片可以替代主分片的工作,保证系统的高可用性,副分片可以承担搜索操作,分摊了搜索压力。
本文电子书管理系统使用Elasticsearch提供的Java API进行开发。Elasticsearch的Java API十分丰富,能够完成所有的Elasticsearch操作。
Elasticsearch具有分布式特性和高效的全文的搜索能力,具有高并发处理能力,支持复杂的条件查询。但是其主要优势是搜索,如果作为存储管理数据的数据库,并不具备良好的事务能力,不能保证数据的正确性。
2.4 本章小结
本章详细介绍了电子书管理系统用的Web开发技术和数据库技术。分析了关系模型及数据库的关系;分析比较了对象关系映射思想;归纳总结了Elasticsearch搜索技术的特点,指出了Elasticsearch文档数据结构和MySQL表结构的关系与区别。为了使论文结构合理、逻辑严谨、条理清楚,本章将开发电子书管理系统的理论基础知识进行了归纳总结,为后面章节奠定了基础。
第3章 电子书系统后台总体架构设计
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: