




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MySQL數(shù)據(jù)庫項(xiàng)目化教程微課版V2項(xiàng)目一數(shù)據(jù)庫的設(shè)計(jì)項(xiàng)目任務(wù)知識(shí)目標(biāo)學(xué)習(xí)目標(biāo)任務(wù)1:技能競(jìng)賽管理系統(tǒng)數(shù)據(jù)庫需求分析任務(wù)2:技能競(jìng)賽數(shù)據(jù)庫ER模型設(shè)計(jì)任務(wù)3:使用MySQLWorkBench設(shè)計(jì)技能競(jìng)賽數(shù)據(jù)庫(1)了解數(shù)據(jù)庫基本概念、基本理論知識(shí)(2)掌握數(shù)據(jù)庫設(shè)計(jì)方法(3)學(xué)會(huì)用工具軟件設(shè)計(jì)ER圖(4)數(shù)據(jù)庫的概念設(shè)計(jì)能力目標(biāo)素質(zhì)目標(biāo)學(xué)習(xí)目標(biāo)(1)使用工具軟件設(shè)計(jì)繪制ER圖的能力(2)具有關(guān)系型數(shù)據(jù)庫分析能力(3)具有數(shù)據(jù)庫邏輯設(shè)計(jì)能力(4)具有數(shù)據(jù)庫管理員管理數(shù)據(jù)庫能力(1)培養(yǎng)學(xué)生解決實(shí)際問題的獨(dú)立思考的素養(yǎng)(2)培養(yǎng)學(xué)生有團(tuán)隊(duì)協(xié)作精神(3)培養(yǎng)學(xué)生思考分析解決問題的思維習(xí)慣(4)培養(yǎng)學(xué)生良好的心理素質(zhì)(5)培養(yǎng)學(xué)生具有數(shù)據(jù)庫設(shè)計(jì)人員職業(yè)素養(yǎng)課程思政(素養(yǎng)提示)學(xué)習(xí)目標(biāo)(1)了解操作系統(tǒng)等基礎(chǔ)設(shè)施軟件的國(guó)產(chǎn)化,理解基礎(chǔ)設(shè)施軟件的自主可控對(duì)我國(guó)的重大意義(2)數(shù)據(jù)庫設(shè)計(jì)的需要在需求雙方的共同溝通下完成,理解溝通與協(xié)作在數(shù)據(jù)庫設(shè)計(jì)階段的重要性,培養(yǎng)團(tuán)隊(duì)協(xié)助能力知識(shí)導(dǎo)圖學(xué)習(xí)目標(biāo)任務(wù)分析任務(wù)完成任務(wù)描述Part
2Part
3Part
1任務(wù)一 技能競(jìng)賽管理系統(tǒng)數(shù)據(jù)庫需求分析過渡頁任務(wù)分析任務(wù)完成Part
1Part
2Part
3任務(wù)描述本次任務(wù)是依據(jù)技能競(jìng)賽管理系統(tǒng)項(xiàng)目來分析其需求情況,依據(jù)需求情況來分析其數(shù)據(jù)庫設(shè)計(jì)任務(wù),為技能競(jìng)賽管理系統(tǒng)設(shè)計(jì)一套合理易用的數(shù)據(jù)庫。任務(wù)描述過渡頁任務(wù)分析任務(wù)完成Part
1Part
2Part
3任務(wù)描述數(shù)據(jù)庫(Database,DB)是按照一定的數(shù)據(jù)結(jié)構(gòu)對(duì)數(shù)據(jù)進(jìn)行組織、存儲(chǔ)和管理的容器,存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫。數(shù)據(jù)庫里存儲(chǔ)著數(shù)據(jù)庫的對(duì)象,如數(shù)據(jù)表、索引、視圖、存儲(chǔ)過程、函數(shù)、觸發(fā)器、事件等。數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是一個(gè)安裝在操作系統(tǒng)之上的用來管理、控制數(shù)據(jù)庫中各種數(shù)據(jù)庫對(duì)象的系統(tǒng)。任務(wù)分析12DBMS與DB的關(guān)系任務(wù)分析13數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)任務(wù)分析14任務(wù)分析數(shù)據(jù)模型是對(duì)現(xiàn)實(shí)世界中的事物相應(yīng)的特征進(jìn)行抽象,并對(duì)相關(guān)的數(shù)據(jù)進(jìn)行邏輯描述,為后續(xù)數(shù)據(jù)庫的設(shè)計(jì)提供參考。從應(yīng)用的角度看,可以將數(shù)據(jù)模型分為三種類型:概念模型、邏輯模型和物理模型,這三種模型分別代表了在數(shù)據(jù)庫設(shè)計(jì)的中的三個(gè)階段。15任務(wù)分析概念模型是在需求分析人員了解清楚用戶的需求后,通過分析、總結(jié)和提煉,最終定義出來的一系列需求概念。讓數(shù)據(jù)庫設(shè)計(jì)人員準(zhǔn)確的理解用戶的具體業(yè)務(wù)流程,以及這個(gè)流程中所涉及的名詞的作用及范圍。16任務(wù)分析E-R圖是比較典型的概念模型的表達(dá)形式,它剛好能夠滿足設(shè)計(jì)人員的需求:簡(jiǎn)潔而又清晰,能有效的反映業(yè)務(wù)中的各個(gè)概念及概念之間的業(yè)務(wù)關(guān)系,又能反映業(yè)務(wù)關(guān)系中所涉及的相關(guān)數(shù)據(jù)。17任務(wù)分析從數(shù)據(jù)庫管理系統(tǒng)的角度看,邏輯模型是對(duì)概念模型進(jìn)行具體化后的一個(gè)新階段。邏輯模型設(shè)計(jì)的關(guān)鍵是根據(jù)前述設(shè)計(jì)的概念模型,進(jìn)行規(guī)劃和設(shè)計(jì)各項(xiàng)數(shù)據(jù)的組織結(jié)構(gòu),形成數(shù)據(jù)庫的設(shè)計(jì)文檔,為后續(xù)數(shù)據(jù)庫管理系統(tǒng)中實(shí)現(xiàn)物理模型提供文檔形式的標(biāo)準(zhǔn)參考依據(jù)。建立數(shù)據(jù)庫的邏輯模型,實(shí)際上就是根據(jù)現(xiàn)有的概念模型,進(jìn)行規(guī)劃、設(shè)計(jì)出相應(yīng)數(shù)據(jù)庫設(shè)計(jì)文檔,形成一套完整的“數(shù)據(jù)表”。這些表的集合,對(duì)具體的字段名稱、字段含義,數(shù)據(jù)類型以及約束條件等進(jìn)行了詳細(xì)的定義。18任務(wù)分析物理模型可以理解為對(duì)數(shù)據(jù)的最底層抽象,它與具體的數(shù)據(jù)庫系統(tǒng)直接相關(guān),也和數(shù)據(jù)庫系統(tǒng)使用的操作系統(tǒng)和軟硬件環(huán)境相關(guān)。從具體的實(shí)施角度看,就是根據(jù)上述的邏輯模型,綜合考慮數(shù)據(jù)庫管理系統(tǒng)的類型、操作系統(tǒng)環(huán)境、存儲(chǔ)空間的讀寫性能以及數(shù)據(jù)庫的擴(kuò)展方案和優(yōu)化方案等多方面的因素,結(jié)合實(shí)際運(yùn)行條件,在實(shí)際的計(jì)算機(jī)環(huán)境中,將數(shù)據(jù)庫最終實(shí)現(xiàn)。用戶不是直接通過操作系統(tǒng)來存取數(shù)據(jù)庫中的數(shù)據(jù),而是需要通過數(shù)據(jù)庫管理系統(tǒng)來調(diào)用操作系統(tǒng)的進(jìn)程來管理、控制數(shù)據(jù)庫對(duì)象。關(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?。任?wù)分析關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RelationalDatabaseManagementSystem)的特點(diǎn):數(shù)據(jù)存儲(chǔ)以數(shù)據(jù)表的形式進(jìn)行存放在數(shù)據(jù)庫中;數(shù)據(jù)表中的每一行稱為記錄,是記錄一個(gè)個(gè)體的相關(guān)屬性;數(shù)居表中的每一列稱為屬性,是一條記錄中記錄個(gè)體的某一屬性;一個(gè)數(shù)據(jù)表是由許多的行和列組成的,構(gòu)成數(shù)據(jù)表,一個(gè)數(shù)據(jù)表記錄一個(gè)實(shí)體集;任務(wù)分析若干數(shù)據(jù)表組成數(shù)據(jù)庫(Database),數(shù)據(jù)庫中的數(shù)據(jù)表與數(shù)據(jù)表之間存在一定的聯(lián)系。技能競(jìng)賽管理系統(tǒng)所使用到的數(shù)據(jù)庫是用來存儲(chǔ)和管理參賽選手信息、參賽成績(jī)等相關(guān)信息。具體數(shù)據(jù)涉及參賽選手學(xué)生信息、指導(dǎo)老師信息、賽前培訓(xùn)信息、比賽信息、管理員信息、指導(dǎo)學(xué)生參賽的老師信息、學(xué)生報(bào)名參賽的信息、以及培訓(xùn)指導(dǎo)參賽信息。這些數(shù)據(jù)信息要按照一定的規(guī)則存儲(chǔ)在數(shù)據(jù)庫中各個(gè)數(shù)據(jù)表內(nèi),并且數(shù)據(jù)表與數(shù)據(jù)表之前又存在一定的關(guān)聯(lián)。任務(wù)分析如多個(gè)年級(jí)多個(gè)專業(yè)的學(xué)生參加多項(xiàng)技能比賽,一個(gè)學(xué)生可參賽多項(xiàng)技能競(jìng)賽,而每項(xiàng)技能競(jìng)賽又可以有多個(gè)學(xué)生參加,每學(xué)生參加競(jìng)賽有指導(dǎo)老師進(jìn)行指導(dǎo),老師可以指導(dǎo)多個(gè)技能競(jìng)賽,這些關(guān)聯(lián)關(guān)系需要經(jīng)過分析來進(jìn)行提取,所以就需要進(jìn)行數(shù)據(jù)庫設(shè)計(jì),理順這些數(shù)據(jù)表之間的關(guān)系。任務(wù)分析數(shù)據(jù)庫在設(shè)計(jì)過程種需要遵循一定的原則,如實(shí)體的屬性應(yīng)該僅存在某一實(shí)體中,如果存在多個(gè)實(shí)體中就會(huì)造成數(shù)據(jù)冗余,在數(shù)據(jù)庫設(shè)計(jì)時(shí)應(yīng)該避免數(shù)據(jù)冗余,因?yàn)閿?shù)據(jù)冗余會(huì)造成數(shù)據(jù)存儲(chǔ)容量增大,造成存儲(chǔ)空間的浪費(fèi)。也不能因?yàn)閾?dān)心數(shù)據(jù)冗余使數(shù)據(jù)不完整,實(shí)體是一個(gè)單獨(dú)的個(gè)體,不能存在于另一個(gè)實(shí)體中成為其屬性,即一個(gè)數(shù)據(jù)表中不能包含另一個(gè)數(shù)據(jù)表。數(shù)據(jù)庫如果設(shè)計(jì)不完美,將會(huì)直接影響后期對(duì)數(shù)據(jù)操作的操作,如數(shù)據(jù)查詢、數(shù)據(jù)添加、數(shù)據(jù)修改、數(shù)據(jù)刪除等操作。任務(wù)分析學(xué)生表1-1中,存在學(xué)生實(shí)體(學(xué)號(hào)、姓名、性別、專業(yè)、班級(jí)名、所在院系)等屬性,學(xué)生實(shí)體中出現(xiàn)了表中套表的現(xiàn)象。因?yàn)榘嗉?jí)名、所在院系聯(lián)系緊密,應(yīng)該將班級(jí)名、所在院系屬性抽取出來分別放入班級(jí)實(shí)體、院系實(shí)體中。任務(wù)分析任務(wù)分析關(guān)系數(shù)據(jù)庫基本概念:?實(shí)體(Entity):客觀存在并可相互區(qū)別的事物稱為實(shí)體,可以是具體的人、事、物或抽象的概念;?屬性(Attribute):實(shí)體所具有的某一特性稱為屬性,一個(gè)實(shí)體可以由若干個(gè)屬性來描述;?碼(Key):唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼,也成為鍵;?域(Domain):屬性的取值范圍稱為該屬性的域;任務(wù)分析關(guān)系數(shù)據(jù)庫基本概念:?實(shí)體型(EntityType):用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體稱為實(shí)體型;?實(shí)體集(EntitySet):同一類型實(shí)體的集合稱為實(shí)體集;?聯(lián)系(Relationship):現(xiàn)實(shí)世界中事物內(nèi)部以及事物之間的聯(lián)系,在信息世界中反映為實(shí)體內(nèi)部的聯(lián)系和實(shí)體之間的聯(lián)系;任務(wù)分析過渡頁任務(wù)分析任務(wù)完成Part
1Part
2Part
3任務(wù)描述實(shí)體型Entity):具有相同屬性的實(shí)體具有相同的特征和性質(zhì),用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體。在E-R圖中用矩形表示,矩形框內(nèi)寫明實(shí)體名。
屬性(Attribute)實(shí)體所具有的某一特性,一個(gè)實(shí)體可由若干個(gè)屬性來刻畫。在ER圖中用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來;任務(wù)完成任務(wù)完成任務(wù)完成聯(lián)系(Relationship):數(shù)據(jù)對(duì)象彼此之間相互連接的方式稱為聯(lián)系,也稱為關(guān)系。聯(lián)系可分為一對(duì)一聯(lián)系、一對(duì)多聯(lián)系、多對(duì)多聯(lián)系3種類型。(1)一對(duì)一聯(lián)系(1:1)定義:如果對(duì)于實(shí)體集A中的每個(gè)實(shí)體,實(shí)體集B中至多有一個(gè)(也可以沒有)實(shí)體與之聯(lián)系,反之亦然,則稱實(shí)體集A與實(shí)體集B具有一對(duì)一聯(lián)系,記為1:1。如圖1-4所示。例如,一個(gè)班級(jí)只有一個(gè)正班長(zhǎng),而每個(gè)正班長(zhǎng)只屬于一個(gè)班級(jí),則班級(jí)與班長(zhǎng)的聯(lián)系是一對(duì)一的聯(lián)系。(2)一對(duì)多聯(lián)系(1:N)定義:如果對(duì)于實(shí)體集A中的每個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每個(gè)實(shí)體,實(shí)體集A中至多只有一個(gè)實(shí)體與之聯(lián)系,則稱實(shí)體集A與實(shí)體集B有一對(duì)多聯(lián)系,記為1:N。任務(wù)完成(3)多對(duì)多聯(lián)系(M:N)定義:如果對(duì)于實(shí)體集A中的每個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每個(gè)實(shí)體,實(shí)體集A中也有m個(gè)實(shí)體(m≥0)與之聯(lián)系,則稱實(shí)體集A與實(shí)體B具有多對(duì)多聯(lián)系,記為M:N。一對(duì)一聯(lián)系一對(duì)多聯(lián)系多對(duì)多聯(lián)系任務(wù)完成技能競(jìng)賽管理系統(tǒng)E-R實(shí)體模型,一個(gè)學(xué)生可以參加多項(xiàng)競(jìng)賽,一個(gè)競(jìng)賽項(xiàng)目也可以有多個(gè)學(xué)生來參加,故參賽學(xué)生與競(jìng)賽項(xiàng)目之間是屬于多對(duì)多的關(guān)系。教師指導(dǎo)學(xué)生參加比賽,一個(gè)老師可以指導(dǎo)多個(gè)學(xué)生參加技能比賽,一個(gè)學(xué)生可以參加多項(xiàng)競(jìng)賽,可以參加多個(gè)老師指導(dǎo)的培訓(xùn),學(xué)生參加競(jìng)賽與老師指導(dǎo)競(jìng)賽之間也是屬于多對(duì)多的關(guān)系。根據(jù)實(shí)現(xiàn)情況分析出技能競(jìng)賽管理系統(tǒng)E-R圖,如下圖所示。任務(wù)完成35任務(wù)完成注意事項(xiàng)MySQL是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),目前中小型企業(yè)大多數(shù)使用MySQL數(shù)據(jù)庫來存儲(chǔ)管理企業(yè)的數(shù)據(jù),其系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言–結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,SQL)進(jìn)行數(shù)據(jù)庫管理。任務(wù)總結(jié)在本任務(wù)中介紹關(guān)系數(shù)據(jù)庫管理系統(tǒng)基本概念、相關(guān)理論知識(shí),如何把客觀世界的事務(wù)轉(zhuǎn)換成信息世界的關(guān)系模型。在對(duì)技能競(jìng)賽管理系統(tǒng)中的數(shù)據(jù)庫進(jìn)行需求分析,根據(jù)需求分析規(guī)格說明書完成定義實(shí)體集及屬性,實(shí)體集的主碼,用E-R圖描述被實(shí)體集;E-R圖三要素:實(shí)體集、屬性和聯(lián)系集,并用長(zhǎng)方形表示實(shí)體,橢圓形表示屬性,并用無向邊把實(shí)體與其屬性連接起來,菱形表示實(shí)體間的聯(lián)系,來建立技能競(jìng)賽管理系統(tǒng)的數(shù)據(jù)庫關(guān)系。任務(wù)分析任務(wù)完成任務(wù)描述Part
2Part
3Part
1任務(wù)二 技能競(jìng)賽數(shù)據(jù)庫E-R模型設(shè)計(jì)過渡頁任務(wù)分析任務(wù)完成Part
1Part
2Part
3任務(wù)描述技能競(jìng)賽管理系統(tǒng)的數(shù)據(jù)庫中涉及的實(shí)體主要有參賽學(xué)生、班級(jí)信息、指導(dǎo)教師、系部信息、參賽信息、寒前培訓(xùn)信息等相關(guān)實(shí)體。根據(jù)設(shè)計(jì)完成的E-R圖來為每個(gè)實(shí)體建立一張數(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)識(shí)表中的每行記錄,關(guān)鍵字實(shí)際上能夠唯一標(biāo)識(shí)表記錄字段或字段組合。任務(wù)分析例如:在學(xué)生表中,由于學(xué)號(hào)字段不允許重復(fù)且學(xué)號(hào)字段不允許取空值(NULL),故學(xué)號(hào)可以作為學(xué)生表的關(guān)鍵字。在所有的關(guān)鍵字中選擇一個(gè)關(guān)鍵字作為該數(shù)據(jù)表的主關(guān)鍵字,簡(jiǎn)稱主鍵(PrimaryKey)。數(shù)據(jù)表中的主鍵可以是一個(gè)字段,也可以是多個(gè)字段組合。表中的主鍵的值具有唯一性且不能取空值(NULL)。一張數(shù)據(jù)表中可以有多個(gè)關(guān)鍵字,但只能有一個(gè)主鍵,且主鍵肯定屬于關(guān)鍵字。任務(wù)分析定義數(shù)據(jù)表中主鍵時(shí),一般把取值簡(jiǎn)單的關(guān)鍵字作為主鍵。在設(shè)計(jì)數(shù)據(jù)表時(shí),慎用復(fù)合主鍵,復(fù)合主鍵會(huì)給維護(hù)數(shù)據(jù)表時(shí)帶來不便。數(shù)據(jù)庫開發(fā)人員如果不能從已有的字段中選擇一個(gè)主鍵,可以向數(shù)據(jù)表中添加一個(gè)對(duì)記錄不會(huì)產(chǎn)生影響,也沒有實(shí)際意義的字段作為該表的主鍵,如給數(shù)據(jù)表中添加一個(gè)記錄序號(hào),通過記錄序號(hào)來確定每個(gè)個(gè)體,并該記錄序號(hào)可以設(shè)置為由程序自動(dòng)生成,以免人工錄入時(shí)出錯(cuò)。任務(wù)分析過渡頁任務(wù)分析任務(wù)完成Part
1Part
2Part
3任務(wù)描述定義數(shù)據(jù)表時(shí)需要確定字段的數(shù)據(jù)類型,表中字段類型設(shè)計(jì)的是否恰當(dāng)關(guān)系到數(shù)據(jù)庫的存儲(chǔ)空間,為每張數(shù)據(jù)表中的字段選擇最合適的數(shù)據(jù)類型是數(shù)據(jù)庫設(shè)計(jì)過程中一個(gè)重要的步驟,切記為字段隨意設(shè)置數(shù)據(jù)類型。為字段設(shè)置合適的數(shù)據(jù)類型既可以有效地節(jié)省數(shù)據(jù)庫的存儲(chǔ)空間,也可以提升數(shù)據(jù)的計(jì)算性能,節(jié)省數(shù)據(jù)檢索時(shí)間,提高效率。MySQL數(shù)據(jù)庫管理系統(tǒng)中常用的數(shù)據(jù)類型包括:數(shù)值類型、字符串類型和日期類型。任務(wù)完成任務(wù)完成數(shù)據(jù)庫完整性(DatabaseIntegrity)是指數(shù)據(jù)庫中數(shù)據(jù)在邏輯上的一致性、正確性、有效性和相容性。數(shù)據(jù)庫完整性由各種各樣的完整性約束來保證,因此可以說數(shù)據(jù)庫完整性設(shè)計(jì)就是數(shù)據(jù)庫完整性約束的設(shè)計(jì)。MySQL數(shù)據(jù)庫管理系統(tǒng)定義約束(Constraint)條件主要有主鍵(PrimaryKey)約束、外鍵(ForeignKey)約束、唯一性(Unique)約束、默認(rèn)值(Default)約束、非空(NotNULL)約束、檢查(Check)約束等6種常用的約束條件。任務(wù)完成(1)主鍵(PrimaryKey)能夠唯一標(biāo)識(shí)表中的每行記錄。一個(gè)表只能有一個(gè)主鍵,但可以有多個(gè)候選鍵。主鍵常常與外鍵構(gòu)成參照完整性約束,防止出現(xiàn)數(shù)據(jù)不一致。主鍵可以保證記錄的唯一和主鍵域非空,數(shù)據(jù)庫管理系統(tǒng)對(duì)于主鍵自動(dòng)生成唯一索引,所以主鍵也是一個(gè)特殊的索引。如學(xué)生表里有學(xué)號(hào)和姓名,姓名可能有重名的,但學(xué)號(hào)確是唯一的,要從學(xué)生表中搜索一條紀(jì)錄如查找一個(gè)人,就只能根據(jù)學(xué)號(hào)去查找,這才能找出唯一的一個(gè)學(xué)生,這就是主鍵。可以把主鍵設(shè)為自動(dòng)增長(zhǎng)的類型,如:idint(10)notnullprimarykeyauto_increment。任務(wù)完成(2)外鍵(ForeignKey)是用于建立和加強(qiáng)兩個(gè)表數(shù)據(jù)之間的鏈接的一列或多列。外鍵約束主要用來維護(hù)兩個(gè)表之間數(shù)據(jù)的一致性。一張數(shù)據(jù)表的外鍵就是另一張數(shù)據(jù)表的主鍵,外鍵將兩表聯(lián)系起來。一般情況下,要?jiǎng)h除一張表中的主鍵必須首先要確保其他表中的沒有相同記錄值外鍵(即該表中的主鍵沒有一個(gè)外鍵和它相關(guān)聯(lián))。如果表A中的一個(gè)字段a對(duì)應(yīng)于表B的主鍵b,則字段a稱為表A的外鍵,此時(shí)存儲(chǔ)在表A中字段a的值,要么是NULL,要么是來自于表B主鍵b的值。任務(wù)完成(3)唯一性(Unique)約束,是對(duì)數(shù)據(jù)表的列字段進(jìn)行強(qiáng)制執(zhí)行唯一性值,例如學(xué)生表中學(xué)生的學(xué)號(hào)必須具有唯一性,學(xué)生的姓名可以不具有唯一性,也就是允許一張數(shù)據(jù)表中有相同名字的學(xué)生,但為了區(qū)分學(xué)生實(shí)體集間的個(gè)體信息,可以將學(xué)生的學(xué)號(hào)設(shè)置為唯一性約束,通過唯一性來區(qū)分相同姓名的學(xué)生。MySQL數(shù)據(jù)庫用UNIQUE約束來對(duì)列字段進(jìn)行約束,它定義了限制列或一組列中的值為唯一的規(guī)則。限制數(shù)據(jù)表中的字段值不重復(fù),則可將該字段添加唯一性約束。與主鍵約束不同,一張表中可以存在多個(gè)唯一性約束,并且滿足唯一性約束的字段可以取NULL值。任務(wù)完成(4)默認(rèn)值(Default)約束,數(shù)據(jù)表在創(chuàng)建列字段時(shí)可以指定默認(rèn)值,當(dāng)插入數(shù)據(jù)時(shí)如果未主動(dòng)錄入值時(shí),則自動(dòng)添加默認(rèn)值,DEFAULT(默認(rèn)值)與NOTNULL配合使用,如學(xué)生表中學(xué)生的性別有男或女兩種情況,但機(jī)電專業(yè)的學(xué)生男同學(xué)比較多,則可以將該性別字段設(shè)為黙認(rèn)值“男”,在錄入學(xué)生性別信息時(shí),如果沒有錄入數(shù)據(jù),則系統(tǒng)自動(dòng)設(shè)置其性別信息為“男”。任務(wù)完成(5)非空(NotNULL)約束,限制數(shù)據(jù)表中的字段值不能取NULL值,如學(xué)生表中學(xué)生的姓名不能為空,則可以考慮將該字段添加非空約束。(6)檢查(Check)約束,檢查約束是用于檢查字段的輸入值是否滿足指定的條件,輸入(或者修改)數(shù)據(jù)時(shí),若字段值不符合檢查約束指定的條件,則數(shù)據(jù)不能寫入該字段。如在學(xué)生表中學(xué)生的年齡字段設(shè)置成在15—35之間,設(shè)為檢查約束后如果在錄入學(xué)生年齡超35或低于15時(shí),該條記錄則是一條無效記錄,不能錄入數(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ù)項(xiàng),同一列中不能有多個(gè)值,即實(shí)體中的某個(gè)屬性不能有多個(gè)值或者不能有重復(fù)的屬性。如果一張數(shù)據(jù)表內(nèi)同類字段不重復(fù)出現(xiàn),則該表滿足第一范式,如果數(shù)據(jù)庫不滿足第一范式,則對(duì)數(shù)據(jù)庫操作將會(huì)出現(xiàn)諸如插入異常、刪除異常、修改復(fù)雜等操作問題。任務(wù)完成第二范式(2NF):第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個(gè)實(shí)例或行必須可以被唯一地區(qū)分。一張數(shù)據(jù)表滿足第一范式的基礎(chǔ)上,如果每個(gè)“非關(guān)鍵字”字段僅僅函數(shù)依賴于主鍵,那該數(shù)據(jù)表滿足第二范式。第二范式首先是滿足1NF,另外包含兩部分內(nèi)容,一是表必須有一個(gè)主鍵;二是沒有包含在主鍵中的列必須完全依賴于主鍵,而不能只依賴于主鍵的一部分。任務(wù)完成鍵字為組合關(guān)鍵字(學(xué)號(hào),競(jìng)賽項(xiàng)目號(hào)),但由于非主屬性競(jìng)賽項(xiàng)目名稱僅依賴于競(jìng)賽項(xiàng)目號(hào),對(duì)關(guān)鍵字(學(xué)號(hào),競(jìng)賽項(xiàng)目號(hào))只是部分依賴,而不是完全依賴,因此此種方式會(huì)導(dǎo)致數(shù)據(jù)冗余以及更新異常等問題,解決辦法是將其分為兩個(gè)關(guān)系模式:學(xué)生表(學(xué)號(hào),競(jìng)賽項(xiàng)目號(hào),成績(jī))和競(jìng)賽項(xiàng)目表(競(jìng)賽項(xiàng)目號(hào),競(jìng)賽項(xiàng)目名稱),新關(guān)系通過學(xué)生表中的外關(guān)鍵字競(jìng)賽項(xiàng)目號(hào)聯(lián)系,在需要時(shí)進(jìn)行連接。任務(wù)完成第三范式(3NF):在一張數(shù)據(jù)表滿足第二范式的要求,并且不存在“非關(guān)鍵字”字段函數(shù)據(jù)依賴于任何其他“非關(guān)鍵字”字段,那么該數(shù)據(jù)表滿足第三范式的要求,滿足第三范式的數(shù)據(jù)庫不會(huì)出現(xiàn)插入異常、刪除異常、修改復(fù)雜等現(xiàn)象。如student(St_no學(xué)號(hào),St_name姓名,dp_id所在系,dp_name系名稱,LOCATION系地址)。任務(wù)完成關(guān)鍵字St_no學(xué)號(hào)決定各個(gè)屬性。由于是單個(gè)關(guān)鍵字,沒有部分依賴的問題,肯定是2NF。但這關(guān)系肯定有大量的冗余,有關(guān)學(xué)生所在的幾個(gè)屬性dp_id所在系,dpname系名稱,LOCATION系地址將重復(fù)存儲(chǔ),插入,刪除和修改時(shí)也將產(chǎn)生類似重復(fù)的情況。分析原因:關(guān)系中存在傳遞依賴造成的。即St_no學(xué)號(hào)->dp_id所在系。而dp_id所在系->St_no學(xué)號(hào)卻不存在,dp_id所在系->LOCATION系地址,因此關(guān)鍵字St_no學(xué)號(hào)對(duì)LOCATION系地址函數(shù)決定是通過傳遞依賴dp_id所在系->LOCATION系地址實(shí)現(xiàn)的。也就是說,St_no學(xué)號(hào)不直接決定非主屬性LOCATION系地址。解決目地:每個(gè)關(guān)系模式中不能留有傳遞依賴。解決方法:分為兩個(gè)關(guān)系student學(xué)生(St_no學(xué)號(hào),St_name姓名,dp_name所在院系),department院系部(dp_id所在系,dp_name系名稱,LOCATION系地址)。任務(wù)完成注意事項(xiàng)任務(wù)總結(jié)本次任務(wù)是根據(jù)技能競(jìng)賽E-R圖實(shí)體-聯(lián)系(EntityRelationshipDiagram)來設(shè)計(jì)具體的數(shù)據(jù)表。對(duì)數(shù)據(jù)表中字段的數(shù)據(jù)類型進(jìn)行說明,字段類型值設(shè)置過大會(huì)導(dǎo)致數(shù)據(jù)庫存儲(chǔ)容量龐大,浪費(fèi)存儲(chǔ)空間,字段的類型設(shè)置過小會(huì)導(dǎo)致數(shù)據(jù)表中的字段值存儲(chǔ)不進(jìn)去。設(shè)計(jì)數(shù)據(jù)表時(shí)需要遵循一定的質(zhì)量規(guī)范及設(shè)計(jì)原則。范式即數(shù)據(jù)庫設(shè)計(jì)范式,是符合某一種級(jí)別的關(guān)系模式的集合。構(gòu)造數(shù)據(jù)庫必須遵循一定的規(guī)則。在關(guān)系數(shù)據(jù)庫中,這種規(guī)則就是范式。關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求,即滿足不同的范式。特別強(qiáng)調(diào)設(shè)計(jì)過程中遵守第一范式、第二范式、第三范式。任務(wù)分析任務(wù)完成任務(wù)描述Part
2Part
3Part
1任務(wù)三 使用ER/Studio設(shè)計(jì)技能競(jìng)賽數(shù)據(jù)庫過渡頁任務(wù)分析任務(wù)完成Part
1Part
2Part
3任務(wù)描述使用MySQLWorkbench設(shè)計(jì)技能競(jìng)賽數(shù)據(jù)庫。任務(wù)描述過渡頁任務(wù)分析任務(wù)完成Part
1Part
2Part
3任務(wù)描述使用MySQLWorkbench軟件,可以從MySQL的官方網(wǎng)站中下載相應(yīng)的軟件包,具體的網(wǎng)址為://products/workbench/,然后進(jìn)行安裝。在本節(jié)的演示過程中,將使用Windows版本的安裝包,下載當(dāng)前最新的軟件包,下載后完成安裝,即可啟動(dòng)該軟件,如需要其他操作系統(tǒng)環(huán)境的安裝包,選擇合適的系統(tǒng)環(huán)境的軟件包即可。任務(wù)分析任務(wù)分析
啟動(dòng)工具
創(chuàng)建新的模型新模型的設(shè)計(jì)界面任務(wù)分析74模型參數(shù)設(shè)置任務(wù)分析圖表設(shè)計(jì)界面(E-R圖)添加新的E-R圖任務(wù)分析表的參數(shù)設(shè)置任務(wù)分析修改默認(rèn)的存儲(chǔ)數(shù)據(jù)庫任務(wù)分析表的常用操作(單擊右鍵)任務(wù)分析表的定制界面任務(wù)分析外鍵設(shè)置任務(wù)分析創(chuàng)建關(guān)系一個(gè)數(shù)據(jù)庫中的實(shí)體與實(shí)體之間是有一定的聯(lián)系或關(guān)聯(lián)的,要實(shí)現(xiàn)關(guān)系模型中的聯(lián)系可以按照相關(guān)關(guān)系建產(chǎn)關(guān)聯(lián)。如下圖,將實(shí)體entity與另一個(gè)實(shí)體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以典型的班級(jí)和學(xué)生的關(guān)系為例:任務(wù)分析83班級(jí)表與學(xué)生表任務(wù)分析84以班級(jí)編號(hào)為關(guān)聯(lián),實(shí)現(xiàn)兩個(gè)表的關(guān)系連接。班級(jí)與學(xué)生的關(guān)系任務(wù)分析85完成班級(jí)信息和學(xué)生信息兩個(gè)數(shù)據(jù)表的關(guān)聯(lián)后,可以通過MySQLWorkBench進(jìn)行導(dǎo)出操作,創(chuàng)建所需SQL腳本。導(dǎo)出SQL設(shè)置步驟任務(wù)分析86SQL內(nèi)容任務(wù)分析87
以前述的班級(jí)學(xué)生模型為例,在完成模型設(shè)計(jì)后,可以將其直接導(dǎo)入到數(shù)據(jù)庫系統(tǒng)中。但是,在啟動(dòng)正向工程前,需要注意導(dǎo)入的目標(biāo)數(shù)據(jù)庫中,是否有重名的數(shù)據(jù)表,是否已經(jīng)存儲(chǔ)了相應(yīng)的數(shù)據(jù)記錄,避免實(shí)施正向工程后,丟失數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù),如果需要調(diào)整導(dǎo)入數(shù)據(jù)庫的名稱,進(jìn)行調(diào)整。通常,使用MySQLWorkBench工具,主要以下兩個(gè)步驟完成:首先,連接到指定的數(shù)據(jù)庫,在本次操作過程中,以本地的數(shù)據(jù)庫為例??梢酝ㄟ^三種種方式打開數(shù)據(jù)庫連接操作。任務(wù)分析88數(shù)據(jù)庫連接操作任務(wù)分析89SQL連接測(cè)試其他SQL連接方式任務(wù)分析90數(shù)據(jù)庫狀態(tài)信息任務(wù)分析91打開已創(chuàng)建的模型,實(shí)施正向工程操作??梢允褂每旖萱I【Ctrl】+【G】,或者點(diǎn)擊菜單【Database】【ForwardEngineer】,啟動(dòng)向?qū)?。如圖1-35所示,啟動(dòng)正向工程向?qū)?,啟?dòng)后,可以選擇創(chuàng)建一個(gè)臨時(shí)性連接,或者已存儲(chǔ)的連接。在本次實(shí)踐中,使用前面創(chuàng)建的“l(fā)ocal-database”連接,然后點(diǎn)解【Next】進(jìn)入下一步。任務(wù)分析92正向工程的過濾器設(shè)置與腳本預(yù)覽任務(wù)分析93完成導(dǎo)入設(shè)置任務(wù)分析94正向工程實(shí)施效果任務(wù)分析過渡頁任務(wù)分析任務(wù)完成Part
1Part
2Part
3任務(wù)描述96根據(jù)前述的ER模型設(shè)計(jì),采用任務(wù)二中的表1-2至表1-9的內(nèi)容,完成技能競(jìng)賽管理系統(tǒng)數(shù)據(jù)庫表的設(shè)計(jì)。任務(wù)完成97student與teacher實(shí)體任務(wù)完成98Project與class實(shí)體任務(wù)完成99department與st_project實(shí)體任務(wù)完成100tc_project與admin實(shí)體任務(wù)完成101外鍵關(guān)聯(lián)示例在根據(jù)各個(gè)數(shù)據(jù)表之間的關(guān)系,添加相應(yīng)外鍵時(shí),要注意外鍵的命名不能重復(fù),否則在正向工程的向?qū)е?,SQL腳本轉(zhuǎn)化為物理模型的步驟時(shí),將提示錯(cuò)誤。任務(wù)完成102關(guān)系圖任務(wù)完成103正向工程實(shí)施效果任務(wù)完成注意事項(xiàng)任務(wù)總結(jié)通過MySQLWorkBench工具,可以通過可視化的方式,設(shè)計(jì)技能競(jìng)賽管理系統(tǒng)數(shù)據(jù)庫,根據(jù)E-R模型來創(chuàng)建實(shí)體,并且為實(shí)體添加實(shí)體的屬性,并正確選擇實(shí)體屬性的數(shù)據(jù)類型,再根據(jù)實(shí)體與實(shí)體之間的關(guān)系來建立關(guān)聯(lián)關(guān)系,根據(jù)建立的關(guān)系創(chuàng)建技能競(jìng)賽數(shù)據(jù)庫實(shí)體E-R圖,通過正向工程轉(zhuǎn)化為物理模型。1051.國(guó)產(chǎn)化軟件與信創(chuàng)領(lǐng)域的發(fā)展自2018年以來,中美貿(mào)易摩擦持續(xù)不斷,軟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度健康體檢勞務(wù)合同解除標(biāo)準(zhǔn)指南
- 2025年度無人機(jī)技術(shù)研發(fā)與應(yīng)用合作資源協(xié)議書
- 二零二五年度藝術(shù)衍生品市場(chǎng)正規(guī)藝術(shù)家合作協(xié)議
- 二零二五年度塔吊安裝與吊裝作業(yè)安全保障協(xié)議
- 二零二五年度特色商業(yè)街車位包銷及夜間經(jīng)濟(jì)合同
- 2025年度智慧城市安防系統(tǒng)服務(wù)合同
- 二零二五年度會(huì)議室租賃及茶歇服務(wù)協(xié)議
- 水暖消防工程承包合同
- 小學(xué)生感恩教育故事感悟
- 超市日常運(yùn)營(yíng)管理服務(wù)合同
- 10.1溶液的酸堿性教學(xué)設(shè)計(jì)-2024-2025學(xué)年九年級(jí)化學(xué)人教版下冊(cè)
- 2024年房地產(chǎn)經(jīng)紀(jì)人《房地產(chǎn)經(jīng)紀(jì)專業(yè)基礎(chǔ)》考前沖刺必會(huì)試題庫300題(含詳解)
- 2024解析:第九章液體壓強(qiáng)-講核心(原卷版)
- 2024解析:第二十章電與磁-基礎(chǔ)練(解析版)
- 躲避球運(yùn)動(dòng)用球項(xiàng)目評(píng)價(jià)分析報(bào)告
- 2024年度委托創(chuàng)作合同:原創(chuàng)美術(shù)作品設(shè)計(jì)與委托制作3篇
- 建設(shè)工程招標(biāo)代理合同(GF-2005-0215)(標(biāo)準(zhǔn)版)
- 膽結(jié)石并急性膽囊炎護(hù)理查房
- 公司新建電源及大用戶并網(wǎng)管理辦法
- 新材料在管道施工中的應(yīng)用方案
- 滑膜炎課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論