MySQL數(shù)據(jù)庫基礎(chǔ)之設(shè)計教程_第1頁
MySQL數(shù)據(jù)庫基礎(chǔ)之設(shè)計教程_第2頁
MySQL數(shù)據(jù)庫基礎(chǔ)之設(shè)計教程_第3頁
MySQL數(shù)據(jù)庫基礎(chǔ)之設(shè)計教程_第4頁
MySQL數(shù)據(jù)庫基礎(chǔ)之設(shè)計教程_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MySQL數(shù)據(jù)庫基礎(chǔ)授課人:fcq2023/3/13PHP+MySQL開發(fā)實戰(zhàn)@付嫦情2數(shù)據(jù)庫基本操作1、數(shù)據(jù)庫設(shè)計輔助工具2、編碼規(guī)范數(shù)據(jù)庫設(shè)計的相關(guān)知識2023/3/13網(wǎng)絡(luò)程序設(shè)計-MicrosoftASP.NET@何文海3數(shù)據(jù)庫設(shè)計輔助工具

工具模型技術(shù)業(yè)務(wù)模型面向?qū)ο蠓治龊驮O(shè)計技術(shù)結(jié)構(gòu)化分析和設(shè)計技術(shù)軟件測試技術(shù)關(guān)系數(shù)據(jù)庫設(shè)計技術(shù)ErwinPowerDesignerRationalRoseVisioVC++6.0VisualstudioEclipseNetBeans單元測試工具功能測試工具性能測試工具程序流程圖DFD時序圖狀態(tài)圖CASE工具IDE工具測試工具數(shù)據(jù)模型類圖E-R圖在編程的時候會考慮代碼的可讀性嗎?你覺得代碼可讀性是需要考慮的問題嗎?1.代碼不僅要自己能讀懂,還要別人也能看懂?2.盡量做到可讀,但時間緊任務(wù)重的時候就顧不上了?3.代碼只要自己能讀懂就可以了?4.代碼寫完就完了,不用管以后是否能讀懂?5.不知道,沒有想過這個問題?編碼規(guī)范2023/3/13網(wǎng)絡(luò)程序設(shè)計-MicrosoftASP.NET@何文海5請記?。罕M最大努力把方便留給別人和將來的自己。建議大家遵循本書羅列的常用編程規(guī)范!123關(guān)系實體和屬性E-R圖的設(shè)計原則E-R圖設(shè)計的質(zhì)量直接決定了關(guān)系數(shù)據(jù)庫設(shè)計的質(zhì)量。E-R圖

實體不是某一個具體事物,而是某一種類別所有事物的統(tǒng)稱。屬性通常用于表示實體的某種特征,也可以使用屬性表示實體間關(guān)系的特征實體屬性屬性實體和屬性E-R圖中的關(guān)系用于表示實體間存在的聯(lián)系,在E-R圖中,實體間的關(guān)系通常使用一條線段表示。E-R圖中實體間的關(guān)系是雙向的。關(guān)系關(guān)系關(guān)系

基數(shù)表示一個實體到另一個實體之間關(guān)聯(lián)的數(shù)目,基數(shù)是針對關(guān)系之間的某個方向提出的概念,基數(shù)可以是一個取值范圍,也可以是某個具體數(shù)值基數(shù)可選基數(shù)強(qiáng)制關(guān)系

元表示關(guān)系所關(guān)聯(lián)的實體個數(shù)。二元關(guān)系二元關(guān)系一元關(guān)系關(guān)系

使用關(guān)聯(lián)(Association)表示實體間關(guān)系的屬性。關(guān)聯(lián)關(guān)聯(lián)關(guān)系123實體是一個單獨的個體,不能存在于另一個實體中,成為另一個實體的屬性。屬性應(yīng)該存在于、且只存在于某一個地方(實體或者關(guān)聯(lián))。同一個實體在同一個E-R圖內(nèi),僅出現(xiàn)一次。

數(shù)據(jù)庫開發(fā)人員通常采用“一事一地”的原則從系統(tǒng)的功能描述中抽象出來E-R圖。E-R圖的設(shè)計原則1.為E-R圖中的每個實體建立一張表。2.為每張表定義一個主鍵(如果需要,可以向表添加一個沒有實際意義的字段作為該表的主鍵)3.增加外鍵表示一對多關(guān)系。4.建立新表表示多對多關(guān)系。5.為字段選擇合適的數(shù)據(jù)類型。6.定義約束條件(如果需要)。7.評價關(guān)系的質(zhì)量,并進(jìn)行必要的改進(jìn)。關(guān)系數(shù)據(jù)庫設(shè)計student(student_no,student_name,student_contact)course(course_name,up_limit,description,status)teacher(teacher_no,teacher_name,teacher_contact)classes(class_name,department_name)為每個實體建立一張數(shù)據(jù)庫表關(guān)鍵字(key):用以唯一標(biāo)識表中的每行記錄。主鍵(PrimaryKey):在所有的關(guān)鍵字中選擇一個關(guān)鍵字,作為該表的主關(guān)鍵字,簡稱主鍵。為每張表定義一個主鍵主鍵有以下兩個特征:(1)表的主鍵可以是一個字段,也可以是多個字段的組合(這種情況稱為復(fù)合主鍵)。(2)表中主鍵的值具有唯一性且不能取空值(NULL);當(dāng)表中的主鍵由多個字段構(gòu)成時,每個字段的值都不能取NULL。主鍵設(shè)計技巧,請參看本書內(nèi)容。為每張表定義一個主鍵student(student_no,student_name,student_contact)course(course_no,course_name,up_limit,description,status)teacher(teacher_no,teacher_name,teacher_contact)classes(class_no,class_name,department_name)為每張表定義一個主鍵外鍵(ForeignKey):如果表A中的一個字段a對應(yīng)于表B的主鍵b,則字段a稱為表A的外鍵,此時存儲在表A中字段a的值,要么是NULL,要么是來自于表B主鍵b的值。增加外鍵表示一對多關(guān)系情形一:如果實體間的關(guān)系為一對多關(guān)系,則需要將“一”端實體的主鍵放到“多”端實體中,然后作為“多”端實體的外鍵,通過該外鍵即可表示實體間的一對多關(guān)系。增加外鍵表示一對多關(guān)系讓學(xué)生記住所在班級,遠(yuǎn)比班級“記住”所有學(xué)生容易的多。增加外鍵表示一對多關(guān)系情形二:實體間的一對一關(guān)系,可以看成一種特殊的一對多關(guān)系:將“一”端實體的主鍵放到另“一”端的實體中,并作為另“一”端的實體的外鍵,然后將外鍵定義為唯一性約束(UniqueConstraint)。增加外鍵表示一對多關(guān)系PK增加外鍵表示一對多關(guān)系PK后的方案:student(student_no,student_name,student_contact,class_no)course(course_no,course_name,up_limit,description,status,teacher_no)teacher(teacher_no,teacher_name,teacher_contact)classes(class_no,class_name,department_name)增加外鍵表示一對多關(guān)系情形三:如果兩個實體間的關(guān)系為多對多關(guān)系,則需要添加新表表示該多對多關(guān)系,然后將該關(guān)系涉及到的實體的“主鍵”分別放入到新表中(作為新表的外鍵),并將關(guān)系自身的屬性放入到新表中作為新表的字段。建立新表表示多對多關(guān)系teacher(teacher_no,teacher_name,teacher_contact)classes(class_no,class_name,department_name)course(course_no,course_name,up_limit,description,status,teacher_no)student(student_no,student_name,student_contact,class_no)choose(choose_no,student_no,course_no,score,choose_time)建立新表表示多對多關(guān)系建立新表表示多對多關(guān)系為字段選擇合適的數(shù)據(jù)類型為字段選擇合適的數(shù)據(jù)類型手機(jī)號什么數(shù)據(jù)類型?學(xué)號2012001用什么數(shù)據(jù)類型?

2016-11-08用什么數(shù)據(jù)類型?常用的約束條件有6種:主鍵(PrimaryKey)約束外鍵(ForeignKey)約束唯一性(Unique)約束默認(rèn)值(Default)約束非空(NotNULL)約束檢查(Check)約束。定義約束(Constraint)條件設(shè)計數(shù)據(jù)庫時,有兩個不爭的事實。 數(shù)據(jù)庫中冗余的數(shù)據(jù)需要額外的維護(hù),因此質(zhì)量好的一套表應(yīng)該盡量“減少冗余數(shù)據(jù)”。 數(shù)據(jù)庫中經(jīng)常發(fā)生變化的數(shù)據(jù)需要額外的維護(hù),因此質(zhì)量好的一套表應(yīng)該盡量“避免數(shù)據(jù)經(jīng)常發(fā)生變化”。評價數(shù)據(jù)庫表設(shè)計的質(zhì)量冗余的數(shù)據(jù)需要額外的維護(hù),并且容易導(dǎo)致“數(shù)據(jù)不一致”、“插入異?!币约啊皠h除異?!钡葐栴}的發(fā)生。使用規(guī)范化減少數(shù)據(jù)冗余場景一:插入異常。場景二:修改復(fù)雜。場景三:刪除異常。使用規(guī)范化減少數(shù)據(jù)冗余規(guī)范化是通過最小化數(shù)據(jù)冗余來提升數(shù)據(jù)庫設(shè)計質(zhì)量的過程,規(guī)范化是基于函數(shù)依賴以及一系列范式定義的,最為常用的是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。第一范式:如果一張表內(nèi)同類字段不重復(fù)出現(xiàn),該表就滿足第一范式的要求。第二范式:一張表在滿足第一范式的基礎(chǔ)上,如果每個“非關(guān)鍵字”字段“僅僅”函數(shù)依賴于主鍵,那么該表滿足第二范式的要求。第三范式:如果一張表滿足第二范式的要求,并且不存在“非關(guān)鍵字”字段函數(shù)依賴于任何其他“非關(guān)鍵字”字段,那么該表滿足第三范式的要求。使用規(guī)范化減少數(shù)據(jù)冗余函數(shù)依賴:一張表內(nèi)兩個字段值之間的一一對應(yīng)關(guān)系稱為函數(shù)依賴。第一范式:如果一張表內(nèi)同類字段不重復(fù)出現(xiàn),該表就滿足第一范式的要求。使用規(guī)范化減少數(shù)據(jù)冗余第一范式使用規(guī)范化減少數(shù)據(jù)冗余第二范式:一張表在滿足第一范式的基礎(chǔ)上,如果每個“非關(guān)鍵字”字段“僅僅”函數(shù)依賴于主鍵,那么該表滿足第二范式的要求。使用規(guī)范化減少數(shù)據(jù)冗余第二范式使用規(guī)范化減少數(shù)據(jù)冗余第三范式:如果一張表滿足第二范式的要求,并且不存在“非關(guān)鍵字”字段函數(shù)依賴于任何其他“非關(guān)鍵字”字段,那么該表滿足第三范式的要求。使用規(guī)范化減少數(shù)據(jù)冗余第三范式使用規(guī)范化減少數(shù)據(jù)冗余統(tǒng)計學(xué)生的個人資料時,如果讀者是一名數(shù)據(jù)庫開發(fā)人員,應(yīng)該讓學(xué)生上報年齡信息,還是讓學(xué)生上報出生日期?避免數(shù)據(jù)經(jīng)常發(fā)生變化方案一:course(course_no,course_no,course_name,up_limit,description,

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論