SQL Server 2005编程艺术(Amazon全五星图书,众多专家盛誉推荐)
基本信息
- 原书名: Expert SQL Server 2005 Development
- 原出版社: Apress
- 作者: (美)Adam Machanic Hugo Kornelis Lara Rubbelke [作译者介绍]
- 译者: 颜炯 薄建禄
- 丛书名: 图灵程序设计丛书.数据库系列
- 出版社:人民邮电出版社
- ISBN:9787115179357
- 上架时间:2008-6-6
- 出版日期:2008 年7月
- 开本:16开
- 页码:377
- 版次:1-1
- 所属分类:
计算机 > 数据库 > SQL Server
合作专区 > 微软技术图书 > 微软数据库
编辑推荐
Amazon全五星图书,众多专家盛誉推荐.
深入揭示SQLServer开发思想..
改变你对数据库开发的看法...
推荐阅读
内容简介回到顶部↑
本书是一部关于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.3 orm:一个问题多多的解决方案
1.4 把数据库操作设计为api
1.5 全面权衡
1.5.1 可测试性
1.5.2 可维护性
1.5.3 安全性
1.5.4 性能
1.5.5 步履蹒跚的远期功能
1.6 小结
第2章 数据库例程测试
2.1 黑盒测试与白盒测试简介
2.1.1 单元测试和功能测试
2.1.2 单元测试框架
1.1 架构回顾
1.1.1 耦合、内聚和封装
1.1.2 接口
1.2 核心问题:集成数据库和面向对象系统
1.2.1 该何去何从
1.2.2 对象—关系失配
1.3 orm:一个问题多多的解决方案
1.4 把数据库操作设计为api
1.5 全面权衡
1.5.1 可测试性
1.5.2 可维护性
1.5.3 安全性
1.5.4 性能
1.5.5 步履蹒跚的远期功能
1.6 小结
第2章 数据库例程测试
2.1 黑盒测试与白盒测试简介
2.1.1 单元测试和功能测试
2.1.2 单元测试框架
译者序回到顶部↑
SQL Server 2005不仅具有SQLServer数据库的所有优点,而且在性能、可靠性、可用性、可编程性等方面得到了有效的改进,因此,更加适用于进行大型联机事务处理、大规模数据存储和大型电子商务应用。另外,SQL Server 2005与.NET平台高度集成,因此,开发SQLServer应用程序时,不仅可以使用T-SQL语法,还可以将.NET语言开发的程序部署到SQL Server 2005中,程序开发方式、程序的性能、安全性和可扩展性都得到了有效的提高。.
目前,在大型联机事务处理、空间数据处理等应用中,SQL Server 2005已经得到了广泛使用。然而,开发这类应用系统时,开发人员常常会遇到一些意想不到的困难。例如,安全性、加密技术、并发处理等技术,入门似乎很容易,但是一旦涉及如何在确保系统性能和可靠性的前提厂实现相关功能,许多开发人员就不得不在SQL Server的联机手册中苦苦寻找答案。
正是基于卜述原因,本书讨论了在确保数据库执行效率和应用程序可靠性的前提下,如何开发数据库应用程序,而这些主题在别的书籍中很少讨论到。读者可以从本书学习到如何创建高质量的加密方案,如何生成SQLCLR解决方案,掌握如何开发可靠的并发程序,以及空间数据库和时态数据库设计方法等。在翻译本书过程中,我们感到作者对SQL Server 2005认识极为深刻,并深为作者的广博知识所吸引。例如,在翻译第9章的过程中,我们对作者的讨论和技术对比颇为折服,因为作者提到的许多技术正是我们在某大型科研项目中采用过的技术。为了提高系统效率,最终选定某项实现技术时,往往需要集思广益,经过了大量比较后才能确定,而作者的探讨,无疑会为开发这类系统提供一个有益的指南,使未来的开发工作少走许多弯路。..
本书作者均系SQL Server开发界的知名人士,他们对SQL Server架构分析及相关技术细节具有深刻的理解。对于使用SQL Server实现解决方案的开发人员,特别是SQL Server高级开发人员,本书是一部非常好的指导性著作。
在本书的翻译过程中,我们本着对读者认真负责的态度,力求做到技术内涵的准确无误和专业术语的规范统一,力求做到翻译的准确性和灵活性的有效结合。
本书主要由颜炯和薄建禄翻译。参与本书翻译的还有马蓉、焦贤龙、张杰良、韩智文、张聪、闫志强、唐玲艳、肖国尊、岳虹、邓彬、林龙信、李晋文、肖枫涛、邝祝芳、奚丹、刘志忠、陈钢、宋锐、唐扬斌、叶俊、杨明军。BeFlying工作室负责人肖国尊负责本书译者的确定、翻译质量和进度的控制与管理。由于水平有限,错误与不到位之处在所难免,敬请广大读者提供反馈意见,可以发送电子邮件至be-flying@sohu.com。我们会仔细查阅读者发来的每一封邮件,以求进一步提高今后译著的质量。同时欢迎光临BeFlying工作室博客:http://blog.csdn.net/be flying。...
译者
2008年初
目前,在大型联机事务处理、空间数据处理等应用中,SQL Server 2005已经得到了广泛使用。然而,开发这类应用系统时,开发人员常常会遇到一些意想不到的困难。例如,安全性、加密技术、并发处理等技术,入门似乎很容易,但是一旦涉及如何在确保系统性能和可靠性的前提厂实现相关功能,许多开发人员就不得不在SQL Server的联机手册中苦苦寻找答案。
正是基于卜述原因,本书讨论了在确保数据库执行效率和应用程序可靠性的前提下,如何开发数据库应用程序,而这些主题在别的书籍中很少讨论到。读者可以从本书学习到如何创建高质量的加密方案,如何生成SQLCLR解决方案,掌握如何开发可靠的并发程序,以及空间数据库和时态数据库设计方法等。在翻译本书过程中,我们感到作者对SQL Server 2005认识极为深刻,并深为作者的广博知识所吸引。例如,在翻译第9章的过程中,我们对作者的讨论和技术对比颇为折服,因为作者提到的许多技术正是我们在某大型科研项目中采用过的技术。为了提高系统效率,最终选定某项实现技术时,往往需要集思广益,经过了大量比较后才能确定,而作者的探讨,无疑会为开发这类系统提供一个有益的指南,使未来的开发工作少走许多弯路。..
本书作者均系SQL Server开发界的知名人士,他们对SQL Server架构分析及相关技术细节具有深刻的理解。对于使用SQL Server实现解决方案的开发人员,特别是SQL Server高级开发人员,本书是一部非常好的指导性著作。
在本书的翻译过程中,我们本着对读者认真负责的态度,力求做到技术内涵的准确无误和专业术语的规范统一,力求做到翻译的准确性和灵活性的有效结合。
本书主要由颜炯和薄建禄翻译。参与本书翻译的还有马蓉、焦贤龙、张杰良、韩智文、张聪、闫志强、唐玲艳、肖国尊、岳虹、邓彬、林龙信、李晋文、肖枫涛、邝祝芳、奚丹、刘志忠、陈钢、宋锐、唐扬斌、叶俊、杨明军。BeFlying工作室负责人肖国尊负责本书译者的确定、翻译质量和进度的控制与管理。由于水平有限,错误与不到位之处在所难免,敬请广大读者提供反馈意见,可以发送电子邮件至be-flying@sohu.com。我们会仔细查阅读者发来的每一封邮件,以求进一步提高今后译著的质量。同时欢迎光临BeFlying工作室博客:http://blog.csdn.net/be flying。...
译者
2008年初
前言回到顶部↑
一次又一次地在不同的项目中使用SQL Server之后,我发现自己一次又一次地解决了许多同样类型的问题。虽然解决每个问题的方法稍有不同,但是它们通常会有一些共同的特征——编码模式、逻辑过程或通用技术。每一次开发客户的软件时,我就感觉自己正在基于以前做过的东西,创建—个更大的工具集,而这个工具集是我可以应用到以后许多项目中去的。每次我开始感觉白己已经掌握了某些领域的奥秘,就又会突然学到一些新的技巧,并意识到我实际上什么都不懂——这就是使用如SQLServer这样又大又灵活的产品工作所获得的乐趣的一部分。.
本书的核心实际上就是如何构建自己的工具集。在使用SQL Server的过程中,你可以从工具集中获得灵感。我试图说明如何使用这里描述的每个概念,还会说明为何这样使用。本书的许多例子中,我都试图深入探讨我获得我所认为的最佳答案的过程。我的目标是与你分享我对问题的思考方式。无论你是否发现我的方法直接可用,我都希望你可以利用它,将其作为调整你自己的开发方法的手段。
本书从逻辑上可分为3个部分:前4章着重介绍SQL Server中涉及的软件开发方法学,接下来的3章深入研究SQLServer所独具的高级特性,最后4章着重于从架构的角度分析问题,围绕一些我在过去的项目中遇到的更困难的问题,深入研究特定的设计和实现问题。
第1章和第2章的目标是为SQL Server中的软件开发提供一个框架。到目前为止,SQLServer已经远远不只是一个DBMS了,我感觉到大部分时间它没有获得它作为一个应用程序构建的基础所应该获得的尊重。相反,它经常被看作一个“哑(dumb)”对象存储系统,这种看法真的很让人感到羞愧啊!想想应用程序可以利用它做多少事情!在这两章中,我着重讨论软件架构和开发方法学,以及如何像对待其他软件一样正确对待数据库软件,包括对它进行测试。..
软件开发实际上就是将业务问题转化为技术解决方案,但在这条路上存在很多障碍。在我看来,其中的两个主要障碍是:存在于软件或其他组件中的漏洞和那些对破坏或窃取数据感兴趣的入侵者。因此,第3章和第4章将分别介绍异常处理和安全。恰当地预见错误发生的条件并预防安全威胁,你就能够晚上早点休息,因为这时你知道你的软件不会在重压之下轻易崩溃。
第5章至第7章主要介绍加密、SQLCLR和动态SQL的正确使用。这几章不会涉及所有特性(尤其是对于SQLCLR这一章),而是回顾一些最重要的内容,这些内容是你在使用这些特性解决自己的业务问题时所要考虑的。
第8章至第11章介绍应用程序并发、空间数据、时态数据和图。这是本书最为庞大、最为复杂的内容,也是我最喜欢的内容。数据架构是一种只要有一点创新,你就能获得大量回报的领域,这个领域也是研究新问题和解决新问题的好地方。这几章介绍如何使用不同模式解决一些常见问题,这些模式都应该易于修改,以便适应数据库开发人员在门常工作中面临的各种情况。
最后,我要提醒读者的是,数据库开发虽然是一项严肃的工作且对业务至关重要,但应该还是一项很有意思的工作!巧妙而有效地解决技术难题将会给人带来难以置信的满足感。我希望本书能使读者和我一样变得对数据库开发充满热情。...
本书的核心实际上就是如何构建自己的工具集。在使用SQL Server的过程中,你可以从工具集中获得灵感。我试图说明如何使用这里描述的每个概念,还会说明为何这样使用。本书的许多例子中,我都试图深入探讨我获得我所认为的最佳答案的过程。我的目标是与你分享我对问题的思考方式。无论你是否发现我的方法直接可用,我都希望你可以利用它,将其作为调整你自己的开发方法的手段。
本书从逻辑上可分为3个部分:前4章着重介绍SQL Server中涉及的软件开发方法学,接下来的3章深入研究SQLServer所独具的高级特性,最后4章着重于从架构的角度分析问题,围绕一些我在过去的项目中遇到的更困难的问题,深入研究特定的设计和实现问题。
第1章和第2章的目标是为SQL Server中的软件开发提供一个框架。到目前为止,SQLServer已经远远不只是一个DBMS了,我感觉到大部分时间它没有获得它作为一个应用程序构建的基础所应该获得的尊重。相反,它经常被看作一个“哑(dumb)”对象存储系统,这种看法真的很让人感到羞愧啊!想想应用程序可以利用它做多少事情!在这两章中,我着重讨论软件架构和开发方法学,以及如何像对待其他软件一样正确对待数据库软件,包括对它进行测试。..
软件开发实际上就是将业务问题转化为技术解决方案,但在这条路上存在很多障碍。在我看来,其中的两个主要障碍是:存在于软件或其他组件中的漏洞和那些对破坏或窃取数据感兴趣的入侵者。因此,第3章和第4章将分别介绍异常处理和安全。恰当地预见错误发生的条件并预防安全威胁,你就能够晚上早点休息,因为这时你知道你的软件不会在重压之下轻易崩溃。
第5章至第7章主要介绍加密、SQLCLR和动态SQL的正确使用。这几章不会涉及所有特性(尤其是对于SQLCLR这一章),而是回顾一些最重要的内容,这些内容是你在使用这些特性解决自己的业务问题时所要考虑的。
第8章至第11章介绍应用程序并发、空间数据、时态数据和图。这是本书最为庞大、最为复杂的内容,也是我最喜欢的内容。数据架构是一种只要有一点创新,你就能获得大量回报的领域,这个领域也是研究新问题和解决新问题的好地方。这几章介绍如何使用不同模式解决一些常见问题,这些模式都应该易于修改,以便适应数据库开发人员在门常工作中面临的各种情况。
最后,我要提醒读者的是,数据库开发虽然是一项严肃的工作且对业务至关重要,但应该还是一项很有意思的工作!巧妙而有效地解决技术难题将会给人带来难以置信的满足感。我希望本书能使读者和我一样变得对数据库开发充满热情。...
序言回到顶部↑
数据库也是软件。我从1978年就开始从事软件开发了,近十多年来这一理念成了我职业生涯的基点。.
既然你已经在翻看本书,那么你很有可能乐于接受如下观点:数据库及其可编程能力也和应用程序的其余部分一样值得严肃对待和处理。很好!很高兴能和你——起开始这个旅程,让我们先从这个序开始吧!
你很可能和我一样,对于在设计和预算过程中轻视“后端”这样的普遍看法持怀疑态度。那么,你现在肯定在寻找构建或改进SQLServer2005设计和开发过程中比较实用的见解。
你现在拿的这本书就充满了这类见解。在正式开始阅读本书之前,我想向你提一个建议。
我建议我们不要再将数据库称为“后端”了。这个词实际上有一点轻视和贬低的味道。听起来好像我们不太乐意关注它似的,对吧?而“前端”这个词则听起来好像是充满了欢乐和荣誉的地方。毕竟,那是所有人都能看到的地方。后端听起来奸像是一种可以被安全地忽略的东西。因此,当必须减少资源时,可能从人们都看不见的地方着手更容易和更安全些,是这样吗?..
错了。这样的做法忽略了一个事实,即数据库是软件——重要且复杂的软件。如果我们将数据库这个组件称为“基础层”的话,我们的观点会有怎样的变化呢?“基础层”听起来肯定显得有分量多了。例如,当考虑家里房子的地基(基础层)时,我会强烈希望设计、构建它的人知道他们在于什么,尤其是我家后院的山上可能有山泉流下来的时候。如果他们不注意,所有地基上形形色色的东西,从房顶到宽带调制解调器再到我的吉他都将处于危险之中。同样,如果应用程序的基础层没有按照客户独特而精心考虑的要求进行设计和构建,用户界面再漂亮也是没有用的。如果底层基础层不能满足任何逻辑或性能的需求,那么即使拥有当前最敏捷的用户界面也是不会让用户满意的。
我要再重复一遍:数据库是软件。存储过程、用户自定义函数和触发器显然都是软件,而Schema也是软件。主键和外键也是软件。索引和统计信息也同样是软件。整个数据库都是软件。读到这里,可能你会发现这些就是要你关注的。你也许正在探寻一个框架,一种可以利用的、以简洁有序方式深入SQLServer2005开发的思想。看完这本非常易读的书之后,你会发现你的探寻有了答案。
我从1999年起在微软公司供职,这个工作使我成为对数据库设计和构建的所有阶段都应用严格质量标准的提倡者。自从在2005年凭借这一阶段的工作进入公众视野后,我遇到了几个志趣相投的人,其中就包括Adam和Hugo。如果你采纳了作者在书中所提的建议,那么将会创建㈩可扩展性、可维护性都更好的数据库,进而使得应用程序有更好的性能并且更易于维护,这也会使客户更加开心。这种事情,说到底,对业务都有好处。
通过阅读本书,你将成为软件和IT行业中专家级原则的实践者和支持者,这个专家级的原则就是:数据库是软件!...
WardPond
MicrosoftSQLServer资深技术架构师
http://blogs.technet.com/wardpond
sqlwriter@comcast.net
既然你已经在翻看本书,那么你很有可能乐于接受如下观点:数据库及其可编程能力也和应用程序的其余部分一样值得严肃对待和处理。很好!很高兴能和你——起开始这个旅程,让我们先从这个序开始吧!
你很可能和我一样,对于在设计和预算过程中轻视“后端”这样的普遍看法持怀疑态度。那么,你现在肯定在寻找构建或改进SQLServer2005设计和开发过程中比较实用的见解。
你现在拿的这本书就充满了这类见解。在正式开始阅读本书之前,我想向你提一个建议。
我建议我们不要再将数据库称为“后端”了。这个词实际上有一点轻视和贬低的味道。听起来好像我们不太乐意关注它似的,对吧?而“前端”这个词则听起来好像是充满了欢乐和荣誉的地方。毕竟,那是所有人都能看到的地方。后端听起来奸像是一种可以被安全地忽略的东西。因此,当必须减少资源时,可能从人们都看不见的地方着手更容易和更安全些,是这样吗?..
错了。这样的做法忽略了一个事实,即数据库是软件——重要且复杂的软件。如果我们将数据库这个组件称为“基础层”的话,我们的观点会有怎样的变化呢?“基础层”听起来肯定显得有分量多了。例如,当考虑家里房子的地基(基础层)时,我会强烈希望设计、构建它的人知道他们在于什么,尤其是我家后院的山上可能有山泉流下来的时候。如果他们不注意,所有地基上形形色色的东西,从房顶到宽带调制解调器再到我的吉他都将处于危险之中。同样,如果应用程序的基础层没有按照客户独特而精心考虑的要求进行设计和构建,用户界面再漂亮也是没有用的。如果底层基础层不能满足任何逻辑或性能的需求,那么即使拥有当前最敏捷的用户界面也是不会让用户满意的。
我要再重复一遍:数据库是软件。存储过程、用户自定义函数和触发器显然都是软件,而Schema也是软件。主键和外键也是软件。索引和统计信息也同样是软件。整个数据库都是软件。读到这里,可能你会发现这些就是要你关注的。你也许正在探寻一个框架,一种可以利用的、以简洁有序方式深入SQLServer2005开发的思想。看完这本非常易读的书之后,你会发现你的探寻有了答案。
我从1999年起在微软公司供职,这个工作使我成为对数据库设计和构建的所有阶段都应用严格质量标准的提倡者。自从在2005年凭借这一阶段的工作进入公众视野后,我遇到了几个志趣相投的人,其中就包括Adam和Hugo。如果你采纳了作者在书中所提的建议,那么将会创建㈩可扩展性、可维护性都更好的数据库,进而使得应用程序有更好的性能并且更易于维护,这也会使客户更加开心。这种事情,说到底,对业务都有好处。
通过阅读本书,你将成为软件和IT行业中专家级原则的实践者和支持者,这个专家级的原则就是:数据库是软件!...
WardPond
MicrosoftSQLServer资深技术架构师
http://blogs.technet.com/wardpond
sqlwriter@comcast.net
媒体评论回到顶部↑
“罕见的深度,书中的所有内容都值得反复咀嚼并实际演练。我向所有想探索SQL Server的读者推荐本书。”
——Bob Beauchemin,微软SQL Server MVP
“数据库方面的书太多了。可是没有一本像本书这样讨论了软件工程、测试等诸多重要主题,包括我自己的收!许多内容对我来说也是全新的,强烈推荐!”
——JoeCelko,SQL标准委员会成员。世界顶尖SQL专家,《SQL解惑》等经典著作的作者
市面上充斥着大量入门性质的SQL Server 2005图书,而许多重要的主题却很少涉及。
本书由几位世界级SQL Server专家撰写而成,他们从亲身开发经验出发,针对实际开发中会一再遇到的问题,讨论了包括微软公司联机文档在内的其他资料中都难以找到的一些重要主题。作者将数据库视为软件开发生态系统中的一个有机组成部分,引导读者对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 架构回顾
软件架构是一个庞大、复杂的话题,主要是因为很多软件架构设计师往往喜欢把系统弄得尽可能的复杂。而事实在于,编写一个优秀的软件,并不需要像很多系统设计师提倡的那样使用太多复杂的结构设计,真正高质量的设计往往只需理解并应用其中很少的基本原理就够了。
……
数据库应用程序开发是一种软件开发形式,人们应该以软件开发的方式看待数据库应用程序开发。但是在开发小组讨论架构及测试计划时,往往把数据库部分当做次要部分来考虑——似乎很多数据库开发人员都认为,标准的软件开发最佳实践并不适用于数据库应用程序开发。
事实上,几乎每种应用程序都需要某种形式的数据存储,开发社区中的许多人都不只是持久化应用数据,还要创建数据驱动(data driven)的应用程序。所谓数据驱动就是应用程序的行为根据数据的变化而动态变化,事实上可以用一个更好的术语来表达这个概念,即数据依赖(data dependent)。
由于应用程序与数据和数据库如此的密切相关,软件开发高手不仅仅要是能干的软件开发人员,毫无疑问还得是数据访问和管理方面的专家。数据是应用程序中处于中心位置的、控制性的因素,它决定了应用程序对用户的价值。没有数据,也就无需此应用程序。
本书的主要目的正是为了把Microsoft SQL Server开发人员重新拉回软件开发的范畴。本书强调严格的测试、深思熟虑的架构设计,以及对数据彼此依赖性的谨慎考虑。对这些方面的完美驾驭是软件开发专家的重要标志,而作为任何软件开发团队的核心,数据库专家当然不能缺少这个方面的专业技能。
本章将重点介绍软件开发概念和架构相关知识,因为它们完全适用于数据库应用领域。其中有些主题在开发者社区中尚有极大争议,本书将尽量对各种观点并举,即使有些问题似乎已经有了权威答案。不过我建议你认真思考这些问题,而不是把我或者其他人的观点照搬照抄,因为软件架构领域于变万化,只有在对各种案例反复揣摩之后我们才可能奢望找到或许存在的“最佳”答案。
1.1 架构回顾
软件架构是一个庞大、复杂的话题,主要是因为很多软件架构设计师往往喜欢把系统弄得尽可能的复杂。而事实在于,编写一个优秀的软件,并不需要像很多系统设计师提倡的那样使用太多复杂的结构设计,真正高质量的设计往往只需理解并应用其中很少的基本原理就够了。
……








点击看大图






加载中...

