读《MySQL技术内幕——SQL编程》笔记(1)

本文介绍了SQL编程的三个阶段:面向过程化的SQL编程阶段、面向集合的SQL编程阶段和融合的SQL编程阶段。并讨论了每个阶段的特点及程序员应具备的能力。此外还分析了OLTP与OLAP两种数据库应用类型的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只有学习最纯粹!


然而与其他语言不用的是,SQL语言不仅是面向过程的语言,更多的时候,通过SQL语言提供的面向集合的思想可以解决数据库中遇到的很多问题。当然SQL语言本身也提供了面向过程的方法,但是如果使用不当,会在数据库性能方面遭遇梦魇。SQL编程需要掌握的知识远比想象中多,只有掌握各种知识,综合运用面向过程和面向集合的思想,才能真正解决所遇到的问题。不要迷信网上的任何“神话”,不要被自己或他人的经验所左右。我一直坚信,只有理解了数据库内部运行的原理,才能承自然之道,“乘天地之正,而御六气之辩”,做到真正的“无招胜有招”。——姜承尧

SQL编程的三个阶段
  • 第一阶段是面向过程化的SQL编程阶段
    这是SQL程序员刚开始使用数据库的阶段,此时他们没有多少处理关系模型的经验和基于集合的思想。在这一阶段,经常会有滥用各种工具(如游标、临时表、动态SQL语句等)的情况,而程序员自己通常意识不到他们正在引起破坏。

  • 第二阶段是面向集合的SQL编程阶段
    这个阶段SQL的程序员开始意识到SQL编程与面向过程和对象编程得的不同之处,知道运用SQL编程需要更多的东西,慢慢发现SQL不再是妨碍编程的令人讨厌的东西,而是建立在基于关系模型集合理论的强大基础上的产物。从这一阶段开始,程序员开始相信那些说游标、临时表和动态SQL有害而永远不应该使用的“专家”。

  • 第三阶段是融合的SQL编程阶段
    这个阶段SQL程序员已经具有了丰富的知识并对SQL有了深入的了解,他们对自己的代码非常自信,但是这并不意味着他们会停止钻研更深入的知识以及提高关键性的技术。在这一阶段,SQL程序员不再迷恋所谓的专家,他们可以意识到即使是游标。也并不是在所有的情况下都是无用和有害的。

第三阶段的SQL程序员已经具备了判断什么时候使用纯静态的SQL编程方法不能完成某些任务的能力。尽管纯静态SQL编程是一种非常典型的方法,但是它只在大部分情况下适用。有时候,使用临时表可以显著地改善性能,使用动态SQL可以解决复杂的问题,适当地使用游标可以提高程序运行的效率,使用C,C++这样的过程语言可以带来更大的灵活性,而且不会与关系模型发生冲突。


数据库的应用类型

对于SQL开发人员来说,必须先要了解进行SQL编程的对象类型,即要开发的数据库应用是哪种类型。

数据库应用类型说明
OLTP(OnLine Transaction Processing,联机事务处理)传统关系型数据库的主要应用,其主要面向基本的、日常的事务处理,例如银行交易
OLAP(OnLine Analysis Processing,联机分析处理)数据仓库的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果

表 OLTP和OLAP之间的区别

角色OLTPOLAP
用户操作人员决策人员
功能日常操作处理分析决策
DB设计面向应用面向主题
数据当前的,最新的历史的,聚集的
存取读/写数十条记录读上百万的数据
工作单位简单的事务复杂的查询
用户数上千个上百个
DB大小一般小于500G大于1T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农李某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值