《數據庫原理及應用教程-MySQL8.0》課件全套 尹志宇 第1-13章 數據庫系統概述-數據庫的備份與恢復_第1頁
《數據庫原理及應用教程-MySQL8.0》課件全套 尹志宇 第1-13章 數據庫系統概述-數據庫的備份與恢復_第2頁
《數據庫原理及應用教程-MySQL8.0》課件全套 尹志宇 第1-13章 數據庫系統概述-數據庫的備份與恢復_第3頁
《數據庫原理及應用教程-MySQL8.0》課件全套 尹志宇 第1-13章 數據庫系統概述-數據庫的備份與恢復_第4頁
《數據庫原理及應用教程-MySQL8.0》課件全套 尹志宇 第1-13章 數據庫系統概述-數據庫的備份與恢復_第5頁
已閱讀5頁,還剩564頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

數據庫原理與應用教程-MySQL8.0第1章數據庫系統概述第1章數據庫系統概述數據庫——通俗地講就是存放數據的倉庫。數據庫技術所研究的問題是如何科學地組織和存儲數據,在數據庫系統中減少數據存儲冗余、實現數據共享,以及如何保障數據安全、有效地獲取和處理。1.1數據庫技術發展史數據庫技術是20世紀60年代后期興起的一門信息管理自動化學科,是計算機學科的一個重要分支(數據處理)。了解計算機的三個主要的應用領域:科學計算、數據處理、智能控制1.1.1數據處理技術1.數據(Data)數據是描述現實世界中各種具體事物或抽象概念的符號記錄。除了常用的數字數據外,文字(如名稱)、圖形、圖像、聲音等信息,也都是數據。在計算機中,為了存儲和處理這些事物,就要抽出對這些事物感興趣的特征組成一個記錄來描述。例如,對學生的學號、姓名、性別和年齡等情況這樣描述:202201001,張三,男,19。1.1.1數據處理技術2.數據處理(DataProcess)數據處理(DataProcess)是指對數據的收集、分類、組織、編碼、存儲、加工、計算、檢索、維護、傳播以及打印等一系列的活動。其目的就是從大量的數據中提取出有效的信息資源。在數據處理中,通常數據的計算比較簡單,而數據的管理比較復雜。數據管理是指數據的收集、分類、組織、編碼、存儲、檢索、維護等操作。1.1.2數據庫技術的三個發展階段隨著計算機硬件和軟件的發展,計算機在數據處理方面應用越來越廣泛,數據庫技術也不斷地發展。從數據管理的角度數據庫技術經歷了三個階段。

1.人工管理階段

2.文件系統階段

3.數據庫系統階段1.1.2數據庫技術的三個發展階段1.人工管理階段

20世紀50年代中期以前屬于人工管理階段,它是數據管理的初級階段。這一階段的計算機主要用于科學計算。特點:(1)數據不能被長期保存,沒有文件的概念。(2)沒有對數據進行管理的軟件系統。(3)數據無獨立性。(4)數據不能共享。1.1.2數據庫技術的三個發展階段程序與數據是一個整體,一個程序中的數據無法被其他程序使用,因此程序與程序之間存在大量的重復數據。應用程序和數據的依賴關系:應用程序n應用程序2數據組n應用程序1數據組1數據組2…1.1.2數據庫技術的三個發展階段2.文件系統階段

20世紀50年代后期至60年代中后期,計算機的應用范圍不斷擴大,不僅用于科學計算,還大量用于管理。硬件方面,磁盤成為計算機的主要外存儲器;軟件方面,出現了高級語言和操作系統。程序通過數據文件訪問數據。外存儲器數據輸入程序數據輸入程序數據文件特點:(1)數據可以長期保存(2)由文件系統管理數據(3)數據具有一定的獨立性(4)文件結構的設計仍然是基于特定的用途應用程序和數據文件的關系:應用程序n應用程序2數據文件n數據文件1文件系統應用程序1數據文件21.1.2數據庫技術的三個發展階段3.數據庫系統階段(DBMS)

20世紀60年代后期以來,計算機應用越來越廣泛,數據量急劇增加,數據的共享要求越來越高。硬件方面,有了大容量的磁盤;軟件方面,出現了能夠統一管理和共享數據的數據庫管理系統(DataBaseManagementSystem)。所以,此階段將數據集中存儲在各數據庫中,進行統一組織和管理。外存儲器數據庫1.1.2數據庫技術的三個發展階段1.1.2數據庫技術的三個發展階段數據庫系統的特點如下(優點):(1)數據結構化(2)較高的數據共享性(3)較高的數據獨立性(4)數據由DBMS統一管理和控制

應用程序與數據之間的關系如圖所示:應用程序1應用程序2應用程序n…數據庫管理系統數據庫1.2數據庫系統組成數據庫系統是指在計算機系統中引入數據庫后的系統,一般由數據庫、數據庫管理系統、數據庫開發工具、數據庫應用系統和人員構成。數據庫發開工具應用系統人員硬件DBMSOS數據庫1.2數據庫系統組成1.數據庫(DataBase,DB)

數據庫是指長期存儲在計算機內有組織的、可共享的數據集合,即在計算機系統中按一定的數據模型組織、存儲和使用的相關聯的數據集合。它不僅包括描述事物的數據本身,還包括相關事物之間的聯系。

1.2數據庫系統組成

2.數據庫管理系統(DBMS)

數據庫管理系統是數據庫系統的核心,是為數據庫的建立、使用和維護而配置的軟件。它建立在操作系統的基礎上,位于用戶與操作系統之間的一層數據管理軟件,它為用戶或應用程序提供訪問數據庫的方法,包括數據庫的創建、查詢、更新及各種數據控制等。

1.2數據庫系統組成數據庫管理系統的功能數據庫管理系統是數據庫系統的核心軟件,一般說來,其功能主要包括以下4個方面。(1)數據定義和操縱功能

DBMS提供數據定義語言DDL對數據庫中的對象進行定義和數據操縱語言DML檢索、插入、修改、刪除數據庫中的數據。(2)數據庫運行控制功能對數據庫進行并發控制、安全性檢查、完整性約束條件的檢查和執行、數據庫的內部維護等。1.2數據庫系統組成(3)數據庫的組織、存儲和管理

DBMS確定以何種文件結構和存取方式物理地組織數據,如何實現數據之間的聯系,以便提高存儲空間利用率和各種操作的時間效率。(4)建立和維護數據庫初始數據的輸入與數據轉換,數據庫的轉儲與恢復、數據庫的重組織與重構造、性能的監視與分析等。1.2數據庫系統組成3.數據庫應用系統

凡使用數據庫技術管理其數據的系統都稱為數據庫應用系統。數據庫應用系統的應用非常廣泛,它可以用于事務管理、計算機輔助設計、計算機圖形分析和處理以及人工智能等系統中。1.2數據庫系統組成4.人員(1)終端用戶終端用戶是數據庫的使用者,通過應用程序與數據庫進行交互。(2)應用程序員應用程序員負責分析、設計、開發、維護數據庫系統中各類應用程序,數據庫系統一般需要一個以上的應用程序員在開發周期內完成數據庫結構設計、應用程序開發等任務。1.2數據庫系統組成(3)數據庫管理員(DatabaseAdministrator,DBA)

數據庫管理員是高級用戶,其職能是管理、監督、維護數據庫系統的正常運行,負責全面管理和控制數據庫系統。職責:設計數據庫的結構和內容,定義數據庫的安全性和完整性,監督數據庫的運行等等。1.3數據庫的體系結構1.3.1數據庫的三級模式結構

為了保障數據與程序之間的獨立性,使用戶能以簡單的邏輯結構操作數據而無需考慮數據的物理結構,簡化應用程序的編制和程序員的負擔,增強系統的可靠性。DBMS將數據庫的體系結構分為三級模式:外模式、模式和內模式。1.3.1數據庫的三級模式結構學生表:學號姓名性別學院2016002張三男數學2016025李四女數學2016023劉明男數學2016033王曉女信息2016055李洪男信息2016123鄭曉風女信息模式外模式學號姓名性別2016033王曉女2016055李洪男2016123鄭曉風女男劉明2016023女男性別李四2016025張三2016002姓名學號數學學院學生:信息學院學生:1.3.1數據庫的三級模式結構1.3.1數據庫的三級模式結構(1)模式

模式也稱概念模式或邏輯模式,是對數據庫中全部數據的邏輯結構和特征的描述,是所有用戶的公共數據視圖。一個數據庫只有一個模式,綜合地考慮了所有用戶的需求,并將這些需求結合成一個邏輯整體。(2)內模式

內模式也稱存儲模式或物理模式,是對數據物理結構和存儲方式的描述,是數據在數據庫內部的表示方式。一個數據庫只有一個內模式。三級模式結構的一個具體實例圖書信息出版社名稱字符型20書名字符型30作者姓名字符型20出版日期日期型

作者著書信息作者姓名字符型20書名字符型30出版社出書類型出版社名稱字符型20書名字符型30類型字符型1

作者

作品

出版社

數據文件數據文件數據文件

索引文件索引文件索引文件

作者

作品

出版社

作者編號字符型5書號字符型6出版社編號字符型5

作者姓名字符型20書名字符型30出版社名稱字符型20

通信地址字符型50類型字符型1城市字符型10

郵編字符型6價格貨幣

電話字符型11出版日期日期型

外模式模式內模式1.3.1數據庫的三級模式結構(3)外模式

外模式也稱子模式或用戶模式,它是對數據庫用戶能夠看見和使用的局部數據的邏輯結構和特征的描述。外模式通常是模式的子集,一個數據庫可以有多個外模式。

1.3.2數據庫的兩級映像

數據庫的三級模式結構把數據的具體組織(內模式)留給DBMS去做,用戶只要抽象地處理數據(模式——DBA、外模式——程序員),減輕了用戶使用系統的負擔。但,三級模式結構之間差別往往很大,為了實現這3個抽象級別的聯系和轉換,DBMS在三級模式結構之間提供了兩級映像:外模式/模式映像,模式/內模式映像。1.3.2數據庫的兩級映像(1)外模式/模式映像

對于每個外模式,數據庫系統都有一個外模式/模式映像,它定義了該外模式與模式之間的對應關系。當模式改變時(如增加新的關系、新的屬性、改變屬性的數據類型等),由數據庫管理員對各個外模式/模式映像作相應改變,可以使外模式保持不變。因為應用程序是依據數據的外模式編寫的,所以應用程序不必修改。此映像的功能就是:保證了數據與程序的邏輯獨立性,簡稱邏輯數據獨立性。1.3.2數據庫的兩級映像(2)模式/內模式映像

數據庫中只有一個模式,也只有一個內模式,所以模式/內模式映像是唯一的,它定義了數據庫全局邏輯結構與存儲結構之間的對應關系。當數據庫的存儲結構改變了(如選用了另一種存儲結構),由數據庫管理員對模式/內模式映像作相應改變,可以保證模式保持不變,因而應用程序也不必改變。此映像的功能是:保證了數據與程序的物理獨立性,簡稱物理數據獨立性。1.4數據模型客觀事物是信息之源,是設計、建立數據庫的出發點,也是使用數據庫的最后歸宿。但計算機不能直接處理現實世界中的具體事物,所以人們必須事先將具體事物轉換成計算機能夠處理的數據,這就是數據庫的數據模型。1.4.1信息的三種世界計算機信息處理的對象是現實生活中的客觀事物,在對客觀事物實施處理的過程中,涉及到三個層次,即現實世界、信息世界和機器世界,經歷了兩次抽象和轉換。1.現實世界現實世界就是人們所能看到的、接觸到的世界。現實世界就是存在于人腦之外的客觀世界,客觀事物及其相互聯系就處于現實世界中。1.4.1信息的三種世界2.信息世界

信息世界就是現實世界在人們頭腦中的反映,又稱概念世界。客觀事物在信息世界中稱為實體,反映事物間聯系的是實體模型或概念模型。3.數據世界數據世界又叫機器世界,是信息世界中的信息數據化后對應的產物。現實世界中的客觀事物及其聯系,在數據世界中用數據模型來描述。1.4.2概念模型概念模型是現實世界的抽象反映,是獨立于計算機系統的模型,是現實世界到機器世界的一個中間層。1.基本概念(1)實體(Entity):客觀存在并可以相互區分的事物。如一個學生、一個班級等。(2)屬性(Attribute):實體所具有的某些特性。通過屬性對實體進行描述,實體是由屬性組成的。例如,學生實體可由學號、姓名、性別、年齡、系、專業等組成,(202202001、張強、男、19、計算機、軟件工程)這些屬性組合起來就可以表示“張強”這個學生。

1.4.2概念模型(3)

碼(Key):一個實體往往有多個屬性,如果其中有一個屬性或屬性集能夠唯一標識整個屬性集合,則稱該屬性或屬性集為該實體的碼。例如,學號是學生實體的碼。在同一學校里,不可能有兩個學生具有相同的學號。(4)實體型(EntityType):具有相同屬性的實體必然具有共同的特征和性質。用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。例如,學生(學號,姓名,性別,年齡,系,專業)就是一個實體型。(5)實體集(EntitySet):同型實體的集合稱為實體集。例如,全體學生就是一個實體集。1.4.2概念模型(6)聯系(Relationship):現實世界的事物之間是有聯系的,即各實體型之間是有聯系的。a1

a2

a3

a4

b1

b2

b3

b4

A

B

一對一聯系(1:1)對于實體集A中的每一個實體,實體集B中至多有一個實體與之對應,反之亦然,則稱實體集A與實體集B具有一對一聯系,記為1:1。例如,部門與經理之間聯系,學校與校長之間的聯系等等就是一對一的聯系。1.4.2概念模型一對多聯系(1:M)對于實體集A中的每一個實體,實體集B中有多個實體與之對應;反過來,對于實體集B中的每一個實體,實體集A中至多有一個實體與之對應,則稱實體集A與實體集B具有一對多聯系,記為1:M。例如,一個班可以有多個學生,但一個學生只能屬于一個班。班級與學生之間的聯系就是一對多的聯系。a1

a2

a3

b1

b2

b3

b4

b5A

B

1.4.2概念模型多對多聯系(M:N)對于實體集A中的每一個實體,實體集B中有多個實體與之對應;反過來,對于實體集B中的每一個實體,實體集A中也有多個實體與之對應,則稱實體集A與實體集B具有多對多聯系,記為M:N。例如,學生在選課時,一個學生可以選多門課程,一門課程也可以被多個學生選,則學生和課程之間具有多對多聯系。a1

a2

a3

a4

b1

b2

b3

b4

A

B

1.4.2概念模型2.E-R模型概念模型的表示方法很多,其中最為著名和使用最為廣泛的是P.P.S.Chen于1976年提出的E-R(Entity-Relationship)模型。E-R模型又叫實體-聯系模型,是對現實世界的一種抽象,它的主要成分是實體、聯系和屬性。E-R模型的圖形表示稱為E-R圖。1.4.2概念模型E-R圖通用的表示方式:(1)用矩形表示實體,在框內寫上實體名。(2)用橢圓形表示實體的屬性,并用無向邊把實體和屬性連接起來。(3)用菱形表示實體間的聯系,在菱形框內寫上聯系名,用無向邊分別把菱形框與有關實體連接起來,在無向邊旁注明聯系的類型。注:有的聯系也有屬性。

1.4.2概念模型例1:學生實體和班級實體的聯系的E-R圖。

學生班級屬于班級名班主任n1學生實體有屬性:學號、姓名、性別、年齡、班級名。班級實體有屬性:班級名、班主任。姓名性別班級名年齡學號例2:學生選課系統的E-R圖。學生實體有屬性:學號、姓名、性別、年齡、班級名。課程實體有屬性:課程名、課程編號、學時、學分。選修mn成績注:學生選課后有成績1.4.2概念模型學生課程學號姓名性別年齡班級課程號課程名學分學時例1、例2組合成一個簡單的學生信息數據庫系統。1.4.2概念模型1NMN課程學生選修姓名性別年齡課程號課程名學分成績學號班級屬于班主任班級名學時系實體的屬性有:系名,系號,系主任。教師實體的屬性有:教師號,教師名,年齡,職稱。練習:畫出某學校系和教師之間關系的E-R圖。1.4.2概念模型1.4.2概念模型例如:有一個高等學校信息數據庫系統,包含學生、教師、專業、教科書和課程五個實體,實體聯系的E-R圖。

MN1N1NNMNM1N屬于所屬教科書專業訂購課程開課教師學生教學選修專業名專業號學號姓名性別年齡職工號姓名性別民族課程號課程名學分成績書號書名出版社數量開課學期1.4.3數據模型1.數據模型三要素數據模型是對客觀事物及聯系的數據描述,是概念模型的數據化,即數據模型提供表示和組織數據的方法。數據模型通常由數據結構、數據操作和數據的完整性約束三部分(三要素)組成。1.4.3數據模型(1)數據結構對計算機的數據組織方式和數據之間聯系進行框架性描述的集合,是對數據庫靜態特征的描述。數據庫系統是按數據結構的類型來組織數據的,因此數據庫系統通常按照數據結構的類型來命名數據模型。如層次結構、網狀結構和關系結構的模型分別命名為層次模型、網狀模型和關系模型。1.4.3數據模型(2)數據操作指數據庫中各記錄允許執行的操作的集合,例如插入、刪除、修改、檢索、更新等操作,是對數據庫動態特征的描述。(3)數據的完整性約束是關于數據狀態和狀態變化的一組完整性約束規則的集合,以保證數據的正確性、有效性和一致性。例如,數據庫的主碼不能允許取空值,性別的取值范圍為“男或女”等。1.4.3數據模型2.常見的三種數據模型(1)層次模型

層次模型用樹形結構來表示各類實體以及實體間的聯系。每個結點表示一個記錄類型,結點之間的連線表示記錄類型間的聯系,這種聯系只能是父子聯系。學校學院1學院3學院2系1系2教研室1教研室2層次模型的特點:只有一個結點沒有雙親結點,稱為根結點。根結點以外的其他結點有且只有一個雙親結點。所以只能表示一對多和一對一聯系。1.4.3數據模型層次數據模型的操作主要有查詢、插入、刪除和更新。進行插入、刪除、更新操作時要滿足層次模型的完整性約束條件:進行插入操作時,如果沒有相應的雙親結點值就不能插入子女結點值。進行刪除操作時,如果刪除雙親結點值,則相應的子女結點值也被同時刪除。進行更新操作時,應更新所有相應記錄,以保證數據的一致性。1.4.3數據模型層次模型的優點:模型本身比較簡單,只需很少幾條命令就能操縱數據庫;對于實體間聯系是固定的,且預先定義好的應用系統,采用層次模型最易實現。但其缺點也很多:如插入和刪除操作的限制比較多;查詢子女結點必須通過雙親結點;無法直接表示多對多聯系等等。1.4.3數據模型(2)網狀模型

網狀數據模型是一種比層次模型更具普遍性的結構,它允許多個結點沒有雙親結點,也允許一個結點有多個雙親結點。因此,網狀模型可以方便地表示各種類型的聯系。課程1課程2課程3學生2學生3學生4學生5學生1網狀模型是一個不加任何條件的無向圖。一般來說,層次模型是網狀模型的特殊形式,網狀模型是層次模型的一般形式。1.4.3數據模型網狀數據模型的操作主要包括查詢、插入、刪除和更新數據。進行插入、刪除、更新操作時要滿足網狀模型的完整性約束條件:(1)插入操作允許插入尚未確定雙親結點值的子女結點值。(2)刪除操作允許只刪除雙親結點值。(3)更新操作只需要更新指定記錄即可。(4)查詢操作可以有多種方法,可根據具體情況選用。1.4.3數據模型網狀模型與層次模型相比,提供了更大的靈活性,能更直接地描述現實世界,性能和效率也比較好。網狀模型的缺點:結構比較復雜,用戶不易掌握;DDL和DML語言復雜,用戶不易使用;記錄之間聯系變動后涉及鏈接指針的調整,擴充和維護都比較復雜。1.4.3數據模型(3)關系模型用二維表格結構表示實體以及實體之間的聯系的數據模型稱為關系模型。關系模型是數據模型中最重要的模型。它以關系數學為理論基礎,在關系模型中,操作的對象和操作結果都是二維表。1.4.3數據模型重要概念*:關系一個關系就是一張二維表,每個關系都有一個關系名,在計算機里,一個關系可以存儲為一個文件。元組二維表中的行稱為元組,每一行是一個元組。元組對應存儲文件中的一個記錄。屬性二維表的列稱為屬性,每一列有一個屬性名,屬性值是屬性的具體值。屬性對應存儲文件中的一個字段,屬性的具體取值就形成表中的一個個元組。1.4.3數據模型域域是屬性的取值范圍。關系模式對關系的信息結構及語義限制的描述稱為關系模式,用關系名和包含的屬性名的集合表示。例如,職工信息表的關系模式是:職工(職工號,姓名,性別,年齡,工資)。關鍵字或碼在關系的屬性中,能夠用來唯一標識元組的屬性(或屬性組合)稱為關鍵字或碼(Key)。1.4.3數據模型候選關鍵字或候選碼

如果在一個關系中,存在多個屬性(或屬性組合)都能用來唯一標識該關系中的元組,這些屬性(或屬性組合)都稱為該關系的候選關鍵字或候選碼,候選碼可以有多個。

主鍵或主碼

在一個關系的若干候選關鍵字中,被指定作為關鍵字的候選關鍵字稱為該關系的主鍵或主碼(PrimaryKey),一般,我們習慣選擇號碼作為一個關系的主碼。1.4.3數據模型主屬性和非主屬性

在一個關系中,包含在任何候選碼中的各個屬性稱為主屬性;不包含在任一候選碼中的屬性稱為非主屬性。外鍵或外碼一個關系的某個屬性(或屬性組合)不是該關系的主碼或只是主碼的一部分,卻是另一個關系的主碼,則稱這樣的屬性為該關系的外鍵或外碼(ForeignKey)。外碼是表與表聯系的紐帶。前面的層次模型圖可以用3個表表示:學院表,系表,教研室表1.4.3數據模型學校學院1學院3學院2系1系2教研室1教研室2學院表例:學院號學院名院長001數學張三002物理李四003化學王五004文學劉明系名系主任學院號數學系aa001計算機系bb001網絡系cc002電子系dd002系表例:教研室名教研室主任系名數學基礎AB數學系數學應用BC數學系計算機應用AC計算機系網絡基礎AD計算機系網絡應用BD網絡系網絡實驗BE網絡系控制理論DF電子系教研室表例:1.4.3數據模型前面的網狀模型圖也可以用3個表表示:學生表,課程表,成績表1.4.3數據模型課程1課程2課程3學生2學生3學生4學生5學生1學生表例:學號姓名性別2016002張三男2016025李四女2016023劉明男2016033王曉女課程號課程名學分A002數據庫4B025英語5A005網絡3B028VB3課程表例:學號課程號成績2016002A002782016002B025882016002A005932016025A002902016025B025782016025A005772016025B028882016033A002872004033B025832016023A005792016023B028922016023B02589成績表例:表示學生和課程之間的聯系1.4.3數據模型

關系模型的操作主要包括查詢、插入、刪除和修改數據。這些操作必須滿足關系的完整性約束條件,使得關系數據庫從一種一致性狀態轉變到另一種一致性狀態。

詳細內容見第2章。1.4.3數據模型數據庫原理與應用教程-MySQL8.0第2章關系數據庫第2章關系數據庫關系數據庫系統就是支持關系模型的數據庫系統。關系數據模型由關系數據結構、關系操作集合和關系完整性約束三部分組成。2.1關系數據結構關系模型的數據結構非常簡單,現實世界的實體以及實體間的各種聯系均用關系來表示。在用戶看來,關系模型中數據的邏輯結構就是一張二維表。2.1.1關系的定義和性質關系就是一張二維表,但并不是任何二維表都叫關系,我們不能把日常生活中所用的任何表格都當成一個關系直接存放到數據庫里。那么什么樣的二維表才叫關系呢?

1、關系的數學定義笛卡兒積:設D1,D2,…,Dn為任意域,定義D1,D2,…,Dn的笛卡兒積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,

i=1,2,…,n}

域:一組具有相同數據類型的值的集合。例如:有兩個域,D1=動物集合={貓,狗,豬},D2=食物集合={魚,骨頭,白菜},D1×D2={(貓,魚)(狗,魚)(豬,魚)(貓,骨頭)(狗,骨頭)(豬,骨頭)(貓,白菜)(狗,白菜)(豬,白菜)}2.1.1關系的定義和性質動物食物貓魚狗魚豬魚貓骨頭狗骨頭豬骨頭貓白菜狗白菜豬白菜D1×D2=動物食物表笛卡兒積推出關系表的定義關系:D1×D2×…×Dn中有關系的行形成的子集叫做D1×D2×…×Dn上的一個關系(Relation),用R(D1,D2,…,Dn)表示。(R表示關系名,n表示關系的目、度或元)動物食物表的子集——動物食物關系表動物食物貓魚狗骨頭豬白菜2.1.1關系的定義和性質2.關系的性質:關系數據庫要求關系必須是具有以下性質:(1)在同一個關系中,同一個列的數據必須是同一種數據類型。(2)在同一個關系中,不同的列的數據可以同一種數據類型,但各屬性名必須是互不相同。(3)在同一個關系中,任意兩個元組都不能完全相同。(4)在同一個關系中,列的次序無關緊要。(5)在同一個關系中,元組的位置無關緊要,即排行不分先后(6)關系中的每個屬性必須是單值,即不可再分,這就要求關系的結構不能嵌套。這是關系應滿足的最基本的條件。

2.1.1關系的定義和性質例如,有這樣一個學生表如下:復合表示例學號姓名性別系編號成績程序設計英語高數2022001張三男017787862022002李四女026989762022003劉明男037984822022004王曉女036690762.1.1關系的定義和性質2.1.1關系的定義和性質上述復合表格就不是關系,應對其進行結構上的修改,才能成為數據庫中的關系。(1)可以轉化成一個關系,即學生成績關系(學號,姓名,性別,系編號,程序設計,英語,高數);(2)也可以轉化成兩個關系,即學生關系(學號,姓名,性別,系編號)和成績關系(學號,程序設計,英語,高數)。2.1.2關系數據庫1.關系模式關系數據庫中,關系模式是型,關系是值;關系模式是對關系的描述。因此關系模式必須指出這個元組集合的結構,即它由哪些屬性構成,這些屬性來自哪些域。關系模式形式化表示:R(U,D,dom,F)其中:R是關系名;U是組成該關系的屬性名集合;D是屬性所來自的域;dom

是屬性向域的映象集合;F是屬性之間的數據依賴關系的集合。學號姓名性別年齡所在系2021000101王蕭男17計算機系2021000207李云虎男18物理系0202110302郭敏女18數學系2022010408高紅女20數學系2022020309王睿男19美術系2022020506路旭青女21美術系學生情況表(關系)

學生情況表的關系模式可以描述為:學生情況表(學號,姓名,性別,年齡,所在系)關系模式通常可以簡記為:

R(U)或R(A1,A2,…,An)。

其中:R是關系名,A1,A2,…,An為屬性名;域名及屬性向域的映象,常常直接說明為屬性的類型和長度。2.1.2關系數據庫關系是關系模式在某一時刻的狀態或內容。關系模式是靜態的、穩定的,而關系是動態的、隨時間不斷變化的,因為關系操作在不斷地更新著數據庫中的數據。實際應用中,常常把關系模式和關系統稱為關系。2.關系數據庫關系數據庫就是采用關系模型的數據庫。關系數據庫的型即為其關系模式的集合,關系數據庫的值是這些關系模式在某一時刻對應的關系的集合。

2.1.2關系數據庫2.2關系的完整性數據完整性是指關系模型中數據的正確性與一致性。關系模型允許定義三類完整性約束*:實體完整性、參照完整性和用戶自定義的完整性約束。1、實體完整性規則*實體完整性規則要求關系中主碼的屬性具有唯一性且不能取空值*。例如學生表中的學號屬性既具有唯一性又不能為空。選修關系的主碼為學號和課程號既具有唯一性又不允許為空。2.2關系的完整性2、參照完整性規則*設F是基本關系R的一個或一組屬性,如果F與基本關系S的主碼K相對應,則稱F是基本關系R的外碼(Foreignkey),并稱基本關系R為參照關系,基本關系S為被參照關系或目標關系。如,班級關系(班級,班主任)中班級為主碼。學生關系(學號,姓名,性別,班級)中班級為外碼。參照完整性是用來定義外碼與主碼之間引用規則的。2.2關系的完整性參照完整性規則**:若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼K相對應(基本關系R和S可能是相同的關系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值*。2.2關系的完整性【例】學生實體和專業實體可以用下面的關系表示,其中主碼用下劃線標識。學生(學號,姓名,性別,年齡,系別號)系別(系別號,系名)“系別號”屬性是學生關系的外碼,是系別關系的主碼。系別關系是被參照關系,學生關系為參照關系。所以,學生關系中的每個元組的“系別號”屬性只能取下面兩類值:空值或系別關系中已經存在的值。學生表:學號姓名性別年齡2003002張三男202003025李四女212005023劉明男182004033王曉女19課程號課程名學分A002數據庫4B025英語5A005網絡3B028VB3課程表:學號課程號成績2003002A002782003002B025882003002A005932003025A002902003025B025782003025A005772003025B028882004033A002872004033B025832005023A005792005023B028922005023B02589選修表:2.2關系的完整性分析參照完整性:2.2關系的完整性3、用戶定義的完整性規則用戶定義的完整性規則由用戶根據實際情況對數據庫中數據的內容進行的規定,也稱為域完整性規則*。通過這些規則限制數據庫只接受符合完整性約束條件的數據值,不接受違反約束條件的數據,從而保證數據庫的中數據的有效性和可靠性。例如,學生表中的性別數據只能是男和女,選課表中的成績數據為0到100之間,等等。3.3關系運算關系代數是以關系為運算對象的一組高級運算的集合;關系代數是一種抽象的查詢語言,是關系數據操縱語言的一種傳統表達方式。(數學方式的查詢過程)

注意:關系代數的運算對象是關系,運算結果也是關系。2.3關系運算關系代數中的操作可以分為兩類:

傳統的集合操作:并、差、交、笛卡兒積。專門的關系操作*:投影、選擇、連接、除法等。在兩類集合運算中,除運算本身的運算符外(如并運算為∪),還將用到兩類輔助操作符:

(1)比較運算符:>、≥、<、≤、=、≠。

(2)邏輯運算符:∨(或)、∧(與)、┐(非)。2.3.1傳統的集合運算1、笛卡兒積*設關系R和S的元數(屬性個數)分別為r和s,定義R和S的笛卡兒積是一個(r+s)元的元組集合,每個元組的前r個分量(屬性值)來自R的一個元組,后s個分量來自S的一個元組,記為R×S。若R有m個元組,S有n個元組,則R×S有m×n個元組。2.3.1傳統的集合運算已知關系R和關系S,如下圖:ABCa1b2c1a2b1c3a3b3c2

關系REFDe1f2d2e2f3d1e3f1d3關系S

2.3.1傳統的集合運算R×SABCEFDa1b2c1e1f2d2a1b2c1e2F3d1a1b2c2e3f1d3a2b1c3e1f2d2a2b1c3e2F3d1a2b1c3e3f1d3a3b3c2e1f2d2a3b3c2e2F3d1a3b3c2e3f1d32.3.1傳統的集合運算2、并(Union)

設關系R和S具有相同的關系模式,R和S是n元關系,R和S的并是由屬于R或屬于S的元組構成的集合,記為R∪S。形式定義如下:

R∪S={t|t∈R∨t∈S},其含義為:任取元組t,當且僅當t屬于R或t屬于S時,t屬于R∪S。R∪S是一個n元關系。2.3.1傳統的集合運算我們可以把關系R想象成足球愛好者表和把S想象成籃球愛好者表,那么R和S的并為?abc123789101112R∪SR

Sabc123456789abc123456789101112注意:并運算會取消某些元組(避免重復行)。2.3.1傳統的集合運算3、差(Difference)

關系R和S具有相同的關系模式,R和S是n元關系,R和S的差是由屬于R但不屬于S的元組構成的集合,記為R-S。形式定義如下:

R-S={t|t∈R∧t∈S}其含義為:當且僅當t屬于R并且不屬于S時,t屬于R-S。R-S也是一個n元關系。\2.3.1傳統的集合運算同樣把關系R想象成足球愛好者表和把S想象成籃球愛好者表,那么R和S的差為?

R-Sabc456abc123789101112R

Sabc1234567892.3.1傳統的集合運算4、交(Intersection)關系R和S具有相同的關系模式,R和S是n元關系,R和S的交是由屬于R且屬于S是元組構成的集合,記為R∩S。形式定義如下:

R∩S={t|t∈R∧t∈S}其含義為:任取元組t,當且僅當t既屬于R又屬于S時,t屬于R∩S。R∩S也是一個n元關系。2.3.1傳統的集合運算還是把關系R想象成足球愛好者表和把S想象成籃球愛好者表,那么R和S的交為?

R∩Sabc123789abc123789101112R

Sabc1234567892.3.2專門的關系運算專門的關系運算包括選擇、投影、連接、除等。1、選擇(Selection)選擇運算是在關系R中選擇滿足給定條件的諸元組,記作σF(R)={t|t∈R^F(t)='真'}2.3.2專門的關系運算設有一個學生-課程數據庫,包括學生關系student、課程關系course和成績表score。

學生情況表(student)學號(no)姓名(name)性別(sex)年齡(age)所在系(dep)2022001張超男18物理系2022002李嵐女17信息系2022003王芳女19數學系2022004劉娟女18信息系2022005趙強男19物理系2.3.2專門的關系運算

課程表(course)課程號(cno)課程名(cname)學分(credit)1數據庫42高等數學33信息系統24操作系統35數據結構56C程序設計32.3.2專門的關系運算

成績表(score)學號(no)課程號(cno)成績(grade)20220012782022001388202200158120220021902022002468202200347020220035572022003189202200529320220055792.3.2專門的關系運算例:查詢數學系學生的信息。σdep=‘數學系’

(student)或σ5=‘數學系’

(student)查詢數學系學生的信息,結果:學號(no)姓名(nam)性別(sex)年齡(age)所在系(dep)2022003王芳女19數學系2.3.2專門的關系運算例:查詢年齡大于17的女同學的信息。σ

age>17∧sex=’女’

(student)

σ4>17∧3=’女’(student)

查詢結果表學號(no)姓名(nam)性別(sex)年齡(age)所在系(dep)2022003王芳女19數學系2022004劉娟女18信息系2.3.2專門的關系運算2、投影(Projection)

關系R上的投影是從R中選擇出若干屬性列組成新的關系。記作πA(R)={t[A]|t∈R}其中,A為R中的屬性列。投影之后不僅取消了原關系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現重復行,應取消這些完全相同的行。2.3.2專門的關系運算例:查詢學生的學號和姓名。πno,name(student)或π1,2(student)結果表如表所示。查詢學生的學號和姓名學

號no姓

名name2022001張超2022002李嵐2022003

王芳2022004劉娟2022005趙強2.3.2專門的關系運算課程名(cname)課程號(cno)數據庫1高等數學2信息系統3操作系統4數據結構5C程序設計6例:查詢課程表中的課程名和課程號。πcname,cno(course)或π2,1(course)

查詢課程名和課程號2.3.2專門的關系運算3、連接(Join)(1)連接運算的含義:連接也稱θ連接,是從兩個關系的笛卡兒積中選取滿足某規定條件的全體元組,形成一個新的關系,記為:2.3.2專門的關系運算例題:已知關系R和關系S如下表所示:ABCa1b26a2b17a1b39a3b212EDB5e2b27e1b110e3b36e2b2

RS求:2.3.2專門的關系運算AR.BCEDS.Ba1b267e1b1a1b2610e3b3a2b1710e3b3a1b3910e3b3連接結果表2.3.2專門的關系運算(3)兩類常用連接運算①等值連接(equi-join)θ為“=”的連接運算稱為等值連接,它是從關系R與S的笛卡兒積中選取A、B屬性值相等的那些元組。等值連接為:A=BRS={trts|tr

R∧ts

S∧tr[A]=ts[B]}2.3.2專門的關系運算②自然連接(Naturaljoin)若A、B是相同的屬性組,就可以在結果中把重復的屬性去掉。這種去掉了重復屬性的等值連接稱為自然連接。自然連接可記作:RS={trts|tr

R∧ts

S∧tr[B]=ts[B]}2.3.2專門的關系運算例題:已知關系R和關系S如下表所示:ABCa1b26a2b17a1b39a3b212EDB5e2b27e1b110e3b36e2b2

RS2.3.2專門的關系運算求:

R.B=S.B2.3.2專門的關系運算R.C=S.E,等值連接結果表AR.BCEDS.Ba1b266e2b2a2b177e1b12.3.2專門的關系運算R.B=S.B等值連接結果自然連接結果表ABCEDa1b265e2a1b266e2a2b177e1a3b2125e2a3b2126e2a1b3910e3AR.BCEDS.Ba1b265e2b2a1b266e2b2a2b177e1b1a3b2125e2b2a3b2126e2b2a1b3910e3b32.3.2專門的關系運算根據學生-課程數據庫的三個表:求:

(1)student∞score(2)course∞score(3)student∞score∞course

2.3.2專門的關系運算4.關系代數操作表達式舉例*設教學數據庫中有三個關系,學生關系:S(SNO,SN,AGE,SEX)、學習關系:SC(SNO,CNO,SCORE)、課程關系:C(CNO,CN,TEACHER)(1)檢索學習課程號為C3的學生學號和成績∏SNO,SCORE(σCNO=’C3’(SC))(2)檢索學習課程號為C4的學生學號和姓名∏SNO,SN(σCNO=’C4’(S∞SC))2.3.2專門的關系運算(3)檢索學習課程名為MATHS的學生學號和姓名∏

SNO,SN(σCN=’MATHS’(S∞SC∞C))(4)檢索學習課程號為C1或C3的學生學號∏

SNO(σCNO=’C1’VCNO=’C3’(SC))(5)檢索不學習課程號為C2的學生的姓名和年齡∏SN,AGE(S)-∏SN,AGE(σCNO=’C2’(S∞SC))實體的聯系有兩類,一類是實體與實體之間的聯系;另一類是實體內部各屬性間的聯系。關系模式中各個屬性之間的相互關聯,就是數據依賴,它是規范化理論中一個最重要最基本的概念,是數據庫模式設計的關鍵。本節重點介紹兩個問題:函數依賴:數據依賴中最重要的一種關系的規范化目的和過程2.4關系的規范化數據依賴共有三種:函數依賴(FunctionalDependency,簡稱FD)、多值依賴(MultivaluedDependency,簡稱MVD)和連接依賴(JoinDependency,簡稱JD),其中最重要的是函數依賴。1.函數依賴的定義所謂函數依賴是指在關系R中,X、Y為R的兩個屬性或屬性組,如果關系R存在:對于X的每一個具體值,Y都只有一個具體值與之對應,則稱屬性Y函數依賴于屬性X。記作X→Y。

2.4.1函數依賴函數依賴簡單表述:如果屬性X的值決定屬性Y的值,那么屬性Y函數依賴于屬性X。或者,如果知道X的值,就可以獲得Y的值。所以X→Y可以叫做Y函數依賴于X,也可以叫做X函數決定Y,或X決定Y。2.4.1函數依賴例學生情況表學號姓名專業名性別出生日期總學分20211101王林計算機男2003-02-105020211102程明計算機男2003-02-015020211103王燕計算機女2004-10-065020211104韋嚴平網絡男2002-08-265020211106李方方網絡女2003-11-20502.4.1函數依賴學生情況表對應的關系模式可描述為:學生情況(學號,姓名,性別,出生日期,總學分)其中,學號為主鍵,則存在如下的函數依賴關系:學號→姓名;學號→專業名;學號→性別;學號→出生日期;學號→總學分2.4.1函數依賴2、幾種特定的函數依賴*(1)非平凡函數依賴和平凡函數依賴設關系模式R(U),X、Y?U;如果X→Y,且Y?X,則稱X→Y為平凡的函數依賴。如果X→Y,且Y不是X的子集,則稱X→Y為非平凡的函數依賴。例:在學生課程關系(學生號,課程號,成績)中,若存在函數依賴:(1)(學生號,課程號)→成績(非平凡)(2)(學生號,課程號)→課程號(平凡)2.4.1函數依賴(2)完全函數依賴和部分函數依賴**定義:設關系模式R(U),X,Y?U;如果X→Y,并且對于X的任何一個真子集Z,Z→Y都不成立,則稱Y完全函數依賴于X。若X→Y,但對于X的某一個真子集Z,有Z→Y成立,則稱Y部分函數依賴于X。2.4.1函數依賴例:在學生課程關系(學號,課程號,成績)中,主碼為(學號,課程號)。因為學號→成績不成立,課程號→成績也不成立,所以(學號,課程號)→成績為完全函數依賴。又例:在選課關系(學號,課程號,姓名,成績)中,(學號,課程號)是主碼。由于:學號→姓名成立,因此:姓名部分函數依賴于(學號,課程號)。2.4.1函數依賴(3)傳遞函數依賴設關系模式R(U),X?U,Y?U,Z?U。如果X→Y,YX,且Y→Z成立,則稱X→Z為傳遞函數依賴。

例如:學生關系(學號,姓名,性別,年齡,所在系,系主任),其上的函數依賴集F={學號→姓名,學號→性別,學號→年齡,學號→所在系,所在系→系主任},則學號→系主任為傳遞函數依賴。2.4.1函數依賴3、碼的函數依賴表示函數依賴的概念給出關系模式中碼的更嚴格定義:候選碼:設K為關系模式R(U)中的屬性或屬性集合。若K→U,則K稱為R的一個候選碼。若關系模式R有多個候選碼,則選定其中一個作為主碼。2.4.1函數依賴設有一描述學校的數據庫:含有這樣一個關系模式:學生信息表(學號,姓名,年齡,系別,系主任,課程號,成績),(學號,課程號)為主鍵。其中,一個系有若干學生,一個學生只屬于一個系;一個系只有一名主任;一個學生可以選修多門課程,每門課程有若干學生選修;每個學生所學的每門課程都有一個成績。2.4.2關系的規范化目的2.4.2關系的規范化目的學號姓名年齡系別系主任課程號成績20221001趙紅20計算機張力C19020221001趙紅20計算機張力C28520222002王小明17數學王曉C55720222002王小明17數學王曉C68020222002王小明17數學王曉C77620222002王小明17數學王曉C47020223003吳林19信息趙鋼林19信息趙鋼C27020221004張濤21計算機張力C193關系模式學生信息表中存在如下問題*:①數據冗余(浪費大量的存儲空間)。例:每一個系主任的姓名重復出現很多次②更新異常(數據冗余,更新數據時,維護數據完整性代價大) 例:某系更換系主任后,系統必須修改與該系學生有關的每一個元組2.4.2關系的規范化目的③插入異常(該插的數據插不進去)例:如果一個系剛成立,尚無學生,我們就無法把這個系及其系主任的信息存入數據庫。④刪除異常(不該刪除的數據不得不刪)例:如果某個系的學生全部畢業了,我們在刪除該系學生信息的同時,把這個系及其系主任的信息也刪掉了。2.4.2關系的規范化目的以上問題產生的原因:由存在于模式中的某些不合適的數據依賴引起的。解決方法:*通過分解關系模式來消除其中不合適的數據依賴。關系模式規范化的目的是解決關系模式中存在的數據冗余、插入和刪除異常以及更新異常等問題。基本思想:消除數據依賴中的不合適部分,即模式分解。2.4.2關系的規范化目的關系數據庫中的關系必須滿足一定的規范化要求,對于不同的規范化程度可用范式來衡量。范式(NormalForm)是符合某一種級別的關系模式的集合,是衡量關系模式規范化程度的標準,達到的關系才是規范化的。目前主要有6種范式:第一、第二、第三、BC范式、第四和第五范式。2.4.2關系的規范化目的滿足最低要求的叫第一范式,簡稱為1NF。在第一范式基礎上進一步滿足一些要求的為第二范式,簡稱為2NF。其余以此類推。范式之間存在聯系:1NF?2NF?3NF?BCNF?4NF?5NF。通常把某一關系模式R為第n范式簡記為R∈nNF。在這些范式中,最重要的是3NF和BCNF,它們是進行規范化的主要目標。2.4.2關系的規范化目的一個低一級范式的關系模式,通過模式分解可以轉換為若干個高一級范式的關系模式的集合,這個過程稱為規范化。

通常實際應用中,規范化到3NF就可以了。2.4.3關系的規范化過程1、第一范式(1NF)定義:設R是一個關系模式。如果R的每個屬性的值域都是不可分的簡單數據項(原子)的集合,則稱這個關系模式屬于第一范式,簡記作R∈1NF。簡單表述:如果關系模式R的每一個屬性都是不可分解的,則R∈1NF。1NF是規范化最低的范式,在任何一個關系數據庫系統中,關系至少應該是第一范式。不滿足第一范式的數據庫模式不能稱為關系數據庫。2.4.3關系的規范化過程例如:職工情況表

職工號姓名工資基本工資職務工資工齡工資20011李嵐32901200143020012王曉江30001300124020013張華3800150016202.4.3關系的規范化過程可規范為:職工情況表職工號姓名基本工資職務工資工齡工資20011李嵐329080043020012王曉江300080034020013張華3800150016202.4.3關系的規范化過程2、第二范式定義:如果關系模式R是第一范式,且每個非主屬性都完全函數依賴于碼,則稱R為滿足第二范式的模式,記為:R∈2NF。

在一個關系中,包含在任何候選碼中的各個屬性都稱為主屬性;不包含在任何候選碼中的屬性稱為非主屬性。從第二范式開始,規范化時首先要確定關系中的最小函數依賴集。什么是最小函數依賴集F?2.4.3關系的規范化過程①F中任何一個函數依賴的右部僅含有一個屬性(非主屬性)。②F中的所有函數依賴的左邊都沒有冗余屬性。③F中不存在冗余的函數依賴。例:學生關系S(學號,姓名,性別,課程號,成績),其中學號和課程號的組合為主碼,姓名、性別、成績為非主屬性。關系S中的最小函數依賴集為:學號→姓名,學號→性別,(學號、課程號)→成績。2.4.3關系的規范化過程存在非主屬性部分函數依賴于碼,故關系S不屬于2NF。根據最小函數依賴的情況,對上述關系模式進行分解,分解為兩個關系:S1(學號,姓名,性別)S2(學號,課程,成績)S1∈2NF;S2∈2NF。2.4.3關系的規范化過程又例如:職工信息(職工號,姓名,職稱,項目號,項目名稱,項目排名)其中,主碼為(職工號,項目號),非主屬性為(姓名,職稱,項目名稱,項目排名)職工信息關系中存在的最小函數依賴:職工號→姓名;職工號→職稱;項目號→項目名稱;(職工號,項目號)→項目排名。2.4.3關系的規范化過程根據最小函數依賴,上述關系模式分解為三個關系:職工信息表(職工號,姓名,職稱)項目表(項目號,項目名稱)項目排名表(職工號,項目號,項目排名)2.4.3關系的規范化過程3、第三范式定義:如果關系模式R是第二范式,且沒有一個非主屬性是傳遞函數依賴于碼,則稱R為滿足第三范式的模式,記為:R∈3NF。例:學生關系(學號,姓名,系名,系主任)存在的函數依賴是學號→系名,學號→姓名,系名→系主任。所以系主任傳遞函數依賴于學號。分解:(1)學生(學號,姓名,系名)(2)系(系名,系主任)2.4.3關系的規范化過程

又例:關系ST(學號,樓號,收費);其中包含的函數依賴有:學號→樓號樓號→收費則存在傳遞函數依賴:學號→收費分解為兩個關系:

st1(學號,樓號)

st2(樓號,收費)2.4.3關系的規范化過程推論1:如果關系模式R∈1NF,且它的每一個非主屬性既不部分依賴、也不傳遞依賴于碼,則R∈3NF。推論2:不存在非主屬性的關系模式一定為3NF。2.4.3關系的規范化過程關系模式規范化的基本步驟總結:(1)對1NF關系進行投影,消除原關系中非主屬性對碼的部分函數依賴,從而產生若干個2NF的關系;(2)對2NF關系進行投影,消除原關系中非主屬性對碼的傳遞函數依賴,從而產生若干個3NF的關系;(3)對3NF關系進行投影,消除原關系中主屬性對碼的部分函數依賴和傳遞函數依賴(也就是說,使決定屬性都成為投影的候選碼),得到一組BCNF的關系。2.4.3關系的規范化過程例:有一個學生關系,學生(學號,姓名,系名,系主任,課程號,課程名,成績)規范化到第三范式。答:此關系模式滿足第一范式,因為其所有屬性都不可再分。2.4.3關系的規范化過程最小函數依賴集:學號->姓名,學號->系名,系名->系主任課程號->課程名,

(學號,課程號)->成績)分解為4個關系,達到3NF:學生(學號,姓名,系名)系(系名,系主任)課程(課程號,課程名)成績(學號,課程號,成績)2.4.3關系的規范化過程此關系不滿足第二范式,因為存在非主屬性對主碼的部分函數依賴,比如:學號->姓名。

關系規范化的作用:減少了冗余數據,節省了空間,避免了不合理的插入、刪除、修改等操作,保持了數據的一致性。缺點:信息放在不同表中,查詢數據時有時需要把多個表連接在一起,增加了操作的難度,降低了操作效率。2.4.3關系的規范化過程第3章數據庫設計數據庫原理與應用教程-MySQL8.0在數據庫系統中,數據庫是最基本、最重要的部分。數據庫性能的高低,決定了整個數據庫應用系統的性能。一個好的數據庫需要通過嚴格的設計,才能滿足各方面對數據的需要。數據庫的設計和開發是一項龐大而復雜的工程。數據庫設計人員要具備的知識:(1)數據庫基本理論(2)數據庫設計技術(3)程序開發的實際經驗(4)軟件工程的原理和方法第3章數據庫設計本章主要內容:1、數據庫設計的基本概念2、數據庫設計的6個階段(1)需求分析(2)概念結構設計(3)邏輯結構設計(4)數據庫物理設計(5)數據庫實施(6)數據庫的運行和維護第3章數據庫設計數據庫設計是根據用戶需求設計數據庫結構的過程。具體一點講,數據庫設計是對于給定的應用環境,在關系數據庫理論的指導下,構造最優(最合理、最規范)的數據庫模式,在數據庫管理系統(如MySQL)上建立數據庫及其應用系統(如PHP網站、JAVA程序等),使之能有效地存儲數據,滿足用戶的各種需求的過程。3.1數據庫設計概述數據庫設計方法有多種,按照規范設計的方法,數據庫設計可分為六個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、數據庫實施、數據庫運行和維護。

3.1數據庫設計概述需求分析是設計數據庫的起點,就是要分析用戶的要求。需求分析階段的重要性*:需求分析就是數據庫設計人員,通過仔細地調查和向用戶詳細地咨詢,掌握用戶的需求,理解用戶的需求。需求分析的結果是否準確地反映了用戶的實際要求,將直接影響到后面各個階段的設計,并影響到設計結果是否合理和實用。可以說在一個大型數據庫系統的開發中,它的作用要遠遠大于其它各個階段。

3.2需求分析明確需求分析的任務:通過詳細調查現實世界要處理的對象(組織、部門、企業等),充分了解原系統(手工系統或計算機系統)工作概況,明確用戶的各種需求,并在此基礎上確定新系統的功能。注意:(1)一定要讓用戶解釋其需求,而不是數據庫設計人員自己憑空設計需求。(2)新系統必須充分考慮今后可能的擴充和改變,不能僅僅按當前應用需求來設計數據庫。

3.2.1需求分析的任務

需求分析調查的重點是“數據”和“處理”(1)信息(數據)要求:調查用戶的信息要求,確定在數據庫中需要存儲哪些數據。(2)處理要求:

指用戶要完成什么處理功能,處理時間要求及處理方式。(3)安全性與完整性要求安全性要求是指對數據庫的用戶、角色、權限、加密方法等安全保密措施的要求。完整性要求是指對數據取值范圍、數據之間各種聯系的要求等等。

3.2.1需求分析的任務

1.調查用戶需求的具體步驟(1)調查組織機構情況,包括了解該組織的部門組成情況

溫馨提示

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

評論

0/150

提交評論