基于MongoDB的学生信息管理.docx
- 文档编号:25095057
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:13
- 大小:282.03KB
基于MongoDB的学生信息管理.docx
《基于MongoDB的学生信息管理.docx》由会员分享,可在线阅读,更多相关《基于MongoDB的学生信息管理.docx(13页珍藏版)》请在冰豆网上搜索。
基于MongoDB的学生信息管理
基于MongoDB的学生信息管理
课程论文
课程名称:
《数据库设计与应用(B)》
任课教师:
课程号:
学期:
2016-2017学年第1学期
成绩
《基于MongoDB的学生信息管理》
院系
专业
班级
提交时间:
2016年11月8日
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的设计考虑了设备故障的场景,所以在设计之初时就做了容灾和故障转移等方面解决方案。
1信息管理设计
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
2实际运行
现在来实际运行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
3心得体会
其实,我自己并不是第一次使用数据库,之前学习PHP时也使用过MySQL数据库,对PHP的支持也正是我选择学习它的原因,并且在设计这个信息管理之初就曾设想让MongoDB数据库实现我所学过的MySQL的功能,因此找了许多资料,在PHP中加载对它的支持,研究如何在PHP上调用该数据库,但是网页始终显示读取失败,最后不得已使用了shell方法,在命令行模式下运行,但是我仍然感受到了它的简单方便,一些在MySQL中亢长的语句可以一句话代替,在shell中的运行速度也远远快于网页的实现。
MySQL也有自己的命令行模式,我之前也学习过,折腾一下午才勉强弄懂,而MongoDB数据库或许是因为使用默认的test数据库,我使用起来完全没遇到难题,比较轻松就能完成这个任务。
在实际使用中也遇到了各种不懂的难题,比如连接数据库之后,第一个shell程序不能直接关闭,要在后台保持运行等等。
而且在很多时候,之前记录在MySQL内的自由字段在之后都很难回忆或者重现查找出来,但是在MongoDB数据库数据库却可以很轻松地找到所需要的数组,又因为查询是条件查询,所以结果十分有规律,相反在MySQL之中,特别是大量数据叠加的时候,查找就会十分麻烦。
4结论
通过查看学习资料以及相关的文献,我对学生信息管理的应用有了一定程度上的了解。
在此基础之上,我设计开发了这个学生信息管理。
具体来说,我在开发时使用的是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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MongoDB 学生 信息管理