- 名詞解釋
DB(Database) 數據庫
DB是長期存儲在計算機內的,有組織的、統一管理的相關數據的集合。DB能為各種用戶共享,具有較小的冗余度、數據間聯系緊密而又有較高的數據獨立性等特點。
DBMS(Database Management System) 數據庫管理系統
DBMS是位於用戶與操作系統(OS)之間的一層數據管理軟件,它為用戶或應用程序提供訪問DB的方法,包括DB的建立、查詢、更新等各種數據控制。DBMS總是基於某種模型,可以分為層次型、網狀型、關系型和面向對象型等。
DBS(Database System) 數據庫系統
DBS是實現有組織地、動態地存儲大量關聯數據、方便多用戶訪問的計算機硬件、軟件和數據資源組成的系統,即它是采用數據庫技術的計算機系統。
數據庫技術
數據庫技術是研究數據庫的結構、存儲、設計、管理和使用的一門軟件科學。
聯系的元數
聯系(Relationship)是實體間的相互關系。與一個聯系有關的實體集個數,稱為聯系的元數。
1:1聯系
二元聯系的一種類型。一對一聯系:如果實體集E1中每個實體至多和實體集E2中的一個實體有聯系,反之亦然,那么實體集E1和E2的聯系稱為“一對一聯系”,記為“1:1”。
1:N聯系
二元聯系的一種類型。一對多聯系:如果實體集E1中每個實體可以與實體集E2中任意個(零個或多個)實體間有聯系,而E2中每個實體至多和E1中一個實體有聯系,那么稱E1對E2的聯系是“一對多聯系”,記為“1:N”。
M:N聯系
二元聯系的一種類型。多對多聯系:如果實體集E1中的每個實體可以與實體集E2中任意個(零個或多個)實體間有聯系,反之亦然,那么稱E1與E2的聯系是“多對多聯系”,記為“M:N”。
數據模型
模型(Model)是對現實世界的抽象。在數據庫技術中,我們用數據模型(Data Model)的概念描述數據庫的結構和語義,對現實世界的數據進行抽象。根據數據抽象的級別定義了四種模型:概念數據模型、邏輯數據模型、外部數據模型和內部數據模型。一般在提及時省略“數據”兩字。
概念模型
表達用戶需求觀點的數據全局邏輯結構的模型,稱為“概念模型”。
邏輯模型
表達計算機實現觀點的DB全局邏輯結構的模型,稱為“邏輯模型”。
1、層次模型(hierarchical Model):用樹型(層次)結構表示實體類型及實體間聯系的數據模型稱為層次模型。樹中的節點是記錄類型,每個非根節點有且只有一個父節點。上層記錄類型和下一層記錄類型之間的聯系是1:N聯系。
2、網狀模型(Network Model):用有向圖結構表示實體類型及實體間聯系的數據模型稱為網狀模型。
3、關系模型(Relational Model):關系模型是由若干個關系模式(Relational Schema)組成的集合。
外部模型
表達用戶使用觀點的DB局部邏輯結構的模型,稱為“外部模型”。
內部模型
表達DB物理結構的模型,稱為“內部模型”。
三層模式和兩級映像
在用戶(或應用程序)到數據庫之間,DB的數據結構有三個層次:外部模型、邏輯模型和內部模型。這三個層次要用DB的數據定義語言(Data Definition language,簡記為DDL)定義,定義以后的內容稱為“模式”(Schema),即外模式、邏輯模式和內模式。
1、外模式:是用戶與數據庫系統的接口,是用戶用到的那部分數據的描述。外模式由若干個外部記錄類型組成。
2、邏輯模式:是數據庫中全部數據的整體邏輯結構的描述。它由若干個邏輯記錄類型組成,還包含記錄間聯系、數據的完整性安全性等要求。
3、內模式:是數據庫在物理存儲方面的描述,定義所有內部記錄類型、索引和文件的組織方式,以及數據控制方面的細節。
4、外模式/邏輯模式映像:存在於外模式和邏輯模式之間,用於定義外模式和邏輯模式之間的對應性。這個映像一般是放在外模式中描述的。
5、邏輯模式/內模式映像:存在於邏輯模式和內模式之間,用於定義邏輯模式和內模式之間的對應性。這個映像一般是放在內模式中描述的。
數據獨立性(Data Indepandence)
是指應用程序和數據庫的數據結構之間相互獨立,不受影響。在修改數據結構時,盡可能不修改應用程序,則稱系統達到了數據獨立性目標。數據獨立性分成物理數據獨立性和邏輯數據獨立性兩個級別。
1、物理獨立性:如果數據庫的內模式要修改,即數據庫的物理結構有所變化,那么只要對邏輯模式/內模式映像(即“對應性”)作相應的修改,可以使邏輯模式盡可能保持不變。也就是對內模式的修改盡量不影響邏輯模式,當然對於外模式和應用程序的影響更小,這樣,我們稱數據庫達到了物理數據獨立性(簡稱物理獨立性)。
2、邏輯獨立性:如果數據庫的邏輯模式要修改,譬如增加記錄類型或增加數據項,那么只要對外模式/邏輯模式映像作相應修改,可以使外模式和應用程序盡可能保持不變。這樣,我們稱數據庫達到了邏輯數據獨立性(簡稱邏輯獨立性)。
主語言
編寫應用程序的語言可以是COBOL、PL/I、C、C++、Java一類高級程序設計語言,這些語言稱為主語言或宿主語言(host language)。
DDL
數據定義語言(Data Definition Language,簡記為DDL)。
DML
數據操縱語言(Data Manipulation Language,簡記為DML)。
過程性語言
過程性DML是指用戶編程時,不僅需要指出”做什么“(需要什么樣的數據),還需要指出”怎么做“(怎樣獲得這些數據)
非過程性語言
非過程性DML是指用戶編程時,只需要指出“做什么”,不需要指出“怎么做”。
DD
數據庫系統中存放三級結構定義的數據庫稱為數據字典(Data Dicationary,DD)。對數據庫的操作都要通過DD才能實現。DD中還存放數據庫運行時的統計信息,例如記錄個數、訪問次數等。
DD系統
管理DD的子系統稱為“DD系統”。
人工管理階段的數據管理的特點
(1)數據不保存在計算機內。
(2)沒有專用的軟件對數據進行管理。
(3)只有程序(Program)的概念,沒有文件(File)的概念。數據的組織方式必須由程序員自行設計與安排。
(4)數據面向程序。即一組數據對應一個程序。
文件系統階段的數據管理特點
(1)數據以“文件”形式可長期保存在外部存儲器的磁盤上。
(2)數據的邏輯結構與物理結構有了區別,但比較簡單。
(3)文件組織已多樣化。
(4)數據不再屬於某個特定程序,可以重復使用,即數據面向應用。
(4)對數據的操作以記錄為單位。
文件系統階段的數據管理缺陷
(1)數據冗余(Redundancy)。
(2)數據不一致(Inconsistency)。
(3)數據不一致(Poor Data Relationship)。
數據管理的數據庫階段產生的三件標志性事情
(1)1968年美國IBM公司推出層次模型的IMS(Information Management System)系統;
(2)1969年美國CODASYL(Conference On Data System Language)組織發布了DBTG(Data Base Task Group)報告。總結了當時各式各樣的數據庫,提出網狀模型,爾后於1971年4月正式通過;
(3)1970年美國IBM公司的E.F.Codd連續發表論文,提出關系模型,奠定了關系數據庫的理論基礎。
數據庫階段的數據管理特點
(1)采用數據模型表示復雜的數據結構。
(2)有較高的數據獨立性。
(3)數據庫系統為用戶提供了方便的用戶接口。
(4)數據庫系統提供了以下四方面的數據控制功能:
1.數據庫的恢復:在數據庫被破壞或數據不可靠時,系統有能力把數據庫恢復到最近某個正確狀態。
2.數據庫的並發控制:對程序的並發操作加以控制,防止數據庫被破壞,杜絕提供給用戶不正確的數據。
3.數據的完整性:保證數據庫中的數據始終是正確的。
4.數據安全性:保證數據的安全,防止數據丟失或被竊取、破壞。
(5)增加了系統的靈活性:對數據的操作不一定以記錄為單位,可以以數據項為單位。
高級數據庫階段的技術
(1)20世紀80年代的分布式數據庫系統。
(2)90年代的對象數據庫系統。
1.面向對象的概念建模
(3)21世紀的Web數據庫系統。
1.開放數據庫互連技術
邏輯記錄與物理記錄,邏輯文件與物理文件的聯系和區別(聯系和區別想的不是很明白)
邏輯記錄是邏輯設計中的數據的一種描述,邏輯設計中字段的有序集合稱為記錄。一般,用一個記錄描述一個實體,所以記錄又可以定義為能完整的描述一個實體的字段集。
物理記錄是物理存儲中數據的一種描述,又稱為物理塊或塊,塊是內存和外存交換信息的最小單位,每塊的大小,通常為2^10 ~ 2^14字節。內、外存信息交換是由操作系統的文件系統管理的。
邏輯文件是同一類記錄的集合。用來描述實體集。
物理文件是真實存在的,是有數據的。
對於聯系和區別理解的不是很好,看到網上一段這樣的解釋:物理文件相當於table,邏輯文件相當於view,物理文件是有數據的,而邏輯文件是沒有數據的。還有,它們都是object。(摘抄自http://bbs.chinaunix.net/thread-329732-1-1.html)
數據抽象過程的步驟
第1步:根據用戶需求,設計數據庫的概念模型,這是一個“綜合”的過程。
第2步:根據轉換規則,把概念模型轉換成數據庫的邏輯模型,這是一個“轉換”的過程。
第3步:根據用戶的業務特點,設計不同的外部模型,給程序員使用。也就是應用程序使用的是數據庫的外部模型。外部模型與邏輯模型之間的對應性稱為映像。
第4步:數據庫實現時,要根據邏輯模型設計其內部模型。內部模型與邏輯模型之間的對應性稱為映像。
概念模型、邏輯模型、外部模型和內部模型各自的特點
概念模型的特點:
1> 概念模型表達了數據的整體邏輯結構,它是系統用戶對整個應用項目涉及的數據的全面描述。
2> 概念模型是從用戶需求的觀點出發,對數據建模。
3> 概念模型獨立於硬件和軟件。硬件獨立意味着概念模型不依賴於硬件設備,軟件獨立意味着該模型不依賴於實現時的DBMS軟件。因此硬件或軟件的變化都不會影響DB的概念模型設計。
4> 概念模型是數據庫設計人員與用戶之間進行交流的工具。
邏輯模型的特點:
1> 邏輯模型表達了DB的整體邏輯結構,但它是設計人員對整個應用項目數據庫的全面描述。
2> 邏輯模型是從數據庫實現的觀點出發,對數據建模。
3> 邏輯模型獨立於硬件,但依賴於軟件(DBMS)。
4> 邏輯模型是數據庫設計人員與應用程序員之間進行交流的工具。
外部模型的特點:
1> 外部模型是邏輯模型的一個邏輯子集。
2> 外部模型獨立於硬件,依賴於軟件。
3> 外部模型反映了用戶使用數據庫的觀點。
內部模型的特點:
1> 它描述數據在磁盤或磁帶上的存儲方式(文件的結構)、存取社保(外存的控件分配)和存取方法(主索引和輔助索引)。
層次、網狀和關系三種邏輯數據模型的區別
層次模型和網狀模型中,記錄之間通過指針來實現,查詢效率較高。層次模型只能表示1:N關系,網狀模型不僅能表示1:N聯系,還能表示M:N聯系。關系模型和層次、網狀模型的最大差別是用關鍵碼而不是用指針導航數據。
外部模型使數據庫系統具有的優點
1> 簡化了用戶的觀點。 2> 有助於數據庫的安全性保護。3> 外部模型是對概念模型的支持。
數據獨立性與數據聯系這兩個概念的區別
數據獨立性是指應用程序和數據庫的數據結構之間相互獨立,不受影響。數據獨立性分成物理數據獨立性和邏輯數據獨立性兩個級別。
數據聯系是指實體之間的相互關系。數據獨立性是在結構層次,數據聯系是在具體的實體之間。
用戶、DB的三級模式結構、磁盤上的物理文件之間的聯系和不同
數據庫的三層模式結構時一個理想的結構,使數據庫系統達到了高度的數據獨立性。用戶與數據庫之間的數據傳輸要在三層結構中來回轉換。從而使用戶的數據能真正的讀或寫入文理文件中。應用程序在系統緩沖區中的用戶記錄應與外模式中的外部記錄在結構上是一致的。磁盤上物理文件的記錄應與內模式中的內部記錄在結構上也是一致的。
DBMS的工作模式和主要功能
DBMS的工作模式:
(1)接受應用程序的數據請求和處理請求;
(2)將用戶的數據請求(高級指令)轉換成復雜的機器代碼(低層指令);
(3)實現對數據庫的操作;
(4)從對數據庫的操作中接受查詢結果;
(5)對查詢結果進行處理(格式轉換);
(6)將處理結果返回給用戶。
主要功能:
1> 數據庫的定義功能:DBMS提供DDL定義數據庫的三級結構、兩級映像,定義數據的完整性約束、保密限制等約束。因此,在DBMS中應包括DDL的編譯程序。
2> 數據庫的操作功能:DBMS提供DML實現對數據的操作。基本的數據操作有兩類:檢索(查詢)和更新(包括插入、刪除、更新)。因此,在DBMS中應包括DML的編譯程序或解釋程序。
3> 數據庫的保護功能:
(1)數據庫的恢復。
(2)數據庫的並發控制。
(3)數據完整性控制。
(4)數據安全性控制。DBMS的其它保護功能還有系統緩沖區的管理以及數據存儲的某些自適應調節機制等。
4> 數據庫的維護功能:這一部分包括數據庫的數據載入、轉換、轉儲,數據庫的改組以及性能監控等功能。
5> 數據字典:數據庫系統中存放三級結構定義的數據庫稱為數據字典(Data Dictionary, DD)。對數據庫的操作都要通過DD才能實現。DD中還存放數據庫運行時的統計信息,例如記錄個數、訪問次數等。管理DD的子系統統稱為“DD系統”。
DB系統緩沖區及其作用
DB系統緩沖區是DBMS為應用程序在內存中開辟的一個系統緩沖區,用戶數據的傳輸和格式轉換。
DBS由哪幾部分組成?它有哪些系統軟件?其中DD有什么作用?
它是數據庫、硬件、軟件和數據庫管理員的集合體。
典型的數據庫應用開發工具有Visual Basic 7.0、PowerBuilder 10.0 和 Delphi 6.0等系統。
DD為DBS提供存儲三級結構的描述(一般稱為元數據Metadata)
DBS的全局結構解釋
這個結構從用戶、界面、DBMS和磁盤等四個層次考慮各模塊功能之間的聯系。
1、數據庫用戶
DBA 、專業用戶、應用程序員、終端用戶。
2、DBMS的查詢處理器
這一部分可分為四個成分:
(1)DDL解釋器:解釋DDL語句,並將這些定義登錄到數據字典中。
(2)DML編譯器:對DML語句進行優化,並轉成查詢求值引擎能執行的低層指令。
(3)嵌入式DML的預編譯器:把嵌入到主語言中的DML語句處理成規范的過程調用形式。
(4)查詢求值引擎:執行由DML編譯器產生的低層指令。
3、DBMS的存儲管理器
存儲管理器提供存儲在數據庫中的低層數據和應用程序、查詢之間的接口。存儲管理器可分為四個成分:
(1)權限和完整性管理器:測試應用程序對數據庫的修改是否滿足完整性約束,檢查用戶訪問數據的合法性。
(2)事務管理器:DBS的邏輯工作單元稱為事務(Transaction),事務由對DB的操作序列組成。事務管理器用於確保DB一致性(正確性)狀態,保證並發操作正確執行。
(3)文件管理器:負責磁盤空間的合理分配,管理物理文件的存儲結構和存取方式。
(4)緩沖區管理器:為應用程序開辟DB的系統緩沖區,負責將從磁盤中讀出的數據送入內存的緩沖區。
4、磁盤存儲器中的數據結構
(1)數據文件:存儲數據庫管理的用戶數據自身。數據庫在磁盤上的基本組織形式是文件,這樣可以充分利用OS管理外存的功能。
(2)數據字典:存儲三級結構的描述(一般稱為元數據Metadata)。
(3)索引:為提高查詢速度而設置的邏輯排序手段。
(4)統計數據:存儲DBS運行時統計分析的數據。查詢處理器可以使用這些信息更有效地進行查詢處理。
(5)日志:存儲DBS運行時對DB的操作情況,以備以后查閱數據庫的使用情況及數據恢復時使用。
從模塊結構觀察,DBMS由哪些部分組成?
總體上分兩個模塊:查詢處理器 和 存儲管理器。
查詢處理器又可分為:DDL解釋器、DML編譯器、嵌入式DML的預編譯器和求值引擎。
存儲管理器又可分為:權限和完整性管理器、事務管理器、文件管理器和緩沖區管理器。