




已閱讀5頁(yè),還剩43頁(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ì)網(wǎng)上書(shū)店,一、需求分析二、系統(tǒng)功能與流程設(shè)計(jì)三、數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)四、數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)五、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì)七、數(shù)據(jù)庫(kù)的實(shí)施,1,一、需求分析,1.能通過(guò)互聯(lián)網(wǎng)(Internet)訪問(wèn)網(wǎng)上書(shū)店B/S結(jié)構(gòu)選擇合適的開(kāi)發(fā)工具2.能在網(wǎng)頁(yè)中瀏覽圖書(shū)目錄,可按圖書(shū)類(lèi)別分類(lèi)瀏覽。(1)圖書(shū)應(yīng)當(dāng)分類(lèi),按何種標(biāo)準(zhǔn)分類(lèi)?分為幾類(lèi)?是否還有其他分類(lèi)標(biāo)準(zhǔn)?又如何分類(lèi)?(2)哪些信息構(gòu)成圖書(shū)目錄?(3)是否需要圖書(shū)搜索功能?能按哪些關(guān)鍵詞搜索?圖書(shū)名稱(chēng)、圖書(shū)號(hào)、出版社、單價(jià),2,一、需求分析,3.可瀏覽所選圖書(shū)的詳細(xì)信息。具有包括哪些信息?ISBN,書(shū)名,作者,出版社,出版日期,簡(jiǎn)介,封面,庫(kù)存數(shù)量,單價(jià)4.瀏覽圖書(shū)時(shí)可訂購(gòu)圖書(shū),生成并提交訂單(1)在瀏覽的哪些環(huán)節(jié)可以訂購(gòu)?瀏覽圖書(shū)目錄、詳細(xì)信息時(shí)(2)一個(gè)“訂單”應(yīng)包含哪些信息?訂單號(hào),書(shū)號(hào),顧客號(hào),數(shù)量,金額,訂購(gòu)日期訂單管理:創(chuàng)建、增加、修改、刪除、確認(rèn)、結(jié)算,3,一、需求分析,5.根據(jù)訂單和支付信息發(fā)出圖書(shū),形成發(fā)貨信息(“支付信息”暫不考慮)“發(fā)貨信息”應(yīng)當(dāng)包括哪些信息?是否需要獨(dú)立的“發(fā)貨單”?“發(fā)貨信息”如何與“訂單信息”聯(lián)動(dòng)?,4,一、需求分析,6.顧客收到圖書(shū)之后,對(duì)收貨予以確認(rèn),形成收貨信息“收貨信息”應(yīng)當(dāng)包括哪些信息?是否需要獨(dú)立的“收貨單”?“收貨信息”如何與“發(fā)貨信息”聯(lián)動(dòng)?,5,一、需求分析,7.顧客必須注冊(cè)后才能訂購(gòu)圖書(shū)(1)顧客登錄用的信息注冊(cè)賬號(hào),密碼(2)顧客自身的基本信息姓名,性別,年齡,地址,郵編,電話,郵箱8.應(yīng)當(dāng)提供管理員對(duì)圖書(shū)、顧客、訂單、發(fā)貨、收貨等信息進(jìn)行定期維護(hù)?!肮芾韱T”信息:管理員ID、姓名、類(lèi)型“管理員”分類(lèi):系統(tǒng)預(yù)設(shè)的管理員、自定義的管理員,6,二、系統(tǒng)功能與流程設(shè)計(jì),1.系統(tǒng)功能,網(wǎng)上書(shū)店,前臺(tái)瀏覽模塊,后臺(tái)管理模塊,匿名用戶(hù),注冊(cè)用戶(hù),瀏覽/查找圖書(shū),用戶(hù)注冊(cè),瀏覽/查找圖書(shū),訂購(gòu)圖書(shū)/維護(hù)訂單,支付貨款,用戶(hù)資料維護(hù),(管理員),圖書(shū)管理,用戶(hù)管理,訂單管理,思考:初步設(shè)計(jì)網(wǎng)站首頁(yè)布局?,7,二、系統(tǒng)功能與流程設(shè)計(jì),2.操作流程總體流程,網(wǎng)上書(shū)店首頁(yè),網(wǎng)上書(shū)店概況,瀏覽/搜索圖書(shū),訂購(gòu)圖書(shū),用戶(hù)登錄,用戶(hù)注冊(cè),導(dǎo)航,返回首頁(yè),8,二、系統(tǒng)功能與流程設(shè)計(jì),3.操作流程購(gòu)書(shū)流程,網(wǎng)上書(shū)店首頁(yè),瀏覽圖書(shū),訂購(gòu)圖書(shū),用戶(hù)管理,登錄,收貨確認(rèn),支付,發(fā)貨,9,三、數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)(E-R圖),主要E-R圖,管理員,圖書(shū),客戶(hù),管理,管理,訂購(gòu),賬號(hào),密碼,書(shū)號(hào),書(shū)名,作者,單價(jià),數(shù)量,日期,賬號(hào),密碼,數(shù)量,姓名,地址,電話,1,n,n,1,n,m,類(lèi)別,姓名,10,四、數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)(關(guān)系),E-R圖轉(zhuǎn)化為關(guān)系模式的方法注:“關(guān)系模式”是指一個(gè)未確定各個(gè)屬性的數(shù)據(jù)類(lèi)型、長(zhǎng)度等參數(shù)的二維表,稱(chēng)為一個(gè)“關(guān)系”。例:管理員(賬號(hào),姓名,密碼)(1)每一個(gè)實(shí)體對(duì)應(yīng)一個(gè)關(guān)系(2)一對(duì)多的聯(lián)系當(dāng)“聯(lián)系”并無(wú)獨(dú)有的“屬性”時(shí),通常不單獨(dú)轉(zhuǎn)換為一個(gè)關(guān)系模式,而是將“一方”的主碼增加到“多方”關(guān)系模式中,構(gòu)成其外碼。例如:客戶(hù)(賬號(hào),密碼,姓名,管理員ID),11,四、數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)(關(guān)系),(3)多對(duì)多的聯(lián)系:轉(zhuǎn)換為一個(gè)關(guān)系模式關(guān)系的屬性:n方的主鍵、m方的主鍵、“聯(lián)系”的屬性關(guān)系的主鍵:組合(n方的主鍵、m方的主鍵)例如:訂單(客戶(hù)號(hào),書(shū)號(hào),訂購(gòu)數(shù)量,訂購(gòu)日期)(4)三個(gè)以上的多元聯(lián)系:轉(zhuǎn)換為一個(gè)關(guān)系模式類(lèi)似于多對(duì)多聯(lián)系的轉(zhuǎn)換方法例如:,供應(yīng)(供應(yīng)商號(hào),項(xiàng)目號(hào),零件號(hào),數(shù)量),12,五、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)(存儲(chǔ)結(jié)構(gòu)),包括:(一)物理結(jié)構(gòu)是指含有字段類(lèi)型、字段長(zhǎng)度等參數(shù)的二維表結(jié)構(gòu)(包括主鍵、外鍵)(二)字段約束主鍵(primarykey)、外鍵(foreignkey)約束空/非空約束(null,notnull)默認(rèn)值(default)約束唯一(unique)約束自動(dòng)增長(zhǎng)(identify)約束檢查(CHECK)約束,13,五、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)(存儲(chǔ)結(jié)構(gòu)),(一)表結(jié)構(gòu)定義1.管理員表(admins)2.顧客表(customers)3.圖書(shū)表(books)4.圖書(shū)分類(lèi)表(booktypes)5.訂單表(orders),寫(xiě)出各個(gè)關(guān)系表的結(jié)構(gòu)定義,14,五、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)(存儲(chǔ)結(jié)構(gòu)),(二)表的約束1.SQLServer約束的分類(lèi)(1)實(shí)體完整性約束主要通過(guò)“主鍵約束”來(lái)實(shí)現(xiàn),以確保表內(nèi)任意行記錄數(shù)據(jù)是可區(qū)分的,是不相同的。主鍵約束(PrimaryKey):不重復(fù)、不為空(2)引用完整性約束主要是通過(guò)“外鍵約束”來(lái)實(shí)現(xiàn),即將一個(gè)表的主鍵添加到另一個(gè)表中,稱(chēng)為外鍵(ForeignKey),使兩個(gè)表聯(lián)合操作時(shí)能準(zhǔn)確識(shí)別表內(nèi)各條記錄。外鍵(ForeignKey):,15,五、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)(存儲(chǔ)結(jié)構(gòu)),(2)域完整性約束:給定列的輸入正確性和有效性。A.唯一性約束(UNIQUE):要求某列任意兩行的值不能相同B.標(biāo)識(shí)約束(IDENTIFY):能自動(dòng)產(chǎn)生唯一的標(biāo)識(shí)值,一般用于主鍵。C.非空約束:NotNullD.默認(rèn)值約束:Default,為字段規(guī)定默認(rèn)值E.檢查約束:CHECK,為字段的值規(guī)定檢查機(jī)制,如范圍F.觸發(fā)器、存儲(chǔ)過(guò)程中定義的約束機(jī)制說(shuō)明:除觸發(fā)器、存儲(chǔ)過(guò)程外,有些約束在定義字段時(shí)給出,當(dāng)某個(gè)字段具有多個(gè)約束,可緊跟其后,排列不分次序。有些也可在表結(jié)構(gòu)定義的末尾單獨(dú)給出約束定義。,16,五、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)(存儲(chǔ)結(jié)構(gòu)),2.常用約束的書(shū)寫(xiě)方法(1)主鍵約束用法1:獨(dú)立書(shū)寫(xiě)constraintprimarykey(字段)用法2:緊跟字段定義語(yǔ)句字段名類(lèi)型constraintprimarykey(2)外鍵約束用法1:獨(dú)立書(shū)寫(xiě)constraintforeignkey(字段)references表名(字段名)用法2:類(lèi)似于primarykey.,17,五、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)(存儲(chǔ)結(jié)構(gòu)),(3)唯一性約束(Unique)置于字段之后,用法:Unique主鍵約束自動(dòng)擁有唯一性;一個(gè)表只能有一個(gè)主鍵約束,但可以有多個(gè)唯一性約束。(4)空或非空約束置于字段定義之后,用法:Null,NotNull(5)唯一標(biāo)識(shí)值約束(Identify)置于字段定義之后,用法:Identify(初值,步長(zhǎng))(6)默認(rèn)值約束(Default)置于字段定義之后,用法:Default常量/函數(shù)例如:bqintnulldefault1-字段bq:購(gòu)買(mǎi)數(shù)量orderdatedatedefaultGetDate(),18,五、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)(存儲(chǔ)結(jié)構(gòu)),(7)檢查約束(check)用法:check(表達(dá)式)例:ID_Pintnotnullcheck(ID_P0)ageintcheck(age=10andage=20),19,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),包括:(一)表的索引(二)表的視圖(三)存儲(chǔ)過(guò)程(四)觸發(fā)器,20,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),(一)表的索引1.索引的分類(lèi)(1)唯一索引以原表為基礎(chǔ),按給定字段創(chuàng)建任意兩行值不重復(fù)的索引。說(shuō)明:創(chuàng)建了唯一約束,將自動(dòng)創(chuàng)建唯一索引。盡管唯一索引有助于提高查找信息的速度,但為了獲得最佳性能,建議使用主鍵約束或唯一約束。(2)主鍵索引為表定義一個(gè)主鍵將自動(dòng)創(chuàng)建主鍵索引,主鍵索引是唯一索引的特殊類(lèi)型。,21,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),(3)聚集索引在聚集索引中,表中各行的物理順序與鍵值的邏輯(索引)順序相同。表只能包含一個(gè)聚集索引。例如:漢語(yǔ)字(詞)典默認(rèn)按拼音排序編排字典中的每頁(yè)頁(yè)碼。拼音字母a,b,c,dx,y,z就是索引的邏輯順序,而頁(yè)碼1,2,3就是物理順序。默認(rèn)按拼音排序的字典,其索引順序和邏輯順序是一致的。,22,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),(4)非聚集索引對(duì)非聚集索引,表中各行的物理順序與鍵值的邏輯順序不匹配。聚集索引比非聚集索引(nonclusteredindex)有更快的數(shù)據(jù)訪問(wèn)速度。例如,按筆畫(huà)排序的索引就是非聚集索引,“1”畫(huà)的字(詞)對(duì)應(yīng)的頁(yè)碼可能比“3”畫(huà)的字(詞)對(duì)應(yīng)的頁(yè)碼大(靠后)。說(shuō)明:SQLServer中,一個(gè)表只能創(chuàng)建1個(gè)聚集索引,多個(gè)非聚集索引。設(shè)置某列為主鍵,該列就默認(rèn)為聚集索引。,23,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),2.索引的創(chuàng)建方法CREATEUNIQUECLUSTERED|NONCLUSTEREDINDEX索引名ON表名(字段名)WITHFILLFACTOR=n說(shuō)明:UNIQUE表示唯一索引,可選CLUSTERED、NONCLUSTERED表示聚集索引還是非聚集索引,可選FILLFACTOR表示填充因子,指定一個(gè)0到100之間的值,該值指示索引頁(yè)填滿(mǎn)的空間所占的百分比,24,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),3.使用索引的幾條原則(1)可以創(chuàng)建索引的情形該列用于頻繁搜索該列用于對(duì)數(shù)據(jù)進(jìn)行排序(2)不要?jiǎng)?chuàng)建索引的情形列中僅包含幾個(gè)不同的值。表中僅包含幾行。為小型表創(chuàng)建索引可能不太劃算,因?yàn)镾QLServer在索引中搜索數(shù)據(jù)所花的時(shí)間比在表中逐行搜索所花的時(shí)間更長(zhǎng),25,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),(二)視圖的使用1.什么是視圖?視圖是一種數(shù)據(jù)庫(kù)對(duì)象,為用戶(hù)提供了一種查詢(xún)數(shù)據(jù)表中數(shù)據(jù)的方式。視圖的定義是由select語(yǔ)句構(gòu)成,并存儲(chǔ)在數(shù)據(jù)庫(kù)中。引用視圖實(shí)質(zhì)上是引用select語(yǔ)句的查詢(xún)結(jié)果。視圖是虛擬表,具有數(shù)據(jù)表的一些特性,可以對(duì)視圖進(jìn)行查詢(xún)、修改、刪除等操作,還能成為另一個(gè)視圖所引用的表。對(duì)視圖的數(shù)據(jù)進(jìn)行修改時(shí),基表的數(shù)據(jù)也會(huì)發(fā)生變化,反之亦然。,26,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),2.使用視圖的優(yōu)點(diǎn)(1)簡(jiǎn)化查詢(xún)語(yǔ)句可以把經(jīng)常使用的聯(lián)接、投影和查詢(xún)語(yǔ)句定義為視圖,當(dāng)查詢(xún)時(shí),只需簡(jiǎn)單地查詢(xún)視圖而隱藏對(duì)基表的復(fù)雜查詢(xún)操作。(2)增加可讀性視圖可以定制數(shù)據(jù)內(nèi)容、可以使用字段別名。(3)保證數(shù)據(jù)邏輯獨(dú)立性當(dāng)數(shù)據(jù)表結(jié)構(gòu)改變時(shí),只需更改視圖定義的查詢(xún)語(yǔ)句,不需更改應(yīng)用程序代碼,保證了數(shù)據(jù)的邏輯獨(dú)立性。(4)增加數(shù)據(jù)的安全性和保密性針對(duì)不同用戶(hù)可以創(chuàng)建不同視圖,真正的數(shù)據(jù)表是不可見(jiàn)、不可訪問(wèn)的。,27,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),3.視圖的創(chuàng)建CreateView數(shù)據(jù)庫(kù)名.視圖名(列名1,列名2,)WITHENCRYPTIONASSELECT語(yǔ)句WITHCHECKOPTION參數(shù)說(shuō)明“列名1,列名2,”:是視圖的列名,若省略則取數(shù)據(jù)表的列名“withencryption”:加密視圖“withcheckoption”:強(qiáng)制對(duì)視圖執(zhí)行的所有數(shù)據(jù)修改語(yǔ)句都必須符合條件。,28,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),例:創(chuàng)建網(wǎng)上圖書(shū)的簡(jiǎn)要信息視圖簡(jiǎn)要信息:書(shū)名、作者、ISBN、出版社、出版日期創(chuàng)建視圖CreateviewbSimpInfo(書(shū)名,作者,ISBN,出版社,出版日期)ASselectbName,bAuthor,bISBN,bPub,bDatefrombooks引用視圖在視圖bSimpInfo中查詢(xún)書(shū)名含有“數(shù)據(jù)庫(kù)”的圖書(shū)select*frombSimpInfowhere書(shū)名like%數(shù)據(jù)庫(kù)%,29,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),4.視圖的管理(1)修改視圖定義:Alterview(2)更改視圖名:利用SQLServer提供的系統(tǒng)存儲(chǔ)過(guò)程Execsp_rename,(3)刪除視圖Dropview(4)對(duì)視圖插入、更新、刪除記錄數(shù)據(jù)(insert,update,delete)基表數(shù)據(jù)會(huì)立即改變,仍然要滿(mǎn)足基表對(duì)數(shù)據(jù)的操作要求.,30,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),(三)存儲(chǔ)過(guò)程1.存儲(chǔ)過(guò)程的概念和分類(lèi)存儲(chǔ)過(guò)程是由一系列對(duì)數(shù)據(jù)庫(kù)進(jìn)行復(fù)雜操作的SQL語(yǔ)句、流程控制語(yǔ)句和函數(shù)組成的。經(jīng)過(guò)編譯后,可以象系統(tǒng)類(lèi)函數(shù)一樣作為一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)對(duì)象進(jìn)行管理,提供給應(yīng)用程序調(diào)用。存儲(chǔ)過(guò)程具有參數(shù)傳遞、判斷和聲明變量、返回信息、擴(kuò)充標(biāo)準(zhǔn)SQL語(yǔ)言、可以嵌套調(diào)用等特點(diǎn)。存儲(chǔ)過(guò)程可以分為系統(tǒng)存儲(chǔ)過(guò)程和用戶(hù)自定義存儲(chǔ)過(guò)程系統(tǒng)存儲(chǔ)過(guò)程:由系統(tǒng)提供,可直接使用用戶(hù)自定義存儲(chǔ)過(guò)程:由用戶(hù)編寫(xiě),需先定義后使用,31,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),2.使用存儲(chǔ)過(guò)程的優(yōu)缺點(diǎn)優(yōu)點(diǎn):執(zhí)行速度快(創(chuàng)建時(shí)經(jīng)過(guò)了語(yǔ)法檢查和編譯)有利于模塊化程序設(shè)計(jì)便于應(yīng)用程序的維護(hù)管理減少網(wǎng)絡(luò)通信量(在SQLServer服務(wù)器范圍內(nèi)執(zhí)行)保證系統(tǒng)的安全性缺點(diǎn)不能實(shí)現(xiàn)復(fù)雜的邏輯操作(SQL語(yǔ)言所限制)并不能實(shí)現(xiàn)全部或某些特殊的功能不宜太多,不然難于記憶和使用。,32,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),3.創(chuàng)建存儲(chǔ)過(guò)程Createprocedure形參變量數(shù)據(jù)類(lèi)型=默認(rèn)值outputwithrecompile|encryptionASselect語(yǔ)句“過(guò)程名”:最多128個(gè)字符,必須唯一“形參變量”:必須以開(kāi)頭,最多1024個(gè)參量“默認(rèn)值”:只能是常量或空值,不能是表名/列名等“output”:規(guī)定該變量是用以將執(zhí)行結(jié)果返回的Recomplie:重編譯,encryption:加密,33,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),例:創(chuàng)建存儲(chǔ)過(guò)程pr_sb,使其按書(shū)名查找該書(shū)的作者,出版社,出版日期。Createprocedurepr_sb(bnmvarchar(50),bauvarchar(20)output,bpbvarchar(50)output,bdtdateoutput)ASselectbau=bName,bpb=bPub,bdt=bDatefrombookswherebName=bnm,34,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),4.存儲(chǔ)過(guò)程的執(zhí)行EXECUTE例:Usebooksexecutepr_sb數(shù)據(jù)庫(kù)技術(shù)說(shuō)明:執(zhí)行存儲(chǔ)過(guò)程前應(yīng)當(dāng)先打開(kāi)某個(gè)數(shù)據(jù)表,35,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),5.存儲(chǔ)過(guò)程的管理(1)修改存儲(chǔ)過(guò)程:alterprocedure,用法同創(chuàng)建(2)存儲(chǔ)過(guò)程重命名:executesp_rename,(3)刪除存儲(chǔ)過(guò)程:dropprocedure,36,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),(四)觸發(fā)器1.觸發(fā)器的概念與特點(diǎn)它是一段能自動(dòng)執(zhí)行的程序,是特殊的存儲(chǔ)過(guò)程。其特殊性在于:不允許使用參數(shù),沒(méi)有返回值。不允許用戶(hù)調(diào)用,當(dāng)對(duì)表進(jìn)行插入、刪除、修改等操作時(shí)由系統(tǒng)自動(dòng)調(diào)用并執(zhí)行。,37,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),2.觸發(fā)器的主要用途:實(shí)現(xiàn)更復(fù)雜的完整性約束(1)實(shí)現(xiàn)數(shù)據(jù)庫(kù)中多個(gè)表的級(jí)聯(lián)修改當(dāng)修改刪除某個(gè)表的數(shù)據(jù)時(shí),其他表的相應(yīng)數(shù)據(jù)能自動(dòng)修改外鍵約束也具有這種作用,且效率更高。(2)擴(kuò)展約束、默認(rèn)對(duì)象和規(guī)則對(duì)象的完整性檢查例如“check約束”在限制數(shù)據(jù)輸入時(shí)不能參照其他表中的數(shù)據(jù),如在計(jì)算“銷(xiāo)售金額=數(shù)量*單價(jià)”時(shí),“數(shù)量”不應(yīng)超過(guò)“庫(kù)存數(shù)量”,此時(shí)用check約束不能實(shí)現(xiàn)這種約束。(3)自動(dòng)生成數(shù)據(jù)(4)自定義復(fù)雜的安全權(quán)限。,38,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),3.觸發(fā)器的觸發(fā)方式為數(shù)據(jù)表的某個(gè)字段設(shè)置觸發(fā)器后,當(dāng)該字段的數(shù)據(jù)被insert(插入),delete(刪除),update(修改)時(shí),觸發(fā)器被激活并執(zhí)行。按激活的時(shí)機(jī)分為“后觸發(fā)”和“替代觸發(fā)”兩種方式。,39,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),(1)后觸發(fā)若引發(fā)觸發(fā)器執(zhí)行的語(yǔ)句通過(guò)了各種約束檢查,成功執(zhí)行后才激活并執(zhí)行觸發(fā)器程序,稱(chēng)為后觸發(fā)。特點(diǎn):若引發(fā)觸發(fā)器執(zhí)行的語(yǔ)句違反了某種約束,該語(yǔ)句不會(huì)執(zhí)行,則后觸發(fā)方式的觸發(fā)器也不被激活。后觸發(fā)方式只能創(chuàng)建在數(shù)據(jù)表上,不能創(chuàng)建在視圖上。一個(gè)表可以有多個(gè)后觸發(fā)器。,40,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),(2)替代觸發(fā)若激活觸發(fā)器的語(yǔ)句僅僅起到激活觸發(fā)器的作用,一旦激活觸發(fā)器后該語(yǔ)句即停止執(zhí)行,立即轉(zhuǎn)去執(zhí)行觸發(fā)器的程序,激活觸發(fā)器的語(yǔ)句并不被執(zhí)行,相當(dāng)于禁止某種操作,這種方式稱(chēng)為替代觸發(fā)。特點(diǎn):可以創(chuàng)建在表上,也可以創(chuàng)建在視圖上。一個(gè)表只能有一個(gè)替代觸發(fā)器。,41,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),4.SQLServer系統(tǒng)對(duì)觸發(fā)器的管理(1)觸發(fā)器作為一種數(shù)據(jù)庫(kù)對(duì)象,在syscomment系統(tǒng)表中存儲(chǔ)有其完整的定義信息,在sysobject系統(tǒng)表中有該對(duì)象的記錄。(2)觸發(fā)器被激活時(shí)會(huì)創(chuàng)建兩個(gè)臨時(shí)表:inserted表和deleted表,以確保對(duì)數(shù)據(jù)的安全操作。兩個(gè)表的結(jié)構(gòu)與激活觸發(fā)器的原數(shù)據(jù)表相同。用insert語(yǔ)句插入記錄激活觸發(fā)器時(shí),系統(tǒng)在原表插入記錄的同時(shí),也會(huì)自動(dòng)把記錄插入到inserted表中。用delete語(yǔ)句刪除記錄激活觸發(fā)器時(shí),系統(tǒng)在原表刪除記錄的同時(shí),會(huì)把刪除的記錄添加到deleted表中。用update語(yǔ)句修改記錄激活觸發(fā)器時(shí),系統(tǒng)先在原表刪除原有記錄,刪除的記錄被添加到deleted表中,再在原表插入新的記錄,并同時(shí)插入到inserted表。用戶(hù)可以用select語(yǔ)句查詢(xún)這兩個(gè)表,但不允許修改。觸發(fā)器執(zhí)行完后,這兩個(gè)表將自動(dòng)刪除。,42,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),5.創(chuàng)建觸發(fā)器Createtriggerowner.觸發(fā)器名onowner.表名/視圖名for/after/insteadofinsert,update,deletewithencryptionnorforreplicationASsetnocount-不返回給變量賦值的結(jié)果SQL語(yǔ)句系列rollbacktransaction-事務(wù)回滾,43,六、提高數(shù)據(jù)庫(kù)效率的設(shè)計(jì),說(shuō)明(1)for/after/insteadof:用于指定觸發(fā)方式For與after相同,是為了與以前版本兼容。其后可以指定“insert,update,delete”命令中的一個(gè)或多個(gè)(2)norforreplication:在復(fù)制過(guò)程中不激
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 推動(dòng)跨學(xué)科教學(xué)的創(chuàng)新策略與實(shí)踐路徑
- 提升糧食及重要農(nóng)產(chǎn)品穩(wěn)產(chǎn)保供能力的策略與路徑
- 生物識(shí)別技術(shù)發(fā)展趨勢(shì)與市場(chǎng)潛力解析
- 金屬制品行業(yè)發(fā)展趨勢(shì)與市場(chǎng)潛力深度解析
- 功能性食品市場(chǎng)消費(fèi)需求升級(jí)下的產(chǎn)品創(chuàng)新方向分析報(bào)告
- 公共關(guān)系學(xué)社交技巧試題及答案訓(xùn)練
- 吸取經(jīng)驗(yàn)2025年中級(jí)經(jīng)濟(jì)師試題及答案
- 行政管理學(xué)的學(xué)術(shù)地位與應(yīng)用試題及答案
- 2025年固定資產(chǎn)投資試題及答案
- 工程造價(jià)咨詢(xún)服務(wù)投標(biāo)方案(技術(shù)方案)
- 網(wǎng)絡(luò)傳播概論(第5版)課件 第9、10章 網(wǎng)絡(luò)重塑的文化、網(wǎng)絡(luò)時(shí)代新的社會(huì)特征
- 癌癥患者生活質(zhì)量量表EORTC-QLQ-C30
- 14.促織《變形記》聯(lián)讀教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語(yǔ)文必修下冊(cè)
- 閩教版(2020版)三年級(jí)下冊(cè)信息技術(shù)整冊(cè)教案
- GB/T 20290-2024家用電動(dòng)洗碗機(jī)性能測(cè)試方法
- 一般工商貿(mào)(輕工)管理人員安全生產(chǎn)考試題庫(kù)(含答案)
- LNG卸車(chē)操作和儲(chǔ)罐安全培訓(xùn)試題及答案
- 2024屆上海市上海師大附中高一下數(shù)學(xué)期末檢測(cè)模擬試題含解析
- 醫(yī)院培訓(xùn)課件:《PPD試驗(yàn)》
- 英文版中國(guó)故事繪本愚公移山
評(píng)論
0/150
提交評(píng)論