基于嵌入式SQL技术数据检索功能的实现本科 毕业论文.doc
《基于嵌入式SQL技术数据检索功能的实现本科 毕业论文.doc》由会员分享,可在线阅读,更多相关《基于嵌入式SQL技术数据检索功能的实现本科 毕业论文.doc(31页珍藏版)》请在三一文库上搜索。
1、本科毕业论文(设计) 论 文 题 目基于嵌入式 SQL 技术数据检 索功能的实现 姓名(学号) 系 别 信息工程学院 专 业 计算机科学与技术 导 师 姓 名 二 一一年 六 月 本科毕业论文(设计) 基于嵌入式基于嵌入式 SQLSQL 技术数据检索功能的实现技术数据检索功能的实现 摘要摘要:SQL 是面向集合的描述性语言,具有功能强、效率高、使用灵活等特点,而单纯的 SQL 语言是一种独立的、非过程性语言,很难实现具有过程性控制的完整应用系统。嵌入 式 SQL 语言就是将 SQL 语句直接嵌入到程序的源代码中,与其他高级程序设计语言相结 合,使 SQL 语句负责控制数据库,高级语言负责控制程
2、序流程,从而实现各种复杂应用的 处理。 本文在基于 SQL 技术的基础上,介绍了嵌入式 SQL 技术的发展、嵌入式 SQL 语言以及嵌入式 SQL 工作原理及流程,以 JAVA 作为宿主语言,以 “图书馆管理系统” 的设计为例,描述了嵌入式 SQL 技术的具体应用,重点设计并实现了数据的检索功能。 关键词:关键词: 嵌入式 SQL;宿主语言;JAVA ;JDBC The Implementation of Data Retrieval Based on Embedded SQL Technology Abstract: SQL is a descriptive language which f
3、acing the set, it has strong function, high efficiency, agile using and so on. While pure SQL language is independent and not the process of language, it hard to achieve application systems which with process sexual control, Embedded SQL language embedded the SQL statement to program source code dir
4、ectly, then combined other high-level programming language, Making the SQL statement responsible for controlling the database and Senior language is responsible for control processes, So as to realize the processing various complex applications. In this paper, on the basis of SQL technology, Introdu
5、ced the development of embedded SQL technology, embedded SQL language and embedded SQL working principle and process, As the host language in JAVA, With “library management system“ the design as an example, Describes the application of the embedded SQL technology, key design and realized data retrie
6、val functions. KeyKey words:words: Embedded SQL ; Host Language ; JAVA ;JDBC 本科毕业论文(设计) 目目 录录 1 绪论1 1.1课题背景.1 1.2国内外的发展及现状.1 1.3 课题研究的主要内容.2 2 嵌入式 SQL 技术 .2 2.1 SQL 和嵌入式 SQL 简介2 2.2 SQL 语句3 2.2.1 基本 SQL 语句 3 2.2.2 复杂 SQL 语句 4 2.3 嵌入式 SQL 语句.6 2.4 嵌入式 SQL 工作原理及流程 6 2.5 嵌入式 SQL 应用 7 2.5.1 宿主语言 JAVA 简介
7、 7 2.5.2 宿主语言 JAVA DB 引擎驱动.7 2.5.3 宿主语言 JAVA 应用程序接口JDBC 9 2.5.4 嵌入式 SQL 应用示例 14 3 数据检索功能的实现.17 3.1 图书管理系统 18 3.2 数据检索功能的设计 18 3.2.1 系统结构设计18 3.2.2 数据库设计19 3.3 数据检索功能的实现 21 总 结 26 致 谢 27 参考文献: .28 本科毕业论文(设计) 第 0 页 1 1 绪论绪论 1.11.1课题背景课题背景 数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处 理与信息管理系统的核心。数据库技术研究和解决了计算机信息处理过程
8、中 大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实 现数据共享、保障数据安全以及高效地检索数据和处理数据。 随着嵌入式系统软件的发展,编程语言从 10 多年以前的汇编为主流发 展到现在 C、C+、Java 为主流。另外,面向对象设计技术、组件技术等在嵌 入式系统软件设计中的应用也日益引起人们的重视。 嵌入式 SQL(英文: Embedded SQL)是一种将 SQL 语句直接写入 C 语言, JAVAL,FORTRAN, Ada 等编程语言的源代码中的方法。借此方法,可使得应用 程序拥有了访问数据以及处理数据的能力。在这一方法中,将 SQL 文嵌入的 目标源码的语言称为宿主
9、语言。 1.21.2国内外的发展及现状国内外的发展及现状 随着嵌入式 SQL 技术的普遍使用,支持嵌入式 SQL 的数据库产品也大量 出现:Oracle Database Ada Pro*Ada 在 Oracle 7.3 的版本中被加入产品族,并且在 Oracle 8 中被替换为 SQL*Module。但在此之后就一直没有更新2。SQL*Module 支持 Ada 83. C/C+ Pro*C 在 Oracle 8 时被替换成了 Pro*C/C+。之后 Pro*C/C+ 到 Oracle Database 11g 仍都在被支持。 COBOL Pro*COBOL 到 Oracle Databas
10、e 11g 仍都在被支持。 Fortran Pro*FORTRAN 在 Oracle 8 之后的 Oracle 版本中就不再被更新,但 Bug 修正 仍在维护中3。 本科毕业论文(设计) 第 1 页 Pascal Pro*Pascal 在 Oracle 8 之后的 Oracle 版本中就不再被更新3。 PI/L Pro*PL/I 自 Oracle 8 之后就不再被更新,但文档中仍然有记述3。 IBM DB2 IBM DB2 的版本 9 中提供了对于 C/C+,COBOL,Java 等宿主语言的嵌入式 SQL 的支持。 PostgreSQL C/C+ PostgreSQL 自版本 6.3 起就提
11、供了对于 C/C+的嵌入式 SQL 的支持,以 ECPG 组件的形式存在。 1.31.3 课题研究课题研究的主要内容的主要内容 首先,本文简要的叙述了嵌入式 SQL 的定义以及发展现状,并详细介绍 了嵌入式 SQL 的数据检索语句:基本嵌入式 SQL 数据检索功能语句和复杂嵌 入式 SQL 数据检索语句;然后,本文以 JAVA 为宿主语言,重点分析嵌入式 SQL 在宿主语言 JAVA 中的工作原理和处理流程 ,以及对 JDBC 驱动和 JDBC API 做了详细介绍;最后,针对嵌入式 SQL 和宿主语言 JAVA,以实例“图书 馆管理系统”演示嵌入式 SQL 的具体应用。 2 2 嵌入式嵌入式
12、 SQL 技术技术 2.12.1 SQL 和嵌入式和嵌入式 SQL 简介简介 SQL(Structured Query Language)结构化查询语言,是一种数据库查询 和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 SQL 是高级的非过程化编程语言,允许用户在高层数据结构上工作。它 不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式, 所以具有完全不同底层结构的不同数据库系统,可以使用相同的 SQL 语言作 为数据输入与管理的接口。它以记录集合作为操作对象,所有 SQL 语句接受 集合作为输入,返回集合作为输出,这种集合特性允许一条 SQL 语句的输出 作
13、为另一条 SQL 语句的输入,所以 SQL 语句可以嵌套,这使他具有极大的灵 本科毕业论文(设计) 第 2 页 活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功 能只需要一个 SQL 语句就可以达到目的,这也意味着用 SQL 语言可以写出非 常复杂的语句。 SQL 语言包含 4 个部分: 数据定义语言(DDL),例如:CREATE、DROP、ALTER 等语句。 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、 DELETE(删除)语句。 数据查询语言(DQL),例如:SELECT 语句。 数据控制语言(DCL),例如:GRANT、REVOKE、CO
14、MMIT、ROLLBACK 等 语句。 SQL 语言包括三种主要程序设计语言类别的语句:数据定义语言 (DDL),数据操作语言(DML)及数据控制语言(DCL)。 嵌入式 SQL(英文: Embedded SQL)是一种将 SQL 语句直接写入 C 语言, COBOL,FORTRAN, JAVA 等编程语言的源代码中的方法。借此方法,可使得应 用程序拥有了访问数据以及处理数据的能力。在这一方法中,将 SQL 文嵌入 的目标源码的语言称为宿主语言。 在 SQL 标准的 SQL86(1986 年发布)中定义了对于 COBOL, FORTRAN, PI/L 等语言的嵌入式 SQL 的规范。在 SQL
15、89(1989 年发布)规范中,定义了对于 C 语言的嵌入式 SQL 的规范。一些大型的数据库厂商发布的数据库产品中,都 提供了对于嵌入式 SQL 的支持。比如 Oracle, DB2 等。 2.22.2 SQL 语句语句 2.2.12.2.1 基本基本 SQLSQL 语句语句 简单嵌入式 SQL 数据检索功能语句表示只是对单表的数据检索,其基 本语句为: “select from where group by having order by “ 例如: 本科毕业论文(设计) 第 3 页 查询学号为“S040901106”学生的姓名 表 2-1,studentInfo 表相关数据 StuIdS
16、tuNameDeptIdSex S040201101 任非 02M S040901102 王情 02F S040901103 戴丽 08F S040901106 郑治 08M SQL 语句: SELECT StuName FROM studentInfo WHERE StuId = S040901106; 2.2.12.2.1 复杂复杂 SQLSQL 语句语句 然而现实数据库项目中,对于数据库的数据检索可能设计有多个表,或要 求更复杂的数据检索 SQL 语句,所以有必要介绍几种复杂的嵌入式 SQL 数据 检索语句。 3.2.13.2.1 联接查询联接查询 (一一)内联接内联接 内连接查询操作列
17、出与连接条件匹配的数据行,它使用比较运算符比较被连 接列的列值。内连接分三种: 1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查 询结果中列出被连接表中的所有列,包括其中的重复列。 2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被 连接的列的列值。这些运算符包括、=、!。 3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使 用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。 例,下面使用等值连接列出 authors 和 publishers 表中位于同一城市的作者和 本科毕业论文(设计) 第 4 页 出版社: SE
18、LECT * FROM authors AS a INNER JOIN publishers AS p ON a.city=p.city 又如使用自然连接,在选择列表中删除 authors 和 publishers 表中重复列(city 和 state): SELECT a.*,p.pub_id,p.pub_name,p.country FROM authors AS a INNER JOIN publishers AS p ON a.city=p.city (二二)外连接外连接 内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采
19、用外连接时,它返回到查询结果集合 中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外 连接时)或两个边接表(全外连接)中的所有数据行。 如下面使用左外连接将论坛内容和作者信息连接起来: SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b ON a.username=b.username 以及他们所在的城市: SELECT a.*,b.* FROM city as a FULL OUTER JOIN user as b ON a.username=b.username (三三)交叉连接交叉连接 交叉连接不带 WHERE 子句
20、,它返回被连接的两个表所有数据行的笛卡尔积, 返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以 第二个表中符合查询条件的数据行数。 例,titles 表中有 6 类图书,而 publishers 表中有 8 家出版社,则下列交叉连 接检索到的记录数将等 于 6*8=48 行。 SELECT type,pub_name FROM titles CROSS JOIN publishers ORDER BY type 本科毕业论文(设计) 第 5 页 2.32.3 嵌入式嵌入式 SQL 语句语句 (1)宿主变量 宿主变量就是在嵌入式 SQL 语句中引用主语言说明的程序变量 如:在
21、JAVA 语句中对程序变量:username、password 的进行数据库插入 操作 String sql = “insert into reader(username,password) values(“ + username + “,“ + password + “)“; 在嵌入式 SQL 语句中使用宿主变量前,必须采用 “+username + ” 的形 式给宿主变量说明。 2.42.4 嵌入式嵌入式 SQLSQL 工作原理及流程工作原理及流程 图 2.1 数据库产品中嵌入式 SQL 操作流程图 为了解决嵌入式 SQL 源码的处理流程问题,数据库厂商需要提供一个嵌入 式 SQL 的预编
22、译器,把包含有嵌入式 SQL 文的宿主语言源码转换成纯宿主语言 的代码。这样一来,源码即可使用宿主语言对应的编译器进行编译。通常情况 下,经过嵌入式 SQL 的预编译之后,原有的嵌入式 SQL 会被转换成一系列函数 本科毕业论文(设计) 第 6 页 调用。因此,数据库厂商还需要提供一些列函数库(图 2.1),以确保链接器能 够把代码中的函数调用与对应的实现链接起来。 2.52.5 嵌入式嵌入式 SQLSQL 应用应用 2.5.12.5.1 宿主语言宿主语言 JAVAJAVA 简介简介 Java,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设 计语言
23、和 Java 平台的总称。用 Java 实现的 HotJava 浏览器(支持 Java applet)显示了 Java 的魅力:跨平台、动态的 Web、Internet 计算。从此, Java 被广泛接受并推动了 Web 的迅速发展,常用的浏览器现在均支持 Java applet。 JAVA 项目运行环境平台(图 2.2): 图 2.2JAVA 程序运行环境平台图 2.5.22.5.2 宿主语言宿主语言 JAVAJAVA DBDB 引擎驱动引擎驱动 众所周知,在台式机领域,DB 是一个十分关键的基础软件。以往嵌入式 系统的软件可能更侧重于与硬件的交互与控制,但随着对嵌入式系统功能需 求的日益复
24、杂化,嵌入式系统软件中,信息、数据的保存与管理的比重也日 应用组件应用组件应用组件 .CLASS 文件库 DB 组件 JVM 本科毕业论文(设计) 第 7 页 益增加。在这样的背景下,嵌入式系统软件开发中,通过引入 DB 组件,对实 现软件整体框架结构的组件化与简单化,有着十分明显而重要的意义。 DB 引擎驱动的总体框架(如图 2.3):整个 DB 组件设计为 3 层结构,分 别为 JDBC 接口层、SQL 解释层和动作执行层。这 3 层之间呈单向依赖关系。 也就是说,SQL 解释层依赖于动作执行层,但动作执行层不依赖于其上面的两 层,可以单独存在而直接被使用。如果用户以使用方便为主要目的,可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于嵌入式SQL技术数据检索功能的实现本科 毕业论文 基于 嵌入式 SQL 技术 数据 检索 功能 实现 本科
链接地址:https://www.31doc.com/p-3923637.html