29、SQL编程中的模块语言、阻抗不匹配及其他绑定风格

SQL编程中的模块语言、阻抗不匹配及其他绑定风格

1. 模块语言概述

在SQL编程中,编写“纯” SQL的方式被称为模块语言。SQL将嵌入式SQL处理定义为一种语法转换,它会提取嵌入式程序中的SQL语句到一个SQL模块中,用模块中相应过程的调用替换所有SQL语句(除声明外),最终留下一个纯3GL程序。虽然这种技术未被广泛实现,但它仍是一个出色的概念模型。

1.1 模块语言的优缺点

模块语言允许将SQL语句与3GL语句分开编写,再通过链接器组合成应用程序,具有以下优点:
- 可聘请SQL专家编写SQL代码,无需考虑他们所掌握的3GL;也可聘请优秀的3GL程序员,无需对他们进行SQL编码细节的培训。
- 能利用模块化编程的概念,将批量操作与传统数据处理等方面清晰分离。
- 编写SQL时,可在开发后期以最小的SQL代码改动来选择或重新选择3GL。
- 至少在应用程序的3GL部分,可使用带有完整源代码功能的调试器;而使用嵌入式SQL时,调试器在源代码上往往几乎无用。

不过,模块语言也存在一些缺点:
- 嵌入式SQL比模块语言的实现更广泛,这在希望自由使用不同DBMS时可能是一个重要因素。
- 许多人认为,当能流畅地同时阅读3GL和SQL代码时,更容易理解和维护应用程序,而不是同时查看两段代码。

1.2 模块的结构与语法

一个模块由模块头和过程与声明的混合部分组成。过程包含实际的SQL语句,声明可用于声明游标和临时表。模块声明的语法如下:

MODULE [ module-name ] [ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值