基于嵌入式SQL技術(shù)數(shù)據(jù)檢索功能的實現(xiàn)本科 畢業(yè)論文.doc_第1頁
基于嵌入式SQL技術(shù)數(shù)據(jù)檢索功能的實現(xiàn)本科 畢業(yè)論文.doc_第2頁
基于嵌入式SQL技術(shù)數(shù)據(jù)檢索功能的實現(xiàn)本科 畢業(yè)論文.doc_第3頁
基于嵌入式SQL技術(shù)數(shù)據(jù)檢索功能的實現(xiàn)本科 畢業(yè)論文.doc_第4頁
基于嵌入式SQL技術(shù)數(shù)據(jù)檢索功能的實現(xiàn)本科 畢業(yè)論文.doc_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

本科畢業(yè)論文(設(shè)計)論文題目基于嵌入式SQL技術(shù)數(shù)據(jù)檢索功能的實現(xiàn)姓名(學號)系別信息工程學院專業(yè)計算機科學與技術(shù)導師姓名二一一年六月本科畢業(yè)論文(設(shè)計)基于嵌入式SQL技術(shù)數(shù)據(jù)檢索功能的實現(xiàn)摘要:SQL是面向集合的描述性語言,具有功能強、效率高、使用靈活等特點,而單純的SQL語言是一種獨立的、非過程性語言,很難實現(xiàn)具有過程性控制的完整應(yīng)用系統(tǒng)。嵌入式SQL語言就是將SQL語句直接嵌入到程序的源代碼中,與其他高級程序設(shè)計語言相結(jié)合,使SQL語句負責控制數(shù)據(jù)庫,高級語言負責控制程序流程,從而實現(xiàn)各種復(fù)雜應(yīng)用的處理。本文在基于SQL技術(shù)的基礎(chǔ)上,介紹了嵌入式SQL技術(shù)的發(fā)展、嵌入式SQL語言以及嵌入式SQL工作原理及流程,以JAVA作為宿主語言,以“圖書館管理系統(tǒng)”的設(shè)計為例,描述了嵌入式SQL技術(shù)的具體應(yīng)用,重點設(shè)計并實現(xiàn)了數(shù)據(jù)的檢索功能。關(guān)鍵詞:嵌入式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本科畢業(yè)論文(設(shè)計)目錄1緒論.11.1課題背景.11.2國內(nèi)外的發(fā)展及現(xiàn)狀.11.3課題研究的主要內(nèi)容.22嵌入式SQL技術(shù).22.1SQL和嵌入式SQL簡介.22.2SQL語句.32.2.1基本SQL語句.32.2.2復(fù)雜SQL語句.42.3嵌入式SQL語句.62.4嵌入式SQL工作原理及流程.62.5嵌入式SQL應(yīng)用.72.5.1宿主語言JAVA簡介.72.5.2宿主語言JAVADB引擎驅(qū)動.72.5.3宿主語言JAVA應(yīng)用程序接口JDBC.92.5.4嵌入式SQL應(yīng)用示例.143數(shù)據(jù)檢索功能的實現(xiàn).173.1圖書管理系統(tǒng).183.2數(shù)據(jù)檢索功能的設(shè)計.183.2.1系統(tǒng)結(jié)構(gòu)設(shè)計.183.2.2數(shù)據(jù)庫設(shè)計.193.3數(shù)據(jù)檢索功能的實現(xiàn).21總結(jié).26致謝.27參考文獻:.28本科畢業(yè)論文(設(shè)計)第1頁1緒論1.1課題背景數(shù)據(jù)庫技術(shù)是現(xiàn)代信息科學與技術(shù)的重要組成部分,是計算機數(shù)據(jù)處理與信息管理系統(tǒng)的核心。數(shù)據(jù)庫技術(shù)研究和解決了計算機信息處理過程中大量數(shù)據(jù)有效地組織和存儲的問題,在數(shù)據(jù)庫系統(tǒng)中減少數(shù)據(jù)存儲冗余、實現(xiàn)數(shù)據(jù)共享、保障數(shù)據(jù)安全以及高效地檢索數(shù)據(jù)和處理數(shù)據(jù)。隨著嵌入式系統(tǒng)軟件的發(fā)展,編程語言從10多年以前的匯編為主流發(fā)展到現(xiàn)在C、C+、Java為主流。另外,面向?qū)ο笤O(shè)計技術(shù)、組件技術(shù)等在嵌入式系統(tǒng)軟件設(shè)計中的應(yīng)用也日益引起人們的重視。嵌入式SQL(英文:EmbeddedSQL)是一種將SQL語句直接寫入C語言,JAVAL,F(xiàn)ORTRAN,Ada等編程語言的源代碼中的方法。借此方法,可使得應(yīng)用程序擁有了訪問數(shù)據(jù)以及處理數(shù)據(jù)的能力。在這一方法中,將SQL文嵌入的目標源碼的語言稱為宿主語言。1.2國內(nèi)外的發(fā)展及現(xiàn)狀隨著嵌入式SQL技術(shù)的普遍使用,支持嵌入式SQL的數(shù)據(jù)庫產(chǎn)品也大量出現(xiàn):OracleDatabaseAdaPro*Ada在Oracle7.3的版本中被加入產(chǎn)品族,并且在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。本科畢業(yè)論文(設(shè)計)第2頁PascalPro*Pascal在Oracle8之后的Oracle版本中就不再被更新3。PI/LPro*PL/I自O(shè)racle8之后就不再被更新,但文檔中仍然有記述3。IBMDB2IBMDB2的版本9中提供了對于C/C+,COBOL,Java等宿主語言的嵌入式SQL的支持。PostgreSQLC/C+PostgreSQL自版本6.3起就提供了對于C/C+的嵌入式SQL的支持,以ECPG組件的形式存在。1.3課題研究的主要內(nèi)容首先,本文簡要的敘述了嵌入式SQL的定義以及發(fā)展現(xiàn)狀,并詳細介紹了嵌入式SQL的數(shù)據(jù)檢索語句:基本嵌入式SQL數(shù)據(jù)檢索功能語句和復(fù)雜嵌入式SQL數(shù)據(jù)檢索語句;然后,本文以JAVA為宿主語言,重點分析嵌入式SQL在宿主語言JAVA中的工作原理和處理流程,以及對JDBC驅(qū)動和JDBCAPI做了詳細介紹;最后,針對嵌入式SQL和宿主語言JAVA,以實例“圖書館管理系統(tǒng)”演示嵌入式SQL的具體應(yīng)用。2嵌入式SQL技術(shù)2.1SQL和嵌入式SQL簡介SQL(StructuredQueryLanguage)結(jié)構(gòu)化查詢語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。SQL是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng),可以使用相同的SQL語言作為數(shù)據(jù)輸入與管理的接口。它以記錄集合作為操作對象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語句可以嵌套,這使他具有極大的靈活性和強大本科畢業(yè)論文(設(shè)計)第3頁的功能,在多數(shù)情況下,在其他語言中需要一大段程序?qū)崿F(xiàn)的功能只需要一個SQL語句就可以達到目的,這也意味著用SQL語言可以寫出非常復(fù)雜的語句。SQL語言包含4個部分:數(shù)據(jù)定義語言(DDL),例如:CREATE、DROP、ALTER等語句。數(shù)據(jù)操作語言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語句。數(shù)據(jù)查詢語言(DQL),例如:SELECT語句。數(shù)據(jù)控制語言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等語句。SQL語言包括三種主要程序設(shè)計語言類別的語句:數(shù)據(jù)定義語言(DDL),數(shù)據(jù)操作語言(DML)及數(shù)據(jù)控制語言(DCL)。嵌入式SQL(英文:EmbeddedSQL)是一種將SQL語句直接寫入C語言,COBOL,F(xiàn)ORTRAN,JAVA等編程語言的源代碼中的方法。借此方法,可使得應(yīng)用程序擁有了訪問數(shù)據(jù)以及處理數(shù)據(jù)的能力。在這一方法中,將SQL文嵌入的目標源碼的語言稱為宿主語言。在SQL標準的SQL86(1986年發(fā)布)中定義了對于COBOL,FORTRAN,PI/L等語言的嵌入式SQL的規(guī)范。在SQL89(1989年發(fā)布)規(guī)范中,定義了對于C語言的嵌入式SQL的規(guī)范。一些大型的數(shù)據(jù)庫廠商發(fā)布的數(shù)據(jù)庫產(chǎn)品中,都提供了對于嵌入式SQL的支持。比如Oracle,DB2等。2.2SQL語句2.2.1基本SQL語句簡單嵌入式SQL數(shù)據(jù)檢索功能語句表示只是對單表的數(shù)據(jù)檢索,其基本語句為:“selectfromwheregroupbyhavingorderby“例如:查詢學號為“S040901106”學生的姓名本科畢業(yè)論文(設(shè)計)第4頁表2-1,studentInfo表相關(guān)數(shù)據(jù)StuIdStuNameDeptIdSexS040201101任非02MS040901102王情02FS040901103戴麗08FS040901106鄭治08MSQL語句:SELECTStuNameFROMstudentInfoWHEREStuId=S040901106;2.2.1復(fù)雜SQL語句然而現(xiàn)實數(shù)據(jù)庫項目中,對于數(shù)據(jù)庫的數(shù)據(jù)檢索可能設(shè)計有多個表,或要求更復(fù)雜的數(shù)據(jù)檢索SQL語句,所以有必要介紹幾種復(fù)雜的嵌入式SQL數(shù)據(jù)檢索語句。3.2.1聯(lián)接查詢(一)內(nèi)聯(lián)接內(nèi)連接查詢操作列出與連接條件匹配的數(shù)據(jù)行,它使用比較運算符比較被連接列的列值。內(nèi)連接分三種:1、等值連接:在連接條件中使用等于號(=)運算符比較被連接列的列值,其查詢結(jié)果中列出被連接表中的所有列,包括其中的重復(fù)列。2、不等連接:在連接條件使用除等于運算符以外的其它比較運算符比較被連接的列的列值。這些運算符包括、=、=、!和。3、自然連接:在連接條件中使用等于(=)運算符比較被連接列的列值,但它使用選擇列表指出查詢結(jié)果集合中所包括的列,并刪除連接表中的重復(fù)列。例,下面使用等值連接列出authors和publishers表中位于同一城市的作者和出版社:SELECT*本科畢業(yè)論文(設(shè)計)第5頁FROMauthorsASaINNERJOINpublishersASpONa.city=p.city又如使用自然連接,在選擇列表中刪除authors和publishers表中重復(fù)列(city和state):SELECTa.*,p.pub_id,p.pub_name,p.countryFROMauthorsASaINNERJOINpublishersASpONa.city=p.city(二)外連接內(nèi)連接時,返回查詢結(jié)果集合中的僅是符合查詢條件(WHERE搜索條件或HAVING條件)和連接條件的行。而采用外連接時,它返回到查詢結(jié)果集合中的不僅包含符合連接條件的行,而且還包括左表(左外連接時)、右表(右外連接時)或兩個邊接表(全外連接)中的所有數(shù)據(jù)行。如下面使用左外連接將論壇內(nèi)容和作者信息連接起來:SELECTa.*,b.*FROMluntanLEFTJOINusertableasbONa.username=b.username以及他們所在的城市:SELECTa.*,b.*FROMcityasaFULLOUTERJOINuserasbONa.username=b.username(三)交叉連接交叉連接不帶WHERE子句,它返回被連接的兩個表所有數(shù)據(jù)行的笛卡爾積,返回到結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個表中符合查詢條件的數(shù)據(jù)行數(shù)。例,titles表中有6類圖書,而publishers表中有8家出版社,則下列交叉連接檢索到的記錄數(shù)將等于6*8=48行。SELECTtype,pub_nameFROMtitlesCROSSJOINpublishersORDERBYtype本科畢業(yè)論文(設(shè)計)第6頁2.3嵌入式SQL語句(1)宿主變量宿主變量就是在嵌入式SQL語句中引用主語言說明的程序變量如:在JAVA語句中對程序變量:username、password的進行數(shù)據(jù)庫插入操作Stringsql=insertintoreader(username,password)values(+username+,+password+);在嵌入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論