MySQL數(shù)據(jù)庫項目化教程(第2版)(微課版)課件 項目一 數(shù)據(jù)庫設(shè)計_第1頁
MySQL數(shù)據(jù)庫項目化教程(第2版)(微課版)課件 項目一 數(shù)據(jù)庫設(shè)計_第2頁
MySQL數(shù)據(jù)庫項目化教程(第2版)(微課版)課件 項目一 數(shù)據(jù)庫設(shè)計_第3頁
MySQL數(shù)據(jù)庫項目化教程(第2版)(微課版)課件 項目一 數(shù)據(jù)庫設(shè)計_第4頁
MySQL數(shù)據(jù)庫項目化教程(第2版)(微課版)課件 項目一 數(shù)據(jù)庫設(shè)計_第5頁
已閱讀5頁,還剩106頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

MySQL數(shù)據(jù)庫項目化教程微課版V2項目一數(shù)據(jù)庫的設(shè)計項目任務(wù)知識目標(biāo)學(xué)習(xí)目標(biāo)任務(wù)1:技能競賽管理系統(tǒng)數(shù)據(jù)庫需求分析任務(wù)2:技能競賽數(shù)據(jù)庫ER模型設(shè)計任務(wù)3:使用MySQLWorkBench設(shè)計技能競賽數(shù)據(jù)庫(1)了解數(shù)據(jù)庫基本概念、基本理論知識(2)掌握數(shù)據(jù)庫設(shè)計方法(3)學(xué)會用工具軟件設(shè)計ER圖(4)數(shù)據(jù)庫的概念設(shè)計能力目標(biāo)素質(zhì)目標(biāo)學(xué)習(xí)目標(biāo)(1)使用工具軟件設(shè)計繪制ER圖的能力(2)具有關(guān)系型數(shù)據(jù)庫分析能力(3)具有數(shù)據(jù)庫邏輯設(shè)計能力(4)具有數(shù)據(jù)庫管理員管理數(shù)據(jù)庫能力(1)培養(yǎng)學(xué)生解決實際問題的獨立思考的素養(yǎng)(2)培養(yǎng)學(xué)生有團隊協(xié)作精神(3)培養(yǎng)學(xué)生思考分析解決問題的思維習(xí)慣(4)培養(yǎng)學(xué)生良好的心理素質(zhì)(5)培養(yǎng)學(xué)生具有數(shù)據(jù)庫設(shè)計人員職業(yè)素養(yǎng)課程思政(素養(yǎng)提示)學(xué)習(xí)目標(biāo)(1)了解操作系統(tǒng)等基礎(chǔ)設(shè)施軟件的國產(chǎn)化,理解基礎(chǔ)設(shè)施軟件的自主可控對我國的重大意義(2)數(shù)據(jù)庫設(shè)計的需要在需求雙方的共同溝通下完成,理解溝通與協(xié)作在數(shù)據(jù)庫設(shè)計階段的重要性,培養(yǎng)團隊協(xié)助能力知識導(dǎo)圖學(xué)習(xí)目標(biāo)任務(wù)分析任務(wù)完成任務(wù)描述Part

2Part

3Part

1任務(wù)一 技能競賽管理系統(tǒng)數(shù)據(jù)庫需求分析過渡頁任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述本次任務(wù)是依據(jù)技能競賽管理系統(tǒng)項目來分析其需求情況,依據(jù)需求情況來分析其數(shù)據(jù)庫設(shè)計任務(wù),為技能競賽管理系統(tǒng)設(shè)計一套合理易用的數(shù)據(jù)庫。任務(wù)描述過渡頁任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述數(shù)據(jù)庫(Database,DB)是按照一定的數(shù)據(jù)結(jié)構(gòu)對數(shù)據(jù)進行組織、存儲和管理的容器,存儲和管理數(shù)據(jù)的倉庫。數(shù)據(jù)庫里存儲著數(shù)據(jù)庫的對象,如數(shù)據(jù)表、索引、視圖、存儲過程、函數(shù)、觸發(fā)器、事件等。數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是一個安裝在操作系統(tǒng)之上的用來管理、控制數(shù)據(jù)庫中各種數(shù)據(jù)庫對象的系統(tǒng)。任務(wù)分析12DBMS與DB的關(guān)系任務(wù)分析13數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)任務(wù)分析14任務(wù)分析數(shù)據(jù)模型是對現(xiàn)實世界中的事物相應(yīng)的特征進行抽象,并對相關(guān)的數(shù)據(jù)進行邏輯描述,為后續(xù)數(shù)據(jù)庫的設(shè)計提供參考。從應(yīng)用的角度看,可以將數(shù)據(jù)模型分為三種類型:概念模型、邏輯模型和物理模型,這三種模型分別代表了在數(shù)據(jù)庫設(shè)計的中的三個階段。15任務(wù)分析概念模型是在需求分析人員了解清楚用戶的需求后,通過分析、總結(jié)和提煉,最終定義出來的一系列需求概念。讓數(shù)據(jù)庫設(shè)計人員準(zhǔn)確的理解用戶的具體業(yè)務(wù)流程,以及這個流程中所涉及的名詞的作用及范圍。16任務(wù)分析E-R圖是比較典型的概念模型的表達形式,它剛好能夠滿足設(shè)計人員的需求:簡潔而又清晰,能有效的反映業(yè)務(wù)中的各個概念及概念之間的業(yè)務(wù)關(guān)系,又能反映業(yè)務(wù)關(guān)系中所涉及的相關(guān)數(shù)據(jù)。17任務(wù)分析從數(shù)據(jù)庫管理系統(tǒng)的角度看,邏輯模型是對概念模型進行具體化后的一個新階段。邏輯模型設(shè)計的關(guān)鍵是根據(jù)前述設(shè)計的概念模型,進行規(guī)劃和設(shè)計各項數(shù)據(jù)的組織結(jié)構(gòu),形成數(shù)據(jù)庫的設(shè)計文檔,為后續(xù)數(shù)據(jù)庫管理系統(tǒng)中實現(xiàn)物理模型提供文檔形式的標(biāo)準(zhǔn)參考依據(jù)。建立數(shù)據(jù)庫的邏輯模型,實際上就是根據(jù)現(xiàn)有的概念模型,進行規(guī)劃、設(shè)計出相應(yīng)數(shù)據(jù)庫設(shè)計文檔,形成一套完整的“數(shù)據(jù)表”。這些表的集合,對具體的字段名稱、字段含義,數(shù)據(jù)類型以及約束條件等進行了詳細的定義。18任務(wù)分析物理模型可以理解為對數(shù)據(jù)的最底層抽象,它與具體的數(shù)據(jù)庫系統(tǒng)直接相關(guān),也和數(shù)據(jù)庫系統(tǒng)使用的操作系統(tǒng)和軟硬件環(huán)境相關(guān)。從具體的實施角度看,就是根據(jù)上述的邏輯模型,綜合考慮數(shù)據(jù)庫管理系統(tǒng)的類型、操作系統(tǒng)環(huán)境、存儲空間的讀寫性能以及數(shù)據(jù)庫的擴展方案和優(yōu)化方案等多方面的因素,結(jié)合實際運行條件,在實際的計算機環(huán)境中,將數(shù)據(jù)庫最終實現(xiàn)。用戶不是直接通過操作系統(tǒng)來存取數(shù)據(jù)庫中的數(shù)據(jù),而是需要通過數(shù)據(jù)庫管理系統(tǒng)來調(diào)用操作系統(tǒng)的進程來管理、控制數(shù)據(jù)庫對象。關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RelationalDataBaseManagementSystem,RDBMS),關(guān)系模型是數(shù)據(jù)庫管理系統(tǒng)的一種模型,是較常用的數(shù)據(jù)庫管理系統(tǒng)模型,數(shù)據(jù)庫模型除常用的關(guān)系模型外還有層次模型、網(wǎng)狀模型、面向?qū)ο竽P偷饶J健H蝿?wù)分析關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RelationalDatabaseManagementSystem)的特點:數(shù)據(jù)存儲以數(shù)據(jù)表的形式進行存放在數(shù)據(jù)庫中;數(shù)據(jù)表中的每一行稱為記錄,是記錄一個個體的相關(guān)屬性;數(shù)居表中的每一列稱為屬性,是一條記錄中記錄個體的某一屬性;一個數(shù)據(jù)表是由許多的行和列組成的,構(gòu)成數(shù)據(jù)表,一個數(shù)據(jù)表記錄一個實體集;任務(wù)分析若干數(shù)據(jù)表組成數(shù)據(jù)庫(Database),數(shù)據(jù)庫中的數(shù)據(jù)表與數(shù)據(jù)表之間存在一定的聯(lián)系。技能競賽管理系統(tǒng)所使用到的數(shù)據(jù)庫是用來存儲和管理參賽選手信息、參賽成績等相關(guān)信息。具體數(shù)據(jù)涉及參賽選手學(xué)生信息、指導(dǎo)老師信息、賽前培訓(xùn)信息、比賽信息、管理員信息、指導(dǎo)學(xué)生參賽的老師信息、學(xué)生報名參賽的信息、以及培訓(xùn)指導(dǎo)參賽信息。這些數(shù)據(jù)信息要按照一定的規(guī)則存儲在數(shù)據(jù)庫中各個數(shù)據(jù)表內(nèi),并且數(shù)據(jù)表與數(shù)據(jù)表之前又存在一定的關(guān)聯(lián)。任務(wù)分析如多個年級多個專業(yè)的學(xué)生參加多項技能比賽,一個學(xué)生可參賽多項技能競賽,而每項技能競賽又可以有多個學(xué)生參加,每學(xué)生參加競賽有指導(dǎo)老師進行指導(dǎo),老師可以指導(dǎo)多個技能競賽,這些關(guān)聯(lián)關(guān)系需要經(jīng)過分析來進行提取,所以就需要進行數(shù)據(jù)庫設(shè)計,理順這些數(shù)據(jù)表之間的關(guān)系。任務(wù)分析數(shù)據(jù)庫在設(shè)計過程種需要遵循一定的原則,如實體的屬性應(yīng)該僅存在某一實體中,如果存在多個實體中就會造成數(shù)據(jù)冗余,在數(shù)據(jù)庫設(shè)計時應(yīng)該避免數(shù)據(jù)冗余,因為數(shù)據(jù)冗余會造成數(shù)據(jù)存儲容量增大,造成存儲空間的浪費。也不能因為擔(dān)心數(shù)據(jù)冗余使數(shù)據(jù)不完整,實體是一個單獨的個體,不能存在于另一個實體中成為其屬性,即一個數(shù)據(jù)表中不能包含另一個數(shù)據(jù)表。數(shù)據(jù)庫如果設(shè)計不完美,將會直接影響后期對數(shù)據(jù)操作的操作,如數(shù)據(jù)查詢、數(shù)據(jù)添加、數(shù)據(jù)修改、數(shù)據(jù)刪除等操作。任務(wù)分析學(xué)生表1-1中,存在學(xué)生實體(學(xué)號、姓名、性別、專業(yè)、班級名、所在院系)等屬性,學(xué)生實體中出現(xiàn)了表中套表的現(xiàn)象。因為班級名、所在院系聯(lián)系緊密,應(yīng)該將班級名、所在院系屬性抽取出來分別放入班級實體、院系實體中。任務(wù)分析任務(wù)分析關(guān)系數(shù)據(jù)庫基本概念:?實體(Entity):客觀存在并可相互區(qū)別的事物稱為實體,可以是具體的人、事、物或抽象的概念;?屬性(Attribute):實體所具有的某一特性稱為屬性,一個實體可以由若干個屬性來描述;?碼(Key):唯一標(biāo)識實體的屬性集稱為碼,也成為鍵;?域(Domain):屬性的取值范圍稱為該屬性的域;任務(wù)分析關(guān)系數(shù)據(jù)庫基本概念:?實體型(EntityType):用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型;?實體集(EntitySet):同一類型實體的集合稱為實體集;?聯(lián)系(Relationship):現(xiàn)實世界中事物內(nèi)部以及事物之間的聯(lián)系,在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系;任務(wù)分析過渡頁任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述實體型Entity):具有相同屬性的實體具有相同的特征和性質(zhì),用實體名及其屬性名集合來抽象和刻畫同類實體。在E-R圖中用矩形表示,矩形框內(nèi)寫明實體名。

屬性(Attribute)實體所具有的某一特性,一個實體可由若干個屬性來刻畫。在ER圖中用橢圓形表示,并用無向邊將其與相應(yīng)的實體連接起來;任務(wù)完成任務(wù)完成任務(wù)完成聯(lián)系(Relationship):數(shù)據(jù)對象彼此之間相互連接的方式稱為聯(lián)系,也稱為關(guān)系。聯(lián)系可分為一對一聯(lián)系、一對多聯(lián)系、多對多聯(lián)系3種類型。(1)一對一聯(lián)系(1:1)定義:如果對于實體集A中的每個實體,實體集B中至多有一個(也可以沒有)實體與之聯(lián)系,反之亦然,則稱實體集A與實體集B具有一對一聯(lián)系,記為1:1。如圖1-4所示。例如,一個班級只有一個正班長,而每個正班長只屬于一個班級,則班級與班長的聯(lián)系是一對一的聯(lián)系。(2)一對多聯(lián)系(1:N)定義:如果對于實體集A中的每個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多聯(lián)系,記為1:N。任務(wù)完成(3)多對多聯(lián)系(M:N)定義:如果對于實體集A中的每個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每個實體,實體集A中也有m個實體(m≥0)與之聯(lián)系,則稱實體集A與實體B具有多對多聯(lián)系,記為M:N。一對一聯(lián)系一對多聯(lián)系多對多聯(lián)系任務(wù)完成技能競賽管理系統(tǒng)E-R實體模型,一個學(xué)生可以參加多項競賽,一個競賽項目也可以有多個學(xué)生來參加,故參賽學(xué)生與競賽項目之間是屬于多對多的關(guān)系。教師指導(dǎo)學(xué)生參加比賽,一個老師可以指導(dǎo)多個學(xué)生參加技能比賽,一個學(xué)生可以參加多項競賽,可以參加多個老師指導(dǎo)的培訓(xùn),學(xué)生參加競賽與老師指導(dǎo)競賽之間也是屬于多對多的關(guān)系。根據(jù)實現(xiàn)情況分析出技能競賽管理系統(tǒng)E-R圖,如下圖所示。任務(wù)完成35任務(wù)完成注意事項MySQL是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),目前中小型企業(yè)大多數(shù)使用MySQL數(shù)據(jù)庫來存儲管理企業(yè)的數(shù)據(jù),其系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言–結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,SQL)進行數(shù)據(jù)庫管理。任務(wù)總結(jié)在本任務(wù)中介紹關(guān)系數(shù)據(jù)庫管理系統(tǒng)基本概念、相關(guān)理論知識,如何把客觀世界的事務(wù)轉(zhuǎn)換成信息世界的關(guān)系模型。在對技能競賽管理系統(tǒng)中的數(shù)據(jù)庫進行需求分析,根據(jù)需求分析規(guī)格說明書完成定義實體集及屬性,實體集的主碼,用E-R圖描述被實體集;E-R圖三要素:實體集、屬性和聯(lián)系集,并用長方形表示實體,橢圓形表示屬性,并用無向邊把實體與其屬性連接起來,菱形表示實體間的聯(lián)系,來建立技能競賽管理系統(tǒng)的數(shù)據(jù)庫關(guān)系。任務(wù)分析任務(wù)完成任務(wù)描述Part

2Part

3Part

1任務(wù)二 技能競賽數(shù)據(jù)庫E-R模型設(shè)計過渡頁任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述技能競賽管理系統(tǒng)的數(shù)據(jù)庫中涉及的實體主要有參賽學(xué)生、班級信息、指導(dǎo)教師、系部信息、參賽信息、寒前培訓(xùn)信息等相關(guān)實體。根據(jù)設(shè)計完成的E-R圖來為每個實體建立一張數(shù)據(jù)表。任務(wù)描述過渡頁任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)表是二維表,是由列和行構(gòu)成的,二維表是規(guī)范表,要求每行有相同的列數(shù),每列要有相同的行數(shù),并且數(shù)據(jù)表中的每行記錄都必須是唯一的,即在同一張數(shù)據(jù)表中不允許出現(xiàn)完全相同的兩條記錄。關(guān)系數(shù)據(jù)表中必須存在關(guān)鍵字段(Key)來唯一標(biāo)識表中的每行記錄,關(guān)鍵字實際上能夠唯一標(biāo)識表記錄字段或字段組合。任務(wù)分析例如:在學(xué)生表中,由于學(xué)號字段不允許重復(fù)且學(xué)號字段不允許取空值(NULL),故學(xué)號可以作為學(xué)生表的關(guān)鍵字。在所有的關(guān)鍵字中選擇一個關(guān)鍵字作為該數(shù)據(jù)表的主關(guān)鍵字,簡稱主鍵(PrimaryKey)。數(shù)據(jù)表中的主鍵可以是一個字段,也可以是多個字段組合。表中的主鍵的值具有唯一性且不能取空值(NULL)。一張數(shù)據(jù)表中可以有多個關(guān)鍵字,但只能有一個主鍵,且主鍵肯定屬于關(guān)鍵字。任務(wù)分析定義數(shù)據(jù)表中主鍵時,一般把取值簡單的關(guān)鍵字作為主鍵。在設(shè)計數(shù)據(jù)表時,慎用復(fù)合主鍵,復(fù)合主鍵會給維護數(shù)據(jù)表時帶來不便。數(shù)據(jù)庫開發(fā)人員如果不能從已有的字段中選擇一個主鍵,可以向數(shù)據(jù)表中添加一個對記錄不會產(chǎn)生影響,也沒有實際意義的字段作為該表的主鍵,如給數(shù)據(jù)表中添加一個記錄序號,通過記錄序號來確定每個個體,并該記錄序號可以設(shè)置為由程序自動生成,以免人工錄入時出錯。任務(wù)分析過渡頁任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述定義數(shù)據(jù)表時需要確定字段的數(shù)據(jù)類型,表中字段類型設(shè)計的是否恰當(dāng)關(guān)系到數(shù)據(jù)庫的存儲空間,為每張數(shù)據(jù)表中的字段選擇最合適的數(shù)據(jù)類型是數(shù)據(jù)庫設(shè)計過程中一個重要的步驟,切記為字段隨意設(shè)置數(shù)據(jù)類型。為字段設(shè)置合適的數(shù)據(jù)類型既可以有效地節(jié)省數(shù)據(jù)庫的存儲空間,也可以提升數(shù)據(jù)的計算性能,節(jié)省數(shù)據(jù)檢索時間,提高效率。MySQL數(shù)據(jù)庫管理系統(tǒng)中常用的數(shù)據(jù)類型包括:數(shù)值類型、字符串類型和日期類型。任務(wù)完成任務(wù)完成數(shù)據(jù)庫完整性(DatabaseIntegrity)是指數(shù)據(jù)庫中數(shù)據(jù)在邏輯上的一致性、正確性、有效性和相容性。數(shù)據(jù)庫完整性由各種各樣的完整性約束來保證,因此可以說數(shù)據(jù)庫完整性設(shè)計就是數(shù)據(jù)庫完整性約束的設(shè)計。MySQL數(shù)據(jù)庫管理系統(tǒng)定義約束(Constraint)條件主要有主鍵(PrimaryKey)約束、外鍵(ForeignKey)約束、唯一性(Unique)約束、默認(rèn)值(Default)約束、非空(NotNULL)約束、檢查(Check)約束等6種常用的約束條件。任務(wù)完成(1)主鍵(PrimaryKey)能夠唯一標(biāo)識表中的每行記錄。一個表只能有一個主鍵,但可以有多個候選鍵。主鍵常常與外鍵構(gòu)成參照完整性約束,防止出現(xiàn)數(shù)據(jù)不一致。主鍵可以保證記錄的唯一和主鍵域非空,數(shù)據(jù)庫管理系統(tǒng)對于主鍵自動生成唯一索引,所以主鍵也是一個特殊的索引。如學(xué)生表里有學(xué)號和姓名,姓名可能有重名的,但學(xué)號確是唯一的,要從學(xué)生表中搜索一條紀(jì)錄如查找一個人,就只能根據(jù)學(xué)號去查找,這才能找出唯一的一個學(xué)生,這就是主鍵。可以把主鍵設(shè)為自動增長的類型,如:idint(10)notnullprimarykeyauto_increment。任務(wù)完成(2)外鍵(ForeignKey)是用于建立和加強兩個表數(shù)據(jù)之間的鏈接的一列或多列。外鍵約束主要用來維護兩個表之間數(shù)據(jù)的一致性。一張數(shù)據(jù)表的外鍵就是另一張數(shù)據(jù)表的主鍵,外鍵將兩表聯(lián)系起來。一般情況下,要刪除一張表中的主鍵必須首先要確保其他表中的沒有相同記錄值外鍵(即該表中的主鍵沒有一個外鍵和它相關(guān)聯(lián))。如果表A中的一個字段a對應(yīng)于表B的主鍵b,則字段a稱為表A的外鍵,此時存儲在表A中字段a的值,要么是NULL,要么是來自于表B主鍵b的值。任務(wù)完成(3)唯一性(Unique)約束,是對數(shù)據(jù)表的列字段進行強制執(zhí)行唯一性值,例如學(xué)生表中學(xué)生的學(xué)號必須具有唯一性,學(xué)生的姓名可以不具有唯一性,也就是允許一張數(shù)據(jù)表中有相同名字的學(xué)生,但為了區(qū)分學(xué)生實體集間的個體信息,可以將學(xué)生的學(xué)號設(shè)置為唯一性約束,通過唯一性來區(qū)分相同姓名的學(xué)生。MySQL數(shù)據(jù)庫用UNIQUE約束來對列字段進行約束,它定義了限制列或一組列中的值為唯一的規(guī)則。限制數(shù)據(jù)表中的字段值不重復(fù),則可將該字段添加唯一性約束。與主鍵約束不同,一張表中可以存在多個唯一性約束,并且滿足唯一性約束的字段可以取NULL值。任務(wù)完成(4)默認(rèn)值(Default)約束,數(shù)據(jù)表在創(chuàng)建列字段時可以指定默認(rèn)值,當(dāng)插入數(shù)據(jù)時如果未主動錄入值時,則自動添加默認(rèn)值,DEFAULT(默認(rèn)值)與NOTNULL配合使用,如學(xué)生表中學(xué)生的性別有男或女兩種情況,但機電專業(yè)的學(xué)生男同學(xué)比較多,則可以將該性別字段設(shè)為黙認(rèn)值“男”,在錄入學(xué)生性別信息時,如果沒有錄入數(shù)據(jù),則系統(tǒng)自動設(shè)置其性別信息為“男”。任務(wù)完成(5)非空(NotNULL)約束,限制數(shù)據(jù)表中的字段值不能取NULL值,如學(xué)生表中學(xué)生的姓名不能為空,則可以考慮將該字段添加非空約束。(6)檢查(Check)約束,檢查約束是用于檢查字段的輸入值是否滿足指定的條件,輸入(或者修改)數(shù)據(jù)時,若字段值不符合檢查約束指定的條件,則數(shù)據(jù)不能寫入該字段。如在學(xué)生表中學(xué)生的年齡字段設(shè)置成在15—35之間,設(shè)為檢查約束后如果在錄入學(xué)生年齡超35或低于15時,該條記錄則是一條無效記錄,不能錄入數(shù)據(jù)表中。任務(wù)完成student表任務(wù)完成

techer表任務(wù)完成

project表任務(wù)完成class表任務(wù)完成department表任務(wù)完成

st_project表任務(wù)完成tc_project表任務(wù)完成

admin表任務(wù)完成第一范式(1NF):第一范式是指數(shù)據(jù)庫表中的每列都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復(fù)的屬性。如果一張數(shù)據(jù)表內(nèi)同類字段不重復(fù)出現(xiàn),則該表滿足第一范式,如果數(shù)據(jù)庫不滿足第一范式,則對數(shù)據(jù)庫操作將會出現(xiàn)諸如插入異常、刪除異常、修改復(fù)雜等操作問題。任務(wù)完成第二范式(2NF):第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實例或行必須可以被唯一地區(qū)分。一張數(shù)據(jù)表滿足第一范式的基礎(chǔ)上,如果每個“非關(guān)鍵字”字段僅僅函數(shù)依賴于主鍵,那該數(shù)據(jù)表滿足第二范式。第二范式首先是滿足1NF,另外包含兩部分內(nèi)容,一是表必須有一個主鍵;二是沒有包含在主鍵中的列必須完全依賴于主鍵,而不能只依賴于主鍵的一部分。任務(wù)完成鍵字為組合關(guān)鍵字(學(xué)號,競賽項目號),但由于非主屬性競賽項目名稱僅依賴于競賽項目號,對關(guān)鍵字(學(xué)號,競賽項目號)只是部分依賴,而不是完全依賴,因此此種方式會導(dǎo)致數(shù)據(jù)冗余以及更新異常等問題,解決辦法是將其分為兩個關(guān)系模式:學(xué)生表(學(xué)號,競賽項目號,成績)和競賽項目表(競賽項目號,競賽項目名稱),新關(guān)系通過學(xué)生表中的外關(guān)鍵字競賽項目號聯(lián)系,在需要時進行連接。任務(wù)完成第三范式(3NF):在一張數(shù)據(jù)表滿足第二范式的要求,并且不存在“非關(guān)鍵字”字段函數(shù)據(jù)依賴于任何其他“非關(guān)鍵字”字段,那么該數(shù)據(jù)表滿足第三范式的要求,滿足第三范式的數(shù)據(jù)庫不會出現(xiàn)插入異常、刪除異常、修改復(fù)雜等現(xiàn)象。如student(St_no學(xué)號,St_name姓名,dp_id所在系,dp_name系名稱,LOCATION系地址)。任務(wù)完成關(guān)鍵字St_no學(xué)號決定各個屬性。由于是單個關(guān)鍵字,沒有部分依賴的問題,肯定是2NF。但這關(guān)系肯定有大量的冗余,有關(guān)學(xué)生所在的幾個屬性dp_id所在系,dpname系名稱,LOCATION系地址將重復(fù)存儲,插入,刪除和修改時也將產(chǎn)生類似重復(fù)的情況。分析原因:關(guān)系中存在傳遞依賴造成的。即St_no學(xué)號->dp_id所在系。而dp_id所在系->St_no學(xué)號卻不存在,dp_id所在系->LOCATION系地址,因此關(guān)鍵字St_no學(xué)號對LOCATION系地址函數(shù)決定是通過傳遞依賴dp_id所在系->LOCATION系地址實現(xiàn)的。也就是說,St_no學(xué)號不直接決定非主屬性LOCATION系地址。解決目地:每個關(guān)系模式中不能留有傳遞依賴。解決方法:分為兩個關(guān)系student學(xué)生(St_no學(xué)號,St_name姓名,dp_name所在院系),department院系部(dp_id所在系,dp_name系名稱,LOCATION系地址)。任務(wù)完成注意事項任務(wù)總結(jié)本次任務(wù)是根據(jù)技能競賽E-R圖實體-聯(lián)系(EntityRelationshipDiagram)來設(shè)計具體的數(shù)據(jù)表。對數(shù)據(jù)表中字段的數(shù)據(jù)類型進行說明,字段類型值設(shè)置過大會導(dǎo)致數(shù)據(jù)庫存儲容量龐大,浪費存儲空間,字段的類型設(shè)置過小會導(dǎo)致數(shù)據(jù)表中的字段值存儲不進去。設(shè)計數(shù)據(jù)表時需要遵循一定的質(zhì)量規(guī)范及設(shè)計原則。范式即數(shù)據(jù)庫設(shè)計范式,是符合某一種級別的關(guān)系模式的集合。構(gòu)造數(shù)據(jù)庫必須遵循一定的規(guī)則。在關(guān)系數(shù)據(jù)庫中,這種規(guī)則就是范式。關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求,即滿足不同的范式。特別強調(diào)設(shè)計過程中遵守第一范式、第二范式、第三范式。任務(wù)分析任務(wù)完成任務(wù)描述Part

2Part

3Part

1任務(wù)三 使用ER/Studio設(shè)計技能競賽數(shù)據(jù)庫過渡頁任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述使用MySQLWorkbench設(shè)計技能競賽數(shù)據(jù)庫。任務(wù)描述過渡頁任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述使用MySQLWorkbench軟件,可以從MySQL的官方網(wǎng)站中下載相應(yīng)的軟件包,具體的網(wǎng)址為://products/workbench/,然后進行安裝。在本節(jié)的演示過程中,將使用Windows版本的安裝包,下載當(dāng)前最新的軟件包,下載后完成安裝,即可啟動該軟件,如需要其他操作系統(tǒng)環(huán)境的安裝包,選擇合適的系統(tǒng)環(huán)境的軟件包即可。任務(wù)分析任務(wù)分析

啟動工具

創(chuàng)建新的模型新模型的設(shè)計界面任務(wù)分析74模型參數(shù)設(shè)置任務(wù)分析圖表設(shè)計界面(E-R圖)添加新的E-R圖任務(wù)分析表的參數(shù)設(shè)置任務(wù)分析修改默認(rèn)的存儲數(shù)據(jù)庫任務(wù)分析表的常用操作(單擊右鍵)任務(wù)分析表的定制界面任務(wù)分析外鍵設(shè)置任務(wù)分析創(chuàng)建關(guān)系一個數(shù)據(jù)庫中的實體與實體之間是有一定的聯(lián)系或關(guān)聯(lián)的,要實現(xiàn)關(guān)系模型中的聯(lián)系可以按照相關(guān)關(guān)系建產(chǎn)關(guān)聯(lián)。如下圖,將實體entity與另一個實體test建立關(guān)聯(lián)關(guān)系,是將test和entity創(chuàng)建關(guān)系;先單擊如下圖標(biāo)中的工具欄創(chuàng)建關(guān)聯(lián)關(guān)系,再將兩者連接起來,先單擊主表,然后在單擊關(guān)聯(lián)表,這樣關(guān)聯(lián)關(guān)系就建立起來了,如后所示。任務(wù)分析82以典型的班級和學(xué)生的關(guān)系為例:任務(wù)分析83班級表與學(xué)生表任務(wù)分析84以班級編號為關(guān)聯(lián),實現(xiàn)兩個表的關(guān)系連接。班級與學(xué)生的關(guān)系任務(wù)分析85完成班級信息和學(xué)生信息兩個數(shù)據(jù)表的關(guān)聯(lián)后,可以通過MySQLWorkBench進行導(dǎo)出操作,創(chuàng)建所需SQL腳本。導(dǎo)出SQL設(shè)置步驟任務(wù)分析86SQL內(nèi)容任務(wù)分析87

以前述的班級學(xué)生模型為例,在完成模型設(shè)計后,可以將其直接導(dǎo)入到數(shù)據(jù)庫系統(tǒng)中。但是,在啟動正向工程前,需要注意導(dǎo)入的目標(biāo)數(shù)據(jù)庫中,是否有重名的數(shù)據(jù)表,是否已經(jīng)存儲了相應(yīng)的數(shù)據(jù)記錄,避免實施正向工程后,丟失數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù),如果需要調(diào)整導(dǎo)入數(shù)據(jù)庫的名稱,進行調(diào)整。通常,使用MySQLWorkBench工具,主要以下兩個步驟完成:首先,連接到指定的數(shù)據(jù)庫,在本次操作過程中,以本地的數(shù)據(jù)庫為例。可以通過三種種方式打開數(shù)據(jù)庫連接操作。任務(wù)分析88數(shù)據(jù)庫連接操作任務(wù)分析89SQL連接測試其他SQL連接方式任務(wù)分析90數(shù)據(jù)庫狀態(tài)信息任務(wù)分析91打開已創(chuàng)建的模型,實施正向工程操作。可以使用快捷鍵【Ctrl】+【G】,或者點擊菜單【Database】【ForwardEngineer】,啟動向?qū)АH鐖D1-35所示,啟動正向工程向?qū)В瑔雍螅梢赃x擇創(chuàng)建一個臨時性連接,或者已存儲的連接。在本次實踐中,使用前面創(chuàng)建的“l(fā)ocal-database”連接,然后點解【Next】進入下一步。任務(wù)分析92正向工程的過濾器設(shè)置與腳本預(yù)覽任務(wù)分析93完成導(dǎo)入設(shè)置任務(wù)分析94正向工程實施效果任務(wù)分析過渡頁任務(wù)分析任務(wù)完成Part

1Part

2Part

3任務(wù)描述96根據(jù)前述的ER模型設(shè)計,采用任務(wù)二中的表1-2至表1-9的內(nèi)容,完成技能競賽管理系統(tǒng)數(shù)據(jù)庫表的設(shè)計。任務(wù)完成97student與teacher實體任務(wù)完成98Project與class實體任務(wù)完成99department與st_project實體任務(wù)完成100tc_project與admin實體任務(wù)完成101外鍵關(guān)聯(lián)示例在根據(jù)各個數(shù)據(jù)表之間的關(guān)系,添加相應(yīng)外鍵時,要注意外鍵的命名不能重復(fù),否則在正向工程的向?qū)е校琒QL腳本轉(zhuǎn)化為物理模型的步驟時,將提示錯誤。任務(wù)完成102關(guān)系圖任務(wù)完成103正向工程實施效果任務(wù)完成注意事項任務(wù)總結(jié)通過MySQLWorkBench工具,可以通過可視化的方式,設(shè)計技能競賽管理系統(tǒng)數(shù)據(jù)庫,根據(jù)E-R模型來創(chuàng)建實體,并且為實體添加實體的屬性,并正確選擇實體屬性的數(shù)據(jù)類型,再根據(jù)實體與實體之間的關(guān)系來建立關(guān)聯(lián)關(guān)系,根據(jù)建立的關(guān)系創(chuàng)建技能競賽數(shù)據(jù)庫實體E-R圖,通過正向工程轉(zhuǎn)化為物理模型。1051.國產(chǎn)化軟件與信創(chuàng)領(lǐng)域的發(fā)展自2018年以來,中美貿(mào)易摩擦持續(xù)不斷,軟

溫馨提示

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

評論

0/150

提交評論