MySQL數據庫任務驅動式教程項目一課件_第1頁
MySQL數據庫任務驅動式教程項目一課件_第2頁
MySQL數據庫任務驅動式教程項目一課件_第3頁
MySQL數據庫任務驅動式教程項目一課件_第4頁
MySQL數據庫任務驅動式教程項目一課件_第5頁
已閱讀5頁,還剩233頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

任務1認識數據庫【任務背景】 學習數據庫,一般都要先從數據庫基本原理開始學起。任務1認識數據庫【任務背景】

對于初學者,往往會感覺原理部分特別的枯燥乏味,面對很多抽象難懂的概念和理論知識,如數據模型、實體、屬性、聯系、E-R圖、關系模式和數據建模等,顯得很無奈。 對于初學者,往往會感覺原理部分特別的枯燥乏味,面對很

但是,這些內容恰恰又是數據庫開發人員必須具備的基本知識。那么,該如何組織好教學內容?怎樣組織教學?怎樣才能使講授變得通俗易懂?該如何培養學生對課程學習的興趣?帶著很多的問題和期盼,讓我們一起努力,走進數據庫的世界去探究吧! 但是,這些內容恰恰又是數據庫開發人員必須具備的基本知【任務要求】

本任務直接從數據庫的基本應用開始,讓學生感受一下身邊的數據庫應用。【任務要求】 本任務直接從數據庫的基本應用開始,讓學生

在具體的學習情景中,讓學生了解數據庫的基本概念;認識關系模型和關系型數據庫;認識實體和屬性;認識C/S、B/S模式架構;學習數據庫的概念結構設計和邏輯設計方法。 在具體的學習情景中,讓學生了解數據庫的基本概念;認識

學習關系模式的規范化;繪制E-R圖,建立數據庫概念模型;將E-R圖轉換成關系模式進行數據模型的建立。 學習關系模式的規范化;繪制E-R圖,建立數據庫概念模1.1了解數據庫的基本應用 據庫管理系統應用非常廣泛,可以說應用在各行各業。主要表現在下面6個方面:多媒體數據庫、移動數據庫、空間數據庫、信息檢索系統、分布式信息檢索和專家決策系統。1.1了解數據庫的基本應用 據庫管理系統應用非常

下面介紹幾種數據庫管理系統在實際應用中的案例。 1.留言板。 2.進銷存管理系統。 3.ERP系統。 4.圖書管理系統。 下面介紹幾種數據庫管理系統在實際應用中的案例。1.2了解數據庫的幾個概念1.數據(Data)

數據實際上就是描述事物的符號記錄。1.2了解數據庫的幾個概念1.數據(Data)2.數據庫(DataBase,簡稱DB)

數據庫是長期儲存在計算機內的、有組織的、可共享的數據集合。數據庫中的數據按一定的數據模型組織、描述和儲存,具有較小的冗余度、較高的數據獨立性和易擴展性,并可為各種用戶共享。2.數據庫(DataBase,簡稱DB) 數據庫3.數據庫管理系統(DBMS)

數據庫管理系統是一個負責對數據庫進行數據組織、數據操縱、維護、控制以及數據保護和數據服務等的軟件系統,是數據庫的核心。3.數據庫管理系統(DBMS) 數據庫管理系統是一個負

能夠讓用戶定義、創建和維護數據庫以及控制對數據的訪問。它對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。用戶通過DBMS訪問數據庫中的數據,數據庫管理員也通過DBMS進行數據庫的維護工作。 能夠讓用戶定義、創建和維護數據庫以及控制對數據的訪問

數據庫管理系統的主要功能如下。

(1)數據模式定義:即為數據庫構建其數據框架。

(2)數據存取的物理構建:為數據模式的物理存取與構建提供有效的存取方法與手段。 數據庫管理系統的主要功能如下。

(3)數據操縱:為用戶使用數據庫的數據提供方便,如查詢、插入、修改、刪除等以及簡單的算術運算及統計。

(4)數據的完整性、安全性定義與檢查。 (3)數據操縱:為用戶使用數據庫的數據提供方便,如查詢、插

(5)數據庫的并發控制與故障恢復。

(6)數據的服務:如拷貝、轉存、重組、性能監測和分析等。 (5)數據庫的并發控制與故障恢復。

數據庫管理系統一般要提供以下的數據語言。

(1)數據定義語言:負責數據的模式定義與數據的物理存取構建。

數據庫管理系統一般要提供以下的數據語言。

(2)數據操縱語言:負責數據的操縱,如數據查詢與增、刪、改數據等。

(3)數據控制語言:負責數據完整性、安全性的定義與檢查以及并發控制、故障恢復等。 (2)數據操縱語言:負責數據的操縱,如數據查詢與增、刪、改

常用的數據庫管理系統有MySQL、MSSQLServer、Oracle、DB2、Accesst和Sybase等。 常用的數據庫管理系統有MySQL、MSSQLSe MySQL是一個小型關系型數據庫管理系統,最初由MySQLAB公司開發與發布,后來被sun公司收購,從2009年開始,MySQL又成為了Oracle公司旗下的另一個數據庫項目。MySQL被廣泛地應用在Internet上的中、小型網站中。本書講述的是最新版本MySQL5.5。 MySQL是一個小型關系型數據庫管理系統,最初由My1.3認識關系型數據庫1.認識數據模型

數據模型由3部分組成,即模型結構、數據操作和完整性規則。DBMS所支持的數據模型分為三種:層次模型、網狀模型、關系模型。1.3認識關系型數據庫1.認識數據模型

用樹形結構表示實體及其之間的聯系的模型稱為層次模型。該模型的實際存儲數據由鏈接指針來體現聯系。特點:有且僅有一個結點無父結點,此結點即為根結點;其他結點有且僅有一個父結點。適合用來表示一對多的聯系。 用樹形結構表示實體及其之間的聯系的模型稱為層次模型。

用網狀結構表示實體及其之間的聯系的模型稱為網狀模型。允許結點有多于一個的父結點,可以有一個以上的結點無父結點。適合用于表示多對多的聯系。 用網狀結構表示實體及其之間的聯系的模型稱為網狀模型。

層次模型和網狀模型本質上都是一樣的。存在的缺陷:難以實現系統擴充,插入或刪除數據時,涉及大量鏈接指針的調整。 層次模型和網狀模型本質上都是一樣的。存在的缺陷:難以

在關系模型中,一個關系就是一張二維表,通常將一個沒有重復行、重復列的二維表看成一個關系,每個關系都有一個關系名。 在關系模型中,一個關系就是一張二維表,通常將一個沒有

二維表的每一行在關系中稱為元組(記錄)

,二維表的每一列在關系中稱為屬性(字段),每個屬性都有一個屬性名,屬性值則是各元組屬性的取值。 二維表的每一行在關系中稱為元組(記錄)

,二維表的每2.認識關系數據庫

關系數據庫是創建在關系模型基礎上的數據庫。關系數據庫是以二維表來存儲數據庫的數據的。2.認識關系數據庫 關系數據庫是創建在關系模型基礎上的1.1EMPLOYEES表數據1.1EMPLOYEES表數據

系模式是對關系的描述,主要描述關系由哪些屬性構成,即描述了表的結構。關系模式的格式為:關系表名(字段1,字段2,字段3,…,字段n)。因此,EMPLOYEES表的關系模式可以表示為。 系模式是對關系的描述,主要描述關系由哪些屬性構成,即 EMPLOYEES(E_ID,E_name,sex,Professional,education,Political,birth,marry,Gz_time,D_id,bz) EMPLOYEES(E_ID,E_name,sex,

在關系表中,通常指定某個字段或字段的組合的值來唯一地表示對應的記錄,我們把這個字段或字段的組合稱為主碼(也叫主鍵或關鍵字,下同)。 在關系表中,通常指定某個字段或字段的組合的值來唯一地

表中的每一行是一條記錄,記錄一位雇員的相關信息。 表中的每一行是一條記錄,記錄一位雇員的相關信息。1.4關系數據庫設計1.4.1實體、屬性、聯系

客觀存在并相互區別的事物稱為實體。一個人是一個實體,一個組織也可以看作為一個實體。在學校里,學校是一個實體,院系是一個實體,學生也是一個實體。1.4關系數據庫設計1.4.1實體、屬性、聯系

要描述一位學生,通常用他的學號、姓名和年齡等特征信息項來表示。 那么,學號、姓名和年齡就是學生的屬性,不同學生屬性不同。 要描述一位學生,通常用他的學號、姓名和年齡等特征信息

實體與實體之間往往存在關系,這種關系也叫作“聯系”。 實體與實體的聯系通常有3種:一對一(1∶1)關系、一對多(1∶M)關系和多對多(M∶N)關系。 實體與實體之間往往存在關系,這種關系也叫作“聯系”。

例如,學校與校長是一對一關系,一個學校只能有一個校長,一個校長只能屬于一個學校;單位與教師的關系是一對多關系,一個教師只能屬于一個單位,一個單位有多個教師;教師與課程的關系是多對多關系,一個教師可以講授多門課,一門課可以由多個教師講授。 例如,學校與校長是一對一關系,一個學校只能有一個校長 繪制E-R圖,可以用圖來更加直觀地描述實體和實體的聯系,這樣的圖叫作E-R圖(Entity-RelationshipApproach)。 繪制E-R圖,可以用圖來更加直觀地描述實體和實體的聯

一般情況下,用矩形表示實體,用橢圓表示實體的屬性,用菱形表示實體型之間的聯系,并用無向直線將其與相應的實體連接起來。 一般情況下,用矩形表示實體,用橢圓表示實體的屬性,用

在建立E-R圖時,特別是對于多個實體的比較復雜的E-R圖,可以首先設計局部E-R模式,然后把各局部E-R模式綜合成一個全局的E-R模式,最后對全局E-R模式進行優化,得到最終的E-R模式。 在建立E-R圖時,特別是對于多個實體的比較復雜的E-

例如,在XSGL數據庫中,有教師、課程、學生和院系4個實體。首先,繪制教師與課程的E-R圖,如圖1.2所示。 例如,在XSGL數據庫中,有教師、課程、學生和院系4圖1.2教師與課程的E-R圖圖1.2教師與課程的E-R圖

然后,繪制學生與課程的E-R圖,如圖1.3所示。 然后,繪制學生與課程的E-R圖,如圖1.3所示。圖1.3學生與課程的E-R圖圖1.3學生與課程的E-R圖

最后,繪制全局E-R圖,如圖1.4所示。 最后,繪制全局E-R圖,如圖1.4所示。圖1.4全局E-R圖圖1.4全局E-R圖1.4.2從E-R圖轉換為關系模式

一個關系數據庫由一組關系模式組成,一個關系由一組屬性名組成。上面的E-R圖可以轉換為如下的6個關系模式。1.4.2從E-R圖轉換為關系模式 一個關系數據庫 departments(單位編號,單位名稱,主任,電話)。

departments(單位編號,單位名稱,主任,電 teachers(教師編號,教師姓名,性別,職稱,來校時間,單位編號)。 teachers(教師編號,教師姓名,性別,職稱,來 students(學生編號,學生姓名,性別,出生日期,單位編號)。

course(課程編號,課程名你,學時,學分,單位編號)。 students(學生編號,學生姓名,性別,出生日期 selectcourse(學生編號,課程編號,成績)。

teach(教師編號,課程編號)。 selectcourse(學生編號,課程編號,成績)

在屬性下面加橫線表示主鍵。

關系模式不僅表示出了實體的數據結構關系,也反映了實體之間的邏輯關系,具體描述如下。 在屬性下面加橫線表示主鍵。

院系與教師是一對多的關系,把關系模式departments的主鍵(單位編號)加入到teachers的關系模式中,作為teachers的一個屬性,建立起院系與教師的聯系。

院系與教師是一對多的關系,把關系模式departme

學生與院系是一對多的關系,把關系模式departments的主鍵(單位編號加入到students的關系模式中,作為students的一個屬性,建立起院系與學生的聯系。 學生與院系是一對多的關系,把關系模式departme

院系與課程的關系是一對多的關系,把院系的主鍵單位編號加入到關系模式course中,作為course中一個屬性,建立起院系與課程的聯系。 院系與課程的關系是一對多的關系,把院系的主鍵單位編號

教師與課程是多對多的關系,要單獨對應一個關系模式,把關系模式teachers的主鍵和關系模式course主鍵一起加入到關系模式teach,作為teach的主鍵,建立起教師與課程的聯系。 教師與課程是多對多的關系,要單獨對應一個關系模式,把

學生與課程是多對多的關系,要單獨對應一個關系模式,把關系模式students的主鍵和關系模式course的主鍵一起加入到關系模式selectcourse,作為selectcourse的主鍵,建立起學生與課程的聯系。 學生與課程是多對多的關系,要單獨對應一個關系模式,把

根據設計好的關系模式,就可以創建數據表了。

根據設計好的關系模式,就可以創建數據表了。 按照上面的關系模式,可以創建departments、teachers、course、students、teach和selectcourse等6張表。 按照上面的關系模式,可以創建departments、1.4.3關系模式的規范化

構造數據庫必須遵循一定的規則。在關系數據庫中,這種規則就是范式。關系按其規范化程度從低到高可分為5級范式,分別稱為1NF、2NF、3NF(BCNF)、4NF和5NF。1.4.3關系模式的規范化 構造數據庫必須遵循一定

規范化程度較高者必是較低者的子集。滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎上進一步滿足更多要求的稱為第二范式(2NF),其余范式以此類推。 規范化程度較高者必是較低者的子集。滿足最低要求的范式

一般說來,數據庫只需滿足第三范式。下面,舉例介紹第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 一般說來,數據庫只需滿足第三范式。下面,舉例介紹第一1.第一范式(1NF)

所謂第一范式(1NF)是指數據庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。簡而言之,第一范式就是無重復的列。1.第一范式(1NF) 所謂第一范式(1NF)是指數據

例如,teachers(教師編號,教師姓名,性別,職稱),每一列都是不可分割的最小數據項。表的每一行包含一位教師的信息,滿足1NF。 例如,teachers(教師編號,教師姓名,性別,職

反之,假設有如下的關系模式:teachers(教師編號,教師姓名,性別,職稱,聯系方式),“聯系方式”并不是最小的數據項。 反之,假設有如下的關系模式:teachers(教師編

因此,該關系模式不符合1NF,可以把上面的關系模式改成。 因此,該關系模式不符合1NF,可以把上面的關系模式改 teachers(教師編號,教師姓名,性別,職稱,手機,家庭電話,辦公電話,QQ)。 teachers(教師編號,教師姓名,性別,職稱,手2.第二范式(2NF)

第二范式(2NF)是在第一范式(1NF)的基礎上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求如下。2.第二范式(2NF) 第二范式(2NF)是在第一范式

(1)表必須有一個主鍵,要求數據庫表中的每個記錄必須可以被唯一地區分。為實現區分通常需要為表加上一個列,以存儲各個記錄的唯一標識(即主碼)。 (1)表必須有一個主鍵,要求數據庫表中的每個記錄必須可以被

(2)實體的屬性完全依賴于主鍵,而不能只依賴于主鍵的一部分(有時主鍵是由多個列組成的復合主鍵)。如果存在,那么這個屬性和主鍵的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。 (2)實體的屬性完全依賴于主鍵,而不能只依賴于主鍵的一部分

例如,teachers(教師編號,教師姓名,性別,職稱)中的屬性“教師號”能唯一地標識教師。一個教師一個編號,編號是唯一的。 例如,teachers(教師編號,教師姓名,性別,職 因此,每個教師可以被唯一區分。其他非主鍵中的列“姓名”、“性別”、“職稱”也完全依賴于主鍵。滿足了第二范式。 因此,每個教師可以被唯一區分。其他非主鍵中的列“姓名”、

反之,如果想建立一個學生選修情況表,關系模式如下。 Selectcourse(學生號,課程號,課程名,學時,學分,成績)。 反之,如果想建立一個學生選修情況表,關系模式如下。

在這個關系中,選擇“學生號”和“課程號”作為復合主鍵。 在這個關系中,選擇“學生號”和“課程號”作為復合主鍵

一個學生一門課只能有一個成績,“成績”是完全依賴于主鍵(學生號,課程號)。 一個學生一門課只能有一個成績,“成績”是完全依賴于主

然而,課程名、學時、學分只能依賴于課程號(主鍵的一部分),這樣的關系模式不符合2NF。 然而,課程名、學時、學分只能依賴于課程號(主鍵的一部

在實際應用中,使用這樣的關系模式會出現以下問題。

(1)插入異常。

(2)數據冗余。

(3)更新異常。

(4)刪除異常。 在實際應用中,使用這樣的關系模式會出現以下問題。

所以,Selectcourse表不符合2NF,應該把它進行拆分,將課程號、課程名、學時、學分從原關系中分離出來形成一個新的實體course,以解決數據冗余、更新、插入和刪除的問題。新的關系模式如下。 所以,Selectcourse表不符合2NF,應該把 course(課程號,課程名,學時,學分)。

selectcourse(學生號,課程號,成績)。 course(課程號,課程名,學時,學分)。3.第三范式(3NF)

滿足第三范式(3NF)必須先滿足第二范式(2NF),并且,要消除傳遞函數依賴。3.第三范式(3NF) 滿足第三范式(3NF)必須先滿

數據表中如果不存在非關鍵字段對任一候選關鍵字段的傳遞函數依賴,則符合第三范式。 數據表中如果不存在非關鍵字段對任一候選關鍵字段的傳遞

所謂傳遞函數依賴,指的是如果存在“A→B→C”的決定關系,則C傳遞函數依賴于A。因此,滿足第三范式的數據庫表應該不存在如下依賴關系:

關鍵字段→非關鍵字段x→非關鍵字段y。 所謂傳遞函數依賴,指的是如果存在“A→B→C

例如,teachers(教師號,姓名,性別,系別,系名,系主任,院系電話)。

例如,teachers(教師號,姓名,性別,系別,系

在這一關系中,關鍵字教師號決定各個屬性,是主關鍵字。由于是單個關鍵字,沒有部分依賴的問題,肯定是2NF。但是這樣的關系模式存在一個問題,關系中存在傳遞依賴。 在這一關系中,關鍵字教師號決定各個屬性,是主關鍵字。 (教師號)→(系別)→(系名,系主任,院系電話)。 (教師號)→(系別)→(系名,系主任,院系電話)。

即非主關鍵字段(系名、系主任、院系電話)函數依賴于候選關鍵字段(系別),并傳遞函數依賴于主碼(教師)。 即非主關鍵字段(系名、系主任、院系電話)函數依賴于候

在實際應用中,這會造成系別、系名、系主任、院系電話等信息將重復存儲,會有大量的數據冗余,就如圖1.5所示的數據表。 在實際應用中,這會造成系別、系名、系主任、院系電話等

同時,也會存在更新異常、插入異常和刪除異常的情況。因此,可以把原關系模式分拆為兩個,如下。 同時,也會存在更新異常、插入異常和刪除異常的情況。因 teachers(教師號,姓名,性別,系別)。 departments(系別,系名,系主任,院系電話)。 teachers(教師號,姓名,性別,系別)。

新關系包括兩個關系模式,它們之間通過teachers中的外鍵(系別)進行聯系,需要時再進行自然聯接,恢復了原來的關系。 新關系包括兩個關系模式,它們之間通過teachers

同理,圖1.5所示的數據表也可以分拆為兩個。 同理,圖1.5所示的數據表也可以分拆為兩個。 Students(s_no,s_name,sex,birthday,address,d_ID) Departments(d_ID,d_name,project) Students(s_no,s_name,sex,b4.第二范式(2NF)和第三范式(3NF)的區別

第二范式(2NF)和第三范式(3NF)的概念很容易混淆,區分它們的關鍵點如下。

(1)2NF:非主鍵列是否完全依賴于主鍵,還是依賴于主鍵的一部分。4.第二范式(2NF)和第三范式(3NF)的區別 第二

(2)3NF:非主鍵列是直接依賴于主鍵,還是直接依賴于非主鍵列。 (2)3NF:非主鍵列是直接依賴于主鍵,還是直接依賴于非主1.5數據庫應用系統體系結構

目前,常用的以數據庫為核心構成的應用系統多數采用了以下兩種結構模式:客戶機/服務器(Client/Server,C/S)模式和三層客戶機/服務器(Browser/Server,B/S)模式。1.5數據庫應用系統體系結構 目前,常用的以數據庫1.5.1認識C/S模式數據庫 C/S(Client/Server或客戶機/服務器模式)結構,即大家熟知的客戶機/服務器結構。1.5.1認識C/S模式數據庫 C/S(Clien Client和Server常常分別處在相距很遠的兩臺計算機上,Client程序的任務是將用戶的要求提交給Server程序,再將Server程序返回的結果以特定的形式顯示給用戶;Server程序的任務是接收客戶程序提出的服務請求,進行相應的處理,再將結果返回給客戶程序。 Client和Server常常分別處在相距很遠的兩臺 C/S模式數據庫應用系統的開發工具通常是VisualBasic(VB)、VisualC#、VisualC++/NET、Delphi、PowerBuilder(PB)等。 C/S模式數據庫應用系統的開發工具通常是Visual

圖1.6是三層C/S模式應用系統結構圖。 圖1.6是三層C/S模式應用系統結構圖。圖1.6三層C/S模式應用系統圖1.6三層C/S模式應用系統1.5.2認識B/S模式數據庫

隨著Internet和WWW的流行,以往的主機/終端和C/S結構都無法滿足當前的全球網絡開放、互連、信息隨處可見和信息共享的新要求,于是就出現了B/S模式。如圖1.7所示。1.5.2認識B/S模式數據庫 隨著Intern圖1.7B/S模式應用系統圖1.7B/S模式應用系統 B/S(Browser/Server結構)模式數據庫是采用三層客戶機/服務器模式,即瀏覽器和服務器結構。 B/S(Browser/Server結構)模式數據庫

用戶工作界面是通過WWW瀏覽器來實現,主要事務邏輯在服務器端(Server)實現,第一層是瀏覽器,第二層是Web服務器,第三層是數據庫服務器。 用戶工作界面是通過WWW瀏覽器來實現,主要事務邏輯在

這種結構的核心是Web服務器,它負責接收遠程(或本地)的HTTP(超文本傳送協議)數據請求,然后根據查詢條件到數據庫服務器獲取相關的數據,并把結果翻譯成HTML(超文本置標語言)文檔傳送給提出請求的瀏覽器。 這種結構的核心是Web服務器,它負責接收遠程(或本地

在三層結構中,數據庫服務器完成所有的數據操作,Web服務器則負責接收請求,然后到數據庫服務器中進行數據處理,然后再對客戶機給予答復。 在三層結構中,數據庫服務器完成所有的數據操作,Web1.6認識一個真實的關系型數據庫

例如,YSGL數據庫系統采用B/S結構,主要針對企業員工的信息和工資進行集中的管理,為企業建立一個較為完美的員工信息數據庫。1.6認識一個真實的關系型數據庫 例如,YSGL數

它以WAMP作為開發平臺,用PHP設計操作界面和編寫程序完成數據錄入、修改、存儲、調用和查詢等功能,使用MySQL進行數據庫操作和管理。 它以WAMP作為開發平臺,用PHP設計操作界面和編寫

本數據庫管理系統有User、Employees、Departments和Salary等4張數據表。 User是用戶表,記錄用戶編號、用戶名和密碼等信息。 本數據庫管理系統有User、Employees、De Employees是員工表,記錄員工編號、員工姓名、性別、職稱、政治面貌、學歷、出生日期、婚姻狀態、參加工作時間和是否編內人員等信息。

Employees是員工表,記錄員工編號、員工姓名、 Departments表存儲部門數據信息,Salary表存儲員工工資數據。 Departments表存儲部門數據信息,Salar

每張表設置相應的主碼,以保證數據記錄的唯一性。并在相關表設置外鍵,表與表之間通過外鍵關聯,進行數據約束,以保證數據的一致性。 每張表設置相應的主碼,以保證數據記錄的唯一性。并在相

例如,Employees表通過外鍵D_ID字段與Departments關聯,Salary表通過外鍵E_ID字段與Employees表關聯。

YSGL數據庫的每一張表的結構如表1.1~1.4所示。 例如,Employees表通過外鍵D_ID字段與De表格1.1User表表格1.1User表表格1.2Employees表表格1.2Employees表續表續表表格1.3Departments表表格1.3Departments表表格1.4Salary表表格1.4Salary表【項目實踐】

(1)某單位要編寫一個人事管理系統,已知該單位有若干部門,每個部門有若干員工。試繪制出E-R圖,并把E-R圖轉換為關系模式,指出每個實體的屬性、主碼(用橫線標識)和外碼(用波浪線標識)。【項目實踐】 (1)某單位要編寫一個人事管理系統,已知該單位

(2)學校有一車隊,車隊有幾個分隊,車隊中有車輛和司機。車隊與司機之間存在聘用關系,每個車隊可以聘用多名司機,但每個司機只能在一個車隊工作。司機與車輛有使用權,每個司機可以使用多輛車輛,每輛車可被多個司機使用。 (2)學校有一車隊,車隊有幾個分隊,車隊中有車輛和司機。車

要求:

①畫出E-R圖并在圖上注明屬性、聯系類型。

②將E-R圖轉換為關系模式,并說明主碼(用橫線標識)和外碼(用波浪線標識)。 要求:任務1認識數據庫【任務背景】 學習數據庫,一般都要先從數據庫基本原理開始學起。任務1認識數據庫【任務背景】

對于初學者,往往會感覺原理部分特別的枯燥乏味,面對很多抽象難懂的概念和理論知識,如數據模型、實體、屬性、聯系、E-R圖、關系模式和數據建模等,顯得很無奈。 對于初學者,往往會感覺原理部分特別的枯燥乏味,面對很

但是,這些內容恰恰又是數據庫開發人員必須具備的基本知識。那么,該如何組織好教學內容?怎樣組織教學?怎樣才能使講授變得通俗易懂?該如何培養學生對課程學習的興趣?帶著很多的問題和期盼,讓我們一起努力,走進數據庫的世界去探究吧! 但是,這些內容恰恰又是數據庫開發人員必須具備的基本知【任務要求】

本任務直接從數據庫的基本應用開始,讓學生感受一下身邊的數據庫應用。【任務要求】 本任務直接從數據庫的基本應用開始,讓學生

在具體的學習情景中,讓學生了解數據庫的基本概念;認識關系模型和關系型數據庫;認識實體和屬性;認識C/S、B/S模式架構;學習數據庫的概念結構設計和邏輯設計方法。 在具體的學習情景中,讓學生了解數據庫的基本概念;認識

學習關系模式的規范化;繪制E-R圖,建立數據庫概念模型;將E-R圖轉換成關系模式進行數據模型的建立。 學習關系模式的規范化;繪制E-R圖,建立數據庫概念模1.1了解數據庫的基本應用 據庫管理系統應用非常廣泛,可以說應用在各行各業。主要表現在下面6個方面:多媒體數據庫、移動數據庫、空間數據庫、信息檢索系統、分布式信息檢索和專家決策系統。1.1了解數據庫的基本應用 據庫管理系統應用非常

下面介紹幾種數據庫管理系統在實際應用中的案例。 1.留言板。 2.進銷存管理系統。 3.ERP系統。 4.圖書管理系統。 下面介紹幾種數據庫管理系統在實際應用中的案例。1.2了解數據庫的幾個概念1.數據(Data)

數據實際上就是描述事物的符號記錄。1.2了解數據庫的幾個概念1.數據(Data)2.數據庫(DataBase,簡稱DB)

數據庫是長期儲存在計算機內的、有組織的、可共享的數據集合。數據庫中的數據按一定的數據模型組織、描述和儲存,具有較小的冗余度、較高的數據獨立性和易擴展性,并可為各種用戶共享。2.數據庫(DataBase,簡稱DB) 數據庫3.數據庫管理系統(DBMS)

數據庫管理系統是一個負責對數據庫進行數據組織、數據操縱、維護、控制以及數據保護和數據服務等的軟件系統,是數據庫的核心。3.數據庫管理系統(DBMS) 數據庫管理系統是一個負

能夠讓用戶定義、創建和維護數據庫以及控制對數據的訪問。它對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。用戶通過DBMS訪問數據庫中的數據,數據庫管理員也通過DBMS進行數據庫的維護工作。 能夠讓用戶定義、創建和維護數據庫以及控制對數據的訪問

數據庫管理系統的主要功能如下。

(1)數據模式定義:即為數據庫構建其數據框架。

(2)數據存取的物理構建:為數據模式的物理存取與構建提供有效的存取方法與手段。 數據庫管理系統的主要功能如下。

(3)數據操縱:為用戶使用數據庫的數據提供方便,如查詢、插入、修改、刪除等以及簡單的算術運算及統計。

(4)數據的完整性、安全性定義與檢查。 (3)數據操縱:為用戶使用數據庫的數據提供方便,如查詢、插

(5)數據庫的并發控制與故障恢復。

(6)數據的服務:如拷貝、轉存、重組、性能監測和分析等。 (5)數據庫的并發控制與故障恢復。

數據庫管理系統一般要提供以下的數據語言。

(1)數據定義語言:負責數據的模式定義與數據的物理存取構建。

數據庫管理系統一般要提供以下的數據語言。

(2)數據操縱語言:負責數據的操縱,如數據查詢與增、刪、改數據等。

(3)數據控制語言:負責數據完整性、安全性的定義與檢查以及并發控制、故障恢復等。 (2)數據操縱語言:負責數據的操縱,如數據查詢與增、刪、改

常用的數據庫管理系統有MySQL、MSSQLServer、Oracle、DB2、Accesst和Sybase等。 常用的數據庫管理系統有MySQL、MSSQLSe MySQL是一個小型關系型數據庫管理系統,最初由MySQLAB公司開發與發布,后來被sun公司收購,從2009年開始,MySQL又成為了Oracle公司旗下的另一個數據庫項目。MySQL被廣泛地應用在Internet上的中、小型網站中。本書講述的是最新版本MySQL5.5。 MySQL是一個小型關系型數據庫管理系統,最初由My1.3認識關系型數據庫1.認識數據模型

數據模型由3部分組成,即模型結構、數據操作和完整性規則。DBMS所支持的數據模型分為三種:層次模型、網狀模型、關系模型。1.3認識關系型數據庫1.認識數據模型

用樹形結構表示實體及其之間的聯系的模型稱為層次模型。該模型的實際存儲數據由鏈接指針來體現聯系。特點:有且僅有一個結點無父結點,此結點即為根結點;其他結點有且僅有一個父結點。適合用來表示一對多的聯系。 用樹形結構表示實體及其之間的聯系的模型稱為層次模型。

用網狀結構表示實體及其之間的聯系的模型稱為網狀模型。允許結點有多于一個的父結點,可以有一個以上的結點無父結點。適合用于表示多對多的聯系。 用網狀結構表示實體及其之間的聯系的模型稱為網狀模型。

層次模型和網狀模型本質上都是一樣的。存在的缺陷:難以實現系統擴充,插入或刪除數據時,涉及大量鏈接指針的調整。 層次模型和網狀模型本質上都是一樣的。存在的缺陷:難以

在關系模型中,一個關系就是一張二維表,通常將一個沒有重復行、重復列的二維表看成一個關系,每個關系都有一個關系名。 在關系模型中,一個關系就是一張二維表,通常將一個沒有

二維表的每一行在關系中稱為元組(記錄)

,二維表的每一列在關系中稱為屬性(字段),每個屬性都有一個屬性名,屬性值則是各元組屬性的取值。 二維表的每一行在關系中稱為元組(記錄)

,二維表的每2.認識關系數據庫

關系數據庫是創建在關系模型基礎上的數據庫。關系數據庫是以二維表來存儲數據庫的數據的。2.認識關系數據庫 關系數據庫是創建在關系模型基礎上的1.1EMPLOYEES表數據1.1EMPLOYEES表數據

系模式是對關系的描述,主要描述關系由哪些屬性構成,即描述了表的結構。關系模式的格式為:關系表名(字段1,字段2,字段3,…,字段n)。因此,EMPLOYEES表的關系模式可以表示為。 系模式是對關系的描述,主要描述關系由哪些屬性構成,即 EMPLOYEES(E_ID,E_name,sex,Professional,education,Political,birth,marry,Gz_time,D_id,bz) EMPLOYEES(E_ID,E_name,sex,

在關系表中,通常指定某個字段或字段的組合的值來唯一地表示對應的記錄,我們把這個字段或字段的組合稱為主碼(也叫主鍵或關鍵字,下同)。 在關系表中,通常指定某個字段或字段的組合的值來唯一地

表中的每一行是一條記錄,記錄一位雇員的相關信息。 表中的每一行是一條記錄,記錄一位雇員的相關信息。1.4關系數據庫設計1.4.1實體、屬性、聯系

客觀存在并相互區別的事物稱為實體。一個人是一個實體,一個組織也可以看作為一個實體。在學校里,學校是一個實體,院系是一個實體,學生也是一個實體。1.4關系數據庫設計1.4.1實體、屬性、聯系

要描述一位學生,通常用他的學號、姓名和年齡等特征信息項來表示。 那么,學號、姓名和年齡就是學生的屬性,不同學生屬性不同。 要描述一位學生,通常用他的學號、姓名和年齡等特征信息

實體與實體之間往往存在關系,這種關系也叫作“聯系”。 實體與實體的聯系通常有3種:一對一(1∶1)關系、一對多(1∶M)關系和多對多(M∶N)關系。 實體與實體之間往往存在關系,這種關系也叫作“聯系”。

例如,學校與校長是一對一關系,一個學校只能有一個校長,一個校長只能屬于一個學校;單位與教師的關系是一對多關系,一個教師只能屬于一個單位,一個單位有多個教師;教師與課程的關系是多對多關系,一個教師可以講授多門課,一門課可以由多個教師講授。 例如,學校與校長是一對一關系,一個學校只能有一個校長 繪制E-R圖,可以用圖來更加直觀地描述實體和實體的聯系,這樣的圖叫作E-R圖(Entity-RelationshipApproach)。 繪制E-R圖,可以用圖來更加直觀地描述實體和實體的聯

一般情況下,用矩形表示實體,用橢圓表示實體的屬性,用菱形表示實體型之間的聯系,并用無向直線將其與相應的實體連接起來。 一般情況下,用矩形表示實體,用橢圓表示實體的屬性,用

在建立E-R圖時,特別是對于多個實體的比較復雜的E-R圖,可以首先設計局部E-R模式,然后把各局部E-R模式綜合成一個全局的E-R模式,最后對全局E-R模式進行優化,得到最終的E-R模式。 在建立E-R圖時,特別是對于多個實體的比較復雜的E-

例如,在XSGL數據庫中,有教師、課程、學生和院系4個實體。首先,繪制教師與課程的E-R圖,如圖1.2所示。 例如,在XSGL數據庫中,有教師、課程、學生和院系4圖1.2教師與課程的E-R圖圖1.2教師與課程的E-R圖

然后,繪制學生與課程的E-R圖,如圖1.3所示。 然后,繪制學生與課程的E-R圖,如圖1.3所示。圖1.3學生與課程的E-R圖圖1.3學生與課程的E-R圖

最后,繪制全局E-R圖,如圖1.4所示。 最后,繪制全局E-R圖,如圖1.4所示。圖1.4全局E-R圖圖1.4全局E-R圖1.4.2從E-R圖轉換為關系模式

一個關系數據庫由一組關系模式組成,一個關系由一組屬性名組成。上面的E-R圖可以轉換為如下的6個關系模式。1.4.2從E-R圖轉換為關系模式 一個關系數據庫 departments(單位編號,單位名稱,主任,電話)。

departments(單位編號,單位名稱,主任,電 teachers(教師編號,教師姓名,性別,職稱,來校時間,單位編號)。 teachers(教師編號,教師姓名,性別,職稱,來 students(學生編號,學生姓名,性別,出生日期,單位編號)。

course(課程編號,課程名你,學時,學分,單位編號)。 students(學生編號,學生姓名,性別,出生日期 selectcourse(學生編號,課程編號,成績)。

teach(教師編號,課程編號)。 selectcourse(學生編號,課程編號,成績)

在屬性下面加橫線表示主鍵。

關系模式不僅表示出了實體的數據結構關系,也反映了實體之間的邏輯關系,具體描述如下。 在屬性下面加橫線表示主鍵。

院系與教師是一對多的關系,把關系模式departments的主鍵(單位編號)加入到teachers的關系模式中,作為teachers的一個屬性,建立起院系與教師的聯系。

院系與教師是一對多的關系,把關系模式departme

學生與院系是一對多的關系,把關系模式departments的主鍵(單位編號加入到students的關系模式中,作為students的一個屬性,建立起院系與學生的聯系。 學生與院系是一對多的關系,把關系模式departme

院系與課程的關系是一對多的關系,把院系的主鍵單位編號加入到關系模式course中,作為course中一個屬性,建立起院系與課程的聯系。 院系與課程的關系是一對多的關系,把院系的主鍵單位編號

教師與課程是多對多的關系,要單獨對應一個關系模式,把關系模式teachers的主鍵和關系模式course主鍵一起加入到關系模式teach,作為teach的主鍵,建立起教師與課程的聯系。 教師與課程是多對多的關系,要單獨對應一個關系模式,把

學生與課程是多對多的關系,要單獨對應一個關系模式,把關系模式students的主鍵和關系模式course的主鍵一起加入到關系模式selectcourse,作為selectcourse的主鍵,建立起學生與課程的聯系。 學生與課程是多對多的關系,要單獨對應一個關系模式,把

根據設計好的關系模式,就可以創建數據表了。

根據設計好的關系模式,就可以創建數據表了。 按照上面的關系模式,可以創建departments、teachers、course、students、teach和selectcourse等6張表。 按照上面的關系模式,可以創建departments、1.4.3關系模式的規范化

構造數據庫必須遵循一定的規則。在關系數據庫中,這種規則就是范式。關系按其規范化程度從低到高可分為5級范式,分別稱為1NF、2NF、3NF(BCNF)、4NF和5NF。1.4.3關系模式的規范化 構造數據庫必須遵循一定

規范化程度較高者必是較低者的子集。滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎上進一步滿足更多要求的稱為第二范式(2NF),其余范式以此類推。 規范化程度較高者必是較低者的子集。滿足最低要求的范式

一般說來,數據庫只需滿足第三范式。下面,舉例介紹第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 一般說來,數據庫只需滿足第三范式。下面,舉例介紹第一1.第一范式(1NF)

所謂第一范式(1NF)是指數據庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。簡而言之,第一范式就是無重復的列。1.第一范式(1NF) 所謂第一范式(1NF)是指數據

例如,teachers(教師編號,教師姓名,性別,職稱),每一列都是不可分割的最小數據項。表的每一行包含一位教師的信息,滿足1NF。 例如,teachers(教師編號,教師姓名,性別,職

反之,假設有如下的關系模式:teachers(教師編號,教師姓名,性別,職稱,聯系方式),“聯系方式”并不是最小的數據項。 反之,假設有如下的關系模式:teachers(教師編

因此,該關系模式不符合1NF,可以把上面的關系模式改成。 因此,該關系模式不符合1NF,可以把上面的關系模式改 teachers(教師編號,教師姓名,性別,職稱,手機,家庭電話,辦公電話,QQ)。 teachers(教師編號,教師姓名,性別,職稱,手2.第二范式(2NF)

第二范式(2NF)是在第一范式(1NF)的基礎上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求如下。2.第二范式(2NF) 第二范式(2NF)是在第一范式

(1)表必須有一個主鍵,要求數據庫表中的每個記錄必須可以被唯一地區分。為實現區分通常需要為表加上一個列,以存儲各個記錄的唯一標識(即主碼)。 (1)表必須有一個主鍵,要求數據庫表中的每個記錄必須可以被

(2)實體的屬性完全依賴于主鍵,而不能只依賴于主鍵的一部分(有時主鍵是由多個列組成的復合主鍵)。如果存在,那么這個屬性和主鍵的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。 (2)實體的屬性完全依賴于主鍵,而不能只依賴于主鍵的一部分

例如,teachers(教師編號,教師姓名,性別,職稱)中的屬性“教師號”能唯一地標識教師。一個教師一個編號,編號是唯一的。 例如,teachers(教師編號,教師姓名,性別,職 因此,每個教師可以被唯一區分。其他非主鍵中的列“姓名”、“性別”、“職稱”也完全依賴于主鍵。滿足了第二范式。 因此,每個教師可以被唯一區分。其他非主鍵中的列“姓名”、

反之,如果想建立一個學生選修情況表,關系模式如下。 Selectcourse(學生號,課程號,課程名,學時,學分,成績)。 反之,如果想建立一個學生選修情況表,關系模式如下。

在這個關系中,選擇“學生號”和“課程號”作為復合主鍵。 在這個關系中,選擇“學生號”和“課程號”作為復合主鍵

一個學生一門課只能有一個成績,“成績”是完全依賴于主鍵(學生號,課程號)。 一個學生一門課只能有一個成績,“成績”是完全依賴于主

然而,課程名、學時、學分只能依賴于課程號(主鍵的一部分),這樣的關系模式不符合2NF。 然而,課程名、學時、學分只能依賴于課程號(主鍵的一部

在實際應用中,使用這樣的關系模式會出現以下問題。

(1)插入異常。

(2)數據冗余。

(3)更新異常。

(4)刪除異常。 在實際應用中,使用這樣的關系模式會出現以下問題。

所以,Selectcourse表不符合2NF,應該把它進行拆分,將課程號、課程名、學時、學分從原關系中分離出來形成一個新的實體course,以解決數據冗余、更新、插入和刪除的問題。新的關系模式如下。 所以,Selectcourse表不符合2NF,應該把 course(課程號,課程名,學時,學分)。

selectcourse(學生號,課程號,成績)。 course(課程號,課程名,學時,學分)。3.第三范式(3NF)

滿足第三范式(3NF)必須先滿足第二范式(2NF),并且,要消除傳遞函數依賴。3.第三范式(3NF) 滿足第三范式(3NF)必須先滿

數據表中如果不存在非關鍵字段對任一候選關鍵字段的傳遞函數依賴,則符合第三范式。 數據表中如果不存在非關鍵字段對任一候選關鍵字段的傳遞

所謂傳遞函數依賴,指的是如果存在“A→B→C”的決定關系,則C傳遞函數依賴于A。因此,滿足第三范式的數據庫表應該不存在如下依賴關系:

關鍵字段→非關鍵字段x→非關鍵字段y。 所謂傳遞函數依賴,指的是如果存在“A→B→C

例如,teachers(教師號,姓名,性別,系別,系名,系主任,院系電話)。

例如,teachers(教師號,姓名,性別,系別,系

在這一關系中,關鍵字教師號決定各個屬性,是主關鍵字。由于是單個關鍵字,沒有部分依賴的問題,肯定是2NF。但是這樣的關系模式存在一個問題,關系中存在傳遞依賴。 在這一關系中,關鍵字教師號決定各個屬性,是主關鍵字。 (教師號)→(系別)→(系名,系主任,院系電話)。 (教師號)→(系別)→(系名,系主任,院系電話)。

即非主關鍵字段(系名、系主任、院系電話)函數依賴于候選關鍵字段(系別),并傳遞函數依賴于主碼(教師)。 即非主關鍵字段(系名、系主任、院系電話)函數依賴于候

在實際應用中,這會造成系別、系名、系主任、院系電話等信息將重復存儲,會有大量的數據冗余,就如圖1.5所示的數據表。 在實際應用中,這會造成系別、系名、系主任、院系電話等

同時,也會存在更新異常、插入異常和刪除異常的情況。因此,可以把原關系模式分拆為兩個,如下。 同時,也會存在更新異常、插入異常和刪除異常的情況。因 teachers(教師號,姓名,性別,系別)。 departments(系別,系名,系主任,院系電話)。 teachers(教師號,姓名,性別,系別)。

新關系包括兩個關系模式,它們之間通過teachers中的外鍵(系別)進行聯系,需要時再進行自然聯接,恢復了原來的關系。 新關系包括兩個關系模式,它們之間通過teachers

同理,圖1.5所示的數據表也可以分拆為兩個。 同理,圖1.5所示的數據表也可以分拆為兩個。 Students(s_no,s_name,sex,birthday,address,d_ID) Departments(d_ID,d_name,project) Students(s_no,s_name,sex,b4.第二范式(2NF)和第三范式(3NF)的區別

第二范式(2NF)和第三范式(3NF)的概念很容易混淆,區分它們的關鍵點如下。

(1)2NF:非主鍵列是否完全依賴于主鍵,還是依賴于主鍵的一部分。4.第二范式(2NF)和第三范式(3NF)的區別 第二

(2)3NF:非主鍵列是直接依賴于主鍵,還是直接依賴于非主鍵列。 (2)3NF:非主鍵列是直接依賴于主鍵,還是直接依賴于非主1.5數據庫應用系統體系結構

目前,常用的以數據庫為核心構成的應用系統多數采用了以下兩種結構模式:客戶機/服務器(Client/Server,C/S)模式和三層客戶機/服務器(Browser/Server,B/S)模式。1.5數據庫應用系統體系結構 目前,常用的以數據庫1.5.1認識C/S模式數據庫 C/S(Client/Server或客戶機

溫馨提示

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

評論

0/150

提交評論