《基于某MongoDB地学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《基于某MongoDB地学生信息管理系统.docx(10页珍藏版)》请在课桌文档上搜索。
1、课程论文课程名称:数据库设计与应用(B)任课教师:课程号:学期:2016-2017学年第1学期成绩基于MongoDB的学生信息管理院系专业班级提交时间:2016年11月8日基于MongoDB的学生信息管理某某省某某,430070摘要:目前,学生信息越来越庞大,管理难度也随之加大,而且传统的数据库又无法跟上时代的浪潮。使用新型的数据库来替代传统数据库成为历史必然。结合所学知识,我使用NoSQL数据库中的一种来实现对学生信息的根本管理。在其中,我选择了MOngODB数据库作为信息管理的数据库。另外,我所编写的管理程序是在Cmd下通过使用命令行模式来完成。它能够实现根本的数据库的操作,并且连接Mon
2、gODB数据库,对学生信息添加修改查找删除。我设计这种方法是为了能够有效管理学生信息。管理人员如果使用它,便可实现自动化、科学化的管理。关使司:MongODB数据库;学生信息管理StudentInformationManagementBasedonMongoDBDatabaseAbstract:Atpresent,thestudentinformationismoreandmorehuge,themanagementdifficultyalsowillincrease,andmoreoverthetraditionaldatabasecannotkeepupwiththetideoftheti
3、mes.Usinganewtypeofdatabasetoreplacethetraditionaldatabasebeesahistoricalnecessity,binedwiththeknowledge,IuseNoSQLdatabaseinawaytoachievethebasicmanagementofstudentinformation.Amongthem,IchosetheMongoDBdatabaseastheinformationmanagementdatabase.Inaddition,Iampreparedbythemanagementproceduresincmdthr
4、oughtheuseofthemandlinemodetoplete.Itcanachievethebasicdatabaseoperation,andconnecttotheMongoDBdatabase,modifythestudentinformationtoadddelete.Idesignedthismethodinordertobeabletoeffectivelymanagestudentinformation.Ifmanagersuseit,canbeautomated,scientificmanagement.Keywords:MongoDBdatabase;studenti
5、nformationmanagement在web2.0时代降临的时代大背景之下,新型数据库的崛起成为历史必然。我研究并使用MOngoDB数据实现一个简易的学生信息管理,使其能够简单高效管理数据。目前,相关领域广泛使用的是传统的数据库,比如说MySQL数据库。而我使用的是在web2.0时代运用的MongoDB数据库,目前如何使用新型数据库克制原有数据库的种种不足成为热门。1NoSQL与MongoDB研究NoSQL概念随着的快速开展,非关系型、分布式数据存储得到了快速的开展,一些传统的关系数据库在应对Web2.0,特别在应对是超大规模的Web2.0纯动态已经显得力不从心,暴露了许多难以克制的问题。
6、在2009年,NOSQL的概念应运而生,NoSQL的拥护者们提倡使用一些非关系型的数据存储。相对于铺天盖地的关系型数据库运用,这新概念无疑是一种全新的思维的注入。NoSQL最常见的解释是“non-relational,但是NotOnlySQL也被很多人承受。虽然还有其他的文档型的、列存储、图型数据库、Xml数据库等,在NOSQL概念提出之前,这些数据库就被用于各种系统当中,但是却很少用于web互联网应用,但是我们一般使用NoSQL中的key-value存储方式,本文采用的也是这种方法。优点:L具有十分良好的可扩展性。2,类型是分布式计算。3 .低本钱,很多数据库都是开源免费。4 .架构的灵活性
7、,数据是半结构化。5 .没有复杂的关系。缺点:1 .至今仍然没有标准化。2 .只有一些有限的查询功能。goDB根本介绍MongoDB名称来源自“humongous(意思为巨大无比)MongoDB是一个基于分布式文件存储的数据库。它是由C+编写。它能够为WEB应用提供可扩展的数据存储的解决方案。而且在需要更多的存储空间和更强的处理能力的情况下,添加更多的节点,这样就可以保证服务器的性能。MongoDB是一个介于关系数据库和非关系数据库之间的产品。他支持的数据结构十分松散,反而可以存储一些比拟复杂的数据类型。MongODB将所有的数据以文档的形式储存,其数据结构由键值(key=value)对组成,
8、这样MongODB文档类似于JSON对象,字段值可以包含其他文档、数组与文档数组。MongoDB支持各种编程语言:JAVA,C+,PHP,C#等多种语言。Mongo它最大的特点是支持的查询语言十分强大,而且其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大局部功能,而且你还可以在MOngoDB记录中设置任何属性的索引。目前早已广泛运用在各大型公司以与研究机构。goDB的特点(1)面向集合存储,易于存储对象类型的数据;(2)模式十分自由;(3)支持基于文档动态查询,支持完全索引;(4)内置复制和故障恢复;(5)使用高效的二进制数据存储,包括大型对象(如视频等);(6)本
9、身自动处理碎片,以支持云计算层次的扩展性;(7)支持Python,PHP,Ruby,Java,C,C#,Javascript,PeH与C+语言的驱动程序;(8)文件存储格式为BSON(是一种JSON的扩展);(9)可以在MongoDB记录中设置任何属性的索引;(10)数据库本身支持的自动分片集群(11)原子化的数据操作(12)支持Map/Reduce、GridFSgoDB的实际使用(1)用于对象与JSON数据的存储:MongoDB的BSON数据格式非常适合文档化格式的存储与查询。(2)高伸缩性的应用:实际上MongoDB非常适合由数十或数百台服务器组成的数据库。MongoDB的路线图中己经包含
10、对MapReduce引擎的内置支持。(3)大尺寸,低价值的数据:使用传统的关系型数据库存储些数据时可能会比拟昂贵,而且在此之前,很多时候程序员往往会选择传统的文件进展存储。(4)缓存:因为它的性能很高,MongoDB也适合作为信息根底设施的缓存层。并且在系统重启之后,由MongoDB搭建的持久化缓存可以防止下层的数据源超量过载。(5)的数据:MOngODB非常适合实时的插入、更新与查询,并且具备实时数据存储所需的复制与高度伸缩性。MOngoDB是一款非常实用的面向文档型非关系数据库,并且主要它应用在微博、博客等的消息存储业务之中,由于存储的数据与金融等行业比起来并不是那么重要,而且对事务也没什
11、么非常严格要求,所以在这种场景下,MongODB要比关系型数据库更加适合,除此之外,MOngoDB的设计考虑了设备故障的场景,所以在设计之初时就做了容灾和故障转移等方面解决方案。2信息管理设计分析了MongoDB数据库后,我们可以根本判断出学生信息大致可以分为五个局部:1.学生某某局部;2.学生年龄局部;3.学生性别局部;4.学生学号局部;5.学生专业局部。如图2-1所示:图2-1针对5中不同的学生信息,在下面逐一列出的详细数据库结构:表2-2字段名数据类型数据长度NULL学生某某Varchar10N学生年龄Int10N学生性别Varchar10N学生学号Int10Y学生专业Varchar10
12、Y3实际运行现在来实际运行MongoDB,并观察MongoDB数据库如何能够实现学生信息的管理。在此处我们使用shell,即在命令行模式下对MongoDB进展一些列操作。MongoDB提供了可用于32位和64位系统的预编译二进制安装包,可以从MongoDB官网上免费下载安装。在下载之后,按操作提示安装即可,但是要记住安装的路径,此处为了操作方便选择安装在D盘。而且在启动之前,我们要给mongodb指定一个数据库安放文件夹,这里取名为“db”,用来存放mongodb中的数据。打开Cmd,首先找至mongodb的路径,然后运行mongod开启命令,同时使用-dbpath指定数据存放地点为db文件夹
13、。最后要查看一下是否开启成功,如图3-2所示。9C:WINDOWSsystem32CMD.exe-mongod-dbpath=d:appservmon.一IicrosoftWindows6.3.9600Cc2013MicrosoftCorporation保留所有权利O:MJsersXliwenxind:cdappseruXnongodbbinD:XflppSeruMongoDBbinongod dbpath=d:Xappserunongodbbin 2016-11-08T11:21:46.8000800 I CONTROL Cinitandlisten NongoDB starting : p
14、id=5 652 port=27017 dbpath=d:Xappserv MnongodbXbin 64-bit host=Iwx2016-11-08T11:21:46.802+0800indows Server 2008 R2 2016-11-08111:21:46.802+0800 2016-11-08111:21:46.802+0800CONTROLCONTROLCONTROLCinitandlisten(InitandlistenCinitandlistentargetMiOS:Windous 7zWdbue*sion 3.2.10git version: 79d9b3ab5ce20
15、F51c272b4411202710a082d03172016-11-08T11:21:46.802+08001.0.1t-fips 3 May 20162016-11-08T11:21:46.802*0800 2016-11-08T11:21:46.802+0800 2016-11-08T11:21:46.802+0800 2016-11-08111:21:46.802+0800 12016-11-08T11:21:46.802+0800 2016-11-08T11:21:46.802+0800 2016-11-08T11:21:46.802+0800CONTROLInitandlisten
16、OpenSSLversion: OpenSSLIII ICONTROLCONTROL CONTROL CONTROLCONTROLCONTROL CONTROL(InitandlisteninItandlisten Cinitandlisten inItandlisten JCinitandlistenCinitandlisten Cinitandlistenallocator:tcnallocnodules: none build enui,onnent:distnod: 2008PIUS-SSdistarch:86-64target_arch: 86-64 options: storage
17、: db图3-2从图中的信息中可以知道,mongodb采用的是27017端口,那么我们就在浏览器里面访问“IoCaIhoSt:27017/。当看到如下图时说明了数据库己经连接成功,如图3-3所示。fhttp勿。CalhOSt:27017/*Dhttp/UhOSt2701XItlookslikeyouaretryingtoaccessIIantoDBoverHTTPonthenativedriverport.图3-3此时保持连接不要关闭,再打开一个cmd程序,使用mongo命令打开shell,其中MongODB默认连接的是test”数据库,不妨就连接这个数据库。这里取数据表名称为StUden3进
18、展insert添加操作,输入以下指令,添加学生信息。以我自己的某某Iwx,年龄20为例,如图3-4所示。图3-4在StUdent数据表中,进展find查找操作,输入以下指令,查找学生信息。以我自己的某某,年龄为例。从结果中可以看到“_id这个字段是数据库默认给我们添加的GUlD,其目的就是保证数据的唯一性,如图3-5所示。03C:WINDOWSsystem32CMD.exe-mongo-MicrosoftWindows版本63962013MicrosoftCorporation保留所有权而IJOC:MJsersMiwenxind:D:appseruXnongodbXbin,appseruSno
19、ngodbXbin,不是内部或外邰命令,也不是可运行的程序或批处理文件。D:cdappseru5OngOdbXbinD:M)PPSerVXMongoDBXbinmongoFIongoDBshellversion:3.2.10connectingto:testdb.student.insertMriteResultdb.student.find,.idu:ObjectId,name“:age”:20在StUdent数据表中,进展Update查找操作,输入以下指令,更新学生信息。以我自己的某某,年龄为例,将我自己的年龄改为22岁,如图3-6所示。S9C:WINDOWSsystem32CMD.exe
20、-mongo-MicrosoftWindOWSC版本6.3.9600】2013MicrosoftCorporation),保留所有权利OC:Use*sliwenindD:appservXjnongodbXbin,appservmongodbbin,不是内部或外部命令,也不是可运行的程序或批处理文件。D:cdappse*ujongodbbinD:ppSeruMIongoDBXbinmogoNongoDBshellue*sion:3.2.10connectingto:test db.student.instU*iteResult db.student.fIndO ”_id“:ObjectId.“n
21、ame:,flw,“age”:20 db.student-updateUriteResultdb.student.FindC”_i(T:ObjectId,“name“:,joe0,“age:22图3-6在StUdent数据表中,进展remove查找操作,输入以下指令,删除学生信息。以我自己的某某,年龄为例,如图3-7所示。miC:WINDOWSsystem32CMD.exe-mongo-DB_D:AppServongoDBbinn090MongoDBshelluersion:3.2.10connectingto:test db.student,insert2016-11-08T11:24:22
22、.487+0800EQUERYthreadlSyntaxError:missing:afterprOPertyidP:1:37 db.student.insert2016-11-08T11:24:40.567+0800EQUERYthreadlJSyntaxError:missing:afterpropertyidG:1:37 db.student.insertUriteResultdb.student.find ,.id:Objectld,name:,lwxage:20 db.student.UPdate.name,:lw,age“:,22,UriteResult/Matched”:1.nU
23、pserted0:0,nModifiedu:1db.student.find ,.id,:ObjectId,“name“:,lw,“age”:“22”db.student.removename:Imx)UriteResultdb.student.finddb.student.count4心得体会其实,我自己并不是第次使用数据库,之前学习PHP时也使用过MySQL数据库,对PHP的支持也正是我选择学习它的原因,并且在设计这个信息管理之初就曾设想让MongODB数据库实现我所学过的MySQL的功能,因此找了许多资料,在PHP中加载对它的支持,研究如何在PHP上调用该数据库,但是网页始终显示读取失败
24、,最后不得已使用了shell方法,在命令行模式下运行,但是我仍然感受到了它的简单方便,一些在MySQL中亢长的语句可以一句话代替,在SheIl中的运行速度也远远快于网页的实现。MySQL也有自己的命令行模式,我之前也学习过,折腾一下午才勉强弄懂,而MOngoDB数据库或许是因为使用默认的test数据库,我使用起来完全没遇到难题,比拟轻松就能完成这个任务。在实际使用中也遇到了各种不懂的难题,比如连接数据库之后,第一个SheH程序不能直接关闭,要在后台保持运行等等。而且在很多时候,之前记录在MySQL内的自由字段在之后都很难回忆或者重现查找出来,但是在MongoDB数据库数据库却可以很轻松地找到所
25、需要的数组,又因为查询是条件查询,所以结果十分有规律,相反在MySQL之中,特别是大量数据叠加的时候,查找就会十分麻烦。5结论通过查看学习资料以与相关的文献,我对学生信息管理的应用有了一定程度上的了解。在此根底之上,我设计开发了这个学生信息管理。具体来说,我在开发时使用的是Cmd命令行模式。采用的数据库是MOngODB数据库。通过一段时间的学习和研究后,我终于完成了一个能对学生信息进展添加,保存,修改和查询的简单的信息管理。在设计和实现这个信息管理的过程中,我学习到了很多的关于MOngoDB数据库的知识。大致上了解了它的特点,功能以与如何实现我深刻体会到了开发必须要建立在认真分析的前提下,以规
26、X化的研究为依托。完整的学生信息管理系统应该是一个庞大而复杂的系统,但是,我所设计的这个学生信息管理只能实现一些简单的功能,想要进一步扩展完善它的功能,还需要进一步的学习和研窕。总而言之本文设计的学生信息管理:L建立并且成功了MongoDB数据库。2 .实现了学生信息的查询、添加、修改以与删除操作。3 .用户界面友好,界面清晰易懂,系统操作起来十分简单,工作人员学习起来会很容易。虽然本系统实现了学生信息管理的一些根本功能,但还有很多想要改良和扩展的地方。比如:学生的信息表不够详细,只有某人的名字,年龄,性别和专业等。假如进一步开发该系统,可以在此根底上提供更多的信息。并且在之前曾设想使用PHP
27、等后台语言实现可视化管理操作,在网页上更加清楚直观地感受MongoDB数据库的强大,但是最终因时间有限、学习不精等一系列问题导致一无所获。1. NOSQL数据库家族图谱,TeChTarget商务智能,2014-8-62. 解读NoSQL数据库的四大家族,云创存储,2014-11-273. MOngODB刚刚发布了2.4版本:搜我们,2013-04-224. 分布式文档存储数据库MongoDB:开源社区网,2012-09-85. MongoDB2.1开发分支发布了!:开源社区网,2012-09-256. MongoDB2.0.6发布,分布式文档数据库:开源社区网,2012-09-257. MongoDB简介:Mcschool菜鸟教程,2014-11-20