版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章資料庫系統2-1資料庫環境的四大組成元件2-2ANSI/SPARC的三層資料庫系統架構2-3資料庫綱要(DatabaseSchema)2-4實際與邏輯資料獨立2-5資料庫系統的優缺點2-6資料庫管理系統2-7資料庫管理師第2章資料庫系統2-1資料庫環境的四大組成元件12-1資料庫環境的四大組成元件2-1-1使用者2-1-2資料2-1-3軟體2-1-4硬體2-1資料庫環境的四大組成元件2-1-1使用者22-1資料庫環境的四大組成元件2-1資料庫環境的四大組成元件32-1-1使用者-終端使用者終端使用者(EndUsers)終端使用者(EndUsers)的主要工作是查詢或更新資料庫,或是存取資料庫以產生所需的報表,終端使用者可以分為數種,如下所示:初級使用者(NaiveorParametricUsers)不常使用的使用者(CasualUsers)熟練使用者(SophisticatedUsers)2-1-1使用者-終端使用者終端使用者(EndUsers42-1-1使用者-資料庫設計師資料庫設計師(DatabaseDesigners)資料庫設計師精通資料庫設計,其主要的工作是建立資料庫結構,判斷哪些資料需要儲存在資料庫,和使用什麼樣的結構來儲存這些資料。資料庫設計師通常是使用「資料庫設計工具」(DatabaseDesignTools)來建立資料庫結構。2-1-1使用者-資料庫設計師資料庫設計師(Databas52-1-1使用者-資料庫管理師資料庫管理師(DatabaseAdministrator,DBA)資料庫系統需要一位或一組對整個系統十分了解的人員作為資料庫管理師,負責管理整個資料庫環境。因為資料庫管理師的工作十分專業,需要擁有公司管理和資料庫等電腦技術的專業知識,特別適合主修資訊管理或資訊工程且擁有管理經驗的人員來擔任。2-1-1使用者-資料庫管理師資料庫管理師(Databas62-1-1使用者-系統分析師系統分析師(SystemAnalyst,SA)系統分析師與應用程式設計師屬於「專業使用者」(SpecializedUsers),系統分析師依據終端使用者的需要,主要是指初級使用者(NaiveorParametricUsers)的需要來製定資料庫應用程式的規格與功能。應用程式設計師(ApplicationProgrammer)依據系統分析師定義的規格建立終端使用者使用的資料庫應用程式,利用程式開發工具或指定的程式語言,呼叫資料庫系統提供的「資料庫存取函式庫」(DatabaseAccessLibrary)建立所需的資料庫應用程式。2-1-1使用者-系統分析師系統分析師(SystemAn72-1-2資料-長存資料長存資料(PersistentData)資料庫儲存的是公司或組織的非暫時資料,這些資料是長時間存在的資料,使用者以應用程式使用介面輸入(新增、刪除或更新操作)建立的資料。從這些操作的資料可以進一步執行各項查詢和運算,以得到使用者所需的資料。2-1-2資料-長存資料長存資料(PersistentD82-1-2資料-系統目錄系統目錄(SystemCatalog)系統目錄是由資料庫管理系統自動產生的資料,在資料庫管理系統稱為「系統目錄」(SystemCatalog或稱為DataDictionary),其內容是從前述的操作資料所衍生的一些資料。例如:資料庫結構的定義資料,它是用來描述資料本身,也稱為中繼資料(Thedataaboutdata),系統目錄的主要用途是用來提供維護資料庫所需的資訊。2-1-2資料-系統目錄系統目錄(SystemCatal92-1-2資料-索引資料(說明)索引資料(Indexes)「索引」(Indexes)的目的是為了在資料庫儲存的龐大資料中能夠更快速的找到資料。索引資料是一些參考資料,這是將資料庫中特定部分(屬性)的資料預先進行排序,並且提供「指標」(Pointer)指向資料庫真正儲存資料的位置,資料庫管理系統使用雜湊函數(HashFunction)或B樹(B-Tree)等演算法來建立索引資料。2-1-2資料-索引資料(說明)索引資料(Indexes)102-1-2資料-索引資料(圖例)例如:在關聯式資料庫的Students關聯表,建立GPA屬性的單層有序次索引,如下圖所示:2-1-2資料-索引資料(圖例)例如:在關聯式資料庫的St112-1-2資料-交易記錄交易記錄(TransactionLog)交易記錄是資料庫管理系統自動產生的歷史資料,可以記錄使用者在什麼時間下達什麼指令或執行什麼操作。這些資料對於一般使用者而言,並沒有什麼用處,但是對於資料庫管理師來說,就是十分重要的參考資訊。2-1-2資料-交易記錄交易記錄(Transaction122-1-3軟體-資料庫管理系統(說明)資料庫管理系統(DBMS)資料庫管理系統是一組程式模組用來定義、處理和管理資料庫的資料,在此主要是指那些通用用途的資料庫管理系統,如下圖所示:2-1-3軟體-資料庫管理系統(說明)資料庫管理系統(DB132-1-3軟體-資料庫管理系統(語言)資料庫管理系統語言(DBMSLanguages)主要可以分成二個部分,如下所示:定義部分:使用資料定義語言(DataDefinitionLanguage,DDL)定義資料庫的結構。操作部分:直接使用資料操作語言(DataManipulationLanguage,DML)或透過應用程式介面產生,就可以查詢資料庫資料或新增、刪除或更新資料庫的資料。2-1-3軟體-資料庫管理系統(語言)資料庫管理系統語言(142-1-3軟體-應用程式應用程式(ApplicationProgram)應用程式是程式設計師使用開發工具或程式語言,所自行建立的專屬軟體。應用程式提供使用者相關的使用介面,透過使用介面的選單或按鈕,就可以向資料庫管理系統下達查詢語言的相關指令,在取得所需資料後,顯示或產生所需的報表。換句話說,配合公司或組織的需求,我們可以在資料庫管理系統的基礎上,建立各種不同的應用程式。例如:選課系統、人事資料系統、進銷存系統、會計系統和公文系統等。2-1-3軟體-應用程式應用程式(Application152-1-3軟體-開發工具開發工具(DevelopmentTools)開發工具是用來建立資料庫和開發應用程式。例如:資料庫設計工具、資料庫開發工具或程式語言的整合開發環境,它可以幫助資料庫設計師建立資料庫結構和程式設計者快速建立應用程式。例如:PowerBuilder、OracleDeveloper、VisualStudio.NET和VisualStuido2005等。2-1-3軟體-開發工具開發工具(Development162-1-4硬體安裝資料庫相關軟體的硬體設備,包含:主機(CPU、記憶體和網路卡等)、磁碟機、磁碟陣列、光碟機、磁帶機和備份裝置。整個資料庫系統的硬體處理架構依其運算方式,可以分為:集中式或分散式的主從架構。2-1-4硬體安裝資料庫相關軟體的硬體設備,包含:主機(C172-2ANSI/SPARC的三層資料庫系統架構2-2-1概念層2-2-2外部層2-2-3內部層2-2-4ANSI/SPARC三層資料庫架構的目的2-2ANSI/SPARC的三層資料庫系統架構2-2-1182-2ANSI/SPARC的三層資料庫系統架構-圖例2-2ANSI/SPARC的三層資料庫系統架構-圖例192-2ANSI/SPARC的三層資料庫系統架構-簡單說明概念層(ConceptualLevel):資料庫管理師觀點的資料,這是資料庫儲存的完整資料,屬於在概念上看到的完整資料庫。外部層(ExternalLevel):一般使用者觀點的資料,代表不同使用者在資料庫系統所看見的資料,通常只是部分資料庫的資料。內部層(InternalLevel):實際觀點所呈現的資料,這是實際資料庫儲存在電腦儲存裝置的資料。2-2ANSI/SPARC的三層資料庫系統架構-簡單說明概202-2-1概念層-說明在概念層看到的是整個資料庫儲存的資料,這是資料庫管理師觀點所看到的完整資料庫。因為它只是概念上的資料庫,所以並不用考量資料實際的儲存結構,因為這是內部層(InternalLevel)的問題。2-2-1概念層-說明在概念層看到的是整個資料庫儲存的資料212-2-1概念層-範例關聯式資料模型的資料庫在概念層所見的是以二維表格顯示的資料,如下圖所示:關聯式資料庫的「關聯表」(Relations)是資料庫所看到的完整資料。2-2-1概念層-範例關聯式資料模型的資料庫在概念層所見的222-2-2外部層-說明資料庫系統使用者面對的是外部層,這是使用者觀點(UserViews)的資料,包含多種不同觀點的資料,例如:一間大學或技術學院,不同使用者的觀點,如下:使用者觀點1:學生註冊資料使用者觀點2:學生選課資料使用者觀點3:學生成績單資料2-2-2外部層-說明資料庫系統使用者面對的是外部層,這是232-2-2外部層-範例資料以不同的方式呈現:外部層的資料如同裁縫師手上的布,可以將概念層的資料剪裁成不同衣服樣式的資料。例如:使用清單、表格或表單內容(例如:VisualBasic的表單或HTML表單)等方式來呈現資料。只包含使用者有興趣的資料:外部層的資料只是部分資料庫,例如:二位使用者分別看到Students關聯表的部分或導出內容,年齡Age是由生日計算而得。相同資料可以顯示不同格式:雖然在資料庫儲存的資料是單一格式,不過在顯示時可以使用不同格式。2-2-2外部層-範例資料以不同的方式呈現:外部層的資料如242-2-3內部層在內部層看到的是實際觀點的資料庫,這是實際儲存在磁碟等外部儲存裝置的資料,內部層在三層架構中扮演資料庫管理系統與作業系統的介面。在內部層的資料是實際儲存在資料庫的資料結構或檔案組織所呈現的資料,例如:使用鏈結串列結構儲存資料,如下圖所示:2-2-3內部層在內部層看到的是實際觀點的資料庫,這是實際252-2-4ANSI/SPARC三層資料庫架構的目的-使用者角度使用者觀點所見的資料是獨立的:不同使用者可以存取相同資料,只是觀點可能不同,但是,各觀點的資料是獨立的,更改觀點的資料,並不會影響其他使用者觀點的資料。使用者並不用了解實際資料的儲存方式:使用者的焦點是在處理資料本身,而不是了解到底這些資料是如何儲存。2-2-4ANSI/SPARC三層資料庫架構的目的-使用者262-2-4ANSI/SPARC三層資料庫架構的目的-資料庫管理師角度更改實際儲存結構不會影響使用者觀點的資料:當有全新的儲存結構和索引技術時,就算更改資料庫的儲存結構,也不會影響外部層使用者觀點的資料。更改概念層的完整資料庫也不會影響使用者觀點的資料:如果將資料庫從關聯式資料模型改為物件導向式資料庫模型時,我們仍然可以顯示完全相同的使用者觀點資料,並不會影響使用者看到的資料。2-2-4ANSI/SPARC三層資料庫架構的目的-資料庫272-3資料庫綱要
(DatabaseSchema)2-3-1三層資料庫綱要2-3-2資料庫綱要間的對映
2-3資料庫綱要
(DatabaseSchema)2-3282-3資料庫綱要
(DatabaseSchema)-圖例「資料庫綱要」(DatabaseSchema)是指整個資料庫的描述,即描述整個資料庫儲存資料的定義資料,如下圖所示:2-3資料庫綱要
(DatabaseSchema)-圖例292-3資料庫綱要
(DatabaseSchema)-說明資料庫管理系統管理的資料庫可以分割成資料和描述資料的綱要(Schema),如下所示:綱要(Schema):資料描述的定義資料,對比程式語言的變數是資料型態(DataType),例如:C語言宣告成整數的age年齡變數,如下圖所示:intage;資料(Data):資料本身,也就是程式語言的變數值,例如:年齡為20,如下所示:age=20;2-3資料庫綱要
(DatabaseSchema)-說明302-3-1三層資料庫綱要-圖例2-3-1三層資料庫綱要-圖例312-3-1三層資料庫綱要-簡單說明三層資料庫綱要每一層的簡單說明,如下所示:外部綱要(ExternalSchema):描述使用的資料。概念綱要(ConceptualSchema):描述資料本身的意義。內部綱要(InternalSchema):描述儲存的資料。2-3-1三層資料庫綱要-簡單說明三層資料庫綱要每一層的簡322-3-1三層資料庫綱要-外部綱要外部綱要(ExternalSchema)外部綱要源於概念綱要,主要是描述外部層顯示的資料,每一個外部層綱要只描述資料庫的部分資料,隱藏其他部分的資料。換句話說,每一個外部層使用者觀點的資料都需要一個外部綱要,在一個資料庫可能擁有多個外部綱要,如下圖所示:2-3-1三層資料庫綱要-外部綱要外部綱要(Externa332-3-1三層資料庫綱要-概念綱要概念綱要(ConceptualSchema)概念綱要是描述概念層的完整資料庫,這是「概念資料庫設計」(ConceptualDatabaseDesign)的結果,概念資料庫設計主要是分析使用者資訊,以便定義所需的資料項目,並不涉及到底是使用那一套資料庫管理系統。概念綱要描述完整資料庫的資料和其關聯,所以資料庫只能擁有一個概念綱要,如下圖所示:2-3-1三層資料庫綱要-概念綱要概念綱要(Concept342-3-1三層資料庫綱要-內部綱要內部綱要(InternalSchema)內部綱要是描述內部層實際觀點的資料,定義資料的儲存結構和那些資料需要建立索引,如同概念綱要,資料庫只擁有一個內部綱要。例如:C語言宣告學生Students的結構,如下:structStudents{charno[5];charname[15];charaddress[40];inttelephone;structDatebirthday;structStudent*next;};2-3-1三層資料庫綱要-內部綱要內部綱要(Interna352-3-2資料庫綱要間的對映-說明三層資料庫綱要只是描述資料,真正的資料是儲存在外部儲存裝置的資料庫。當以外部層使用者觀點顯示資料時,也就是參考外部綱要向概念綱要請求資料,然後概念綱要請求內部綱要從資料庫取得資料,在取得真正的資料後,資料需要進行轉換來符合概念綱要的定義,然後再轉換成符合外部綱要的定義,最後才是外部層使用者觀點看到的資料,在各層間進行的資料轉換過程,稱為「對映」(Mapping)。2-3-2資料庫綱要間的對映-說明三層資料庫綱要只是描述資362-3-2資料庫綱要間的對映-圖例2-3-2資料庫綱要間的對映-圖例372-3-2資料庫綱要間的對映-種類各層綱要間的對映主要有兩種:外部與概念對映(External/ConceptualMapping):所有外部綱要都是對映到概念綱要,以便資料庫管理系統知道如何將外部層的資料連結到那一部分的概念綱要。例如:在外部綱要(S_No,Name,Age),S_No是對映到概念綱要的No,Age是從概念綱要的Birthday運算而得。概念與內部對映(Conceptual/InternalMapping):概念綱要對映到內部綱要的關聯,以便資料庫管理系統可以找到實際儲存裝置的記錄資料後,建立概念綱要的邏輯結構。2-3-2資料庫綱要間的對映-種類各層綱要間的對映主要有兩382-4實體與邏輯資料獨立2-4-1資料獨立的基礎2-4-2邏輯資料獨立2-4-3實體資料獨立2-4實體與邏輯資料獨立2-4-1資料獨立的基礎392-4-1資料獨立的基礎-說明三層資料庫綱要的主要目的是為了達成「資料獨立」(DataIndependence),也就是說上層的綱要並不會受到下層綱要的影響,當下層綱要更改時,也不會影響到上層綱要。與資料獨立相反的術語是「資料相依」(DataDependence)。例如:使用C語言建立「堆疊」(Stacks)資料結構,如下圖所示:2-4-1資料獨立的基礎-說明三層資料庫綱要的主要目的是為402-4-1資料獨立的基礎-種類三層資料庫綱要一共擁有兩種資料獨立:外部與概念對映的邏輯資料獨立(LogicalDataIndependence)。概念與內部對映的實體資料獨立(PhysicalDataIndependence)。2-4-1資料獨立的基礎-種類三層資料庫綱要一共擁有兩種資412-4-2邏輯資料獨立-圖例2-4-2邏輯資料獨立-圖例422-4-2邏輯資料獨立-說明當更改概念綱要,例如:新增或刪除實體、屬性或關聯性,並不用同時更改存在的外部綱要或重寫程式碼,因為可以透過外部與概念對映來達成邏輯資料獨立。每當資料庫需要更改概念綱要時,只需配合修改外部與概念對映的定義,就可以在不更改存在的外部綱要下,取得相同使用者觀點的資料。2-4-2邏輯資料獨立-說明當更改概念綱要,例如:新增或刪432-4-3實體資料獨立-圖例2-4-3實體資料獨立-圖例442-4-3實體資料獨立-說明當更改內部綱要,例如:使用不同的檔案組織或儲存結構,並不用更改概念綱要和外部綱要,因為可以透過概念與內部對映來達成實體資料獨立。每當資料庫需要更改內部綱要時,只需配合修改概念與內部對映的定義,就可以完全不動到概念綱要和外部綱要。2-4-3實體資料獨立-說明當更改內部綱要,例如:使用不同452-5資料庫系統的優缺點2-5-1資料庫系統的優點2-5-2資料庫系統的缺點2-5資料庫系統的優缺點2-5-1資料庫系統的優點462-5-1資料庫系統的優點-1整合的資料管理:相關資料檔案是集中管理,不像檔案處理系統,需要額外操作或程序來處理位在不同檔案的資料。資料共享:資料庫的資料可以由多人共享,允許多人同時存取資料庫,只需透過網路或Internet,就算位在世界各地都可以存取資料庫的資料。減少資料重複(DataRedundancy):不同於檔案處理系統將資料分割成多個檔案來儲存,資料庫系統集中管理資料庫的資料,可以大幅降低資料重複的可能性。2-5-1資料庫系統的優點-1整合的資料管理:相關資料檔案472-5-1資料庫系統的優點-2維持資料的一致性(DataConsistency):因為資料庫系統可以減少資料重複,再加上資料庫管理系統可以檢查完整性限制條件(IntegrityConstraints),不只可以保證輸入資料的正確,還可以維持資料的一致。資料獨立(DataIndependence):在檔案處理系統存取資料需要了解詳細的資料結構,資料庫管理系統提供資料獨立,換句話說,如果資料結構或存取方式改變,並不會影響應用程式的執行,例如:學號從5碼改為6碼,並不需要更改應用程式的程式碼。2-5-1資料庫系統的優點-2維持資料的一致性(Data482-5-1資料庫系統的優點-3提供單一介面和語言存取資料:資料庫系統提供4GL的資料庫語言存取資料庫。例如:SQL語言,或是透過應用程式的操作介面存取資料,可以隱藏資料庫管理系統的實際資料存取方式。更多的資料保密、安全管理和控制能力:資料庫系統提供資料保密、使用者存取權限和資料存取的控制,可以強迫達成標準化的資料管理,例如:標準的文件格式或不同層級的資料存取。提供多種觀點的資料:因為資料庫系統是由多人共享,每位使用者可以分別取得所需的資料,而且以不同的觀點來符合其需求。例如:同樣是教授,它可以是學生的老師,也可以是學校的員工。2-5-1資料庫系統的優點-3提供單一介面和語言存取資料:492-5-1資料庫系統的優點-4支援交易管理(TransactionManagement):資料庫系統提供交易管理和並行處理,可以處理商業交易,保障交易進行的正確無誤。具高可靠性(Reliability):資料庫系統十分可靠,提供備份與回復功能來進一步保障資料的安全,在出現狀況時,可以回復資料庫系統的資料。降低軟體開發的費用:直接選擇現成的資料庫管理系統,然後在管理系統下開發所需的資料庫系統,而不用重頭開發整個資料庫系統。2-5-1資料庫系統的優點-4支援交易管理(Transac502-5-2資料庫系統的缺點-1龐大的額外費用:建構資料庫系統需要升級電腦硬體和軟體環境,一套企業永續經營的資料庫系統,包含網路建置,硬體和軟體升級,將會是一筆相當龐大的額外預算,有可能未蒙其利,先受其害,造成公司財務的負擔。資料轉換的成本:各部門的資料都需要轉換成資料庫結構,以便存入資料庫,這不只是資訊部門的一項大工程,而且需要全公司各部門人員的充分支援。2-5-2資料庫系統的缺點-1龐大的額外費用:建構資料庫系512-5-2資料庫系統的缺點-2安全管理的漏洞:雖然資料庫擁有安全管理能力,但是人為錯誤或非專業人員的控管,資料共享的優點,反而容易造成人為的安全問題,例如:沒有取消離職員工的帳號,增加公司重要資料被竊取的機會。大幅更改作業流程:資料庫系統可能大幅更改現有公司的作業流程,使用者不只需要熟悉全新的應用程式操作,還需要適應新的資料處理流程,如此可能產生額外的人力支援和不合作的使用者,加重資訊部門的負擔和責任。2-5-2資料庫系統的缺點-2安全管理的漏洞:雖然資料庫擁522-5-2資料庫系統的缺點-3系統風險增加:資料庫系統使用集中方式管理資料,一旦系統停擺,將會讓公司蒙受重大損失。資料庫系統可能因為電腦病毒、天災、硬體故障或人為操作錯誤等情況造成系統癱瘓,所以資料庫系統在建置時,就需考量備援系統或額外的保護設備,例如:不斷電系統(Un-interruptPowerSystems)防止不預警的停電。如果是一套全年無休持續運作的NonStop資料庫系統,還需要準備異地備援系統,以免公司主機遭遇地震或火災受損時,仍然可以使用位在其他地方的資料庫系統,維持公司的正常運作。2-5-2資料庫系統的缺點-3系統風險增加:資料庫系統使用532-5-2資料庫系統的缺點-4人為風險增加:事實上,人為錯誤和破壞才是資料庫系統的最大敵人,如果資料庫系統設計錯誤,一旦人為的資料輸入錯誤,小則只是系統受損,大則錯誤的資料,可能造成決策錯誤和管理作業上的混亂。更進一步,如果資訊部門有不肖人員(或駭客),蓄意進行破壞,集中管理的資料庫系統,反而成為最佳的攻擊目標,所以資料庫系統除了系統管理外,相關人員的忠誠管理也是一項重要的工作。2-5-2資料庫系統的缺點-4人為風險增加:事實上,人為錯542-6資料庫管理系統DBMS2-6-1資料庫管理系統的基本功能2-6-2資料庫管理系統的系統架構2-6-3常見的資料庫管理系統2-6資料庫管理系統DBMS2-6-1資料庫管理系統的基552-6資料庫管理系統DBMS「資料庫管理系統」(DatabaseManagementSystem,DBMS)從字面來說,是一套管理資料庫的軟體系統,它是由一組程式模組負責組織、管理、儲存和讀取資料庫系的資料,使用者對於資料庫的任何操作,都一定需要透過資料庫管理系統來處理。2-6資料庫管理系統DBMS「資料庫管理系統」(Datab562-6-1資料庫管理系統的基本功能-資料管理資料管理(DataManagement)資料庫管理系統的最基本功能是資料管理,管理資料庫儲存的各種資料,包含:資料檔、系統目錄、索引資料、備份檔(資料庫管理系統備份資料庫時建立的檔案)和異動記錄,如下圖所示:2-6-1資料庫管理系統的基本功能-資料管理資料管理(Da572-6-1資料庫管理系統的基本功能-資料庫管理系統語言資料庫管理系統語言(DBMSLanguages)資料庫管理系統提供第4代語言(4GL),可以讓使用者定義、查詢或存取資料,資料庫管理系統語言可以分成兩大類,如下所示:資料定義語言DDL(DataDefinitionLanguage):這個語言的主要目的是建立資料庫綱要(DatabaseSchema),其編譯後的指令敘述是儲存在系統目錄(SystemCatalog),使用者只需使用此語言就可以建立資料庫綱要。資料操作語言DML(DataManipulationLanguage):這個語言的指令敘述可以讓使用者存取和操作資料庫的資料,這是使用者與資料庫管理系統間溝通的語言。2-6-1資料庫管理系統的基本功能-資料庫管理系統語言資料582-6-1資料庫管理系統的基本功能-安全管理安全管理(SecurityManagement)資料庫儲存的資料屬於使用者共享的資料,所以資料庫管理系統需要提供使用者安全管理,以避免使用者不當使用資料庫的資料。安全管理通常是指定使用者密碼(Password)來授予存取權限的控制(AccessControl),常用的方式有兩種,如下所示:自由選擇存取控制(DiscretionaryAccessControl,DAC):授予或取消使用者擁有新增、刪除、更新或修改資料的權限。強制存取控制(MandatoryAccessControl,MAC):將資料和使用者分類成不同的安全層級,使用者只能存取授予安全層級的資料。2-6-1資料庫管理系統的基本功能-安全管理安全管理(Se592-6-1資料庫管理系統的基本功能-備份與回復管理備份與回復管理(BackupandRecoverManagement)資料庫備份是將資料庫的資料儲存到備份裝置,例如:磁帶機或可讀寫光碟機,資料庫管理師負責定期備份資料庫。當突發狀況產生時,因為資料庫管理系統會自動產生交易記錄(TransactionLog),可以使用此記錄了解交易(Transaction)的狀態,回復程序可以參考交易記錄正確的回存資料。2-6-1資料庫管理系統的基本功能-備份與回復管理備份與回602-6-1資料庫管理系統的基本功能-交易管理1異動管理(TransactionManagement)資料庫系統通常都會支援商業用途,而商業系統架構的基礎是商業交易,這些商業交易的操作需要一併執行,視為一個無法分割的單位。整個過程對於資料庫來說是一個「交易」(Transaction)。2-6-1資料庫管理系統的基本功能-交易管理1異動管理(T612-6-1資料庫管理系統的基本功能-交易管理2例如:從帳戶A匯款到帳戶B,如下圖所示:2-6-1資料庫管理系統的基本功能-交易管理2例如:從帳戶622-6-1資料庫管理系統的基本功能-交易管理3交易成功是指需要滿足四項基本的交易屬性,以英文字頭的縮寫為ACID交易,如下所示:單元性(Atomicity):將交易過程的每個操作都視為同一個工作,不是全部執行完,就是通通不執行。一致性(Consistency):交易會更改資料庫的資料,不過在交易之前和之後,資料庫的資料仍然需要滿足完整性限制條件,維持資料的一致性。隔離性(Isolation):雖然多個交易是並行處理,不過各交易仍然是獨立的依序執行,任何一個交易並不會影響到其他交易的結果。持續性(Durability):當交易完成後,資料庫資料是永久改變,如果在交易過程中發生錯誤,執行回復程序,回復程序仍然需要執行完整個交易。2-6-1資料庫管理系統的基本功能-交易管理3交易成功是指632-6-1資料庫管理系統的基本功能-資料完整性管理資料完整性管理(DataIntegrityManagement)資料庫管理系統能夠檢查新增或更新資料時,不會產生資料不一致的資料完整性(DataIntegrity)問題。例如:帳戶餘額不能為負值,員工年齡不可超過100歲。2-6-1資料庫管理系統的基本功能-資料完整性管理資料完整642-6-2資料庫管理系統的系統架構-圖例2-6-2資料庫管理系統的系統架構-圖例652-6-2資料庫管理系統的系統架構-儲存管理儲存管理(StorageManager)儲存管理對於簡單的資料庫管理系統來說,就是作業系統檔案管理,不過為了效率考量,資料庫管理系統通常會自行配置磁碟空間,將資料存入位在外部儲存裝置的資料庫,例如:磁碟機,或是從資料庫讀取資料,可以分為:檔案管理(FileManager)實際配置磁碟空間後將資料存入磁碟。緩衝區管理(BufferManager)負責電腦記憶體的管理。2-6-2資料庫管理系統的系統架構-儲存管理儲存管理(St662-6-2資料庫管理系統的系統架構-查詢處理模組查詢處理模組(QueryProcessor)負責處理使用者下達的查詢語言指令敘述,可以再細分成多個模組負責檢查語法、最佳化查詢指令的處理程序。查詢處理模組參考系統目錄的Meta-data進行「查詢轉換」(QueryTransformation),將外部綱要查詢轉換成內部綱要的查詢,或是使用索引加速資料查詢,如果是異動,就交給異動管理來處理。2-6-2資料庫管理系統的系統架構-查詢處理模組查詢處理模672-6-2資料庫管理系統的系統架構-交易管理交易管理(TransactionManager)交易管理(TransactionManager)主要分為:同名的交易管理(TransactionManager)子系統負責處理資料庫的交易,保障資料庫商業交易的操作需要一併執行。「鎖定管理」(LockManager)也稱為「並行控制管理」(Concurrency-ControlManager)子系統負責資源鎖定。2-6-2資料庫管理系統的系統架構-交易管理交易管理(Tr682-6-2資料庫管理系統的系統架構-回復管理回復管理(RecoveryManager)回復管理(RecoveryManager)主要分為:「記錄管理」(LogManager)子系統負責記錄資料庫的所有操作,包含異動操作的記錄,以便同名的「回復管理」(RecoveryManager)子系統能夠執行回復程序,回復資料庫系統。2-6-2資料庫管理系統的系統架構-回復管理回復管理(Re692-6-3常見的資料庫管理系統-商用的資料庫管理系統SQLServer。Access。IBM的DB2。Oracle。INGRES。Sybase。Informix。InterBase。2-6-3常見的資料庫管理系統-商用的資料庫管理系統SQL702-6-3常見的資料庫管理系統-免費的資料庫管理系統MySQL。PostgreSQL。Firebird。2-6-3常見的資料庫管理系統-免費的資料庫管理系統MyS712-7資料庫管理師2-7-1資料庫管理師扮演的角色2-7-2資料庫管理師負責的工作2-7資料庫管理師2-7-1資料庫管理師扮演的角色722-7資料庫管理師-說明「資料庫管理師」(DatabaseAdministrator,DBA)負責和執行一個成功資料庫環境的相關管理和維護工作。事實上,資料庫管理師負責很多工作,它可以是一個人,也可能是一個小組來擔任。簡單的說,資料庫管理師的主要目的是維護資料庫系統的正常運作,並且提供使用者存取所需的資料。2-7資料庫管理師-說明「資料庫管理師」(Database732-7資料庫管理師-所需背景資料庫管理師需要公司管理和資料庫等電腦技術的專業知識,最好是主修資訊或資管科系的人員,其需要的相關電腦知識,如下所示:熟悉作業系統操作。熟悉一種或數種資料庫管理系統的使用。精通資料庫系統提供的查詢語言,例如:SQLServer的Transact-SQL,Oracle的PL/SQL。資料庫設計,至少需要清楚公司資料庫系統的資料庫綱要。對電腦硬體的網路架構有一定的了解,例如:主從架構和Internet網際網路。2-7資料庫管理師-所需背景資料庫管理師需要公司管理和資料742-7-1資料庫管理師扮演的角色2-7-1資料庫管理師扮演的角色752-7-2資料庫管理師負責的工作-維護資料庫綱要維護資料庫綱要資料庫管理師需要參與資料庫設計(DatabaseDesign),提供資料庫設計師關於概念層綱要的修改建議。資料庫管理師需要負責從資料庫使用的資料模型,例如:關聯式資料模型,和系統規格建立有效的資料庫設計,也就是描述資料庫在外部儲存裝置的實際資料結構。其主要的工作,如下:決定哪些資料存入資料庫。決定使用的資料結構決定使用者觀點的資料。2-7-2資料庫管理師負責的工作-維護資料庫綱要維護資料庫762-7-2資料庫管理師負責的工作-資料管理資料管理資料庫管理師最主要的工作是資料管理,提供公司或組織一個集中管理的資料庫,並且依據各部門的需求,提供不同觀點的資料,其主要的工作,如下所示:管理和維護系統目錄(SystemCatalog)。使用者管理和存取控制。資料安全控制(DataSecurityControl)。資料完整性檢查(DataIntegrityChecking)。轉換資料。2-7-2資料庫管理師負責的工作-資料管理資料管理772-7-2資料庫管理師負責的工作-維護和監控資料庫管理系統維護和監控資料庫管理系統對於資料庫管理系統本身,資料庫管理師負責的工作,如下所示:安裝和升級資料庫管理系統。監控和調整資料庫的效能。使用者的稽核追蹤。容量計劃和選擇儲存裝置。備份與回復。2-7-2資料庫管理師負責的工作-維護和監控資料庫管理系統78第2章資料庫系統2-1資料庫環境的四大組成元件2-2ANSI/SPARC的三層資料庫系統架構2-3資料庫綱要(DatabaseSchema)2-4實際與邏輯資料獨立2-5資料庫系統的優缺點2-6資料庫管理系統2-7資料庫管理師第2章資料庫系統2-1資料庫環境的四大組成元件792-1資料庫環境的四大組成元件2-1-1使用者2-1-2資料2-1-3軟體2-1-4硬體2-1資料庫環境的四大組成元件2-1-1使用者802-1資料庫環境的四大組成元件2-1資料庫環境的四大組成元件812-1-1使用者-終端使用者終端使用者(EndUsers)終端使用者(EndUsers)的主要工作是查詢或更新資料庫,或是存取資料庫以產生所需的報表,終端使用者可以分為數種,如下所示:初級使用者(NaiveorParametricUsers)不常使用的使用者(CasualUsers)熟練使用者(SophisticatedUsers)2-1-1使用者-終端使用者終端使用者(EndUsers822-1-1使用者-資料庫設計師資料庫設計師(DatabaseDesigners)資料庫設計師精通資料庫設計,其主要的工作是建立資料庫結構,判斷哪些資料需要儲存在資料庫,和使用什麼樣的結構來儲存這些資料。資料庫設計師通常是使用「資料庫設計工具」(DatabaseDesignTools)來建立資料庫結構。2-1-1使用者-資料庫設計師資料庫設計師(Databas832-1-1使用者-資料庫管理師資料庫管理師(DatabaseAdministrator,DBA)資料庫系統需要一位或一組對整個系統十分了解的人員作為資料庫管理師,負責管理整個資料庫環境。因為資料庫管理師的工作十分專業,需要擁有公司管理和資料庫等電腦技術的專業知識,特別適合主修資訊管理或資訊工程且擁有管理經驗的人員來擔任。2-1-1使用者-資料庫管理師資料庫管理師(Databas842-1-1使用者-系統分析師系統分析師(SystemAnalyst,SA)系統分析師與應用程式設計師屬於「專業使用者」(SpecializedUsers),系統分析師依據終端使用者的需要,主要是指初級使用者(NaiveorParametricUsers)的需要來製定資料庫應用程式的規格與功能。應用程式設計師(ApplicationProgrammer)依據系統分析師定義的規格建立終端使用者使用的資料庫應用程式,利用程式開發工具或指定的程式語言,呼叫資料庫系統提供的「資料庫存取函式庫」(DatabaseAccessLibrary)建立所需的資料庫應用程式。2-1-1使用者-系統分析師系統分析師(SystemAn852-1-2資料-長存資料長存資料(PersistentData)資料庫儲存的是公司或組織的非暫時資料,這些資料是長時間存在的資料,使用者以應用程式使用介面輸入(新增、刪除或更新操作)建立的資料。從這些操作的資料可以進一步執行各項查詢和運算,以得到使用者所需的資料。2-1-2資料-長存資料長存資料(PersistentD862-1-2資料-系統目錄系統目錄(SystemCatalog)系統目錄是由資料庫管理系統自動產生的資料,在資料庫管理系統稱為「系統目錄」(SystemCatalog或稱為DataDictionary),其內容是從前述的操作資料所衍生的一些資料。例如:資料庫結構的定義資料,它是用來描述資料本身,也稱為中繼資料(Thedataaboutdata),系統目錄的主要用途是用來提供維護資料庫所需的資訊。2-1-2資料-系統目錄系統目錄(SystemCatal872-1-2資料-索引資料(說明)索引資料(Indexes)「索引」(Indexes)的目的是為了在資料庫儲存的龐大資料中能夠更快速的找到資料。索引資料是一些參考資料,這是將資料庫中特定部分(屬性)的資料預先進行排序,並且提供「指標」(Pointer)指向資料庫真正儲存資料的位置,資料庫管理系統使用雜湊函數(HashFunction)或B樹(B-Tree)等演算法來建立索引資料。2-1-2資料-索引資料(說明)索引資料(Indexes)882-1-2資料-索引資料(圖例)例如:在關聯式資料庫的Students關聯表,建立GPA屬性的單層有序次索引,如下圖所示:2-1-2資料-索引資料(圖例)例如:在關聯式資料庫的St892-1-2資料-交易記錄交易記錄(TransactionLog)交易記錄是資料庫管理系統自動產生的歷史資料,可以記錄使用者在什麼時間下達什麼指令或執行什麼操作。這些資料對於一般使用者而言,並沒有什麼用處,但是對於資料庫管理師來說,就是十分重要的參考資訊。2-1-2資料-交易記錄交易記錄(Transaction902-1-3軟體-資料庫管理系統(說明)資料庫管理系統(DBMS)資料庫管理系統是一組程式模組用來定義、處理和管理資料庫的資料,在此主要是指那些通用用途的資料庫管理系統,如下圖所示:2-1-3軟體-資料庫管理系統(說明)資料庫管理系統(DB912-1-3軟體-資料庫管理系統(語言)資料庫管理系統語言(DBMSLanguages)主要可以分成二個部分,如下所示:定義部分:使用資料定義語言(DataDefinitionLanguage,DDL)定義資料庫的結構。操作部分:直接使用資料操作語言(DataManipulationLanguage,DML)或透過應用程式介面產生,就可以查詢資料庫資料或新增、刪除或更新資料庫的資料。2-1-3軟體-資料庫管理系統(語言)資料庫管理系統語言(922-1-3軟體-應用程式應用程式(ApplicationProgram)應用程式是程式設計師使用開發工具或程式語言,所自行建立的專屬軟體。應用程式提供使用者相關的使用介面,透過使用介面的選單或按鈕,就可以向資料庫管理系統下達查詢語言的相關指令,在取得所需資料後,顯示或產生所需的報表。換句話說,配合公司或組織的需求,我們可以在資料庫管理系統的基礎上,建立各種不同的應用程式。例如:選課系統、人事資料系統、進銷存系統、會計系統和公文系統等。2-1-3軟體-應用程式應用程式(Application932-1-3軟體-開發工具開發工具(DevelopmentTools)開發工具是用來建立資料庫和開發應用程式。例如:資料庫設計工具、資料庫開發工具或程式語言的整合開發環境,它可以幫助資料庫設計師建立資料庫結構和程式設計者快速建立應用程式。例如:PowerBuilder、OracleDeveloper、VisualStudio.NET和VisualStuido2005等。2-1-3軟體-開發工具開發工具(Development942-1-4硬體安裝資料庫相關軟體的硬體設備,包含:主機(CPU、記憶體和網路卡等)、磁碟機、磁碟陣列、光碟機、磁帶機和備份裝置。整個資料庫系統的硬體處理架構依其運算方式,可以分為:集中式或分散式的主從架構。2-1-4硬體安裝資料庫相關軟體的硬體設備,包含:主機(C952-2ANSI/SPARC的三層資料庫系統架構2-2-1概念層2-2-2外部層2-2-3內部層2-2-4ANSI/SPARC三層資料庫架構的目的2-2ANSI/SPARC的三層資料庫系統架構2-2-1962-2ANSI/SPARC的三層資料庫系統架構-圖例2-2ANSI/SPARC的三層資料庫系統架構-圖例972-2ANSI/SPARC的三層資料庫系統架構-簡單說明概念層(ConceptualLevel):資料庫管理師觀點的資料,這是資料庫儲存的完整資料,屬於在概念上看到的完整資料庫。外部層(ExternalLevel):一般使用者觀點的資料,代表不同使用者在資料庫系統所看見的資料,通常只是部分資料庫的資料。內部層(InternalLevel):實際觀點所呈現的資料,這是實際資料庫儲存在電腦儲存裝置的資料。2-2ANSI/SPARC的三層資料庫系統架構-簡單說明概982-2-1概念層-說明在概念層看到的是整個資料庫儲存的資料,這是資料庫管理師觀點所看到的完整資料庫。因為它只是概念上的資料庫,所以並不用考量資料實際的儲存結構,因為這是內部層(InternalLevel)的問題。2-2-1概念層-說明在概念層看到的是整個資料庫儲存的資料992-2-1概念層-範例關聯式資料模型的資料庫在概念層所見的是以二維表格顯示的資料,如下圖所示:關聯式資料庫的「關聯表」(Relations)是資料庫所看到的完整資料。2-2-1概念層-範例關聯式資料模型的資料庫在概念層所見的1002-2-2外部層-說明資料庫系統使用者面對的是外部層,這是使用者觀點(UserViews)的資料,包含多種不同觀點的資料,例如:一間大學或技術學院,不同使用者的觀點,如下:使用者觀點1:學生註冊資料使用者觀點2:學生選課資料使用者觀點3:學生成績單資料2-2-2外部層-說明資料庫系統使用者面對的是外部層,這是1012-2-2外部層-範例資料以不同的方式呈現:外部層的資料如同裁縫師手上的布,可以將概念層的資料剪裁成不同衣服樣式的資料。例如:使用清單、表格或表單內容(例如:VisualBasic的表單或HTML表單)等方式來呈現資料。只包含使用者有興趣的資料:外部層的資料只是部分資料庫,例如:二位使用者分別看到Students關聯表的部分或導出內容,年齡Age是由生日計算而得。相同資料可以顯示不同格式:雖然在資料庫儲存的資料是單一格式,不過在顯示時可以使用不同格式。2-2-2外部層-範例資料以不同的方式呈現:外部層的資料如1022-2-3內部層在內部層看到的是實際觀點的資料庫,這是實際儲存在磁碟等外部儲存裝置的資料,內部層在三層架構中扮演資料庫管理系統與作業系統的介面。在內部層的資料是實際儲存在資料庫的資料結構或檔案組織所呈現的資料,例如:使用鏈結串列結構儲存資料,如下圖所示:2-2-3內部層在內部層看到的是實際觀點的資料庫,這是實際1032-2-4ANSI/SPARC三層資料庫架構的目的-使用者角度使用者觀點所見的資料是獨立的:不同使用者可以存取相同資料,只是觀點可能不同,但是,各觀點的資料是獨立的,更改觀點的資料,並不會影響其他使用者觀點的資料。使用者並不用了解實際資料的儲存方式:使用者的焦點是在處理資料本身,而不是了解到底這些資料是如何儲存。2-2-4ANSI/SPARC三層資料庫架構的目的-使用者1042-2-4ANSI/SPARC三層資料庫架構的目的-資料庫管理師角度更改實際儲存結構不會影響使用者觀點的資料:當有全新的儲存結構和索引技術時,就算更改資料庫的儲存結構,也不會影響外部層使用者觀點的資料。更改概念層的完整資料庫也不會影響使用者觀點的資料:如果將資料庫從關聯式資料模型改為物件導向式資料庫模型時,我們仍然可以顯示完全相同的使用者觀點資料,並不會影響使用者看到的資料。2-2-4ANSI/SPARC三層資料庫架構的目的-資料庫1052-3資料庫綱要
(DatabaseSchema)2-3-1三層資料庫綱要2-3-2資料庫綱要間的對映
2-3資料庫綱要
(DatabaseSchema)2-31062-3資料庫綱要
(DatabaseSchema)-圖例「資料庫綱要」(DatabaseSchema)是指整個資料庫的描述,即描述整個資料庫儲存資料的定義資料,如下圖所示:2-3資料庫綱要
(DatabaseSchema)-圖例1072-3資料庫綱要
(DatabaseSchema)-說明資料庫管理系統管理的資料庫可以分割成資料和描述資料的綱要(Schema),如下所示:綱要(Schema):資料描述的定義資料,對比程式語言的變數是資料型態(DataType),例如:C語言宣告成整數的age年齡變數,如下圖所示:intage;資料(Data):資料本身,也就是程式語言的變數值,例如:年齡為20,如下所示:age=20;2-3資料庫綱要
(DatabaseSchema)-說明1082-3-1三層資料庫綱要-圖例2-3-1三層資料庫綱要-圖例1092-3-1三層資料庫綱要-簡單說明三層資料庫綱要每一層的簡單說明,如下所示:外部綱要(ExternalSchema):描述使用的資料。概念綱要(ConceptualSchema):描述資料本身的意義。內部綱要(InternalSchema):描述儲存的資料。2-3-1三層資料庫綱要-簡單說明三層資料庫綱要每一層的簡1102-3-1三層資料庫綱要-外部綱要外部綱要(ExternalSchema)外部綱要源於概念綱要,主要是描述外部層顯示的資料,每一個外部層綱要只描述資料庫的部分資料,隱藏其他部分的資料。換句話說,每一個外部層使用者觀點的資料都需要一個外部綱要,在一個資料庫可能擁有多個外部綱要,如下圖所示:2-3-1三層資料庫綱要-外部綱要外部綱要(Externa1112-3-1三層資料庫綱要-概念綱要概念綱要(ConceptualSchema)概念綱要是描述概念層的完整資料庫,這是「概念資料庫設計」(ConceptualDatabaseDesign)的結果,概念資料庫設計主要是分析使用者資訊,以便定義所需的資料項目,並不涉及到底是使用那一套資料庫管理系統。概念綱要描述完整資料庫的資料和其關聯,所以資料庫只能擁有一個概念綱要,如下圖所示:2-3-1三層資料庫綱要-概念綱要概念綱要(Concept1122-3-1三層資料庫綱要-內部綱要內部綱要(InternalSchema)內部綱要是描述內部層實際觀點的資料,定義資料的儲存結構和那些資料需要建立索引,如同概念綱要,資料庫只擁有一個內部綱要。例如:C語言宣告學生Students的結構,如下:structStudents{charno[5];charname[15];charaddress[40];inttelephone;structDatebirthday;structStudent*next;};2-3-1三層資料庫綱要-內部綱要內部綱要(Interna1132-3-2資料庫綱要間的對映-說明三層資料庫綱要只是描述資料,真正的資料是儲存在外部儲存裝置的資料庫。當以外部層使用者觀點顯示資料時,也就是參考外部綱要向概念綱要請求資料,然後概念綱要請求內部綱要從資料庫取得資料,在取得真正的資料後,資料需要進行轉換來符合概念綱要的定義,然後再轉換成符合外部綱要的定義,最後才是外部層使用者觀點看到的資料,在各層間進行的資料轉換過程,稱為「對映」(Mapping)。2-3-2資料庫綱要間的對映-說明三層資料庫綱要只是描述資1142-3-2資料庫綱要間的對映-圖例2-3-2資料庫綱要間的對映-圖例1152-3-2資料庫綱要間的對映-種類各層綱要間的對映主要有兩種:外部與概念對映(External/ConceptualMapping):所有外部綱要都是對映到概念綱要,以便資料庫管理系統知道如何將外部層的資料連結到那一部分的概念綱要。例如:在外部綱要(S_No,Name,Age),S_No是對映到概念綱要的No,Age是從概念綱要的Birthday運算而得。概念與內部對映(Conceptual/InternalMapping):概念綱要對映到內部綱要的關聯,以便資料庫管理系統可以找到實際儲存裝置的記錄資料後,建立概念綱要的邏輯結構。2-3-2資料庫綱要間的對映-種類各層綱要間的對映主要有兩1162-4實體與邏輯資料獨立2-4-1資料獨立的基礎2-4-2邏輯資料獨立2-4-3實體資料獨立2-4實體與邏輯資料獨立2-4-1資料獨立的基礎1172-4-1資料獨立的基礎-說明三層資料庫綱要的主要目的是為了達成「資料獨立」(DataIndependence),也就是說上層的綱要並不會受到下層綱要的影響,當下層綱要更改時,也不會影響到上層綱要。與資料獨立相反的術語是「資料相依」(DataDependence)。例如:使用C語言建立「堆疊」(Stacks)資料結構,如下圖所示:2-4-1資料獨立的基礎-說明三層資料庫綱要的主要目的是為1182-4-1資料獨立的基礎-種類三層資料庫綱要一共擁有兩種資料獨立:外部與概念對映的邏輯資料獨立(LogicalDataIndependence)。概念與內部對映的實體資料獨立(PhysicalDataIndependence)。2-4-1資料獨立的基礎-種類三層資料庫綱要一共擁有兩種資1192-4-2邏輯資料獨立-圖例2-4-2邏輯資料獨立-圖例1202-4-2邏輯資料獨立-說明當更改概念綱要,例如:新增或刪除實體、屬性或關聯性,並不用同時更改存在的外部綱要或重寫程式碼,因為可以透過外部與概念對映來達成邏輯資料獨立。每當資料庫需要更改概念綱要時,只需配合修改外部與概念對映的定義,就可以在不更改存在的外部綱要下,取得相同使用者觀點的資料。2-4-2邏輯資料獨立-說明當更改概念綱要,例如:新增或刪1212-4-3實體資料獨立-圖例2-4-3實體資料獨立-圖例1222-4-3實體資料獨立-說明當更改內部綱要,例如:使用不同的檔案組織或儲存結構,並不用更改概念綱要和外部綱要,因為可以透過概念與內部對映來達成實體資料獨立。每當資料庫需要更改內部綱要時,只需配合修改概念與內部對映的定義,就可以完全不動到概念綱要和外部綱要。2-4-3實體資料獨立-說明當更改內部綱要,例如:使用不同1232-5資料庫系統的優缺點2-5-1資料庫系統的優點2-5-2資料庫系統的缺點2-5資料庫系統的優缺點2-5-1資料庫系統的優點1242-5-1資料庫系統的優點-1整合的資料管理:相關資料檔案是集中管理,不像檔案處理系統,需要額外操作或程序來處理位在不同檔案的資料。資料共享:資料庫的資料可以由多人共享,允許多人同時存取資料庫,只需透過網路或Internet,就算位在世界各地都可以存取資料庫的資料。減少資料重複(DataRedundancy):不同於檔案處理系統將資料分割成多個檔案來儲存,資料庫系統集中管理資料庫的資料,可以大幅降低資料重複的可能性。2-5-1資料庫系統的優點-1整合的資料管理:相關資料檔案1252-5-1資料庫系統的優點-2維持資料的一致性(DataConsistency):因為資料庫系統可以減少資料重複,再加上資料庫管理系統可以檢查完整性限制條件(IntegrityConstraints),不只可以保證輸入資料的正確,還可以維持資料的一致。資料獨立(DataIndependence):在檔案處理系統存取資料需要了解詳細的資料結構,資料庫管理系統提供資料獨立,換句話說,如果資料結構或存取方式改變,並不會影響應用程式的執行,例如:學號從5碼改為6碼,並不需要更改應用程式的程式碼。2-5-1資料庫系統的優點-2維持資料的一致性(Data1262-5-1資料庫系統的優點-3提供單一介面和語言存取資料:資料庫系統提供4GL的資料庫語言存取資料庫。例如:SQL語言,或是透過應用程式的操作介面存取資料,可以隱藏資料庫管理系統的實際資料存取方式。更多的資料保密、安全管理和控制能力:資料庫系統提供資料保密、使用者存取權限和資料存取的控制,可以強迫達成標準化的資料管理,例如:標準的文件格式或不同層級的資料存取。提供多種觀點的資料:因為資料庫系統是由多人共享,每位使用者可以分別取得所需的資料,而且以不同的觀點來符合其需求。例如:同樣是教授,它可以是學生的老師,也可以是學校的員工。2-5-1資料庫系統的優點-3提供單一介面和語言存取資料:1272-5-1資料庫系統的優點-4支援交易管理(TransactionManagement):資料庫系統提供交易管理和並行處理,可以處理商業交易,保障交易進行的正確無誤。具高可靠性(Reliability):資料庫系統十分可靠,提供備份與回復功能來進一步保障資料的安全,在出現狀況時,可以回復資料庫系統的資料。降低軟體開發的費用:直接選擇現成的資料庫管理系統,然後在管理系統下開發所需的資料庫系統,而不用重頭開發整個資料庫系統。2-5-1資料庫系統的優點-4支援交易管理(Transac1282-5-2資料庫系統的缺點-1龐大的額外費用:建構資料庫系統需要升級電腦硬體和軟體環境,一套企業永續經營的資料庫系統,包含網路建置,硬體和軟體升級,將會是一筆相當龐大的額外預算,有可能未蒙其利,先受其害,造成公司財務的負擔。資料轉換的成本:各部門的資料都需要轉換成資料庫結構,以便存入資料庫,這不只是資訊部門的一項大工程,而且需要全公司各部門人員的充分支援。2-5-2資料庫系統的缺點-1龐大的額外費用:建構資料庫系1292-5-2資料庫系統的缺點-2安全管理的漏洞:雖然資料庫擁有安全管理能力,但是人為錯誤或非專業人員的控管,資料共享的優點,反而容易造成人為的安全問題,例如:沒有取消離職員工的帳號,增加公司重要資料被竊取的機會。大幅更改作業流程:資料庫系統可能大幅更改現有公司的作業流程,使用者不只需要熟悉全新的應用程式操作,還需要適應新的資料處理流程,如此可能產生額外的人力支援和不合作的使用者,加重資訊部門的負擔和責任。2-5-2資料庫系統的缺點-2安全管理的漏洞:雖然資料庫擁1302-5-2資料庫系統的缺點-3系統風險增加:資料庫系統使用集中方式管理資料,一旦系統停擺,將會讓公司蒙受重大損失。資料庫系統可能因為電腦病毒、天災、硬體故障或人為操作錯誤等情況造成系統癱瘓,所以資料庫系統在建置時,就需考量備援系統或額外的保護設備,例如:不斷電系統(Un-interruptPowerSystems)防止不預警的停電。如果是一套全年無休持續運作的NonStop資料庫系統,還需要準備異地備援系統,以免公司主機遭遇地震或火災受損時,仍然可以使用位在其他地方的資料庫系統,維持公司的正常運作。2-5-2資料庫系統的缺點-3系統風險增加:資料庫系統使用1312-5-2資料庫系統的缺點-4人為風險增加:事實上,人為錯誤和破壞才是資料庫系統的最大敵人,如果資料庫系統設計錯誤,一旦人為的資料輸入錯誤,小則只是系統受損,大則錯誤的資料,可能造成決策錯誤和管理作業上的混亂。更進一步,如果資訊部門有不肖人員(或駭客),蓄意進行破壞,集中管理的資料庫系統,反而成為最佳的攻擊目標,所以資料庫系統除了系統管理外,相關人員的忠誠管理也是一項重要的工作。2-5-2資料庫系統的缺點-4人為風險增加:事實上,人為錯1322-6資料庫管理系統DBMS2-6-1資料庫管理系統的基本功能2-6-2資料庫管理系統的系統架構2-6-3常見的資料庫管理系統2-6資料庫管理系統DBMS2-6-1資料庫管理系統的基1332-6資料庫管理系統DBMS「資料庫管理系統」(DatabaseManagementSystem,DBMS)從字面來說,是一套管理資料庫的軟體系統,它是由一組程式模組負責組織、管理、儲存和讀取資料庫系的資料,使用者對於資料庫的任何操作,都一定需要透過資料庫管理系統來處理。2-6資料庫管理系統DBMS「資料庫管理系統」(Datab1342-6-1資料庫管理系統的基本功能-資料管理資料管理(DataManagement)資料庫管理系統的最基本功能是資料管理,管理資料庫儲存的各種資料,包含:資料檔、系統目錄、索引資料、備份檔(資料庫管理系統備份資料庫時建立的檔案)和異動記錄,如下圖所示:2-6-1資料庫管理系統的基本功能-資料管理資料管理(Da1352-6-1資料庫管理系統的基本功能-資料庫管理系統語言資料庫管理系統語言(DBMSLanguages)資料庫管理系統提供第4代語言(4GL),可以讓使用者定義、查詢或存取資料,資料庫管理系統語言可以分成兩大類,如下所示:資料定義語言DDL(DataDefinitionLanguage):這個語言的主要目的是建立資料庫綱要(DatabaseSchema),其編譯後的指令敘述是儲存在系統目錄(SystemCatalog),使用者只需使用此語言就可以建立資料庫綱要。資料操作語言DML(DataManipulationLanguage):這個語言的指令敘述可以讓使用者存取和操作資料庫的資料,這是使用者與資料庫管理系統間溝通的語言。2-6-1資料庫管理系統的基本功能-資料庫管理系統語言資料1362-6-1資料庫管理系統的基本功能-安全管理安全管理(SecurityManagement)資料庫儲存的資料屬於使用者共享的資料,所以資料庫管理系統需要提供使用者安全管理,以避免使用者不當使用資料庫的資料。安全管理通常是指定使用者密碼(Password)來授予存取權限的控制(AccessControl),常用的方式有兩種,如下所示:自由選擇存取控制(DiscretionaryAccessControl,DAC):授予或取消使用者擁有新增、刪除、更新或修改資料的權限。強制存取控制(MandatoryAccessControl,MAC):將資料和使用者分類成不同的安全層級,使用者只能存取授予安全層級的資料。2-6-1資料庫管理系統的基本功能-安全管理安全管理(Se1372-6-1資料庫管理系統的基本功能-備份與回復管理備份與回復管理(BackupandRecoverManagement)資料庫備份是將資料庫的資料儲存到備份裝置,例如:磁帶機或可讀寫光碟機,資料庫管理師負責定期備份資料庫。當突發狀況產生時,因為資料庫管理系統會自動產生交易記錄(TransactionLog),可以使用此記錄了解交易(Transaction)的狀態,回復程序可以參考交易記錄正確的回存資料。2-6-1資料庫管理系統的基本功能-備份與回復管理備份與回1382-6-1資料庫管理系統的基本功能-交易管理1異動管理(TransactionManagement)資料庫系統通常都會支援商業用途,而商業系統架構的基礎是商業交易,這些商業交易的操作需要一併執行,視為一個無法分割的單位。整個過程對於資料庫來說是一個「交易」(Transaction)。2-6-1資料庫管理系統的基本功能-交易管理1異動管理(T1392-6-1資料庫管理系統的基本功能-交易管理2例如:從帳戶A匯款到帳戶B,如下圖所示:2-6-1資料庫管理系統的基本功能-交易管理2例如:從帳戶1402-6-1資料庫管理系統的基本功能-交易管理3交易成功是指需要滿足四項基本的交易屬性,以英文字頭的縮寫為ACID交易,如下所示:單元性(At
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游景区观光车维修
- 体育公园开发土地招投标合同
- 农村耕地租赁合同:农业检测
- 材料科学院校校长招聘合同
- 政府办公楼幕墙施工合同
- 生物工程设备管理办法
- 医疗卫生设施立项管理办法
- 国际关系培训班租赁合同
- 公交站台候车时间显示
- 住宅小区垃圾处理招标要求
- 疟疾病例流行病学个案调查表及疟疾暴发疫情报告表
- IATF16949 年度内审审核方案
- 计算机应用基础(中等职业学校校本教材)
- 2022年广州中考物理真题及答案
- 三年级上册道德与法治教案-第三单元第8课《安全记心上》第一课时说课 部编版
- 初中数学北师大七年级上册(2023年修订) 一元一次方程分段计费问题教案
- 教育评价学全套ppt课件完整版教学教程
- 东华大学学生手册题库
- GB∕T 10238-2015 油井水泥-行业标准
- 罗伊护理个案模板
- 新人教PEP版六年级上册英语 Unit 4 Part A1 教学课件
评论
0/150
提交评论