數據庫基礎知識_第1頁
數據庫基礎知識_第2頁
數據庫基礎知識_第3頁
數據庫基礎知識_第4頁
數據庫基礎知識_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第1章 數據庫基礎知識數據庫是20世紀60年代后期發(fā)展起來的一項重要技術,70年代以來數據庫技術得到迅猛發(fā)展,已經成為計算機科學與技術的一個重要分支。經過30多年的發(fā)展,現已經形成相當規(guī)模的理論體系和應用技術,不僅應用于事務處理,并且進一步應用到人工智能、情報檢索、計算機輔助設計等各個領域。本章主要介紹數據庫的基本概念和基本理論,并結合Microsoft Access講解與關系數據庫相關的基本概念。1.1 數據庫系統概述數據庫能把大量的數據按照一定的結構存儲起來,開辟了數據處理的新紀元。可以直觀地理解數據庫為一個存放數據的倉庫,只不過這個倉庫是在計算機的大容量存儲器上。數據處理的基本問題是數據

2、的組織、存儲、檢索、維護和加工利用,這些正是數據庫系統所要解決的問題。 計算機數據管理的發(fā)展一、數據與數據處理數據是指存儲在某一種介質上能夠被識別的物理符號。數據的種類很多,不僅包括數字、字母、文字和其他特殊字符組成的文本形式,而且還包括圖形、圖像、動畫、影像、聲音等多媒體形式,但是使用最多、最基本的仍然是文字數據。信息是經過加工處理的有用數據。數據只有經過提煉和抽象變成有用的數據后才能成為信息。信息仍以數據的形式表示。數據處理是指將數據加工并轉換成信息的過程。數據處理的核心是數據管理。計算機對數據的管理是指如何對數據分類、組織、編碼、存儲、檢索和維護。二、數據管理技術的發(fā)展 計算機在數據管理

3、方面經歷了由低級到高級的發(fā)展過程。計算機數據管理隨著計算機軟硬件技術的發(fā)展,數據管理技術的發(fā)展大致經歷了人工管理、文件系統和數據庫系統、分布式數據庫系統和面向對象數據庫系統5個階段。 1. 人工管理20世紀50年代以前,計算機主要用于科學計算。當時的硬件狀況是,外存儲器只有紙帶、卡片、磁帶,沒有直接存取設備。軟件狀況是,沒有操作系統以及管理數據的軟件。人工管理階段具有的特點是:數據與程序不具有獨立性,一組數據對應一組程序。數據不能長期保存,程序運行結束后就退出計算機系統,一個程序中的數據無法被其他程序使用,因此程序與程序之間存在大量的重復數據,稱為數據冗余。2. 文件系統20世紀50年代后期到

4、60年代中期,計算機的應用范圍逐漸擴大,大量地應用于管理中。這時,在硬件上出現了磁鼓、磁盤等直接存取數據的存儲設備;在軟件方面,在操作系統中已經有了專門的數據管理軟件,一般稱為文件系統;處理方式上不僅有了文件批處理,而且能夠聯機實時處理。文件系統階段具有的特點是:程序和數據有了一定的獨立性,程序和數據分開存儲,有了程序文件和數據文件的區(qū)別。數據文件可以長期保存在外存儲器上被多次存取。但數據共享性差,數據冗余大。文件系統存在的問題阻礙了數據處理技術的發(fā)展,不能滿足日益增長的信息需求,這正是數據庫技術產生的原動力,也是數據庫系統產生的背景。3. 數據庫系統20世紀60年代后期,計算機性能得到提高,

5、更重要的是出現了大容量磁盤,存儲容量大大增加且價格下降。在處理方式上,聯機實時處理要求更多,并開始提出和考慮分布處理。在這種背景下,以文件系統作為數據管理手段已經不能滿足應用的需求,于是為解決多用戶、多應用共享數據的需求,使數據為盡可能多的應用提供服務,出現了數據庫管理系統。數據庫系統階段基本實現了數據共享,減少了數據冗余,數據庫采用特定的數據模型,數據庫具有較高的數據獨立性,數據庫系統有統一的數據控制和數據管理。4. 分布式數據庫系統階段分布式數據庫系統是在集中式數據庫系統的基礎上發(fā)展起來的,是計算機技術和網絡技術結合的產物。分布式數據庫系統適合于單位分散的部門,允許各個部門將其常用的數據存

6、儲在本地,實施就地存放本地使用,從而提高響應速度,降低通信費用。分布式數據庫系統與集中式數據庫系統相比具有可擴展性,通過增加適當的數據冗余,提高系統的可靠性。在集中式數據庫中,盡量減少冗余度是系統目標之一。目前使用較多的是基于客戶機/服務器(Client/Server,C/S)系統結構,C/S 結構將應用程序根據應用情況分布到客戶的計算機和服務器上。Access為創(chuàng)建功能強大的客戶機/服務器應用程序提供了專用工具。客戶機/服務器應用程序具有本地(客戶)用戶界面,但訪問的是遠程服務器上的數據。5. 面向對象數據庫系統數據庫技術與面向對象程序設計技術結合產生了面向對象的數據庫系統。面向對象的數據庫

7、吸收了面向對象程序設計方法學的核心概念和基本思想,采用面向對象的觀點來描述現實世界實體(對象)的邏輯組織、對象之間的限制和聯系等。它克服了傳統數據庫的局限性,能夠自然地存儲復雜的數據對象以及這些對象之間的復雜關系,從而大幅度地提高了數據庫管理效率,降低了用戶使用的復雜性。從本質上說,Access仍然是傳統的關系型數據庫系統,但它在用戶界面、程序設計等方面進行了很好地擴充,提供了面向對象程序設計的強大功能。 數據庫系統數據庫系統(DataBase System,DBS)是指帶有數據庫并利用數據庫技術進行數據管理的計算機系統。一、 有關數據庫的概念1. 數據庫(DataBase,DB)數據庫是數據

8、庫系統的數據源,是長期存儲在計算機內的、有組織的、可共享的數據的集合。實際上數據庫就是為了實現一定的目的按某種規(guī)則組織起來的數據的集合,在我們的生活中這樣的數據庫可是隨處可見。2. 數據庫應用系統(DataBase Application System,DBAS)數據庫應用系統是指系統開發(fā)人員利用數據庫系統資源開發(fā)的面向某一類實際應用的軟件系統。例如,學校信息管理系統,財務管理系統、人事管理系統、圖書管理系統等,都是以數據庫為基礎和核心的計算機應用系統。3. 數據庫管理系統(DataBase Management System,DBMS)數據庫管理系統是數據庫系統的一個重要組成部分。它是位于用

9、戶與操作系統之間的一層數據管理軟件。數據庫管理系統是為數據庫的建立、使用和維護而配置的軟件。數據庫在建立、運用和維護時由數據庫管理系統統一管理、統一控制。如常見的Access、SQL Server、Oracle等,都是常用的數據庫管理系統。4. 數據庫系統(DataBase System,DBS)數據庫系統是指在計算機系統中引入數據庫后的系統,是實現有組織地、動態(tài)地存儲大量相關數據,提供數據處理和信息資源共享的便利手段。一般由數據庫、數據庫管理系統(及其應用開發(fā)工具)、數據庫應用系統、數據庫管理員、應用程序員和用戶組成,如圖1.1所示。圖1.1 數據庫系統二、數據庫系統的特點數據庫系統的層次結

10、構如圖1.2所示,其主要特點如下:1. 數據的結構化數據結構化是數據庫與文件系統的根本區(qū)別。在數據庫系統中,數據是面向整體的,不但數據內部組織有一定的結構,而且數據之間的聯系也按一定的結構描述出來,所以數據整體結構化。2. 數據的高共享性與低冗余性數據庫系統從整體角度看待和描述數據,數據不再面向某個應用而是面向整個系統。同一組基本記錄,就可以被多個應用程序共享使用。這樣可以大大減少數據冗余,節(jié)約存儲空間,又能夠避免數據之間的不相容性和不一致性。3. 數據的獨立性數據獨立是指數據與應用程序之間彼此獨立,不存在相互依賴的關系。數據庫系統提供了兩方面的映像功能,使得程序與數據庫中的邏輯結構和物理結構

11、有高度的獨立性。4. 數據的統一管理與控制數據的統一管理與控制包括數據的完整性檢查、安全性檢查和并發(fā)控制3個方面。數據庫管理系統能統一控制數據庫的建立、運用和維護,使用戶能方便地定義數據和操作數據,并能夠保證數據的安全性、完整性、多用戶對數據的并發(fā)使用及發(fā)生故障后的系統恢復。 數據模型數據模型是工具,是用來抽象地表示和處理現實世界中的數據和信息的工具。我們知道,計算機只能處理數據。數據模型就是從現實世界到數據世界的一個中間層次。現實世界的事物反映到人的大腦中來,人們把這些事物抽象為一種既不依賴于具體的計算機系統又不為某一DBMS支持的概念模型,然后再把概念模型轉換為計算機上某一DBMS支持的數

12、據模型。圖1.3所示是現實世界客觀對象的抽象過程。圖1.2 數據庫系統層次示意圖圖1.3 現實世界客觀對象的抽象過程一、實體描述在數據模型中,需要用到以下幾個術語。1. 實體(Entity)客觀存在并相互區(qū)別的事物稱為實體。 實體可以是實際的事物,也可以是抽象的事物。例如,學生、課程等都是屬于實際的事物;學生選課、教師授課等都是抽象的事物。2. 實體的屬性(Attribute)描述實體的特性稱為屬性。例如,學生實體用學號、姓名、性別、年齡、政治面貌、照片等屬性來描述。3. 實體集和實體型(Entity Set and Entity Type)屬性值的集合表示一個實體,而屬性的集合表示一種實體的

13、類型,稱為實體型。同類型的實體的集合,稱為實體集。例如,學生(學號,姓名,性別,年齡,政治面貌,照片)就是一個實體型。對于學生來說,全體學生就是一個實體集。在Access中,用“表”來存放同一類實體,即為實體集。例如,學生表、教師表、成績表等。Access的一個“表”包含若干個字段,“表”中的字段就是實體的屬性。字段值的集合組成表中的一條記錄,代表一個具體的實體,即每一條記錄表示一個實體。二、實體間的聯系及分類實體之間的對應關系稱為聯系,它反映現實世界事物之間的相互關聯。兩個實體間的聯系可以歸結為三種類型。1. 一對一聯系(one-to-one relationship)如果對于實體集A中的每

14、一個實體,實體集B中有且只有一個實體與之聯系,反之亦然,則稱實體集A與實體集B具有一對一聯系。例如,一所學校只有一個校長,一個校長只有在一所學校任職,校長與學校之間的聯系就是一對一的聯系。在Access中,一對一聯系表現為主表中的每一條記錄只與相關表中的一條記錄相關聯。2. 一對多聯系(one-to-many relationship)如果對于實體集A中的每一個實體,實體集B中有多個實體與之聯系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯系,則稱實體集A與實體集B有一對多的聯系。例如,一個學院中可以有多名學生,而一個學生只能在一個學院中注冊學習,學院和學生之間存在一對多

15、聯系。在Access中,一對多聯系表現為主表中的每條記錄與相關表中的多條記錄相關聯。即表A中的一條記錄在表B中可以有多條記錄與之對應,但表B中的一條記錄最多只能與表A中的一條記錄對應。一對多聯系是最普遍的聯系,也可以將一對一聯系看作是一對多聯系的特殊情況。3. 多對多聯系(many-to-many relationship)如果對于實體集A中的每一個實體,實體集B中有多個實體與之聯系,而對于實體集B中的每一個實體,實體集A中也有多個實體與之聯系,則稱實體集A與實體集B之間有多對多的聯系。例如,一個學生可以選修多門課程,一門課程可以被多名學生選修。因此,學生和課程間存在多對多的聯系。在Acces

16、s中,多對多的聯系表現為一個表中的多條記錄在相關表中同樣可以有多條記錄與之對應。即表A中的一條記錄在表B中可以對應多條記錄,而表B中的一條記錄在表A中也可對應多條記錄。多對多聯系是理論上及實際需求時會有這種情況,但在數據庫軟件中則沒有,因此,會將一個多對多聯系分解為多個一對多聯系。三、三種數據模型數據模型是面向數據庫全局邏輯結構的描述,主要任務一是指出數據的構造,包括如何表示數據、要研究的是什么實體、包含哪些屬性;二是確定數據間的聯系,主要是實體間的聯系。在數據庫系統中,常用的數據模型有層次數據模型、網狀數據模型和關系數據模型3種。1. 層次數據模型層次數據模型將現實世界的實體彼此之間抽象成一

17、種自上而下的層次關系,是使用樹型結構表示實體與實體間聯系的模型。用圖來表示,層次數據模式是一棵倒立的樹。圖1.4給出了一個學校的層次數據模型。圖1.4 層次數據模型示意圖2. 網狀數據模型使用網狀結構表示實體及實體間聯系的模型稱為網狀數據模型,如圖1.5所示。圖1.5 網狀數據模型示意圖3. 關系數據模型用二維表結構來表示實體以及實體之間聯系的模型稱為關系數據模型。關系數據模型是以關系數學理論為基礎的,在關系數據模型中,操作的對象和結果都是二維表,這種二維表就是關系。關系數據模型與層次數據模型、網狀數據模型的本質區(qū)別在于數據描述的一致性,模型概念單一。在關系型數據庫中,每一個關系都是一個二維表

18、,無論實體本身還是實體間的聯系均用稱為“關系”的二維表來表示,使得描述實體的數據本身能夠自然地反映它們之間的聯系。而傳統的層次和網狀模型數據庫是使用鏈接指針來存儲和體現聯系的。1.2 關系數據庫用關系數據模型建立的數據庫就是關系數據庫(Relational Database,RDB)。 關系數據模型關系數據模型的用戶界面非常簡單,一個關系的邏輯結構就是一張二維表。這種用二維表的形式表示實體和實體間聯系的數據模型稱為關系數據模型。一、關系術語在Access中,一個“表”就是一個關系。圖1.6給出了一張學生表,圖1.7給出了一張成績表,這是兩個關系。這兩個表中都有唯一標識一名學生的屬性學號,根據學

19、號通過一定的關系運算可以將兩個關系聯系起來。 圖1.6 學生表 圖1.7 成績表1. 關系(Relation)一個關系就是一張二維表,每個關系有一個關系名。在Access中,一個關系存儲為一個表,具有一個表名。對關系的描述稱為關系模式,一個關系模式對應一個關系的結構。其格式為: 關系名(屬性名1,屬性名2,屬性名n)在Access中,表示為表結構: 表名(字段名1,字段名2,字段名n)2. 元組(Tuple)二維表(關系)中的每一行,對應于表中的記錄。例如,學生表和成績表兩個關系各包括多條記錄(或多個元組)。3. 屬性(Attribute)二維表中的每一列,對應于表中的字段。例如,學生表中的學

20、號、姓名、專業(yè)等字段名及其相應的數據類型組成表的結構。4. 域(Domain)屬性的取值范圍稱為域,也稱為值域。例如,性別只能取“男”或“女”。5. 關鍵字(Primary Key)關鍵字是屬性或屬性的集合,關鍵字的值能夠唯一地標識一個元組。例如,學生表中的學號。在Access中,主關鍵字和候選關鍵字就起唯一標識一個元組的作用。6. 外部關鍵字(Foreign Key)如果表中的一個字段不是本表的主關鍵字,而是另外一個表的主關鍵字和候選關鍵字,這個字段(屬性)就稱為外關鍵字。在Access中,將相互之間存在聯系的表放在一個數據庫中統一管理。例如,在“教學信息管理”數據庫中可以加入教師表、學生表

21、、課程表和成績表等。 二、關系的特點 在關系模型中對關系有一定的要求,關系必須具有以下特點:1. 關系必須規(guī)范化。關系模型中的每一個關系模式都必須滿足一定的要求。最基本的要求是每個屬性必須是不可分割的數據單元,即表中不能再包含表。2. 屬性名必須唯一,即一個關系中不能出現相同的屬性名。3. 關系中不允許有完全相同的元組(即冗余)。4. 在一個關系中元組和屬性的順序都是無關緊要的。 關系運算對于關系數據庫進行查詢時,需要找到用戶感興趣的數據,這就需要對關系進行一定的關系運算。關系的基本運算有兩類:一類是傳統的集合運算(并、差、交等),另一類是專門的關系運算(選擇、投影、聯接),有些查詢需要幾個基

22、本運算的組合。 一、傳統的集合運算進行并、差、交集合運算的兩個關系必須具有相同的關系模式,即元組具有相同結構。1. 并(Union)兩個相同結構關系的并是由屬于這兩個關系的元組組成的集合。例如,有兩個結構相同的學生關系R1和R2,分別存放兩個班的學生,將第二個班的學生記錄追加到第一個班的學生記錄后面就是兩個關系的并集。2. 差(Difference)設有兩個相同的結構R和S,R差S的結構是由屬于R但不屬于S的元組組成的集合,即差運算的結果是從R中去掉S中也有的元組。例如,設有選修計算機基礎的學生關系R,選修C語言程序設計的學生關系S。求選修了計算機基礎,但沒有選修C語言程序設計的學生,就應當進

23、行差運算。3. 交(Intersection)兩個具有相同結構的關系R和S,他們的交是由既屬于R又屬于S的元組組成的集合。交運算的結果是R和S中的共同元組。例如,有選修計算機基礎的學生關系R,選修C語言程序設計的學生關系S。求既選修了計算機基礎又選修了C語言程序設計的學生,就應當進行交運算。 二、專門的關系運算關系數據庫管理系統能完成選擇、投影和聯接3種關系操作。1. 選擇(Select)從關系中找出滿足給定條件的元組的操作稱為選擇。選擇的條件以邏輯表達式給出,使得邏輯表達式的值為真的元組將被選取。例如,要從教師表中找出職稱為“教授”的教師,所進行的查詢操作就屬于選擇運算。2. 投影(Projection)從關系模式中指定若干屬性組成新的關系稱為投影。投影是從列的角度進行的運算,相當于對關系進行垂直分解。經過投影運算可以得到一個新的關系,其關系模式所包含的屬性個數往往比原關系少,或者屬性的排列順序不同。投影運算提供了垂直調整關系的手段,體現出關系中列的次序無關緊要這一特點。例如,要從學生關系中查詢學生的“姓名”和“年級”,所進行的

溫馨提示

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

評論

0/150

提交評論