MySQL數據庫管理與應用任務式教程(微課版)單元2 數據庫基本原理_第1頁
MySQL數據庫管理與應用任務式教程(微課版)單元2 數據庫基本原理_第2頁
MySQL數據庫管理與應用任務式教程(微課版)單元2 數據庫基本原理_第3頁
MySQL數據庫管理與應用任務式教程(微課版)單元2 數據庫基本原理_第4頁
MySQL數據庫管理與應用任務式教程(微課版)單元2 數據庫基本原理_第5頁
已閱讀5頁,還剩71頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

單元2數據庫基本原理《MySQL數據庫管理與應用任務式教程(慕課版)》學習內容任務1理解數據模型

2任務2了解數據庫系統的結構任務4卸載MySQL

2任務3了解關系數據庫

2任務4實現關系的規范化

2任務5了解數據庫設計的過程學習目標任務4卸載MySQL【知識目標】

掌握數據模型的概念、組成和類型。掌握實體-聯系模型的基本概念。掌握E-R圖的組成及畫法。掌握關系模型的組成要素和主要特點。了解數據庫的三級模式結構和二級映像。理解關系代數中的選擇、投影和連接運算。初步了解關系數據庫標準語言SQL。了解數據規范化的基本概念及其范式。掌握數據庫設計的方法與步驟。【能力目標】

能夠設計具體的數據庫應用系統。會畫E-R圖。會用范式規范數據。【素質目標】引導學生了解國產數據庫管理系統發展的現狀,增強文化自信,培養創新思維。任務1理解數據模型2.1.1數據模型1.數據模型的概念模型是人們對現實世界中的事物和過程的描述及抽象表達。數據庫是相關數據的集合,它不僅反映數據本身的內容,還反映數據之間的聯系。在數據庫中,用數據模型這個工具來抽象、表示、處理現實世界中的數據和信息,以便計算機能夠處理這些對象。因此,數據庫中的數據模型是現實世界數據特征的抽象和歸納,也就是說,數據模型是用來描述數據、組織數據和對數據進行操作的。數據模型用于描述數據庫系統的靜態特征、動態特征和完整性約束條件。構成數據模型的三要素為數據結構、數據操作和數據的完整性約束。任務1理解數據模型

數據結構是對數據靜態特征的描述。數據的靜態特征包括數據的基本結構、數據間的聯系和對數據取值范圍的約束。所以,數據結構是所研究對象的類型的集合。在數據庫系統中,通常按數據結構的類型來命名數據模型,如關系結構的數據模型是關系模型。(1)數據結構(2)數據操作

數據操作是指對數據動態特征的描述,包括對數據進行的操作及相關操作規則。數據庫的操作主要有檢索和更新(包括插入、刪除、修改)兩大類。數據模型要定義這些操作的確切含義、操作符號、操作規則(如優先級)以及實現操作的語言。因此,數據操作完全可以看成對數據庫中各種對象的操作的集合。任務1理解數據模型

數據的完整性約束是對數據靜態和動態特征的限定,用來描述數據模型中數據及其聯系應該具有的制約和依存規則,以保證數據正確、有效和相容。數據模型應該反映和規定本數據模型必須遵守的、基本的、通用的完整性約束條件。例如,在關系模型中,任何關系必須滿足實體完整性和參照完整性兩個條件。另外,數據模型還應該提供定義完整性約束條件的機制,特定的數據必須遵守特定的語義約束條件,如學生信息中的性別只能是男或女。(3)數據的完整性約束任務1理解數據模型2.數據模型的類型數據模型一般應滿足3個條件:數據模型要能夠真實地描述現實世界;數據模型要容易理解;數據模型要能夠方便地在計算機上實現。根據數據模型應用目的的不同,可以將數據模型分為兩類:一類是概念數據模型(簡稱概念模型),另一類是邏輯數據模型(簡稱邏輯模型)和物理數據模型(簡稱物理模型)。概念模型也稱信息模型,它是面向用戶的,用于按照用戶的觀點來對數據和信息建模,主要用于數據庫設計,與具體的數據庫管理系統無關。邏輯模型和物理模型是面向計算機系統的。邏輯模型是概念模型的數據化,用于按照計算機系統的觀點對數據建模,是現實世界的計算機模擬,與使用的數據管理系統的種類有關,主要用于數據庫管理系統的實現。任務1理解數據模型物理模型是對數據最底層的抽象,它用于描述數據在系統內部的表示方式和存取方法,或在磁盤或磁帶上的存儲方式和存取方法。物理模型的具體實現是數據庫管理系統的任務。數據模型是數據庫系統的核心和基礎。各種機器上實現的數據庫管理系統軟件都是基于某種數據模型或者支持某種數據模型的。

任務1理解數據模型由于計算機不可能直接處理現實世界中的具體事物,更不能處理事物與事物之間的聯系,因此必須把現實世界的具體事物轉換成計算機能夠處理的對象。現實世界轉化為計算機世界的過程如圖2-1所示。任務1理解數據模型2.1.2概念模型1.信息世界的基本概念概念模型用于信息世界的建模,反映現實世界中的信息及其關系,能滿足用戶對數據的處理要求,是現實世界到信息世界的第一層抽象。概念模型也是用戶和數據庫設計人員之間進行交流的工具,數據庫設計人員在設計初期應把主要精力放在概念模型的設計上。任務1理解數據模型信息世界中常用的概念如下所述。

(1)實體(Entity)客觀存在并可相互區別的事物稱為實體。實體可以是具體的人、事、物,如學生、課程等,也可以是抽象的概念或聯系,如學生選課等。

(2)屬性(Attribute)實體具有的某一特征或性質稱為屬性。一個實體可以由若干個屬性來刻畫,如學生實體可以用學號、姓名、專業、性別、出生時間等屬性來描述。屬性的具體取值稱為屬性值。如(001104,嚴蔚敏,軟件技術,男,2000-08-26,50)這些屬性組合起來描述了一個具體的學生。任務1理解數據模型(3)聯系(Relationship)在現實世界中,事物內部以及事物之間是有聯系的,這些聯系在信息世界中反映為兩類:一類是實體內部的聯系,即組成實體的各屬性之間的聯系;另一類是不同實體之間的聯系。如學生選課實體和學生基本信息實體之間是有聯系的,一名學生可以選修多門課程,一門課程可以被多名學生選修。(4)關鍵字(Key)唯一標識實體的一個屬性或多個屬性的組合稱為關鍵字。如學號是學生實體的關鍵字,而在學生選課關系中,學號和課程號組合在一起才能唯一標識某個學生某門課程的考試成績。任務1理解數據模型(5)實體型(EntityType)用實體名及其屬性名集合來抽象和描述同類的實體,稱為實體型,通常我們所說的實體就是指實體型。如學生(學號,姓名,專業,性別,出生時間,總學分,備注)就是一個實體型,它表示學生信息,不是指某一個具體的學生。(6)實體集(EntitySet)同一類實體的集合稱為實體集。例如,全體學生就是一個實體集。任務1理解數據模型(7)實體間的聯系的類型。實體間的聯系可以分為如下3類①一對一聯系(1∶1)②一對多聯系(1∶n)③多對多聯系(m∶n)任務1理解數據模型2.概念模型的表示方法在概念模型的眾多表示方法中,最常用的一種是實體-聯系(E-R)方法,也稱E-R模型。該方法用E-R圖來描述現實世界的概念模型,可以直觀地表示現實世界中各類對象的特征和對象之間的聯系。下面對實體(型)、屬性、聯系進行簡要介紹。

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

屬性:用橢圓形表示,橢圓形內注明屬性名稱,并用無向邊將其與相應的實體連接起來。當屬性較多時,可以將實體與其相應的屬性單獨用列表表示。聯系:用菱形表示,菱形內寫明聯系名,并用無向邊將其與有關實體連接起來,同時在無向邊上標注聯系的類型(1∶1、1∶n或m∶n)。任務1理解數據模型【例題2.1】在學生選課的概念模型中,學生實體具有學號、姓名、專業名、性別、出生時間、總學分、備注等屬性,用E-R圖表示如圖2-3所示任務1理解數據模型【例題2.2】用E-R圖表示學生選課的概念模型。每個實體的屬性如下。學生的屬性:學號、姓名、專業名、性別、出生時間、總學分、備注。課程的屬性:課程號、課程名、開課學期、學時、學分。這些實體的聯系為一個學生可以選修若干門課程,每門課程由多名學生選修。用E-R圖表示如圖2-4所示任務1理解數據模型2.1.3邏輯模型數據庫領域中主要的邏輯模型包括層次模型、網狀模型、關系模型、面向對象數據模型、對象關系數據模型、半結構化數據模型等。表2-1對4種常用的邏輯模型做了簡單的比較,本小節主要介紹關系模型。關系模型是目前應用最廣的一種數據模型,也是理論研究最完備的一種數據模型。任務1理解數據模型任務1理解數據模型1.關系模型的數據類型關系模型的數據結構是關系。在用戶看來,關系就是二維表,關系模型由一組二維表組成。下面以學生情況表為例介紹一些關系模型中常用的術語任務1理解數據模型①關系(Relation):一個關系通常對應一張二維表,由行和列組成,表名即關系名。實體及實體間的聯系都用二維表來表示,如表2-2所示的學生情況表。在數據庫的物理組織中,二維表是以文件形式存儲的。②元組(Tuple):二維表中的一行即為一個元組(也稱記錄),是眾多具有相同屬性的對象中的一個,如學生關系中的(001104,嚴蔚敏,軟件技術,男,2000-08-26,50)就是一個元組,記錄了一名學生的基本信息。③屬性(Attribute):二維表中的一列即為一個屬性,代表相應數據表中存儲對象的共有屬性,屬性的名稱為屬性名,屬性的值稱為屬性值。表2-2中的學號、姓名等均為屬性,001104為學號的屬性值。④域(Domain):屬性的取值范圍稱為屬性的域。屬性的域是由屬性的性質及要表達的意義確定的,如學生性別的域是(男,女)。任務1理解數據模型⑤候選鍵(CandidateKey):若關系中的某一屬性或屬性組的值能唯一地標識一個元組,則稱該屬性或屬性組為候選鍵;候選鍵可以有多個。⑥主鍵(PrimaryKey,PK):關系中的某個屬性或屬性組能唯一確定一個元組,即確定一個實體,則該屬性或屬性組為主鍵。一個關系中的主鍵只能有一個,主鍵也被稱為關鍵字。如學生表中的學號可以唯一確定一個學生,因此學號是學生表的關鍵字。而在成績表中,學號和課程號組合起來才能唯一地確定一個元組,所以,學號和課程號的組合稱為成績表的關鍵字。這種由多個屬性組成的關鍵字稱為復合關鍵字。⑦外鍵或外部關鍵字(ForeignKey,FK):一個關系中的屬性或屬性組不是本關系的主鍵,而是另一關系的主鍵,則稱該屬性或屬性組是該關系的外鍵。任務1理解數據模型⑧關系模式(RelationSchema):對關系的描述稱為關系模式,它描述的是二維表的結構。一般表示為:關系名(屬性1,屬性2,…,屬性n)例如,學生、課程、選課之間的聯系在關系模型中可以表示為如下形式。學生(學號,姓名,專業名,性別,出生時間,總學分,備注)主鍵:學號課程(課程號,課程名,開課學期,學時,學分)主鍵:課程號成績(學號,課程號,成績)主鍵:學號、課程號外鍵:學號、課程號⑨元數(Arity):關系模式中屬性的數目是關系的元數。⑩分量(Component):元組中的一個屬性值稱為元組的分量。任務1理解數據模型關系模型給出了關系操作的能力,關系操作的對象和結果都是集合,主要包括以下兩方面。①查詢操作:選擇(SELECT)、投影(PROJECT)、連接(JOIN)、除(DIVIDE)、并(UNION)、交(INTERSECTION)和差(DIFFERENCE)。②更新操作:插入(INSERT)、刪除(DELETE)和修改(UPDATE)。進行插入、刪除、修改操作時要滿足關系模型的完整性約束條件。關系操作都是由關系操作語言實現的。關系模型使用的查詢語言是關系代數和關系演算。關系代數用關系的運算來表達查詢要求,關系演算用謂詞來表達查詢要求。SQL是介于關系代數和關系演算之間的語言。關系代數和關系演算也是關系數據庫SQL的理論基礎任務1理解數據模型3.關系模型的完整性約束關系的完整性就是指關系模型的數據完整性,用于確保數據的準確性和一致性。關系模型的完整性有三大類:實體完整性、參照完整性和用戶定義的完整性。其中,實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,稱為關系的兩個不變性。(1)實體完整性實體完整性是指關系的關鍵字的所有屬性都不能為空。它可確保關系中的每個元組都是可識別的、唯一的。關系模型中的每個元組都對應客觀存在的一個實例,若關系中的某個元組主鍵沒有值,則此元組在關系中一定沒有任何意義。如在學生關系中,主鍵學號能夠唯一地確定一個學生,如果某個學生的學號為空,則此學生將無法管理。任務1理解數據模型(2)參照完整性參照完整性也稱引用完整性,是指兩個表的主鍵和外鍵的數據對應一致。它可確保有主鍵的表中有對應其他表的外鍵的行存在。現實世界中的實體之間往往存在某種聯系,在關系模型中就自然存在關系與關系間的引用。參照完整性用于描述實體之間的引用規則,即一個實體中某個屬性的值引用了另一個實體的關鍵字,其中引用關系稱為參照關系,而被引用關系稱為被參照關系,參照關系中的引用字段稱為外鍵。關系模型中的參照完整性就是通過定義外鍵來實現的。例如,學生、課程、學生與課程之間的多對多聯系可以用如下3個關系表示。學生(學號,姓名,專業名,性別,出生時間,總學分,備注)課程(課程號,課程名,開課學期,學時,學分)選修(學號,課程號,成績)任務1理解數據模型參照完整性就是限制一個關系中某個屬性的取值受另一個關系中某個屬性的取值范圍的約束。不僅兩個或兩個以上的關系間可以存在引用關系,同一關系內部的屬性間也可以存在引用關系。參照完整性規定了關鍵字與外鍵之間的引用規則,要求主關鍵字必須是非空且不重復的,但對外鍵并無要求。外鍵可以有重復值,也可以為空任務1理解數據模型(3)用戶定義的完整性用戶定義的完整性也稱域完整性或語義完整性。它是指不同的關系數據庫系統根據應用環境的不同,設定的一些特殊約束條件。用戶定義完整性常用于限定屬性的類型及取值范圍,這樣可以防止屬性值與數據庫語義矛盾。例如學生的性別應該是男或女。任務1理解數據模型4.關系模型的主要特點關系模型的主要特點如下。①關系中的每一個數據項不可再分,是最基本的單位。②每一列數據項是同屬性的。列數根據需要而定,且各列的順序是任意的。③每一行記錄由一個事物的諸多屬性構成。記錄的順序可以是任意的。④一個關系可看作一張二維表,不允許有相同的字段名,也不允許有相同的記錄行。任務2了解數據庫系統的結構數據庫系統的邏輯結構可以分為用戶級、邏輯級和物理級3個層次,反映觀察數據庫的3種角度。從數據庫最終用戶的角度看,數據庫系統的結構分為單用戶結構、主從式結構、分布式結構、客戶端/服務器結構、瀏覽器/應用服務器/數據庫服務器多層結構等,這是數據庫系統外部的體系結構。從數據庫應用開發人員的角度看,雖然實際的數據庫管理系統產品種類很多,支持不同的數據模型,使用不同的數據庫語言,建立在不同的操作系統之上,數據的存儲結構也各不相同,但它們在體系結構上通常都具有相同的外模式、模式和內模式三級模式結構的特征,各級模式之間通過映射關系進行聯系和轉換,如圖2-5所示。這是數據庫系統內部的體系結構。任務2了解數據庫系統的結構任務2了解數據庫系統的結構2.2.1了解數據庫系統的三級模式結構1.模式在數據模型中有“型”(Type)和“值”(Value)的概念。型是指某一類數據的結構和屬性的說明,值是型的一個具體值。模式(Schema)也稱邏輯模式或概念模式,是數據庫中全體數據的邏輯結構和特征的描述,它僅僅涉及型的描述,不涉及具體的值。模式的一個具體值稱為模式的一個實例(Instance)。同一個模式可以有很多實例。例如,學生成績管理數據庫模式中,包含學生記錄、課程記錄和成績記錄,現在可以添加一個計算機學院的成績管理數據庫實例,也可以添加一個機電學院的成績管理數據庫實例。任務2了解數據庫系統的結構2.外模式外模式也稱子模式或用戶模式,它是數據庫用戶(包括應用程序開發人員和用戶)能夠看見和使用的局部數據的邏輯結構和特征的描述,是數據庫用戶的數據視圖,是與某一應用程序有關的數據的邏輯表示,屬于視圖層抽象。外模式通常是模式的子集。一個數據庫可以有多個外模式。由于它是各個用戶的數據視圖,如果用戶在應用需求、提取數據的方式、對數據保密的要求等方面存在差異,則其外模式描述會有所不同。即使是模式中的同一數據,它在外模式中的結構、類型、長度、保密級別等都可以不同。任務2了解數據庫系統的結構3.內模式內模式也稱存儲模式,是數據在數據庫中的內部表示,是數據物理結構和存儲方式的描述,屬于物理層抽象,例如數據是否壓縮存儲、是否加密,數據的存儲記錄結構有何規定等。內模式是數據庫管理系統管理的最低層。數據庫管理系統提供內模式DDL來嚴格地定義內模式。一個數據庫只有一個內模式。任務2了解數據庫系統的結構2.2.2了解數據庫系統的兩級映像數據庫系統的三級模式是對數據進行抽象的3個級別,為了能夠在內部實現這3個抽象層次的聯系和轉換,數據庫管理系統在這3級模式之間提供了兩級映像:外模式/模式映像、模式/內模式映像。這兩級映像保證了數據庫系統中的數據具有較強的邏輯獨立性和物理獨立性。任務2了解數據庫系統的結構(1)外模式/模式映像模式描述的是數據的全局邏輯結構,外模式描述的是數據的局部邏輯結構。同一個模式可以有多個外模式。對于每一個外模式,數據庫系統都提供了一個外模式/模式映像,它定義了外模式與模式之間的對應關系。映像定義通常包含在各自外模式的描述中。當模式改變(如增加新的關系或屬性、改變屬性的數據類型等)時,可由數據庫管理員對各個外模式/模式映像做相應的修改,從而保持外模式不變。應用程序是依據數據的外模式編寫的,因此應用程序不必修改,保證了數據與應用程序的邏輯獨立性,簡稱數據的邏輯獨立性。任務2了解數據庫系統的結構(2)模式/內模式映像數據庫中只有一個模式,也只有一個內模式,所以模式/內模式映像是唯一的,它用于定義數據全局邏輯結構與存儲結構之間的對應關系。當數據庫的存儲結構改變(如選用了另一種存儲結構),為了保持模式不變,也就是應用程序保持不變,可由數據庫管理員對模式/內模式映像做相應改變。這樣,就保證了數據與應用程序的物理獨立性,簡稱數據的物理獨立性。在數據庫的三級模式結構中,數據庫模式即全局邏輯結構,是數據庫的中心與關鍵,它獨立于數據庫的其他模式。因此,設計數據庫模式結構時應先確定數據庫的邏輯模式任務2了解數據庫系統的結構數據庫的內模式依賴于它的全局邏輯結構,但獨立于數據庫的用戶視圖,即外模式,也獨立于具體的存儲設備。它將全局邏輯結構中所定義的數據結構及其聯系按照一定的物理存儲策略進行組織,以達到較好的時間與空間效率。數據庫的外模式面向具體的應用程序,它定義在邏輯模式之上,但獨立于存儲模式和存儲設備。當用戶需求發生較大變化,相應外模式不能滿足其視圖要求時,外模式就要做相應的改動,所以設計外模式時應充分考慮應用程序的擴充性。任務2了解數據庫系統的結構特定的應用程序是在外模式描述的數據結構上開發的,它依賴于特定的外模式,獨立于數據庫的模式和存儲結構。不同的應用程序有時可以共用同一個外模式。數據庫的兩級映像保證了數據庫外模式的穩定性,從而從底層保證了應用程序的穩定性,除非應用需求本身發生變化,否則應用程序一般不需要修改。數據庫的三級模式和兩級映像保證了數據與應用程序之間的獨立性,使得數據的定義和描述可以從應用程序中分離出去。另外,由于數據的存取由數據庫管理系統管理,用戶不必考慮存取路徑等細節,從而簡化了應用程序的開發,大大減少了應用程序的維護和修改成本。任務3了解關系數據庫2.3.1關系代數在計算機上存儲數據的目的是使用數據,選擇好數據的組織形式后,就要確定如何使用這些數據。關系代數是一種抽象的查詢語言,它用關系的運算來表達查詢。關系代數的運算對象是關系,運算結果亦為關系,它主要運用高等數學中關系代數的集合的相關理論。關系代數的運算按運算符的不同可分為傳統的集合運算和專門的關系運算兩類。①傳統的集合運算將關系看成元組的集合,其運算是從關系的行的角度進行的。它包括并、差、交、笛卡兒積4種運算。任務3了解關系數據庫②專門的關系運算包括選擇、投影、連接和除等,它不僅涉及行而且涉及列,常用比較運算符和邏輯運算符來輔助專門的關系運算符進行操作。關系代數中常用的運算及運算符如下。集合運算:∪(并)、―(差)、∩(交)、×(笛卡兒積)。關系運算:∏(投影)、σ(選擇)、(連接)、÷(除)。比較運算:>(大于)、≥(大于等于)、<(小于)、≤(小于等于)、≠(不等于)。邏輯運算:∨(或)、∧(與)、﹃(非)。下面僅對部分運算做簡要介紹。任務3了解關系數據庫1.投影運算投影運算是對關系中的列(屬性)進行的運算。它按給定的條件選取關系中的部分或全部列,將其重新排列后組成一個新的關系。投影運算屬于單目運算【例題2.3】將表2-2“學生情況表”記作關系R,它是一個7度關系,查詢所有學生的姓名、專業名、總學分,將查詢結果組成新表“學生專業情況表”,如表2-3所示。將“學生專業情況表”記作關系S,它是一個3度關系,并且是由R通過投影運算得到的。記作:

S=∏姓名,專業名,總學分(R)任務3了解關系數據庫2.選擇運算選擇運算是對關系中的行進行的運算,是從指定的關系中,選取滿足條件的部分或全部行,組成一個新的關系。選擇運算屬于單目運算,選擇的結果是原關系的一個子集,且關系的模型不變。【例題2.4】在表2-2所示的“學生情況表”中,查詢網絡技術專業的學生,查詢得到的關系如表2-4所示。任務3了解關系數據庫3.連接運算連接運算是按照給定的條件,把兩個關系中的一切可能的組合方式拼接起來,形成一個新的關系,就是對兩個關系進行笛卡兒積的選擇運算。連接運算是雙目運算。連接運算中有兩種很重要也很常用的連接:等值連接和自然連接。(1)等值連接。如果兩個關系R和S中分別存在數目相等且可比的屬性組A和B,在R和S的笛卡兒積中選取A、B屬性值相等的元組稱為等值連接。任務3了解關系數據庫【例題2.5】將學生關系和選課關系進行連接,能得到學生及其選課的情況,如表2-5(關系R)和表2-6(關系S)。查詢關系R和S中姓名屬性值相等的元組。任務3了解關系數據庫則關系R與S等值連接的結果如表2-7所示。任務3了解關系數據庫(2)自然連接。自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的屬性組的值必須相同,并且在結果中把重復的屬性去掉。自然連接是最常用的一種連接運算,在關系運算中起著重要作用。任務3了解關系數據庫【例題2.6】例題2.5中關系R和S的自然連接結果如表2-8所示。由此可見,查詢時應考慮優化,以便提高查詢效率。如果有可能,應當首先進行選擇運算,使關系中元組的個數盡量少,然后進行投影運算,使關系中屬性的個數較少,最后進行連接運算。任務3了解關系數據庫2.3.2關系數據庫標準語言SQL1.SQL的主要特點SQL具有數據查詢(DataQuery)、數據操縱(DataManipulation)、數據定義(DataDefinition)和數據控制(DataControl)功能,其主要特點如下。①綜合統一。②SQL是非過程化的語言。③SQL采用面向集合的操作方式。④以同一種語法結構提供多種使用方式。SQL既是獨立的語言,又是嵌入式語言。⑤語言簡潔,易學易用。此外,SQL支持數據庫管理系統的三級模式結構,模式對應基本表,外模式對應視圖或部分基本表,內模式對應存儲文件。任務3了解關系數據庫2.SQL的組成

SQL由以下幾部分組成。(1)DDLDDL用于執行數據庫的任務,對數據庫以及數據庫中的各種對象進行創建、刪除、修等操作。DDL的主要語句及功能如表2-9所示。任務3了解關系數據庫(2)DMLDML用于操縱數據庫中的各種對象,檢索和修改數據。DML的主要語句及功能如表2-10所示。任務3了解關系數據庫(3)DCLDCL用于安全管理,確定哪些用戶可以查看或修改數據庫中的數據,DCL的主要語句及功能如表2-11所示。任務4實現關系的規范化2.4.1第一范式(1NF)在關系數據庫中,對關系模式的基本要求是滿足第一范式,這樣的關系模式就是合法的、允許的。第一范式是指數據表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。由此可見,第一范式主要針對列進行規范化。從用戶角度看,關系的邏輯結構是一個二維表,每個表代表一類信息(實體)的集合,但事實上不是所有的二維表都是關系。任務4實現關系的規范化例如,將學號、姓名、聯系電話組成一張表,但一個學生可能有一個移動電話和一個家庭電話,所以這張表就不是關系。將其規范成第一范式有以下3種方法。①重復存儲學號和姓名,關鍵字是聯系電話。②學號為關鍵字,聯系電話分為移動電話和家庭電話。③學號為關鍵字,但每條記錄只能有一個聯系電話,要么是移動電話,要么是家庭電話。以上3種方法中,第一種方法最不可取,按實際情況選取后兩種方法。這種將非關系的二維表轉化為關系,就是關系規范化的過程。通過規范化可以使從數據庫中得到的結果更加準確。任務4實現關系的規范化2.4.2第二范式(2NF)第二范式是在第一范式的基礎上建立起來的,即滿足第二范式必須先滿足第一范式。有些滿足第一范式的關系模式存在插入異常、刪除異常、修改復雜、數據冗余等問題。例如,在分析學生基本信息時,得到表2-12所示的表。任務4實現關系的規范化表2-12用于保存學生基本信息,其中包括學生學號、姓名及課程成績等信息,如果要刪除其中的一個學生,就必須同時刪除一個相應的成績,規范化就是要解決這個問題。可以將這個表轉化為兩個表,一個用于存儲每個學生的基本信息,另一個用于存儲每個學生的成績信息,這樣對其中一個表進行添加或刪除操作都不會影響另一個表。分解后的關系如表2-13和表2-14所示。任務4實現關系的規范化第二范式要求數據表中的每個實例或行必須可以被唯一地區分。為實現區分通常需要為表加上一個列,以存儲各個實例的唯一標識。例如表2-12學生基本信息表中添加了學號列,因為每個學生的學號是唯一的,因此每個學生可以被唯一區分。這個唯一列被稱為主鍵。任務4實現關系的規范化第二范式要求實體的屬性完全依賴主鍵。完全依賴是指不能存在僅依賴主鍵一部分的屬性。如果存在,那么這個屬性和主鍵這一部分應該被分離出來形成一個新的實體,新實體與原實體之間具有一對多關系。換言之,第二范式是指數據表中不存在非關鍵字段對任一候選關鍵字段的部分函數依賴(部分函數依賴指的是存在復合關鍵字中的某些字段決定非關鍵字段),即所有非關鍵字段都完全依賴于任意一組候選關鍵字。數據庫的設計范式是數據庫設計需要滿足的規范,滿足這些規范的數據庫是簡潔的、結構明晰的,同時,不會發生插入、刪除和更新操作異常。反之,數據庫會比較混亂,可能會有大量不需要的冗余信息,給數據庫應用程序開發人員制造麻煩。任務4實現關系的規范化【例題2.7】在選課關系表SelectCourse(學號,姓名,出生時間,課程名稱,成績,學分)中,關鍵字為復合關鍵字(學號,課程名稱),因為存在如下決定關系:(學號,課程名稱)→(姓名,出生時間,成績,學分)。這個數據表不滿足第二范式,因為存在如下決定關系:(課程名稱)→(學分);(學號)→(姓名,出生時間)。即存在復合關鍵字中的字段決定非關鍵字的情況。

由于不符合第二范式,這個選課關系表會存在如下問題。(1)數據冗余。同一門課程由n個學生選修,學分就重復n-1次;同一個學生選修m門課程,姓名和出生時間就重復m-1次。(2)更新異常。若調整了某門課程的學分,數據表中所有行的學分值都要更新,否則會出現同一門課程學分不同的情況。任務4實現關系的規范化(3)插入異常。假設要開設一門新的課程,暫時還沒有人選修。這時,由于還沒有“學號”關鍵字,課程名稱和學分也無法記錄入數據庫。(4)刪除異常。假設一批學生已經完成課程的選修,這些選修記錄就應該從數據表中刪除。但是,與此同時,課程名稱和學分信息也被刪除了。很顯然,這也會導致插入異常。假設把選課關系表SelectCourse改為如下3個表。學生:xs(學號,姓名,出生時間)。課程:kc(課程名稱,學分)。成績:cj(學號,課程名稱,成績)。這樣的數據表是符合第二范式的,它已消除了數據冗余、更新異常、插入異常和刪除異常。另外,所有單關鍵字的數據表都符合第二范式,因為其中不可能存在復合關鍵字。任務4實現關系的規范化2.4.3第三范式(3NF)在第二范式的基礎上,第三范式要求一個數據表中不包含已在其他表中包含的非主鍵信息。例如,存在一個班級信息表,其中每個班級都有班級編號、班級名、班級簡介等信息。那么在學生信息表中列出班級編號后就不能再將班級名、班級簡介等與班級有關的信息加入學生信息表中。如果不存在班級信息表,則根據第三范式創建它,否則就會有大量的數據冗余。換言之,第三范式是指在第二范式的基礎上,數據表中不存在非關鍵字段對任一候選關鍵字段的傳遞函數依賴。所謂傳遞函數依賴,指的是如果存在“A→B→C”的決定關系,則C的傳遞函數依賴于A。因此,滿足第三范式的數據表應該不存在依賴關系:關鍵字段→非關鍵字段x→非關鍵字段y。任務4實現關系的規范化假定學生關系表為Student(學號,姓名,出生時間,所在學院,學院地點,學院電話),關鍵字為單一關鍵字“學號”,因為存在如下決定關系:(學號)→(姓名,出生時間,所在學院,學院地點,學院電話)。這個數據庫是符合第二范式的,但是不符合第三范式,因為存在如下決定關系:(學號)→(所在學院)→(學院地點,學院電話)。即存在非關鍵字段學院地點、學院電話對關鍵字段學號的傳遞函數依賴。顯然它也存在數據冗余、更新異常、插入異常和刪除異常的問題。如果把學生關系表分為如下兩個表。學生:(學號,姓名,出生時間,所在學院)。學院:(學院,地點,電話)。則這樣的數據表是符合第三范式的,它已消除了數據冗余、更新異常、插入異常和刪除異常。任務4實現關系的規范化2.4.4BC范式鮑依斯—科得范式(BoyceCoddNormalForm,BCNF)是由Boyce和科德(Codd)提出的,比3NF又進了一步,通常認為是修正的第三范式。BC范式是指在第三范式的基礎上,數據表中如果不存在任何字段對任一候選關鍵字段的傳遞函數依賴。任務4實現關系的規范化【例題2.8】假設學生基本信息管理關系表為StudentManage(學生ID,班級ID,班主任ID,學生姓名,班級名),且存在一名學生在一個班級里,一個班里有一名班主任的關系。這個數據表中存在如下決定關系:(學生ID,班級ID)→(學生姓名,班級名,班主任ID)(班主任ID,學生ID)→(班級名,班級ID)。所以,(學生ID,班級ID)和(班主任ID,學生ID)都是StudentManage表的候選關鍵字,表中非候選關鍵字不存在傳遞函數依賴,它是符合第三范式的。但是,由于存在如下決定關系:(學生ID)→(班級ID,班主任ID);(班主任ID,班級ID)→(學生ID)。即存在關鍵字段決定關鍵字段的情況,所以它不符合BC范式。它會出現如下異常情況。(1)刪除異常。當班主任信息被清除后,所有“學生ID”和“學生姓名”信息被刪除的同時,“班級ID”和“班級名”信息也會被刪除。任務4實現關系的規范化(2)插入異常。當班級里沒有分配班主任時,無法給班級添加學生信息。(3)更新異常。如果班主任更換了,則表中所有行的班主任ID都要修改。假設把學生基本信息管理關系表分解為兩個關系表。學生信息管理:StudentManage(學生ID,學生姓名,班級ID)。班級信息管理:Class(班級ID,班級名,班主任ID)。這樣的數據表是符合BC范式的,它已消除了刪除異常、插入異常和更新異常。總之,關系模式規范化目的是使結構更合理,消除插入異常、刪除異常和更新異常,使數據冗余盡量少,便于插入、刪除和更新數據任務4實現關系的規范化關系模式規范化的基本思想是逐步消除數據依賴中不合適的部分,使模式中的各關系模式達到某種程度的“分離”,讓一個關系模式描述一個實體或實體間的一種聯系。關系模式規范化的方法是將關系模式投影分解為兩個或兩個以上的模式。如果一個關系模式中的每一個屬性都是不可再分的數據項,則稱它滿足第一范式。消除第一范式中非主屬性對碼的部分函數依賴,則得到第二范式。消除第二范式中非主屬性對碼的傳遞函數依賴,則得到第三范式。消除第三范式中主屬性對碼的部分函數依賴和傳遞函數依賴,則得到BC范式。消除BC范式中非平凡且非函數依賴的多值依賴,則得到第四范式。任務5了解數據庫設計的過程任務2-5了解數據庫設計的過程

在實際項目開發中,如果系統的數據存儲量較大,涉及的表較多,表與表之間的關系比較復雜,就必須先規范地設計數據庫,然后創建數據庫和表。數據庫設計是指對于一個給定的應用環境,設計優化的數據庫的邏輯模式和物理結構,并據此創建數據庫及其應用系統,使之能夠有效地存儲和管理數據,滿足用戶的應用需求,包括信息管理需求和數據操作需求。數據庫設計的目標是為用戶提供一個高效、安全的數據庫,滿足用戶的使用需求。良好的數據庫設計表現為訪問效率高;減少數據冗余,節省存儲空間,便于進一步擴展;可以使應用程序的開發變得更容易。數據庫設計一般分為以下6個階段,其中,需求分析和概念結構設計可以獨立于任何數據庫管理系統進行,邏輯結構設計和物理結構設計與選用的數據庫管理系統密切相關。要創建一個完善的數據庫是不可能一蹴而就的,往往要反復進行這6個階段。任務5了解數據庫設計的過程1.數據庫的需求分析需求分析簡單地說就是分析用戶的要求。需求分析是數據庫設計的第一步,是比較困難和耗費時間的一步,也是整個設計過程的基礎。需求分析階段的主要任務是通過與用戶溝通,充分調查研究,搜集基礎數據,逐步明確用戶對系統的需求,包括數據需求和業務處理需求,確定系統的功能,最終得到系統需求分析說明書。需求分析做得是否充分和準確,直接決定了創建數據庫的速度與質量。需求分析做得不好,會導致整個數據庫設計返工重做。任務5了解數據庫設計的過程2.數據庫的概念結構設計將需求分析得到的用戶需求抽象為概念模型的過程就是概念結構設計。它是整個數據庫設計的關鍵。概念結構設計的任務主要包括兩個方面:概念數據庫模式設計和事

溫馨提示

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

評論

0/150

提交評論