資料庫系統原理 片段翻譯

来源:http://www.cnblogs.com/hhelibeb/archive/2017/01/28/6353951.html
-Advertisement-
Play Games

RT,為了提高自己在資料庫方面的知ci識hui儲備,我決定做一點翻譯,用作練習。 第一部分 導論 資料庫管理系統(DBMS)是相互關聯的數據的集合以及一套用於訪問那些數據的程式。數據集合,通常指的是資料庫,包含和企業相關的數據。DBMS的基本目標是提供既方便又高效的存儲和檢索資料庫信息的方式。 數據 ...


 

RT,為了提高自己在資料庫方面的知ci識hui儲備,我決定做一點翻譯,用作練習。

 

第一部分 導論

  資料庫管理系統(DBMS)是相互關聯的數據的集合以及一套用於訪問那些數據的程式。數據集合,通常指的是資料庫,包含和企業相關的數據。DBMS的基本目標是提供既方便又高效的存儲和檢索資料庫信息的方式。

  資料庫管理系統被設計用來管理大量的信息。數據的管理涉及到定義信息的存儲結構和提供操作數據的機制。此外,資料庫系統必須確保數據存儲的安全,即便是在系統崩潰或者嘗試未授權訪問的情況下。如果數據在幾個用戶間共用,系統必須避免可能的異常結果。

  因為在絕大多數機構中,信息是很重要的,電腦科學家發展出了大量用於管理數據的概念和技術。這些概念和技術組成了這本書的焦點。本章簡要地介紹了資料庫系統的原理。

  

第二部分 關係資料庫

  數據模型是用於描述數據、數據關係、數據語義和一致性約束的概念工具。在這部分,我們關註關係模型。我們將於第二章學習的關係模型,它使用表集合代表數據和數據之間的關係。概念上的簡單性使關係型資料庫得到了廣泛的採納應用;今天絕大多數資料庫產品都是基於關係模型的。關係模型在邏輯和視圖的層面描述資料庫,抽象於低層的數據存儲細節。將在第七章(第二部分)討論的實體-關係模型,是一個更高層次的關係模型,廣泛用於資料庫設計。

  為了讓關係型資料庫中的數據對用戶可用,我們不得不解決某些問題。最重要的問題是用戶如何指定檢索和更新數據的請求;人們發明瞭幾種查詢語言用以執行該任務。第二,也是最重要的一點,是數據的完整性和保護。資料庫需要保護數據免於受到用戶操作的傷害,無論是有意的操作還是無意的操作。

  第三、第四和第五章涵蓋了SQL語言的內容,SQL語言是當今最常用的查詢語言。第三章和第四章提供了介紹和初級和中級水平的SQL語言描述。第四章也包含了資料庫的強制完整性約束和許可權檢查機制,它們控制用戶會實施的訪問和更新行為。第五章包含更多高級主題,其中有在編程語言中訪問SQL和使用SQL進行數據分析等。

  第六章涵蓋了三種形式查詢語言,關係代數,元組關係演算和域關係演算,是建立在數學邏輯上的三種聲明式查詢語言。這些形式語言基於SQL。還有另外兩種用戶友好的語言,QBE和Datalog,會在附錄B(可以通過db-book.com線上訪問)中描述。

 

第三部分 數據存儲和查詢

  雖然資料庫系統提供數據的高層級視圖,數據最終還是必須在一個或多個設備上存儲為比特。當今的絕大多數資料庫將數據存儲於磁碟(以及越來越多的固態硬碟)上並且將數據抓取到記憶體中進行處理,或者把數據複製在磁帶和其它的備份設備上存檔。存儲設備的物理特性在數據存儲方式上起到了主要作用,特別是因為隨機訪問硬碟上的一塊數據會比在記憶體中進行同樣的操作慢太多:磁碟訪問花費數十毫秒,而記憶體訪問只需要數十微妙。

  第十章從物理存儲沒接的概覽將其,包含用於減少因為設備失敗造成數據丟失的機制。接下來這章描述記錄如何映射到文件中,這種映射是按順序映射到硬碟上的。

  很多查詢只參考了一個文件中的小部分記錄。索引是一種可以幫助快速定位需要的記錄的關係的結構,通過它就不需要檢查所有的記錄。這部教材中的索引例子不是像資料庫中的索引,而是用於人的使用。第十一章描述了集中資料庫中使用的索引類型。

  用戶查詢必須在資料庫內容上運行,資料庫的內容位於存儲設備上。通常,把查詢分割為更小的操作,即對應的關係代數操作。第十二章描述了查詢被處理的方式、實現單獨操作演算法,和有關這些操作如何同步執行以處理查詢的概述。

  處理查詢的時候,有不少方式可以選用,它們的成本相當不同。查詢優化的用處是在評估一個給定的查詢時找出最小成本。第13章描述了查詢優化的工作過程。

 

第四部分 事務管理

  術語“事務”指的是工作中一系列操作的集合形成的單一邏輯單元。例如,將金錢從一個賬戶轉移到另一個的行為就是一個包含兩個更新的事務,每個賬戶都有一個更新。

  一個事務的所有行為都被完全執行,或者,為了防止某些失敗,每個不完全事務部分的效果需要可以被撤銷,這是很重要的。這個屬性叫做“原子性”。進一步地,一旦一個事務成功執行,他的效果必須在資料庫中保持著——系統錯誤不應該導致資料庫忘記曾經成功完全執行的事務。這個屬性被成為持久性。

  在一個當前正在執行多個事務的資料庫系統中,如果更新共用數據的行為不受控制,就會有潛在的可能性使得事務們看到其它事務創建的更新導致的不一致的中間狀態。這樣的情節可能會導致對資料庫中存儲的數據進行錯誤的更新。因此,資料庫系統必須提供一個機制來使得每一個事務不受其它正在執行的事務的效果影響。這個屬性叫做孤立性。

  第十四章描述了事務原理的細節,包含原子性,持續性,孤立性和其它由事務抽象提供的屬性。特別地,本章通過被稱為可串列化的概念來精確說明瞭孤立性的原理。

  第十五章描述了多個用於實現孤立性的併發控制技術。第十六章描述了資料庫的恢復管理組件,它實現了原子性和持久性的屬性。

  總的來說,資料庫系統的事務管理組件允許應用開發者聚焦於各自的事務實現,可以忽視併發和容錯問題。

 

第五部分 系統架構

  資料庫系統架構收到其運行所在的底層電腦系統的深刻影響。資料庫系統可以是集中式的,在一個伺服器上運行資料庫操作。資料庫系統也可以設計為利用並行電腦的架構。分散式資料庫跨越了多個地理上分離的機器。

  第十七章首先概述了在伺服器系統上運行的資料庫系統的架構,這是使用了集中式的和客戶端-伺服器的架構。多種共同實現了資料庫功能的過程也在這裡得到了描述。接下來該章節概述了並行電腦架構,和為了各種類型的並行電腦設計的並行資料庫架構。最後,該章概述了建立分散式資料庫系統時的架構問題。

  第十八章描述了資料庫的各種行為——特別是查詢過程——可以通過利用並行處理來實現。

  第十九章提出了一系列在分散式資料庫中出現的問題,描述了處理每個問題的方法。這些問題包括如何存儲數據,如何確保運行在多地點的事務的原子性,如何執行併發控制,以及如何在失敗發生時提供高可用性。這章也描述了一個基於雲的數據存儲系統、它的分散式查詢處理和字典系統。

 

第六部分 數據倉庫,數據挖掘和信息檢索

  資料庫查詢通常用於提取特別的信息,比如賬戶餘額和一個客戶的賬戶餘額之和。然而,用於幫助制定企業戰略的查詢通常需要訪問源於多種來源的大量數據。

  數據倉庫是將不同來源搜集的數據以一個共同的、統一的資料庫模式存儲的庫。存儲在數據倉庫的數據被一系列複雜的聚合和靜態分析所分析,通常利用我們第五章講過的SQL構建資料庫分析。更進一步地,知識發現技術也可能用於嘗試發現數據中的規則和模板。例如,一個零售商也許會發現某些商品更容易放在一起銷售,並且也許會用這種信息來制定市場戰略。這種從數據中發現知識的方式被成為數據挖掘。第二十章解決有關數據倉庫和數據挖掘的問題。

  到目前為止的討論中,我們關註過關係簡單、結構良好的數據。然而,互聯網上、企業的內部網中和個人用戶的電腦中有巨大數量的非結構化文本數據。用戶希望找到這些體積巨大的、絕大多數都是文本化內容中的相關信息,並且是通過簡單的查詢機制,比如關鍵詞查詢。信息檢索領域可以處理這種無結構數據的查詢,並且特別關註查詢結果的分級。雖然相關領域的研究已經有幾十年的歷史,它還是隨著萬維網的發展經歷了巨大的成長。21章提供了信息檢索領域的介紹。

 

第七部分 特殊資料庫

  資料庫系統的幾個應用領域受著關係數據模型的約束的限制,因此,研究者發展了多種基於面向對象方法的數據模型,以處理這些應用領域。

  對象-關係模型,在第二十二章中描述,它結合了面向對象模型和關係模型的特點。這個模型提供了面向對象語言的富類型系統,同關係結合在一起,作為數據存儲的基礎。它應用了關係的繼承,而不僅僅是類型。對象-類型數據模型提供了和關係資料庫之間的平滑遷移路徑,這對關係資料庫供應商們很著吸引力。因此,從SQL:1999開始,SQL標準的類型系統包含了一系列的對象-關係特征,同時也在繼續使用關係模型作為底層模型。

  屬於面向對象資料庫用於描述支持直接從面向對象編程語言訪問的資料庫系統,而不是需要一個關係查詢語言作為資料庫界面。第二十二章也提供了面向對象資料庫的簡單概覽。

  XML語言最早用於添加文本文檔的標記信息,但是卻因為其在數據交換中的應用變得重要起來。XML提供了一種通過嵌套結構表示數據的方法,並且也進一步地允許數據結構中的大量的可伸縮性。這對於某些類型的非傳統數據來說是很重要的。第二十三章描述了SML語言,包含XQuery XML查詢語言,和SQL/XML,一種SQL的擴展,它允許創建嵌套的XML輸出。 

  

第八部分 高級主題

  第二十四章涵蓋了應用發展中的大量高級主題,從用於改善應用速度的性能調優開始。接著討論用於作為商業資料庫系統性能測量的標準基準。接下來是應用發展中的問題,比如應用測試和應用遷移。這章總結了標準化過程和現有的資料庫語言標準概覽。

  第二十五章描述空間和時間數據類型,以及多媒體數據,還有在資料庫中存儲這些類型的數據時的問題。和移動電腦操作系統相關的資料庫問題也會在這章描述。

  最後,第二十六章描述了幾個高級事務處理技術,包含事務處理監測器,事務流,和電商中的事務處理問題。這章接下來會討論主記憶體資料庫系統和實時交易系統,並以一個關於長事務的討論作為結束。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有關NSLog調試問題 ...
  • 前言 什麼是操作系統:操作系統是一種系統軟體,用來管理電腦的軟硬體資源。 主流操作系統: 移動攜帶型設備:Android、iOS、Windows Phone、Symbian(塞班)、Black Berry(黑莓) OS PC個人電腦:Windows、Mac OS、Unix、Linux 什麼是iOS ...
  • 簡易天氣是一個基於和風天氣數據採用MD設計的Android天氣App。目前的版本採用傳統的MVC模式構建。通過豐富多彩的頁面為用戶提供日常所需的天氣資訊。 項目說明 項目放在github上面 地址是: "easyweather開源地址" 項目利用的和風天氣 舊版本的API。 定位功能使用的是百度地圖 ...
  • 最近這幾天,一直跟著朋友們聚會什麼的,沒怎麼做項目,今天總算是有時間開電腦繼續做我的項目了。下麵我就把我做的效果展示一下。 這是模仿了qq的界面效果。因為代碼比較長就不粘貼代碼了。需要的小伙伴可以跟我私聊。 ...
  • iOS 圖片壓縮方法 兩種圖片壓縮方法 兩種壓縮圖片的方法:壓縮圖片質量(Quality),壓縮圖片尺寸(Size)。 壓縮圖片質量 通過 UIImage 和 NSData 的相互轉化,減小 JPEG 圖片的質量來壓縮圖片。UIImageJPEGRepresentation:: 第二個參數 comp ...
  • 在連接資料庫的時候,有時會遇到一個“ORA12514:監聽程式當前無法識別連接描述符中請求的服務”的錯誤,這個錯誤其實就是資料庫動態註冊(關於動態註冊會在稍後講解)不生效,導致監聽器無法識別客戶端連接符中提供的服務名,從而拒絕建立資料庫連接時報的錯誤信息,所以就需要對監聽器配置做修改。 在這裡,還需 ...
  • 這篇文章會對twemproxyRedis協議解析代碼部分進行一番簡單的分析,同時給出twemproxy目前支持的所有Redis命令。在這篇文章開始前,我想大家去簡單地理解一下有限狀態機,當然不理解也是沒有問題的,有限狀態機僅僅能幫助我們更好地理解twemproxyRedis協議解析代碼部分。 red ...
  • spark2.1出來了,想玩玩就搭了個原生的apache集群,但在standalone模式下沒有任何問題,基於apache hadoop 2.7.3使用spark on yarn一直報這個錯。 報錯日誌如下: 解決方案: 修改yarn-site.xml,添加下列property 分析: 按照上述配置 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...