《SQL和PL/SQL深度编程 数据建模 高级编程 高级分析 安全与管理》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)阿勒普·纳达(Arup Nanda),(爱尔兰)布伦丹·蒂尔尼(Brendan Tierney),(芬)海利·希尔塔赫(Heli Helskyaho)著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2019
  • ISBN:9787302519263
  • 页数:538 页
图书介绍:本书的作者都是Oracle ACE总监,本书全面介绍了利用最佳实践、详细实例、提示技巧来有效地综合使用SQL和PL/SQL,演示如何在实际应用程序中编写应用、故障修复和实现代码。本书全面剖析了未得到充分利用的SQL和PL/SQL功能,布局关键的开发策略。全面阐述了数据模型、高级分析、数据库安全、安全编码的内容。

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

第1章SQL和PL/SQL 3

1.1 SQL和PL/SQL介绍 3

1.2 SQL 4

1.3 PL/SQL 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高级功能 25

第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和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.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替换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.7 SQL Developer和基于版本的重定义 118

5.8 EBR和DBMS REDACT 120

5.9本章小结 122

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

第6章从SQL中运行PL/SQL 125

6.1 SQL和PL/SQL函数 126

6.1.1 STANDARD包和DBMS STANDARD包 127

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

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

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

6.2.2上下文切换的开销 140

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

6.2.4 PL/SQL结果高速缓存 158

6.2.5 DISP NAME函数的正确实现 167

6.3本章小结 168

第7章 PL/SQL的性能测量和剖析 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 PL/SQL的性能测量 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从PL/SQL调用一个隐式结果集 245

8.2.3 dbms_sql.to_refcursor函数 246

8.2.4 dbms-sql.to-cursor_number函数 248

8.3本章小结 250

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

9.1 PL/SQL和DBA 252

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

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

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

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本书涉及的其他内置PL/SQL包 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

第Ⅳ部分 高级分析 315

第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和PL/SQL进行Oracle数据挖掘 319

10.3.1 Oracle数据挖掘PL/SQL 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 REnterprise 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

第Ⅴ部分 数据库安全 391

第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使用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使用PL/SQL进行哈希操作 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 PL/SQL注入攻击 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