SQL和PL/SQL深度編程 數據建模 高級編程 高級分析 安全與管理 ( 簡體 字) |
作者:[美] 阿勒普 · 納達(Arup Nanda)[愛] 布倫丹 · 蒂爾尼(Brendan Tierney)[芬] 海利 · 希爾塔赫(Heli Helskyaho) 唐 | 類別:1. -> 資料庫 -> SQL語言 |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 50865 詢問書籍請說出此書號!【缺書】 NT售價: 640 元 |
出版日:3/1/2019 |
頁數:535 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302519263 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:Brendan Tierney和Heli Helskyaho在2015年3月找到我,讓我和Arup Nanda和Alex Nuijten編寫《SQL和PL/SQL深度編程 數據建模 高級編程 高級分析 安全與管理》。不久之后,我們也把Martin Widlake拉入伙。如果說被他們邀請對我來說是極大的榮耀,那仍是過于輕描淡寫。很快,我意識到我沒有足夠的精力投入此項目,但我也不想讓其他作者因為我陷入出版風險之中。但我仍然非常愿意為此書出一分力,遂自薦要成為此書的技術編輯。他們欣然接受了我的這個新角色。 這是我第一次正式成為技術編輯。但是我曾經做過多年類似的工作:檢查自己的工作,檢查他人的工作。我體會到追求完美去做這項工作會幫助良多。 《SQL和PL/SQL深度編程 數據建模 高級編程 高級分析 安全與管理》所有的測試工作都是在OTN/Oracle提供的預建Database App Development VM上進行的。這使測試變得非常容易。根據相應文檔配置測試環境也很容易。 在審核此書的過程中,我本人面臨的最大挑戰之一是Oracle 12c的多租戶體系結構。我已經多年沒有從事DBA類型的工作了,因此要弄清楚哪些事應該在根容器(CDB)上做、哪些應該在插件容器(PDB)上做真是新鮮有趣。此外,作者們給出的其他提示都很容易搞懂。 設計(數據建模、基于版本的重定義、VPD)、安全性(數據編寫/掩蔽、加密/哈希)、編碼(正則表達式,PL/SQL、SQL)、性能測量和剖析或把原始數據轉換成可執行信息(數據挖掘,Oracle R,預測查詢)——以上所有內容都會在《SQL和PL/SQL深度編程 數據建模 高級編程 高級分析 安全與管理》中詳細介紹。這些就是一名開發人員從頭設計一個完整應用所需要做的全部。 在此次技術編輯工作中我最喜歡的部分可能是:不僅要檢查書中的內容是否可運行,而且必須做更多的工作。通常,當我閱讀一《SQL和PL/SQL深度編程 數據建模 高級編程 高級分析 安全與管理》或博文時,會快速抓住技術要點,而略過why、when和where的部分。我很容易會這樣做。多年來,我每天都會讀AskTom上的文章,這是使我避免陷入困局而采取的短時充電辦法。首先在這些文章中能看到特定問題是如何解決的,這些解決方案偶爾也可以應用到我自己的問題中。這樣做了一兩年后,我便會進一步想到應該去搞清楚為什么要按照某種方式去處理特定問題,并且想要搞清楚那些Tom詳盡解釋的處理方式的后果。 審閱此書我受益頗豐。在這個過程中,我走進作者的思維世界:不僅能看到他們是如何解決技術難題的,而且能看到他們為什么以這種方式去處理。對開發人員和DBA來說,能看到這些都是極其有價值的。我們中的大部分人都能找到解決特定問題的方法,但是需要更上一層樓,我們需要理解why、when和where。這《SQL和PL/SQL深度編程 數據建模 高級編程 高級分析 安全與管理》提供的正是這些。
Chet Justice Oracle ACE Director 技術編輯 |
內容簡介:● 應用高級SQL和PL/SQL工具和技術 ● 理解SQL和PL/SQL的功能,并能夠決定何時使用哪種語言 ● 開發精確的數據模型,并實施業務邏輯 ● 在SQL中運行PL/SQL,并集成復雜的數據集 ● 處理PL/SQL的性能測量和剖析 ● 使用Oracle Advanced Analytics和Oracle R Enterprise ● 使用Oracle Data Mining和預測查詢,來創建和執行預測模型 ● 使用加密、哈希、數據編寫和掩蔽,使數據更安全 ● 防御SQL注入和其他基于代碼的攻擊 ● 工作于Oracle虛擬專用數據庫之上 |
目錄:第Ⅰ部分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本書涉及的其他內置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 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設置TDE438 14.4.2向已存在的表中添加TDE439 14.4.3表空間TDE439 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選項1447 14.7.2選項2448 14.8快捷參考454 14.8.1GETRANDOMBYTES454 14.8.2ENCRYPT454 14.8.3DECRYPT455 14.8.4HASH455 14.8.5MAC456 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.5PL/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中級VPD501 16.5.1執行更新檢查501 16.5.2靜態策略與動態策略502 16.6提升性能512 16.6.1控制表訪問的類型514 16.6.2列敏感VPD518 16.7其他動態類型521 16.7.1共享靜態策略521 16.7.2上下文敏感策略522 16.7.3共享上下文敏感策略523 16.8排除故障523 16.8.1ORA-28110:策略函數或包存在錯誤523 16.8.2ORA-28112:無法執行策略函數524 16.8.3ORA-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.3VPD中作為謂詞的上下文530 16.10.4識別非數據庫用戶533 16.11清理535 16.12快捷參考535 16.12.1DBMS_RLS包536 16.12.2數據字典視圖537 16.13本章小結538 |
序: |