- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
oracle专家高级编程 中文第一节新
1 章 开发成功的Oracle 应用程序
花了大量时间使用Oracle 数据库软件,更确切地讲,一直在与和使用 Oracle 数据库软件的人打交道。在过去的 18 年间, 参与
过许多项目,有的相当成功,有点却彻底失败,如果把这些经验用几句话来概括,可以总结如下:
q 基于数据库 (或依赖于数据库)构建的应用是否成功,这取决于如何使用数据库。另外,从 的经验看,所有应用的构建都围绕
着数据库。如果一个应用未在任何地方持久地存储数据,很难想象这个应用真的有用。
q 应用总是在 来来去去”,而数据不同,它们会永远存在。从长远来讲, 们的目标并不是构建应用,而应该是如何使用这些应用
底层的数据。
q 开发小组的核心必须有一些精通数据库的开发人员,他们要负责确保数据库逻辑是可靠的,系统能够顺利构建。如果已成事实(应
用已经部署)之后再去调优,这通常表明,在开发期间你没有认真考虑这些问题。
这些话看上去再显然不过了。然而, 发现太多的人都把数据库当成是一个黑盒 (black box ),好像不需要对它有输入了解。他们可
能有一个SQL 生成器,认为有了这个工具,就不需要再费功夫去学SQL 语言。也可能认为使用数据库就像使用平面文件一样,只需要根
据索引读数据就行。不管他们怎么想,有一点可以告诉你,如果按这种思路来考虑,往往会被误导:不了解数据库,你将寸步难行。这一
章将讨论为什么需要了解数据库,具体地讲,就是为什么需要理解以下内容:
q 数据库的体系结构,数据库如何工作,以及有怎样的表现。
q 并发控制是什么,并发控制对你意味着什么。
q 性能、可扩缩性和安全性都是开发时就应该考虑的需求,必须适当地做出设计,不要指望能碰巧满足这些需求。
q 数据库的特性如何实现。某个特定数据库特性的实际实现 式可能与你想象的不一样。你必须根据数据库实际上如何工作(而不
是认为它应该如何工作)来进行设计。
q 数据库已经提供了哪些特性,为什么使用数据库已提供的特性要优于自行构建自己的特性。
q 为什么粗略地了解SQL 还不够,还需要更深入地学习SQL。
q DBA 和开发人员都在为同一个目标努力,他们不是敌对的两个阵营,不是想在每个回合中比试谁更聪明。
初看上去,好像要学习的东西还不少,不过可以做个对照,请考虑这样一个问题:如果你在一个全新的操作系统 (operating system ,
OS )上开发一个高 可扩缩的企业应用,首先要做什么?希望你的答案是: 了解这个新操作系统如何工作,应用在它上面怎样运行,等
等”。如果不是这样,你的开发努力将会付诸东流。
例如,可以考虑一下Windows 和 Linux ,它们都是操作系统。能为开发人员提供大致相同的一组服务,如文件管理、内存管理、进
程管理、安全性等。不过,这两个操作系统的体系结构却大相径庭。因此,如果你一直是 Windows 程序员,现在给你一个任务,让你在
Linux 平台上开发新应用,那么很多东西都得从头学起。内存管理的处理就完全不同。建立服务器进程的 式也有很大差异。在 Window
下,你会开发一个进程,一个可执行程序,但有许多线程。在Linux 下则不同,不会开发单个独立的可执行程序;相反,会有多个进程协
作。总之,你在Windows 环境下学到的许多知识到了Linux 上并不适用(公平地讲,反之亦然)。要想在新平台上也取得成功,你必须把
原来的一些习惯丢掉。
在不同操作系统上运行的应用存在上述问题,基于不同数据库运行的应用也存在同样的问题:你要懂得,数据库对于成功至关重要。
如果不了解你的数据库做什么,或者不清楚它怎么做,那你的应用很可能会失败。如果你认为应用在SQL Server 上能很好地运行,那它在
Oracle 上也肯定能很好地工作,你的应用往往会失败。另外,公平地讲,反过来也一样:一个Oracle 应用可能开发得很好,可扩缩性很好,
但是如果不对体系结构做重大改变,它在SQL Server 上不一定能正常运行。Windows 和Linux 都是操作系统,但是二者截然不同,同样地,
Oracle 和SQL Server (甚至可以是任何其他数据库)尽管都是数据库,但二者也完全不同。
1.1 我的方法
在阅读下 的内容之前, 觉得有必要先解释一下我的开发 法。针对问题, 喜欢采用一种以数据库为中心的 法。如果能在数据
库中完成, 肯定就会让数据库来做,而不是自行实现。对此有几个原因。首先,也是最
文档评论(0)