欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言源码评判系统设计与实现与实现学士学位论文.doc

    • 资源ID:91605405       资源大小:1,008KB        全文页数:65页
    • 资源格式: DOC        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言源码评判系统设计与实现与实现学士学位论文.doc

    北京邮电大学C语言源码评判系统设计与实现摘要C语言源码评判系统是智能信息处理技术的具体应用,系统可以自动完成选择题、填空题、简答题的自动评判,并自动编译、运行用户提交的源代码。实现的C语言源码评判系统,采用MySQL数据库保存用户身份信息,实现用户创建与删除,主要包括管理员、教师和学生三种身份。同时,在数据库中,还保存有学生的考试成绩与试卷提交时间,最重要的是数据库中保存有C语言试题库。Qt界面通过MySQL数据库API,访问并管理数据库中的相关数据信息,包括用户身份信息、成绩和C语言题库等。它通过Qt界面的方式提交用户针对特定问题设计的源代码,然后进行自动评判,立即反馈信息,给计算机专业数据结构、算法等课程的教学和学习带来极大的方便。本文在研究了当前流行的源代码自动评判系统后,针对源代码自动评判系统受时间地点限制、并发处理能力差、可伸缩性差等问题,完成改进的设计方案,并在Linux和Windows环境下用C/C+开发实现。系统遵循软件工程设计规范,针对提高系统可用性作了设计,并进行了性能测试和优化设计。关键词:多线程,高可用性,自动阅卷C Program Automatic Judge SystemAbstractThe C program automatic judge system is intelligent information processing technology, specific application, the system Call automatically compile and run the riser to submit the source code and system time consumed by user programsJudging system of implementation of the C language source code, using MySQL database to store the user identity information, realizes the user to create and delete, including administrators, teachers and students of three kinds of identity. At the same time, in the database, but also hold the students' test scores and test submission time, database is the most important mediator with C language test. Qt interface through the MySQL database API, access and management of the related data in the database information, including user identity information, grades and C language test, etc.It is submitted via a Qt UI designed for users to issue-specific source code,and then automatically judged immediately feedback to the computer science data structures,algorithms such source from the teaching and learning has brought great convenienceThis paper studies the source code for the popular automatic judge system,the source code for the automatic judge system by the time and place constraints,concurrent processing capability is poor,and poor scalability issues,the completion of an improved design,and in Linux & Windows with the C/C+ development environment to achieveSystem,follow the software engineering design specifications for improving system availability was designed and carried out performance testing and optimization of the design.Keywords: Multi-threading,High availability, automatic scoring目录摘要IABSTRACTII1 绪论11.1 课题国内外现状和发展趋势11.2 课题研究目的和意义11.2.1 考试管理信息化11.2.2 提高效率和质量11.2.3 减轻负担11.2.4 决策依据21.3 本文结构21.4 本论文完成的工作22 需求分析32.1 系统定义32.2 功能划分32.3 功能描述32.4 外部界面需求32.5 性能需求 32.6 运行需求43 关键技术53.1 图形界面Qt开发53.1.1 简介53.1.2 历史发展53.1.3 平台支持63.1.4 什么是Qt Creator63.1.5 什么是Qt Linguist63.1.6 Qt开发的优势63.1.7 使用Qt开发的成功实例73.1.8 发行版本93.2 开源数据库MySQL103.2.1 简介103.2.2 应用环境103.2.3 系统特性103.2.4 存储引擎113.2.5 索引功能113.2.6 索引类别124 系统设计及总体设计154.1 系统设计开发原则154.2 系统主要功能与处理流程154.3 方案设计及基本流程154.4 系统结构设计164.5 系统开发环境165系统详细设计185.1 数据库管理185.2 Qt界面设计205.3 C语言考试题型分析215.4 功能实现215.4.1 密码修改215.4.2 随机选题225.4.3 计算成绩235.4.4 检测抄袭245.4.5 加载源文件245.4.6 下一题255.4.7 数据库连接265.4.8 获取值276 系统测试286.1 测试方案286.2 运行界面286.2.1 登录系统286.2.2 管理员窗口296.2.3 教师管理窗口316.2.4 学生考试窗口326.3 系统测试33结论38致谢40外文原文41中文翻译57北京邮电大学1 绪论1.1 课题国内外现状和发展趋势目前,计算机课程的教育已基本普及,但是计算机课程不仅是一门技术更新快、信息量大的课程,同时也是一门实践性强的课程,这给教学和考试带来很大的难度,许多高校开发出自己的教学和考试系统,改变传统的教学、考试方法和手段,除利用现代多媒体等新兴的教学手段外,将考试全部改为上机考试,取得了很好的效果。但是,也存在很多问题,其中较为突出的问题是机试阅卷,在这方面一直没有一个较好的、完整的、适应面宽的系统上市,这主要是由于上机考试的环境比较容易建立,可以完整地收集考生的答题结果,但题目形式多种多样,学生答案也各不相同,因此自动阅卷难度很大,许多系统均采用客观题由计算机来判别给分,主观题由教师评阅给分,给教师带来大量的额外工作量。程序修改题和填空题中还应注意考虑原程序作者的思路,所作改动应尽量小。因为出题者给出的答案数是有限的,考生的答案如果出了出题者所给的范围,正确也被当作错误来处理了。这样不能发挥考生的创新能力。因此,自动阅卷系统对尽可能智能化评分是现在研究的一个重点,也是一个难点。1.2 课题研究目的和意义考试是教学全过程的一个重要环节,如何利用计算机把握好考试的质量,提高考试的效率,把教师从繁琐的手工劳动中解放出来,是教学改革的一个重要方面。随着各高校的扩招,许多高校师资力量严重匮乏,如果不能将教师从繁琐的手工重复劳动中解脱出来,对于提高教学质量和效率是非常不利的,高等学校作为为社会培养高级人才的基地,有义务和责任对本身教学的内容、手段和方法等进行全方位改革,给学生一个现成的利用计算机技术分析问题、解决问题的实际案例,以便适应信息社会的发展。1.2.1 考试管理信息化利用自动阅卷系统实现客观题自动阅卷和主观题计算机阅卷,可免去了人工评卷或客观题自动阅卷而主观题人工阅卷所带来诸多麻烦,使学校的考试管理乃至教学管理信息化得到了全面实现。1.2.2 提高效率和质量评卷教师无需来回搬动或翻阅试卷,只要点击鼠标即可完成阅卷工作,且无须流水线上的中间等待,使阅卷效率提高几倍以上。1.2.3 减轻负担提高效率也即减轻了工作量,特别是评卷完成后系统具有的按照预先设定的格式自动生成各种统计分析报告的功能,更是省去了评卷教师大量的统计分析时间,有利于教师把更多的时间和精力集中于教学与管理。1.2.4 决策依据利用自动阅卷系统完成考试评卷工作,将使得评卷的标准化和规范化操作得到了有效的保证。系统快速、准确、完整、统一地自动生成的考试情况分析报告也将为学校的教学管理决策提供科学依据。1.3 本文结构具体地讲,各章研究内容如下:第一章,首先介绍了本文研究背景,探讨了研究意义,然后对C语言源码评判系统的研究和发展概况进行了简单回顾,本章同时综述了其研究的目的和意义,最后概述了本文的主要内容。第二章,首先介绍了本课题使用到的主要关键技术,并进行详细分析。第三章,在前一章分析的基础上,给出了本系统整个架构设计的框图。从系统实施环境及开发工具介绍开始,重点分析了Qt和MySQL在核心评判模块上的应用,并结合源代码具体分析了技术的实现方法。第四章,重点介绍了该C语言源码评判系统的使用方法。1.4 本论文完成的工作通过近几个月的论文研究工作,课题研究完成了以下几个方面工作:1) 查阅国内外相关文献,分析当前C语言源码评判技术的研究现状;2) 搭建开发环境,包括图形界面开发工具Qt、数据库MySQL;3) 熟练掌握Qt开发工具的使用以及编程方法;4) 熟练掌握数据库MySQL使用以及编程方法;5) 完成MySQL数据库中的C语言题库录入;6) 完成MySQL数据库的用户身份信息设计与录入,包括管理员、教师与学生;7) 完成Qt界面的用户登录窗口、管理员后台管理窗口、教师成绩查询窗口、学生考试窗口,管理员可以通过界面完成对教师和学生帐号的添加与删除;8) 完成Qt界面学生考试窗口中编程题的评判系统,支持从外部导入源程序,进行编译和运行,并将编译与运行结果在窗口中进行动态显示;支持评判编程题是否抄袭的功能;2 需求分析2.1 系统定义随着现代计算机科学的发展,计算机课程的教育已基本普及,许多高校开发出自己的教学和考试系统,改变传统的教学、考试方法和手段,除利用现代多媒体等新兴的教学手段外,将考试全部改为上机考试,取得了很好的效果。也存在很多问题,其中较为突出的问题是机试阅卷,自动阅卷系统对尽可能智能化评分是现在研究的一个重点。 2.2 功能划分c语言源代码评判系统设计与实现可分为两部分:(1).登录界面(2).mysql数据库管理2.3 功能描述(1) 登陆界面功能:登录窗口:完成用户登录,可以选择管理员、教师和学生;管理员窗口:可以完成教师和学生的身份信息添加与删除;教师管理窗口:教师可以通过该窗口获取学生的考试成绩;学生考试窗口:学生通过该窗口可以完成C语言考试,并获取成绩。 (2)mysql数据库管理:Qt界面通过MySQL数据库API,访问并管理数据库中的相关数据信息,包括用户身份信息、成绩和C语言题库等。本课题实现的C语言源码评判系统,采用MySQL数据库保存用户身份信息,实现用户创建与删除,主要包括管理员、教师和学生三种身份。同时,在数据库中,还保存有学生的考试成绩与试卷提交时间,最重要的是数据库中保存有C语言试题库。2.4 外部界面需求 外部界面要遵循以下原则: (1) 界面简洁直观。 (2)数据显示清晰明了。 (3)操作简单方便,所有选项以键盘选择为主,符合一般软件的操作系统。 2.5 性能需求 (1)时间特性,时间反应要快。 (2)兼容性和扩展性 2.6 运行需求 (1)硬件环境 普通的计算机 (2)软件环境 支持的操作系统包括Windows98/XP/NT/2000中文版及以上版本 3 关键技术3.1 图形界面Qt开发3.1.1 简介Qt是一个1991年由奇趣科技开发的跨平台C+图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C+代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。Qt提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。3.1.2 历史发展1996 OctKDE组织成立1998 Apr 05Trolltech的程序员在 5 天之内将 Netscape5.0 从Motif移植到 Qt 上1998 Apr 08 KDE Free Qt 基金会成立1998 Jul 09 Qt 1.40 发布1998 Jul 12 KDE 1.0 发布1999 Mar 04QPL1.0 发布1999 Mar 12 Qt 1.44 发布1999 Jun 25 Qt 2.0 发布1999 Sep 13 KDE 1.1.2 发布2000 Mar 20嵌入式Qt 发布2000 Sep 06 Qt 2.2 发布2000 Oct 05 Qt 2.2.1 发布2000 Oct 30 Qt/Embedded 开始使用GPL宣言2000 Sep 04 Qt free edition 开始使用 GPL2008 Nokia从Trolltech公司收购Qt, 并增加LGPL的授权模式2011 Digia从Nokia收购了Qt的商业版权,从此Nokia负责Qt on Mobile, Qt Commercial由Digia负责,根据最新消息,NOKIA已经停止Meltemi系统开发,QT部门被解散2012 Aug 09 作为非核心资产剥离计划的一部分,诺基亚宣布将Qt软件业务出售给芬兰IT服务公司Digia。2013年7月3日,Digia公司Qt开发团队在其官方博客上宣布Qt 5.1正式版发布。2013年12月11日,Digia公司Qt开发团队宣布Qt 5.2正式版发布。2014年4月,Digia公司Qt开发团队宣布Qt Creator 3.1.0正式版发布。3.1.3 平台支持Qt支持下述平台:MS/Windows - 95、98、NT4.0、ME、2000、XP 、 Vista、Win7、win8、win2008Unix/X11 - Linux、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台Macintosh -Mac OS XEmbedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CE3.1.4 什么是Qt Creator在发布 Qt 4.6 的同时,作为 Qt 开发跨平台 IDE 的Qt Creator也发布了更新版本。Qt Creator 1.3 和 Qt 4.6共同构成的 Qt SDK,包含了开发跨平台应用程序所需的全部功能。Qt Creator是一个用于Qt开发的轻量级跨平台集成开发环境。Qt Creator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境 (IDE),并确保首次接触Qt框架的开发人员能迅速上手和操作。即使不开发Qt应用程序,Qt Creator也是一个简单易用且功能强大的IDE。1Qt Creator包含了一套用于创建和测试基于Qt应用程序的高效工具,包括:一个高级的C+代码编辑器 上下文感知帮助系统 可视化调试器 源代码管理 项目和构建管理工具Qt Creator在LGPL2.1版本授权下有效,并且接受代码贡献。3.1.5 什么是Qt LinguistQt Linguist被称为Qt语言家。它的主要任务只是读取翻译文件、为翻译人员提供友好的翻译界面,它是用于界面国际化的重要工具。Linguist工具从4.5开始可以支持Gettext的PO文件格式。3.1.6 Qt开发的优势优良的跨平台特性:Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。面向对象:Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。丰富的 API:Qt 包括多达 250 个以上的 C+ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理 功能。支持 2D/3D 图形渲染,支持 OpenGL。大量的开发文档。XML 支持。3.1.7 使用Qt开发的成功实例一些著名的例子如下:3DSlicer, a free open source software for visualization and medical image computingAcetoneISO:镜像文件挂载软件Adobe Photoshop Album,一个图像组织应用程序 35Arora:一款跨平台的开源网页浏览器Autodesk MotionBuilder, 三维角色动画软件Autodesk Maya, 3D建模和动画软件Avidemux, a Free Software program designed for multi-purpose video editing and processingAvogadro:高级分子编辑器B:暴雪公司开发的游戏对战平台BOUML,一个免费的统一建模语言工具箱Bitcoin:比特币chmcreator:开源的chm开发工具CineFX:一款跨平台、开源、免费、影片剪辑,特效与合成套装CoCoA, a software for computations in commutative algebraDash Express, an Internet-enabled personal navigation deviceDAZ Studio, a 3D figure illustration/animation applicationDoxygen:API文件产生器EAGLE, tool for designing printed circuit boards(PCBs)EiskaltDC+, a program that uses the Direct Connect protocol.Emergent:神经网络模拟器。, a software product for the simulation of electromagnetic fieldseva:Linux版QQ聊天软件。FreeCAD, a free and open source 3D-Solid and general purpose design CAD/CAEFreeMat:一个自由开源的数值计算环境和编程语言Full Tilt Poker, one of the most popular online poker programsGadu-Gadu:实时通信软件Gambas, A free development environment based on a Basic interpreterGoldenDict:一款开源的字典软件Google地球(Google Earth):三维虚拟地图软件。GNS:Cisco网络模拟器。Guitar Pro 6, a tablature editor刺猬大作战:一个基于百战天虫的开源游戏。Hydrogen, an advanced drum machineImageVis3D, a volume ray-casting applicationIpe:自由的矢量图形编辑器ISE Webpack, a freeware EDA tool for Windows and Linux developed by XilinxKadu, a Polish instant messenger using the Gadu-Gadu protocolKDELibs:一个许多KDE程序都使用的共享库,如Amarok、K3b、KDevelop、KOffice等。KeePassX, a multi-platform port of KeePass, an open source password manager for Microsoft WindowsLaunchy:一个开放源代码的快捷启动器LMMS:一个开放源代码的音乐编辑软件LyX:使用Qt作为界面的LaTeX软件。Mathematica:Linux和Windows版本使用Qt作为GUIMaxwell Render,a software package that aids in the production of photorealistic images from computer 3D model dataMixxx:跨平台的开放源代码DJ混音软件MuseScore,一个WYSIWYG的乐谱编辑器MythTV:开源的数字视频录制软件。Nuke, a node-based compositorPDFedit:自由的PDF编辑器PokerTH, an open source Texas hold 'em simulatorPsi:一款XMPP网络协定的实时通信软件qBittorrent:自由的BitTorrent P2P客户端QCad:一个用于二维设计及绘图的CAD软件Qjackctl, a tool for controlling the JACK Audio Connection KitQSvn, a GUI Subversion client for Linux, UNIX, Mac OS X and WindowsOpera:著名的网页浏览器。Qt Creator, the free software cross-platform integrated development environment from NokiaQterm:跨平台的BBS软件。Quantum GIS:自由的桌面GISQuassel IRC:跨平台的IRC客户端RealFlow, a fluid and dynamics simulator for the 3D industryRecoll:桌面搜索工具Rosegarden, a free software digital audio workstation programSciDAVis, a cross-platform plotting and data analysis programScribus:桌面排版软件。Skype:一个使用人数众多的基于P2P的VOIP聊天软件。SMPlayer:跨平台多媒体播放器Spotify, music streaming service.Stellarium:一款天文学的自由软件TeamSpeak:跨平台的音效通信软件Texmaker:一款跨平台的开放源代码LaTeX编辑器TeXworks, It is a graphical user interface to the typesetting system TeX.TOra, a database administration tool36UniversalIndentGUI,an application which helps the user to beautify, reformat or indent various kinds of code.Valknut,a program that uses the Direct Connect protocolVirtualBox:虚拟机软件。VisIt:一个开源型交互式并行可视化与图形分析工具,用于查看科学数据。VisTrails, a scientific workflow management and visualization systemVLC多媒体播放器:一个体积小巧、功能强大的开源媒体播放器。VoxOx, a unified communications software.WordPress, based on Qt for Maemo and Symbianwpa supplicant, a free software implementation of an IEEE 802.11iXconfig:Linux的Kernel配置工具咪咕音乐:咪咕音乐是中国移动倾力打造的正版音乐播放器WPS Office:金山软件公司推出的办公软件极品飞车:韩国Gameloft游戏公司出品的著名赛车类游戏3.1.8 发行版本Qt 是一个跨平台的 C+图形用户界面库,由挪威 TrollTech 公司于1995年底出品。Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员 就已经开始设计 Qt 了,Qt 的第一个商业版本于 1995 年推出。2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括Qt在内的技术都归入Nokia旗下。并且Nokia针对自己的移动设备平台规划的需要,将Qt按不同的版本发行。Qt商业版:提供给商业软件开发。它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服务。Qt开源版:仅仅为了开发自由和开放源码软件, 提供了和商业版本同样的功能。GNU通用公共许可证下,它是免费的。2009年3月发布的Qt 4.5 起,诺基亚为Qt增添开源LGPL授权选择。2009年5月11日起,诺基亚Qt Software 宣布 Qt源代码库面向公众开放,Qt 开发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了便于这些内容的管理,Qt Software 启用了基于 Git 和 Gitorious 开源项目的Web 源代码管理系统 。Qt专业版和企业版是Qt的商业版本。只有你购买了专业版或企业版,你才能够编写商业的,私人的或收费的软件。如果你购买了这些商业版本,你也可以获得技术支持和升级服务。Qt为微软公司的Windows操作系统只提供了专业版和企业版。3.2 开源数据库MySQL3.2.1 简介MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。3.2.2 应用环境与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP”组合。3.2.3 系统特性使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性。支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。支持多线程,充分利用CPU资源。优化的SQL查询算法,有效地提高查询速度。既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。提供用于管理、检查、优化数据库操作的管理工具。支持大型的数据库。可以处理拥有上千万条记录的大型数据库。支持多种存储引擎。Mysql是开源的,所以你不需要支付额外的费用。MySQL使用标准的SQL数据语言形式。Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。3.2.4 存储引擎MyISAMMysql5.5之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5起成为默认数据库引擎BDB源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用CSV: 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。BlackHole :黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。另外,Mysql的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。3.2.5 索引功能索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程度上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。1InnoDB数据表的索引与InnoDB数据表相比,在InnoDB数据表上,索引对InnoDB数据表的重要性要大得多。在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。“数

    注意事项

    本文(c语言源码评判系统设计与实现与实现学士学位论文.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开