freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

范式及其對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)的指導(dǎo)意義(文件)

 

【正文】 獲得各系的最新系名: 語(yǔ)句一:使用 max聚集函數(shù) select deptid,deptname from department a where setdate=(select max(setdate) from department where deptid= group by deptid) 語(yǔ)句二:使用 all操作符 select deptid,deptname from department a where setdate=all (select setdate from department where deptid=) 66 獲得 199971學(xué)生 98101所在系名: 關(guān)鍵點(diǎn):獲得 199971日前的最后一次設(shè)置的所有系名,實(shí)際在上例語(yǔ)句一子查詢中加條件setdate=?199971?即可: select deptname from department a where setdate=(select max(setdate) from department where deptid= and setdate=39。) 67 引用方法小結(jié): 供應(yīng)商問(wèn)題中進(jìn)貨單也可以用上述方法獲得供應(yīng)商名稱,但由于查詢使用了子查詢(對(duì)包括供應(yīng)商的進(jìn)貨單的查詢將更復(fù)雜),當(dāng)數(shù)據(jù)量很大時(shí),效率明顯降低。 68 范式的局限-對(duì)冗余的進(jìn)一步討論 使一個(gè)不符合范式的設(shè)計(jì)符合范式,通??梢韵哂? 滿足范式,冗余還是可能出現(xiàn)在表的單行、行間和多表之間 能以較少的空間代價(jià)和算法代價(jià)換取較大的系統(tǒng)運(yùn)行效率的提高,這樣的冗余是合理的 69 范式無(wú)法消除的冗余 - 計(jì)算列問(wèn)題 在學(xué)生表中加入 “ 選中 ” 標(biāo)志列,該列的數(shù)值是依據(jù)某個(gè)算法由學(xué)號(hào)中的各位數(shù)字計(jì)算得到 這個(gè)列并不傳遞函數(shù)依賴或部分函數(shù)依賴于碼“ 學(xué)號(hào) ” ,所以增加這個(gè)列并不會(huì)改變?cè)O(shè)計(jì)所符合的范式,但是這個(gè)列的信息完全可以由學(xué)號(hào)計(jì)算得到,冗余是顯而易見(jiàn)的 范式不能消除可以由主碼直接計(jì)算得到的列所產(chǎn)生的冗余 70 范式無(wú)法消除的其他冗余 表間冗余(多表冗余) 范式無(wú)法去除表間冗余 多表冗余的必要性:多個(gè)關(guān)系之間的數(shù)據(jù)冗余的必要性要權(quán)衡空間,時(shí)間和安全性等各方面的考慮: ? 出于安全性考慮的完全相同的數(shù)據(jù)表(熱備份) ? 出于計(jì)算時(shí)間(效率)上考慮的月結(jié)轉(zhuǎn)表(用單獨(dú)的表保存各月的累計(jì)數(shù),每月計(jì)算一次,作為下月的初始值) 71 單表冗余 定義:所謂單表冗余指某行某列數(shù)據(jù)可由本行或其他行的數(shù)據(jù)計(jì)算得到。 冗余的代價(jià):系統(tǒng)一般要提供冗余數(shù)據(jù)的生成程序及冗余數(shù)據(jù)正確性的檢測(cè)程序。 代價(jià):產(chǎn)生了冗余及數(shù)據(jù)不一致的風(fēng)險(xiǎn)。所以如此設(shè)計(jì)不符合 3NF。 一個(gè)表行之間的數(shù)據(jù)冗余和多個(gè)表之間的數(shù)據(jù)冗余不是范式所能規(guī)范的范圍,對(duì)這種數(shù)據(jù)冗余的合理性、有效性和因此為保證冗余數(shù)據(jù)的一致性而在算法上付出的代價(jià),我們同樣要作全面和詳細(xì)的評(píng)估 。 76 小結(jié): 范式一般能消除一個(gè)表的單行冗余,但計(jì)算列是一個(gè)例外。 成立理由:在數(shù)據(jù)表數(shù)據(jù)不變的前提下,即結(jié)點(diǎn)的父子關(guān)系不變,顯然 pid?level。 可行性:增加層數(shù)列 level,在結(jié)點(diǎn)加入時(shí)(總是在父結(jié)點(diǎn)已知的情況下)為其賦值,其值level=父結(jié)點(diǎn) level+1。 行間冗余可能違反范式(下例 1),也可能不違反范式(下例 2),后者屬于范式無(wú)法排除的冗余。 引用信息表達(dá)的是某一時(shí)刻的特征,如供應(yīng)商問(wèn)題中進(jìn)貨單對(duì)供應(yīng)商名稱的引用,可采用 “ 編號(hào) +版本號(hào) ”作為外鍵引用的方法得到名稱。 group by deptid) 在上述查詢中限制為 98101學(xué)生所在系: select deptname from department a where setdate=(select max(setdate) from department where deptid= and setdate=‘199971’ group by deptid) 紅色部分語(yǔ)句同上 and deptid in (select deptid from students where id=39。 思考和練習(xí):分析是否符合 NF, 進(jìn)行概要設(shè)計(jì)。 實(shí)現(xiàn)較方案一簡(jiǎn)單 若進(jìn)貨單查詢中要包括供應(yīng)商的其他信息,不論供應(yīng)商名稱是否發(fā)生過(guò)變更,都要連接供應(yīng)商表和供應(yīng)商名稱變更表,較方案一多連接一個(gè)表。 供應(yīng)商名稱變更較少發(fā)生的情況下,本設(shè)計(jì)對(duì)系統(tǒng)的性能(查詢效率)基本無(wú)影響。 56 概要設(shè)計(jì): 新增進(jìn)貨單:僅引用供應(yīng)商表,名稱版本號(hào)取 0 供應(yīng)商名稱變更: (供應(yīng)商信息維護(hù)的一個(gè)部分) ( 1)名稱變更:供應(yīng)商名稱變更表新增一行,版本號(hào)為上一變更版本號(hào) +1 ( 2)更新當(dāng)前供應(yīng)商名稱:以新供應(yīng)商名稱替換供應(yīng)商表中供應(yīng)商名稱。 54 冗余分析:存在兩個(gè)方面的冗余 ? 對(duì)引用信息變更部分:變更前的信息重復(fù) ( 下例中的紅色部分) ? 對(duì)引用信息未變更部分:若引用信息發(fā)生變更的頻率極低,顯然增加的列對(duì)大多數(shù)引用信息未發(fā)生變更的情況是純粹的冗余。 53 供應(yīng)商問(wèn)題 一) 把可能發(fā)生變更的數(shù)據(jù)放入引用表中 把供應(yīng)商編號(hào)和進(jìn)貨時(shí)的供應(yīng)商名稱同時(shí)存入進(jìn)貨單中。一個(gè)學(xué)生在就學(xué)期間可能對(duì)應(yīng)多個(gè)系名。 code類型必須使用 varchar避免空格,該語(yǔ)句對(duì)最大級(jí)數(shù)為 1, 2, 3均適用 ) 51 一般不符合范式就會(huì)有數(shù)據(jù)冗余,上例并不是例外,因?yàn)?“ 代碼 ” 列本身存在冗余,“ 010101” 是對(duì) “ 0101” 的冗余, “ 0101”是對(duì) “ 01” 的冗余。39。 ? 設(shè)計(jì)二:關(guān)鍵是怎樣獲得所有某級(jí)別的代碼,然后左補(bǔ) “ 0” ,也就是本問(wèn)題的解決依賴于上一問(wèn)題的解決。 while (vpid!=0) //有父結(jié)點(diǎn) { 整表掃描找到當(dāng)前結(jié)點(diǎn)的父結(jié)點(diǎn)( id=vpid的行): vid=id。 ? 設(shè)計(jì)二:復(fù)制被復(fù)制代碼, pid為上級(jí)代碼的 id 48 設(shè)計(jì)一:由代碼總長(zhǎng)得到代碼級(jí)數(shù) 設(shè)計(jì)二:比較困難,循環(huán)搜索父結(jié)點(diǎn),直到根結(jié)點(diǎn),所以 n級(jí)代碼要對(duì)整表掃描n次后才能獲得其級(jí)數(shù) n。39。39。39。 設(shè)計(jì)二:判定 id=idv結(jié)點(diǎn)是葉結(jié)點(diǎn) select * from classes_2 where pid=idv為空集。 第二種設(shè)計(jì)由于其他關(guān)系通過(guò) id列引用該表,所以當(dāng) code列修改后,通過(guò)外鍵引用該表的關(guān)系無(wú)需做修改。 設(shè)計(jì)一冗余的信息被隱藏在一個(gè)列中,并且 隨樹(shù)結(jié)構(gòu)層數(shù)的增加而增加 設(shè)計(jì)二沒(méi)有冗余 37 二)擴(kuò)展能力及空間利用率 第一種設(shè)計(jì)表示的樹(shù)結(jié)點(diǎn)的層數(shù)受 code列長(zhǎng)度的限制,而第二種設(shè)計(jì)則沒(méi)有這種限制。以下假設(shè)上列數(shù)據(jù)對(duì)應(yīng)兩個(gè)表: classes_1和 classes_2。 把上述關(guān)系分解成:學(xué)生選課 (學(xué)號(hào),教師,成績(jī))和教師任課(教師,課程)關(guān)系就符合BCNF。 一般可以把 R(U)分解成 R1(U{Y})和 R2(X,Y),使子關(guān)系均屬于 BCNF, 同時(shí)消除了冗余。 學(xué)號(hào) 姓名 系號(hào) 系號(hào) 系 系主任 001 wang 01 01 數(shù)學(xué) Li 002 Feng 01 02 物理 Xu 003 Cheng 01 004 Huang 02 單據(jù)中包含商品代碼外 ,還包括商品屬性 ,同樣不符合第三范式 ,因?yàn)榇嬖谙铝袀鬟f函數(shù)依賴 :(單據(jù)號(hào) ,單據(jù)明細(xì)序號(hào) )?商品代碼 ?商品屬性 。 24 不屬于 3NF必然存在冗余 X, Y, Z為關(guān)系 R(U)的屬性組,且 X為碼, X?Y?Z, 由于 Y+X, 所以 Y必不包含碼,在關(guān)系的行中 Y值必有重復(fù),而Y?Z, 所以 Z值同步重復(fù)。 例 .學(xué)生學(xué)科成績(jī)的關(guān)系模型設(shè)計(jì) 23 3NF
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1