【正文】
008年4月15日黃河科技學(xué)院畢業(yè)設(shè)計(jì)(文獻(xiàn)翻譯) 第 19 頁 英文譯文數(shù)據(jù)庫管理系統(tǒng)概述赫克托加西亞莫利納,杰夫?yàn)鯛柭?,珍妮?數(shù)據(jù)庫管理系統(tǒng)概述。單框代表系統(tǒng)組件,而雙框代表內(nèi)存數(shù)據(jù)結(jié)構(gòu)。由于這個(gè)圖很復(fù)雜,我們將分幾個(gè)階段來考慮細(xì)節(jié)。(2)數(shù)據(jù)庫管理員:負(fù)責(zé)數(shù)據(jù)庫結(jié)構(gòu)或模型的個(gè)人或組織。例如,為一所大學(xué)搞注冊的數(shù)據(jù)庫管理員,或簡稱DBA,應(yīng)該為每個(gè)學(xué)生建一張表或關(guān)系,從而說明這個(gè)學(xué)生所參加的課程以及那門課程的分?jǐn)?shù)。這個(gè)結(jié)構(gòu)和約束信息就是數(shù)據(jù)庫的全部。這些模式更改數(shù)據(jù)庫定義語言指令(“DDL”代表“數(shù)據(jù)定義語言”)是由數(shù)據(jù)庫定義語言處理器解析,并傳遞給執(zhí)行引擎,經(jīng)過搜索/存檔/記錄管理,再到元數(shù)據(jù),即模型信息數(shù)據(jù)庫。用戶或應(yīng)用程序啟動(dòng)一些行為,并不會(huì)影響數(shù)據(jù)庫的模式,但可能會(huì)影響到數(shù)據(jù)庫的內(nèi)容(如果是一個(gè)修改命令行為),或?qū)臄?shù)據(jù)庫中提取數(shù)據(jù)(如果是一個(gè)查詢行為)。我們可以使用很多數(shù)據(jù)操縱語言, 中所提到的那些數(shù)據(jù)查詢語言,是目前最常用的。由此產(chǎn)生的查詢計(jì)劃,或數(shù)據(jù)庫管理系統(tǒng)的行為序列將會(huì)作用于對(duì)查詢的回復(fù)。請(qǐng)求數(shù)據(jù)被翻譯成頁,這些請(qǐng)求被傳遞給緩沖管理器。通常,頁或“磁盤塊”是緩沖器和磁盤間的傳送單元。存儲(chǔ)管理器可能會(huì)含有一些操作系統(tǒng)指令,但更特殊的是,數(shù)據(jù)庫管理系統(tǒng)可以直接向磁盤控制器發(fā)送指令。通常每一個(gè)查詢或修改行為自身就是一個(gè)事物。我們把事物處理器分成兩個(gè)主要部分:(1)一個(gè)并發(fā)控制管理器,或者調(diào)度器,負(fù)責(zé)確保事物的原子性和孤立性。不過,要對(duì)數(shù)據(jù)執(zhí)行任何有用的操作,則數(shù)據(jù)必須在主存。在一個(gè)簡單的數(shù)據(jù)庫系統(tǒng)中,存儲(chǔ)管理器或許僅僅是底層操作系統(tǒng)的文件系統(tǒng)。存儲(chǔ)管理器記錄文件在磁盤上的位置,并獲得該塊或含有來自緩沖管理器回復(fù)的文件的那些塊。緩沖管理器負(fù)責(zé)把可用主存劃分成許多緩沖器,它們是頁大小的區(qū)域,能夠存放磁盤塊大小的內(nèi)容。不同組件所需要的各種信息可能包括:(1)數(shù)據(jù):數(shù)據(jù)庫本身的內(nèi)容。(3)統(tǒng)計(jì)數(shù)據(jù):數(shù)據(jù)庫管理系統(tǒng)收集和存儲(chǔ)的有關(guān)數(shù)據(jù)的屬性,如大小、值、各種關(guān)系以及數(shù)據(jù)庫組件。此外,數(shù)據(jù)庫管理系統(tǒng)提供持久性保證:事務(wù)一旦完成,將永遠(yuǎn)不會(huì)消失。所以接受交易指令,從一個(gè)應(yīng)用,其中告訴經(jīng)理人交易時(shí),交易的開始和結(jié)束,以及信息的期望應(yīng)用(例如,有些可能不希望請(qǐng)求原子數(shù))。日志管理器遵循其中一些設(shè)計(jì),以確保無論何時(shí)系統(tǒng)發(fā)生故障或“沖突“現(xiàn)象,恢復(fù)管理器將能夠?qū)彶槿罩镜淖兓突謴?fù)數(shù)據(jù)庫,使其狀態(tài)一致。(2)并發(fā)控制:事物必須能獨(dú)立執(zhí)行。因此,調(diào)度器(并發(fā)控制管理器)必須確保各種事務(wù)的個(gè)人行動(dòng)有序進(jìn)行,結(jié)果就象是這些事務(wù)是一個(gè)整體在執(zhí)行,一次一個(gè)。這些鎖,是防止兩個(gè)事務(wù)訪問同一塊數(shù)據(jù),以至于交互性很差。調(diào)度器通過禁止執(zhí)行引擎訪問部分鎖定的數(shù)據(jù)庫來制約查詢的執(zhí)行和其他數(shù)據(jù)庫操作。事務(wù)管理器有責(zé)任干預(yù)和取消一個(gè)或更多的事務(wù),從而讓其它事物可以進(jìn)行下去。:查詢編譯器,將查詢結(jié)果翻譯成一種內(nèi)部形式,即查詢計(jì)劃。通常這些在查詢計(jì)劃里的操作是對(duì)“關(guān)系代數(shù)“的操作。查詢編譯器包括三個(gè)主要單元:(1)查詢分析器,它根據(jù)文字上的形式查詢建立在一個(gè)樹結(jié)構(gòu)。(3)查詢優(yōu)化器,它將原始查詢計(jì)劃轉(zhuǎn)變成對(duì)實(shí)際數(shù)據(jù)操作的最佳可用序列。例如,存在著一種索引,它是提供訪問數(shù)據(jù)的一種專門數(shù)據(jù)結(jié)構(gòu)。執(zhí)行引擎,它負(fù)責(zé)執(zhí)行所選定查詢計(jì)劃的每一步。為了處理那些數(shù)據(jù),它必須將來自數(shù)據(jù)庫的數(shù)據(jù)送到緩沖器里?!到y(tǒng)研究意念相關(guān)數(shù)據(jù)庫系統(tǒng),可分為三大類:(1)數(shù)據(jù)庫設(shè)計(jì)。怎樣表達(dá)查詢和其它數(shù)據(jù)庫操作?在一個(gè)應(yīng)用中如何使用數(shù)據(jù)庫管理系統(tǒng)的其他功能,如事務(wù)或約束?數(shù)據(jù)庫編程和常規(guī)編程是怎樣融合的?(3)數(shù)據(jù)庫系統(tǒng)實(shí)施。我們在第3章介紹了關(guān)系模型,它是數(shù)據(jù)庫管理系統(tǒng)最廣泛采用的, 。以后,我們將向大家展示如何使關(guān)系數(shù)據(jù)庫模式格式化成SQL語言的數(shù)據(jù)定義部分。依賴允許我們通過一個(gè)被稱為關(guān)系“正?;钡倪M(jìn)程改進(jìn)關(guān)系數(shù)據(jù)庫的設(shè)計(jì)。那里,我們采用了ODL語言,它允許用面向?qū)ο蟮母呒?jí)語句來描述數(shù)據(jù)庫。最后,第四章還介紹了“半結(jié)構(gòu)化數(shù)據(jù)”,它是一種特別靈活的數(shù)據(jù)庫模型,我們可以在文檔語言XML中看到它的時(shí)尚體現(xiàn)。第5章首先以關(guān)系模型的一個(gè)抽象查詢方法開始,介紹了構(gòu)成“關(guān)系代數(shù)”的操作符集。第七章介紹了有關(guān)數(shù)據(jù)上的約束和觸發(fā)器SQL的各方面。首先,最簡單的SQL編程模型是一個(gè)獨(dú)立、通用查詢界面,在實(shí)踐中大多數(shù)SQL編程是嵌入在一個(gè)用傳統(tǒng)語言編寫的較大項(xiàng)目,如C語言。本章還講述了如何利用SQL的功能,簡化事務(wù),連接客戶機(jī)到服務(wù)器,并授權(quán)非法用戶進(jìn)入數(shù)據(jù)庫。在這里,我們考慮兩個(gè)方向。第二、近來在SQL標(biāo)準(zhǔn)中采用的面向?qū)ο筇卣?,可以被看作是使關(guān)系數(shù)據(jù)庫、SQL與面向?qū)ο缶幊碳嫒莸囊淮螄L試。在這里,我們研究邏輯語言,看看它們是如何被用于擴(kuò)展現(xiàn)代SQL功能的。數(shù)據(jù)庫系統(tǒng)的實(shí)現(xiàn),這個(gè)課題可以大致分為三個(gè)部分:(1)存儲(chǔ)管理:如何有效使用二級(jí)存儲(chǔ)來容納數(shù)據(jù)以及實(shí)現(xiàn)它們的快速訪問。(3)事務(wù)管理:。存儲(chǔ)管理概述第11章介紹了存儲(chǔ)器。于是我們引入了基于磁盤數(shù)據(jù)的“塊模型”, 它幾乎影響了數(shù)據(jù)庫系統(tǒng)中所有的操作。接著我們看看用于構(gòu)建索引的重要數(shù)據(jù)結(jié)構(gòu)。第13章涵蓋了重要的一維索引結(jié)構(gòu)—索引順序文件,B樹和哈希表。B樹也是用來訪問按給定屬性排列的關(guān)系。這些索引結(jié)構(gòu)也支持復(fù)雜的SQL查詢,這種查詢限定兩個(gè)或兩個(gè)以上屬性的值,而其中的這些結(jié)構(gòu)已開始在商業(yè)數(shù)據(jù)庫管理系統(tǒng)中出現(xiàn)。我們學(xué)過一些關(guān)系代數(shù)操作的高效算法。在第16章,我們考慮查詢編譯器和優(yōu)化器的結(jié)構(gòu)。接著,我們考慮查詢轉(zhuǎn)換,從SQL到關(guān)系代數(shù),邏輯查詢計(jì)劃的選擇,也就是,一個(gè)代數(shù)式,代表必須執(zhí)行的特殊操作,以及有關(guān)操作命令的必要約束。事務(wù)處理概述在第17章中,我們了解到在數(shù)據(jù)庫管理系統(tǒng)中如何實(shí)現(xiàn)事務(wù)的持久性。任何存在于主存但不在磁盤的內(nèi)容都可能在沖突(比如,電力供應(yīng)中斷)時(shí)丟失。這里有幾個(gè)日志策略可用,但每次都在某些方面限制了我們的行動(dòng)自由。我們將事務(wù)看作是讀寫數(shù)據(jù)庫元素的操作序列。此外,本章還研究了不使用瑣而能保證事務(wù)原子性和獨(dú)立性的一系列方法。我們總結(jié)了日志需求間的交互,這在第17章討論過,和并發(fā)性的要求,在第18章講過。在分散的環(huán)境里延長并發(fā)控制,也會(huì)在第19章介紹。長事務(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 for data or modify data.2. A database administrator: a person or persons responsible for the structure or schema of the database. DataDefinition Language CommandsThe second kind of mand is the simpler to process, and we show its trail beginning at the upper right side of Fig. . For example, the database administrator, or DBA, for a university registrar39。 in today39。s normally control storage on the disk directly, at least under some circumstances. The storage manager keeps track of the location of files on the disk and obtains the block or blocks containing a file on request from the buffer manager. Recall that disks are generally divided into disk blocks, which are regions of contiguous storage containing a large number of bytes, perhaps 212 or 214 (about 4000 to 16,000 bytes).The buffer manager is responsible for partitioning the available main memory into buffers, which are pagesized regions into which disk blocks can be transferred. Thus, all DBMS ponents that need information from the disk will interact with the buffers and the buffer manager, either directly or through the execution engine. The kinds of information that various ponents may need include:1. Data: the contents of the database itself.2. Metadata: the database schema that describes the structure of the database.3. Statistics: information gathered and stored by the DBMS about data properties such as the sizes of, and values in, various relations or other ponents of the database.4. Indexes: data structures that support efficient access to the data.A more plete discussion of the buffer manager and its role appears in Section . Transaction ProcessingIt is normal to group one or more database operations into a transaction, which is a unit of work that must be ex