




已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范化反規(guī)范化=*作者:bingghost(只是學(xué)習(xí)筆記 部分內(nèi)容來(lái)源于網(wǎng)絡(luò))*郵箱:443530836*貼吧:Radasm吧(按Ctrl+鼠標(biāo)點(diǎn)擊進(jìn)入)=一.實(shí)體關(guān)系模型1.實(shí)體關(guān)系圖(Entity-relation diagram)(1).實(shí)體實(shí)質(zhì)客觀存在的事物,具有一些屬性.如人,汽車(chē),學(xué)校等.(2).實(shí)體關(guān)系圖是表示實(shí)體及實(shí)體間關(guān)系的圖解形式,是數(shù)據(jù)庫(kù)設(shè)計(jì)的初步.常簡(jiǎn)稱(chēng)E-R圖(3).實(shí)體關(guān)系圖的表現(xiàn)形式:實(shí)體:矩形框?qū)傩?橢圓關(guān)系:菱形框2.實(shí)體圖示例3.實(shí)體-關(guān)系圖(E-R)示例4.同類(lèi)實(shí)體間可能存在關(guān)系5.二個(gè)實(shí)體之間可存在多種關(guān)系二.實(shí)體之間的關(guān)系模型1.一對(duì)一的關(guān)系 大學(xué)與校長(zhǎng)的關(guān)系2.一對(duì)多的關(guān)系 員工與部門(mén)的關(guān)系3.多對(duì)多的關(guān)系 顧客與商品的關(guān)系三.關(guān)系的實(shí)現(xiàn)關(guān)系的實(shí)現(xiàn)是用轉(zhuǎn)換規(guī)則把E-R圖轉(zhuǎn)換成表.(1)對(duì)于實(shí)體,把實(shí)體名轉(zhuǎn)換成表名,把實(shí)體中的屬性轉(zhuǎn)換成表中的字段(2)對(duì)于實(shí)體間的關(guān)系,把實(shí)體關(guān)系名轉(zhuǎn)換為關(guān)系表名,把相關(guān)實(shí)體的主鍵和關(guān)系屬性轉(zhuǎn)換成表中的字段(3)把具有相同主鍵的表合并四.轉(zhuǎn)換規(guī)則1、一對(duì)一的關(guān)系可把任一實(shí)體的主鍵放入另一實(shí)體中,成為外鍵。2. 一對(duì)多的關(guān)系 把一實(shí)體中的主鍵放入到多實(shí)體中,成為其外鍵。3、多對(duì)多的關(guān)系 把相關(guān)實(shí)體中的主鍵放入到一個(gè)新實(shí)體中,成為新實(shí)體的組合主鍵。學(xué)生信息表:學(xué)生表SnoSnameSsex001李明男002王華男003陳潔女課程表:課程表CnoCname001語(yǔ)文002數(shù)學(xué)003英語(yǔ)成績(jī)表:成績(jī)表SnoCnoScore0010028000200175001003620020026800100599003005100五.數(shù)據(jù)庫(kù)設(shè)計(jì)三大范式為了建立冗余較小、結(jié)構(gòu)合理的數(shù)據(jù)庫(kù),設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)必須遵循一定的規(guī)則。在關(guān)系型數(shù)據(jù)庫(kù)中這種規(guī)則就稱(chēng)為范式。范式是符合某一種設(shè)計(jì)要求的總結(jié)。要想設(shè)計(jì)一個(gè)結(jié)構(gòu)合理的關(guān)系型數(shù)據(jù)庫(kù),必須滿(mǎn)足一定的范式。在實(shí)際開(kāi)發(fā)中最為常見(jiàn)的設(shè)計(jì)范式有三個(gè):1第一范式(確保每列保持原子性)第一范式是最基本的范式。數(shù)據(jù)庫(kù)表中的字段都是單一屬性的,不可再分。這個(gè)單一屬性由基本類(lèi)型構(gòu)成,包括整型、實(shí)數(shù)、字符型、邏輯型、日期型等。上表所示的用戶(hù)信息遵循了第一范式的要求,這樣在對(duì)用戶(hù)使用城市進(jìn)行分類(lèi)的時(shí)候就非常方便,也提高了數(shù)據(jù)庫(kù)的性能。2第二范式(確保表中的每列都和主鍵相關(guān))在滿(mǎn)足第一范式的基礎(chǔ)上.第二范式需要確保數(shù)據(jù)庫(kù)表中的每一個(gè)屬性都和主鍵相關(guān),而不能只與主鍵的某一部分相關(guān)(主要針對(duì)聯(lián)合主鍵而言)。(表中的屬性必須是由于2個(gè)主鍵(復(fù)合,聯(lián)合)確定的)這樣就產(chǎn)生一個(gè)問(wèn)題:這個(gè)表中是以訂單編號(hào)和商品編號(hào)作為聯(lián)合主鍵。這樣在該表中商品名稱(chēng)、單位、商品價(jià)格等信息不與該表的主鍵相關(guān),而僅僅是與商品編號(hào)相關(guān)。所以在這里違反了第二范式的設(shè)計(jì)原則。而如果把這個(gè)訂單信息表進(jìn)行拆分,把商品信息分離到另一個(gè)表中,把訂單項(xiàng)目表也分離到另一個(gè)表中,就非常完美了。如下所示。這樣設(shè)計(jì),在很大程度上減小了數(shù)據(jù)庫(kù)的冗余。如果要獲取訂單的商品信息,使用商品編號(hào)到商品信息表中查詢(xún)即可。3第三范式(確保每列都和主鍵列直接相關(guān),而不是間接相關(guān))第三范式需要確保數(shù)據(jù)表中的字段和主鍵直接對(duì)應(yīng)不依靠其他的中間字段。這樣在查詢(xún)訂單信息的時(shí)候,就可以使用客戶(hù)編號(hào)來(lái)引用客戶(hù)信息表中的記錄,也不必在訂單信息表中多次輸入客戶(hù)信息的內(nèi)容,減小了數(shù)據(jù)冗余。舉一個(gè)反例:學(xué)生表:學(xué)號(hào)(PK) 姓名 學(xué)院 學(xué)院地點(diǎn)(符合2NF,不符合3NF)修改:學(xué)生表:學(xué)號(hào)(PK) 姓名 學(xué)院ID(FK)學(xué)院表學(xué)院ID(PK) 學(xué)院地點(diǎn)六. 反規(guī)范設(shè)計(jì)是否規(guī)范化的程度越高越好?這要根據(jù)需要來(lái)決定,因?yàn)椤胺蛛x”越深,產(chǎn)生的關(guān)系越多,關(guān)系過(guò)多,連接操作越頻繁,而連接操作是最費(fèi)時(shí)間的,特別對(duì)以查詢(xún)?yōu)橹鞯臄?shù)據(jù)庫(kù)應(yīng)用來(lái)說(shuō),頻繁的連接會(huì)影響查詢(xún)速度。所以,關(guān)系有時(shí)故意保留成非規(guī)范化的,或者規(guī)范化以后又反規(guī)范了,這樣做通常是為了改進(jìn)性能。反規(guī)范的好處是降低連接操作的需求、降低外碼和索引的數(shù)目,還可能減少表的數(shù)目,相應(yīng)帶來(lái)的問(wèn)題是可能出現(xiàn)數(shù)據(jù)的完整性問(wèn)題。加快查詢(xún)速度,但會(huì)降低修改速度。因此決定做反規(guī)范時(shí),一定要權(quán)衡利弊,仔細(xì)分析應(yīng)用的數(shù)據(jù)存取需求和實(shí)際的性能特點(diǎn),好的索引和其它方法經(jīng)常能夠解決性能問(wèn)題,而不必采用反規(guī)范這種方法。1.常用的反規(guī)范技術(shù)在進(jìn)行反規(guī)范操作之前,要充分考慮數(shù)據(jù)的存取需求、常用表的大小、一些特殊的計(jì)算(例如合計(jì))、數(shù)據(jù)的物理存儲(chǔ)位置等。常用的反規(guī)范技術(shù)有增加冗余列、增加派生列、重新組表和分割表。(1)增加冗余列增加冗余列是指在多個(gè)表中具有相同的列,它常用來(lái)在查詢(xún)時(shí)避免連接操作。但它需要更多的磁盤(pán)空間,同時(shí)增加表維護(hù)的工作量。(2).增加派生列增加派生列指增加的列來(lái)自其它表中的數(shù)據(jù),由它們計(jì)算生成。它的作用是在查詢(xún)時(shí)減少連接操作,避免使用集函數(shù)。(3).重新組表重新組表指如果許多用戶(hù)需要查看兩個(gè)表連接出來(lái)的結(jié)果數(shù)據(jù),則把這兩個(gè)表重新組成一個(gè)表來(lái)減少連接而提高性能。例如,用戶(hù)經(jīng)常需要同時(shí)查看課程號(hào),課程名稱(chēng),任課教師號(hào),任課教師姓名,則可把表class(classno,classname,teacherno)和表teacher(teacherno,teachername)合并成一個(gè)表class(classno,classname,teacherno,teachername)。這樣可提高性能,但需要更多的磁盤(pán)空間,同時(shí)也損失了數(shù)據(jù)在概念上的獨(dú)立性。(4).分割表有時(shí)對(duì)表做分割可以提高性能。表分割有兩種方式:1、水平分割:根據(jù)一列或多列數(shù)據(jù)的值把數(shù)據(jù)行放到兩個(gè)獨(dú)立的表中。水平分割通常在下面的情況下使用:A 表很大,分割后可以降低在查詢(xún)時(shí)需要讀的數(shù)據(jù)和索引的頁(yè)數(shù),同時(shí)也降低了索引的層數(shù),提高查詢(xún)速度。B 表中的數(shù)據(jù)本來(lái)就有獨(dú)立性,例如表中分別記錄各個(gè)地區(qū)的數(shù)據(jù)或不同時(shí)期的數(shù)據(jù),特別是有些數(shù)據(jù)常用,而另外一些數(shù)據(jù)不常用。C 需要把數(shù)據(jù)存放到多個(gè)介質(zhì)上。 例如法規(guī)表law就可以分成兩個(gè)表activelaw和inactivelaw。activeaauthors表中的內(nèi)容是正生效的法規(guī),是經(jīng)常使用的,而inactivelaw表則使已經(jīng)作廢的法規(guī),不常被查詢(xún)。水平分割會(huì)給應(yīng)用增加復(fù)雜度,它通常在查詢(xún)時(shí)需要多個(gè)表名,查詢(xún)所有數(shù)據(jù)需要union操作。在許多數(shù)據(jù)庫(kù)應(yīng)用中,這種復(fù)雜性會(huì)超過(guò)它帶來(lái)的優(yōu)點(diǎn),因?yàn)橹灰饕P(guān)鍵字不大,則在索引用于查詢(xún)時(shí),表中增加兩到三倍數(shù)據(jù)量,查詢(xún)時(shí)也就增加讀一個(gè)索引層的磁盤(pán)次數(shù)。2、垂直分割:把主碼和一些列放到一個(gè)表,然后把主碼和另外的列放到另一個(gè)表中。如果一個(gè)表中某些列常用,而另外一些列不常用,則可以采用垂直分割,另外垂直分割可以使得數(shù)據(jù)行變小,一個(gè)數(shù)據(jù)頁(yè)就能存放更多的數(shù)據(jù),在查詢(xún)時(shí)就會(huì)減少I(mǎi)/O次數(shù)。其缺點(diǎn)是需要管理冗余列,查詢(xún)所有數(shù)據(jù)需要join操作。3.反規(guī)范技術(shù)需要維護(hù)數(shù)據(jù)的完整性無(wú)論使用何種反規(guī)范技術(shù),都需要一定的管理來(lái)維護(hù)數(shù)據(jù)的完整性,常用的方法是批處理維護(hù)、應(yīng)用邏輯和觸發(fā)器。批處理維護(hù)是指對(duì)復(fù)制列或派生列的修改積累一定的時(shí)間后,運(yùn)行一批處理作業(yè)或存儲(chǔ)過(guò)程對(duì)復(fù)制或派生列進(jìn)行修改,這只能在對(duì)實(shí)時(shí)性要求不高的情況下使用。數(shù)據(jù)的完整性也可由應(yīng)用邏輯來(lái)實(shí)現(xiàn),這就要求必須在同一事務(wù)中對(duì)所有涉及的表進(jìn)行增、刪、改操作。用應(yīng)用邏輯來(lái)實(shí)現(xiàn)數(shù)據(jù)的完整性風(fēng)險(xiǎn)較大,因?yàn)橥贿壿嫳仨氃谒械膽?yīng)用中使用和維護(hù),容易遺漏,特別是在需求變化時(shí),不易于維護(hù)。另一種方式就是使用觸發(fā)器,對(duì)數(shù)據(jù)的任何修改立即觸發(fā)對(duì)復(fù)制列或派生列的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年?duì)颗;P仙花的知識(shí)試題
- 市場(chǎng)調(diào)研委托合同書(shū)細(xì)節(jié)
- 產(chǎn)品委托加工合同及質(zhì)量責(zé)任協(xié)議書(shū)
- 廣東省河源市龍川縣2022-2023學(xué)年高一下學(xué)期期末考試生物學(xué)試題(含答案)
- 2025年群青項(xiàng)目申請(qǐng)報(bào)告
- 2025年系列自動(dòng)遙測(cè)氣象站項(xiàng)目提案報(bào)告模板
- 農(nóng)業(yè)機(jī)械化服務(wù)與合作合同書(shū)
- 2025年銅基、鎳基釬料項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 質(zhì)量管理痕跡管理制度
- 購(gòu)物電器倉(cāng)儲(chǔ)管理制度
- 競(jìng)賽試卷(試題)-2023-2024學(xué)年六年級(jí)下冊(cè)數(shù)學(xué)人教版
- 軸承座基本工藝專(zhuān)業(yè)課程設(shè)計(jì)
- 網(wǎng)絡(luò)空間安全概論智慧樹(shù)知到期末考試答案2024年
- MOOC 計(jì)算機(jī)系統(tǒng)局限性-華東師范大學(xué) 中國(guó)大學(xué)慕課答案
- MOOC 管理學(xué)原理-東北財(cái)經(jīng)大學(xué) 中國(guó)大學(xué)慕課答案
- 政務(wù)新聞攝影技巧培訓(xùn)課件
- 《校園安全用電知識(shí)講座》課件模板(三套)
- 2024年山東公務(wù)員考試行測(cè)真題及解析【完美打印版】
- 中國(guó)十大名畫(huà)
- 幼兒園教育事業(yè)統(tǒng)計(jì)領(lǐng)導(dǎo)小組會(huì)議紀(jì)要
- 崗位勝任力評(píng)估表
評(píng)論
0/150
提交評(píng)論