编辑推荐

《SQL和PL/SQL深度编程数据建模高级编程高级分析安全与管理》展示了如何全面探索那些人们知之不多,却又极其有用的SQL和PL/SQL特性,并且展示了如何有效地同时使用这两种语言。

《SQL和PL/SQL深度编程数据建模高级编程高级分析安全与管理》由OracleACE总监团队编写,具有以下特色:更佳实践、完备的示例以及业内专家提供的建议,这些建议清楚地说明了如何编写代码、排除故障以及为各种实际应用实施代码。

《SQL和PL/SQL深度编程数据建模高级编程高级分析安全与管理》阐释了那些未被充分利用的SQL和PL/SQL的功能,并列出基本开发策略,全面涵盖了数据建模、高级分析、数据库安全性、安全编码和管理等方面内容。

内容简介

读者学会如何:

● 应用高级SQL和PL/SQL工具和技术

● 理解SQL和PL/SQL的功能,并能够决定何时使用哪种语言

● 开发精确的数据模型,并实施业务逻辑

● 在SQL中运行PL/SQL,并集成复杂的数据集

● 处理PL/SQL的性能测量和剖析

● 使用OracleAdvancedAnalytics和OracleREnterprise

● 使用OracleDataMining和预测查询,来创建和执行预测模型

● 使用加密、哈希、数据编写和掩蔽,使数据更安全

● 防御SQL注入和其他基于代码的攻击

● 工作于Oracle虚拟专用数据库之上

作者简介

ArupNanda,OracleACEDirector,OakTableNetwork成员,2013年OracleDBA年度大奖获得者和2012年EnterpriseArchitect(企业架构师)年度大奖获得者。他作为OracleDBA和开发人员已有22年。他是纽约一家区域性跨国公司的数据库总架构师,与其他人合作编写了6《SQL和PL/SQL深度编程 数据建模 高级编程 高级分析 安全与管理》,写作并发表了五百多篇文章,参与了三百多场活动,并且在二十多个国家主讲了技术研讨会。他是SELECTJournal的编辑之一,该期刊是InternationalOracleUserGroup的官方出版物。他还是ExadataSIG董事会的成员。

Twitter:@ArupNanda

Blog:arup.blogspot.com

Email:arup@proligence.com

BrendanTierney,OracleACEDirector,独立的Oracle技术顾问(Oralytics),都柏林技术学会/都柏林科技大学(DubinInstituteofTechnology/DublinTechnologicalUniversity)的数据科学、数据库及大数据课程讲师。他有24年的数据挖掘、数据科学、大数据和数据仓库领域的丰富工作经验。Brendan被公认是数据科学和大数据专家,曾在爱尔兰、英国、比利时、荷兰、挪威、西班牙、加拿大和美国的许多项目中工作过。Brendan活跃于Oracle用户组(OracleVeserGroup,OUG)社区,是爱尔兰OUG的领导者之一。Brendan是UKOUGOracleScene杂志的编辑,定期在全球技术大会上演讲,他还是一位活跃的博客作者,也为OTN、OracleScene、IOUGSELECTJournal、ODTUGTechnicalJournal和ToadWorld撰稿。他是爱尔兰DAMA组织董事会的成员。Brendan已经在OraclePress出版了另外两本技术书籍(PredictiveAnalyticsUsingOracleDataMiner和OracleREnterprise:HarnessingthePowerofRinOracleDatabase)。

Twitter:@brendantierney

WebandBlog:www.oralytics.com

Email:brendan.tierney@oralytics.com

HeliHelskyaho,OracleACEDirector,MiracleFinlandOy的CEO和EOUC(EMEAOracleUsersGroupCommunity)的大使。Heli拥有赫尔辛基大学计算机科学硕士学位,主攻数据库领域。目前,她继续在大数据、方案发现和半结构化数据领域攻读博士学位。她1990年进入IT行业,1993年开始从事与Oracle产品相关的工作。她曾经工作于许多岗位,每个岗位的工作都涉及数据库设计。Heli相信好的数据库设计和好的文档编写工作能大大减少性能方面出现的问题,并且即便有问题,解决它们也变得简单。Heli作为OracleACEDirector,在许多会议上频繁演讲。她是OracleSQLDeveloperDataModelerforDatabaseDesignMastery(OraclePress,2015)一书的作者,同时是首批Oracle数据库开发者遴选大奖(OracleDatabaseDesignMastery,Devvy)的获得者之一,她的名字因此列入2015年数据库设计(DatabaseDesign)名录。

Twitter:@helifromfinland

Blog:helifromfinland.wordpress.com

Email:heli@miracleoy.fi

MartinWidlake,OracleACEDirector,OakTableNetwork成员,从1992年起从事与Oracle技术相关的工作。作为Forms3和CASE的开发人员,他已经有二十几年使用PL/SQL编程的经验了。近二十年,Martin作为开发DBA,大部分时间都在VLDB环境里工作,用的都是新版本。2003年他被Oracle指定为OracleBeta测试员。最近8年,他在ORA600有限公司担任独立技术顾问,主要精耕数据库设计、性能调优和PL/SQL开发领域。从2002年开始,Martin定期在其家乡英国和世界各地的各个用户组和技术大会上做技术演讲,也为杂志写技术文章。他是用户组活动的坚定倡导者,是UKOUG的活跃成员,还是SIG(SpecialInterestGroups)的主席,并协助主持近两年的年度技术大会。他也是OracleScene杂志的代理编辑。Martin维护着一个技术博客,其中不仅包含技术内容,还包含广受欢迎的轻松愉快的“星期五哲学”文章,内容涉及IT管理和对工作生活的奇思妙想。

Twitter:@MDWidlake

Blog:mwidlake.wordpress.com

Email:mwidlake@ora600.org.uk

AlexNuijten,OracleACEDirector,allAPEX的独立技术顾问,主要使用PL/SQLOracleApplicationExpress(APEX)进行Oracle数据库的开发。在顾问工作之余,他还从事在APEX、SQL和PL/SQL等领域的教学工作。Alex曾在数不清的国际大会上进行过技术演讲,如ODTUG、OracleOpenWorld、UKOUG、IOUG、OUGF、BGOUG、OGHAPEXWorld和OBUG。精彩的演讲使Alex多次获得更佳演讲者大奖。他在与Oracle技术相关的杂志上发表过许多文章。在他自己的博客NotesonOracle(nuijten.blogspot.com)上定期发表OracleApplicationExpress和Oracle数据库开发方面的文章。Alex是OracleAPEXBestPractices一书(由PacktPublishers出版社出版)的合著者之一。

Twitter:@alexnuijten

Blog:nuijten.blogspot.nl

Email:alex@allapex.nl

目录

第Ⅰ部分SQL、PL/SQL和良好数据模型的重要性

第1章SQL和PL/SQL3

1.1SQL和PL/SQL介绍3

1.2SQL4

1.3PL/SQL7

1.4本章小结9

第2章专家级的数据建模和实施业务逻辑11

2.1实施业务逻辑11

2.1.1数据库对象中的业务逻辑12

2.1.2代码中的业务逻辑12

2.2数据库设计和数据建模13

2.2.1设计过程13

2.2.2OracleSQLDeveloperDataModeler介绍17

2.3本章小结22

第Ⅱ部分未充分利用的SQL高级功能

第3章处理高级且复杂的数据集25

3.1设计数据库的一些工具26

3.1.1表26

3.1.2表簇31

3.1.3视图和物化视图32

3.1.4数据类型简介35

3.1.5不可见列44

3.1.6虚拟列46

3.1.7属性聚类47

3.1.8分区49

3.1.9约束51

3.2SQL和PL/SQL实现需求的工具51

3.2.1游标52

3.2.2记录54

3.2.3集合56

3.2.4并行查询67

3.2.5表函数和管道化表函数68

3.3本章小结69

第4章正则表达式71

4.1基本搜索和escape方法72

4.2regexp函数74

4.3字符类79

4.3.1贪心性和否定表达式80

4.3.2向后引用81

4.3.3检查约束82

4.4真实案例82

4.4.1打破限定字符串83

4.4.2以字符串数字部分排序85

4.5模式匹配:MATCH_RECOGNIZE88

4.6本章小结92

第5章基于版本的重定义93

5.1计划停机93

5.2术语94

5.3概念94

5.4准备:版本生效96

5.4.1非版本和版本之间的限制96

5.4.2创建新版本98

5.5复杂级别99

5.5.1替换PL/SQL代码99

5.5.2改变表结构102

5.5.3版本之间的数据同步106

5.5.4丢失更新114

5.6旧版本下线115

5.6.1删除还是不删除116

5.6.2改变默认版本117

5.7SQLDeveloper和基于版本的重定义118

5.8EBR和DBMS_REDACT120

5.9本章小结122

第Ⅲ部分重要的日常使用的高级PL/SQL

第6章从SQL中运行PL/SQL125

6.1SQL和PL/SQL函数126

6.1.1STANDARD包和

DBMS_STANDARD包127

6.1.2使用PL/SQL简化嵌套的SQL函数130

6.2PL/SQL函数的注意事项135

6.2.1参数、“纯度”等级和确定性135

6.2.2上下文切换的开销140

6.2.3“时间点视图”的遗失156

6.2.4PL/SQL结果高速缓存158

6.2.5DISP_NAME函数的正确实现167

6.3本章小结168

第7章PL/SQL的性能测量和剖析169

7.1SQL和RDBMS的性能测量171

7.2性能测量带来的系统开销171

7.3性能测量由开发人员执行,有时

只有DBA能执行172

7.4调试过程中的性能测量172

7.5性能测量、剖析和调试的区别172

7.5.1性能测量173

7.5.2剖析173

7.5.3调试174

7.6PL/SQL的性能测量174

7.6.1DBMS_OUTPUT包174

7.6.2日志表185

7.6.3SQL*Plus的命令SETAPPINFO和

SYS_CONTEXT201

7.6.4性能测量选项概览202

7.6.5性能测量包202

7.7剖析203

7.7.1用DBMS_OUTPUT剖析生产环境代码的缺陷203

7.7.2使用PLSQL_LOG表204

7.7.3性能测量强大威力的真实案例207

7.7.4剖析和调试包207

7.7.5剖析选项概览236

7.8本章小结236

第8章动态SQL239

8.1使用本地动态SQL240

8.2使用DBMS_SQL包243

8.2.1将结果集返回给客户端243

8.2.2从PL/SQL调用一个隐式结果集245

8.2.3dbms_sql.to_refcursor函数246

8.2.4dbms_sql.to_cursor_number函数248

8.3本章小结250

第9章PL/SQL用于自动化和管理251

9.1PL/SQL和DBA252

9.2简单的特定任务PL/SQL脚本252

9.2.1用PL/SQL探究LONG字段类型252

9.2.2复杂SQL或简单PL/SQL:通过相同的执行计划识别SQL254

9.2.3收集和保存会话状态的轻量级工具256

9.2.4处理快速变陈旧的数据库统计信息258

9.2.5一个灵活的PL/SQL编写的紧急备份脚本258

9.3用PL/SQL控制管理类和批处理类任务260

9.3.1主-明细控制表的核心261

9.3.2日志表和错误表269

9.3.3进程特定表286

9.4对数据库开发人员和管理人员有帮助的PL/SQL包286

9.4.1《SQL和PL/SQL深度编程 数据建模 高级编程 高级分析 安全与管理》涉及的其他内置PL/SQL包287

9.4.2DBMS_WORKLOAD_REPOSITORY包287

9.4.3DBMS_METADATA包293

9.4.4UTL_FILE包301

9.4.5DBMS_UTILITY包302

9.5本章小结311

第Ⅳ部分高级分析

第10章使用OracleDataMining工具进行库内数据挖掘315

10.1Oracle高级分析选项概览316

10.2OracleDataMinerGUI工具317

10.2.1安装OracleDataMiner和演示数据集318

10.2.2创建OracleDataMiner工作流319

10.3使用SQL和PL/SQL进行Oracle数据挖掘319

10.3.1Oracle数据挖掘PL/SQLAPI320

10.3.2Oracle数据挖掘SQL函数322

10.4使用Oracle数据挖掘进行归类322

10.4.1数据准备322

10.4.2建立归类模型332

10.4.3评估归类模型337

10.4.4将归类模型应用到新数据341

10.5Oracle数据挖掘:其他技术345

10.6本章小结345

第11章OracleREnterprise347

11.1ORE透明层348

11.2安装OracleREnterprise348

11.2.1安装条件349

11.2.2服务器安装349

11.2.3客户端安装351

11.2.4使用Oracle示例环境353

11.3连接Oracle数据库354

11.4使用ORE浏览数据357

11.5利用ORE构建数据挖掘模型361

11.5.1关联规则分析362

11.5.2构建决策树模型并对新数据评分364

11.5.3构建神经网络模型并对新数据评分365

11.6嵌入式R执行366

11.6.1使用rqEval调用函数并返回一个数据集366

11.6.2使用rqTableEval将数据挖掘模型应用于数据368

11.6.3在仪表板中创建和使用ORE图形371

11.7本章小结372

第12章OracleDatabase12c中的预测查询373

12.1什么是预测查询和为什么需要它374

12.1.1Oracle分析函数374

12.1.2分区子句的奥秘375

12.2创建预测查询376

12.2.1在SQLDeveloper中创建预测查询376

12.2.2在OracleDataMiner中创建预测查询377

12.3使用SQL创建预测查询380

12.3.1使用预测查询进行分类380

12.3.2使用预测查询进行回归381

12.3.3使用预测查询进行异常探测383

12.3.4使用预测查询进行聚类385

12.4用预测查询进行工作387

12.5本章小结387

第Ⅴ部分数据库安全

第13章数据编写和掩蔽391

13.1进行数据编写的原因392

13.2进行数据编写时仅用PL/SQL的解决方案393

13.2.1随机化394

13.2.2为数据编写而准备的视图397

13.2.3清理400

13.3数据编写和掩蔽包400

13.3.1固定值402

13.3.2其他类型的数据编写403

13.3.3使用SQLDeveloper访问410

前言/序言

BrendanTierney和HeliHelskyaho在2015年3月找到我,让我和ArupNanda和AlexNuijten编写《SQL和PL/SQL深度编程数据建模高级编程高级分析安全与管理》。不久之后,我们也把MartinWidlake拉入伙。如果说被他们邀请对我来说是极大的荣耀,那仍是过于轻描淡写。很快,我意识到我没有足够的精力投入此项目,但我也不想让其他作者因为我陷入出版风险之中。但我仍然非常愿意为此书出一分力,遂自荐要成为此书的技术编辑。他们欣然接受了我的这个新角色。
这是我第一次正式成为技术编辑。但是我曾经做过多年类似的工作:检查自己的工作,检查他人的工作。我体会到追求完美去做这项工作会帮助良多。
《SQL和PL/SQL深度编程数据建模高级编程高级分析安全与管理》所有的测试工作都是在OTN/Oracle提供的预建DatabaseAppDevelopmentVM上进行的。这使测试变得非常容易。根据相应文档配置测试环境也很容易。
在审核此书的过程中,我本人面临的最大挑战之一是Oracle12c的多租户体系结构。我已经多年没有从事DBA类型的工作了,因此要弄清楚哪些事应该在根容器(CDB)上做、哪些应该在插件容器(PDB)上做真是新鲜有趣。此外,作者们给出的其他提示都很容易搞懂。
设计(数据建模、基于版本的重定义、VPD)、安全性(数据编写/掩蔽、加密/哈希)、编码(正则表达式,PL/SQL、SQL)、性能测量和剖析或把原始数据转换成可执行信息(数据挖掘,OracleR,预测查询)——以上所有内容都会在《SQL和PL/SQL深度编程数据建模高级编程高级分析安全与管理》中详细介绍。这些就是一名开发人员从头设计一个完整应用所需要做的全部。
在此次技术编辑工作中我最喜欢的部分可能是:不仅要检查书中的内容是否可运行,而且必须做更多的工作。通常,当我阅读一《SQL和PL/SQL深度编程数据建模高级编程高级分析安全与管理》或博文时,会快速抓住技术要点,而略过why、when和where的部分。我很容易会这样做。多年来,我每天都会读AskTom上的文章,这是使我避免陷入困局而采取的短时充电办法。首先在这些文章中能看到特定问题是如何解决的,这些解决方案偶尔也可以应用到我自己的问题中。这样做了一两年后,我便会进一步想到应该去搞清楚为什么要按照某种方式去处理特定问题,并且想要搞清楚那些Tom详尽解释的处理方式的后果。
审阅此书我受益颇丰。在这个过程中,我走进作者的思维世界:不仅能看到他们是如何解决技术难题的,而且能看到他们为什么以这种方式去处理。对开发人员和DBA来说,能看到这些都是极其有价值的。我们中的大部分人都能找到解决特定问题的方法,但是需要更上一层楼,我们需要理解why、when和where。这《SQL和PL/SQL深度编程数据建模高级编程高级分析安全与管理》提供的正是这些。

ChetJustice
OracleACEDirector
技术编辑



其他推荐