版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章資料庫(kù)系統(tǒng)2-1資料庫(kù)環(huán)境的四大組成元件2-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)2-3資料庫(kù)綱要(DatabaseSchema)2-4實(shí)際與邏輯資料獨(dú)立2-5資料庫(kù)系統(tǒng)的優(yōu)缺點(diǎn)2-6資料庫(kù)管理系統(tǒng)2-7資料庫(kù)管理師第2章資料庫(kù)系統(tǒng)2-1資料庫(kù)環(huán)境的四大組成元件12-1資料庫(kù)環(huán)境的四大組成元件2-1-1使用者2-1-2資料2-1-3軟體2-1-4硬體2-1資料庫(kù)環(huán)境的四大組成元件2-1-1使用者22-1資料庫(kù)環(huán)境的四大組成元件2-1資料庫(kù)環(huán)境的四大組成元件32-1-1使用者-終端使用者終端使用者(EndUsers)終端使用者(EndUsers)的主要工作是查詢或更新資料庫(kù),或是存取資料庫(kù)以產(chǎn)生所需的報(bào)表,終端使用者可以分為數(shù)種,如下所示:初級(jí)使用者(NaiveorParametricUsers)不常使用的使用者(CasualUsers)熟練使用者(SophisticatedUsers)2-1-1使用者-終端使用者終端使用者(EndUsers42-1-1使用者-資料庫(kù)設(shè)計(jì)師資料庫(kù)設(shè)計(jì)師(DatabaseDesigners)資料庫(kù)設(shè)計(jì)師精通資料庫(kù)設(shè)計(jì),其主要的工作是建立資料庫(kù)結(jié)構(gòu),判斷哪些資料需要儲(chǔ)存在資料庫(kù),和使用什麼樣的結(jié)構(gòu)來儲(chǔ)存這些資料。資料庫(kù)設(shè)計(jì)師通常是使用「資料庫(kù)設(shè)計(jì)工具」(DatabaseDesignTools)來建立資料庫(kù)結(jié)構(gòu)。2-1-1使用者-資料庫(kù)設(shè)計(jì)師資料庫(kù)設(shè)計(jì)師(Databas52-1-1使用者-資料庫(kù)管理師資料庫(kù)管理師(DatabaseAdministrator,DBA)資料庫(kù)系統(tǒng)需要一位或一組對(duì)整個(gè)系統(tǒng)十分了解的人員作為資料庫(kù)管理師,負(fù)責(zé)管理整個(gè)資料庫(kù)環(huán)境。因?yàn)橘Y料庫(kù)管理師的工作十分專業(yè),需要擁有公司管理和資料庫(kù)等電腦技術(shù)的專業(yè)知識(shí),特別適合主修資訊管理或資訊工程且擁有管理經(jīng)驗(yàn)的人員來?yè)?dān)任。2-1-1使用者-資料庫(kù)管理師資料庫(kù)管理師(Databas62-1-1使用者-系統(tǒng)分析師系統(tǒng)分析師(SystemAnalyst,SA)系統(tǒng)分析師與應(yīng)用程式設(shè)計(jì)師屬於「專業(yè)使用者」(SpecializedUsers),系統(tǒng)分析師依據(jù)終端使用者的需要,主要是指初級(jí)使用者(NaiveorParametricUsers)的需要來製定資料庫(kù)應(yīng)用程式的規(guī)格與功能。應(yīng)用程式設(shè)計(jì)師(ApplicationProgrammer)依據(jù)系統(tǒng)分析師定義的規(guī)格建立終端使用者使用的資料庫(kù)應(yīng)用程式,利用程式開發(fā)工具或指定的程式語(yǔ)言,呼叫資料庫(kù)系統(tǒng)提供的「資料庫(kù)存取函式庫(kù)」(DatabaseAccessLibrary)建立所需的資料庫(kù)應(yīng)用程式。2-1-1使用者-系統(tǒng)分析師系統(tǒng)分析師(SystemAn72-1-2資料-長(zhǎng)存資料長(zhǎng)存資料(PersistentData)資料庫(kù)儲(chǔ)存的是公司或組織的非暫時(shí)資料,這些資料是長(zhǎng)時(shí)間存在的資料,使用者以應(yīng)用程式使用介面輸入(新增、刪除或更新操作)建立的資料。從這些操作的資料可以進(jìn)一步執(zhí)行各項(xiàng)查詢和運(yùn)算,以得到使用者所需的資料。2-1-2資料-長(zhǎng)存資料長(zhǎng)存資料(PersistentD82-1-2資料-系統(tǒng)目錄系統(tǒng)目錄(SystemCatalog)系統(tǒng)目錄是由資料庫(kù)管理系統(tǒng)自動(dòng)產(chǎn)生的資料,在資料庫(kù)管理系統(tǒng)稱為「系統(tǒng)目錄」(SystemCatalog或稱為DataDictionary),其內(nèi)容是從前述的操作資料所衍生的一些資料。例如:資料庫(kù)結(jié)構(gòu)的定義資料,它是用來描述資料本身,也稱為中繼資料(Thedataaboutdata),系統(tǒng)目錄的主要用途是用來提供維護(hù)資料庫(kù)所需的資訊。2-1-2資料-系統(tǒng)目錄系統(tǒng)目錄(SystemCatal92-1-2資料-索引資料(說明)索引資料(Indexes)「索引」(Indexes)的目的是為了在資料庫(kù)儲(chǔ)存的龐大資料中能夠更快速的找到資料。索引資料是一些參考資料,這是將資料庫(kù)中特定部分(屬性)的資料預(yù)先進(jìn)行排序,並且提供「指標(biāo)」(Pointer)指向資料庫(kù)真正儲(chǔ)存資料的位置,資料庫(kù)管理系統(tǒng)使用雜湊函數(shù)(HashFunction)或B樹(B-Tree)等演算法來建立索引資料。2-1-2資料-索引資料(說明)索引資料(Indexes)102-1-2資料-索引資料(圖例)例如:在關(guān)聯(lián)式資料庫(kù)的Students關(guān)聯(lián)表,建立GPA屬性的單層有序次索引,如下圖所示:2-1-2資料-索引資料(圖例)例如:在關(guān)聯(lián)式資料庫(kù)的St112-1-2資料-交易記錄交易記錄(TransactionLog)交易記錄是資料庫(kù)管理系統(tǒng)自動(dòng)產(chǎn)生的歷史資料,可以記錄使用者在什麼時(shí)間下達(dá)什麼指令或執(zhí)行什麼操作。這些資料對(duì)於一般使用者而言,並沒有什麼用處,但是對(duì)於資料庫(kù)管理師來說,就是十分重要的參考資訊。2-1-2資料-交易記錄交易記錄(Transaction122-1-3軟體-資料庫(kù)管理系統(tǒng)(說明)資料庫(kù)管理系統(tǒng)(DBMS)資料庫(kù)管理系統(tǒng)是一組程式模組用來定義、處理和管理資料庫(kù)的資料,在此主要是指那些通用用途的資料庫(kù)管理系統(tǒng),如下圖所示:2-1-3軟體-資料庫(kù)管理系統(tǒng)(說明)資料庫(kù)管理系統(tǒng)(DB132-1-3軟體-資料庫(kù)管理系統(tǒng)(語(yǔ)言)資料庫(kù)管理系統(tǒng)語(yǔ)言(DBMSLanguages)主要可以分成二個(gè)部分,如下所示:定義部分:使用資料定義語(yǔ)言(DataDefinitionLanguage,DDL)定義資料庫(kù)的結(jié)構(gòu)。操作部分:直接使用資料操作語(yǔ)言(DataManipulationLanguage,DML)或透過應(yīng)用程式介面產(chǎn)生,就可以查詢資料庫(kù)資料或新增、刪除或更新資料庫(kù)的資料。2-1-3軟體-資料庫(kù)管理系統(tǒng)(語(yǔ)言)資料庫(kù)管理系統(tǒng)語(yǔ)言(142-1-3軟體-應(yīng)用程式應(yīng)用程式(ApplicationProgram)應(yīng)用程式是程式設(shè)計(jì)師使用開發(fā)工具或程式語(yǔ)言,所自行建立的專屬軟體。應(yīng)用程式提供使用者相關(guān)的使用介面,透過使用介面的選單或按鈕,就可以向資料庫(kù)管理系統(tǒng)下達(dá)查詢語(yǔ)言的相關(guān)指令,在取得所需資料後,顯示或產(chǎn)生所需的報(bào)表。換句話說,配合公司或組織的需求,我們可以在資料庫(kù)管理系統(tǒng)的基礎(chǔ)上,建立各種不同的應(yīng)用程式。例如:選課系統(tǒng)、人事資料系統(tǒng)、進(jìn)銷存系統(tǒng)、會(huì)計(jì)系統(tǒng)和公文系統(tǒng)等。2-1-3軟體-應(yīng)用程式應(yīng)用程式(Application152-1-3軟體-開發(fā)工具開發(fā)工具(DevelopmentTools)開發(fā)工具是用來建立資料庫(kù)和開發(fā)應(yīng)用程式。例如:資料庫(kù)設(shè)計(jì)工具、資料庫(kù)開發(fā)工具或程式語(yǔ)言的整合開發(fā)環(huán)境,它可以幫助資料庫(kù)設(shè)計(jì)師建立資料庫(kù)結(jié)構(gòu)和程式設(shè)計(jì)者快速建立應(yīng)用程式。例如:PowerBuilder、OracleDeveloper、VisualStudio.NET和VisualStuido2005等。2-1-3軟體-開發(fā)工具開發(fā)工具(Development162-1-4硬體安裝資料庫(kù)相關(guān)軟體的硬體設(shè)備,包含:主機(jī)(CPU、記憶體和網(wǎng)路卡等)、磁碟機(jī)、磁碟陣列、光碟機(jī)、磁帶機(jī)和備份裝置。整個(gè)資料庫(kù)系統(tǒng)的硬體處理架構(gòu)依其運(yùn)算方式,可以分為:集中式或分散式的主從架構(gòu)。2-1-4硬體安裝資料庫(kù)相關(guān)軟體的硬體設(shè)備,包含:主機(jī)(C172-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)2-2-1概念層2-2-2外部層2-2-3內(nèi)部層2-2-4ANSI/SPARC三層資料庫(kù)架構(gòu)的目的2-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)2-2-1182-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)-圖例2-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)-圖例192-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)-簡(jiǎn)單說明概念層(ConceptualLevel):資料庫(kù)管理師觀點(diǎn)的資料,這是資料庫(kù)儲(chǔ)存的完整資料,屬於在概念上看到的完整資料庫(kù)。外部層(ExternalLevel):一般使用者觀點(diǎn)的資料,代表不同使用者在資料庫(kù)系統(tǒng)所看見的資料,通常只是部分資料庫(kù)的資料。內(nèi)部層(InternalLevel):實(shí)際觀點(diǎn)所呈現(xiàn)的資料,這是實(shí)際資料庫(kù)儲(chǔ)存在電腦儲(chǔ)存裝置的資料。2-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)-簡(jiǎn)單說明概202-2-1概念層-說明在概念層看到的是整個(gè)資料庫(kù)儲(chǔ)存的資料,這是資料庫(kù)管理師觀點(diǎn)所看到的完整資料庫(kù)。因?yàn)樗皇歉拍钌系馁Y料庫(kù),所以並不用考量資料實(shí)際的儲(chǔ)存結(jié)構(gòu),因?yàn)檫@是內(nèi)部層(InternalLevel)的問題。2-2-1概念層-說明在概念層看到的是整個(gè)資料庫(kù)儲(chǔ)存的資料212-2-1概念層-範(fàn)例關(guān)聯(lián)式資料模型的資料庫(kù)在概念層所見的是以二維表格顯示的資料,如下圖所示:關(guān)聯(lián)式資料庫(kù)的「關(guān)聯(lián)表」(Relations)是資料庫(kù)所看到的完整資料。2-2-1概念層-範(fàn)例關(guān)聯(lián)式資料模型的資料庫(kù)在概念層所見的222-2-2外部層-說明資料庫(kù)系統(tǒng)使用者面對(duì)的是外部層,這是使用者觀點(diǎn)(UserViews)的資料,包含多種不同觀點(diǎn)的資料,例如:一間大學(xué)或技術(shù)學(xué)院,不同使用者的觀點(diǎn),如下:使用者觀點(diǎn)1:學(xué)生註冊(cè)資料使用者觀點(diǎn)2:學(xué)生選課資料使用者觀點(diǎn)3:學(xué)生成績(jī)單資料2-2-2外部層-說明資料庫(kù)系統(tǒng)使用者面對(duì)的是外部層,這是232-2-2外部層-範(fàn)例資料以不同的方式呈現(xiàn):外部層的資料如同裁縫師手上的布,可以將概念層的資料剪裁成不同衣服樣式的資料。例如:使用清單、表格或表單內(nèi)容(例如:VisualBasic的表單或HTML表單)等方式來呈現(xiàn)資料。只包含使用者有興趣的資料:外部層的資料只是部分資料庫(kù),例如:二位使用者分別看到Students關(guān)聯(lián)表的部分或?qū)С鰞?nèi)容,年齡Age是由生日計(jì)算而得。相同資料可以顯示不同格式:雖然在資料庫(kù)儲(chǔ)存的資料是單一格式,不過在顯示時(shí)可以使用不同格式。2-2-2外部層-範(fàn)例資料以不同的方式呈現(xiàn):外部層的資料如242-2-3內(nèi)部層在內(nèi)部層看到的是實(shí)際觀點(diǎn)的資料庫(kù),這是實(shí)際儲(chǔ)存在磁碟等外部?jī)?chǔ)存裝置的資料,內(nèi)部層在三層架構(gòu)中扮演資料庫(kù)管理系統(tǒng)與作業(yè)系統(tǒng)的介面。在內(nèi)部層的資料是實(shí)際儲(chǔ)存在資料庫(kù)的資料結(jié)構(gòu)或檔案組織所呈現(xiàn)的資料,例如:使用鏈結(jié)串列結(jié)構(gòu)儲(chǔ)存資料,如下圖所示:2-2-3內(nèi)部層在內(nèi)部層看到的是實(shí)際觀點(diǎn)的資料庫(kù),這是實(shí)際252-2-4ANSI/SPARC三層資料庫(kù)架構(gòu)的目的-使用者角度使用者觀點(diǎn)所見的資料是獨(dú)立的:不同使用者可以存取相同資料,只是觀點(diǎn)可能不同,但是,各觀點(diǎn)的資料是獨(dú)立的,更改觀點(diǎn)的資料,並不會(huì)影響其他使用者觀點(diǎn)的資料。使用者並不用了解實(shí)際資料的儲(chǔ)存方式:使用者的焦點(diǎn)是在處理資料本身,而不是了解到底這些資料是如何儲(chǔ)存。2-2-4ANSI/SPARC三層資料庫(kù)架構(gòu)的目的-使用者262-2-4ANSI/SPARC三層資料庫(kù)架構(gòu)的目的-資料庫(kù)管理師角度更改實(shí)際儲(chǔ)存結(jié)構(gòu)不會(huì)影響使用者觀點(diǎn)的資料:當(dāng)有全新的儲(chǔ)存結(jié)構(gòu)和索引技術(shù)時(shí),就算更改資料庫(kù)的儲(chǔ)存結(jié)構(gòu),也不會(huì)影響外部層使用者觀點(diǎn)的資料。更改概念層的完整資料庫(kù)也不會(huì)影響使用者觀點(diǎn)的資料:如果將資料庫(kù)從關(guān)聯(lián)式資料模型改為物件導(dǎo)向式資料庫(kù)模型時(shí),我們?nèi)匀豢梢燥@示完全相同的使用者觀點(diǎn)資料,並不會(huì)影響使用者看到的資料。2-2-4ANSI/SPARC三層資料庫(kù)架構(gòu)的目的-資料庫(kù)272-3資料庫(kù)綱要
(DatabaseSchema)2-3-1三層資料庫(kù)綱要2-3-2資料庫(kù)綱要間的對(duì)映
2-3資料庫(kù)綱要
(DatabaseSchema)2-3282-3資料庫(kù)綱要
(DatabaseSchema)-圖例「資料庫(kù)綱要」(DatabaseSchema)是指整個(gè)資料庫(kù)的描述,即描述整個(gè)資料庫(kù)儲(chǔ)存資料的定義資料,如下圖所示:2-3資料庫(kù)綱要
(DatabaseSchema)-圖例292-3資料庫(kù)綱要
(DatabaseSchema)-說明資料庫(kù)管理系統(tǒng)管理的資料庫(kù)可以分割成資料和描述資料的綱要(Schema),如下所示:綱要(Schema):資料描述的定義資料,對(duì)比程式語(yǔ)言的變數(shù)是資料型態(tài)(DataType),例如:C語(yǔ)言宣告成整數(shù)的age年齡變數(shù),如下圖所示:intage;資料(Data):資料本身,也就是程式語(yǔ)言的變數(shù)值,例如:年齡為20,如下所示:age=20;2-3資料庫(kù)綱要
(DatabaseSchema)-說明302-3-1三層資料庫(kù)綱要-圖例2-3-1三層資料庫(kù)綱要-圖例312-3-1三層資料庫(kù)綱要-簡(jiǎn)單說明三層資料庫(kù)綱要每一層的簡(jiǎn)單說明,如下所示:外部綱要(ExternalSchema):描述使用的資料。概念綱要(ConceptualSchema):描述資料本身的意義。內(nèi)部綱要(InternalSchema):描述儲(chǔ)存的資料。2-3-1三層資料庫(kù)綱要-簡(jiǎn)單說明三層資料庫(kù)綱要每一層的簡(jiǎn)322-3-1三層資料庫(kù)綱要-外部綱要外部綱要(ExternalSchema)外部綱要源於概念綱要,主要是描述外部層顯示的資料,每一個(gè)外部層綱要只描述資料庫(kù)的部分資料,隱藏其他部分的資料。換句話說,每一個(gè)外部層使用者觀點(diǎn)的資料都需要一個(gè)外部綱要,在一個(gè)資料庫(kù)可能擁有多個(gè)外部綱要,如下圖所示:2-3-1三層資料庫(kù)綱要-外部綱要外部綱要(Externa332-3-1三層資料庫(kù)綱要-概念綱要概念綱要(ConceptualSchema)概念綱要是描述概念層的完整資料庫(kù),這是「概念資料庫(kù)設(shè)計(jì)」(ConceptualDatabaseDesign)的結(jié)果,概念資料庫(kù)設(shè)計(jì)主要是分析使用者資訊,以便定義所需的資料項(xiàng)目,並不涉及到底是使用那一套資料庫(kù)管理系統(tǒng)。概念綱要描述完整資料庫(kù)的資料和其關(guān)聯(lián),所以資料庫(kù)只能擁有一個(gè)概念綱要,如下圖所示:2-3-1三層資料庫(kù)綱要-概念綱要概念綱要(Concept342-3-1三層資料庫(kù)綱要-內(nèi)部綱要內(nèi)部綱要(InternalSchema)內(nèi)部綱要是描述內(nèi)部層實(shí)際觀點(diǎn)的資料,定義資料的儲(chǔ)存結(jié)構(gòu)和那些資料需要建立索引,如同概念綱要,資料庫(kù)只擁有一個(gè)內(nèi)部綱要。例如:C語(yǔ)言宣告學(xué)生Students的結(jié)構(gòu),如下:structStudents{charno[5];charname[15];charaddress[40];inttelephone;structDatebirthday;structStudent*next;};2-3-1三層資料庫(kù)綱要-內(nèi)部綱要內(nèi)部綱要(Interna352-3-2資料庫(kù)綱要間的對(duì)映-說明三層資料庫(kù)綱要只是描述資料,真正的資料是儲(chǔ)存在外部?jī)?chǔ)存裝置的資料庫(kù)。當(dāng)以外部層使用者觀點(diǎn)顯示資料時(shí),也就是參考外部綱要向概念綱要請(qǐng)求資料,然後概念綱要請(qǐng)求內(nèi)部綱要從資料庫(kù)取得資料,在取得真正的資料後,資料需要進(jìn)行轉(zhuǎn)換來符合概念綱要的定義,然後再轉(zhuǎn)換成符合外部綱要的定義,最後才是外部層使用者觀點(diǎn)看到的資料,在各層間進(jìn)行的資料轉(zhuǎn)換過程,稱為「對(duì)映」(Mapping)。2-3-2資料庫(kù)綱要間的對(duì)映-說明三層資料庫(kù)綱要只是描述資362-3-2資料庫(kù)綱要間的對(duì)映-圖例2-3-2資料庫(kù)綱要間的對(duì)映-圖例372-3-2資料庫(kù)綱要間的對(duì)映-種類各層綱要間的對(duì)映主要有兩種:外部與概念對(duì)映(External/ConceptualMapping):所有外部綱要都是對(duì)映到概念綱要,以便資料庫(kù)管理系統(tǒng)知道如何將外部層的資料連結(jié)到那一部分的概念綱要。例如:在外部綱要(S_No,Name,Age),S_No是對(duì)映到概念綱要的No,Age是從概念綱要的Birthday運(yùn)算而得。概念與內(nèi)部對(duì)映(Conceptual/InternalMapping):概念綱要對(duì)映到內(nèi)部綱要的關(guān)聯(lián),以便資料庫(kù)管理系統(tǒng)可以找到實(shí)際儲(chǔ)存裝置的記錄資料後,建立概念綱要的邏輯結(jié)構(gòu)。2-3-2資料庫(kù)綱要間的對(duì)映-種類各層綱要間的對(duì)映主要有兩382-4實(shí)體與邏輯資料獨(dú)立2-4-1資料獨(dú)立的基礎(chǔ)2-4-2邏輯資料獨(dú)立2-4-3實(shí)體資料獨(dú)立2-4實(shí)體與邏輯資料獨(dú)立2-4-1資料獨(dú)立的基礎(chǔ)392-4-1資料獨(dú)立的基礎(chǔ)-說明三層資料庫(kù)綱要的主要目的是為了達(dá)成「資料獨(dú)立」(DataIndependence),也就是說上層的綱要並不會(huì)受到下層綱要的影響,當(dāng)下層綱要更改時(shí),也不會(huì)影響到上層綱要。與資料獨(dú)立相反的術(shù)語(yǔ)是「資料相依」(DataDependence)。例如:使用C語(yǔ)言建立「堆疊」(Stacks)資料結(jié)構(gòu),如下圖所示:2-4-1資料獨(dú)立的基礎(chǔ)-說明三層資料庫(kù)綱要的主要目的是為402-4-1資料獨(dú)立的基礎(chǔ)-種類三層資料庫(kù)綱要一共擁有兩種資料獨(dú)立:外部與概念對(duì)映的邏輯資料獨(dú)立(LogicalDataIndependence)。概念與內(nèi)部對(duì)映的實(shí)體資料獨(dú)立(PhysicalDataIndependence)。2-4-1資料獨(dú)立的基礎(chǔ)-種類三層資料庫(kù)綱要一共擁有兩種資412-4-2邏輯資料獨(dú)立-圖例2-4-2邏輯資料獨(dú)立-圖例422-4-2邏輯資料獨(dú)立-說明當(dāng)更改概念綱要,例如:新增或刪除實(shí)體、屬性或關(guān)聯(lián)性,並不用同時(shí)更改存在的外部綱要或重寫程式碼,因?yàn)榭梢酝高^外部與概念對(duì)映來達(dá)成邏輯資料獨(dú)立。每當(dāng)資料庫(kù)需要更改概念綱要時(shí),只需配合修改外部與概念對(duì)映的定義,就可以在不更改存在的外部綱要下,取得相同使用者觀點(diǎn)的資料。2-4-2邏輯資料獨(dú)立-說明當(dāng)更改概念綱要,例如:新增或刪432-4-3實(shí)體資料獨(dú)立-圖例2-4-3實(shí)體資料獨(dú)立-圖例442-4-3實(shí)體資料獨(dú)立-說明當(dāng)更改內(nèi)部綱要,例如:使用不同的檔案組織或儲(chǔ)存結(jié)構(gòu),並不用更改概念綱要和外部綱要,因?yàn)榭梢酝高^概念與內(nèi)部對(duì)映來達(dá)成實(shí)體資料獨(dú)立。每當(dāng)資料庫(kù)需要更改內(nèi)部綱要時(shí),只需配合修改概念與內(nèi)部對(duì)映的定義,就可以完全不動(dòng)到概念綱要和外部綱要。2-4-3實(shí)體資料獨(dú)立-說明當(dāng)更改內(nèi)部綱要,例如:使用不同452-5資料庫(kù)系統(tǒng)的優(yōu)缺點(diǎn)2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)2-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)2-5資料庫(kù)系統(tǒng)的優(yōu)缺點(diǎn)2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)462-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-1整合的資料管理:相關(guān)資料檔案是集中管理,不像檔案處理系統(tǒng),需要額外操作或程序來處理位在不同檔案的資料。資料共享:資料庫(kù)的資料可以由多人共享,允許多人同時(shí)存取資料庫(kù),只需透過網(wǎng)路或Internet,就算位在世界各地都可以存取資料庫(kù)的資料。減少資料重複(DataRedundancy):不同於檔案處理系統(tǒng)將資料分割成多個(gè)檔案來儲(chǔ)存,資料庫(kù)系統(tǒng)集中管理資料庫(kù)的資料,可以大幅降低資料重複的可能性。2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-1整合的資料管理:相關(guān)資料檔案472-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-2維持資料的一致性(DataConsistency):因?yàn)橘Y料庫(kù)系統(tǒng)可以減少資料重複,再加上資料庫(kù)管理系統(tǒng)可以檢查完整性限制條件(IntegrityConstraints),不只可以保證輸入資料的正確,還可以維持資料的一致。資料獨(dú)立(DataIndependence):在檔案處理系統(tǒng)存取資料需要了解詳細(xì)的資料結(jié)構(gòu),資料庫(kù)管理系統(tǒng)提供資料獨(dú)立,換句話說,如果資料結(jié)構(gòu)或存取方式改變,並不會(huì)影響應(yīng)用程式的執(zhí)行,例如:學(xué)號(hào)從5碼改為6碼,並不需要更改應(yīng)用程式的程式碼。2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-2維持資料的一致性(Data482-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-3提供單一介面和語(yǔ)言存取資料:資料庫(kù)系統(tǒng)提供4GL的資料庫(kù)語(yǔ)言存取資料庫(kù)。例如:SQL語(yǔ)言,或是透過應(yīng)用程式的操作介面存取資料,可以隱藏資料庫(kù)管理系統(tǒng)的實(shí)際資料存取方式。更多的資料保密、安全管理和控制能力:資料庫(kù)系統(tǒng)提供資料保密、使用者存取權(quán)限和資料存取的控制,可以強(qiáng)迫達(dá)成標(biāo)準(zhǔn)化的資料管理,例如:標(biāo)準(zhǔn)的文件格式或不同層級(jí)的資料存取。提供多種觀點(diǎn)的資料:因?yàn)橘Y料庫(kù)系統(tǒng)是由多人共享,每位使用者可以分別取得所需的資料,而且以不同的觀點(diǎn)來符合其需求。例如:同樣是教授,它可以是學(xué)生的老師,也可以是學(xué)校的員工。2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-3提供單一介面和語(yǔ)言存取資料:492-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-4支援交易管理(TransactionManagement):資料庫(kù)系統(tǒng)提供交易管理和並行處理,可以處理商業(yè)交易,保障交易進(jìn)行的正確無誤。具高可靠性(Reliability):資料庫(kù)系統(tǒng)十分可靠,提供備份與回復(fù)功能來進(jìn)一步保障資料的安全,在出現(xiàn)狀況時(shí),可以回復(fù)資料庫(kù)系統(tǒng)的資料。降低軟體開發(fā)的費(fèi)用:直接選擇現(xiàn)成的資料庫(kù)管理系統(tǒng),然後在管理系統(tǒng)下開發(fā)所需的資料庫(kù)系統(tǒng),而不用重頭開發(fā)整個(gè)資料庫(kù)系統(tǒng)。2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-4支援交易管理(Transac502-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-1龐大的額外費(fèi)用:建構(gòu)資料庫(kù)系統(tǒng)需要升級(jí)電腦硬體和軟體環(huán)境,一套企業(yè)永續(xù)經(jīng)營(yíng)的資料庫(kù)系統(tǒng),包含網(wǎng)路建置,硬體和軟體升級(jí),將會(huì)是一筆相當(dāng)龐大的額外預(yù)算,有可能未蒙其利,先受其害,造成公司財(cái)務(wù)的負(fù)擔(dān)。資料轉(zhuǎn)換的成本:各部門的資料都需要轉(zhuǎn)換成資料庫(kù)結(jié)構(gòu),以便存入資料庫(kù),這不只是資訊部門的一項(xiàng)大工程,而且需要全公司各部門人員的充分支援。2-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-1龐大的額外費(fèi)用:建構(gòu)資料庫(kù)系512-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-2安全管理的漏洞:雖然資料庫(kù)擁有安全管理能力,但是人為錯(cuò)誤或非專業(yè)人員的控管,資料共享的優(yōu)點(diǎn),反而容易造成人為的安全問題,例如:沒有取消離職員工的帳號(hào),增加公司重要資料被竊取的機(jī)會(huì)。大幅更改作業(yè)流程:資料庫(kù)系統(tǒng)可能大幅更改現(xiàn)有公司的作業(yè)流程,使用者不只需要熟悉全新的應(yīng)用程式操作,還需要適應(yīng)新的資料處理流程,如此可能產(chǎn)生額外的人力支援和不合作的使用者,加重資訊部門的負(fù)擔(dān)和責(zé)任。2-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-2安全管理的漏洞:雖然資料庫(kù)擁522-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-3系統(tǒng)風(fēng)險(xiǎn)增加:資料庫(kù)系統(tǒng)使用集中方式管理資料,一旦系統(tǒng)停擺,將會(huì)讓公司蒙受重大損失。資料庫(kù)系統(tǒng)可能因?yàn)殡娔X病毒、天災(zāi)、硬體故障或人為操作錯(cuò)誤等情況造成系統(tǒng)癱瘓,所以資料庫(kù)系統(tǒng)在建置時(shí),就需考量備援系統(tǒng)或額外的保護(hù)設(shè)備,例如:不斷電系統(tǒng)(Un-interruptPowerSystems)防止不預(yù)警的停電。如果是一套全年無休持續(xù)運(yùn)作的NonStop資料庫(kù)系統(tǒng),還需要準(zhǔn)備異地備援系統(tǒng),以免公司主機(jī)遭遇地震或火災(zāi)受損時(shí),仍然可以使用位在其他地方的資料庫(kù)系統(tǒng),維持公司的正常運(yùn)作。2-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-3系統(tǒng)風(fēng)險(xiǎn)增加:資料庫(kù)系統(tǒng)使用532-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-4人為風(fēng)險(xiǎn)增加:事實(shí)上,人為錯(cuò)誤和破壞才是資料庫(kù)系統(tǒng)的最大敵人,如果資料庫(kù)系統(tǒng)設(shè)計(jì)錯(cuò)誤,一旦人為的資料輸入錯(cuò)誤,小則只是系統(tǒng)受損,大則錯(cuò)誤的資料,可能造成決策錯(cuò)誤和管理作業(yè)上的混亂。更進(jìn)一步,如果資訊部門有不肖人員(或駭客),蓄意進(jìn)行破壞,集中管理的資料庫(kù)系統(tǒng),反而成為最佳的攻擊目標(biāo),所以資料庫(kù)系統(tǒng)除了系統(tǒng)管理外,相關(guān)人員的忠誠(chéng)管理也是一項(xiàng)重要的工作。2-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-4人為風(fēng)險(xiǎn)增加:事實(shí)上,人為錯(cuò)542-6資料庫(kù)管理系統(tǒng)DBMS2-6-1資料庫(kù)管理系統(tǒng)的基本功能2-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)2-6-3常見的資料庫(kù)管理系統(tǒng)2-6資料庫(kù)管理系統(tǒng)DBMS2-6-1資料庫(kù)管理系統(tǒng)的基552-6資料庫(kù)管理系統(tǒng)DBMS「資料庫(kù)管理系統(tǒng)」(DatabaseManagementSystem,DBMS)從字面來說,是一套管理資料庫(kù)的軟體系統(tǒng),它是由一組程式模組負(fù)責(zé)組織、管理、儲(chǔ)存和讀取資料庫(kù)系的資料,使用者對(duì)於資料庫(kù)的任何操作,都一定需要透過資料庫(kù)管理系統(tǒng)來處理。2-6資料庫(kù)管理系統(tǒng)DBMS「資料庫(kù)管理系統(tǒng)」(Datab562-6-1資料庫(kù)管理系統(tǒng)的基本功能-資料管理資料管理(DataManagement)資料庫(kù)管理系統(tǒng)的最基本功能是資料管理,管理資料庫(kù)儲(chǔ)存的各種資料,包含:資料檔、系統(tǒng)目錄、索引資料、備份檔(資料庫(kù)管理系統(tǒng)備份資料庫(kù)時(shí)建立的檔案)和異動(dòng)記錄,如下圖所示:2-6-1資料庫(kù)管理系統(tǒng)的基本功能-資料管理資料管理(Da572-6-1資料庫(kù)管理系統(tǒng)的基本功能-資料庫(kù)管理系統(tǒng)語(yǔ)言資料庫(kù)管理系統(tǒng)語(yǔ)言(DBMSLanguages)資料庫(kù)管理系統(tǒng)提供第4代語(yǔ)言(4GL),可以讓使用者定義、查詢或存取資料,資料庫(kù)管理系統(tǒng)語(yǔ)言可以分成兩大類,如下所示:資料定義語(yǔ)言DDL(DataDefinitionLanguage):這個(gè)語(yǔ)言的主要目的是建立資料庫(kù)綱要(DatabaseSchema),其編譯後的指令敘述是儲(chǔ)存在系統(tǒng)目錄(SystemCatalog),使用者只需使用此語(yǔ)言就可以建立資料庫(kù)綱要。資料操作語(yǔ)言DML(DataManipulationLanguage):這個(gè)語(yǔ)言的指令敘述可以讓使用者存取和操作資料庫(kù)的資料,這是使用者與資料庫(kù)管理系統(tǒng)間溝通的語(yǔ)言。2-6-1資料庫(kù)管理系統(tǒng)的基本功能-資料庫(kù)管理系統(tǒng)語(yǔ)言資料582-6-1資料庫(kù)管理系統(tǒng)的基本功能-安全管理安全管理(SecurityManagement)資料庫(kù)儲(chǔ)存的資料屬於使用者共享的資料,所以資料庫(kù)管理系統(tǒng)需要提供使用者安全管理,以避免使用者不當(dāng)使用資料庫(kù)的資料。安全管理通常是指定使用者密碼(Password)來授予存取權(quán)限的控制(AccessControl),常用的方式有兩種,如下所示:自由選擇存取控制(DiscretionaryAccessControl,DAC):授予或取消使用者擁有新增、刪除、更新或修改資料的權(quán)限。強(qiáng)制存取控制(MandatoryAccessControl,MAC):將資料和使用者分類成不同的安全層級(jí),使用者只能存取授予安全層級(jí)的資料。2-6-1資料庫(kù)管理系統(tǒng)的基本功能-安全管理安全管理(Se592-6-1資料庫(kù)管理系統(tǒng)的基本功能-備份與回復(fù)管理備份與回復(fù)管理(BackupandRecoverManagement)資料庫(kù)備份是將資料庫(kù)的資料儲(chǔ)存到備份裝置,例如:磁帶機(jī)或可讀寫光碟機(jī),資料庫(kù)管理師負(fù)責(zé)定期備份資料庫(kù)。當(dāng)突發(fā)狀況產(chǎn)生時(shí),因?yàn)橘Y料庫(kù)管理系統(tǒng)會(huì)自動(dòng)產(chǎn)生交易記錄(TransactionLog),可以使用此記錄了解交易(Transaction)的狀態(tài),回復(fù)程序可以參考交易記錄正確的回存資料。2-6-1資料庫(kù)管理系統(tǒng)的基本功能-備份與回復(fù)管理備份與回602-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理1異動(dòng)管理(TransactionManagement)資料庫(kù)系統(tǒng)通常都會(huì)支援商業(yè)用途,而商業(yè)系統(tǒng)架構(gòu)的基礎(chǔ)是商業(yè)交易,這些商業(yè)交易的操作需要一併執(zhí)行,視為一個(gè)無法分割的單位。整個(gè)過程對(duì)於資料庫(kù)來說是一個(gè)「交易」(Transaction)。2-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理1異動(dòng)管理(T612-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理2例如:從帳戶A匯款到帳戶B,如下圖所示:2-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理2例如:從帳戶622-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理3交易成功是指需要滿足四項(xiàng)基本的交易屬性,以英文字頭的縮寫為ACID交易,如下所示:?jiǎn)卧裕ˋtomicity):將交易過程的每個(gè)操作都視為同一個(gè)工作,不是全部執(zhí)行完,就是通通不執(zhí)行。一致性(Consistency):交易會(huì)更改資料庫(kù)的資料,不過在交易之前和之後,資料庫(kù)的資料仍然需要滿足完整性限制條件,維持資料的一致性。隔離性(Isolation):雖然多個(gè)交易是並行處理,不過各交易仍然是獨(dú)立的依序執(zhí)行,任何一個(gè)交易並不會(huì)影響到其他交易的結(jié)果。持續(xù)性(Durability):當(dāng)交易完成後,資料庫(kù)資料是永久改變,如果在交易過程中發(fā)生錯(cuò)誤,執(zhí)行回復(fù)程序,回復(fù)程序仍然需要執(zhí)行完整個(gè)交易。2-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理3交易成功是指632-6-1資料庫(kù)管理系統(tǒng)的基本功能-資料完整性管理資料完整性管理(DataIntegrityManagement)資料庫(kù)管理系統(tǒng)能夠檢查新增或更新資料時(shí),不會(huì)產(chǎn)生資料不一致的資料完整性(DataIntegrity)問題。例如:帳戶餘額不能為負(fù)值,員工年齡不可超過100歲。2-6-1資料庫(kù)管理系統(tǒng)的基本功能-資料完整性管理資料完整642-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)-圖例2-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)-圖例652-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)-儲(chǔ)存管理儲(chǔ)存管理(StorageManager)儲(chǔ)存管理對(duì)於簡(jiǎn)單的資料庫(kù)管理系統(tǒng)來說,就是作業(yè)系統(tǒng)檔案管理,不過為了效率考量,資料庫(kù)管理系統(tǒng)通常會(huì)自行配置磁碟空間,將資料存入位在外部?jī)?chǔ)存裝置的資料庫(kù),例如:磁碟機(jī),或是從資料庫(kù)讀取資料,可以分為:檔案管理(FileManager)實(shí)際配置磁碟空間後將資料存入磁碟。緩衝區(qū)管理(BufferManager)負(fù)責(zé)電腦記憶體的管理。2-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)-儲(chǔ)存管理儲(chǔ)存管理(St662-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)-查詢處理模組查詢處理模組(QueryProcessor)負(fù)責(zé)處理使用者下達(dá)的查詢語(yǔ)言指令敘述,可以再細(xì)分成多個(gè)模組負(fù)責(zé)檢查語(yǔ)法、最佳化查詢指令的處理程序。查詢處理模組參考系統(tǒng)目錄的Meta-data進(jìn)行「查詢轉(zhuǎn)換」(QueryTransformation),將外部綱要查詢轉(zhuǎn)換成內(nèi)部綱要的查詢,或是使用索引加速資料查詢,如果是異動(dòng),就交給異動(dòng)管理來處理。2-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)-查詢處理模組查詢處理模672-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)-交易管理交易管理(TransactionManager)交易管理(TransactionManager)主要分為:同名的交易管理(TransactionManager)子系統(tǒng)負(fù)責(zé)處理資料庫(kù)的交易,保障資料庫(kù)商業(yè)交易的操作需要一併執(zhí)行?!告i定管理」(LockManager)也稱為「並行控制管理」(Concurrency-ControlManager)子系統(tǒng)負(fù)責(zé)資源鎖定。2-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)-交易管理交易管理(Tr682-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)-回復(fù)管理回復(fù)管理(RecoveryManager)回復(fù)管理(RecoveryManager)主要分為:「記錄管理」(LogManager)子系統(tǒng)負(fù)責(zé)記錄資料庫(kù)的所有操作,包含異動(dòng)操作的記錄,以便同名的「回復(fù)管理」(RecoveryManager)子系統(tǒng)能夠執(zhí)行回復(fù)程序,回復(fù)資料庫(kù)系統(tǒng)。2-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)-回復(fù)管理回復(fù)管理(Re692-6-3常見的資料庫(kù)管理系統(tǒng)-商用的資料庫(kù)管理系統(tǒng)SQLServer。Access。IBM的DB2。Oracle。INGRES。Sybase。Informix。InterBase。2-6-3常見的資料庫(kù)管理系統(tǒng)-商用的資料庫(kù)管理系統(tǒng)SQL702-6-3常見的資料庫(kù)管理系統(tǒng)-免費(fèi)的資料庫(kù)管理系統(tǒng)MySQL。PostgreSQL。Firebird。2-6-3常見的資料庫(kù)管理系統(tǒng)-免費(fèi)的資料庫(kù)管理系統(tǒng)MyS712-7資料庫(kù)管理師2-7-1資料庫(kù)管理師扮演的角色2-7-2資料庫(kù)管理師負(fù)責(zé)的工作2-7資料庫(kù)管理師2-7-1資料庫(kù)管理師扮演的角色722-7資料庫(kù)管理師-說明「資料庫(kù)管理師」(DatabaseAdministrator,DBA)負(fù)責(zé)和執(zhí)行一個(gè)成功資料庫(kù)環(huán)境的相關(guān)管理和維護(hù)工作。事實(shí)上,資料庫(kù)管理師負(fù)責(zé)很多工作,它可以是一個(gè)人,也可能是一個(gè)小組來?yè)?dān)任。簡(jiǎn)單的說,資料庫(kù)管理師的主要目的是維護(hù)資料庫(kù)系統(tǒng)的正常運(yùn)作,並且提供使用者存取所需的資料。2-7資料庫(kù)管理師-說明「資料庫(kù)管理師」(Database732-7資料庫(kù)管理師-所需背景資料庫(kù)管理師需要公司管理和資料庫(kù)等電腦技術(shù)的專業(yè)知識(shí),最好是主修資訊或資管科系的人員,其需要的相關(guān)電腦知識(shí),如下所示:熟悉作業(yè)系統(tǒng)操作。熟悉一種或數(shù)種資料庫(kù)管理系統(tǒng)的使用。精通資料庫(kù)系統(tǒng)提供的查詢語(yǔ)言,例如:SQLServer的Transact-SQL,Oracle的PL/SQL。資料庫(kù)設(shè)計(jì),至少需要清楚公司資料庫(kù)系統(tǒng)的資料庫(kù)綱要。對(duì)電腦硬體的網(wǎng)路架構(gòu)有一定的了解,例如:主從架構(gòu)和Internet網(wǎng)際網(wǎng)路。2-7資料庫(kù)管理師-所需背景資料庫(kù)管理師需要公司管理和資料742-7-1資料庫(kù)管理師扮演的角色2-7-1資料庫(kù)管理師扮演的角色752-7-2資料庫(kù)管理師負(fù)責(zé)的工作-維護(hù)資料庫(kù)綱要維護(hù)資料庫(kù)綱要資料庫(kù)管理師需要參與資料庫(kù)設(shè)計(jì)(DatabaseDesign),提供資料庫(kù)設(shè)計(jì)師關(guān)於概念層綱要的修改建議。資料庫(kù)管理師需要負(fù)責(zé)從資料庫(kù)使用的資料模型,例如:關(guān)聯(lián)式資料模型,和系統(tǒng)規(guī)格建立有效的資料庫(kù)設(shè)計(jì),也就是描述資料庫(kù)在外部?jī)?chǔ)存裝置的實(shí)際資料結(jié)構(gòu)。其主要的工作,如下:決定哪些資料存入資料庫(kù)。決定使用的資料結(jié)構(gòu)決定使用者觀點(diǎn)的資料。2-7-2資料庫(kù)管理師負(fù)責(zé)的工作-維護(hù)資料庫(kù)綱要維護(hù)資料庫(kù)762-7-2資料庫(kù)管理師負(fù)責(zé)的工作-資料管理資料管理資料庫(kù)管理師最主要的工作是資料管理,提供公司或組織一個(gè)集中管理的資料庫(kù),並且依據(jù)各部門的需求,提供不同觀點(diǎn)的資料,其主要的工作,如下所示:管理和維護(hù)系統(tǒng)目錄(SystemCatalog)。使用者管理和存取控制。資料安全控制(DataSecurityControl)。資料完整性檢查(DataIntegrityChecking)。轉(zhuǎn)換資料。2-7-2資料庫(kù)管理師負(fù)責(zé)的工作-資料管理資料管理772-7-2資料庫(kù)管理師負(fù)責(zé)的工作-維護(hù)和監(jiān)控資料庫(kù)管理系統(tǒng)維護(hù)和監(jiān)控資料庫(kù)管理系統(tǒng)對(duì)於資料庫(kù)管理系統(tǒng)本身,資料庫(kù)管理師負(fù)責(zé)的工作,如下所示:安裝和升級(jí)資料庫(kù)管理系統(tǒng)。監(jiān)控和調(diào)整資料庫(kù)的效能。使用者的稽核追蹤。容量計(jì)劃和選擇儲(chǔ)存裝置。備份與回復(fù)。2-7-2資料庫(kù)管理師負(fù)責(zé)的工作-維護(hù)和監(jiān)控資料庫(kù)管理系統(tǒng)78第2章資料庫(kù)系統(tǒng)2-1資料庫(kù)環(huán)境的四大組成元件2-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)2-3資料庫(kù)綱要(DatabaseSchema)2-4實(shí)際與邏輯資料獨(dú)立2-5資料庫(kù)系統(tǒng)的優(yōu)缺點(diǎn)2-6資料庫(kù)管理系統(tǒng)2-7資料庫(kù)管理師第2章資料庫(kù)系統(tǒng)2-1資料庫(kù)環(huán)境的四大組成元件792-1資料庫(kù)環(huán)境的四大組成元件2-1-1使用者2-1-2資料2-1-3軟體2-1-4硬體2-1資料庫(kù)環(huán)境的四大組成元件2-1-1使用者802-1資料庫(kù)環(huán)境的四大組成元件2-1資料庫(kù)環(huán)境的四大組成元件812-1-1使用者-終端使用者終端使用者(EndUsers)終端使用者(EndUsers)的主要工作是查詢或更新資料庫(kù),或是存取資料庫(kù)以產(chǎn)生所需的報(bào)表,終端使用者可以分為數(shù)種,如下所示:初級(jí)使用者(NaiveorParametricUsers)不常使用的使用者(CasualUsers)熟練使用者(SophisticatedUsers)2-1-1使用者-終端使用者終端使用者(EndUsers822-1-1使用者-資料庫(kù)設(shè)計(jì)師資料庫(kù)設(shè)計(jì)師(DatabaseDesigners)資料庫(kù)設(shè)計(jì)師精通資料庫(kù)設(shè)計(jì),其主要的工作是建立資料庫(kù)結(jié)構(gòu),判斷哪些資料需要儲(chǔ)存在資料庫(kù),和使用什麼樣的結(jié)構(gòu)來儲(chǔ)存這些資料。資料庫(kù)設(shè)計(jì)師通常是使用「資料庫(kù)設(shè)計(jì)工具」(DatabaseDesignTools)來建立資料庫(kù)結(jié)構(gòu)。2-1-1使用者-資料庫(kù)設(shè)計(jì)師資料庫(kù)設(shè)計(jì)師(Databas832-1-1使用者-資料庫(kù)管理師資料庫(kù)管理師(DatabaseAdministrator,DBA)資料庫(kù)系統(tǒng)需要一位或一組對(duì)整個(gè)系統(tǒng)十分了解的人員作為資料庫(kù)管理師,負(fù)責(zé)管理整個(gè)資料庫(kù)環(huán)境。因?yàn)橘Y料庫(kù)管理師的工作十分專業(yè),需要擁有公司管理和資料庫(kù)等電腦技術(shù)的專業(yè)知識(shí),特別適合主修資訊管理或資訊工程且擁有管理經(jīng)驗(yàn)的人員來?yè)?dān)任。2-1-1使用者-資料庫(kù)管理師資料庫(kù)管理師(Databas842-1-1使用者-系統(tǒng)分析師系統(tǒng)分析師(SystemAnalyst,SA)系統(tǒng)分析師與應(yīng)用程式設(shè)計(jì)師屬於「專業(yè)使用者」(SpecializedUsers),系統(tǒng)分析師依據(jù)終端使用者的需要,主要是指初級(jí)使用者(NaiveorParametricUsers)的需要來製定資料庫(kù)應(yīng)用程式的規(guī)格與功能。應(yīng)用程式設(shè)計(jì)師(ApplicationProgrammer)依據(jù)系統(tǒng)分析師定義的規(guī)格建立終端使用者使用的資料庫(kù)應(yīng)用程式,利用程式開發(fā)工具或指定的程式語(yǔ)言,呼叫資料庫(kù)系統(tǒng)提供的「資料庫(kù)存取函式庫(kù)」(DatabaseAccessLibrary)建立所需的資料庫(kù)應(yīng)用程式。2-1-1使用者-系統(tǒng)分析師系統(tǒng)分析師(SystemAn852-1-2資料-長(zhǎng)存資料長(zhǎng)存資料(PersistentData)資料庫(kù)儲(chǔ)存的是公司或組織的非暫時(shí)資料,這些資料是長(zhǎng)時(shí)間存在的資料,使用者以應(yīng)用程式使用介面輸入(新增、刪除或更新操作)建立的資料。從這些操作的資料可以進(jìn)一步執(zhí)行各項(xiàng)查詢和運(yùn)算,以得到使用者所需的資料。2-1-2資料-長(zhǎng)存資料長(zhǎng)存資料(PersistentD862-1-2資料-系統(tǒng)目錄系統(tǒng)目錄(SystemCatalog)系統(tǒng)目錄是由資料庫(kù)管理系統(tǒng)自動(dòng)產(chǎn)生的資料,在資料庫(kù)管理系統(tǒng)稱為「系統(tǒng)目錄」(SystemCatalog或稱為DataDictionary),其內(nèi)容是從前述的操作資料所衍生的一些資料。例如:資料庫(kù)結(jié)構(gòu)的定義資料,它是用來描述資料本身,也稱為中繼資料(Thedataaboutdata),系統(tǒng)目錄的主要用途是用來提供維護(hù)資料庫(kù)所需的資訊。2-1-2資料-系統(tǒng)目錄系統(tǒng)目錄(SystemCatal872-1-2資料-索引資料(說明)索引資料(Indexes)「索引」(Indexes)的目的是為了在資料庫(kù)儲(chǔ)存的龐大資料中能夠更快速的找到資料。索引資料是一些參考資料,這是將資料庫(kù)中特定部分(屬性)的資料預(yù)先進(jìn)行排序,並且提供「指標(biāo)」(Pointer)指向資料庫(kù)真正儲(chǔ)存資料的位置,資料庫(kù)管理系統(tǒng)使用雜湊函數(shù)(HashFunction)或B樹(B-Tree)等演算法來建立索引資料。2-1-2資料-索引資料(說明)索引資料(Indexes)882-1-2資料-索引資料(圖例)例如:在關(guān)聯(lián)式資料庫(kù)的Students關(guān)聯(lián)表,建立GPA屬性的單層有序次索引,如下圖所示:2-1-2資料-索引資料(圖例)例如:在關(guān)聯(lián)式資料庫(kù)的St892-1-2資料-交易記錄交易記錄(TransactionLog)交易記錄是資料庫(kù)管理系統(tǒng)自動(dòng)產(chǎn)生的歷史資料,可以記錄使用者在什麼時(shí)間下達(dá)什麼指令或執(zhí)行什麼操作。這些資料對(duì)於一般使用者而言,並沒有什麼用處,但是對(duì)於資料庫(kù)管理師來說,就是十分重要的參考資訊。2-1-2資料-交易記錄交易記錄(Transaction902-1-3軟體-資料庫(kù)管理系統(tǒng)(說明)資料庫(kù)管理系統(tǒng)(DBMS)資料庫(kù)管理系統(tǒng)是一組程式模組用來定義、處理和管理資料庫(kù)的資料,在此主要是指那些通用用途的資料庫(kù)管理系統(tǒng),如下圖所示:2-1-3軟體-資料庫(kù)管理系統(tǒng)(說明)資料庫(kù)管理系統(tǒng)(DB912-1-3軟體-資料庫(kù)管理系統(tǒng)(語(yǔ)言)資料庫(kù)管理系統(tǒng)語(yǔ)言(DBMSLanguages)主要可以分成二個(gè)部分,如下所示:定義部分:使用資料定義語(yǔ)言(DataDefinitionLanguage,DDL)定義資料庫(kù)的結(jié)構(gòu)。操作部分:直接使用資料操作語(yǔ)言(DataManipulationLanguage,DML)或透過應(yīng)用程式介面產(chǎn)生,就可以查詢資料庫(kù)資料或新增、刪除或更新資料庫(kù)的資料。2-1-3軟體-資料庫(kù)管理系統(tǒng)(語(yǔ)言)資料庫(kù)管理系統(tǒng)語(yǔ)言(922-1-3軟體-應(yīng)用程式應(yīng)用程式(ApplicationProgram)應(yīng)用程式是程式設(shè)計(jì)師使用開發(fā)工具或程式語(yǔ)言,所自行建立的專屬軟體。應(yīng)用程式提供使用者相關(guān)的使用介面,透過使用介面的選單或按鈕,就可以向資料庫(kù)管理系統(tǒng)下達(dá)查詢語(yǔ)言的相關(guān)指令,在取得所需資料後,顯示或產(chǎn)生所需的報(bào)表。換句話說,配合公司或組織的需求,我們可以在資料庫(kù)管理系統(tǒng)的基礎(chǔ)上,建立各種不同的應(yīng)用程式。例如:選課系統(tǒng)、人事資料系統(tǒng)、進(jìn)銷存系統(tǒng)、會(huì)計(jì)系統(tǒng)和公文系統(tǒng)等。2-1-3軟體-應(yīng)用程式應(yīng)用程式(Application932-1-3軟體-開發(fā)工具開發(fā)工具(DevelopmentTools)開發(fā)工具是用來建立資料庫(kù)和開發(fā)應(yīng)用程式。例如:資料庫(kù)設(shè)計(jì)工具、資料庫(kù)開發(fā)工具或程式語(yǔ)言的整合開發(fā)環(huán)境,它可以幫助資料庫(kù)設(shè)計(jì)師建立資料庫(kù)結(jié)構(gòu)和程式設(shè)計(jì)者快速建立應(yīng)用程式。例如:PowerBuilder、OracleDeveloper、VisualStudio.NET和VisualStuido2005等。2-1-3軟體-開發(fā)工具開發(fā)工具(Development942-1-4硬體安裝資料庫(kù)相關(guān)軟體的硬體設(shè)備,包含:主機(jī)(CPU、記憶體和網(wǎng)路卡等)、磁碟機(jī)、磁碟陣列、光碟機(jī)、磁帶機(jī)和備份裝置。整個(gè)資料庫(kù)系統(tǒng)的硬體處理架構(gòu)依其運(yùn)算方式,可以分為:集中式或分散式的主從架構(gòu)。2-1-4硬體安裝資料庫(kù)相關(guān)軟體的硬體設(shè)備,包含:主機(jī)(C952-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)2-2-1概念層2-2-2外部層2-2-3內(nèi)部層2-2-4ANSI/SPARC三層資料庫(kù)架構(gòu)的目的2-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)2-2-1962-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)-圖例2-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)-圖例972-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)-簡(jiǎn)單說明概念層(ConceptualLevel):資料庫(kù)管理師觀點(diǎn)的資料,這是資料庫(kù)儲(chǔ)存的完整資料,屬於在概念上看到的完整資料庫(kù)。外部層(ExternalLevel):一般使用者觀點(diǎn)的資料,代表不同使用者在資料庫(kù)系統(tǒng)所看見的資料,通常只是部分資料庫(kù)的資料。內(nèi)部層(InternalLevel):實(shí)際觀點(diǎn)所呈現(xiàn)的資料,這是實(shí)際資料庫(kù)儲(chǔ)存在電腦儲(chǔ)存裝置的資料。2-2ANSI/SPARC的三層資料庫(kù)系統(tǒng)架構(gòu)-簡(jiǎn)單說明概982-2-1概念層-說明在概念層看到的是整個(gè)資料庫(kù)儲(chǔ)存的資料,這是資料庫(kù)管理師觀點(diǎn)所看到的完整資料庫(kù)。因?yàn)樗皇歉拍钌系馁Y料庫(kù),所以並不用考量資料實(shí)際的儲(chǔ)存結(jié)構(gòu),因?yàn)檫@是內(nèi)部層(InternalLevel)的問題。2-2-1概念層-說明在概念層看到的是整個(gè)資料庫(kù)儲(chǔ)存的資料992-2-1概念層-範(fàn)例關(guān)聯(lián)式資料模型的資料庫(kù)在概念層所見的是以二維表格顯示的資料,如下圖所示:關(guān)聯(lián)式資料庫(kù)的「關(guān)聯(lián)表」(Relations)是資料庫(kù)所看到的完整資料。2-2-1概念層-範(fàn)例關(guān)聯(lián)式資料模型的資料庫(kù)在概念層所見的1002-2-2外部層-說明資料庫(kù)系統(tǒng)使用者面對(duì)的是外部層,這是使用者觀點(diǎn)(UserViews)的資料,包含多種不同觀點(diǎn)的資料,例如:一間大學(xué)或技術(shù)學(xué)院,不同使用者的觀點(diǎn),如下:使用者觀點(diǎn)1:學(xué)生註冊(cè)資料使用者觀點(diǎn)2:學(xué)生選課資料使用者觀點(diǎn)3:學(xué)生成績(jī)單資料2-2-2外部層-說明資料庫(kù)系統(tǒng)使用者面對(duì)的是外部層,這是1012-2-2外部層-範(fàn)例資料以不同的方式呈現(xiàn):外部層的資料如同裁縫師手上的布,可以將概念層的資料剪裁成不同衣服樣式的資料。例如:使用清單、表格或表單內(nèi)容(例如:VisualBasic的表單或HTML表單)等方式來呈現(xiàn)資料。只包含使用者有興趣的資料:外部層的資料只是部分資料庫(kù),例如:二位使用者分別看到Students關(guān)聯(lián)表的部分或?qū)С鰞?nèi)容,年齡Age是由生日計(jì)算而得。相同資料可以顯示不同格式:雖然在資料庫(kù)儲(chǔ)存的資料是單一格式,不過在顯示時(shí)可以使用不同格式。2-2-2外部層-範(fàn)例資料以不同的方式呈現(xiàn):外部層的資料如1022-2-3內(nèi)部層在內(nèi)部層看到的是實(shí)際觀點(diǎn)的資料庫(kù),這是實(shí)際儲(chǔ)存在磁碟等外部?jī)?chǔ)存裝置的資料,內(nèi)部層在三層架構(gòu)中扮演資料庫(kù)管理系統(tǒng)與作業(yè)系統(tǒng)的介面。在內(nèi)部層的資料是實(shí)際儲(chǔ)存在資料庫(kù)的資料結(jié)構(gòu)或檔案組織所呈現(xiàn)的資料,例如:使用鏈結(jié)串列結(jié)構(gòu)儲(chǔ)存資料,如下圖所示:2-2-3內(nèi)部層在內(nèi)部層看到的是實(shí)際觀點(diǎn)的資料庫(kù),這是實(shí)際1032-2-4ANSI/SPARC三層資料庫(kù)架構(gòu)的目的-使用者角度使用者觀點(diǎn)所見的資料是獨(dú)立的:不同使用者可以存取相同資料,只是觀點(diǎn)可能不同,但是,各觀點(diǎn)的資料是獨(dú)立的,更改觀點(diǎn)的資料,並不會(huì)影響其他使用者觀點(diǎn)的資料。使用者並不用了解實(shí)際資料的儲(chǔ)存方式:使用者的焦點(diǎn)是在處理資料本身,而不是了解到底這些資料是如何儲(chǔ)存。2-2-4ANSI/SPARC三層資料庫(kù)架構(gòu)的目的-使用者1042-2-4ANSI/SPARC三層資料庫(kù)架構(gòu)的目的-資料庫(kù)管理師角度更改實(shí)際儲(chǔ)存結(jié)構(gòu)不會(huì)影響使用者觀點(diǎn)的資料:當(dāng)有全新的儲(chǔ)存結(jié)構(gòu)和索引技術(shù)時(shí),就算更改資料庫(kù)的儲(chǔ)存結(jié)構(gòu),也不會(huì)影響外部層使用者觀點(diǎn)的資料。更改概念層的完整資料庫(kù)也不會(huì)影響使用者觀點(diǎn)的資料:如果將資料庫(kù)從關(guān)聯(lián)式資料模型改為物件導(dǎo)向式資料庫(kù)模型時(shí),我們?nèi)匀豢梢燥@示完全相同的使用者觀點(diǎn)資料,並不會(huì)影響使用者看到的資料。2-2-4ANSI/SPARC三層資料庫(kù)架構(gòu)的目的-資料庫(kù)1052-3資料庫(kù)綱要
(DatabaseSchema)2-3-1三層資料庫(kù)綱要2-3-2資料庫(kù)綱要間的對(duì)映
2-3資料庫(kù)綱要
(DatabaseSchema)2-31062-3資料庫(kù)綱要
(DatabaseSchema)-圖例「資料庫(kù)綱要」(DatabaseSchema)是指整個(gè)資料庫(kù)的描述,即描述整個(gè)資料庫(kù)儲(chǔ)存資料的定義資料,如下圖所示:2-3資料庫(kù)綱要
(DatabaseSchema)-圖例1072-3資料庫(kù)綱要
(DatabaseSchema)-說明資料庫(kù)管理系統(tǒng)管理的資料庫(kù)可以分割成資料和描述資料的綱要(Schema),如下所示:綱要(Schema):資料描述的定義資料,對(duì)比程式語(yǔ)言的變數(shù)是資料型態(tài)(DataType),例如:C語(yǔ)言宣告成整數(shù)的age年齡變數(shù),如下圖所示:intage;資料(Data):資料本身,也就是程式語(yǔ)言的變數(shù)值,例如:年齡為20,如下所示:age=20;2-3資料庫(kù)綱要
(DatabaseSchema)-說明1082-3-1三層資料庫(kù)綱要-圖例2-3-1三層資料庫(kù)綱要-圖例1092-3-1三層資料庫(kù)綱要-簡(jiǎn)單說明三層資料庫(kù)綱要每一層的簡(jiǎn)單說明,如下所示:外部綱要(ExternalSchema):描述使用的資料。概念綱要(ConceptualSchema):描述資料本身的意義。內(nèi)部綱要(InternalSchema):描述儲(chǔ)存的資料。2-3-1三層資料庫(kù)綱要-簡(jiǎn)單說明三層資料庫(kù)綱要每一層的簡(jiǎn)1102-3-1三層資料庫(kù)綱要-外部綱要外部綱要(ExternalSchema)外部綱要源於概念綱要,主要是描述外部層顯示的資料,每一個(gè)外部層綱要只描述資料庫(kù)的部分資料,隱藏其他部分的資料。換句話說,每一個(gè)外部層使用者觀點(diǎn)的資料都需要一個(gè)外部綱要,在一個(gè)資料庫(kù)可能擁有多個(gè)外部綱要,如下圖所示:2-3-1三層資料庫(kù)綱要-外部綱要外部綱要(Externa1112-3-1三層資料庫(kù)綱要-概念綱要概念綱要(ConceptualSchema)概念綱要是描述概念層的完整資料庫(kù),這是「概念資料庫(kù)設(shè)計(jì)」(ConceptualDatabaseDesign)的結(jié)果,概念資料庫(kù)設(shè)計(jì)主要是分析使用者資訊,以便定義所需的資料項(xiàng)目,並不涉及到底是使用那一套資料庫(kù)管理系統(tǒng)。概念綱要描述完整資料庫(kù)的資料和其關(guān)聯(lián),所以資料庫(kù)只能擁有一個(gè)概念綱要,如下圖所示:2-3-1三層資料庫(kù)綱要-概念綱要概念綱要(Concept1122-3-1三層資料庫(kù)綱要-內(nèi)部綱要內(nèi)部綱要(InternalSchema)內(nèi)部綱要是描述內(nèi)部層實(shí)際觀點(diǎn)的資料,定義資料的儲(chǔ)存結(jié)構(gòu)和那些資料需要建立索引,如同概念綱要,資料庫(kù)只擁有一個(gè)內(nèi)部綱要。例如:C語(yǔ)言宣告學(xué)生Students的結(jié)構(gòu),如下:structStudents{charno[5];charname[15];charaddress[40];inttelephone;structDatebirthday;structStudent*next;};2-3-1三層資料庫(kù)綱要-內(nèi)部綱要內(nèi)部綱要(Interna1132-3-2資料庫(kù)綱要間的對(duì)映-說明三層資料庫(kù)綱要只是描述資料,真正的資料是儲(chǔ)存在外部?jī)?chǔ)存裝置的資料庫(kù)。當(dāng)以外部層使用者觀點(diǎn)顯示資料時(shí),也就是參考外部綱要向概念綱要請(qǐng)求資料,然後概念綱要請(qǐng)求內(nèi)部綱要從資料庫(kù)取得資料,在取得真正的資料後,資料需要進(jìn)行轉(zhuǎn)換來符合概念綱要的定義,然後再轉(zhuǎn)換成符合外部綱要的定義,最後才是外部層使用者觀點(diǎn)看到的資料,在各層間進(jìn)行的資料轉(zhuǎn)換過程,稱為「對(duì)映」(Mapping)。2-3-2資料庫(kù)綱要間的對(duì)映-說明三層資料庫(kù)綱要只是描述資1142-3-2資料庫(kù)綱要間的對(duì)映-圖例2-3-2資料庫(kù)綱要間的對(duì)映-圖例1152-3-2資料庫(kù)綱要間的對(duì)映-種類各層綱要間的對(duì)映主要有兩種:外部與概念對(duì)映(External/ConceptualMapping):所有外部綱要都是對(duì)映到概念綱要,以便資料庫(kù)管理系統(tǒng)知道如何將外部層的資料連結(jié)到那一部分的概念綱要。例如:在外部綱要(S_No,Name,Age),S_No是對(duì)映到概念綱要的No,Age是從概念綱要的Birthday運(yùn)算而得。概念與內(nèi)部對(duì)映(Conceptual/InternalMapping):概念綱要對(duì)映到內(nèi)部綱要的關(guān)聯(lián),以便資料庫(kù)管理系統(tǒng)可以找到實(shí)際儲(chǔ)存裝置的記錄資料後,建立概念綱要的邏輯結(jié)構(gòu)。2-3-2資料庫(kù)綱要間的對(duì)映-種類各層綱要間的對(duì)映主要有兩1162-4實(shí)體與邏輯資料獨(dú)立2-4-1資料獨(dú)立的基礎(chǔ)2-4-2邏輯資料獨(dú)立2-4-3實(shí)體資料獨(dú)立2-4實(shí)體與邏輯資料獨(dú)立2-4-1資料獨(dú)立的基礎(chǔ)1172-4-1資料獨(dú)立的基礎(chǔ)-說明三層資料庫(kù)綱要的主要目的是為了達(dá)成「資料獨(dú)立」(DataIndependence),也就是說上層的綱要並不會(huì)受到下層綱要的影響,當(dāng)下層綱要更改時(shí),也不會(huì)影響到上層綱要。與資料獨(dú)立相反的術(shù)語(yǔ)是「資料相依」(DataDependence)。例如:使用C語(yǔ)言建立「堆疊」(Stacks)資料結(jié)構(gòu),如下圖所示:2-4-1資料獨(dú)立的基礎(chǔ)-說明三層資料庫(kù)綱要的主要目的是為1182-4-1資料獨(dú)立的基礎(chǔ)-種類三層資料庫(kù)綱要一共擁有兩種資料獨(dú)立:外部與概念對(duì)映的邏輯資料獨(dú)立(LogicalDataIndependence)。概念與內(nèi)部對(duì)映的實(shí)體資料獨(dú)立(PhysicalDataIndependence)。2-4-1資料獨(dú)立的基礎(chǔ)-種類三層資料庫(kù)綱要一共擁有兩種資1192-4-2邏輯資料獨(dú)立-圖例2-4-2邏輯資料獨(dú)立-圖例1202-4-2邏輯資料獨(dú)立-說明當(dāng)更改概念綱要,例如:新增或刪除實(shí)體、屬性或關(guān)聯(lián)性,並不用同時(shí)更改存在的外部綱要或重寫程式碼,因?yàn)榭梢酝高^外部與概念對(duì)映來達(dá)成邏輯資料獨(dú)立。每當(dāng)資料庫(kù)需要更改概念綱要時(shí),只需配合修改外部與概念對(duì)映的定義,就可以在不更改存在的外部綱要下,取得相同使用者觀點(diǎn)的資料。2-4-2邏輯資料獨(dú)立-說明當(dāng)更改概念綱要,例如:新增或刪1212-4-3實(shí)體資料獨(dú)立-圖例2-4-3實(shí)體資料獨(dú)立-圖例1222-4-3實(shí)體資料獨(dú)立-說明當(dāng)更改內(nèi)部綱要,例如:使用不同的檔案組織或儲(chǔ)存結(jié)構(gòu),並不用更改概念綱要和外部綱要,因?yàn)榭梢酝高^概念與內(nèi)部對(duì)映來達(dá)成實(shí)體資料獨(dú)立。每當(dāng)資料庫(kù)需要更改內(nèi)部綱要時(shí),只需配合修改概念與內(nèi)部對(duì)映的定義,就可以完全不動(dòng)到概念綱要和外部綱要。2-4-3實(shí)體資料獨(dú)立-說明當(dāng)更改內(nèi)部綱要,例如:使用不同1232-5資料庫(kù)系統(tǒng)的優(yōu)缺點(diǎn)2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)2-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)2-5資料庫(kù)系統(tǒng)的優(yōu)缺點(diǎn)2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)1242-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-1整合的資料管理:相關(guān)資料檔案是集中管理,不像檔案處理系統(tǒng),需要額外操作或程序來處理位在不同檔案的資料。資料共享:資料庫(kù)的資料可以由多人共享,允許多人同時(shí)存取資料庫(kù),只需透過網(wǎng)路或Internet,就算位在世界各地都可以存取資料庫(kù)的資料。減少資料重複(DataRedundancy):不同於檔案處理系統(tǒng)將資料分割成多個(gè)檔案來儲(chǔ)存,資料庫(kù)系統(tǒng)集中管理資料庫(kù)的資料,可以大幅降低資料重複的可能性。2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-1整合的資料管理:相關(guān)資料檔案1252-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-2維持資料的一致性(DataConsistency):因?yàn)橘Y料庫(kù)系統(tǒng)可以減少資料重複,再加上資料庫(kù)管理系統(tǒng)可以檢查完整性限制條件(IntegrityConstraints),不只可以保證輸入資料的正確,還可以維持資料的一致。資料獨(dú)立(DataIndependence):在檔案處理系統(tǒng)存取資料需要了解詳細(xì)的資料結(jié)構(gòu),資料庫(kù)管理系統(tǒng)提供資料獨(dú)立,換句話說,如果資料結(jié)構(gòu)或存取方式改變,並不會(huì)影響應(yīng)用程式的執(zhí)行,例如:學(xué)號(hào)從5碼改為6碼,並不需要更改應(yīng)用程式的程式碼。2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-2維持資料的一致性(Data1262-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-3提供單一介面和語(yǔ)言存取資料:資料庫(kù)系統(tǒng)提供4GL的資料庫(kù)語(yǔ)言存取資料庫(kù)。例如:SQL語(yǔ)言,或是透過應(yīng)用程式的操作介面存取資料,可以隱藏資料庫(kù)管理系統(tǒng)的實(shí)際資料存取方式。更多的資料保密、安全管理和控制能力:資料庫(kù)系統(tǒng)提供資料保密、使用者存取權(quán)限和資料存取的控制,可以強(qiáng)迫達(dá)成標(biāo)準(zhǔn)化的資料管理,例如:標(biāo)準(zhǔn)的文件格式或不同層級(jí)的資料存取。提供多種觀點(diǎn)的資料:因?yàn)橘Y料庫(kù)系統(tǒng)是由多人共享,每位使用者可以分別取得所需的資料,而且以不同的觀點(diǎn)來符合其需求。例如:同樣是教授,它可以是學(xué)生的老師,也可以是學(xué)校的員工。2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-3提供單一介面和語(yǔ)言存取資料:1272-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-4支援交易管理(TransactionManagement):資料庫(kù)系統(tǒng)提供交易管理和並行處理,可以處理商業(yè)交易,保障交易進(jìn)行的正確無誤。具高可靠性(Reliability):資料庫(kù)系統(tǒng)十分可靠,提供備份與回復(fù)功能來進(jìn)一步保障資料的安全,在出現(xiàn)狀況時(shí),可以回復(fù)資料庫(kù)系統(tǒng)的資料。降低軟體開發(fā)的費(fèi)用:直接選擇現(xiàn)成的資料庫(kù)管理系統(tǒng),然後在管理系統(tǒng)下開發(fā)所需的資料庫(kù)系統(tǒng),而不用重頭開發(fā)整個(gè)資料庫(kù)系統(tǒng)。2-5-1資料庫(kù)系統(tǒng)的優(yōu)點(diǎn)-4支援交易管理(Transac1282-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-1龐大的額外費(fèi)用:建構(gòu)資料庫(kù)系統(tǒng)需要升級(jí)電腦硬體和軟體環(huán)境,一套企業(yè)永續(xù)經(jīng)營(yíng)的資料庫(kù)系統(tǒng),包含網(wǎng)路建置,硬體和軟體升級(jí),將會(huì)是一筆相當(dāng)龐大的額外預(yù)算,有可能未蒙其利,先受其害,造成公司財(cái)務(wù)的負(fù)擔(dān)。資料轉(zhuǎn)換的成本:各部門的資料都需要轉(zhuǎn)換成資料庫(kù)結(jié)構(gòu),以便存入資料庫(kù),這不只是資訊部門的一項(xiàng)大工程,而且需要全公司各部門人員的充分支援。2-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-1龐大的額外費(fèi)用:建構(gòu)資料庫(kù)系1292-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-2安全管理的漏洞:雖然資料庫(kù)擁有安全管理能力,但是人為錯(cuò)誤或非專業(yè)人員的控管,資料共享的優(yōu)點(diǎn),反而容易造成人為的安全問題,例如:沒有取消離職員工的帳號(hào),增加公司重要資料被竊取的機(jī)會(huì)。大幅更改作業(yè)流程:資料庫(kù)系統(tǒng)可能大幅更改現(xiàn)有公司的作業(yè)流程,使用者不只需要熟悉全新的應(yīng)用程式操作,還需要適應(yīng)新的資料處理流程,如此可能產(chǎn)生額外的人力支援和不合作的使用者,加重資訊部門的負(fù)擔(dān)和責(zé)任。2-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-2安全管理的漏洞:雖然資料庫(kù)擁1302-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-3系統(tǒng)風(fēng)險(xiǎn)增加:資料庫(kù)系統(tǒng)使用集中方式管理資料,一旦系統(tǒng)停擺,將會(huì)讓公司蒙受重大損失。資料庫(kù)系統(tǒng)可能因?yàn)殡娔X病毒、天災(zāi)、硬體故障或人為操作錯(cuò)誤等情況造成系統(tǒng)癱瘓,所以資料庫(kù)系統(tǒng)在建置時(shí),就需考量備援系統(tǒng)或額外的保護(hù)設(shè)備,例如:不斷電系統(tǒng)(Un-interruptPowerSystems)防止不預(yù)警的停電。如果是一套全年無休持續(xù)運(yùn)作的NonStop資料庫(kù)系統(tǒng),還需要準(zhǔn)備異地備援系統(tǒng),以免公司主機(jī)遭遇地震或火災(zāi)受損時(shí),仍然可以使用位在其他地方的資料庫(kù)系統(tǒng),維持公司的正常運(yùn)作。2-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-3系統(tǒng)風(fēng)險(xiǎn)增加:資料庫(kù)系統(tǒng)使用1312-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-4人為風(fēng)險(xiǎn)增加:事實(shí)上,人為錯(cuò)誤和破壞才是資料庫(kù)系統(tǒng)的最大敵人,如果資料庫(kù)系統(tǒng)設(shè)計(jì)錯(cuò)誤,一旦人為的資料輸入錯(cuò)誤,小則只是系統(tǒng)受損,大則錯(cuò)誤的資料,可能造成決策錯(cuò)誤和管理作業(yè)上的混亂。更進(jìn)一步,如果資訊部門有不肖人員(或駭客),蓄意進(jìn)行破壞,集中管理的資料庫(kù)系統(tǒng),反而成為最佳的攻擊目標(biāo),所以資料庫(kù)系統(tǒng)除了系統(tǒng)管理外,相關(guān)人員的忠誠(chéng)管理也是一項(xiàng)重要的工作。2-5-2資料庫(kù)系統(tǒng)的缺點(diǎn)-4人為風(fēng)險(xiǎn)增加:事實(shí)上,人為錯(cuò)1322-6資料庫(kù)管理系統(tǒng)DBMS2-6-1資料庫(kù)管理系統(tǒng)的基本功能2-6-2資料庫(kù)管理系統(tǒng)的系統(tǒng)架構(gòu)2-6-3常見的資料庫(kù)管理系統(tǒng)2-6資料庫(kù)管理系統(tǒng)DBMS2-6-1資料庫(kù)管理系統(tǒng)的基1332-6資料庫(kù)管理系統(tǒng)DBMS「資料庫(kù)管理系統(tǒng)」(DatabaseManagementSystem,DBMS)從字面來說,是一套管理資料庫(kù)的軟體系統(tǒng),它是由一組程式模組負(fù)責(zé)組織、管理、儲(chǔ)存和讀取資料庫(kù)系的資料,使用者對(duì)於資料庫(kù)的任何操作,都一定需要透過資料庫(kù)管理系統(tǒng)來處理。2-6資料庫(kù)管理系統(tǒng)DBMS「資料庫(kù)管理系統(tǒng)」(Datab1342-6-1資料庫(kù)管理系統(tǒng)的基本功能-資料管理資料管理(DataManagement)資料庫(kù)管理系統(tǒng)的最基本功能是資料管理,管理資料庫(kù)儲(chǔ)存的各種資料,包含:資料檔、系統(tǒng)目錄、索引資料、備份檔(資料庫(kù)管理系統(tǒng)備份資料庫(kù)時(shí)建立的檔案)和異動(dòng)記錄,如下圖所示:2-6-1資料庫(kù)管理系統(tǒng)的基本功能-資料管理資料管理(Da1352-6-1資料庫(kù)管理系統(tǒng)的基本功能-資料庫(kù)管理系統(tǒng)語(yǔ)言資料庫(kù)管理系統(tǒng)語(yǔ)言(DBMSLanguages)資料庫(kù)管理系統(tǒng)提供第4代語(yǔ)言(4GL),可以讓使用者定義、查詢或存取資料,資料庫(kù)管理系統(tǒng)語(yǔ)言可以分成兩大類,如下所示:資料定義語(yǔ)言DDL(DataDefinitionLanguage):這個(gè)語(yǔ)言的主要目的是建立資料庫(kù)綱要(DatabaseSchema),其編譯後的指令敘述是儲(chǔ)存在系統(tǒng)目錄(SystemCatalog),使用者只需使用此語(yǔ)言就可以建立資料庫(kù)綱要。資料操作語(yǔ)言DML(DataManipulationLanguage):這個(gè)語(yǔ)言的指令敘述可以讓使用者存取和操作資料庫(kù)的資料,這是使用者與資料庫(kù)管理系統(tǒng)間溝通的語(yǔ)言。2-6-1資料庫(kù)管理系統(tǒng)的基本功能-資料庫(kù)管理系統(tǒng)語(yǔ)言資料1362-6-1資料庫(kù)管理系統(tǒng)的基本功能-安全管理安全管理(SecurityManagement)資料庫(kù)儲(chǔ)存的資料屬於使用者共享的資料,所以資料庫(kù)管理系統(tǒng)需要提供使用者安全管理,以避免使用者不當(dāng)使用資料庫(kù)的資料。安全管理通常是指定使用者密碼(Password)來授予存取權(quán)限的控制(AccessControl),常用的方式有兩種,如下所示:自由選擇存取控制(DiscretionaryAccessControl,DAC):授予或取消使用者擁有新增、刪除、更新或修改資料的權(quán)限。強(qiáng)制存取控制(MandatoryAccessControl,MAC):將資料和使用者分類成不同的安全層級(jí),使用者只能存取授予安全層級(jí)的資料。2-6-1資料庫(kù)管理系統(tǒng)的基本功能-安全管理安全管理(Se1372-6-1資料庫(kù)管理系統(tǒng)的基本功能-備份與回復(fù)管理備份與回復(fù)管理(BackupandRecoverManagement)資料庫(kù)備份是將資料庫(kù)的資料儲(chǔ)存到備份裝置,例如:磁帶機(jī)或可讀寫光碟機(jī),資料庫(kù)管理師負(fù)責(zé)定期備份資料庫(kù)。當(dāng)突發(fā)狀況產(chǎn)生時(shí),因?yàn)橘Y料庫(kù)管理系統(tǒng)會(huì)自動(dòng)產(chǎn)生交易記錄(TransactionLog),可以使用此記錄了解交易(Transaction)的狀態(tài),回復(fù)程序可以參考交易記錄正確的回存資料。2-6-1資料庫(kù)管理系統(tǒng)的基本功能-備份與回復(fù)管理備份與回1382-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理1異動(dòng)管理(TransactionManagement)資料庫(kù)系統(tǒng)通常都會(huì)支援商業(yè)用途,而商業(yè)系統(tǒng)架構(gòu)的基礎(chǔ)是商業(yè)交易,這些商業(yè)交易的操作需要一併執(zhí)行,視為一個(gè)無法分割的單位。整個(gè)過程對(duì)於資料庫(kù)來說是一個(gè)「交易」(Transaction)。2-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理1異動(dòng)管理(T1392-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理2例如:從帳戶A匯款到帳戶B,如下圖所示:2-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理2例如:從帳戶1402-6-1資料庫(kù)管理系統(tǒng)的基本功能-交易管理3交易成功是指需要滿足四項(xiàng)基本的交易屬性,以英文字頭的縮寫為ACID交易,如下所示:?jiǎn)卧裕ˋt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南師范大學(xué)《學(xué)科教學(xué)法》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度辦公設(shè)備智能倉(cāng)儲(chǔ)與配送服務(wù)合同3篇
- 二零二五年度新能源汽車充電樁建設(shè) XXX合同協(xié)議補(bǔ)充協(xié)議3篇
- 水污染課程設(shè)計(jì)消毒池
- 運(yùn)輸樞紐規(guī)劃課程設(shè)計(jì)
- 二零二五年公轉(zhuǎn)私旅游度假借款合同模板3篇
- 企業(yè)應(yīng)制訂的事故應(yīng)急救援預(yù)案范例(2篇)
- 二零二五年度寫字樓租賃合同范本詳盡版
- 二零二五年度安居房施工項(xiàng)目施工進(jìn)度調(diào)整合同2篇
- 2025年班委會(huì)競(jìng)選演講稿范例(3篇)
- 電工工具報(bào)價(jià)單
- 教科版三年級(jí)上冊(cè)科學(xué)教案(全冊(cè))
- 勞動(dòng)力安排計(jì)劃及勞動(dòng)力計(jì)劃表(樣板)
- 利潤(rùn)表4(通用模板)
- 教育評(píng)價(jià)學(xué)全套ppt課件完整版教學(xué)教程
- 注塑領(lǐng)班作業(yè)指導(dǎo)書
- ASTM B330-20 Standard Test Methods for Estimating Average Particle Size of Metal Powders and Related Compounds Using%2
- 顧客忠誠(chéng)度論文
- 血?dú)夥治黾芭R床應(yīng)用
- 浙江省市政工程安全臺(tái)賬完整
- 歐洲城市廣場(chǎng)歷史演變
評(píng)論
0/150
提交評(píng)論