資料庫技術是資訊系統的一個核心技術。是一種計算機輔助管理資料的方法,它研究如何組織和儲存資料,如何高效地獲取和處理資料。下面是小編為大家搜尋整理的電子商務師考試輔導:資料庫技術基本理論,希望對大家有所幫助。
資料庫技術基本理論
電子商務是指利用電子及網路進行的商務活動:這裡的電子網路主要是指Internet和基於Internet技術的Intranet(企業內部網)、Extranet(企業外部網)。所進行的商務活動不僅包含電子資料交換所涉及的電了交易,還包括電了函件交流、網上站點宣傳和利用Internet技術改造的其他傳統應用。但電子商務應用的前提是企業管理資訊系統得廣泛使用。資料庫技術是企業管理資訊系統的核心技術之一。所以,想深入地理解電子商務就應該瞭解資料庫的一些基本理論。
一、資料和資訊
所謂資料就是為反映客觀世界而記錄下來的可以鑑別的符號,可以是數字、字元、圖形、影象、聲音等。而資訊是指經過解釋的資料,能解決或減少人們的對客觀事物認識的不確定性。資料和資訊之間的區別和聯絡是:資料是純客觀的,只單純反映客觀事物的性質,並不說明該事物對主觀的作用與資料只是資訊的載體,是表達和傳遞資訊的工具。資料經過加工處理可以上升為資訊。同一資訊可以用不同形式的資料表達,而不改變資訊的內容。
二、資料模型
資料模型是對現實世界中的資料和資訊進行抽象、表示和處理的工具,是對現實世界的模擬,也是資料庫系統中用於提供資訊表示和操作手段的形式構架,通常其構成是:資料結構,包括資料物件及其相互聯絡;資料操作,主要是對資料的檢索和更新。
資料的約束條件是完整性規則的集合。完整性規則是指在給定的資料模型中資料及其聯絡所具有的制約和依存規則。在資料庫系統中,主要的資料模型有:層次模型(Hierarchical Model)、網狀模型(Network Model)、和關係模型(Relational Model)。
(1)層次模型(Hierarchical Model)
用樹型結構來表示實體型及其聯絡的資料模型稱為層次模型,在這種結構中每個結點表示一個記錄型別,連線表示兩個記錄之間的關係,位於上層的結點稱為雙親結點,下層則為子女結點。樹的最高層只有一個結點,成為根結點。如圖2-20就是某學校的一個層次模型。圖中“教研室”結點就是“教師”的雙親結點,而“教師”結點就是子女結點。
由於除一個沒有雙親結點的根結點之外,任何結點有且只有一個雙親結點,所以只能直接表示一對多的實體聯絡(包括一對一,多對多關係須分解成一對多的聯絡)。
(2)網狀模型(Network model )
網狀模型比層次模型更具普遍性。它允許多個結點沒有雙親結點,也允許一個結點有多個雙親結點,允許兩個結點之間有多種聯絡。所以網狀模型可以直接地描述現實世界,特別適合處理多對多的聯絡。
圖2-20 產品網狀模型
在圖2-19中,客戶和產品結點都沒有雙親結點,訂單明細結點有兩個雙親結點,所以該資料模型不屬於層次模型,而屬於網狀模型。
(3)關係模型(Relational model)
關係模型是三種資料庫中最重要的模型,也是現在用的最廣的模型。其資料結構的基本思想是將實體之間的聯絡以二維表的結構來表示。一個二維表就是一個關係;二維表中的一行代表一個實體,由實體的若干屬性組成,稱為記錄;二維表中的一列為關係一個屬性,稱為資料項。
目前大部分資料庫採用的是關係型資料庫,如 Sybase、SQL Server、Oracle、Access等。
關係資料庫設計之時是要遵守一定的規則的。尤其是資料庫設計正規化,現簡單介紹1NF(第一正規化),2NF(第二正規化),3NF(第三正規化)和BCNF,另有第四正規化和第五正規化(本教材不作介紹)。
資料庫的設計正規化是資料庫設計所需要滿足的規範,滿足這些規範的資料庫是簡潔的、結構明晰的,同時,不會發生插入()、刪除()和更新(update)操作異常。反之則是亂七八糟,不僅給資料庫的程式設計人員製造麻煩,而且面目可憎,可能儲存了大量不需要的冗餘資訊。
第一正規化(1NF):
資料庫表中的欄位都是單一屬性的,不可再分。這個單一屬性由基本型別構成,包括整型、實數、字元型、邏輯型、日期型等。
很顯然,在當前的任何關係資料庫管理系統(DBMS)中,誰也不可能做出不符合第一正規化的資料庫,因為這些DBMS不允許你把資料庫表的一列再分成二列或多列。因此想在現有設計中設計出不符合第一正規化的資料庫都不可能。
第二正規化(2NF):
資料庫表中不存在非關鍵欄位對任一候選關鍵欄位的部分函式依賴(部分函式依賴指的是存在組合關鍵字中的某些欄位決定非關鍵欄位的情況),也即所有非關鍵欄位都完全依賴於任意一組候選關鍵字。
假定選課關係表為SelectCourse(學號,姓名,年齡,課程名稱,成績,學分),關鍵字為組合關鍵字(學號,課程名稱),因為存在如下決定關係:
(學號,課程名稱) → (姓名,年齡,成績,學分)
這個資料庫表不滿足第二正規化,因為存在如下決定關係:
(課程名稱)→(學分)
(學號)→(姓名,年齡)
即存在組合關鍵字中的欄位決定非關鍵字的情況。
由於不符合2NF,這個選課關係表會存在如下問題:
(1)資料冗餘:同一門課程由n個學生選修,“學分”就重複n-1次;同一個學生選修了m門課程,姓名和年齡就重複了m-1次。
(2)更新異常:若調整了某門課程的學分,資料表中所有行的“學分”值都要更新,否則會出現同一門課程學分不同的情況。
(3)插入異常:假設要開設一門新的課程,暫時還沒有人選修。這樣,由於還沒有“學號”關鍵字,課程名稱和學分也無法記錄入資料庫。
(4)刪除異常:假設一批學生已經完成課程的選修,這些選修記錄就應該從資料庫表中刪除。但是,與此同時,課程名稱和學分資訊也被刪除了。很顯然,這也會導致插入異常。
把選課關係表SelectCourse改為如下三個表:
學生:Student(學號,姓名,年齡);
課程:Course(課程名稱,學分);
選課關係:SelectCourse(學號,課程名稱,成績)。
這樣資料庫表是符合第二正規化的,消除了資料冗餘、更新異常、插入異常和刪除異常。
另外,所有單關鍵字的資料庫表都符合第二正規化,因為不可能存在組合關鍵字。
第三正規化(3NF):
在第二正規化的基礎上,資料表中如果不存在非關鍵欄位對任一候選關鍵欄位的傳遞函式依賴則符合第三正規化。所謂傳遞函式依賴,指的是如果存在“A→B→C”的決定關係,則C傳遞函式依賴於A。因此,滿足第三正規化的資料庫表應該不存在如下依賴關係:
關鍵欄位→非關鍵欄位x→非關鍵欄位y
假定學生關係表為Student(學號,姓名,年齡,所在學院,學院地點,學院電話),關鍵字為單一關鍵字“學號”,因為存在如下決定關係:
(學號)→(姓名,年齡,所在學院,學院地點,學院電話)
這個資料庫是符合2NF的,但是不符合3NF,因為存在如下決定關係:
(學號)→(所在學院)→(學院地點, 學院電話)
即存在非關鍵欄位“學院地點”、“學院電話”對關鍵欄位“學號”的'傳遞函式依賴。
它也會存在資料冗餘、更新異常、插入異常和刪除異常的情況。
把學生關係表分為如下兩個表:
學生:(學號,姓名,年齡,所在學院);
學院:(學院,地點,電話)。
這樣資料庫表是符合第三正規化的,消除了資料冗餘、更新異常、插入異常和刪除異常。
鮑依斯-科得正規化(BCNF):
在第三正規化的基礎上,資料庫表中如果不存在任何欄位對任一候選關鍵欄位的傳遞函式依賴則符合BCNF正規化。
假設倉庫管理關係表為StorehouseManage(倉庫ID,儲存物品ID,管理員ID,數量),且有一個管理員只在一個倉庫工作;一個倉庫可以儲存多種物品。這個資料庫表中存在如下決定關係:
(倉庫ID,儲存物品ID)→(管理員ID,數量)
(管理員ID,儲存物品ID)→(倉庫ID,數量)
所以,(倉庫ID,儲存物品ID)和(管理員ID,儲存物品ID)都是StorehouseManage的候選關鍵字,表中的唯一非關鍵欄位為數量,它是符合第三正規化的。但是,由於存在如下決定關係:
(倉庫ID)→(管理員ID)
(管理員ID)→(倉庫ID)
即存在關鍵欄位決定關鍵欄位的情況,所以其不符合BCNF正規化。會出現如下異常情況:
(1) 刪除異常:當倉庫被清空後,所有“儲存物品ID”和“數量”資訊被刪除的同時,“倉庫ID”和“管理員ID”資訊也被刪除了。
(2) 插入異常:當倉庫沒有儲存任何物品時,無法給倉庫分配管理員。
(3) 更新異常:如果倉庫換了管理員,則表中所有行的管理員ID都要修改。
把倉庫管理關係表分解為二個關係表:
倉庫管理:StorehouseManage(倉庫ID,管理員ID);
倉庫:Storehouse(倉庫ID,儲存物品ID,數量)。
這樣的資料庫表是符合BCNF正規化的,消除了刪除異常、插入異常和更新異常。
三、資料庫系統的組成
資料庫系統主要由資料庫管理系統(Data Base Management System, DBMS)、資料庫(Data Base , DB)、應用程式(Applied Program ,AP)、計算機系統(Computer System, CS)、資料庫管理員(Data Base Administrator, DBA)構成。
資料庫管理系統(DBMS)是為資料庫的建立、使用和維護而配置的軟體,是資料庫系統的核心部分組成。它建立在作業系統的基礎上,對資料庫進行統一的管理和控制。使用者使用的各種資料庫命令以及應用程式的執行,都要通過資料庫管理系統。資料庫管理系統還承擔著資料庫的維護工作,按照DBA所規定的要求,保證資料庫的安全性和完整性。
四、資料庫技術的發展趨勢
隨著表示結構化資訊的資料庫與資料倉庫技術發展迅速,除了目前廣泛應用的關係型資料庫管理系統(如Sybase、Oracle等),近年來還出現了一些新的發展方向,如面向物件的資料庫(OODB)、多維資料庫(MDDB)、主動資料庫、多媒體資料庫等。資料庫技術還與其他多學科技術的有機組合,形成面向專門應用領域的資料庫技術,如資料探勘DM(Data Mining)、資料庫中的知識發現KDD(Knowledge Discovery in Database)、智慧代理(Agents)、智慧資訊檢索技術等等。