【正文】
ng appropriate portions of the data from secondary storage (disk, normally) where it is kept permanently, to main memory buffers. Normally, the page or “disk block” is the unit of transfer between buffers and disk.The buffer manager municates with a storage manager to get data from disk. The storage manager might involve operatingsystem mands, but more typically, the DBMS issues mands directly to the disk controller.Transaction processingQueries and other DML actions are grouped into transactions, which are units that must be executed atomically and in isolation from one another. Often each query or modification action is a transaction by itself. In addition, the execution of transactions must be durable, meaning that the effect of any pleted transaction must be preserved even if the system fails in some way right after pletion of the transaction. We divide the transaction processor into two major parts:1. A concurrencycontrol manager, or scheduler, responsible for assuring atomicity and isolation of transactions, and2. A logging and recovery manager, responsible for the durability of transactions.We shall consider these ponents further in Section . Storage and Buffer ManagementThe data of a database normally resides in secondary storage。數(shù)據(jù)庫系統(tǒng)近來的許多演變都朝著允許來自不同數(shù)據(jù)源功能的方向發(fā)展,這些數(shù)據(jù)源可能是在一個更大的整體上不能被數(shù)據(jù)庫管理系統(tǒng)處理的數(shù)據(jù)庫或信息資源。處理死鎖,事務(wù)管理器的另一項(xiàng)重要功能,這里也提到過。本章的主要課題是如何管理數(shù)據(jù)庫元素上的鎖:使用的不同類型的鎖,事務(wù)獲得和釋放鎖的方式。因此,我們必須謹(jǐn)慎行事,以一種恰當(dāng)?shù)闹刃驅(qū)?shù)據(jù)從從緩沖區(qū)移到磁盤,無論是數(shù)據(jù)庫自身的變化還是日志的變更。最后,我們探討物理查詢計(jì)劃的選擇,在此過程中,我們對特殊操作命令,用來實(shí)現(xiàn)每一步操作的算法都做了簡要概述。這些算法的設(shè)計(jì)是高效的,當(dāng)數(shù)據(jù)存儲在磁盤時,并在某些情況下,這些算法與主存算法有很大的差別。第14章論述了多維索引,它們是專門應(yīng)用的數(shù)據(jù)結(jié)構(gòu),如地理數(shù)據(jù)庫,那里可以專門查詢某個地區(qū)的相關(guān)內(nèi)容。索引是一個支持高效存取的數(shù)據(jù)結(jié)構(gòu)。不過,由于二級存儲器,尤其是磁盤,是數(shù)據(jù)庫管理系統(tǒng)管理數(shù)據(jù)的中心,所以我們要仔細(xì)研究數(shù)據(jù)存儲的方式以及在磁盤上的訪問。(2)查詢處理:如何用一種很高級的語言,如SQL來表示查詢,并能實(shí)現(xiàn)高效執(zhí)行。最后,在第10章,我們回到在第5章中開始的對抽象查詢語言的研究。在第9章我們將注意力轉(zhuǎn)向面向?qū)ο蟮臄?shù)據(jù)庫編程標(biāo)準(zhǔn)。第8章涵蓋了SQL編程的某些高級方面。第5章整個10節(jié)都涵蓋有數(shù)據(jù)庫編程。在第4章我們將探討數(shù)據(jù)庫設(shè)計(jì)中的面向?qū)ο蠓椒āN覀冎v述了如何把實(shí)體關(guān)系設(shè)計(jì)轉(zhuǎn)換成關(guān)系設(shè)計(jì),又叫“關(guān)系數(shù)據(jù)庫模式”。怎樣創(chuàng)建一個有用的數(shù)據(jù)庫?什么樣的信息進(jìn)入數(shù)據(jù)庫?這些信息是怎么組織的?要對數(shù)據(jù)項(xiàng)的值和類型提出什么樣的假設(shè)?數(shù)據(jù)項(xiàng)又是如何連接的?(2)數(shù)據(jù)庫編程。執(zhí)行引擎會直接或通過緩沖器與其它大部分?jǐn)?shù)據(jù)庫組件相交互。查詢編譯器使用元數(shù)據(jù)和統(tǒng)計(jì)數(shù)據(jù),以決定哪些操作序列可能是最快的。往往是在一查詢計(jì)劃是實(shí)施的關(guān)系代數(shù)的經(jīng)營方式,這是討論在第。數(shù)據(jù)庫管理系統(tǒng)這部分,對用戶影響最大的就是查詢處理器。這些鎖一般都存放在主存的鎖表里, 展示的那樣。但在大多數(shù)系統(tǒng)中,事實(shí)上有許多事務(wù)同時執(zhí)行。事務(wù)處理器執(zhí)行下列任務(wù):(1)登記日志:為了保證持久性,數(shù)據(jù)庫的每一次變動都會單獨(dú)記錄在磁盤上。把一個或更多的數(shù)據(jù)庫操作分組成一個事務(wù)是很正常的,事務(wù)就是一個必須要自動執(zhí)行并明顯脫離其它事務(wù)的工作單元。(2)元數(shù)據(jù):描述數(shù)據(jù)庫結(jié)構(gòu)和約束的數(shù)據(jù)庫模型。大家知道,磁盤一般可分為磁盤塊,這些磁盤塊是一些相鄰的區(qū)域,含有大量的字節(jié),可能是212或214(約4000至16000字節(jié))。存儲管理器的工作是控制數(shù)據(jù)在磁盤的存放以及數(shù)據(jù)在磁盤和主存儲器間的傳遞。(2)一個日志恢復(fù)管理器,負(fù)責(zé)確保事物的持久性。事物處理查詢和其它數(shù)據(jù)操縱語言行為被劃分成事物,事物是彼此孤立必須自動執(zhí)行的單元。但簡單來說,它的任務(wù)是把在二級存儲器里(通常是磁盤)永久保存的部分合適數(shù)據(jù)發(fā)送到主存緩沖器中。DML語句由兩個獨(dú)立的子系統(tǒng)來處理,其過程如下:查詢回復(fù)查詢就是利用查詢編譯器進(jìn)行解析和優(yōu)化。 查詢處理概述。數(shù)據(jù)庫管理員還要規(guī)定學(xué)生的成績只能是A 、B 、C 、D和F。首先,在頂部,我們認(rèn)為應(yīng)該有兩個不同的命令來源到達(dá)數(shù)據(jù)庫:(1)請求或修改數(shù)據(jù)的傳統(tǒng)用戶和應(yīng)用程序。 單位代碼 01 學(xué) 號040101086 分 類 號 密 級____ ___ _文獻(xiàn)翻譯數(shù)據(jù)庫管理系統(tǒng)概述 院(系)名稱信息工程學(xué)院專 業(yè) 名 稱計(jì)算機(jī)科學(xué)與技術(shù)學(xué) 生 姓 名指 導(dǎo) 教 師2008年4月15日黃河科技學(xué)院畢業(yè)設(shè)計(jì)(文獻(xiàn)翻譯) 第 19 頁 英文譯文數(shù)據(jù)庫管理系統(tǒng)概述赫克托加西亞莫利納,杰夫?yàn)鯛柭?,珍妮?數(shù)據(jù)庫管理系統(tǒng)概述。由于這個圖很復(fù)雜,我們將分幾個階段來考慮細(xì)節(jié)。例如,為一所大學(xué)搞注冊的數(shù)據(jù)庫管理員,或簡稱DBA,應(yīng)該為每個學(xué)生建一張表或關(guān)系,從而說明這個學(xué)生所參加的課程以及那門課程的分?jǐn)?shù)。這些模式更改數(shù)據(jù)庫定義語言指令(“DDL”代表“數(shù)據(jù)定義語言”)是由數(shù)據(jù)庫定義語言處理器解析,并傳遞給執(zhí)行引擎,經(jīng)過搜索/存檔/記錄管理,再到元數(shù)據(jù),即模型信息數(shù)據(jù)庫。我們可以使用很多數(shù)據(jù)操縱語言, 中所提到的那些數(shù)據(jù)查詢語言,是目前最常用的。請求數(shù)據(jù)被翻譯成頁,這些請求被傳遞給緩沖管理器。存儲管理器可能會含有一些操作系統(tǒng)指令,但更特殊的是,數(shù)據(jù)庫管理系統(tǒng)可以直接向磁盤控制器發(fā)送指令。我們把事物處理器分成兩個主要部分:(1)一個并發(fā)控制管理器,或者調(diào)度器,負(fù)責(zé)確保事物的原子性和孤立性。不過,要對數(shù)據(jù)執(zhí)行任何有用的操作,則數(shù)據(jù)必須在主存。存儲管理器記錄文件在磁盤上的位置,并獲得該塊或含有來自緩沖管理器回復(fù)的文件的那些塊。不同組件所需要的各種信息可能包括:(1)數(shù)據(jù):數(shù)據(jù)庫本身的內(nèi)容。所以接受交易指令,從一個應(yīng)用,其中告訴經(jīng)理人交易時,交易的開始和結(jié)束,以及信息的期望應(yīng)用(例如,有些可能不希望請求原子數(shù))。(2)并發(fā)控制:事物必須能獨(dú)立執(zhí)行。這些鎖,是防止兩個事務(wù)訪問同一塊數(shù)據(jù),以至于交互性很差。事務(wù)管理器有責(zé)任干預(yù)和取消一個或更多的事務(wù),從而讓其它事物可以進(jìn)行下去。通常這些在查詢計(jì)劃里的操作是對“關(guān)系代數(shù)“的操作。(3)查詢優(yōu)化器,它將原始查詢計(jì)劃轉(zhuǎn)變成對實(shí)際數(shù)據(jù)操作的最佳可用序列。執(zhí)行引擎,它負(fù)責(zé)執(zhí)行所選定查詢計(jì)劃的每一步?!到y(tǒng)研究意念相關(guān)數(shù)據(jù)庫系統(tǒng),可分為三大類:(1)數(shù)據(jù)庫設(shè)計(jì)。我們在第3章介紹了關(guān)系模型,它是數(shù)據(jù)庫管理系統(tǒng)最廣泛采用的, 。依賴允許我們通過一個被稱為關(guān)系“正?;钡倪M(jìn)程改進(jìn)關(guān)系數(shù)據(jù)庫的設(shè)計(jì)。最后,第四章還介紹了“半結(jié)構(gòu)化數(shù)據(jù)”,它是一種特別靈活的數(shù)據(jù)庫模型,我們可以在文檔語言XML中看到它的時尚體現(xiàn)。第七章介紹了有關(guān)數(shù)據(jù)上的約束和觸發(fā)器SQL的各方面。本章還講述了如何利用SQL的功能,簡化事務(wù),連接客戶機(jī)到服務(wù)器,并授權(quán)非法用戶進(jìn)入數(shù)據(jù)庫。第二、近來在SQL標(biāo)準(zhǔn)中采用的面向?qū)ο筇卣鳎梢员豢醋魇鞘龟P(guān)系數(shù)據(jù)庫、SQL與面向?qū)ο缶幊碳嫒莸囊淮螄L試。數(shù)據(jù)庫系統(tǒng)的實(shí)現(xiàn),這個課題可以大致分為三個部分:(1)存儲管理:如何有效使用二級存儲來容納數(shù)據(jù)以及實(shí)現(xiàn)它們的快速訪問。存儲管理概述第11章介紹了存儲器。接著我們看看用于構(gòu)建索引的重要數(shù)據(jù)結(jié)構(gòu)。B樹也是用來訪問按給定屬性排列的關(guān)系。我們學(xué)過一些關(guān)系代數(shù)操作的高效算法。接著,我們考慮查詢轉(zhuǎn)換,從SQL到關(guān)系代數(shù),邏輯查詢計(jì)劃的選擇,也就是,一個代數(shù)式,代表必須執(zhí)行的特殊操作,以及有關(guān)操作命令的必要約束。任何存在于主存但不在磁盤的內(nèi)容都可能在沖突(比如,電力供應(yīng)中斷)時丟失。我們將事務(wù)看作是讀寫數(shù)據(jù)庫元素的操作序列。我們總結(jié)了日志需求間的交互,這在第17章討論過,和并發(fā)性的要求,在第18章講過。長事務(wù)不可能鎖住數(shù)據(jù)而沒有產(chǎn)生混亂,因?yàn)橛锌赡苡衅渌脩羰褂么藬?shù)據(jù),所以這迫使我們重新思考包含長事務(wù)的應(yīng)用并發(fā)控制。摘自:赫克托加西亞莫利納,杰夫?yàn)鯛柭?,珍妮? 數(shù)據(jù)庫系統(tǒng)世界. 附:英文原文Overview of a Database Management SystemHector GarciaMolina, Jeff Ullman, Jennifer Widom Overview of a Database Management SystemIn Fig. we see an outline of a plete DBMS. Single boxes represent system ponents, while double boxes represent inmemory data structures. The solid lines indicate control and data flow, while dashed lines indicate data flow only. Since the diagram is plicated, we shall consider the details in several stages. First, at the top, we suggest that there are two distinct sources of mands to the DBMS:1. Conventional users and application programs that ask