理解數據庫與數據模型的概念

本篇首先引入編程微課項目作爲數據庫的應用案例,通過對項目功能及涉及的相關數據的介紹,讓讀者對數據庫的應用有一個感性認識,然後重點講述關係數據庫的理論基礎知識。通過本篇的學習,讀者應該能掌握以下內容:

● 編程微課的主要功能

● 數據庫的基本原理及數據模型

● 關係數據庫

 

1、編程微課

編程微課項目使用圖文,語言,視頻等方式進行內容教學,再附加各種訓練題,幫助練習和鞏固知識。

微課內容來自於編程達人,編程達人撰寫課程內容,通過編程微課平臺爲編程愛好者提供課程內容,獲得收益。讀者可以通過PC瀏覽器、微信小程序支付課程費用和學習課程內容,並可以加入編程達人的朋友圈,與編程達人進一步互動交流學習。

 

2、理解數據庫

數據庫可以理解爲存儲數據的倉庫,每個數據項在數據倉庫中都有編號,通過編號就可以找到該數據項。例如,圖書館就是存儲圖書的倉庫,在圖書館存儲的每本圖書都有一個編號,編號表示了書的類別和順序號,同類別的書放在一個書架上,便於圖書管理員和讀者查找圖書。

圖書館存儲的是圖書,數據庫存儲的是數據,每條數據稱爲數據項。數據是對客觀事物的符號表示,如文字、圖形、數字等。在日常生活中,人們直接用語言來描述事物,例如在描述一門課程時,人們常用“Java編程課程—入門篇由編程達人郎老師編寫,編程語言課,課程面向青少年編程愛好者,課程以淺顯易懂的語言,以常見的生活場景爲案例,帶領大家逐步進入計算機編程世界”。

在計算機中,爲了存儲和處理這些事物,就要將事物的特徵抽象出來組成一個記錄來描述。

例如,將課程事物抽象爲數據項記錄(課程名稱,授課老師,類別、學生對象,課程簡介)。課程事物的一條數據可以描述爲(Java編程課程—入門篇,郎老師,編程語言,面向青少年愛好者,課程以淺顯易懂的語言,以常見的生活場景爲案例,帶領大家逐步進入計算機編程世界)。

當需要存儲多個課程數據項時,就構成了數據庫。因此,數據庫是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,併爲多種應用提供數據服務。

 

3、數據庫發展簡史

計算機應用於數據管理的初期,由於沒有必要的軟件、硬件環境的支持,用戶只能直接在裸機上操作。當時編寫的應用程序不僅要設計如何處理和存儲數據,還要指明數據在存儲器上的存儲地址。在這一管理方式下,應用程序和數據之間相互結合,不可分割,數據獨立性差,缺少共享性,編程效率低下。這一階段稱爲人工管理階段。

隨着計算機軟、硬件的發展,數據管理進入了文件管理階段,這一階段的主要標誌是計算機有了專門管理數據庫的軟件——操作系統(文件管理)。文件管理方式是把有關的數據組織成一種文件,這種數據文件可以脫離程序而獨立存在,有一個專門的文件管理系統實施統一管理。在這一管理方式下,應用程序通過文件管理系統對數據文件中的數據進行加工處理,應用程序的數據具有一定的獨立性和共享性,比手工管理方式更進了一步。

在文件管理階度,數據雖然具備了一定的獨立性和共享性,但由於數據的組織依然是面向程序,數據不但存在大量冗餘,而且數據自身的邏輯結構也難以滿足不同用戶對數據的要求。爲了減少數據冗餘,提高數據的共享性和獨立性,人們需要對使用的數據進行統一規劃管理,形成一個數據中心,構成一個數據庫。數據庫中數據能夠滿足所有用戶的不同要求,供不同用戶共享。這個階段稱爲數據庫管理系統階段。

 

4、數據模型

數據模型是數據庫的基礎,數據是對客觀事物的符號表示,模型是現實世界的抽象。數據模型是對數據特徵的抽象。

客觀事物抽象爲數據模型,是一個逐步轉化的過程,經歷了現實世界、信息世界和計算機世界這三個不同的世界,經歷了兩級抽象和轉換,如下圖所示:

 

                             

                                                                         圖 2-1 數據抽象過程

 

現實世界是指客觀存在的事物及其相互間的聯繫,人們一般選擇事物的基本特徵來描述事物。事物可以是抽象的,也可以是具體的,如課程屬於抽象的事物,人們通常用課程名稱、授課老師、類別、學生對象、課程簡介等特徵來描述和區分。學生就屬於具體的事物,通常用學號、姓名、班級、成績等特徵來描述和區分。

信息世界是對現實世界的抽象,人們把事物的特徵和聯繫通過符號記錄下來,並用規範化的語言描述現實世界的事物,從而構成一個基於現實世界的信息世界,這個信息世界就是概念模型概念模型主要用來描述顯示世界的概念化結構,它使數據庫的設計人員在設計的初始階段,擺脫計算機系統及數據庫管理系統的具體技術問題,集中精力分析數據以及數據之間的聯繫。在概念模型中,最常用的設計模型就是實體—聯繫模型(ER模型),關於課程的ER模型如下圖所示:

 

                                        

                                                                                   圖 2-2 課程ER模型

 

信息世界的概念模型還不能被數據庫管理系統直接使用,需要將概念模型進一步轉換爲邏輯數據模型,形成便於計算機處理的數據形式。邏輯數據模型是具體的數據庫管理系統所支持的數據模型,主要有關係數據模型、層次數據模型和網狀數據模型。關係數據模型是目前最流行的數據庫模型,支持關係數據模型的數據庫管理系統稱爲關係數據庫管理系統,MySQL就屬於關係數據庫管理系統。關係數據模型以二維表結構來表示事物與事物之間的聯繫,也可以稱爲實體與實體之間的聯繫。關於課程關係的二維表如下表所示:

                             

 

                                                                           表格 2-1 課程關係表

 

邏輯數據模型反映了數據的邏輯結構,當需要把邏輯模型數據存儲到物理介質時,就需要用到物理數據模型了,物理數據模型是面向計算機物理表示的模型,描述了數據在存儲介質上的組織結構,它不但與具體的數據庫管理系統有關,而且還與操作系統和硬件相關,每一種邏輯數據模型在實現時都有對應的物理數據模型。本課程重點討論概念數據模型和邏輯數據模型,物理數據模型不是本課程討論的重點。

 

5、 關係數據庫

要設計一個數據庫系統,首先要將現實世界抽象到數據的世界,即將現實世界用數據進行描述,得到一個現實世界的數據模型

關係數據模型是目前描述現實世界主要的抽象化方法它將用戶數據的邏輯結構歸納爲滿足一定條件的二維表的形式。由於關係數據模型概念簡單、清晰,用戶易懂易用,又有嚴格的數學基礎。因此,20世紀80年代以來推出的數據庫管理系統都支持關係數據模型,支持關係數據模型的數據庫管理系統也稱爲關係數據庫。

在描述現實世界的過程中,爲了分析的方便,可以將這一抽象過程分爲兩個階段首先應用ER模型將現實世界抽象爲一個信息世界,這種信息的結構不依賴於具體的計算機實現,然後將信息世界的數據抽象爲結構化的二維表形式,形成關係數據模型。

下面以編程微課項目的學生與課程兩個事物(實體)爲例,對兩個階段的抽象過程作具體說明。

在現實世界中描述學生和課程,要結合具體的事物場景來分析。編程微課項目使用圖文,語言,視頻等方式進行在線教學,學生可以在任何時間、任何地點使用手機或電腦打開課程學習。結合上面的場景來分析學生和課程的特徵。學生有名稱、賬號、登錄密碼、性別、年齡等基本特徵;課程有課程名稱、授課老師、類別、學生對象、課程簡介等基本特徵;學生與課程的主要關係是學生學習課程。

經過上面對學生和課程的分析,可以畫出學生與課程的ER模型,完成第一階段從現實世界到概念世界的抽象。ER模型如下圖所示:

 

                                          

                                                                             圖 2-3 學生與課程ER模型

第二階段將設計的ER模型抽象爲結構化的二維表形式,形成關係數據模型。將ER模型轉換爲結構化的二維表形式非常簡單,一個事物(實體)對應一個表,事物(實體)的屬性爲表的字段,事物(實體)之間的關係可以在一個實體的二維表中增加另一個實體的主要字段來實現。ER模型轉換後的二維表如下圖所示:

 

                               

                                                               圖 2-4 學生課程二維表結構

 

■ 課程小結

可以把關係數據庫理解爲超市,超市擺放商品的每一排貨架爲數據庫表,貨架中每一列爲表的字段,每一行爲表的一條記錄。假設貨架每行同列擺放的商品類別相同,則可以把超市的每一排貨架理解爲數據庫的二維表結構。由此可以看出,關係數據庫是由多個二維表組成的,在每個二維表中每行同列存儲的數據類別相同。

設計關係數據庫時,需要兩個階段。第一個階段是需要將現實世界的事物進行概念化,抽象爲概念數據模型,此階段最常用的工具是實體—聯繫模型(ER圖);第二個階段是將ER模型轉換爲二維表結構(關係數據模型),此階段一般需要利用數據庫設計工具進行設計,如PowerDesigner、Visio等設計軟件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章