SQL作为混搭工具:设计与实现
立即解锁
发布时间: 2025-08-23 01:00:27 阅读量: 3 订阅数: 8 

### SQL 作为混搭工具:设计与实现
#### 1. 引言
在当今的技术环境中,利用数据库管理系统(DBMS)的扩展性来构建 Web 服务的混搭应用是一种创新的方法。这种方法能够将 Web 服务的细节封装在用户自定义函数中,从而拓展 DBMS 的功能,减轻应用程序员的负担。
#### 2. 目标 Web 服务
所有的 Web 服务都利用 HTTP 来发送请求和接收结果,通常会在 HTTP 之上使用一些正式或非正式定义的协议。这些协议明确规定了请求和结果的格式。
- **常见的结果格式**:例如,访问特定在线新闻网站的更新内容时,可通过访问服务指定的网页并解析以特定提要格式(如 RSS1.0 系列、RSS 2.0 系列和 ATOM,均基于 XML 扩展)返回的数据。返回数据的序列化通常使用 XML,不过也会使用 PHP 序列化和 JSON 等方法。
- **REST 风格服务**:一种更通用的服务风格是 REST(表述性状态转移)。采用 REST 的典型 Web 服务通常接受 HTTP GET 参数作为服务参数,并以 XML 或 JSON 序列化结果作为 HTTP 响应的一部分。虽然 W3C 没有针对 REST 的推荐标准,但基于 REST 的 Web 服务很多,且易于理解和使用,因此本文主要将 REST 风格的 Web 服务作为目标。
- **WSDL 和 SOAP**:更抽象和标准化的 Web 服务规范分别由 WSDL(Web 服务描述语言)和 SOAP(简单对象访问协议)给出和实现。WSDL 可用于正式指定特定的 Web 服务,有可能实现为 Web 服务自动生成用户自定义函数。而专为正式描述 REST 风格 Web 服务设计的 WADL 可能会作为自动生成的起点,但本文暂不涉及此问题。
#### 3. Pg/WAFL 及其翻译器
Pg/WAFL 中用户自定义函数的描述包含三个部分:
- **函数头部分**:由 FuncName 元素指定函数名,FuncArg 指定参数列表,RetType 指定返回类型。参数分为两种:
- **位置参数**:用于传递必需的参数,如“query”和“format”。
- **关键字参数**:每个实际参数值前都有一个关键字表示参数名,如“reqnumber”、“numberpage”等。关键字参数以关键字 - 值对数组的形式作为函数的第一个参数传递。示例查询如下:
```sql
SELECT *
FROM getcontents_yahoo(
$${{’numberperpage’,’50’},{’startnumber’,’1’},{’reqnumber’,’100’}} $$,
’Web Service’,’any’)
```
- **返回类型**:在示例中,结果是一个表,包含四个列:“rank”(整数类型)、“title”(文本类型)、“summary”(文本类型)和“url”(文本类型)。
- **请求部分**:baseurl 给出相应 Web 服务的基础 URL,param 元素和 param paging 元素给出传递给 Web 服务的参数。由于仅支持 REST 风格的参数,实际 URL 的格式为“baseurl?p1 = v1&p2 = v2& · · · &pn = vn”。param pa
0
0
复制全文
相关推荐









