新書推薦:
《
阿勒泰的春天
》
售價:NT$
230.0
《
如见你
》
售價:NT$
234.0
《
人格阴影 全新修订版,更正旧版多处问题。国际分析心理学协会(IAAP)主席力作
》
售價:NT$
305.0
《
560种野菜野果鉴别与食用手册
》
售價:NT$
305.0
《
中国官僚政治研究(一部洞悉中国政治制度演变的经典之作)
》
售價:NT$
286.0
《
锂电储能产品设计及案例详解
》
售價:NT$
505.0
《
首辅养成手册(全三册)(张晚意、任敏主演古装剧《锦绣安宁》原著小说)
》
售價:NT$
551.0
《
清洁
》
售價:NT$
296.0
|
編輯推薦: |
《SQL和PLSQL深度编程 数据建模 高级编程 高级分析 安全与管理》展示了如何全面探索那些人们知之不多,却又极其有用的SQL和PLSQL特性,并且展示了如何有效地同时使用这两种语言。《SQL和PLSQL深度编程 数据建模 高级编程 高级分析 安全与管理》由Oracle ACE总监团队编写,具有以下特色:*实践、完备的示例以及业内专家提供的建议,这些建议清楚地说明了如何编写代码、排除故障以及为各种实际应用实施代码。《SQL和PLSQL深度编程 数据建模 高级编程 高级分析 安全与管理》阐释了那些未被充分利用的SQL和PLSQL的功能,并列出基本开发策略,全面涵盖了数据建模、高级分析、数据库安全性、安全编码和管理等方面内容。
|
內容簡介: |
● 应用高级SQL和PLSQL工具和技术 ● 理解SQL和PLSQL的功能,并能够决定何时使用哪种语言 ● 开发精确的数据模型,并实施业务逻辑 ● 在SQL中运行PLSQL,并集成复杂的数据集 ● 处理PLSQL的性能测量和剖析 ● 使用Oracle Advanced Analytics和Oracle R Enterprise ● 使用Oracle Data Mining和预测查询,来创建和执行预测模型 ● 使用加密、哈希、数据编写和掩蔽,使数据更安全 ● 防御SQL注入和其他基于代码的攻击 ● 工作于Oracle虚拟专用数据库之上
|
關於作者: |
Arup Nanda,Oracle ACE Director,Oak Table Network成员,2013年Oracle DBA年度大奖获得者和2012年Enterprise Architect企业架构师年度大奖获得者。他作为Oracle DBA和开发人员已有22年。他是纽约一家区域性跨国公司的数据库总架构师,与其他人合作编写了6本书,写作并发表了五百多篇文章,参与了三百多场活动,并且在二十多个国家主讲了技术研讨会。他是SELECT Journal的编辑之一,该期刊是International Oracle User Group的官方出版物。他还是Exadata SIG董事会的成员。
Twitter: @ArupNanda
Blog: arup.blogspot.com
Email: arup@proligence.com
Arup Nanda,Oracle ACE Director,Oak Table Network成员,2013年Oracle DBA年度大奖获得者和2012年Enterprise Architect企业架构师年度大奖获得者。他作为Oracle DBA和开发人员已有22年。他是纽约一家区域性跨国公司的数据库总架构师,与其他人合作编写了6本书,写作并发表了五百多篇文章,参与了三百多场活动,并且在二十多个国家主讲了技术研讨会。他是SELECT Journal的编辑之一,该期刊是International Oracle User Group的官方出版物。他还是Exadata SIG董事会的成员。
Twitter: @ArupNanda
Blog: arup.blogspot.com
Email: arup@proligence.com
Brendan Tierney,Oracle ACE Director,独立的Oracle技术顾问Oralytics,都柏林技术学会都柏林科技大学Dubin Institute of TechnologyDublin Technological University的数据科学、数据库及大数据课程讲师。他有24年的数据挖掘、数据科学、大数据和数据仓库领域的丰富工作经验。Brendan被公认是数据科学和大数据专家,曾在爱尔兰、英国、比利时、荷兰、挪威、西班牙、加拿大和美国的许多项目中工作过。Brendan活跃于Oracle用户组Oracle Veser Group,OUG社区,是爱尔兰OUG的领导者之一。Brendan是UKOUG Oracle Scene杂志的编辑,定期在全球技术大会上演讲,他还是一位活跃的博客作者,也为OTN、Oracle Scene、IOUG SELECT Journal、ODTUG Technical Journal和ToadWorld撰稿。他是爱尔兰DAMA组织董事会的成员。Brendan已经在Oracle Press出版了另外两本技术书籍Predictive Analytics Using Oracle Data Miner和Oracle R Enterprise: Harnessing the Power of R in Oracle Database。
Twitter: @brendantierney
Web and Blog: www.oralytics.com
Email: brendan.tierney@oralytics.com
Heli Helskyaho,Oracle ACE Director,Miracle Finland Oy的CEO和EOUC EMEA Oracle Users Group Community的大使。Heli拥有赫尔辛基大学计算机科学硕士学位,主攻数据库领域。目前,她继续在大数据、方案发现和半结构化数据领域攻读博士学位。她1990年进入IT行业,1993年开始从事与Oracle产品相关的工作。她曾经工作于许多岗位,每个岗位的工作都涉及数据库设计。Heli相信好的数据库设计和好的文档编写工作能大大减少性能方面出现的问题,并且即便有问题,解决它们也变得简单。Heli作为Oracle ACE Director,在许多会议上频繁演讲。她是Oracle SQL Developer Data Modeler for Database Design MasteryOracle Press,2015一书的作者,同时是首批Oracle数据库开发者遴选大奖Oracle Database Design Mastery,Devvy的获得者之一,她的名字因此列入2015年数据库设计Database Design名录。
Twitter: @helifromfinland
Blog: helifromfinland.wordpress.com
Email: heli@miracleoy.fi
Martin Widlake,Oracle ACE Director,Oak Table Network成员,从1992年起从事与Oracle技术相关的工作。作为Forms 3和CASE的开发人员,他已经有二十几年使用PLSQL编程的经验了。近二十年,Martin作为开发DBA,大部分时间都在VLDB环境里工作,用的都是最新版本。2003年他被Oracle指定为Oracle Beta测试员。最近8年,他在ORA600有限公司担任独立技术顾问,主要精耕数据库设计、性能调优和PLSQL开发领域。从2002年开始,Martin定期在其家乡英国和世界各地的各个用户组和技术大会上做技术演讲,也为杂志写技术文章。他是用户组活动的坚定倡导者,是UKOUG的活跃成员,还是SIGSpecial Interest Groups的主席,并协助主持近两年的年度技术大会。他也是Oracle Scene杂志的代理编辑。Martin维护着一个技术博客,其中不仅包含技术内容,还包含广受欢迎的轻松愉快的星期五哲学文章,内容涉及IT管理和对工作生活的奇思妙想。
Twitter: @MDWidlake
Blog: mwidlake.wordpress.com
Email: mwidlake@ora600.org.uk
Alex Nuijten,Oracle ACE Director,allAPEX的独立技术顾问,主要使用PLSQL Oracle Application Express APEX进行Oracle数据库的开发。在顾问工作之余,他还从事在APEX、SQL和PLSQL等领域的教学工作。Alex曾在数不清的国际大会上进行过技术演讲,如ODTUG、Oracle Open World、UKOUG、IOUG、OUGF、BGOUG、OGH APEX World和OBUG。精彩的演讲使Alex多次获得最佳演讲者大奖。他在与Oracle技术相关的杂志上发表过许多文章。在他自己的博客Notes on Oraclenuijten.blogspot.com上定期发表Oracle Application Express和Oracle 数据库开发方面的文章。Alex是Oracle APEX Best Practices一书由Packt Publishers出版社出版的合著者之一。
Twitter: @alexnuijten
Blog: nuijten.blogspot.nl
Email: alex@allapex.nl
|
目錄:
|
第Ⅰ部分 SQL、PLSQL和良好数据模型的重要性
第1章 SQL和PLSQL 3
1.1 SQL和PLSQL介绍 3
1.2 SQL 4
1.3 PLSQL 7
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.2 Oracle SQL Developer Data Modeler介绍 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.2 SQL和PLSQL实现需求的工具 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.2 regexp函数 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_RECOGNIZE 88
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 替换PLSQL代码 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.7 SQL Developer和基于版本的重定义 118
5.8 EBR和DBMS_REDACT 120
5.9 本章小结 122
第Ⅲ部分 重要的日常使用的高级PLSQL
第6章 从SQL中运行PLSQL 125
6.1 SQL和PLSQL函数 126
6.1.1 STANDARD包和
DBMS_STANDARD包 127
6.1.2 使用PLSQL简化嵌套的SQL函数 130
6.2 PLSQL函数的注意事项 135
6.2.1 参数、纯度等级和确定性 135
6.2.2 上下文切换的开销 140
6.2.3 时间点视图的遗失 156
6.2.4 PLSQL结果高速缓存 158
6.2.5 DISP_NAME函数的正确实现 167
6.3 本章小结 168
第7章 PLSQL的性能测量和剖析 169
7.1 SQL和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.6 PLSQL的性能测量 174
7.6.1 DBMS_OUTPUT包 174
7.6.2 日志表 185
7.6.3 SQL*Plus的命令SET APPINFO和
SYS_CONTEXT 201
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章 动态SQL 239
8.1 使用本地动态SQL 240
8.2 使用DBMS_SQL包 243
8.2.1 将结果集返回给客户端 243
8.2.2 从PLSQL调用一个隐式结果集 245
8.2.3 dbms_sql.to_refcursor函数 246
8.2.4 dbms_sql.to_cursor_number函数 248
8.3 本章小结 250
第9章 PLSQL用于自动化和管理 251
9.1 PLSQL和DBA 252
9.2 简单的特定任务PLSQL脚本 252
9.2.1 用PLSQL 探究LONG字段类型 252
9.2.2 复杂SQL或简单PLSQL:通过相同的执行计划识别SQL 254
9.2.3 收集和保存会话状态的轻量级工具 256
9.2.4 处理快速变陈旧的数据库统计信息 258
9.2.5 一个灵活的PLSQL编写的紧急备份脚本 258
9.3 用PLSQL控制管理类和批处理类任务 260
9.3.1 主-明细控制表的核心 261
9.3.2 日志表和错误表 269
9.3.3 进程特定表 286
9.4 对数据库开发人员和管理人员有帮助的PLSQL包 286
9.4.1 本书涉及的其他内置PLSQL包 287
9.4.2 DBMS_WORKLOAD_REPOSITORY包 287
9.4.3 DBMS_METADATA包 293
9.4.4 UTL_FILE包 301
9.4.5 DBMS_UTILITY包 302
9.5 本章小结 311
第Ⅳ部分 高级分析
第10章 使用Oracle Data Mining工具进行库内数据挖掘 315
10.1 Oracle高级分析选项概览 316
10.2 Oracle Data Miner GUI工具 317
10.2.1 安装Oracle Data Miner和演示数据集 318
10.2.2 创建Oracle Data Miner工作流 319
10.3 使用SQL和PLSQL进行Oracle数据挖掘 319
10.3.1 Oracle数据挖掘PLSQL API 320
10.3.2 Oracle数据挖掘SQL函数 322
10.4 使用Oracle数据挖掘进行归类 322
10.4.1 数据准备 322
10.4.2 建立归类模型 332
10.4.3 评估归类模型 337
10.4.4 将归类模型应用到新数据 341
10.5 Oracle数据挖掘:其他技术 345
10.6 本章小结 345
第11章 Oracle R Enterprise 347
11.1 ORE透明层 348
11.2 安装Oracle R Enterprise 348
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章 Oracle Database 12c中的预测查询 373
12.1 什么是预测查询和为什么需要它 374
12.1.1 Oracle分析函数 374
12.1.2 分区子句的奥秘 375
12.2 创建预测查询 376
12.2.1 在SQL Developer中创建预测查询 376
12.2.2 在Oracle Data Miner中创建预测查询 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 进行数据编写时仅用PLSQL的解决方案 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 使用SQL Developer访问 410
13.3.4 策略管理 412
13.3.5 清理 413
13.4 本章小结 413
第14章 加密和哈希 415
14.1 加密的定义 416
14.2 加密介绍 416
14.2.1 加密组件 417
14.2.2 密钥长度的效力 417
14.2.3 对称加密和不对称加密 418
14.2.4 加密算法 419
14.2.5 填充和链接 420
14.2.6 加密包 420
14.2.7 解密数据 426
14.2.8 初始化向量或盐值 428
14.2.9 密钥管理 430
14.2.10 从防范DBA的角度保护数据 434
14.2.11 加密RAW数据 435
14.3 一套完整的加密解决方案 435
14.3.1 选项1:修改表 436
14.3.2 选项2:加密列本身并用视图显示解密数据 436
14.3.3 密钥和表分开存储 436
14.3.4 密钥存储 437
14.4 透明数据加密TDE 437
14.4.1 设置TDE 438
14.4.2 向已存在的表中添加TDE 439
14.4.3 表空间TDE 439
14.4.4 进行TDE密钥和密码管理 440
14.4.5 添加盐值 441
14.5 密码学哈希 441
14.5.1 可疑的三明治案例 441
14.5.2 使用PLSQL进行哈希操作 442
14.5.3 哈希的其他用途 445
14.6 消息验证代码 445
14.7 综合训练:一个项目 447
14.7.1 选项1 447
14.7.2 选项2 448
14.8 快捷参考 454
14.8.1 GETRANDOMBYTES 454
14.8.2 ENCRYPT 454
14.8.3 DECRYPT 455
14.8.4 HASH 455
14.8.5 MAC 456
14.9 本章小结 457
第15章 SQL注入和代码安全性 459
15.1 执行模型 460
15.2 程序安全性 466
15.2.1 传统做法 467
15.2.2 基于角色的程序安全性 469
15.3 代码白名单 470
15.4 限制继承权限 473
15.5 PLSQL注入攻击 476
15.5.1 输入字符串的清洁 479
15.5.2 减少SQL注入的可能性 490
15.6 本章小结 491
第16章 细粒度访问控制和应用上下文 493
16.1 细粒度访问控制介绍 493
16.2 虚拟专用数据库VPD 496
16.3 需要了解VPD的原因 497
16.4 一个简单的示例 498
16.5 中级VPD 501
16.5.1 执行更新检查 501
16.5.2 静态策略与动态策略 502
16.6 提升性能 512
16.6.1 控制表访问的类型 514
16.6.2 列敏感VPD 518
16.7 其他动态类型 521
16.7.1 共享静态策略 521
16.7.2 上下文敏感策略 522
16.7.3 共享上下文敏感策略 523
16.8 排除故障 523
16.8.1 ORA-28110:策略函数或包存在错误 523
16.8.2 ORA-28112:无法执行策略函数 524
16.8.3 ORA-28113:策略谓词存在错误 524
16.8.4 直接路径操作 524
16.8.5 检查查询重写 525
16.9 与其他Oracle功能交互 526
16.9.1 引用完整性约束 526
16.9.2 复制 527
16.9.3 物化视图 527
16.10 应用上下文 527
16.10.1 一个简单的示例 528
16.10.2 应用上下文中的安全性 529
16.10.3 VPD中作为谓词的上下文 530
16.10.4 识别非数据库用户 533
16.11 清理 535
16.12 快捷参考 535
16.12.1 DBMS_RLS包 536
16.12.2 数据字典视图 537
16.13 本章小结 538
|
內容試閱:
|
Brendan Tierney和Heli Helskyaho在2015年3月找到我,让我和Arup Nanda和Alex Nuijten编写《SQL和PLSQL深度编程 数据建模 高级编程 高级分析 安全与管理》。不久之后,我们也把Martin Widlake拉入伙。如果说被他们邀请对我来说是极大的荣耀,那仍是过于轻描淡写。很快,我意识到我没有足够的精力投入此项目,但我也不想让其他作者因为我陷入出版风险之中。但我仍然非常愿意为此书出一分力,遂自荐要成为此书的技术编辑。他们欣然接受了我的这个新角色。
这是我第一次正式成为技术编辑。但是我曾经做过多年类似的工作:检查自己的工作,检查他人的工作。我体会到追求完美去做这项工作会帮助良多。
《SQL和PLSQL深度编程 数据建模 高级编程 高级分析 安全与管理》所有的测试工作都是在OTNOracle提供的预建Database App Development VM上进行的。这使测试变得非常容易。根据相应文档配置测试环境也很容易。
在审核此书的过程中,我本人面临的最大挑战之一是Oracle 12c的多租户体系结构。我已经多年没有从事DBA类型的工作了,因此要弄清楚哪些事应该在根容器CDB上做、哪些应该在插件容器PDB上做真是新鲜有趣。此外,作者们给出的其他提示都很容易搞懂。
设计数据建模、基于版本的重定义、VPD、安全性数据编写掩蔽、加密哈希、编码正则表达式,PLSQL、SQL、性能测量和剖析或把原始数据转换成可执行信息数据挖掘,Oracle R,预测查询以上所有内容都会在《SQL和PLSQL深度编程 数据建模 高级编程 高级分析 安全与管理》中详细介绍。这些就是一名开发人员从头设计一个完整应用所需要做的全部。
在此次技术编辑工作中我最喜欢的部分可能是:不仅要检查书中的内容是否可运行,而且必须做更多的工作。通常,当我阅读一《SQL和PLSQL深度编程 数据建模 高级编程 高级分析 安全与管理》或博文时,会快速抓住技术要点,而略过why、when和where的部分。我很容易会这样做。多年来,我每天都会读AskTom上的文章,这是使我避免陷入困局而采取的短时充电办法。首先在这些文章中能看到特定问题是如何解决的,这些解决方案偶尔也可以应用到我自己的问题中。这样做了一两年后,我便会进一步想到应该去搞清楚为什么要按照某种方式去处理特定问题,并且想要搞清楚那些Tom详尽解释的处理方式的后果。
审阅此书我受益颇丰。在这个过程中,我走进作者的思维世界:不仅能看到他们是如何解决技术难题的,而且能看到他们为什么以这种方式去处理。对开发人员和DBA来说,能看到这些都是极其有价值的。我们中的大部分人都能找到解决特定问题的方法,但是需要更上一层楼,我们需要理解why、when和where。这《SQL和PLSQL深度编程 数据建模 高级编程 高级分析 安全与管理》提供的正是这些。
Chet Justice
Oracle ACE Director
技术编辑
|
|