基于MongoDB的学生信息管理.docx

上传人:b****2 文档编号:102991 上传时间:2023-04-28 格式:DOCX 页数:12 大小:208.34KB
下载 相关 举报
基于MongoDB的学生信息管理.docx_第1页
第1页 / 共12页
基于MongoDB的学生信息管理.docx_第2页
第2页 / 共12页
基于MongoDB的学生信息管理.docx_第3页
第3页 / 共12页
基于MongoDB的学生信息管理.docx_第4页
第4页 / 共12页
基于MongoDB的学生信息管理.docx_第5页
第5页 / 共12页
基于MongoDB的学生信息管理.docx_第6页
第6页 / 共12页
基于MongoDB的学生信息管理.docx_第7页
第7页 / 共12页
基于MongoDB的学生信息管理.docx_第8页
第8页 / 共12页
基于MongoDB的学生信息管理.docx_第9页
第9页 / 共12页
基于MongoDB的学生信息管理.docx_第10页
第10页 / 共12页
基于MongoDB的学生信息管理.docx_第11页
第11页 / 共12页
基于MongoDB的学生信息管理.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于MongoDB的学生信息管理.docx

《基于MongoDB的学生信息管理.docx》由会员分享,可在线阅读,更多相关《基于MongoDB的学生信息管理.docx(12页珍藏版)》请在冰点文库上搜索。

基于MongoDB的学生信息管理.docx

基于MongoDB的学生信息管理

课程论文

课程名称:

《数据库设计与应用(B)》

任课教师:

课程号:

学期:

2016-2017学年第1学期

成绩

《基于MongoDB的学生信息管理》

院系

专业

班级

提交时间:

2016年11月8日

 

基于MongoDB的学生信息管理

湖北省武汉,430070

摘要:

目前,学生信息越来越庞大,管理难度也随之加大,而且传统的数据库又无法跟上时代的浪潮。

使用新型的数据库来替代传统数据库成为历史必然。

结合所学知识,我使用NoSQL数据库中的一种来实现对学生信息的基本管理。

在其中,我选择了MongoDB数据库作为信息管理的数据库。

另外,我所编写的管理程序是在cmd下通过使用命令行模式来完成。

它能够实现基本的数据库的操作,并且连接MongoDB数据库,对学生信息添加修改查找删除。

我设计这种方法是为了能够有效管理学生信息。

管理人员如果使用它,便可实现自动化、科学化的管理。

关键词:

MongoDB数据库;学生信息管理

StudentInformationManagementBasedonMongoDBDatabase

Abstract:

Atpresent,thestudentinformationismoreandmorehuge,themanagementdifficultyalsowillincrease,andmoreoverthetraditionaldatabasecannotkeepupwiththetideofthetimes.Usinganewtypeofdatabasetoreplacethetraditionaldatabasebecomesahistoricalnecessity.Combinedwiththeknowledge,IuseNoSQLdatabaseinawaytoachievethebasicmanagementofstudentinformation.Amongthem,IchosetheMongoDBdatabaseastheinformationmanagementdatabase.Inaddition,Iampreparedbythemanagementproceduresincmdthroughtheuseofthecommandlinemodetocomplete.Itcanachievethebasicdatabaseoperation,andconnecttotheMongoDBdatabase,modifythestudentinformationtoadddelete.Idesignedthismethodinordertobeabletoeffectivelymanagestudentinformation.Ifmanagersuseit,canbeautomated,scientificmanagement.

Keywords:

MongoDBdatabase;studentinformationmanagement

 

在web2.0时代来临的时代大背景之下,新型数据库的崛起成为历史必然。

我研究并使用MongoDB数据实现一个简易的学生信息管理,使其能够简单高效管理数据。

目前,相关领域广泛使用的是传统的数据库,比如说MySQL数据库。

而我使用的是在web2.0时代运用的MongoDB数据库,目前如何使用新型数据库克服原有数据库的种种不足成为热门。

1NoSQL与MongoDB研究

1.1NoSQL概念

随着web2.0的快速发展,非关系型、分布式数据存储得到了快速的发展,一些传统的关系数据库在应对web2.0网站,特别在应对是超大规模的web2.0纯动态网站已经显得力不从心,暴露了许多难以克服的问题。

在2009年,NoSQL的概念应运而生,NoSQL的拥护者们提倡使用一些非关系型的数据存储。

相对于铺天盖地的关系型数据库运用,这一新概念无疑是一种全新的思维的注入。

NoSQL最常见的解释是“non-relational”,但是“NotOnlySQL”也被很多人接受。

虽然还有其他的文档型的、列存储、图型数据库、xml数据库等,在NoSQL概念提出之前,这些数据库就被用于各种系统当中,但是却很少用于web互联网应用,但是我们一般使用NoSQL中的key-value存储方式,本文采用的也是这种方法。

1.2NoSQL的优点与缺点

优点:

1.具有十分良好的可扩展性。

2.类型是分布式计算。

3.低成本,很多数据库都是开源免费。

4.架构的灵活性,数据是半结构化。

5.没有复杂的关系。

缺点:

1.至今仍然没有标准化。

2.只有一些有限的查询功能。

2.1MongoDB基本介绍

MongoDB名称来源自“humongous”(意思为“巨大无比”),MongoDB是一个基于分布式文件存储的数据库。

它是由C++编写。

它能够为WEB应用提供可扩展的数据存储的解决方案。

而且在需要更多的存储空间和更强的处理能力的情况下,添加更多的节点,这样就可以保证服务器的性能。

MongoDB是一个介于关系数据库和非关系数据库之间的产品。

他支持的数据结构十分松散,反而可以存储一些比较复杂的数据类型。

MongoDB将所有的数据以文档的形式储存,其数据结构由键值(key=>value)对组成,这样MongoDB文档类似于JSON对象,字段值可以包含其他文档、数组及文档数组。

MongoDB支持各种编程语言:

JAVA,C++,PHP,C#等多种语言。

Mongo它最大的特点是支持的查询语言十分强大,而且其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且你还可以在MongoDB记录中设置任何属性的索引。

目前早已广泛运用在各大型公司以及研究机构。

2.2MongoDB的特点

(1)面向集合存储,易于存储对象类型的数据 ;

(2)模式十分自由 ;

(3)支持基于文档动态查询,支持完全索引;

(4)内置复制和故障恢复 ;

(5)使用高效的二进制数据存储,包括大型对象(如视频等); 

(6)本身自动处理碎片,以支持云计算层次的扩展性 ;

(7)支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程序 ;

(8)文件存储格式为BSON(是一种JSON的扩展); 

(9)可以在MongoDB记录中设置任何属性的索引;

(10)数据库本身支持的自动分片集群

(11)原子化的数据操作

(12)支持Map/Reduce、GridFS

2.3MongoDB的实际使用

(1)用于对象及JSON数据的存储:

MongoDB的BSON数据格式非常适合文档化格式的存储及查询。

(2)高伸缩性的应用:

实际上MongoDB非常适合由数十或数百台服务器组成的数据库。

MongoDB的路线图中已经包含对MapReduce引擎的内置支持 。

(3)大尺寸,低价值的数据:

使用传统的关系型数据库存储一些数据时可能会比较昂贵,而且在此之前,很多时候程序员往往会选择传统的文件进行存储 。

(4)缓存:

因为它的性能很高,MongoDB也适合作为信息基础设施的缓存层。

并且在系统重启之后,由MongoDB搭建的持久化缓存可以避免下层的数据源超量过载。

(5)网站的数据:

MongoDB非常适合实时的插入、更新与查询,并且具备网站实时数据存储所需的复制及高度伸缩性 。

MongoDB是一款非常实用的面向文档型非关系数据库,并且主要它应用在微博、博客等的消息存储业务之中,由于存储的数据与金融等行业比起来并不是那么重要,而且对事务也没什么非常严格要求,所以在这种场景下,MongoDB要比关系型数据库更加适合,除此之外,MongoDB的设计考虑了设备故障的场景,所以在设计之初时就做了容灾和故障转移等方面解决方案。

 

2信息管理设计

2.1信息内容的E-R图设计

分析了MongoDB数据库后,我们可以基本判断出学生信息大致可以分为五个部分:

1.学生姓名部分;2.学生年龄部分;3.学生性别部分;4.学生学号部分;5.学生专业部分。

如图2-1所示:

 

图2-1

2.2信息内容的表格设计

针对5中不同的学生信息,在下面逐一列出的详细数据库结构:

表2-2

字段名

数据类型

数据长度

NULL

学生姓名

Varchar

10

N

学生年龄

Int

10

N

学生性别

Varchar

10

N

学生学号

Int

10

Y

学生专业

Varchar

10

Y

 

3实际运行

现在来实际运行MongoDB,并观察MongoDB数据库如何能够实现学生信息的管理。

在此处我们使用shell,即在命令行模式下对MongoDB进行一些列操作。

3.1安装数据库

MongoDB提供了可用于32位和64位系统的预编译二进制安装包,可以从MongoDB官网上免费下载安装。

在下载之后,按操作提示安装即可,但是要记住安装的路径,此处为了操作方便选择安装在D盘。

而且在启动之前,我们要给mongodb指定一个数据库安放文件夹,这里取名为”db",用来存放mongodb中的数据。

3.2连接数据库

打开cmd,首先找到“mongodb”的路径,然后运行mongod开启命令,同时使用--dbpath指定数据存放地点为“db”文件夹。

最后要查看一下是否开启成功,如图3-2所示。

图3-2

从图中的信息中可以知道,mongodb采用的是27017端口,那么我们就在浏览器里面访问“http:

//localhost:

27017/”。

当看到下图时说明了数据库已经连接成功,如图3-3所示。

图3-3

此时保持连接不要关闭,再打开一个cmd程序,使用mongo命令打开shell,其中MongoDB默认连接的是“test”数据库,不妨就连接这个数据库。

3.3添加学生信息

这里取数据表名称为Student,进行insert添加操作,输入以下指令,添加学生信息。

以我自己的姓名lwx,年龄20为例,如图3-4所示。

图3-4

3.4查找学生信息

在Student数据表中,进行find查找操作,输入以下指令,查找学生信息。

以我自己的姓名,年龄为例。

从结果中可以看到“_id”这个字段是数据库默认给我们添加的GUID,其目的就是保证数据的唯一性,如图3-5所示。

图3-5

3.5更新学生信息

在Student数据表中,进行update查找操作,输入以下指令,更新学生信息。

以我自己的姓名,年龄为例,将我自己的年龄改为22岁,如图3-6所示。

图3-6

3.6删除学生信息

在Student数据表中,进行remove查找操作,输入以下指令,删除学生信息。

以我自己的姓名,年龄为例,如图3-7所示。

图3-6

4心得体会

其实,我自己并不是第一次使用数据库,之前学习PHP时也使用过MySQL数据库,对PHP的支持也正是我选择学习它的原因,并且在设计这个信息管理之初就曾设想让MongoDB数据库实现我所学过的MySQL的功能,因此找了许多资料,在PHP中加载对它的支持,研究如何在PHP上调用该数据库,但是网页始终显示读取失败,最后不得已使用了shell方法,在命令行模式下运行,但是我仍然感受到了它的简单方便,一些在MySQL中亢长的语句可以一句话代替,在shell中的运行速度也远远快于网页的实现。

MySQL也有自己的命令行模式,我之前也学习过,折腾一下午才勉强弄懂,而MongoDB数据库或许是因为使用默认的test数据库,我使用起来完全没遇到难题,比较轻松就能完成这个任务。

在实际使用中也遇到了各种不懂的难题,比如连接数据库之后,第一个shell程序不能直接关闭,要在后台保持运行等等。

而且在很多时候,之前记录在MySQL内的自由字段在之后都很难回忆或者重现查找出来,但是在MongoDB数据库数据库却可以很轻松地找到所需要的数组,又因为查询是条件查询,所以结果十分有规律,相反在MySQL之中,特别是大量数据叠加的时候,查找就会十分麻烦。

5结论

通过查看学习资料以及相关的文献,我对学生信息管理的应用有了一定程度上的了解。

在此基础之上,我设计开发了这个学生信息管理。

具体来说,我在开发时使用的是cmd命令行模式。

采用的数据库是MongoDB数据库。

通过一段时间的学习和研究后,我终于完成了一个能对学生信息进行添加,保存,修改和查询的简单的信息管理。

在设计和实现这个信息管理的过程中,我学习到了很多的关于MongoDB数据库的知识。

大致上了解了它的特点,功能以及如何实现我深刻体会到了开发必须要建立在认真分析的前提下,以规范化的研究为依托。

完整的学生信息管理系统应该是一个庞大而复杂的系统,但是,我所设计的这个学生信息管理只能实现一些简单的功能,想要进一步扩展完善它的功能,还需要进一步的学习和研究。

总而言之本文设计的学生信息管理:

1.建立并且成功链接了MongoDB数据库。

2.实现了学生信息的查询、添加、修改以及删除操作。

3.用户界面友好,界面清晰易懂,系统操作起来十分简单,工作人员学习起来会很容易。

虽然本系统实现了学生信息管理的一些基本功能,但还有很多想要改进和扩展的地方。

比如:

学生的信息表不够详细,只有某人的名字,年龄,性别和专业等。

若进一步开发该系统,可以在此基础上提供更多的信息。

并且在之前曾设想使用PHP等后台语言实现可视化管理操作,在网页上更加清楚直观地感受MongoDB数据库的强大,但是最终因时间有限、学习不精等一系列问题导致一无所获。

 

参考文献

1.NoSQL数据库家族图谱,TechTarget商务智能,2014-8-6

2.解读NoSQL数据库的四大家族,云创存储,2014-11-27

3.MongoDB刚刚发布了2.4版本:

搜我们,2013-04-22

4.分布式文档存储数据库MongoDB:

开源社区网,2012-09-8

5.MongoDB2.1开发分支发布了!

开源社区网,2012-09-25

6.MongoDB2.0.6发布,分布式文档数据库:

开源社区网,2012-09-25

7.MongoDB简介:

w3cschool菜鸟教程,2014-11-20

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2