SQLServer2005编程艺术
SQL Server 2005编程艺术丛书名: 图灵程序设计丛书
作者: (美)麦查里克,(美)科纳利斯,(美)鲁贝尔克著,颜烔等译
出 版 社: 人民邮电出版社
出版时间: 2008-7-1
字数: 663000
版次: 1
页数: 379
开本: 16开
印次: 1
纸张: 胶版纸
I S B N : 9787115179357
包装: 平装
所属分类: 图书 >> 计算机/网络 >> 数据库 >> SQL
定价:¥59.00
编辑推荐Amazon全五星图书,众多专家盛誉推荐,深入揭示SQL Server开发思想,改变你对数据库开发的看法。
内容简介本书是一部关于SQL Server 2005 高级开发技术的权威著作,提供了详尽、全面的技术讨论,并给出了详细的应用实例。书中前4 章着重介绍SQL Server 所涉及的软件开发方法学、测试、异常处理和安全;第5 章至第7 章深入研究SQL Server 独具的高级特性,主要介绍加密、SQLCLR 和动态SQL;第8 章至第11 章从数据库体系结构的角度分析问题,深入研究具体的设计和实现问题,包括应用程序并发、空间数据、时态数据和图,这是本书最为复杂的内容,也是最有实际意义的内容。
本书可以作为软件开发人员,特别是数据库设计人员的参考手册,也可供计算机专业、信息系统专业的高年级本科生、研究生作为数据库课程的教材或者参考书。
作者简介Adam Machanic,微软SQL Server MVP,著名的SQL Server专家。长期活跃于技术社区,是SQL Server Professional和TechNET等行业杂志的撰稿人,经常在各种技术会议上开设技术讲座、发表演讲。除本书外,他还是Pro SQL Server 2005的作者之一。
目录第1章数据库领域的软件开发方法学
1.1架构回顾
1.1.1耦合、内聚和封装
1.1.2接口
1.2核心问题:集成数据库和面向对象系统
1.2.1该何去何从
1.2.2对象—关系失配
1.3ORM:一个问题多多的解决方案
1.4把数据库操作设计为API
1.5全面权衡
1.5.1可测试性
1.5.2可维护性
1.5.3安全性
1.5.4性能
1.5.5步履蹒跚的远期功能
1.6小结
第2章数据库例程测试
第3章错误和异常
3.1异常和错误
3.2SQL Server中异常的工作原理
3.2.1语句级异常
3.2.2批处理程序级异常
3.2.3语法分析和作用域解析异常
3.2.4连接和服务器级异常
3.2.5XACT_ABORT设置
3.2.6分析错误信息
3.2.7SQL Server的RAISERROE函数
3.2.8跟踪监控异常事件
3.3异常处理
3.3.1 为什么要在T-SQL中处理异常
3.3.2 使用@@ERROR“处理”异常
3.3.3 SQL Server的TRY/CATCH语法
3.4事务与异常
3.4.1事务退出的神话
3.4.2XACT_ABORT:神话(半)成真
3.4.3TRY/CATCH和被诅咒事务
3.5小结
第4章特权与授权
4.1最低特权原则
4.1.1在SQL Server中创建代理
4.1.2层级数据安全:洋葱模型
4.2使用Schema组织数据
4.3使用EXECUTE AS实现基本模拟
4.4所有权链
4.5非链式特权提升
4.5.1存储过程与EXECUTE AS
4.5.2使用证书对存储过程进行签名
4.6小结
第5章加密
5.1要保护什么
5.2加密术语:我们需要知道的部分
5.3SQL Server 2005加密密钥体系
5.3.1服务主密钥
5.3.2数据库主密钥
5.4SQL Server 2005数据保护
5.4.1HashBytes()
5.4.2非对称密钥加密和证书加密
5.4.3 对称密钥加密
5.4.4EncryptByPassphrase
5.5隔离数据与DBA
5.6性能优化设计
5.6.1设计解决方案、定义问题
5.6.2搜索加密数据
5.7小结
第6章SQLCLR:架构和设计注意事项
6.1填充SQL/CLR鸿沟:SqlTypes库
6.2包装代码以提高跨层重用性
6.3SQLCLR的安全性特征和可靠性特征
6.3.1代码安全性需求
6.3.2通过程序集引用有选择地提升特权
6.3.3授予交叉程序集特权
6.4利用SQLCLR加强Service Broker可扩展性功能
6.5扩展用户自定义聚合
6.6小结
第7章动态T-SQL
7.1 动态T-SQL与ad hoc T-SQL
7.2 为什么要使用动态SQL
7.2.1 编译与参数化
7.2.2 自动参数化
7.2.3 应用程序级参数化
7.2.4 参数化与高速缓存的性能暗示
7.3 支持可选参数
7.3.1 通过静态T-SQL实现可选参数
7.3.2 实现动态化:使用EXECUTE
7.3.3 SQL注入
7.3.4 sp_executesql:一个更好的EXECUTE
7.4 动态SQL在安全方面的考虑
7.4.1 被引用对象的权限
7.4.2 接口规则
7.5 小结
第8章应用程序并发系统的设计
第9章空间数据处理
第10章时态数据处理
第11章树、层次结构和图
媒体评论“罕见的深度,书中的所有内容都值得反复咀嚼并实际演练。我向所有想探索SQL Server的读者推荐本书。”
——Bob Beauchemin,微软SQL Server MVP
“数据库方面的书太多了。可是没有一本像本书这样讨论了软件工程、测试等诸多重要主题,包括我自己的收!许多内容对我来说也是全新的,强烈推荐!”
——JoeCelko,SQL标准委员会成员。世界顶尖SQL专家,《SQL解惑》等经典著作的作者
市面上充斥着大量入门性质的SQL Server 2005图书,而许多重要的主题却很少涉及。
本书由几位世界级SQL Server专家撰写而成,他们从亲身开发经验出发,针对实际开发中会一再遇到的问题,讨论了包括微软公司联机文档在内的其他资料中都难以找到的一些重要主题。作者将数据库视为软件开发生态系统中的一个有机组成部分,引导读者对SQL Server开发进行思考。达到从未企及的深度。
通过书中的最佳实践和大量示例,读者可以掌握如何设计高性能、高可维护性的应用程序,从而大大提升自己的数据库开发水平。
书摘插图第1章数据库领域的软件开发方法学
数据库应用程序开发是一种软件开发形式,人们应该以软件开发的方式看待数据库应用程序开发。但是在开发小组讨论架构及测试计划时,往往把数据库部分当做次要部分来考虑——似乎很多数据库开发人员都认为,标准的软件开发最佳实践并不适用于数据库应用程序开发。
事实上,几乎每种应用程序都需要某种形式的数据存储,开发社区中的许多人都不只是持久化应用数据,还要创建数据驱动(data driven)的应用程序。所谓数据驱动就是应用程序的行为根据数据的变化而动态变化,事实上可以用一个更好的术语来表达这个概念,即数据依赖(data dependent)。
由于应用程序与数据和数据库如此的密切相关,软件开发高手不仅仅要是能干的软件开发人员,毫无疑问还得是数据访问和管理方面的专家。数据是应用程序中处于中心位置的、控制性的因素,它决定了应用程序对用户的价值。没有数据,也就无需此应用程序。
本书的主要目的正是为了把Microsoft SQL Server开发人员重新拉回软件开发的范畴。本书强调严格的测试、深思熟虑的架构设计,以及对数据彼此依赖性的谨慎考虑。对这些方面的完美驾驭是软件开发专家的重要标志,而作为任何软件开发团队的核心,数据库专家当然不能缺少这个方面的专业技能。
本章将重点介绍软件开发概念和架构相关知识,因为它们完全适用于数据库应用领域。其中有些主题在开发者社区中尚有极大争议,本书将尽量对各种观点并举,即使有些问题似乎已经有了权威答案。不过我建议你认真思考这些问题,而不是把我或者其他人的观点照搬照抄,因为软件架构领域于变万化,只有在对各种案例反复揣摩之后我们才可能奢望找到或许存在的“最佳”答案。
1.1 架构回顾
软件架构是一个庞大、复杂的话题,主要是因为很多软件架构设计师往往喜欢把系统弄得尽可能的复杂。而事实在于,编写一个优秀的软件,并不需要像很多系统设计师提倡的那样使用太多复杂的结构设计,真正高质量的设计往往只需理解并应用其中很少的基本原理就够了。