1、SQL反模式:避开数据库编程的陷阱

SQL反模式:避开数据库编程的陷阱

1. 引言

在完成加州大学计算机与信息科学学位后不久,我拒绝了第一份SQL相关工作。当时一位经理找到我,他有一家软件创业公司,正在开发一个可在各种UNIX平台间移植的数据库管理系统,需要我编写代码来识别和执行有限版本的SQL语言,他表示只需要支持 SELECT 语句。

那时学校没教过SQL,数据库也不像现在这样普及,像MySQL和PostgreSQL这样的开源数据库品牌还不存在。但我用shell开发过完整的应用程序,也了解一些解析器知识。我本以为解析SQL的单个语句不会太难,然而查阅相关资料后,我发现SQL与支持 if() while() 等语句以及变量赋值和表达式的语言不同。仅仅支持 SELECT 语句,实际上意味着要开发一个功能齐全的关系数据库管理系统和查询引擎。最终,我拒绝了这个用shell脚本编写SQL解析器和RDBMS引擎的机会,那位经理可能没有充分认识到RDBMS的工作范围。

许多软件开发人员,即使拥有计算机科学学位,早期接触SQL的经历都和我类似。大多数人都是在项目需要时自学SQL,而不是像学习其他编程语言那样系统地学习。SQL是一种声明式编程语言,与C、Pascal等过程式编程语言以及C++、Java等面向对象编程语言不同。它以集合作为基本数据结构,而面向对象语言使用对象。这种差异让传统训练的软件开发人员望而却步,很多程序员因此转向面向对象库,避免深入学习SQL。

从1992年起,我在工作中大量使用SQL,开发过Perl和PHP的SQL编程库,为InterBase RDBMS产品提供技术

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值