版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
SQLServer與數(shù)據庫應用開發(fā)第1章數(shù)據庫技術基礎SQLServer與數(shù)據庫應用開發(fā)第1章數(shù)據庫技術基礎1.1.數(shù)據管理技術及發(fā)展階段1.2.數(shù)據庫技術基本理論1.3.關系型數(shù)據庫基礎1.4.關系型數(shù)據庫的設計
主要內容主要內容【知識要求】:1.了解數(shù)據管理技術及其發(fā)展階段的特點。
2.掌握數(shù)據庫技術基本概念與數(shù)據庫設計的基礎知識。【能力要求】:1.具備進行數(shù)據庫需求分析和數(shù)據抽象的能力。
2.能根據實際應用情景進行數(shù)據庫模型設計。知識與能力要求【知識要求】:1.了解數(shù)據管理技術及其發(fā)展階段的特點。
1.1.1信息與數(shù)據1.信息信息是客觀世界中的人或者事物的性質或者特征在人腦中的反映。2.數(shù)據數(shù)據是信息的表示形式,是信息存在的載體。信息是數(shù)據的靈魂。
1.1數(shù)據管理技術及其發(fā)展階段
1.1.2數(shù)據管理
數(shù)據管理(DataManagement)就是指對數(shù)據進行收集、組織、存儲、加工、傳播和利用的一系列活動的總和。
由于技術背景不同,數(shù)據管理經歷了人工管理、文件管理、數(shù)據庫管理三個階段。1.人工管理利用簡單記錄工具或者紙張來記錄數(shù)據,20世紀50年代中期出現(xiàn)了計算機,沒有專門數(shù)據管理軟件。特點:(1)系統(tǒng)沒有專用的軟件對數(shù)據進行管理(2)數(shù)據不具有獨立性。(3)數(shù)據不能共享1.1.1信息與數(shù)據1.1數(shù)據管理技術及其發(fā)展階段
1.1數(shù)據管理技術及其發(fā)展階段
2.文件管理階段20世紀50年代后期到60年代中期,數(shù)據管理方式是把計算機中的數(shù)據組織成相互獨立的、被命名的數(shù)據文件。特點:(1)文件系統(tǒng)實現(xiàn)文件系統(tǒng)的結構化,文件內部沒有結構化。(2)數(shù)據冗余度大,維護困難(3)數(shù)據共享性、獨立性差。圖1.1文件系統(tǒng)管理數(shù)據1.1數(shù)據管理技術及其發(fā)展階段
2.文件管理階段1.1數(shù)據管理技術及其發(fā)展階段
3.
數(shù)據庫系統(tǒng)管理階段20世紀60年代后期,出現(xiàn)了大容量磁盤,使數(shù)據能為盡可能多的應用程序服務。數(shù)據不再只針對某一個特定的應用,而是面向全組織,具有整體的結構性,共享性高,冗余度減小,具有一定的程序與數(shù)據之間的獨立性,并且對數(shù)據進行統(tǒng)一的控制。特點:(1)數(shù)據結構化。(2)數(shù)據共享性、獨立性高(3)數(shù)據冗余小。(4)數(shù)據由數(shù)據庫管理系統(tǒng)(DBMS)軟件統(tǒng)一管理和控制圖1.2數(shù)據庫系統(tǒng)管理數(shù)據1.1數(shù)據管理技術及其發(fā)展階段
3.數(shù)據庫系統(tǒng)管理階段數(shù)據庫管理系統(tǒng)提供以下四方面的數(shù)據管理功能。(1)數(shù)據安全性控制:防止因不合法使用數(shù)據而造成數(shù)據的泄露和破壞,保證數(shù)據的安全和機密。(2)數(shù)據的完整性控制:系統(tǒng)通過設置一些完整性規(guī)則,以確保數(shù)據的正確性、有效性和兼容性。(3)并發(fā)控制:多用戶同時讀取或修改數(shù)據庫時,防止相互干擾而給用戶提供不正確的數(shù)據(臟數(shù)據),并使數(shù)據庫受到破壞。(4)數(shù)據恢復:當數(shù)據庫被破壞或數(shù)據不可靠時,系統(tǒng)有能力將數(shù)據庫從錯誤狀態(tài)恢復到最近某一時刻的正確狀態(tài)。1.1數(shù)據管理技術及其發(fā)展階段數(shù)據庫管理系統(tǒng)提供以下四方面的數(shù)據管理功能。1.1數(shù)據管理1.2.1數(shù)據庫基本概念1.數(shù)據庫(Database,DB)數(shù)據庫是指長期存儲在計算機內的、有組織的、可共享的數(shù)據集合。2.數(shù)據庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)數(shù)據庫管理系統(tǒng)是數(shù)據庫的管理機構,它是一個系統(tǒng)軟件,負責數(shù)據庫中的數(shù)據組織、數(shù)據操縱、數(shù)據維護、控制及保護和數(shù)據服務等。負責數(shù)據庫創(chuàng)建、維護、安全管理的人員,叫數(shù)據庫管理員(DatabaseAdministrator,DBA)3.數(shù)據庫系統(tǒng)(DatabaseSystem,DBS)是指引進數(shù)據庫技術后的整個計算機系統(tǒng),它能夠實現(xiàn)有組織地、動態(tài)地存儲大量相關數(shù)據,提供數(shù)據處理和信息資源共享的便利手段。1.2數(shù)據庫基本理論圖1.3數(shù)據庫系統(tǒng)結構圖1.2.1數(shù)據庫基本概念1.2數(shù)據庫基本理論圖1.3數(shù)1.2.2數(shù)據模型數(shù)據模型是現(xiàn)實世界特征的數(shù)據化抽象,是對現(xiàn)實世界的數(shù)字化模擬與表示。數(shù)據模型應滿足三方面的要求:一是能針對性地模擬現(xiàn)實世界中事物的主要特征及其相互關系;二是容易理解和表示;三是便于在計算機系統(tǒng)中實現(xiàn)。將數(shù)據模型可以分為兩類:一類是概念模型,它是面向現(xiàn)實世界來對數(shù)據和信息進行抽象,主要用于數(shù)據庫設計,是數(shù)據模型建立的第一個階段;另一類是結構數(shù)據模型,它是面向計算機系統(tǒng),便于在計算機中實現(xiàn),主要用于在DBMS的實現(xiàn),是數(shù)據模型建立的第二個階段。1.2數(shù)據庫基本理論1.概念模型概念模型是現(xiàn)實世界到信息世界的第一次特征化的抽象,用于信息世界的建模,是數(shù)據庫設計人員的重要工具,(1)實體(entity):就是我們關心的數(shù)據對象,同種實體的集合,就是實體集。(2)屬性(Attributes):
實體所具有的某一特性稱為實體的屬性。(3)聯(lián)系(Relationship):聯(lián)系在信息世界中表現(xiàn)為實體型內部各屬性之間的聯(lián)系以及實體型之間的聯(lián)系。1.2.2數(shù)據模型1.2數(shù)據庫基本理論1.概念模型一對一聯(lián)系(1:1):若對于實體集A中的每一個實體,實體集B中至多有一個實體與之聯(lián)系,反之亦然,則稱實體集A與實體集B具有一對一的聯(lián)系。一對多聯(lián)系(1:n):若對于實體集A中的每一個實體,實體集B中有n(n≥2)個實體與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多的聯(lián)系。多對多聯(lián)系(m:n):若對于實體集A中的每一個實體,實體集B中有n(n≥2)個實體與之聯(lián)系,反過來,對于實體集B中的每一個實體,實體集A中也有m(m≥2)個實體與之聯(lián)系,則稱實體集A與實體集B有多對多的聯(lián)系。1.2數(shù)據庫基本理論(4)E-R圖E-R圖提供了表示實體型、屬性和聯(lián)系的方法。實體:用矩形表示,矩形框內寫實體名。屬性:用橢圓形表示,橢圓內寫屬性名,用無向邊將屬性與實體連接起來。聯(lián)系:用菱形表示,菱形框內寫聯(lián)系名,用無向邊與有關實體連接起來,同時在無向邊上注明聯(lián)系類型。聯(lián)系也具有屬性,也要用無向邊將聯(lián)系與有關實體連接起來。一對一聯(lián)系(1:1):若對于實體集A中的每一個實體,實體集B【案例1.1】用班長、班級、學生、課程實體的E-R圖說明實體之間的聯(lián)系類型。(參考結果E-R如圖1-4所示)1.2數(shù)據庫基本理論圖1-4實體及聯(lián)系圖【案例1.1】用班長、班級、學生、課程實體的E-R圖說明實體【案例1.2】設計“學生”與“班級”之間的詳細E-R圖。參考結果E-R如圖1-5所示。1.2數(shù)據庫基本理論圖1-5“班級”與“學生”E-R圖【案例1.2】設計“學生”與“班級”之間的詳細E-R圖。參考1.2數(shù)據庫基本理論1.結構數(shù)據模型在數(shù)據庫技術中,包含數(shù)據結構、數(shù)據操作和數(shù)據的完整性約束的數(shù)據模型稱為結構數(shù)據模型。數(shù)據結構是所研究的對象類型的集合,用于描述系統(tǒng)的靜態(tài)特性,是數(shù)據模型的基礎。數(shù)據操作是對數(shù)據進行的添加、刪除、查詢、修改等各種操作。完整性約束是保證數(shù)據庫中數(shù)據在語法與語義上的正確性、一致性。結構數(shù)據模型主要類型有:層次模型、網狀模型、關系模型。(1)層次模型:呈樹狀結構,只有一個根結點沒有父結點,其它所有元素有且只有一個父結點。(2)網狀模型:呈網狀結構,可以有一個以上結點沒有父結點,其它所有元素可有多個父結點。(3)關系模型:用二維表來表示實體及實體之間聯(lián)系的模型稱為關系模型,支持關系模型的數(shù)據庫管理系統(tǒng)稱為關系型數(shù)據庫管理系統(tǒng)。1.2數(shù)據庫基本理論1.結構數(shù)據模型基于關系模型創(chuàng)建和管理的數(shù)據庫就稱為關系數(shù)據庫。關系數(shù)據庫以其結構簡單,描述性強、使用方便、完備的理論基礎等優(yōu)點,成為當今使用最為廣泛的數(shù)據庫。1.3.1關系模型關系模型由三部分組成:數(shù)據結構、關系操作、關系的完整性。在介紹三個組成部分之前,先來了解關系模型的基本術語。(1)關系模型(relationalmodel):用二維表格結構來表示實體及實體間聯(lián)系的模型稱為關系模型(如圖1-6)。(2)關系模式(relationschema):在二維表格中,一個二維表就是一個關系,對表中各列名稱和數(shù)據類型的定義稱為關系模式。(3)屬性(attribute)和值域(domain):在二維表中的列稱為屬性,列值稱為屬性值,屬性值的取值范圍稱為值域。(4)元組(tuple):在二維表中的行(記錄)稱為元組。1.3關系型數(shù)據庫
基于關系模型創(chuàng)建和管理的數(shù)據庫就稱為關系數(shù)據庫。關系數(shù)據庫以(5)主鍵(primarykey)或主關鍵字:在關系的屬性中,能夠用來唯一標識元組的屬性或屬性組合稱為主鍵或主關鍵字。關系中的元組由主鍵或主關鍵字的值唯一確定,主鍵不能為空。例如,學生表中的學生編號可以作為主鍵。(6)候選關鍵字(candidatekey):如果一個關系中,存在著多個屬性或屬性的組合都能用來唯一標識該關系的元組,這些屬性或屬性的組合稱為該關系的候選關鍵字。(7)外鍵(foreignkey):當關系中的某個屬性或屬性組合雖不是該關系的主鍵或只是主鍵的一部分,但卻是另一個關系的主鍵字時,該屬性或屬性組合稱為這個關系的外鍵。主鍵所在的表稱為主表,外鍵所在的表稱為從表。1.3關系型數(shù)據庫(5)主鍵(primarykey)或主關鍵字:在關系的屬性1.3關系型數(shù)據庫圖1-6關系模型主要概念示意圖1.3關系型數(shù)據庫圖1-6關系模型主要概念示意圖1.關系模型的數(shù)據完整性數(shù)據完整性是指關系模型中數(shù)據的正確性與一致性。關系模型允許定義四類完整性約束:實體完整性約束、域完整性、參照完整性約束和用戶自定義完整性約束。關系型數(shù)據庫系統(tǒng)提供了對實體完整性約束、域完整性約束、參照完整性約束的自動支持機制,也就是在插入、修改、刪除、更新操作時,數(shù)據庫系統(tǒng)自動保證數(shù)據的正確性與一致性。(1)實體完整性規(guī)則(entityintegrityrule):這條約束要求關系中的元組在組成主鍵的屬性列上的值的唯一性,且不能為空。例如,學生信息表中的學號值保證了記錄的唯一性,它不能為空。(2)域完整性規(guī)則(domianintegrityrule):這條約束要求關系中的屬性列上的值一定范圍內取值才有意義。例如,學生信息表中性別只能取“男”或者“女”。(3)參照完整性規(guī)則(referenceintegrityrule):這條約束要求在從表中不能有主表中不存在的元組,即,外鍵值在主表中必須存在。(4)用戶自定義完整性規(guī)則(user-defindedintegrityrule):用戶自定義完整性規(guī)則是根據應用領域的需要,由用戶自己定義的約束方式,體現(xiàn)了具體應用領域的語義與數(shù)據一致性約束。1.3關系型數(shù)據庫1.關系模型的數(shù)據完整性1.3關系型數(shù)據庫2.關系操作關系操作的數(shù)學基礎是關系數(shù)學,為關系數(shù)據庫的數(shù)據操作提供了數(shù)學依據。在數(shù)據庫中表現(xiàn)在關系數(shù)據庫的操作語言之中。SQL(StructuredQueryLanguage)語言是關系數(shù)據庫的標準語言,它是以關系代數(shù)為基礎,是提供了數(shù)據定義、數(shù)據查詢和訪問控制功能的語言。(1)數(shù)據定義語言
(DataDefinitionLanguage,DDL):用于定義和修改數(shù)據庫、數(shù)據庫對象的語言。主要用到關鍵字有:CREATE、ALTER、DROP。(2)數(shù)據操縱語言
(DataManipulationLanguage,DML):主要包括SELECT、INSERT、DELETE、UPDATE四個關鍵字。(3)數(shù)據控制語言
(DataControlLanguage,DCL):主要用來控制用戶對數(shù)據的存取權力。某個用戶對數(shù)據庫的操作是由數(shù)據庫管理員來決定和分配的,數(shù)據庫訪問控制功能保證這些安全策略的正確執(zhí)行。SQL通過授權語句GRANT和回收語句REVOKE來實現(xiàn)訪問控制功能。(4)SQL語言使用方式:SQL具有兩種使用方式,既可以作為獨立的語言在終端交互方式下使用,又可以將SQL語句嵌入某種高級語言(如C、C++、Java等)之中使用。嵌入SQL的高級語言稱為主語言或宿主語言。1.3關系型數(shù)據庫2.關系操作1.3關系型數(shù)據庫1.3.2關系數(shù)據理論對一個具體的數(shù)據庫應用問題,根據E-R圖,應該構造幾個關系模式?每個關系由哪些屬性組成?即如何構造適合于它的數(shù)據模式,這是關系數(shù)據庫邏輯設計的問題。1.問題的提出對于在線考試系統(tǒng)的數(shù)據庫設計,假如根據概念模型的E-R圖得出了三個關系:學生關系:學生(學號,姓名,性別,出生日期,班級編號,系部編號)。課程關系:課程(課程號,課程名)。成績關系:成績(學號,課程號,成績)。那么這三個關系應當形成幾個關系模式?(1)只有一個關系模式:學生-課程-成績(學號,姓名,性別,出生日期,班級編號,系部編號,課程號,課程名,成績)。a)數(shù)據冗余:增加一門新課程必須添加學生信息,多門課時,同一學生信息多次添加。b)修改異常:修改課程名稱,要修改所有學生的記錄,否則異常c)插入異常:不添加學生信息無法添加課程d)刪除異常:刪除學生成績,學生信息會被刪除。1.3關系型數(shù)據庫1.3.2關系數(shù)據理論1.3關系型數(shù)據庫(2)有三個關系模式:學生,課程,成績。消除了數(shù)據冗余,也消除了插入、刪除、修改異常。但又出現(xiàn)了另外一些問題,如果要查找考過“數(shù)據庫技術”課程的學生姓名,則需要進行三個關系的連接操作,這樣代價很高。相比之下,學生-課程-成績關系直接投影、選擇就可以完成,代價較低。如何找到一個好的數(shù)據庫模式?如何判斷是否消除了上述問題?這就是關系數(shù)據理論研究的問題。其中核心問題就是關系模式的規(guī)范化。1.3關系型數(shù)據庫(2)有三個關系模式:學生,課程,成績。1.3關系型數(shù)據庫2、關系模式的規(guī)范化關系數(shù)據庫中的關系要滿足一定的要求,滿足不同程度要求就是滿足不同的范式,滿足最低要求的叫第一范式,簡稱1NF,在第一范式中進一步滿足一些要求的為第二范式,其余范式依此類推。在關系數(shù)據庫設計中,關系模式應當至少滿足第三范式。1.3關系型數(shù)據庫2、關系模式的規(guī)范化1.3關系型數(shù)據庫(1)第一范式:如果關系模式R的每一個屬性都是不可分解的,則R為第一范式的模式,記為:R∈1NF。
例如,有關系:學生(學號,姓名,性別,出生日期,班級編號,系部編號,親屬),“學生”關系不滿足第一范式,因為親屬可以再分解為“父親”、“母親”等屬性。解決的方法是將“學生”關系分解為學生(學號,姓名,性別,出生日期,班級編號,系部編號)和家庭(學號,親屬姓名,親屬關系)兩個關系模式。第一范式的功能是實現(xiàn)屬性的不可再分性,也就是原子性,不滿足第一范式,就不能稱之為關系數(shù)據庫。不是1NF的關系都是非規(guī)范化關系,滿足1NF的關系稱為規(guī)范化的關系。數(shù)據庫理論研究的關系都是規(guī)范化的關系。1NF是關系數(shù)據庫的關系模式應滿足的最起碼的條件。1.3關系型數(shù)據庫(1)第一范式:如果關系模式R的每一個屬性都是不可分解的,則(2)第二范式:如果關系模式R是第一范式,且每個非主屬性都完全函數(shù)依賴于關鍵字,則稱R為滿足第二范式的模式,記為:R∈2NF。例如,有關系:成績(學號,姓名,性別,出生日期,課程號,成績)?!俺煽儭标P系不滿足第二范式,因為“成績”屬性完全依賴于主關鍵字(學號,課程號),而“姓名”、“出生日期”屬性只部分依賴于主關鍵字“學號”,所以,不是每一個非主關鍵字屬性都完全函數(shù)依賴于主關鍵字屬性,出現(xiàn)部分依賴。部分依賴會導致數(shù)據冗余、和插入、刪除、修改異常。解決的方法是將“成績”關系投影分解為成績(學號,課程號,成績)和學生(學號,姓名,性別,出生日期)兩個關系模式。第二范式的功能就是防止有非主屬性部分依賴于主關鍵字,如果存在,就應當將其分離出來做為另一實體的屬性。1.3關系型數(shù)據庫(2)第二范式:如果關系模式R是第一范式,且每個非主屬性都完(3)第三范式:如果關系模式R是第二范式,且沒有一個非關鍵字屬性是傳遞函數(shù)依賴于候選關鍵字屬性,則稱R為滿足第三范式的模式,記為:R∈3NF。例如,有關系:學生(學號,姓名,性別,出生日期,班級編號,系部編號,系部名稱,系主任),非主關鍵字“系部編號”完全依賴于“學號”,“系主任”完全依賴于“系部編號”,導致“系主任”傳遞依賴于“學號”。傳遞依賴會導致數(shù)據冗余、和插入、刪除、修改異常解決方法是將“學生”關系分解為學生(學號,姓名,性別,出生日期,班級編號,系部編號)和系部(系部編號,系部名稱,系主任)。第三范式功能是防止出現(xiàn)屬性依賴于非主屬性,也就是不能包含其它關系已經包含的非主關鍵字。1.3關系型數(shù)據庫(3)第三范式:如果關系模式R是第二范式,且沒有一個非關鍵字1.4.1數(shù)據庫設計的任務對數(shù)據庫進行合理的邏輯設計和有效的物理設計才能開發(fā)出完善而高效的信息系統(tǒng)。數(shù)據庫設計是信息系統(tǒng)開發(fā)和信息系統(tǒng)建設的重要組成部分。從一個應用軟件開發(fā)的角度講,一般一個數(shù)據庫應用系統(tǒng)的開發(fā)流程如圖1-7所示。1.4數(shù)據庫設計圖1-7數(shù)據庫應用系統(tǒng)開發(fā)流程圖1.4.1數(shù)據庫設計的任務1.4數(shù)據庫設計圖1-7數(shù)1.4.2需求分析需求分析階段的任務主要包括以下幾個方面。(1) 分析用戶活動,產生業(yè)務流程圖。了解用戶當前的業(yè)務活動和職能,理清其處理流程。把用戶業(yè)務分成若干個子處理過程,使每個處理功能明確、界面清楚,并畫出業(yè)務流程圖。(2) 確定系統(tǒng)范圍,產生系統(tǒng)范圍圖。在和用戶經過充分討論的基礎上,確定計算機所能進行數(shù)據處理的范圍,確定哪些工作由人工完成,哪些工作由計算機系統(tǒng)完成,即確定人機界面。(3) 分析用戶活動所涉及的數(shù)據,產生數(shù)據流圖。深入分析用戶的業(yè)務處理,以數(shù)據流圖形式表示出數(shù)據庫的方向和對數(shù)據所進行的加工。數(shù)據流圖有四個基本成分:數(shù)據流、加工或處理、文件、外部實體。(4) 分析系統(tǒng)數(shù)據,產生數(shù)據字典。數(shù)據字典提供對數(shù)據庫中數(shù)據描述的集中管理,其功能是存儲和檢索各種數(shù)據描述。數(shù)據字典是數(shù)據收集和數(shù)據分析的主要成果,在數(shù)據庫設計中占有很重要的地位。1.4數(shù)據庫設計1.4.2需求分析1.4數(shù)據庫設計2.需求分析的方法主要的方法有自頂向下和自底向上兩種,其中自頂向下的結構化分析方法(StructuredAnalysis,SA)是一種簡單實用的方法。通過SA方法,得到數(shù)據流圖,然后用數(shù)據字典描述數(shù)據項。數(shù)據流圖表達了數(shù)據和處理的關系,數(shù)據字典則是系統(tǒng)中各類數(shù)據描述的集合,是各類數(shù)據結構和屬性的清單。最終形成的數(shù)據流圖和數(shù)據字典是“系統(tǒng)需求分析說明書”的主要內容,是下一步進行概念結構設計的基礎。1.4數(shù)據庫設計2.需求分析的方法1.4數(shù)據庫設計【案例1.3】對在線考試系統(tǒng)的用戶進行角色分析。在線考試管理數(shù)據庫系統(tǒng)通常的用戶為學生、教師、管理員。他們實際都是考試系統(tǒng)的用戶,只是角色不同,登錄后訪問不同的界面,進行不同的操作。1.4數(shù)據庫設計【案例1.4】對在線考試系統(tǒng)用戶業(yè)務和數(shù)據流分析。業(yè)務分析:(1)教師業(yè)務分析:教師的業(yè)務有試題錄入、核對題庫的任務,被授權后通過用戶名與密碼驗證登錄。在監(jiān)考時,要求登錄并根據監(jiān)考要求設置試卷、變動考生機位、考試結束向系統(tǒng)發(fā)出閱卷指令。(2)管理員業(yè)務分析:管理員負責對注冊教師的身份確認,有自己的登錄戶名與密碼驗信息。(3)學生業(yè)務分析:學生注冊后通過用戶名與密碼驗證登錄。在考試時,學生根據自動生成的試卷做題、提交試卷、考試結束可查閱成績。【案例1.3】對在線考試系統(tǒng)的用戶進行角色分析。1.4數(shù)據【案例1.5】設計完成在線考試系統(tǒng)的數(shù)據流圖。1.4數(shù)據庫設計圖1-8在線考試系統(tǒng)數(shù)據流圖【案例1.5】設計完成在線考試系統(tǒng)的數(shù)據流圖。1.4數(shù)據庫1.4.3概念結構設計1.概念結構設計的方法和步驟概念結構設計的方法有如下四種:(1)自頂向下:首先定義全局概念結構的框架,然后逐步細化。(2)自底向上:先定義每一局部應用的概念結構,然后按一定的規(guī)則將其集成,得到全局的概念結構。(3)逐步擴張:首先定義核心結構,然后向外擴展。(4)混合結構:就是將自頂向下和自底向上結合起來,先確定概念結構的框架,再用自底向上設計局部概念結構,最后結合起來。1.4數(shù)據庫設計1.4.3概念結構設計1.4數(shù)據庫設計(1)設計局部E-R模型在設計E-R模型的過程中應遵循一個原則:現(xiàn)實世界中的事物能作為屬性對待的,盡量作為屬性對待??梢宰鳛閷傩詫Υ氖挛镉邢铝袃深悾鹤鳛閷傩?,不能是再具有需要描述的性質。屬性不能與其他實體具有聯(lián)系。1.4數(shù)據庫設計(2)設計全局E-R模型:將所有局部的E-R圖集成為全局的E-R圖,一般采用兩兩集成的方法,即先將具有相同實體的E-R圖,以該相同的實體為基準進行集成,如果還有相同的實體,就再次集成,這樣一直繼續(xù)下去,直到所有具有相同實體的局部E-R圖都被集成,從而得到全局的E-R圖。在集成的過程中,要消除屬性、結構、命名三類沖突,做到合理的集成。(1)設計局部E-R模型1.4數(shù)據庫設計(2)設計全局E-(3)全局E-R模型的優(yōu)化:一個好的全局的E-R模型除了能反映用戶的功能需求外,還應做到實體個數(shù)盡可能少,實體類型所含屬性盡可能少,實體類型間的聯(lián)系無冗余。全局E-R模型的優(yōu)化就是要達到這三個目的??梢圆捎靡韵聝?yōu)化方法:(1)合并相關的實體類型:把1:1的兩個實體類型合并,合并具有相同鍵的實體類型。(2)消除冗余屬性與聯(lián)系:消除冗余主要采用分析法,并不是所有的冗余都必須消除,有時為了提高效率,可以保留部分冗余。1.4數(shù)據庫設計(3)全局E-R模型的優(yōu)化:一個好的全局的E-R模型除了能反【案例1.6】根據需求分析與數(shù)據流圖1.8,設計出在線考試系統(tǒng)數(shù)據庫的E-R圖。1.4數(shù)據庫設計【案例1.6】根據需求分析與數(shù)據流圖1.8,設計出在線考試系圖1-10在線考試系統(tǒng)全局E-R圖1.4數(shù)據庫設計圖1-10在線考試系統(tǒng)全局E-R圖1.4數(shù)據庫設計1.4.4邏輯結構設計概念結構是獨立于任何數(shù)據模型的信息結構。邏輯結構設計的任務就是將概念模型E-R模型轉化成特定的DBMS系統(tǒng)所支持的數(shù)據庫的邏輯結構。1.邏輯結構設計的步驟關系數(shù)據庫邏輯結構設計一般分為以下三步:(1)將概念結構向一般的關系模型轉換。(2)將轉換來的關系模型向特定的RDBMS支持的數(shù)據模型轉換。(3)對數(shù)據模型進行優(yōu)化。1.4數(shù)據庫設計1.4.4邏輯結構設計1.4數(shù)據庫設計2.E-R模型向關系數(shù)據庫的轉換規(guī)則E-R模型向關系數(shù)據庫的轉換規(guī)則是:(1)一個實體型轉換為一個關系模式。實體的屬性就是關系的屬性,實體的關鍵字就是關系的關鍵字。(2)一個1:1聯(lián)系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并。如果轉換為一個獨立的關系模式,則相連的每個實體的關鍵字及該聯(lián)系的屬性是該關系模式的屬性,每個實體的關鍵字是該關系模式的候選關鍵字。(3)一個1:n聯(lián)系可以轉換為一個獨立的關系模式,也可以與n端對應的關系模式合并。如果轉換為一個獨立的關系模式,與該聯(lián)系相連的各實體的關鍵字及聯(lián)系本身的屬性均轉換為關系的屬性,而關系的關鍵字為n端實體的關鍵字。(4)一個m:n聯(lián)系轉換為一個關系模式,與該聯(lián)系相連的各個實體的關鍵字及聯(lián)系本身的屬性轉換為關系的屬性,而該關系的關鍵字為各實體的關鍵字的組合。(5)三個以上的實體間的一個多元聯(lián)系可以轉換為一個關系模式,與該多元聯(lián)系相連的各實體的關鍵字及聯(lián)系本身的屬性轉換為關系的屬性,而該關系的關鍵字為各實體關鍵字的組合。1.4數(shù)據庫設計2.E-R模型向關系數(shù)據庫的轉換規(guī)則1.4數(shù)據庫設計3.關系數(shù)據庫的邏輯設計關系數(shù)據庫邏輯設計的過程如下:(1)導出初始的關系模式:將E-R模型按規(guī)則轉換成關系模式。(2)規(guī)范化處理:消除異常,改善完整性、一致性和存儲效率,一般達到3NF即可。(3)模式評價:檢查數(shù)據庫模式是否能滿足用戶的要求,包括功能評價和性能評價。(4)優(yōu)化模式:采用增加、合并、分解關系的方法優(yōu)化數(shù)據模型的結構,提高系統(tǒng)性能。(5)形成邏輯設計說明書。1.4數(shù)據庫設計3.關系數(shù)據庫的邏輯設計1.4數(shù)據庫設計【任務1.7】完成在線考試系統(tǒng)數(shù)據庫的關系模式(1)用戶、系統(tǒng)、班級關系模式對于實體教師、學生、管理員三者屬性基本相似,主要用來表示并存儲身份驗證、狀態(tài)、部門信息,可以將三者通過角色區(qū)分,歸納到一個用戶關系,得到如下關系。用戶(用戶編號,用戶姓名,用戶密碼,用戶角色,狀態(tài),機位,班級,系部)其中,對于教師與管理員,其班級信息無明確意義,但融合到一個關系中,便于數(shù)據訪問,機位用IP地址來標識。教師要添加考試課程、班級、系部信息,這時不需要添加用戶信息,根據第二、三范式,建立單獨的系部與班級關系,最后得到以下三個關系:系部(系部編號(主鍵),系部名稱)班級(班級編號(主鍵),班級名稱,系部編號)用戶(用戶編號(主鍵),用戶姓名,用戶密碼,用戶角色,狀態(tài),IP地址,班級編號,系部編號)1.4數(shù)據庫設計【任務1.7】完成在線考試系統(tǒng)數(shù)據庫的關系模式1.4數(shù)據庫(2)課程關系課程(課程編號(主鍵),課程名稱)(3)單選題、多選題、判斷題關系如果在一個題庫關系中存儲單選題、多選題、判斷題,會由于各種類型題目的屬性不同而無法統(tǒng)一,也不利于生成試卷,因此,將三種試題用三個關系存儲:單選題(課程編號,題目序號(主鍵:課程編號+題目序號),題目,選項A,,選項B,,選項C,,選項D,參考答案)多選題(課程編號,題目序號(主鍵:課程編號+題目序號),題目,選項A,,選項B,,選項C,,選項D,參考答案)判斷題(課程編號,題目序號(主鍵:課程編號+題目序號),題目,,參考答案)1.4數(shù)據庫設計(2)課程關系1.4數(shù)據庫設計(4)試卷設置關系實際上試卷設置關系是個導出實體。由于在題庫中有三種類型的題目,在試卷設置中就有三種類型的題目各各自的分值,而且一門課在同一天每個人只能考試一次,完善后得到如下關系:試卷設置(課程編號,考試日期(主鍵:課程編號+考試日期),單選題數(shù)目,單選分值,多選題數(shù)目,多選分值,判斷題數(shù)目,判斷分值)1.4數(shù)據庫設計(4)試卷設置關系1.4數(shù)據庫設計(5)試卷關系由于同一門課程,同一天每個人只能考試一次,優(yōu)化試卷實體的屬性后,得到如下關系:試卷(用戶編號,課程編號,考試日期(主鍵:用戶編號+課程編號+考試日期),試題類型,試題在試卷中序號,試題在題庫中序號,考生答案)(6)成績關系由于一個考生,對同一門課只有一個成績,成績表中就不需要日期區(qū)分。得到成績關系:成績(用戶編號,課程號(主鍵,用戶編號+課程號),成績)1.4數(shù)據庫設計【案例1.7】考慮到后期數(shù)據庫學習需要,請設計一個學生關系,包含較多的學生屬性信息。
學生(學號,姓名,性別,生日,班級編號,系部編號)(5)試卷關系1.4數(shù)據庫設計見習題與答案習題見習題與答案習題SQLServer與數(shù)據庫應用開發(fā)第1章數(shù)據庫技術基礎SQLServer與數(shù)據庫應用開發(fā)第1章數(shù)據庫技術基礎1.1.數(shù)據管理技術及發(fā)展階段1.2.數(shù)據庫技術基本理論1.3.關系型數(shù)據庫基礎1.4.關系型數(shù)據庫的設計
主要內容主要內容【知識要求】:1.了解數(shù)據管理技術及其發(fā)展階段的特點。
2.掌握數(shù)據庫技術基本概念與數(shù)據庫設計的基礎知識?!灸芰σ蟆浚?.具備進行數(shù)據庫需求分析和數(shù)據抽象的能力。
2.能根據實際應用情景進行數(shù)據庫模型設計。知識與能力要求【知識要求】:1.了解數(shù)據管理技術及其發(fā)展階段的特點。
1.1.1信息與數(shù)據1.信息信息是客觀世界中的人或者事物的性質或者特征在人腦中的反映。2.數(shù)據數(shù)據是信息的表示形式,是信息存在的載體。信息是數(shù)據的靈魂。
1.1數(shù)據管理技術及其發(fā)展階段
1.1.2數(shù)據管理
數(shù)據管理(DataManagement)就是指對數(shù)據進行收集、組織、存儲、加工、傳播和利用的一系列活動的總和。
由于技術背景不同,數(shù)據管理經歷了人工管理、文件管理、數(shù)據庫管理三個階段。1.人工管理利用簡單記錄工具或者紙張來記錄數(shù)據,20世紀50年代中期出現(xiàn)了計算機,沒有專門數(shù)據管理軟件。特點:(1)系統(tǒng)沒有專用的軟件對數(shù)據進行管理(2)數(shù)據不具有獨立性。(3)數(shù)據不能共享1.1.1信息與數(shù)據1.1數(shù)據管理技術及其發(fā)展階段
1.1數(shù)據管理技術及其發(fā)展階段
2.文件管理階段20世紀50年代后期到60年代中期,數(shù)據管理方式是把計算機中的數(shù)據組織成相互獨立的、被命名的數(shù)據文件。特點:(1)文件系統(tǒng)實現(xiàn)文件系統(tǒng)的結構化,文件內部沒有結構化。(2)數(shù)據冗余度大,維護困難(3)數(shù)據共享性、獨立性差。圖1.1文件系統(tǒng)管理數(shù)據1.1數(shù)據管理技術及其發(fā)展階段
2.文件管理階段1.1數(shù)據管理技術及其發(fā)展階段
3.
數(shù)據庫系統(tǒng)管理階段20世紀60年代后期,出現(xiàn)了大容量磁盤,使數(shù)據能為盡可能多的應用程序服務。數(shù)據不再只針對某一個特定的應用,而是面向全組織,具有整體的結構性,共享性高,冗余度減小,具有一定的程序與數(shù)據之間的獨立性,并且對數(shù)據進行統(tǒng)一的控制。特點:(1)數(shù)據結構化。(2)數(shù)據共享性、獨立性高(3)數(shù)據冗余小。(4)數(shù)據由數(shù)據庫管理系統(tǒng)(DBMS)軟件統(tǒng)一管理和控制圖1.2數(shù)據庫系統(tǒng)管理數(shù)據1.1數(shù)據管理技術及其發(fā)展階段
3.數(shù)據庫系統(tǒng)管理階段數(shù)據庫管理系統(tǒng)提供以下四方面的數(shù)據管理功能。(1)數(shù)據安全性控制:防止因不合法使用數(shù)據而造成數(shù)據的泄露和破壞,保證數(shù)據的安全和機密。(2)數(shù)據的完整性控制:系統(tǒng)通過設置一些完整性規(guī)則,以確保數(shù)據的正確性、有效性和兼容性。(3)并發(fā)控制:多用戶同時讀取或修改數(shù)據庫時,防止相互干擾而給用戶提供不正確的數(shù)據(臟數(shù)據),并使數(shù)據庫受到破壞。(4)數(shù)據恢復:當數(shù)據庫被破壞或數(shù)據不可靠時,系統(tǒng)有能力將數(shù)據庫從錯誤狀態(tài)恢復到最近某一時刻的正確狀態(tài)。1.1數(shù)據管理技術及其發(fā)展階段數(shù)據庫管理系統(tǒng)提供以下四方面的數(shù)據管理功能。1.1數(shù)據管理1.2.1數(shù)據庫基本概念1.數(shù)據庫(Database,DB)數(shù)據庫是指長期存儲在計算機內的、有組織的、可共享的數(shù)據集合。2.數(shù)據庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)數(shù)據庫管理系統(tǒng)是數(shù)據庫的管理機構,它是一個系統(tǒng)軟件,負責數(shù)據庫中的數(shù)據組織、數(shù)據操縱、數(shù)據維護、控制及保護和數(shù)據服務等。負責數(shù)據庫創(chuàng)建、維護、安全管理的人員,叫數(shù)據庫管理員(DatabaseAdministrator,DBA)3.數(shù)據庫系統(tǒng)(DatabaseSystem,DBS)是指引進數(shù)據庫技術后的整個計算機系統(tǒng),它能夠實現(xiàn)有組織地、動態(tài)地存儲大量相關數(shù)據,提供數(shù)據處理和信息資源共享的便利手段。1.2數(shù)據庫基本理論圖1.3數(shù)據庫系統(tǒng)結構圖1.2.1數(shù)據庫基本概念1.2數(shù)據庫基本理論圖1.3數(shù)1.2.2數(shù)據模型數(shù)據模型是現(xiàn)實世界特征的數(shù)據化抽象,是對現(xiàn)實世界的數(shù)字化模擬與表示。數(shù)據模型應滿足三方面的要求:一是能針對性地模擬現(xiàn)實世界中事物的主要特征及其相互關系;二是容易理解和表示;三是便于在計算機系統(tǒng)中實現(xiàn)。將數(shù)據模型可以分為兩類:一類是概念模型,它是面向現(xiàn)實世界來對數(shù)據和信息進行抽象,主要用于數(shù)據庫設計,是數(shù)據模型建立的第一個階段;另一類是結構數(shù)據模型,它是面向計算機系統(tǒng),便于在計算機中實現(xiàn),主要用于在DBMS的實現(xiàn),是數(shù)據模型建立的第二個階段。1.2數(shù)據庫基本理論1.概念模型概念模型是現(xiàn)實世界到信息世界的第一次特征化的抽象,用于信息世界的建模,是數(shù)據庫設計人員的重要工具,(1)實體(entity):就是我們關心的數(shù)據對象,同種實體的集合,就是實體集。(2)屬性(Attributes):
實體所具有的某一特性稱為實體的屬性。(3)聯(lián)系(Relationship):聯(lián)系在信息世界中表現(xiàn)為實體型內部各屬性之間的聯(lián)系以及實體型之間的聯(lián)系。1.2.2數(shù)據模型1.2數(shù)據庫基本理論1.概念模型一對一聯(lián)系(1:1):若對于實體集A中的每一個實體,實體集B中至多有一個實體與之聯(lián)系,反之亦然,則稱實體集A與實體集B具有一對一的聯(lián)系。一對多聯(lián)系(1:n):若對于實體集A中的每一個實體,實體集B中有n(n≥2)個實體與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多的聯(lián)系。多對多聯(lián)系(m:n):若對于實體集A中的每一個實體,實體集B中有n(n≥2)個實體與之聯(lián)系,反過來,對于實體集B中的每一個實體,實體集A中也有m(m≥2)個實體與之聯(lián)系,則稱實體集A與實體集B有多對多的聯(lián)系。1.2數(shù)據庫基本理論(4)E-R圖E-R圖提供了表示實體型、屬性和聯(lián)系的方法。實體:用矩形表示,矩形框內寫實體名。屬性:用橢圓形表示,橢圓內寫屬性名,用無向邊將屬性與實體連接起來。聯(lián)系:用菱形表示,菱形框內寫聯(lián)系名,用無向邊與有關實體連接起來,同時在無向邊上注明聯(lián)系類型。聯(lián)系也具有屬性,也要用無向邊將聯(lián)系與有關實體連接起來。一對一聯(lián)系(1:1):若對于實體集A中的每一個實體,實體集B【案例1.1】用班長、班級、學生、課程實體的E-R圖說明實體之間的聯(lián)系類型。(參考結果E-R如圖1-4所示)1.2數(shù)據庫基本理論圖1-4實體及聯(lián)系圖【案例1.1】用班長、班級、學生、課程實體的E-R圖說明實體【案例1.2】設計“學生”與“班級”之間的詳細E-R圖。參考結果E-R如圖1-5所示。1.2數(shù)據庫基本理論圖1-5“班級”與“學生”E-R圖【案例1.2】設計“學生”與“班級”之間的詳細E-R圖。參考1.2數(shù)據庫基本理論1.結構數(shù)據模型在數(shù)據庫技術中,包含數(shù)據結構、數(shù)據操作和數(shù)據的完整性約束的數(shù)據模型稱為結構數(shù)據模型。數(shù)據結構是所研究的對象類型的集合,用于描述系統(tǒng)的靜態(tài)特性,是數(shù)據模型的基礎。數(shù)據操作是對數(shù)據進行的添加、刪除、查詢、修改等各種操作。完整性約束是保證數(shù)據庫中數(shù)據在語法與語義上的正確性、一致性。結構數(shù)據模型主要類型有:層次模型、網狀模型、關系模型。(1)層次模型:呈樹狀結構,只有一個根結點沒有父結點,其它所有元素有且只有一個父結點。(2)網狀模型:呈網狀結構,可以有一個以上結點沒有父結點,其它所有元素可有多個父結點。(3)關系模型:用二維表來表示實體及實體之間聯(lián)系的模型稱為關系模型,支持關系模型的數(shù)據庫管理系統(tǒng)稱為關系型數(shù)據庫管理系統(tǒng)。1.2數(shù)據庫基本理論1.結構數(shù)據模型基于關系模型創(chuàng)建和管理的數(shù)據庫就稱為關系數(shù)據庫。關系數(shù)據庫以其結構簡單,描述性強、使用方便、完備的理論基礎等優(yōu)點,成為當今使用最為廣泛的數(shù)據庫。1.3.1關系模型關系模型由三部分組成:數(shù)據結構、關系操作、關系的完整性。在介紹三個組成部分之前,先來了解關系模型的基本術語。(1)關系模型(relationalmodel):用二維表格結構來表示實體及實體間聯(lián)系的模型稱為關系模型(如圖1-6)。(2)關系模式(relationschema):在二維表格中,一個二維表就是一個關系,對表中各列名稱和數(shù)據類型的定義稱為關系模式。(3)屬性(attribute)和值域(domain):在二維表中的列稱為屬性,列值稱為屬性值,屬性值的取值范圍稱為值域。(4)元組(tuple):在二維表中的行(記錄)稱為元組。1.3關系型數(shù)據庫
基于關系模型創(chuàng)建和管理的數(shù)據庫就稱為關系數(shù)據庫。關系數(shù)據庫以(5)主鍵(primarykey)或主關鍵字:在關系的屬性中,能夠用來唯一標識元組的屬性或屬性組合稱為主鍵或主關鍵字。關系中的元組由主鍵或主關鍵字的值唯一確定,主鍵不能為空。例如,學生表中的學生編號可以作為主鍵。(6)候選關鍵字(candidatekey):如果一個關系中,存在著多個屬性或屬性的組合都能用來唯一標識該關系的元組,這些屬性或屬性的組合稱為該關系的候選關鍵字。(7)外鍵(foreignkey):當關系中的某個屬性或屬性組合雖不是該關系的主鍵或只是主鍵的一部分,但卻是另一個關系的主鍵字時,該屬性或屬性組合稱為這個關系的外鍵。主鍵所在的表稱為主表,外鍵所在的表稱為從表。1.3關系型數(shù)據庫(5)主鍵(primarykey)或主關鍵字:在關系的屬性1.3關系型數(shù)據庫圖1-6關系模型主要概念示意圖1.3關系型數(shù)據庫圖1-6關系模型主要概念示意圖1.關系模型的數(shù)據完整性數(shù)據完整性是指關系模型中數(shù)據的正確性與一致性。關系模型允許定義四類完整性約束:實體完整性約束、域完整性、參照完整性約束和用戶自定義完整性約束。關系型數(shù)據庫系統(tǒng)提供了對實體完整性約束、域完整性約束、參照完整性約束的自動支持機制,也就是在插入、修改、刪除、更新操作時,數(shù)據庫系統(tǒng)自動保證數(shù)據的正確性與一致性。(1)實體完整性規(guī)則(entityintegrityrule):這條約束要求關系中的元組在組成主鍵的屬性列上的值的唯一性,且不能為空。例如,學生信息表中的學號值保證了記錄的唯一性,它不能為空。(2)域完整性規(guī)則(domianintegrityrule):這條約束要求關系中的屬性列上的值一定范圍內取值才有意義。例如,學生信息表中性別只能取“男”或者“女”。(3)參照完整性規(guī)則(referenceintegrityrule):這條約束要求在從表中不能有主表中不存在的元組,即,外鍵值在主表中必須存在。(4)用戶自定義完整性規(guī)則(user-defindedintegrityrule):用戶自定義完整性規(guī)則是根據應用領域的需要,由用戶自己定義的約束方式,體現(xiàn)了具體應用領域的語義與數(shù)據一致性約束。1.3關系型數(shù)據庫1.關系模型的數(shù)據完整性1.3關系型數(shù)據庫2.關系操作關系操作的數(shù)學基礎是關系數(shù)學,為關系數(shù)據庫的數(shù)據操作提供了數(shù)學依據。在數(shù)據庫中表現(xiàn)在關系數(shù)據庫的操作語言之中。SQL(StructuredQueryLanguage)語言是關系數(shù)據庫的標準語言,它是以關系代數(shù)為基礎,是提供了數(shù)據定義、數(shù)據查詢和訪問控制功能的語言。(1)數(shù)據定義語言
(DataDefinitionLanguage,DDL):用于定義和修改數(shù)據庫、數(shù)據庫對象的語言。主要用到關鍵字有:CREATE、ALTER、DROP。(2)數(shù)據操縱語言
(DataManipulationLanguage,DML):主要包括SELECT、INSERT、DELETE、UPDATE四個關鍵字。(3)數(shù)據控制語言
(DataControlLanguage,DCL):主要用來控制用戶對數(shù)據的存取權力。某個用戶對數(shù)據庫的操作是由數(shù)據庫管理員來決定和分配的,數(shù)據庫訪問控制功能保證這些安全策略的正確執(zhí)行。SQL通過授權語句GRANT和回收語句REVOKE來實現(xiàn)訪問控制功能。(4)SQL語言使用方式:SQL具有兩種使用方式,既可以作為獨立的語言在終端交互方式下使用,又可以將SQL語句嵌入某種高級語言(如C、C++、Java等)之中使用。嵌入SQL的高級語言稱為主語言或宿主語言。1.3關系型數(shù)據庫2.關系操作1.3關系型數(shù)據庫1.3.2關系數(shù)據理論對一個具體的數(shù)據庫應用問題,根據E-R圖,應該構造幾個關系模式?每個關系由哪些屬性組成?即如何構造適合于它的數(shù)據模式,這是關系數(shù)據庫邏輯設計的問題。1.問題的提出對于在線考試系統(tǒng)的數(shù)據庫設計,假如根據概念模型的E-R圖得出了三個關系:學生關系:學生(學號,姓名,性別,出生日期,班級編號,系部編號)。課程關系:課程(課程號,課程名)。成績關系:成績(學號,課程號,成績)。那么這三個關系應當形成幾個關系模式?(1)只有一個關系模式:學生-課程-成績(學號,姓名,性別,出生日期,班級編號,系部編號,課程號,課程名,成績)。a)數(shù)據冗余:增加一門新課程必須添加學生信息,多門課時,同一學生信息多次添加。b)修改異常:修改課程名稱,要修改所有學生的記錄,否則異常c)插入異常:不添加學生信息無法添加課程d)刪除異常:刪除學生成績,學生信息會被刪除。1.3關系型數(shù)據庫1.3.2關系數(shù)據理論1.3關系型數(shù)據庫(2)有三個關系模式:學生,課程,成績。消除了數(shù)據冗余,也消除了插入、刪除、修改異常。但又出現(xiàn)了另外一些問題,如果要查找考過“數(shù)據庫技術”課程的學生姓名,則需要進行三個關系的連接操作,這樣代價很高。相比之下,學生-課程-成績關系直接投影、選擇就可以完成,代價較低。如何找到一個好的數(shù)據庫模式?如何判斷是否消除了上述問題?這就是關系數(shù)據理論研究的問題。其中核心問題就是關系模式的規(guī)范化。1.3關系型數(shù)據庫(2)有三個關系模式:學生,課程,成績。1.3關系型數(shù)據庫2、關系模式的規(guī)范化關系數(shù)據庫中的關系要滿足一定的要求,滿足不同程度要求就是滿足不同的范式,滿足最低要求的叫第一范式,簡稱1NF,在第一范式中進一步滿足一些要求的為第二范式,其余范式依此類推。在關系數(shù)據庫設計中,關系模式應當至少滿足第三范式。1.3關系型數(shù)據庫2、關系模式的規(guī)范化1.3關系型數(shù)據庫(1)第一范式:如果關系模式R的每一個屬性都是不可分解的,則R為第一范式的模式,記為:R∈1NF。
例如,有關系:學生(學號,姓名,性別,出生日期,班級編號,系部編號,親屬),“學生”關系不滿足第一范式,因為親屬可以再分解為“父親”、“母親”等屬性。解決的方法是將“學生”關系分解為學生(學號,姓名,性別,出生日期,班級編號,系部編號)和家庭(學號,親屬姓名,親屬關系)兩個關系模式。第一范式的功能是實現(xiàn)屬性的不可再分性,也就是原子性,不滿足第一范式,就不能稱之為關系數(shù)據庫。不是1NF的關系都是非規(guī)范化關系,滿足1NF的關系稱為規(guī)范化的關系。數(shù)據庫理論研究的關系都是規(guī)范化的關系。1NF是關系數(shù)據庫的關系模式應滿足的最起碼的條件。1.3關系型數(shù)據庫(1)第一范式:如果關系模式R的每一個屬性都是不可分解的,則(2)第二范式:如果關系模式R是第一范式,且每個非主屬性都完全函數(shù)依賴于關鍵字,則稱R為滿足第二范式的模式,記為:R∈2NF。例如,有關系:成績(學號,姓名,性別,出生日期,課程號,成績)?!俺煽儭标P系不滿足第二范式,因為“成績”屬性完全依賴于主關鍵字(學號,課程號),而“姓名”、“出生日期”屬性只部分依賴于主關鍵字“學號”,所以,不是每一個非主關鍵字屬性都完全函數(shù)依賴于主關鍵字屬性,出現(xiàn)部分依賴。部分依賴會導致數(shù)據冗余、和插入、刪除、修改異常。解決的方法是將“成績”關系投影分解為成績(學號,課程號,成績)和學生(學號,姓名,性別,出生日期)兩個關系模式。第二范式的功能就是防止有非主屬性部分依賴于主關鍵字,如果存在,就應當將其分離出來做為另一實體的屬性。1.3關系型數(shù)據庫(2)第二范式:如果關系模式R是第一范式,且每個非主屬性都完(3)第三范式:如果關系模式R是第二范式,且沒有一個非關鍵字屬性是傳遞函數(shù)依賴于候選關鍵字屬性,則稱R為滿足第三范式的模式,記為:R∈3NF。例如,有關系:學生(學號,姓名,性別,出生日期,班級編號,系部編號,系部名稱,系主任),非主關鍵字“系部編號”完全依賴于“學號”,“系主任”完全依賴于“系部編號”,導致“系主任”傳遞依賴于“學號”。傳遞依賴會導致數(shù)據冗余、和插入、刪除、修改異常解決方法是將“學生”關系分解為學生(學號,姓名,性別,出生日期,班級編號,系部編號)和系部(系部編號,系部名稱,系主任)。第三范式功能是防止出現(xiàn)屬性依賴于非主屬性,也就是不能包含其它關系已經包含的非主關鍵字。1.3關系型數(shù)據庫(3)第三范式:如果關系模式R是第二范式,且沒有一個非關鍵字1.4.1數(shù)據庫設計的任務對數(shù)據庫進行合理的邏輯設計和有效的物理設計才能開發(fā)出完善而高效的信息系統(tǒng)。數(shù)據庫設計是信息系統(tǒng)開發(fā)和信息系統(tǒng)建設的重要組成部分。從一個應用軟件開發(fā)的角度講,一般一個數(shù)據庫應用系統(tǒng)的開發(fā)流程如圖1-7所示。1.4數(shù)據庫設計圖1-7數(shù)據庫應用系統(tǒng)開發(fā)流程圖1.4.1數(shù)據庫設計的任務1.4數(shù)據庫設計圖1-7數(shù)1.4.2需求分析需求分析階段的任務主要包括以下幾個方面。(1) 分析用戶活動,產生業(yè)務流程圖。了解用戶當前的業(yè)務活動和職能,理清其處理流程。把用戶業(yè)務分成若干個子處理過程,使每個處理功能明確、界面清楚,并畫出業(yè)務流程圖。(2) 確定系統(tǒng)范圍,產生系統(tǒng)范圍圖。在和用戶經過充分討論的基礎上,確定計算機所能進行數(shù)據處理的范圍,確定哪些工作由人工完成,哪些工作由計算機系統(tǒng)完成,即確定人機界面。(3) 分析用戶活動所涉及的數(shù)據,產生數(shù)據流圖。深入分析用戶的業(yè)務處理,以數(shù)據流圖形式表示出數(shù)據庫的方向和對數(shù)據所進行的加工。數(shù)據流圖有四個基本成分:數(shù)據流、加工或處理、文件、外部實體。(4) 分析系統(tǒng)數(shù)據,產生數(shù)據字典。數(shù)據字典提供對數(shù)據庫中數(shù)據描述的集中管理,其功能是存儲和檢索各種數(shù)據描述。數(shù)據字典是數(shù)據收集和數(shù)據分析的主要成果,在數(shù)據庫設計中占有很重要的地位。1.4數(shù)據庫設計1.4.2需求分析1.4數(shù)據庫設計2.需求分析的方法主要的方法有自頂向下和自底向上兩種,其中自頂向下的結構化分析方法(StructuredAnalysis,SA)是一種簡單實用的方法。通過SA方法,得到數(shù)據流圖,然后用數(shù)據字典描述數(shù)據項。數(shù)據流圖表達了數(shù)據和處理的關系,數(shù)據字典則是系統(tǒng)中各類數(shù)據描述的集合,是各類數(shù)據結構和屬性的清單。最終形成的數(shù)據流圖和數(shù)據字典是“系統(tǒng)需求分析說明書”的主要內容,是下一步進行概念結構設計的基礎。1.4數(shù)據庫設計2.需求分析的方法1.4數(shù)據庫設計【案例1.3】對在線考試系統(tǒng)的用戶進行角色分析。在線考試管理數(shù)據庫系統(tǒng)通常的用戶為學生、教師、管理員。他們實際都是考試系統(tǒng)的用戶,只是角色不同,登錄后訪問不同的界面,進行不同的操作。1.4數(shù)據庫設計【案例1.4】對在線考試系統(tǒng)用戶業(yè)務和數(shù)據流分析。業(yè)務分析:(1)教師業(yè)務分析:教師的業(yè)務有試題錄入、核對題庫的任務,被授權后通過用戶名與密碼驗證登錄。在監(jiān)考時,要求登錄并根據監(jiān)考要求設置試卷、變動考生機位、考試結束向系統(tǒng)發(fā)出閱卷指令。(2)管理員業(yè)務分析:管理員負責對注冊教師的身份確認,有自己的登錄戶名與密碼驗信息。(3)學生業(yè)務分析:學生注冊后通過用戶名與密碼驗證登錄。在考試時,學生根據自動生成的試卷做題、提交試卷、考試結束可查閱成績。【案例1.3】對在線考試系統(tǒng)的用戶進行角色分析。1.4數(shù)據【案例1.5】設計完成在線考試系統(tǒng)的數(shù)據流圖。1.4數(shù)據庫設計圖1-8在線考試系統(tǒng)數(shù)據流圖【案例1.5】設計完成在線考試系統(tǒng)的數(shù)據流圖。1.4數(shù)據庫1.4.3概念結構設計1.概念結構設計的方法和步驟概念結構設計的方法有如下四種:(1)自頂向下:首先定義全局概念結構的框架,然后逐步細化。(2)自底向上:先定義每一局部應用的概念結構,然后按一定的規(guī)則將其集成,得到全局的概念結構。(3)逐步擴張:首先定義核心結構,然后向外擴展。(4)混合結構:就是將自頂向下和自底向上結合起來,先確定概念結構的框架,再用自底向上設計局部概念結構,最后結合起來。1.4數(shù)據庫設計1.4.3概念結構設計1.4數(shù)據庫設計(1)設計局部E-R模型在設計E-R模型的過程中應遵循一個原則:現(xiàn)實世界中的事物能作為屬性對待的,盡量作為屬性對待??梢宰鳛閷傩詫Υ氖挛镉邢铝袃深悾鹤鳛閷傩?,不能是再具有需要描述的性質。屬性不能與其他實體具有聯(lián)系。1.4數(shù)據庫設計(2)設計全局E-R模型:將所有局部的E-R圖集成為全局的E-R圖,一般采用兩兩集成的方法,即先將具有相同實體的E-R圖,以該相同的實體為基準進行集成,如果還有相同的實體,就再次集成,這樣一直繼續(xù)下去,直到所有具有相同實體的局部E-R圖都被集成,從而得到全局的E-R圖。在集成的過程中,要消除屬性、結構、命名三類沖突,做到合理的集成。(1)設計局部E-R模型1.4數(shù)據庫設計(2)設計全局E-(3)全局E-R模型的優(yōu)化:一個好的全局的E-R模型除了能反映用戶的功能需求外,還應做到實體個數(shù)盡可能少,實體類型所含屬性盡可能少,實體類型間的聯(lián)系無冗余。全局E-R模型的優(yōu)化就是要達到這三個目的??梢圆捎靡韵聝?yōu)化方法:(1)合并相關的實體類型:把1:1的兩個實體類型合并,合并具有相同鍵的實體類型。(2)消除冗余屬性與聯(lián)系:消除冗余主要采用分析法,并不是所有的冗余都必須消除,有時為了提高效率,可以保留部
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計稅基礎施工方案
- 二零二五版電商直播團隊店面營業(yè)員合作協(xié)議范本3篇
- 2025年度個人旅游費用欠款合同樣本3篇
- 皮帶廊施工方案
- 墻裙油漆施工方案
- 白洋潮課程設計
- 慶春隧道施工方案
- 河道景觀道路施工方案
- 2025年新能源儲能技術投資入股分紅合同4篇
- 錐齒傳動軸課程設計
- 2025屆北京巿通州區(qū)英語高三上期末綜合測試試題含解析
- 公婆贈予兒媳婦的房產協(xié)議書(2篇)
- 煤炭行業(yè)智能化煤炭篩分與洗選方案
- 2024年機修鉗工(初級)考試題庫附答案
- Unit 5 同步練習人教版2024七年級英語上冊
- 矽塵對神經系統(tǒng)的影響研究
- 分潤模式合同模板
- 海南省汽車租賃合同
- 2024年長春醫(yī)學高等專科學校單招職業(yè)適應性測試題庫必考題
- (正式版)SHT 3046-2024 石油化工立式圓筒形鋼制焊接儲罐設計規(guī)范
- 2023年山東濟南市初中學業(yè)水平考試地理試卷真題(答案詳解)
評論
0/150
提交評論