oracle学习笔记1ITeye - 众发娱乐

oracle学习笔记1ITeye

2019年02月27日08时10分18秒 | 作者: 怀绿 | 标签: 运用,数据库,特性 | 浏览: 1383

曩昔我一直在开发Oracle软件,并与其他Oracle开发人员一起作业,协助他们构建牢靠、强健的依据Oracle数据库运用程序。在这个进程中积累了一些经历,正是这些经历赋予我创意,才有了本书中的内容。这本书实际上反映了我每天做了些什么,汇集了我所看到的人们每天遇到的问题。 本书光辉了我以为最重要的一些内容,即Oracle数据库及其体系结构。我也能够写一本书名相似的其他方面的书,向你解说怎样用一种特定的言语和体系结构开发运用程序。例如,我能够告诉你怎样运用JSP(JavaServer Pages)与EJB(Enterprise JavaBeans)通讯,EJB又怎样运用JDBC与Oracle通讯。不过,满是,最终仍是要了解Oracle数据库及其体系结构(本书介绍的内容),才干成功地构建这样一个运用程序。要想成功地运用Oracle进行开发,我以为有些内容你有必要了解,而不管你是一位运用ODBC的Visual Basic程序员、运用EJB和JDBC的Java程序员,仍是运用DBI Perl的Perl程序员,这本书都会介绍这些通用的常识。本书并不推重哪一种特定的运用体系结构,在此没有比较三层结构和客户/服务器结构孰优孰劣。咱们仅仅评论数据库能做什么,别的关于数据库怎样作业,咱们还会指出你有必要了解哪些内容。由于数据库是一切运用体系结构的中心,所以这本书适用面很广。 望文生义,本书的要点是数据库体系结构,并着重数据库自身怎样作业。我会深化地剖析Oracle数据库体系结构,光辉文件、内存结构以及构成Oracle数据库和实例的进程。然后评论一些重要的数据库主题,如断定、并发操控、业务、redo和undo,还会解说为什么了解这些内容很重要。最终,咱们再来剖析数据库中的物理结构,如表、索引和数据类型,并介绍哪些技能能最优地运用这些物理结构。 本书内容 假如开发的挑选地步很大,则会带来一些问题,其间一个问题是有时很难断定哪种挑选最能满意特定需求。每个人都期望灵活性尽或许大(有尽或许多的挑选),一起又期望能简略明晰,换句话说,期望尽量简略。Oracle为开发人员供给的挑选简直无穷无尽。没有人会说“这在Oracle中做不到”,而只会说“在Oracle中你想用多少种不同的办法来完结”。期望这本书能帮你作出正确的挑选。 假如你不只仅想知道做何挑选,还想了解有关Oracle特性和功用的一些准则和完结细节,这本书就很适宜你。例如,Oracle有一个很棒的特性,称为并行履行(parallel execution)。Oracle文档会告诉你怎样运用这个特性,并阐明它究竟能做什么。不过,Oracle文档没有告诉你应该在什么时候用这个特性,更重要的是没有指出什么时候不该运用这个特性。别的,文档一般没有供给特性的完结细节,假如你不清楚,或许会因此而困扰(我指的不是bug,而是说你或许很想知道这个特性怎样作业,以及为此是怎样详细规划的,但从文档中找不到答案)。 在本书中,我不只会竭力阐明各个特性怎样作业,还会指出什么状况下要考虑运用某个特性或完结,并解说为什么。我以为,了解“怎样做”当然很重要,但了解“什么时候做”和“为什么这样做”(以及“什么时候不做”和“为什么不做”)也相同重要! 读者目标 本书面向那些运用Oracle作为数据库后端开发运用程序的人员。专业Oracle开发人员假如想了解怎样在数据库中完结某些作业,相同能够参阅本书。本书恰当有用,所以DBA也会对书中的许多内容感兴趣。书中大部分比如都运用SQL*Plus来展现要害特性,所以假如想经过本书来了解怎样开发一个很帅的GUI,或许不能如愿。不过,从这本书中,你将知道Oracle数据库怎样作业,它的要害特功用做些什么,以及什么时候应该(和不该该)运用这些特性。 假如你想事半功倍地运用Oracle,假如你想了解运用现有特性的新办法,假如你想知道这些特性在实在国际中怎样运用(不只仅展现怎样运用特性,而是首要剖析为什么要用这个特性),就请阅览本书。作为技能司理,假如你手下的开发人员在开发Oracle项目,你或许也会对本书感兴趣。从某种程度上讲,技能司理也要懂数据库,而且要知道这关于成功至关重要。假如技能司抱负安排职工进行恰当的技能培训,或许想保证职工了解他们应该把握的技能,就能够运用本书来“充电”。 要想更好地学习本书的内容,要求具有以下才能。 了解SQL。不要求你能编写最棒的SQL代码,可是假如用过SQL,对SQL有实战经历,这会很有协助。 把握PL/SQL。这不是一个必要的条件,可是有助于你“体会”书中的比如。例如,本书不会教你怎样编写一个FOR循环,或许怎样声明一个记载类型,这些内容能够参阅Oracle文档和许多相关的图书。不过,这并不是说你从本书中学不到PL/SQL的常识。不是这样的。经过阅览本书,你会对PL/SQL的许多特性恰当了解,而且会学到一些新办法,还会留意到你曾经以为不存在的一些包和特性。 触摸过某种第三代言语(third-generation language,3GL),如C或Java。我信任,假如你能阅览3GL言语编写的代码,或许编写过这种代码,肯定能顺畅地阅览和了解本书中的比如。 了解Oracle Concepts手册。 最终再说两句,由于Oracle文档实在太巨大了,这让许多人都有些害怕。假如你刚开端读Oracle Concepts手册,或许还没有看过,那我能够告诉你,这个手册肯定是一个很好的起点。它大约有400页(我知道页数是由于我编写了一部分,而且修正了每一页),触及你需求知道的许多重要的Oracle概念。其间不会光辉每一个技能细节(Oracle文档供给了技能细节,不过它有10 000页到20 000页之多),但你能从中学到一切重要的概念。这个手册触及以下主题(这儿所列的并不完好): 数据库中的结构,数据怎样安排和存储; 散布式处理; Oracle的内存体系结构; Oracle的进程体系结构; . 你要运用的形式目标(表、索引、聚簇等); 内置数据类型和用户界说的数据类型; SQL存储进程; 业务怎样作业; 优化器; 数据完好性; 并发操控。 我自己也会时不时地温习这些内容。这些都是根底,假如不了解这些常识,创立的Oracle运用程序就很简略失利。主张通读Oracle Concepts手册来了解这些主题。 本书安排结构 为了协助你更好地运用本书,大部分章都分为4个部分(见稍后的内容)。这个区分并不严厉,不过有助于你快速地找到感兴趣的方面,从中取得所需的更多信息。本书有16章,每一章都像一本“迷你书”,能够独自成册。有时我会引证其他章中的比如或特性,不过你彻底能够从书中任选一章,不参阅其他章也能顺畅阅览。例如,要了解或运用第14章关于并行机制的常识,就不必先阅览介绍数据库表的第10章。 许多章的格局和风格根本上都相同。 首要是特性或功用的介绍。 阐明为什么想运用(或许不想运用)这个特性或功用。我会概述哪些状况下要考虑运用这个特性,而哪些状况下不考虑。 怎样运用这个特性。这儿供给的信息不是彻底照搬SQL参阅资料中的内容,而是会以一种按部就班的办法安排。我会清楚地指出哪些是你需求的,哪些是你有必要做的,别的哪些环节需求仔细查看。这一部分光辉以下内容: 怎样完结这个特性; 许许多多的比如; 怎样调试这个特性; 运用这个特性的劝告; 怎样(主动地)处理过错。 对上述内容的小结。 书中有恰当多的比如和许多的代码,这些都能够从http://www.apress.com 的Source Code区下载。下面将详细介绍每一章的内容。 第1章:开发成功的Oracle运用 从这一章开端,我将介绍数据库编程的根本办法。一切数据库创立得并不相同,要想准时、成功地开发数据库驱动的运用,你有必要了解你的数据库能做什么,是怎样做的。假如不清楚数据库能做什么,就很或许不断地遭受“凭空捏造”的困境,徒劳地从头开发数据库本已供给的功用;假如不清楚数据库是怎样作业的,很或许开宣布功用很差的运用,达不到预期的要求。 这一章先依据经历剖析了一些运用,这些运用都由于缺少对数据库的根本了解而导致项目失利。这一章就选用这种“拿比如说话”的办法,评论了开发人员有必要了解数据库的哪些根本特性和功用。要害是,不要把数据库当成一个黑盒,不要以为它能自己尽力得出答案并自行担任可扩展性和功用。 第2章:体系结构概述 这一章介绍Oracle体系结构的根底常识。首要给出两个术语的明断界说——“实例”(instance)和“数据库”(database),Oracle范畴的许多人都对这两个词存在误解。咱们还会扼要介绍体系大局区(System Global Area,SGA)和Oracle实例底层的进程,并剖析“衔接Oracle”这样一个简略的动作是怎样完结的。 第3章:文件 这一章将深化介绍构成Oracle 数据库和实例的8类文件,从简略的参数文件到数据文件和重做日志文件(redo log file)都会光辉它们。咱们将阐明这些文件是什么,为什么有这些文件,以及怎样运用它们。 第4章:内存结构 这一章评论Oracle怎样运用内存,光辉各个进程中的内存(PGA内存,PGA即进程大局区)和同享内存(SGA)。咱们会剖析手动和主动PGA内存办理之间的差异,并介绍Oracle Database 10g中的SGA内存办理,还会阐明各种办法适用于什么状况。读完这一章之后,你会对Oracle怎样运用和办理内存有深化的了解。 第5章:Oracle进程 这一章概述了各种Oracle进程(服务器进程和后台进程),别的还恰当深化地评论了经过同享服务器进程或专用服务器进程衔接数据库有何差异。发动Oracle实例时会看到一些后台进程,这一章将逐个介绍其间一些重要的后台进程(如LGWR、DBWR、PMON和SMON),并别离评论这些进程的功用。 第6章:锁和闩 不同的数据库有不同的行事办法(SQL Server里能做的在Oracle中不必定能做)。应当了解Oracle怎样完结断定和并发操控,这关于运用的成功至关重要。这一章将评论Oracle处理这些问题的根本办法,能够运用哪些类型的锁[DML、DDL和闩(latch)],还会指出假如断定完结不妥,会呈现哪些问题(死锁、堵塞和锁晋级)。 第7章:并发与多版别操控 这一章介绍我最喜爱的Oracle特性——多版别操控(multi-versioning),并评论它对并发操控和运用规划有什么影响。在这儿能清楚地看到,一切数据库创立得都不相同,详细的完结会对运用的规划产生影响。咱们先回忆ANSI SQL规范界说的各个业务阻隔等级,并介绍它们在Oracle中的详细完结(还会介绍其他数据库中的完结)。依据多版别特性,Oracle能够在数据库中供给非堵塞读(non-blocking read),本章接下来会剖析多版别特性对咱们有什么影响。 第8章:业务 业务是一切数据库的一个根本特性,这也是数据库差异于文件体系的一个方面。不过,业务常常遭到误解,许多开发人员乃至不知道他们有时没有运用业务。这一章将评论Oracle中应当怎样运用业务,还列出了运用其他数据库进行开发时或许呈现的一些“坏习惯”。详细而言,咱们将评论原子性的含义,并阐明原子性对Oracle中的句子有何影响。这一章还会评论业务操控句子(COMMIT、SAVEPOINT和ROLLBACK)、完好性束缚和散布式业务(两段提交或2PC),最终介绍自治业务。 第9章:redo与undo 或许有人说,开发人员不必像DBA那样深化地了解redo(重做信息)和undo(吊销信息)的细节,可是开发人员的确要清楚redo和undo在数据库中所起的重要效果。这一章首要对redo下一个界说,然后剖析COMMIT究竟做什么,并评论怎样知道生成了多少次redo,怎样运用NOLOGGING子句来明显削减某些操作生成的redo数。咱们还研讨了redo生成与块铲除(block cleanout)和日志竞赛(log contention)等问题的联系。 这一章的9.6节中评论了吊销数据的效果,并介绍哪些操作会生成最多/最少的undo。最终剖析“厌烦”的ORA-01555:snapshot too old(ORA-01555:快照太旧)过错,解说导致这个过错的或许原因,并阐明怎样防止。 第10章:数据库表 Oracle现在支撑多种表类型。这一章将别离介绍每一种类型,光辉堆安排表(heap organized,也就是默许的“一般”表)、索引安排表(index organized)、索引聚簇表(index clustered)、散列聚簇表(hash clustered)、嵌套表(nested)、暂时表(temporary)和目标表(object),并评论什么时候运用这些类型的表、怎样运用以及为什么运用。大多数状况下,堆安排表就足够了,不过这一章还将协助你知道到在哪些状况下运用其他类型的表更适宜。 第11章:索引 索引是运用规划的一个重要方面。要想正确地完结索引,要求深化地了解数据,清楚数据怎样散布,而且知道要怎样运用数据。人们常常把索引作为“马后炮”,直到运用开发的后期才添加,这就会导致运用的功用低下。 这一章将详细剖析各种类型的索引,光辉B*树索引、位图索引(bitmap index)、依据函数的索引(function-based index)和运用域索引(application domain index),并评论各种索引应该在哪些场合运用,以及哪些场合不适用。我会在11.6节答复常常被问到的一些问题,如“索引能在视图上运用吗”和“为什么没有运用我的索引”。 第12章:数据类型 有许多数据类型可供挑选。这一章会逐个剖析22种内置数据类型,解说这些类型是怎样完结的,并阐明怎样以及何时运用这些数据类型。首要对国家言语支撑(National Language Support,NLS)做一个扼要的概述。要想充沛了解Oracle中简略的串类型,有必要先把握这个根底常识。接下来再评论广泛运用的NUMBER类型,并介绍Oracle Database 10g 关于在数据库中存储数值又供给了哪些新的选项。咱们首要从前史视点介绍LONG和LONG RAW类型,意图是评论怎样处理运用中留传的LONG列,并将其移植为LOB类型。然后会深化剖析存储日期和时刻的各种数据类型,评论怎样处理这些数据类型来得到咱们想要的成果。这儿还会谈到时区支撑的有关细节。 接下来评论LOB数据类型。咱们会阐明LOB类型的存储办法,并指出各种设置(如IN ROW、CHUNK、RETENTION、CACHE等)对咱们有什么含义。处理LOB时,重要的是要了解默许状况下它们怎样完结和存储,在对LOB的获取和存储进行调优时这一点特别重要。本章的最终介绍ROWID和UROWID类型。这些是Oracle专用的特别类型,用于表明行地址。咱们会介绍什么时候能够将它们用作表中的列数据类型。(这种状况简直历来不会呈现!) 第13章:分区 分区(partitioning)的意图是为了便于办理非常大的表和索引,即完结一种“分而治之”的逻辑,实际上就是把一个表或索引分解为多个较小的、更可办理的部分。在这方面,DBA和开发人员有必要协作,使运用能有最大的可用性和最高的功用。这一章介绍了表分区和索引分区。咱们会谈到运用部分索引(在数据仓库中很常用)和大局索引(常见于OLTP体系)的分区。 第14章:并行履行 这一章介绍了Oracle中并行履行(parallel execution)的概念,并阐明晰怎样运用并行履行。首要指出并行处理在什么状况下有用,以及哪些状况下不该考虑运用它。有了必定的知道后,再来评论并行查询的机制,大多数人说到并行履行都会想到这个特性。接下来评论PDML(parallel DML,并行DML),运用PDML,能够运用并行履行完结修正。咱们会介绍PDML在物理上怎样完结,并阐明为什么这个完结会对PDML带来一系列约束。 然后再来看并行DDL。在我看来,这才是并行履行真实的亮光之处。一般,DBA会运用一些小的保护窗口来完结许多的操作。运用并行DDL,DBA就能充沛运用可用的机器资源,在很短的时刻内完结很大、很杂乱的操作(它只需原先串行履行所需时刻的很小一部分)。 这一章的最终将评论进程并行机制(procedural parallelism),选用这种办法能够并行地履行运用程序代码。这儿将介绍两个技能。首要是并行管道函数(parallel pipelined function),即Oracle动态地并行履行存储函数。第二个技能是DIY并行机制(DIY parallelism),运用这个技能能够把运用规划为并发地运转。 第15章:数据加载和卸载 15.1节要点介绍SQLLDR(SQL*Loader),并阐明能够选用哪些办法运用这个工具来加载和修正数据库中的数据。咱们会评论加载定界数据,更新现有的行和刺进新行,卸载数据,以及从存储进程调用SQLLDR。重申一遍,SQLLDR是一个齐备而重要的工具,但它的实际运用也带来许多问题。15.2节首要评论外部表,这是别的一种数据批量加载和卸载的高效办法。 第16章:数据加密 这一章将评论对Oracle数据库中的数据加密有哪些途径。这儿评论了怎样运用内置数据库包DBMS_CRYPTO完结手动“DIY”加密,不过这个内容不是要点。实际上,这儿更着重的是为什么不该运用这个包。这一章的要点是Oracle数据库中通明数据加密(Transparent Data Encryption,TDE)的完结细节,着重了怎样完结列级加密和表空间级加密,以及这关于开发人员或DBA有什么含义。这一章并未全面光辉每一种或许的装备(这是Oracle文档的作业),而是供给了一些有用的完结细节,并指出这对你会有哪些影响。 源代码和有关更新 运用这本书中的比如时,你或许想亲手键入一切代码。许多读者都喜爱这样做,由于这是了解编码技能的一种好办法。 不管你是否想自己键入代码,都能从Apress网站(http://www.apress.com)的Source Code区下载本书的一切源代码。即便的确想自己键入代码,下载源代码也很有必要,你能够运用下载的源代码文件查看正确的成果是什么。假如你以为自己的录入或许有误,就能够先从这一步开端。假使不想自己键入代码,那么除了从Apress网站下载源代码外别无挑选!不管选用哪种办法,代码文件都能协助你完结更新和调试。 勘误表 Apress竭力保证文字或代码不会犯错。不过,犯错也是人之常情,所以只需发现并修正了过错,咱们就会及时告诉你。Apress一切图书的勘误表都能够在http://www.apress.com上找到。假如你发现一个还没有陈述的过错,请告诉咱们。Apress网站还供给了其他的信息和支撑,光辉一切Apress图书的代码、样章、新书预告以及相关主题的文章等。
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    oracle学习笔记1ITeye

    运用,数据库,特性
  • 2

    oracle学习笔记1ITeye

    运用,数据库,特性
  • 3
  • 4
  • 5
  • 6
  • 7

    oracle数据同步技能ITeye

    数据,技能,数据库
  • 8
  • 9

    mysql大数据量导出运用ITeye

    企图,运用,成果
  • 10