數(shù)據(jù)庫系統(tǒng)基礎(chǔ)、設(shè)計(jì)及應(yīng)用第1章_第1頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)、設(shè)計(jì)及應(yīng)用第1章_第2頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)、設(shè)計(jì)及應(yīng)用第1章_第3頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)、設(shè)計(jì)及應(yīng)用第1章_第4頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)、設(shè)計(jì)及應(yīng)用第1章_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1.1數(shù)據(jù)庫的概念

1.2數(shù)據(jù)庫系統(tǒng)組成與結(jié)構(gòu)

1.3數(shù)據(jù)庫管理系統(tǒng)

實(shí)驗(yàn)1觀察SQLServer數(shù)據(jù)庫

第1章數(shù)?據(jù)?庫?系?統(tǒng)

【例1-1】

一所大學(xué)的數(shù)據(jù)庫。

大學(xué)需要存儲(chǔ)和處理教師、學(xué)生、課程等各方面的相關(guān)數(shù)據(jù),這些數(shù)據(jù)存儲(chǔ)于通過某種DBMS創(chuàng)建的數(shù)據(jù)庫中,并分別由人事部門、教務(wù)部門、學(xué)生管理部門以及學(xué)術(shù)評(píng)議部門根據(jù)自己的業(yè)務(wù)來存取和操縱相關(guān)范圍內(nèi)的數(shù)據(jù),如圖1-1所示。1.1數(shù)據(jù)庫的概念圖1-1某大學(xué)的數(shù)據(jù)庫系統(tǒng)目前,數(shù)據(jù)庫系統(tǒng)基本上都是按照“關(guān)系數(shù)據(jù)模型”來組織數(shù)據(jù)的。這種方式將滿足所有下屬部門業(yè)務(wù)需求的數(shù)據(jù)存放在多個(gè)稱之為“關(guān)系”的數(shù)據(jù)表中,相關(guān)人員通過DBMS來存取、查詢或更新(插入、刪除或修改)其中的數(shù)據(jù)。例如,將學(xué)生、課程和選課的相關(guān)數(shù)據(jù)分別存放在如圖1-2所示的三個(gè)表中。(a)“學(xué)生”表(b)“課程”表(c)“選課”表圖1-2數(shù)據(jù)庫中的表這三個(gè)表中,有些數(shù)據(jù)項(xiàng)(欄目、列)是同名且存放相同類型數(shù)據(jù)的,可用于建立表和表之間的聯(lián)系,如圖1-3所示。圖1-3數(shù)據(jù)庫中三個(gè)表之間的聯(lián)系

1.?dāng)?shù)據(jù)庫中的表

數(shù)據(jù)庫(特指按照關(guān)系模型創(chuàng)建的數(shù)據(jù)庫)的基本成分是一些存放數(shù)據(jù)的表。數(shù)據(jù)庫中的表從邏輯結(jié)構(gòu)上看相當(dāng)簡(jiǎn)單,它是由若干行和列簡(jiǎn)單交叉形成的,不能表中套表。它要求表中每個(gè)單元都只包含一個(gè)數(shù)據(jù),可以是字符串、數(shù)字、貨幣值、邏輯值、時(shí)間等較為簡(jiǎn)單的數(shù)據(jù)。

表中的一行稱為一條記錄。記錄的集合即表的內(nèi)容。一條記錄的內(nèi)容是描述一類事物中的一個(gè)具體事物的一組數(shù)據(jù),如一個(gè)學(xué)生的學(xué)號(hào)、姓名、入學(xué)分等。一般地,一條記錄由多個(gè)數(shù)據(jù)項(xiàng)構(gòu)成,數(shù)據(jù)項(xiàng)的名稱、順序、數(shù)據(jù)類型等由表的標(biāo)題決定。表名以及表的標(biāo)題是相對(duì)固定的,而表中記錄的數(shù)量則是經(jīng)常變化的。注:數(shù)據(jù)庫中的表與Excel中的“工作表”雖外形相似,卻是不同的。工作表可看做單元格的集合,每個(gè)單元格都可以隨意存放不同類型的數(shù)據(jù),也可以使用公式求得數(shù)據(jù)。而數(shù)據(jù)庫表中的每條記錄都是相同結(jié)構(gòu)的,每個(gè)單元格都受標(biāo)題的約束,只能存放符合條件的數(shù)據(jù)。

表與表之間可以通過彼此都具有的相同的字段(列)聯(lián)系起來。例如,“學(xué)生”表和“選課”表都有“學(xué)號(hào)”字段,選課表的一條記錄就可聯(lián)系到學(xué)生表的一條記錄。這樣就不必在選課表中重復(fù)包含學(xué)生的其他信息,減少了數(shù)據(jù)冗余。

2.?dāng)?shù)據(jù)庫系統(tǒng)的功能

數(shù)據(jù)庫系統(tǒng)是將累積了一定數(shù)量的記錄管理起來,以便再利用的數(shù)據(jù)處理系統(tǒng)。具有如下功能:

(1)輸入記錄。規(guī)定了表的格式或者說創(chuàng)建了表的結(jié)構(gòu)之后,就可以按照這種規(guī)定來“填充”表中的數(shù)據(jù)了。DBMS提供相應(yīng)的輸入方式(操作命令或圖形用戶界面),使得用戶可以方便地輸入每條記錄。例如,在MicrosoftSQLServer中,打開類似于圖1-2中的“學(xué)生”表即可逐個(gè)輸入每個(gè)學(xué)生的記錄。(2)輸出報(bào)表。報(bào)表是按照某種條件篩選記錄之后形成的記錄的集合,可以打印成文本、形成電子文檔或者作為某種數(shù)據(jù)處理系統(tǒng)的加工對(duì)象。DBMS提供輸出報(bào)表的各種方式,用戶可以按照需求選擇不同的內(nèi)容以及輸出格式。例如,可以逐行打印出某個(gè)班級(jí)所有學(xué)生某門課程的成績(jī)。

(3)查詢。按照DBMS規(guī)定的格式設(shè)置查詢條件即可找出符合條件的記錄。例如,在MicrosoftSQLServer中,輸入一個(gè)SQL語言的查詢語句作為操作命令:SELECT課程號(hào),課程名,學(xué)分

FROM課程

WHERE學(xué)分>5

即可在“課程”表中查詢出5個(gè)以上學(xué)分的課程的課程號(hào)、課程名和學(xué)分。

注:SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)是ISO(InternationalOrganizationforStandardization,國(guó)際標(biāo)準(zhǔn)化組織)命名的國(guó)際標(biāo)準(zhǔn)數(shù)據(jù)庫語言,用于組織、管理關(guān)系數(shù)據(jù)庫以及存取、查詢或更新其中的數(shù)據(jù)。目前主要的RDBMS(RelationshipDataBaseManagementSystem,關(guān)系數(shù)據(jù)庫管理系統(tǒng))都支持某種形式的SQL語言并且大部分產(chǎn)品都遵守ANSISQL89標(biāo)準(zhǔn)。(4)修改記錄?,F(xiàn)實(shí)世界中的事物是不斷變化的,相應(yīng)數(shù)據(jù)庫中的數(shù)據(jù)也應(yīng)該隨之而變。例如,一所大學(xué)中每年都有畢業(yè)的學(xué)生和新入學(xué)的學(xué)生,數(shù)據(jù)庫中的學(xué)生表就應(yīng)該隨時(shí)調(diào)整。因此,相關(guān)人員應(yīng)該按照DBMS所提供的方法(SQL語言的數(shù)據(jù)操縱語句或圖形化用戶操作界面)來進(jìn)行調(diào)整。1.2.1數(shù)據(jù)庫系統(tǒng)組成

數(shù)據(jù)庫系統(tǒng)是一種按照數(shù)據(jù)庫方式存儲(chǔ)、管理數(shù)據(jù)并向用戶或應(yīng)用系統(tǒng)提供數(shù)據(jù)支持的計(jì)算機(jī)應(yīng)用系統(tǒng),是存儲(chǔ)數(shù)據(jù)的介質(zhì)、數(shù)據(jù)處理的對(duì)象和管理系統(tǒng)的集合體。它通常包括存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫、操縱數(shù)據(jù)的應(yīng)用程序以及數(shù)據(jù)庫管理員等,且需在DBMS軟件的支持下工作,如圖1-4所示。1.2數(shù)據(jù)庫系統(tǒng)組成與結(jié)構(gòu)圖1-4數(shù)據(jù)庫系統(tǒng)

1.?dāng)?shù)據(jù)庫

數(shù)據(jù)庫是一個(gè)單位或組織按照某種特定方式存儲(chǔ)在計(jì)算機(jī)內(nèi)的數(shù)據(jù)的集合,如工廠中的產(chǎn)品數(shù)據(jù)、政府部門的計(jì)劃統(tǒng)計(jì)數(shù)據(jù)、醫(yī)院中的病人與病歷數(shù)據(jù)等。這個(gè)數(shù)據(jù)集合按照能夠反映出數(shù)據(jù)的自然屬性、實(shí)際聯(lián)系以及應(yīng)用處理的要求的方式組織成一個(gè)有機(jī)的整體進(jìn)行存儲(chǔ),并提供給該組織或單位內(nèi)的所有應(yīng)用系統(tǒng)(或人員)共享。

應(yīng)該注意的是:數(shù)據(jù)庫中的數(shù)據(jù)是一種處理用的中間數(shù)據(jù),稱為業(yè)務(wù)數(shù)據(jù),它與輸入/輸出數(shù)據(jù)不同。當(dāng)然,可以將輸入數(shù)據(jù)轉(zhuǎn)變?yōu)闃I(yè)務(wù)數(shù)據(jù)存入數(shù)據(jù)庫中,也可以從數(shù)據(jù)庫中的數(shù)據(jù)推導(dǎo)產(chǎn)生輸出數(shù)據(jù)。

數(shù)據(jù)庫通常由兩大部分組成:一是有關(guān)應(yīng)用所需要的業(yè)務(wù)數(shù)據(jù)的集合,稱為物理數(shù)據(jù)庫,它是數(shù)據(jù)庫的主體;二是關(guān)于各級(jí)數(shù)據(jù)結(jié)構(gòu)的描述數(shù)據(jù),稱為描述數(shù)據(jù)庫,通常由一個(gè)數(shù)據(jù)字典系統(tǒng)管理。

運(yùn)行數(shù)據(jù)庫系統(tǒng)的計(jì)算機(jī)要有足夠大的內(nèi)存儲(chǔ)器、大容量磁盤等聯(lián)機(jī)存儲(chǔ)設(shè)備以及高速的數(shù)據(jù)傳輸設(shè)備,以支持對(duì)外存儲(chǔ)器的頻繁訪問,還需要有足夠數(shù)量的脫機(jī)存儲(chǔ)介質(zhì),如外接式硬盤、磁帶、可擦寫式光盤等存放數(shù)據(jù)庫備份。2.DBMS及其軟件支持系統(tǒng)

DBMS(數(shù)據(jù)庫管理系統(tǒng))是數(shù)據(jù)庫系統(tǒng)的核心。DBMS一般是通用軟件,由專門的廠家提供。DBMS負(fù)責(zé)統(tǒng)一管理和控制數(shù)據(jù)庫,執(zhí)行用戶或應(yīng)用系統(tǒng)交給的定義、構(gòu)造和操縱數(shù)據(jù)庫的任務(wù),并將執(zhí)行的結(jié)果提供給用戶或應(yīng)用系統(tǒng)。

DBMS是在操作系統(tǒng)(可能還包括某些實(shí)用程序)支持下工作的。因?yàn)橛?jì)算機(jī)系統(tǒng)的硬件和軟件資源是由操作系統(tǒng)統(tǒng)一管理的,故當(dāng)DBMS執(zhí)行分配內(nèi)存、創(chuàng)建或撤銷進(jìn)程、訪問磁盤等操作時(shí),必須通過系統(tǒng)調(diào)用請(qǐng)求操作系統(tǒng)為其服務(wù)。操作系統(tǒng)從磁盤取出來的是物理塊,對(duì)物理塊的解釋則是由DBMS完成的。數(shù)據(jù)庫系統(tǒng)中的軟件通常還包括應(yīng)用程序。數(shù)據(jù)庫應(yīng)用程序是通過DBMS訪問數(shù)據(jù)庫中的數(shù)據(jù)并向用戶提供服務(wù)的程序,簡(jiǎn)單地說,它是允許用戶插入、刪除和修改并報(bào)告數(shù)據(jù)庫中數(shù)據(jù)的程序。這類程序是由程序員通過程序設(shè)計(jì)語言或某些軟件開發(fā)工具(如PowerBuilder、Delphi、VisualBasic、VisualC++?等),按照用戶的要求編寫的。

DBMS將數(shù)據(jù)和操縱數(shù)據(jù)的程序隔離開來,程序必須與DBMS接口才能對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢、插入、刪除、更新等操作。因而可以由DBMS來集中實(shí)施安全標(biāo)準(zhǔn),以保證數(shù)據(jù)的一致性和完整性。另外,用戶不必考慮數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),可以將注意力集中在數(shù)據(jù)本身的組織和使用上。

3.人員

開發(fā)、管理和使用數(shù)據(jù)庫系統(tǒng)的人員主要有數(shù)據(jù)庫管理員(DBA)、系統(tǒng)分析員、數(shù)據(jù)庫設(shè)計(jì)人員、應(yīng)用程序員和最終用戶。

(1)數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)。對(duì)于較大規(guī)模的數(shù)據(jù)庫系統(tǒng)來說,必須有人員全面負(fù)責(zé)建立、維護(hù)和管理數(shù)據(jù)庫系統(tǒng),承擔(dān)這種任務(wù)的人員稱為DBA。DBA是控制數(shù)據(jù)整體結(jié)構(gòu)的人,負(fù)責(zé)保護(hù)和控制數(shù)據(jù),使數(shù)據(jù)庫能為任何有權(quán)使用的人所共享。DBA的職責(zé)包括:定義并存儲(chǔ)數(shù)據(jù)庫的內(nèi)容,監(jiān)督和控制數(shù)據(jù)庫的使用,負(fù)責(zé)數(shù)據(jù)庫的日常維護(hù),必要時(shí)重新組織和改進(jìn)數(shù)據(jù)庫等。(2)系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計(jì)人員。系統(tǒng)分析員負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,要與用戶及DBA配合,確定系統(tǒng)的軟件和硬件配置,并參與數(shù)據(jù)庫的概要設(shè)計(jì)。

數(shù)據(jù)庫設(shè)計(jì)人員負(fù)責(zé)確定數(shù)據(jù)庫中的數(shù)據(jù),并在用戶需求調(diào)查和系統(tǒng)分析的基礎(chǔ)上,設(shè)計(jì)出適用于各種不同種類的用戶需求的數(shù)據(jù)庫。在很多情況下,數(shù)據(jù)庫設(shè)計(jì)人員是由DBA擔(dān)任的。(3)應(yīng)用程序員。應(yīng)用程序員具備一定的計(jì)算機(jī)專業(yè)知識(shí),可以編寫應(yīng)用程序來存取并處理數(shù)據(jù)庫中的數(shù)據(jù)。例如,庫存盤點(diǎn)、工資等處理通常都是由這類人員完成的。

(4)最終用戶。最終用戶指的是為了查詢、更新以及產(chǎn)生報(bào)表而訪問數(shù)據(jù)庫的人員,數(shù)據(jù)庫主要是應(yīng)他們的需求而存在的。最終用戶可分為以下三類:

●偶然用戶:這類用戶主要包括一些中層或高層管理者或其他偶爾瀏覽數(shù)據(jù)庫的人員。他們通過終端設(shè)備,使用簡(jiǎn)便的查詢方法(命令或菜單項(xiàng)、工具按鈕)來訪問數(shù)據(jù)庫。他們對(duì)數(shù)據(jù)庫的操作以數(shù)據(jù)檢索為主,例如,詢問庫存物資的金額、某個(gè)人的月薪等等?!窈?jiǎn)單用戶:這類用戶較多,銀行職員、旅館總臺(tái)服務(wù)員、航空公司訂票人員等都屬于這類用戶,其主要職責(zé)就是經(jīng)常性地查詢和修改數(shù)據(jù)庫。他們一般都是通過應(yīng)用程序員設(shè)計(jì)的應(yīng)用系統(tǒng)(程序)來使用數(shù)據(jù)庫的。

●復(fù)雜用戶:包括工程師、科技工作者、經(jīng)濟(jì)分析專家等資深的最終用戶。他們對(duì)自己工作范圍內(nèi)的相關(guān)知識(shí)了解得較全面,且熟悉DBMS的各種功能,能夠直接使用數(shù)據(jù)庫語言,甚至有能力編寫自己的程序來訪問數(shù)據(jù)庫,完成復(fù)雜的應(yīng)用任務(wù)。1.2.2數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)

從DBMS的角度看,數(shù)據(jù)庫系統(tǒng)有一個(gè)嚴(yán)謹(jǐn)?shù)捏w系結(jié)構(gòu),從而保證其功能得以實(shí)現(xiàn)。根據(jù)ANSI/SPARS(美國(guó)標(biāo)準(zhǔn)化協(xié)會(huì)和標(biāo)準(zhǔn)計(jì)劃與需求委員會(huì))提出的建議,數(shù)據(jù)庫系統(tǒng)是三級(jí)模式和二級(jí)映像結(jié)構(gòu)的,如圖1-5所示。圖1-5數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)

1.三種模式

數(shù)據(jù)庫的基本結(jié)構(gòu)是由用戶級(jí)、概念級(jí)和物理級(jí)組成的三級(jí)結(jié)構(gòu),分別稱為概念模式、外模式和內(nèi)模式。

(1)概念模式。概念模式簡(jiǎn)稱模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,即數(shù)據(jù)庫所采用的數(shù)據(jù)模型。一個(gè)數(shù)據(jù)庫只有一個(gè)概念模式,它是由數(shù)據(jù)庫設(shè)計(jì)者綜合所有用戶數(shù)據(jù),按照統(tǒng)一的觀點(diǎn)構(gòu)造而成的。在定義模式時(shí),不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),例如,數(shù)據(jù)記錄的數(shù)據(jù)項(xiàng)組成,數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等,而且要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的安全性、完整性要求。DBMS提供了模式描述語言DDL(參見1.4節(jié))來定義概念模式。(2)外模式。外模式又稱為子模式,是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與具體的應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。

外模式通常是概念模式的子集,一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式。外模式的描述隨用戶的應(yīng)用需求、處理數(shù)據(jù)的方式的不同而不同,即使是來自模式中的同樣的數(shù)據(jù),在外模式中的結(jié)構(gòu)、類型、長(zhǎng)度、保密級(jí)別等都可以不同。另外,同一外模式也可為某一用戶的多個(gè)應(yīng)用系統(tǒng)所使用,但一個(gè)應(yīng)用程序只能使用一個(gè)外模式。(3)內(nèi)模式。內(nèi)模式又稱為存儲(chǔ)模式,是數(shù)據(jù)的物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。例如,記錄是順序存儲(chǔ)還是按B樹結(jié)構(gòu)或按hash(散列)方式存儲(chǔ);索引按什么方式組織;數(shù)據(jù)是否壓縮存儲(chǔ),是否加密;數(shù)據(jù)的存儲(chǔ)記錄結(jié)構(gòu)有什么規(guī)定等。DBMS提供了內(nèi)模式描述語言(參見1.4節(jié))來定義內(nèi)模式。

一個(gè)數(shù)據(jù)庫只有一個(gè)內(nèi)模式。從形式上來看,一個(gè)數(shù)據(jù)庫就是存放在外存儲(chǔ)器上的許多物理文件的集合。2.二級(jí)映像

數(shù)據(jù)庫系統(tǒng)的三級(jí)模式是數(shù)據(jù)的三個(gè)抽象級(jí)別,而數(shù)據(jù)實(shí)際上只存在于物理層。在一個(gè)基于三層模式結(jié)構(gòu)的DBMS中,每個(gè)用戶實(shí)際上只需要關(guān)注自己的外模式。因此,DBMS必須將外模式中的用戶請(qǐng)求轉(zhuǎn)換成概念模式中的請(qǐng)求,然后再將其轉(zhuǎn)換成內(nèi)模式中的請(qǐng)求,并根據(jù)這一請(qǐng)求完成在數(shù)據(jù)庫中的操作。例如,如果用戶的請(qǐng)求是檢索數(shù)據(jù),則先要從數(shù)據(jù)庫中抽取數(shù)據(jù),然后轉(zhuǎn)換成與用戶的外部視圖相匹配的格式。為了實(shí)現(xiàn)三個(gè)層次之間的聯(lián)系和轉(zhuǎn)換,DBMS提供了兩層映像:外模式/模式映象和模式/內(nèi)模式映象。

注:所謂映像是用來指定映像的雙方如何進(jìn)行數(shù)據(jù)轉(zhuǎn)換的規(guī)則。

(1)外模式/模式映像。一個(gè)模式可以對(duì)應(yīng)多個(gè)外模式,每個(gè)外模式在數(shù)據(jù)庫系統(tǒng)中都有一個(gè)外模式/模式映像,它定義了這個(gè)外模式和模式之間的對(duì)應(yīng)關(guān)系。映像的定義通常包含在各自外模式的描述中。當(dāng)模式改變(如增加新的關(guān)系、屬性、改變屬性的數(shù)據(jù)類型等)時(shí),DBA會(huì)相應(yīng)地改變各個(gè)外模式/模式映像,使得外模式保持不變,從而依據(jù)外模式編寫的應(yīng)用程序不必修改,這就保證了數(shù)據(jù)與程序的邏輯獨(dú)立性。(2)模式/內(nèi)模式映像。數(shù)據(jù)庫中只有一個(gè)模式,也只有一個(gè)內(nèi)模式,故模式/內(nèi)模式映像是唯一的,它定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的關(guān)系。模式/內(nèi)模式映像定義通常包含在模式描述中。當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)發(fā)生改變時(shí),DBA會(huì)相應(yīng)地改變模式/內(nèi)模式映像,使得模式保持不變,也不必修改應(yīng)用程序,這就保證了數(shù)據(jù)與程序的物理獨(dú)立性。

用戶根據(jù)外模式來操縱數(shù)據(jù)庫時(shí),數(shù)據(jù)庫系統(tǒng)通過外模式/模式映像使用戶數(shù)據(jù)庫與概念數(shù)據(jù)庫相聯(lián)系,又通過模式/內(nèi)模式的映像與物理數(shù)據(jù)庫相聯(lián)系,從而使用戶實(shí)際使用物理數(shù)據(jù)庫中的數(shù)據(jù)。實(shí)際的轉(zhuǎn)換工作是由DBMS完成的。1.2.3數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)

1.分時(shí)系統(tǒng)環(huán)境下的集中式數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫技術(shù)誕生于分時(shí)計(jì)算機(jī)系統(tǒng)流行之際,因而早期的數(shù)據(jù)庫系統(tǒng)是以分時(shí)系統(tǒng)為基礎(chǔ)的。從數(shù)據(jù)庫的應(yīng)用來看,數(shù)據(jù)是一個(gè)企業(yè)或事業(yè)單位的共享資源,數(shù)據(jù)庫系統(tǒng)要面向全單位提供服務(wù);從技術(shù)條件來看,數(shù)據(jù)庫系統(tǒng)要求較高的CPU運(yùn)算速度和較大容量的內(nèi)存和外存,而當(dāng)時(shí)只有價(jià)格昂貴的大中型機(jī)或高檔小型機(jī)才能滿足要求。所以,早期的數(shù)據(jù)庫只能集中建立在本單位的主要計(jì)算機(jī)上,用戶通過終端或遠(yuǎn)距離終端分時(shí)訪問數(shù)據(jù)庫系統(tǒng)。在這種系統(tǒng)中,不但數(shù)據(jù)是集中的,數(shù)據(jù)的管理也是集中的,數(shù)據(jù)庫系統(tǒng)的所有功能,從各種各樣的用戶接口到DBMS的核心都集中在DBMS所在的計(jì)算機(jī)上,終端只是人—機(jī)交互的設(shè)備,不分擔(dān)數(shù)據(jù)庫系統(tǒng)的處理功能,如圖1-6所示。圖1-6分時(shí)系統(tǒng)環(huán)境下的集中式數(shù)據(jù)庫系統(tǒng)

2.微型計(jì)算機(jī)上的單用戶數(shù)據(jù)庫系統(tǒng)

進(jìn)入20世紀(jì)70年代之后,微型計(jì)算機(jī)出現(xiàn)并迅速普及,由于微機(jī)在性能價(jià)格比上的優(yōu)勢(shì),將計(jì)算機(jī)處理能力集中在少數(shù)大中型機(jī)或高檔小型機(jī)上不再是經(jīng)濟(jì)合理的方案,因而數(shù)據(jù)庫也移植到了微機(jī)上。1979年,Ashton-Tate公司開發(fā)出了dBASE數(shù)據(jù)庫管理系統(tǒng),由于極為成功的促銷策略,dBASE系統(tǒng)的用戶和數(shù)量迅速增長(zhǎng),開創(chuàng)了微機(jī)數(shù)據(jù)庫技術(shù)應(yīng)用的先河。此后,其他廠商紛紛將自己的產(chǎn)品從大型機(jī)移植到微機(jī)上,如Oracle、Ingres等,同時(shí),有些廠商也專門為微機(jī)開發(fā)數(shù)據(jù)庫產(chǎn)品,如Paradox等。

3.網(wǎng)絡(luò)環(huán)境下的客戶/服務(wù)器數(shù)據(jù)庫系統(tǒng)

20世紀(jì)80年代中后期,計(jì)算機(jī)網(wǎng)絡(luò)開始普及,局域網(wǎng)(LocalAreaNetwork,LAN)將獨(dú)立的計(jì)算機(jī)連接起來,網(wǎng)絡(luò)上的計(jì)算機(jī)之間可以互相通信,共享各種用途的服務(wù)器,如打印服務(wù)器、文件服務(wù)器等。這就導(dǎo)致了客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)的開發(fā)。

客戶/服務(wù)器系統(tǒng)是在微機(jī)—局域網(wǎng)環(huán)境下,合理劃分任務(wù),進(jìn)行分布式處理的一種應(yīng)用系統(tǒng)結(jié)構(gòu),是解決微機(jī)大量使用卻又無力承擔(dān)所有處理任務(wù)這一矛盾的一種方案。在這種系統(tǒng)中,通過網(wǎng)絡(luò)連接在一起的各種不同種類的計(jì)算機(jī)以及其他設(shè)備分為兩個(gè)獨(dú)立的部分,即“前端”的客戶機(jī)和“后臺(tái)”的服務(wù)器,如圖1-7所示。圖1-7網(wǎng)絡(luò)環(huán)境下的客戶/服務(wù)器系統(tǒng)

4.分布式數(shù)據(jù)庫系統(tǒng)

隨著地理上分散的用戶對(duì)數(shù)據(jù)共享的需求日益增強(qiáng)以及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,在傳統(tǒng)的集中式數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)上產(chǎn)生了分布式數(shù)據(jù)庫系統(tǒng)。

分布式數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物。分布式數(shù)據(jù)庫系統(tǒng)將分別存儲(chǔ)在不同地域、分別屬于不同部門或組織機(jī)構(gòu)的多種不同規(guī)模的數(shù)據(jù)庫統(tǒng)一管理起來,使得每個(gè)用戶都可以在更大范圍內(nèi)、更靈活地訪問和處理數(shù)據(jù)。分布式數(shù)據(jù)庫系統(tǒng)適合于那些所屬各部門在地理上分散的組織機(jī)構(gòu)的事務(wù)處理,如銀行業(yè)務(wù)系統(tǒng)、飛機(jī)訂票系統(tǒng)等。在20世紀(jì)80年代中期它已有商品化產(chǎn)品問世。分布式數(shù)據(jù)庫系統(tǒng)是地域上分布、邏輯上統(tǒng)一的數(shù)據(jù)集合,是計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境中各個(gè)局部數(shù)據(jù)庫的邏輯集合,同時(shí)受分布式數(shù)據(jù)庫管理系統(tǒng)的控制和管理。分布式數(shù)據(jù)庫系統(tǒng)在邏輯上像一個(gè)集中式數(shù)據(jù)庫系統(tǒng),實(shí)際上數(shù)據(jù)存儲(chǔ)在位于不同地點(diǎn)的計(jì)算機(jī)網(wǎng)絡(luò)的各個(gè)結(jié)點(diǎn)上。每個(gè)結(jié)點(diǎn)的數(shù)據(jù)庫系統(tǒng)都有獨(dú)立處理本地事務(wù)的能力,而且各局部結(jié)點(diǎn)之間也能夠互相訪問、有效配合,以便處理更復(fù)雜的事務(wù)。用戶可以通過分布式數(shù)據(jù)庫管理系統(tǒng),使用網(wǎng)絡(luò)通信系統(tǒng)來相互傳遞數(shù)據(jù)。分布式數(shù)據(jù)庫系統(tǒng)具有高度的透明性,每臺(tái)計(jì)算機(jī)上的用戶都感覺到自己是使用集中式數(shù)據(jù)庫的唯一用戶。5.因特網(wǎng)上的數(shù)據(jù)庫

注:萬維網(wǎng)(WorldWideWeb,WWW)是因特網(wǎng)提供的一種服務(wù)。

因特網(wǎng)上的信息是標(biāo)準(zhǔn)的HTML格式,這種格式文件中的信息是固定的(靜態(tài)頁面),如果需要改變,就必須使用設(shè)計(jì)工具來修改頁面,就像修改寫好的文章一樣。在信息量大、信息更新速度快的因特網(wǎng)上,頻繁地修改需求不但造成了開發(fā)與維護(hù)網(wǎng)站的困難,而且會(huì)因?yàn)檫@種靜態(tài)Web站點(diǎn)的非交互性而影響其使用效果。如果將網(wǎng)上發(fā)布的信息數(shù)據(jù)庫化,則可實(shí)現(xiàn)網(wǎng)頁信息的動(dòng)態(tài)變化和可交互性。因?yàn)榫W(wǎng)絡(luò)數(shù)據(jù)庫可以動(dòng)態(tài)地更新數(shù)據(jù),瀏覽器上顯示的網(wǎng)頁內(nèi)容也跟隨數(shù)據(jù)庫中數(shù)據(jù)的變化而動(dòng)態(tài)地更新。1.3.1數(shù)據(jù)庫管理系統(tǒng)的功能

1.?dāng)?shù)據(jù)庫定義功能

數(shù)據(jù)庫定義也稱為數(shù)據(jù)庫描述,是對(duì)數(shù)據(jù)庫結(jié)構(gòu)的描述。利用DBMS提供的DDL(DataDefinitionLanguage,數(shù)據(jù)定義語言),可以從用戶的、概念的和物理的三個(gè)不同層次出發(fā)定義數(shù)據(jù)庫(這些定義存儲(chǔ)在數(shù)據(jù)字典中)。完成了數(shù)據(jù)庫定義之后,就可以根據(jù)概念模式和存儲(chǔ)模式的描述,把實(shí)際的數(shù)據(jù)庫存儲(chǔ)到物理存儲(chǔ)設(shè)備上,最終完成建立數(shù)據(jù)庫的工作。1.3數(shù)據(jù)庫管理系統(tǒng)

2.?dāng)?shù)據(jù)庫操縱功能

數(shù)據(jù)庫操縱是DBMS面向用戶的功能,DBMS提供了DML(DataManipulationLanguage,數(shù)據(jù)操縱語言)及其處理程序,用于接收、分析和執(zhí)行用戶對(duì)數(shù)據(jù)庫提出的各種數(shù)據(jù)操作要求(檢索、插入、刪除、更新等),完成數(shù)據(jù)處理任務(wù)。

3.?dāng)?shù)據(jù)庫運(yùn)行控制功能

數(shù)據(jù)庫控制包括執(zhí)行訪問數(shù)據(jù)庫時(shí)的安全性、完整性檢查以及數(shù)據(jù)共享的并發(fā)控制等,目的是保證數(shù)據(jù)庫的可用性和可靠性。DBMS提供以下四方面的數(shù)據(jù)控制功能:

(1)數(shù)據(jù)安全性控制功能。該功能是對(duì)數(shù)據(jù)庫的一種保護(hù)措施,目的是防止非授權(quán)用戶存取數(shù)據(jù)而造成數(shù)據(jù)泄密或破壞。例如,設(shè)置口令,確定用戶訪問密級(jí)和數(shù)據(jù)存取權(quán)限,系統(tǒng)審查通過后才執(zhí)行允許的操作。(2)數(shù)據(jù)完整性控制功能。該功能是DBMS對(duì)數(shù)據(jù)庫提供保護(hù)的另一個(gè)方面。完整性是數(shù)據(jù)的準(zhǔn)確性和一致性的測(cè)度。在將數(shù)據(jù)添加到數(shù)據(jù)庫時(shí),對(duì)數(shù)據(jù)的合法性和一致性的檢驗(yàn)將會(huì)提高數(shù)據(jù)的完整性。這種檢驗(yàn)并不一定要由DBMS來完成,但大部分DBMS都有能用于指定合法性和一致性規(guī)定并在存儲(chǔ)和修改數(shù)據(jù)時(shí)實(shí)施這些規(guī)定的機(jī)構(gòu)。

(3)并發(fā)控制功能。數(shù)據(jù)庫是提供給多個(gè)用戶共享的,用戶對(duì)數(shù)據(jù)的存取可能是并發(fā)的,即多個(gè)用戶同時(shí)使用同一個(gè)數(shù)據(jù)庫,因此DBMS應(yīng)對(duì)多用戶并發(fā)操作加以控制、協(xié)調(diào)。例如,當(dāng)一個(gè)用戶正在修改某些數(shù)據(jù)項(xiàng)時(shí),如果其他用戶同時(shí)存取,就可能導(dǎo)致錯(cuò)誤。DBMS應(yīng)對(duì)要修改的記錄采取一定的措施,如加鎖,暫時(shí)不讓其他用戶訪問,待修改完成并存盤后再開鎖。

(4)數(shù)據(jù)庫恢復(fù)功能。在數(shù)據(jù)庫運(yùn)行過程中,可能會(huì)出現(xiàn)各種故障,如停電、軟件或硬件錯(cuò)誤、操作錯(cuò)誤、人為破壞等,因此系統(tǒng)應(yīng)提供恢復(fù)數(shù)據(jù)庫的功能,如定期轉(zhuǎn)儲(chǔ)、恢復(fù)備份等,使系統(tǒng)有能力將數(shù)據(jù)庫恢復(fù)到損壞之前的某個(gè)狀態(tài)。

4.?dāng)?shù)據(jù)字典

數(shù)據(jù)庫本身是一種復(fù)雜對(duì)象,因而可將數(shù)據(jù)庫作為對(duì)象建立數(shù)據(jù)庫,數(shù)據(jù)字典(DataDictionary,DD)就是這樣的數(shù)據(jù)庫。數(shù)據(jù)字典也稱為系統(tǒng)目錄,其中存放著對(duì)數(shù)據(jù)庫結(jié)構(gòu)的描述。假設(shè)數(shù)據(jù)庫為三級(jí)結(jié)構(gòu),那么,以下內(nèi)容就應(yīng)當(dāng)包含在數(shù)據(jù)字典中:

(1)有關(guān)內(nèi)模式的文件、數(shù)據(jù)項(xiàng)及索引等信息。

(2)有關(guān)概念模式和外模式的表、屬性、屬性類型、表與表之間的聯(lián)系等模式信息,且應(yīng)易于查找屬性所在的表或表中所包含的屬性等信息。

(3)其他方面的信息,如數(shù)據(jù)庫用戶表、關(guān)于安全性的用戶權(quán)限表、公用數(shù)據(jù)庫程序及使用它們的用戶名等信息。數(shù)據(jù)字典中的數(shù)據(jù)稱為元數(shù)據(jù)(數(shù)據(jù)庫中有關(guān)數(shù)據(jù)的數(shù)據(jù))。一般來說,為了安全性,只允許DBA訪問整個(gè)數(shù)據(jù)字典而其他用戶只能訪問其中的一部分,因而DBA能用它來監(jiān)視數(shù)據(jù)庫系統(tǒng)的使用。數(shù)據(jù)庫本身也使用數(shù)據(jù)字典,例如,Oracle(關(guān)系數(shù)據(jù)庫管理系統(tǒng))的數(shù)據(jù)字典是Oracle數(shù)據(jù)庫的一部分,由Oracle系統(tǒng)建立并自動(dòng)更新。Oracle數(shù)據(jù)字典中有一些允許用戶訪問的表,用戶可從中得知自己所擁有的表(關(guān)系)、視圖、列、同義詞、數(shù)據(jù)存儲(chǔ)以及存取權(quán)限等信息。還有一些表只允許DBA訪問,如存放著所有數(shù)據(jù)的存儲(chǔ)分配情況的表和存放著所有授權(quán)用戶及其權(quán)限的表等。注:視圖是一種僅有邏輯定義的虛表,可在使用時(shí)根據(jù)其定義從其他表(包括視圖)中導(dǎo)出,但不作為一個(gè)表顯式地存儲(chǔ)在數(shù)據(jù)庫中。

在有些系統(tǒng)中,把數(shù)據(jù)字典單獨(dú)抽出自成系統(tǒng),成為一個(gè)軟件工具,使得數(shù)據(jù)字典比DBMS提供了一個(gè)更高級(jí)的用戶和數(shù)據(jù)庫之間的接口。1.3.2常見的數(shù)據(jù)庫管理系統(tǒng)

1.MicrosoftAccess

Access是微軟(Microsoft)公司于1994年推出的一種工作于Windows操作系統(tǒng)之上的桌面型關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),具有界面友好、易學(xué)易用、開發(fā)簡(jiǎn)單、接口靈活等特點(diǎn)。Access使用單一的數(shù)據(jù)庫文件來管理一個(gè)數(shù)據(jù)庫。用戶將所有業(yè)務(wù)數(shù)據(jù)分門別類地保存在不同的表中,并通過共有字段將表與表有機(jī)地關(guān)聯(lián)在一起,可以使用標(biāo)準(zhǔn)SQL語句或Access提供的圖形化界面來檢索自己所需要的數(shù)據(jù),可以使用報(bào)表以特定的版面布置來分析及打印數(shù)據(jù),還可以將數(shù)據(jù)發(fā)布到因特網(wǎng)上。

2.Oracle(大型DBMS)

Oracle是目前世界上最為流行的大型RDBMS之一,具有功能強(qiáng)、使用方便、移植性好等特點(diǎn),適用于各類計(jì)算機(jī),包括大中型機(jī)、小型機(jī)、微機(jī)和專用服務(wù)器環(huán)境等。Oracle具有許多優(yōu)點(diǎn),例如,采用標(biāo)準(zhǔn)的SQL結(jié)構(gòu)化查詢語言,具有豐富的開發(fā)工具,覆蓋開發(fā)周期的各個(gè)階段,數(shù)據(jù)安全級(jí)別高(C2級(jí),最高級(jí)),支持?jǐn)?shù)據(jù)庫的面向?qū)ο蟠鎯?chǔ),等等。Oracle適合大中型企業(yè)使用,廣泛地應(yīng)用于電子政務(wù),如電信、證券、銀行等各個(gè)領(lǐng)域。

3.SQLServer(客戶/服務(wù)器DBMS)

SQLServer是微軟公司推出的分布式RDBMS,具有典型的客戶/服務(wù)器體系結(jié)構(gòu)。SQLServer不同于適合個(gè)人計(jì)算機(jī)的桌面型DBMS,也不同于IBMDB2和Oracle這樣的大型DBMS,它所管理的數(shù)據(jù)庫是由負(fù)責(zé)數(shù)據(jù)庫管理和程序處理的“服務(wù)器”與負(fù)責(zé)界面描述和顯示的“客戶機(jī)”組成的??蛻魴C(jī)管理用戶界面、接收用戶數(shù)據(jù)、處理應(yīng)用邏輯、生成數(shù)據(jù)庫服務(wù)請(qǐng)求,將這些請(qǐng)求發(fā)送給服務(wù)器,并接收服務(wù)器返回的結(jié)果。服務(wù)器接收客戶機(jī)的請(qǐng)求、處理這些請(qǐng)求并將處理結(jié)果返回給客戶機(jī)。這種結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)適用于在由多個(gè)具有獨(dú)立處理能力的個(gè)人計(jì)算機(jī)組成的計(jì)算機(jī)網(wǎng)絡(luò)上運(yùn)行。在這種系統(tǒng)中,用戶既可以通過服務(wù)器取得數(shù)據(jù),在自己的計(jì)算機(jī)上進(jìn)行處理,也可以管理和使用與服務(wù)器無關(guān)的自己的數(shù)據(jù)庫。另外,因?yàn)镾QLServer與Access都是微軟公司的產(chǎn)品,由它們創(chuàng)建和管理的數(shù)據(jù)庫之間的數(shù)據(jù)傳遞和互相轉(zhuǎn)換十分方便。

4.MySQL(開放源代碼的DBMS)

MySQL是一種小型的分布式RDBMS,具有客戶機(jī)/服務(wù)器體系結(jié)構(gòu),是由MySQL開放式源代碼組織提供的。它可運(yùn)行在多種操作系統(tǒng)平臺(tái)上,適用于網(wǎng)絡(luò)環(huán)境,且可在因特網(wǎng)上共享。由于它追求的是簡(jiǎn)單、跨平臺(tái)、零成本和高執(zhí)行效率,因而適合于因特網(wǎng)企業(yè)(如動(dòng)態(tài)網(wǎng)站建設(shè)),許多因特網(wǎng)上的辦公和交易系統(tǒng)都采用MySQL數(shù)據(jù)庫。

5.Java數(shù)據(jù)庫

伴隨著因特網(wǎng)的發(fā)展,具有跨平臺(tái)能力以及多種其他優(yōu)良性能的Java程序設(shè)計(jì)語言流行起來,使用Java語言開發(fā)的軟件項(xiàng)目越來越多,許多公司都試圖加入這一領(lǐng)域。于是,使用Java語言編寫的面向?qū)ο驞BMS也應(yīng)運(yùn)而生。其中,JDataStore是美國(guó)Borland公司推出的純Java數(shù)據(jù)庫,主要用于J2EE平臺(tái),具有跨平臺(tái)移植性,且與Borland新一代Java開發(fā)工具JBuilder緊密結(jié)合。

1.實(shí)驗(yàn)任務(wù)與目的

(1)啟動(dòng)SQLServer。附加Northwind數(shù)據(jù)庫,即將該數(shù)據(jù)庫加載到SQLServer中。

(2)打開Northwind數(shù)據(jù)庫,觀察該數(shù)據(jù)庫中幾個(gè)主要的表并創(chuàng)建表與表之間的聯(lián)系。

(3)分離并復(fù)制Northwind數(shù)據(jù)庫。

通過本實(shí)驗(yàn),了解數(shù)據(jù)庫(關(guān)系數(shù)據(jù)庫)中數(shù)據(jù)組織的一般方式以及關(guān)系數(shù)據(jù)庫管理系統(tǒng)的用戶界面。

注:本書以SQLServer2008為例安排實(shí)驗(yàn)內(nèi)容。實(shí)驗(yàn)1觀察SQLServer數(shù)據(jù)庫

2.預(yù)備知識(shí)

(1)本實(shí)驗(yàn)涉及本章中以下內(nèi)容:

●數(shù)據(jù)庫的功能及關(guān)系數(shù)據(jù)庫的特點(diǎn)。

●數(shù)據(jù)庫組成及各主要成分的功能與特點(diǎn)。

●數(shù)據(jù)庫管理系統(tǒng)的功能及SQLServer數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn)。(2)SQLServer數(shù)據(jù)庫管理系統(tǒng)及North

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論