web7-基于web数据库
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SELECT语句语法
一般格式
SELECT<目标列表达式>[,<目标列表达式>]… FROM <表名或视图名>[,<表名或视图名>]… [WHERE <条件表达式>] [GROUP BY <列名1>[HAVING<条件表达式>]] [ORDER BY <列名2>[ASC|DESC]]; 组件 SELECT FROM 说明 指明要检索的数据的列 指明要从哪(几)个表中进行检索
一的 Web 浏览器,为 Internet 用户提供使用简便、内容丰富的服
务。 Web数据库管理系统必将成为Internet和Intranet提供的核心服务, 为Internet上的电子商务提供技术支持。
7.3.1 通过WWW访问数据库的优点
传统的访问数据库方式的缺点:
许多数据库系统提供的访问方式,或是一个字符方式的查询界面, 或是通过编程方语句可以用来执行各种各样的操作,例如更新数据库中的数
据,从数据库中提取数据等。 目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。
SQL语言的分类及语法
可执行的SQL语句的种类数目之多是惊人的。 使用SQL,可以执行任何功能:从一个简单的表查询,到创建表和
JDBC完成的工作是:建立与数据库的连接;发送SQL语句;返回数据结果
给Web浏览器。 基于JDBC的Web数据库结构其缺陷在于:只能进行简单的数据库查询等操
作,还不能进行OLTP;安全性、缓冲机制和连接管理仍不完善;SUN承诺
的完全跨平台跨数据库系统的功能和标准远未实现。
几种Web数据库连接方式的比较 CGI
近年来发展的一些RAD(Rapid Application development)工具,如 VB、Delphi、PowerBuilder等可以方便地开发一些图形界面的访问数 据库软件,但是这样的开发工具需要使用者具有编程技术,并且开 发的程序不能跨平台运行。 用 RAD 工具开发的软件,随用户需求的改变,可能需要增添新的功 能或在界面上做一些改动。如果开发的软件使用范围比较广泛的话, 那么软件的更新将是一项很大的工作。而Internet技术的发展,则使 上述问题有了解决的办法,如果建立了 WWW 服务器,就可以通过 WWW服务器实现对数据库的访问,上面提到的问题也就都可以解决 了。
WHERE
GROUP BY HAVING ORDERBY
指明返回数据必须满足的标准
指明返回的列数据通过某些条件来形成组 指明返回的集合必须满足的标准 指明返回的行的排序顺序
7.3 Web数据库
Web 数据库管理系统:是指基于 Web 模式的 DBMS 的信息服务, 充分发挥DBMS高效的数据存储和管理能力; 以Web这种浏览器/服务器(B/S)模式为平台,将客户端融入统
处理数据后输出成网页
JSP 数 据 库 PHP Python Web 服务器 Internet 用户浏览器
开发Web应用程序最基本的工具
编程语言 数据库系统
编程语言
C、ASP、Visual Basic、Visual C、C++ Builder、 Java、JSP、PHP、Perl、Python MySQL、PostgreSQL、mSQL、SQL Server、 Oracle
① 各种API之间兼容性很差,缺乏统一的标准来管理这些接
口;
② 开发API应用程序也要比开发CGI应用复杂得多; ③ 这些API只能工作在专用Web服务器和操作系统上。
基于JDBC的Web数据库技术
为了防止出现对Java在数据库访问方面各不相同的扩展,JavaSoft公司指 定了JDBC,作为Java语言的数据库访问API。 采用JDBC技术,在Java Applet中访问数据库的优点在于: 直接访问数据库,不再需要Web数据库的介入,从而避开了CGI方法 的一些局限性;
存储过程,到设定用户权限。对于如何从数据库中检索、更新和报 告数据,应该了解一些重要的SQL语句:
命令 SELECT INSERT UPDATE DELETE CREATE DROP 类别 数据查询语言 数据操作语言 数据操作语言 数据操组语言 数据定义语言 数据定义语言 说明 从一个表或多个表中检索列和行 向一个表中增加行 更新一个表中已经存在的行的某几列 从一个表中删除行 按特定的表模式创建一个新表 删除一张表
数据库系统
Web数据库应用程序设计流程
设计输入表单及输出界面 设计数据库 创建数据库
编写程序
否
测试 正常? 是 数据库维护与管理
用户访问控制可以由数据库服务器本地的安全机制来解决,提高了
安全性; JDBC 是支持基本 SQL 功能的一个通用低层的应用程序接口,在不同 的数据库功能的层次上提供了一个统一的用户界面,为跨平台跨数 据库系统进行直接的Web访问提供了方案。从而克服了API方法一些 缺陷; 可以方便地实现与用户的交互,提供丰富的图形功能和声音、视频
基于服务器扩展的API
与CGI相比,API应用程序与Web服务器结合得更加紧密,占用的系统资源也 少得多,而运行效率却大大提高,同时还提供更好的保护和安全性。 服务器API,是驻留在WWW服务器中的程序代码,其扩展WWW服务器的功 能与CGI相同。 WWW开发人员不仅可以用API解决CGI可以解决的一切问题,而且能够进一 步解决基于不同WWW应用程序的特殊请求。各种API与其相应的WWW服务 器紧密结合,其初始开发目标服务器的运行性能进一步发掘、提高。 用API开发的程序比用CGI开发的程序在性能上提高了很多,但开发API程序
等多媒体信息功能。
JDBC是用于执行SQL语句的Java应用程序接口API,由Java语言编写的类和 接口组成。Java 是一种面向对象、多线程与平台无关的编程语言,具有极 强的可移植性、安全性和强健性。JDBC是一种规范,能为开发者提供标准 的数据库访问类和接口,能够方便地向任何关系数据库发送SQL 语句,同 时JDBC是一个支持基本SQL功能的低层应用程序接口,但实际上也支持高 层的数据库访问工具及API。
比开发CGI程序要复杂得多。API应用程序需要一些编程方面的专门知识,如
多线程、进程同步、直接协议编程以及错误处理等。目前主要的WWW API 有Microsoft公司的ISAPI、Netscape公司的NSAPI和OReily公司的WSAPI等。
虽然基于服务器扩展 API 的结构可以方便、灵活地实现各 种功能,连接所有支持 32位 ODBC的数据库系统,但这种 结构的缺陷也是明显的:
第七章
基于Web的数据库开发
7.1 数据库概述
基本概念
数据:是数据库中存储的基本对象,描述事物的符号记录成 为数据。可以是数字,也可以是文字、图形、图像、声音、
语言等。
数据库:存放数据的仓库,是指长期存储在计算机内的、有 组织的、可共享的数据集合。数据库中的数据按一定的数据
模型组织、描述和储存,具有较小的冗余度、较高的数据独
立性和易扩展性,并可为各种用户共享。
最常用的数据模型
层次模型 网状模型 关系模型
关系数据库
支持关系模型的数据库系统称为关系数据库。
在关系型数据库中数据以行和列的形式存储;
这一系列的行和列被称为表,一组表便组成了数据库。 在关系数据库中:各数据项之间用关系来组织,关系是表之间 的一种连接,通过关系,我们可以更灵活地表示和操纵数据; 另外,用户可以非常方便的用查询(Query)来检索数据库中 的数据,一个Query是一个用于指定数据库中行和列的SELECT 语句。
通过WWW访问数据库的优点
借用现成的浏览器软件,无需开发数据库前端:如果能够通过
WWW来访问数据库,我们就不需要开发客户端的程序,使用的数
据库应用都可以通过浏览器来实现,界面统一,也减少了培训费用, 能使广大用户很方便地访问数据库信息。 标准统一,开发过程简单: HTML 是 WWW 信息的组织方式,是一 种国际标准,使用的 WWW 服务器与 HTML 标准,开发者甚至只需 学习HTML一种语言,使用者只需学习一种界面——浏览器界面。 交叉平台支持:几乎在各种操作系统上都有现成的浏览器可供使用, 为一个 WWW 服务器书写的 HTML 文档,可以被所有平台的浏览器 所浏览,实现了跨平台操作。
常用的小型数据库有Access、Pradox、Foxpro等;
个人用户比较常用的主要是基于中小型数据库MS SQL Server和Access的。
7.2 关系数据库标准语言SQL
SQL是英文(Structured Query Language)的缩写,意思为结 构化查询语言。 SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
HTML页面,或执行用户查询,并将查询结果格式化成HTML页面。通过Web服务器
返回给Web浏览器。最基本的中间件技术有通过网关接口CGI和应用程序接口API两 种。
基于通用网关接口CGI
CGI 是 WWW服务器运行时外部程序的规范,按照 CGI编写的程序可以扩展服务器 的功能,完成服务器本身不能完成的工作,外部程序执行时可以生成HTML文档, 并将文档返回WWW服务器。 CGI应用程序能够与浏览器进行交互作用,还可以通过数据库的API与数据库服务 器等外部数据源进行通信;
编程复杂性 对程序员的 要求 开发时间 可移植性 复杂 高 长 较好
API
复杂 高 长 差
JDBC
中等 中等 中等 好
CPU的负载
高
较低
较低
Web数据库应用程序概述
Web数据库应用程序(Web Database Application)与普通视窗 软件的应用程序不同,Web数据库应用程序要做的工作只有两项: 处理经过表单输入的数据
关系型数据库通常包含下列组件:
客户端应用程序(Client) 数据库服务器(Server) 数据库(Database)
SQL是Client端通往Server端的桥梁,Client用SQL来向Server
端发送请求,Server返回Client端要求的结果。
比较流行的大中型关系型数据库有:IBM DB2、Oracle、 SQL Server、SyBase、Informix等;
几乎使用的服务器软件都支持 CGI,开发人员可以使用任何一种WWW服务器内置
语言编写CGI,其中包括流行的C、C++、VB和Delphi等。 这种结构体现了客户 /服务器方式的三层模型,其中 Web服务器和CGI程序实际起 到了HTML和SQL转换的网关的作用。 CGI的典型操作过程是:分析CGI数据;打开与DBMS的连接;发送SQL请求并得到 结果;将结果转化为HTML;关闭DBMS的连接;将HTML结果返回给Web服务器。
7.3.2 传统的Web数据库系统体系结构
一般实现Web数据库系统的连接和应用可采取两种方法,一种是在Web服务器端提
供中间件来连接Web服务器和数据库服务器,另一种是把应用程序下载到客户端并
在客户端直接访问数据库。 中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能 够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态
主要的缺点是:
① 客户端与后端数据库服务器通信必须通过Web服务器,且Web服务器要
进行数据与HTML文档的互相转换,当多个用户同时发出请求时,必然
在Web服务器形成信息和发布瓶颈。 ② CGI应用程序每次运行都需打开和关闭数据库连接,效率低,操作费时; ③ CGI应用程序不能由多个客户机请求共享,即使新请求到来时CGI程序 正在运行,也会启动另一个CGI应用程序,随着并行请求的数量增加, 服务器上将生成越来越多的进程。为每个请求都生成进程既费时又需要 大量内存,影响了资源的使用效率,导致性能降低并增加等待时间; ④ 由于SQL与HTML差异很大,CGI程序中的转换代码编写繁琐,维护困难; ⑤ 安全性差,缺少用户访问控制,对数据库难以设置安全访问权限;