多媒体应用开发题目:简易多媒体数据库应用程序学生姓名:孙乾学号:1315925190专业班级:13软设1班指导老师:李蕊摘要本文是一个在VC++6.0环境下开发的,基于ODBC开发的简易多媒体数据库应用程序。该数据库的功能包括添加、修改、删除和浏览等功能,图片的保存、打开、显示等功能。并可以提供空间上传图像显示在控件上,此外还可以在窗口上显示学生的基本信息等功能。关键字:多媒体数据库ODBC目录一、绪论1.1、多媒体数据库的基本概念1.2多媒体数据库的数据管理二、系统分析与设计2.1系统需求分析2.2系统结构设计三、数据库设计与实现3.1Access简介3.2数据库设计四、系统实现4.1界面模块实现4.2部分功能模块实现五、总结六、参考文献绪论在数据库发展的前30年,其应用主要集中在大部分数值型的商业和工业数据的管理上。未来的十几年内,非数值型的文本信息可能会成为数据库系统管理的主要内容。这些内容需要数据库系统增加一些新的功能,包括文档比较、文档概念化、文档理解、文档索引与文档汇总等。多媒体信息系统促进了在历史上是两个独立领域学科的信息检索和数据库管理的融合。1.1、多媒体数据库的基本概念多媒体数据库提供了允许用户存储和查询不同类型的多媒体信息的特征。多媒体信息包括图像(例如照片和绘图)、视频片段(例如电影、新闻报道及家庭录像)、音频片段(例如歌曲、电话录音及演讲)和文档(例如书籍和文章)等。需要的数据库查询类型包括定位包含某一感兴趣对象的多媒体数据源等。例如,某人想在一个视频数据库中需找有一个人物出现的所有视频片段,他还可能想检索其中包含某些特定活动的视频片段,比如一场足球比赛中某一队员或球队射门得分的视频片段。1.2多媒体数据库的数据管理多媒体应用系统需要处理大量的图像、文档、音频和视频片段以及文本数据,这依赖于数据结构与内容的合适的建模,并随后对多媒体信息的存储和检索设计相应的数据库模式。多媒体信息系统非常复杂,设计大量的问题,其中包括如下的几个主要的问题:(1)建模。把数据库与信息检索技术应用到建模问题上还有很大的潜力。但在处理由各种类型的数据组成的复杂对象时存在着不少问题。这些数据类型包括数值、文本、图形(计算机生成的图形)、动画图像、音频流以及视频序列等。(2)设计。多媒体数据库的概念设计、逻辑设计和物理设计需要进一步研究,现在仍然是热门的研究领域。设计过程可以基于数据库系统设计的通力方法学,但是层次的性能和优化问题会更加复杂。(3)存储。把多媒体数据存储在标准的类磁盘设备上,会给信息的显示、压缩,到设备层次的映射、存档以及I/O操作时的缓冲带来困难。大部分多媒体产品上坚持采用JPEG或MPEG等标准来解决上述问题。在DBMS中,二进制大对象BLOG支持无类型位图的存储和检索,需要使用标准化的软件对同步和压缩/解压缩进行处理,这将涉及索引问题,多媒体数据的索引尚处于研究阶段。(4)查询和检索。对于图像、视频数据和音频数据的查询和检索带来了许多问题,例如有效地查询表达式、查询执行及优化。传统的查询优化技术需要进行修改,才能应用于多媒体数据类型。(5)性能。对于只涉及文档和文本的多媒体应用,性能的需求取决于用户。对于视频回放和音频-视频同步的应用,性能表现则取决于物理限定。例如,必须稳定地以30帧每秒的速率传输视频信息。查询优化技术可以在计算查询之前估算期望的响应时间。系统分析与设计2.1系统需求分析随着计算机辅助设计、计算机辅助制造等计算机应用技术的不断发展,许多复杂的应用对象中涉及到大量的图形、图像、声音、动画等多媒体数据类型。起初,应用程序开发者直接采用文件系统方式存放数据,在程序中直接对数据文件进行操作,数据的物理存储方式对开发者是不透明的。但是当数据需求量不断增加,数据量越来越大,随之而来的是对数据操作的困难不断增加。尤其当人们试图在分布式环境下进行多媒体数据的处理时采用文件系统的方式已完全不能适应了。因此,当人们在寻找一种更加完善的解决办法时,多媒体数据库技术作为一种强大的多媒体数据处理技术成为了首选方案。2.2系统结构设计2.2.1模块设计:基本信息模块:此模块显示学生的基本信息,与数据库进行数据交换,如:学号、姓名、性别、年龄数据库模块:用户可以进行修改、删除等操作2.2.2E-R图2.2.3功能模块图基本信息学号姓名性别年龄图片多媒体数据库数据库操作基本信息图片添加删除修改添加删除修改删除添加浏览数据库设计与实现3.1AccessMicrosoftOfficeAccess是由微软发布的关系数据库管理系统。它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的系统程序之一。MicrosoftOfficeAccess是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员,在包括专业版和更高版本的office版本里面被单独出售。2012年12月4日,最新的微软OfficeAccess2013在微软Office2013里发布,微软OfficeAccess2010是前一个版本。MSACCESS以它自己的格式将数据存储在基于AccessJet的数据库引擎里。它还可以直接导入或者链接数据(这些数据存储在其他应用程序和数据库)。软件开发人员和数据架构师可以使用MicrosoftAccess开发应用软件,“高级用户”可以使用它来构建软件应用程序。和其他办公应用程序一样,ACCESS支持VisualBasic宏语言,它是一个面向对象的编程语言,可以引用各种对象,包括DAO(数据访问对象),ActiveX数据对象,以及许多其他的ActiveX组件。可视对象用于显示表和报表,他们的方法和属性是在VBA编程环境下,VBA代码模块可以声明和调用Windows操作系统函数。3.2数据库设计3.2.1表设计3.2.2数据填充系统实现4.1界面模块实现4.2部分功能模块实现---------------------------------初始化-----------------------------voidCMyDB2View::OnInitialUpdate(){m_pSet=&GetDocument()-m_myDB2Set;CRecordView::OnInitialUpdate();GetParentFrame()-RecalcLayout();ResizeParentToFit();//下面代码用于在开始时显示第一条记录的图片CStringstrFileName=yyy.bmp;chartmpPath[_MAX_PATH+1];GetTempPath(_MAX_PATH,tmpPath);strFileName.Insert(0,tmpPath);//向临时文件写数据,实质是生成图像文件CFileoutFile(strFileName,CFile::modeCreate|CFile::modeWrite);LPSTRbuffer=(LPSTR)GlobalLock(m_pSet-m_column5.m_hData);outFile.WriteHuge(buffer,m_pSet-m_column5.m_dwDataLength);outFile.Close();LoadBmpFile(strFileName);m_hPhotoBmp=TransToBmp();//设置各个按钮的初始状态,增加操作的可维护性及容错性m_Butt_Add.EnableWindow(TRUE);m_Butt_Edit.EnableWindow(TRUE);m_Butt_Del.EnableWindow(TRUE);m_Butt_QR.EnableWindow(TRUE);m_Butt_CX.EnableWindow(TRUE);m_Butt_Pic.EnableWindow(TRUE);m_RecordAddNew=FALSE;m_RecordModify=FALSE;}------------------------------添加-------------------------------voidCMyDB2View::OnAdd(){EnableEditCom(true);//用于启动编辑框等控件IniDate();//设置各个按钮的状态m_Butt_Add.EnableWindow(FALSE);m_Butt_Edit.EnableWindow(FALSE);m_Butt_Del.EnableWindow(FALSE);m_Butt_QR.EnableWindow(FALSE);m_Butt_CX.EnableWindow(TRUE);m_Butt_Pic.EnableWindow(TRUE);m_pSet-CanAppend();m_pSet-AddNew();UpdateData(FALSE);m_RecordAddNew=TRUE;}-------------------------------浏览图片-----------------------------voidCMyDB2View::OnButtonPic(){//TODO:AddyourcontrolnotificationhandlercodeherestaticcharBASED_CODEszFilter[]=BMPFiles(*.bmp)|*.bmp||;CFileDialogdlg(TRUE,BMP,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);if(dlg.DoModal()==IDOK){CStringpathname=dlg.GetPathName();ClearPhoto();LoadBmpFile(pathname);m_hPhotoBmp=TransToBmp();m_Butt_QR.EnableWindow(TRUE);Invalidate();}}---------------------------删除--------------------------------------voidCMyDB2View::ClearPhoto()//清除照片显示区域{if(m_hPhotoBmp){DeleteObject(m_hPhotoBmp);m_hPhotoBmp=NULL;Invalidate();//刷新}if(m_pBmpBuffer){deletem_pBmpBuffer;m_pBmpBuffer=NULL;}}总结根据本次课题要求,基本完成了学生信息的添加、修改等功能,可实现图片的显示保存等,整个课题的开发是基于Access和VC++6.0环境开发的简易多媒体数据库,此次学习,我学习到了数据库的创建,Access的基本应用,简单多媒体技术的应用,也遇到了许多难以解决的困难,在看过很多资料,和同学交流后,解决了一些问题,也让我认识到自己在这一方面的不足,进步的空间还很大。以后的学习中,还应该脚踏实地,积累基础,学习的路是永不止境的,最后感谢教我们一学期的多媒体老师。参考文献1.《多媒体开发与编程》于永彦关明山王娅茹主编北京大学出版社2.《计算机网络教程》高传善主编复旦大学出版社