官术网_书友最值得收藏!

1.1 數據庫基礎知識

本節主要從一些常用術語和基本概念出發,介紹數據庫的基礎知識。

1.1.1 信息、數據與數據處理

1.信息(Information)

信息是指現實世界事物的存在方式或運動狀態的反映。信息具有可感知、可存儲、可加工、可傳遞和可再生等自然屬性,信息也是各行各業不可缺少的資源,這是它的社會屬性。

2.數據(Data)

數據是數據庫中存儲的基本對象,是描述事物的符號記錄。描述事物的符號可以是數字,也可以是文字、圖形、聲音、語言等。數據有多種表現形式,但它們數字化后都可以存入計算機中。

在現實世界中,人們為了交流信息,了解世界,需要對現實世界中的事物進行描述,例如利用自然語言描述一個學生:“張三是一個2006年入學的男大學生,1987年出生,河北人。”在計算機世界里,為了存儲和處理現實世界中的事物,就要抽象出感興趣的事物特征,組成一個記錄來描述該事物。例如,用戶對學生最感興趣的是學生的姓名、性別、出生日期、籍貫、入學時間等,那么在計算機里就可以這樣描述:

(張三,男,1987,河北,2006)

這里描述學生的記錄就是數據。

3.數據解釋(Data Explain)

在計算機世界里,描述學生的一條記錄(張三,男,1987,河北,2006),知道它的含義的人會得到如下信息:張三是一名大學生,男,1987年出生,河北人,2006年入學。而不了解其含義的人,就會得不到如上的信息。可見數據的形式還不能完全表達其內容,還需要數據的解釋,所以數據與數據的解釋是不可分的。

數據的解釋是指對數據語義的說明,數據的語義就是數據承載的信息。數據與數據承載的信息是不可分的,數據是信息的載體,是符號表示;信息是數據的內容,是數據的語義解釋。

4.數據處理(Data Handle)

數據的處理是指對各種數據進行收集、存儲、加工和傳播的一系列活動的總和。數據的管理是指對數據進行的分類、組織、編碼、存儲、檢索和維護,它是數據處理的中心問題。

1.1.2 數據管理技術的發展

數據庫技術是應數據管理的需求而產生的。最初的計算機主要是進行復雜的科學計算,隨著計算機及其應用的發展,人們開始借助計算機進行數據處理。數據處理技術經歷了人工管理、文件系統、數據庫系統三個階段。

1.人工管理階段

人工管理階段是指20世紀50年代中期以前的階段。當時的計算機主要用于科學計算。只有紙帶、卡片、磁帶,沒有大容量的外存;沒有操作系統和數據管理軟件;數據處理方式是批處理。人工管理階段的特點是:

(1)數據不長期保存在計算機里,用完就撤走。

(2)應用程序管理數據,數據與程序結合在一起。

(3)數據不共享,數據是面向應用的,一個程序對應一組數據。

(4)數據不具有獨立性。

2.文件系統階段

文件系統階段是指20世紀50年代后期到60年代中期這一階段。在這一階段,由于計算機硬件有了磁盤、磁鼓等直接存取設備;軟件有了操作系統,數據管理軟件;計算機應用擴展到了數據處理方面。這一階段的特點是:

(1)數據以文件的形式長期保存在計算機里。

(2)操作系統的文件管理提供了對數據的輸入和輸出管理。

(3)數據可以共享,一個數據文件可以被多個應用程序使用。

(4)數據文件之間彼此孤立,不能反映數據之間的聯系,存在數據的大量冗余。

3.數據庫系統階段

數據庫系統階段從20世紀60年代后期開始,隨著計算機硬件與軟件技術的發展,計算機用于管理的規模越來越大,文件系統作為數據管理手段已經不能滿足應用的需要,為了解決多用戶、多應用程序共享數據的需求,人們開始了對數據組織方法的研究,并開發了對數據進行統一管理和控制的數據庫管理系統,在計算機這一領域逐步形成了數據庫技術這一獨立的分支。與人工管理階段相比數據庫系統的特點是:

(1)數據結構化。

(2)數據的共享性高,冗余度低、易擴充。

(3)數據獨立性高。

(4)數據由DBMS統一管理和控制。

1.1.3 數據庫、數據庫管理系統、數據庫系統

1.數據庫

通俗地講,數據庫(Data Base)是存放數據的倉庫。可以借助存放貨物的倉庫來理解數據庫,只不過這些貨物是數據,這個倉庫是建立在計算機上的。嚴格的定義:數據庫是長期存儲在計算機內的、有組織的、可共享的數據集合。這種集合具有如下特點:

(1)數據庫中的數據按一定的數據模型組織、描述和存儲。

(2)具有較小的冗余度。

(3)具有較高的數據獨立性和易擴充性。

(4)為各種用戶共享。

2.數據庫管理系統

數據庫管理系統(Data Base Management System,DBMS)是位于用戶與操作系統之間的一層數據管理軟件,例如SQL Server 2008就是一個DBMS。數據庫管理系統完成數據的組織、存儲、維護、獲取等任務,具有如下功能。

(1)數據定義功能。用戶可以通過DBMS提供的數據定義語言(Data Definition Language,DLL)方便地對數據庫中的對象進行定義。

(2)數據操縱功能。用戶可以通過DBMS提供的數據操作語言(Data Manipulation Language,DML)方便地操縱數據庫中的數據,實現對數據庫的基本操作,如增加、刪除、修改、查詢等。

(3)數據庫的運行管理。數據庫管理系統統一管理數據庫的運行和維護,以保障數據的安全性、完整性、并發性和故障的系統恢復性。

(4)數據庫的建立和維護功能。數據庫管理系統能夠完成初始數據的輸入、轉換,數據庫的轉儲、恢復,數據庫的性能監視和分析等任務。

數據庫管理系統是數據庫系統的一個重要組成部分。

3.數據庫系統

數據庫系統(DataBase System,DBS)是采用數據庫技術的計算機系統。數據庫系統由數據庫、數據庫管理系統及開發工具、數據庫應用程序、數據庫管理員和用戶組成,如圖1.1所示。數據庫管理員(DataBase Administrator,DBA)是專門從事數據庫的建立、使用和維護等工作的數據庫專業人員,他們在數據庫系統起著非常重要的作用。一般情況下,數據庫系統簡稱為數據庫,數據庫系統在計算機系統中的地位如圖1.2所示。

圖1.1 數據庫系統構成

圖1.2 數據庫系統在計算機系統中的地位

1.1.4 數據模型

數據模型是現實世界數據特征的抽象,是現實世界的模擬。現實生活中的具體的模型,人們并不陌生,如汽車模型、航空模型等,人們看到模型就會想象到現實生活中的事物。數據模型同樣是現實世界中數據和信息在數據庫中的抽象與表示。

數據模型應滿足三方面要求:一是能比較真實的模擬現實世界;二是容易為人所理解;三是便于在計算機中實現。

不同的數據模型提供的模型化數據和信息的方法是不同的。根據模型應用目的的不同,數據模型可以分為兩類,一類是概念模型,它是按用戶的觀點來對數據和信息進行抽象,主要用于數據庫設計;另一類是結構數據模型,它是按計算機的觀點建模,主要用于DBMS的實現。

概念模型是現實世界到信息世界的第一次抽象,用于信息世界的建模,是數據庫設計人員的有力工具,也是數據庫設計人員與用戶之間交流的語言。

1.信息世界的基本概念

(1)實體(Entity)。實體是指客觀存在并可以相互區別的事物。實體可以是具體的人、事、物,也可以是抽象的概念和聯系。例如,一個部門、一個產品、一名學生、一名教師等都是實體。

(2)屬性(Attribute)。實體所具有的某一特性稱為實體的屬性,一個實體由若干個屬性來描述。例如,教師實體可以由教師編號、姓名、性別、職稱、學歷、工作時間等屬性描述,(1001,楊森,男,副教授,研究生,1965)這些屬性組合起來描述了一個教師。

(3)碼(Key)。唯一標識實體的屬性集成為碼。例如教師編號是教師實體的碼。

(4)域(Domain)。屬性的取值范圍稱為該屬性的域。例如教師實體的“性別”屬性的域為(男,女)。

(5)實體型(Entity Type)。具有相同屬性的實體成為同型實體,用實體名及其屬性名的集合來抽象和刻畫同類實體,成為實體型。例如,教師(教師編號,姓名,職稱,學歷,工作時間)就是一個實體型。

(6)實體集(Entity Set)。同型實體的集合成為實體集。例如,全體教師就是一個實體集,全體學生也是一個實體集。

(7)聯系(Relationship)。在現實世界中,事物內部及事物之間是普遍聯系的,這些聯系在信息世界中表現為實體型內部各屬性之間的聯系以及實體型之間的聯系。兩個實體型之間的聯系可以分為三類:

① 一對一聯系(1∶1)。例如,一個學生只能有一個學生證,一個學生證只能屬于一個學生,則學生與學生證之間具有一對一的聯系。

② 一對多聯系(1∶n)。例如,一個人可以有多個移動電話號碼,但一個電話號碼只能賣給一個人。人與移動電話號碼之間的聯系就是一對多的聯系。

③ 多對多聯系(m∶n)。例如,一門課程同時可以由若干學生選修,而一個學生同時也可以選修若干門課程,課程與學生之間的聯系是多對多的聯系。

2.概念模型的表示方法

如前所述,概念模型是信息世界比較真實的模擬,容易為人所理解,概念模型應該方便、準確的表示出信息世界中常用概念。概念模型的表示方法很多,其中比較著名的是實體—聯系方法(Entity-Relationship),該方法用E-R圖來描述現實世界的概念模型。

E-R圖提供了表示實體型、屬性和聯系的方法。

? 實體型:用矩形表示,矩形框內寫明實體名。

? 屬性:用橢圓表示,橢圓內寫明屬性名,用無向邊將屬性與實體連起來。

? 聯系:用菱形表示,菱形框內寫明聯系名,用無向邊與有關實體連接起來,同時在無向邊上注明聯系類型。需要注意的是,聯系也具有屬性,也要用無向邊與聯系連接起來。

下面用E-R圖表示學生選課管理的概念模型。

學生選課管理設計的實體有:

? 學生 屬性有學號、姓名、性別、出生年月、入學時間、班級。

? 課程 屬性有課程號、課程名、學時數、學分、課程性質。

? 教材 屬性有教材編號、教材名、出版社、主編、單價。

這些實體之間的聯系如下:

? 一門課程只能選用一種教材,一種教材對應一門課程。

? 一個學生可以選修多門課程,一門課程可以由多個學生選修。

給出學生選課管理E-R圖,如圖1.3所示。

圖1.3 學生選課管理E-R圖

3.常用的結構數據模型

結構數據模型直接描述數據庫中數據的邏輯結構,這類模型涉及到計算機系統,又稱為基本數據模型。它是用于機器世界的第二次抽象。目前,常用的結構數據模型有四種,他們是:

? 層次模型(Hierarchical Mode)。

? 網狀模型(Network Model)。

? 關系模型(Relational Model)。

? 面向對象模型(Object Oriented Model)。

關系模型是目前最重要的一種數據模型。關系數據庫系統采用關系模型為數據的組織方式,SQL Server 2008數據庫就是基于關系模型建立的。關系模型具有如下優點:

? 關系模型是建立在嚴格的數學概念基礎上。

? 關系模型的概念單一,無論實體還是實體之間的聯系都用關系表示,對數據的檢索結果也是關系。

? 關系模型的存取路徑對用戶透明。

1.1.5 數據庫系統的體系結構

雖然實際的數據庫管理系統多種多樣,支持不同的數據模型,使用不同的數據庫語言,建立在不同的操作系統之上,數據的存儲結構也各不相同,但在體系結構上都采用三級模式兩級映射結構。

1.數據庫的三級模式結構

數據庫的三級結構如圖1.4所示,它是由外模式、模式和內模式三級構成。

圖1.4 數據庫的三級模式結構

(1)模式。模式也稱邏輯模式,是數據庫中全體數據的邏輯結構和特征的描述,也是所有用戶的公共數據視圖。

模式是數據庫數據在邏輯上的視圖。一個數據庫只有一個模式,它既不涉及存儲細節,也不涉及應用程序及程序設計語言。定義模式時不僅要定義數據的邏輯結構,也要定義數據之間的聯系,定義與數據有關的安全性、完整性要求。

(2)外模式。外模式又稱子模式或用戶模式,是模式的子集,是數據的局部邏輯結構,也是數據庫用戶看到的數據視圖。一個數據庫可以有多個外模式,每一個外模式都是為不同的用戶建立的數據視圖。外模式是保證數據庫安全的一個有力措施,每個用戶只能看到和訪問所對應的外模式中的數據,數據庫中的其余數據是不可見的。

(3)內模式。內模式也稱存儲模式,是數據在數據庫中的內部表示,即數據的物理結構和存儲方式描述。一個數據庫只有一個內模式。

2.數據庫的數據獨立性

數據庫系統的三級模式是對數據的三級抽象,數據的具體組織由數據庫管理系統負責,使用戶能夠邏輯的處理數據,而不必關心數據在計算機內部的具體表示與存儲方式。為了在內部實現這三個抽象層次的轉換,數據庫管理系統在這三級模式中提供了兩層映射:

? 外模式/模式映射。

? 模式/內模式映射。

(1)外模式/模式映射。所謂外模式/模式映射,就是存在外模式與模式之間的某種對應關系,這些映射定義通常包含在外模式的描述中。

當模式改變時,例如增加了一個新表,數據庫管理員對各個外模式/模式的映射做相應的修改,而使外模式保持不變,這樣應用程序就不用修改,因為應用程序是在外模式上編寫的,所以保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。

(2)模式/內模式映射。所謂模式/內模式映射,就是數據庫全局邏輯結構與存儲結構之間的對應關系,當數據庫的內模式發生改變時,例如,存儲數據庫的硬件設備或存儲方法發生改變,由于存在模式/內模式映射,使得數據的邏輯結構保持不變,也即模式不變,因此使應用程序也不變,保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。

主站蜘蛛池模板: 仁布县| 辰溪县| 同江市| 汉川市| 义乌市| 沅江市| 兴和县| 南和县| 嘉鱼县| 元阳县| 松桃| 济宁市| 乌海市| 石屏县| 大冶市| 隆德县| 柳林县| 丹东市| 滨州市| 威信县| 洛扎县| 芒康县| 日喀则市| 象州县| 汉源县| 新邵县| 荥经县| 中牟县| 惠东县| 库车县| 加查县| 庐江县| 奉贤区| 花莲市| 九龙坡区| 广饶县| 伊金霍洛旗| 扎兰屯市| 历史| 合川市| 南和县|