基于嵌入式SQL技术数据检索功能的实现本科 毕业论文.doc_第1页
基于嵌入式SQL技术数据检索功能的实现本科 毕业论文.doc_第2页
基于嵌入式SQL技术数据检索功能的实现本科 毕业论文.doc_第3页
基于嵌入式SQL技术数据检索功能的实现本科 毕业论文.doc_第4页
基于嵌入式SQL技术数据检索功能的实现本科 毕业论文.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(设计)论文题目基于嵌入式SQL技术数据检索功能的实现姓名(学号)系别信息工程学院专业计算机科学与技术导师姓名二一一年六月本科毕业论文(设计)基于嵌入式SQL技术数据检索功能的实现摘要:SQL是面向集合的描述性语言,具有功能强、效率高、使用灵活等特点,而单纯的SQL语言是一种独立的、非过程性语言,很难实现具有过程性控制的完整应用系统。嵌入式SQL语言就是将SQL语句直接嵌入到程序的源代码中,与其他高级程序设计语言相结合,使SQL语句负责控制数据库,高级语言负责控制程序流程,从而实现各种复杂应用的处理。本文在基于SQL技术的基础上,介绍了嵌入式SQL技术的发展、嵌入式SQL语言以及嵌入式SQL工作原理及流程,以JAVA作为宿主语言,以“图书馆管理系统”的设计为例,描述了嵌入式SQL技术的具体应用,重点设计并实现了数据的检索功能。关键词:嵌入式SQL;宿主语言;JAVA;JDBCTheImplementationofDataRetrievalBasedonEmbeddedSQLTechnologyAbstract:SQLisadescriptivelanguagewhichfacingtheset,ithasstrongfunction,highefficiency,agileusingandsoon.WhilepureSQLlanguageisindependentandnottheprocessoflanguage,ithardtoachieveapplicationsystemswhichwithprocesssexualcontrol,EmbeddedSQLlanguageembeddedtheSQLstatementtoprogramsourcecodedirectly,thencombinedotherhigh-levelprogramminglanguage,MakingtheSQLstatementresponsibleforcontrollingthedatabaseandSeniorlanguageisresponsibleforcontrolprocesses,Soastorealizetheprocessingvariouscomplexapplications.Inthispaper,onthebasisofSQLtechnology,IntroducedthedevelopmentofembeddedSQLtechnology,embeddedSQLlanguageandembeddedSQLworkingprincipleandprocess,AsthehostlanguageinJAVA,Withlibrarymanagementsystemthedesignasanexample,DescribestheapplicationoftheembeddedSQLtechnology,keydesignandrealizeddataretrievalfunctions.Keywords:EmbeddedSQL;HostLanguage;JAVA;JDBC本科毕业论文(设计)目录1绪论.11.1课题背景.11.2国内外的发展及现状.11.3课题研究的主要内容.22嵌入式SQL技术.22.1SQL和嵌入式SQL简介.22.2SQL语句.32.2.1基本SQL语句.32.2.2复杂SQL语句.42.3嵌入式SQL语句.62.4嵌入式SQL工作原理及流程.62.5嵌入式SQL应用.72.5.1宿主语言JAVA简介.72.5.2宿主语言JAVADB引擎驱动.72.5.3宿主语言JAVA应用程序接口JDBC.92.5.4嵌入式SQL应用示例.143数据检索功能的实现.173.1图书管理系统.183.2数据检索功能的设计.183.2.1系统结构设计.183.2.2数据库设计.193.3数据检索功能的实现.21总结.26致谢.27参考文献:.28本科毕业论文(设计)第1页1绪论1.1课题背景数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。随着嵌入式系统软件的发展,编程语言从10多年以前的汇编为主流发展到现在C、C+、Java为主流。另外,面向对象设计技术、组件技术等在嵌入式系统软件设计中的应用也日益引起人们的重视。嵌入式SQL(英文:EmbeddedSQL)是一种将SQL语句直接写入C语言,JAVAL,FORTRAN,Ada等编程语言的源代码中的方法。借此方法,可使得应用程序拥有了访问数据以及处理数据的能力。在这一方法中,将SQL文嵌入的目标源码的语言称为宿主语言。1.2国内外的发展及现状随着嵌入式SQL技术的普遍使用,支持嵌入式SQL的数据库产品也大量出现:OracleDatabaseAdaPro*Ada在Oracle7.3的版本中被加入产品族,并且在Oracle8中被替换为SQL*Module。但在此之后就一直没有更新2。SQL*Module支持Ada83.C/C+Pro*C在Oracle8时被替换成了Pro*C/C+。之后Pro*C/C+到OracleDatabase11g仍都在被支持。COBOLPro*COBOL到OracleDatabase11g仍都在被支持。FortranPro*FORTRAN在Oracle8之后的Oracle版本中就不再被更新,但Bug修正仍在维护中3。本科毕业论文(设计)第2页PascalPro*Pascal在Oracle8之后的Oracle版本中就不再被更新3。PI/LPro*PL/I自Oracle8之后就不再被更新,但文档中仍然有记述3。IBMDB2IBMDB2的版本9中提供了对于C/C+,COBOL,Java等宿主语言的嵌入式SQL的支持。PostgreSQLC/C+PostgreSQL自版本6.3起就提供了对于C/C+的嵌入式SQL的支持,以ECPG组件的形式存在。1.3课题研究的主要内容首先,本文简要的叙述了嵌入式SQL的定义以及发展现状,并详细介绍了嵌入式SQL的数据检索语句:基本嵌入式SQL数据检索功能语句和复杂嵌入式SQL数据检索语句;然后,本文以JAVA为宿主语言,重点分析嵌入式SQL在宿主语言JAVA中的工作原理和处理流程,以及对JDBC驱动和JDBCAPI做了详细介绍;最后,针对嵌入式SQL和宿主语言JAVA,以实例“图书馆管理系统”演示嵌入式SQL的具体应用。2嵌入式SQL技术2.1SQL和嵌入式SQL简介SQL(StructuredQueryLanguage)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大本科毕业论文(设计)第3页的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。SQL语言包含4个部分:数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。数据查询语言(DQL),例如:SELECT语句。数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。嵌入式SQL(英文:EmbeddedSQL)是一种将SQL语句直接写入C语言,COBOL,FORTRAN,JAVA等编程语言的源代码中的方法。借此方法,可使得应用程序拥有了访问数据以及处理数据的能力。在这一方法中,将SQL文嵌入的目标源码的语言称为宿主语言。在SQL标准的SQL86(1986年发布)中定义了对于COBOL,FORTRAN,PI/L等语言的嵌入式SQL的规范。在SQL89(1989年发布)规范中,定义了对于C语言的嵌入式SQL的规范。一些大型的数据库厂商发布的数据库产品中,都提供了对于嵌入式SQL的支持。比如Oracle,DB2等。2.2SQL语句2.2.1基本SQL语句简单嵌入式SQL数据检索功能语句表示只是对单表的数据检索,其基本语句为:“selectfromwheregroupbyhavingorderby“例如:查询学号为“S040901106”学生的姓名本科毕业论文(设计)第4页表2-1,studentInfo表相关数据StuIdStuNameDeptIdSexS040201101任非02MS040901102王情02FS040901103戴丽08FS040901106郑治08MSQL语句:SELECTStuNameFROMstudentInfoWHEREStuId=S040901106;2.2.1复杂SQL语句然而现实数据库项目中,对于数据库的数据检索可能设计有多个表,或要求更复杂的数据检索SQL语句,所以有必要介绍几种复杂的嵌入式SQL数据检索语句。3.2.1联接查询(一)内联接内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。2、不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括、=、=、!和。3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:SELECT*本科毕业论文(设计)第5页FROMauthorsASaINNERJOINpublishersASpONa.city=p.city又如使用自然连接,在选择列表中删除authors和publishers表中重复列(city和state):SELECTa.*,p.pub_id,p.pub_name,p.countryFROMauthorsASaINNERJOINpublishersASpONa.city=p.city(二)外连接内连接时,返回查询结果集合中的仅是符合查询条件(WHERE搜索条件或HAVING条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。如下面使用左外连接将论坛内容和作者信息连接起来:SELECTa.*,b.*FROMluntanLEFTJOINusertableasbONa.username=b.username以及他们所在的城市:SELECTa.*,b.*FROMcityasaFULLOUTERJOINuserasbONa.username=b.username(三)交叉连接交叉连接不带WHERE子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等于6*8=48行。SELECTtype,pub_nameFROMtitlesCROSSJOINpublishersORDERBYtype本科毕业论文(设计)第6页2.3嵌入式SQL语句(1)宿主变量宿主变量就是在嵌入式SQL语句中引用主语言说明的程序变量如:在JAVA语句中对程序变量:username、password的进行数据库插入操作Stringsql=insertintoreader(username,password)values(+username+,+password+);在嵌入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论