數據庫技術與應用數據庫應用系統開發課件_第1頁
數據庫技術與應用數據庫應用系統開發課件_第2頁
數據庫技術與應用數據庫應用系統開發課件_第3頁
數據庫技術與應用數據庫應用系統開發課件_第4頁
數據庫技術與應用數據庫應用系統開發課件_第5頁
已閱讀5頁,還剩40頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫技術與應用第九章 數據庫應用系統開發數據庫技術與應用數據庫技術與應用windows數據庫應用程序開發數據庫應用程序開發 數據庫技術與應用數據庫技術與應用本書目錄本書目錄1數據庫技術與應用第九章 數據庫應用系統開發數據庫應用程序開發技術數據庫應用程序開發技術 數據庫技術數據庫技術 應用程序開發工具應用程序開發工具 數據訪問技術數據訪問技術 軟件工程的理念軟件工程的理念使用技術使用技術: :知識點知識點: :數據庫設計過程、完整性數據庫設計過程、完整性控制、安全性控制、數據控制、安全性控制、數據庫恢復技術;庫恢復技術;vb.netvb.net程序設計;程序設計;ado.netado.net;

2、應用程序開發過程:系統應用程序開發過程:系統分析、需求分析、功能設分析、需求分析、功能設計、編碼、測試等。計、編碼、測試等。數據庫技術與應用第九章 數據庫應用系統開發應用系統的多層結構應用系統的多層結構數據庫數據庫連接連接數據適配器數據適配器數據集數據集顯式連接方法顯式連接方法 用戶界面用戶界面(窗體)(窗體)數據訪問層數據訪問層表示層表示層數據層數據層注意:好的應用程序通常把用戶界面與數據訪問分開。注意:好的應用程序通常把用戶界面與數據訪問分開。數據庫技術與應用第九章 數據庫應用系統開發數據庫設計數據庫設計 需求分析需求分析概念模式設計概念模式設計e/re/r圖設計圖設計邏輯模式設計邏輯模式

3、設計將將e/re/r圖轉換為關圖轉換為關系模式并作規范化處理系模式并作規范化處理物理模式設計物理模式設計選擇選擇rdbmsrdbms開發平開發平臺創建數據庫臺創建數據庫數據庫技術與應用第九章 數據庫應用系統開發數據庫設計實例數據庫設計實例 設某商業集團數據庫中有設某商業集團數據庫中有3 3個實體集。一是個實體集。一是“商店商店”實體集,屬性有商店編號、商店名、地址等;二是實體集,屬性有商店編號、商店名、地址等;二是“商品商品”實體集,屬性有商品號、商品名、規格、單價等;三是實體集,屬性有商品號、商品名、規格、單價等;三是“職職工工”實體集,屬性有職工編號、姓名、性別、業績等。實體集,屬性有職工

4、編號、姓名、性別、業績等。商店與商品間存在商店與商品間存在“銷售銷售”聯系,每個商店可銷售多種商品,聯系,每個商店可銷售多種商品,每種商品也可以放在多個商店銷售,每個商店每銷售一種商每種商品也可以放在多個商店銷售,每個商店每銷售一種商品,有月銷售量;商店與職工間存在著品,有月銷售量;商店與職工間存在著“聘用聘用”關系,每個關系,每個商店有許多職工,每個職工只能在一個商店工作,商店聘用商店有許多職工,每個職工只能在一個商店工作,商店聘用職工有聘期和月薪。職工有聘期和月薪。 (1 1)試畫出)試畫出er er 圖,并在圖上注明屬性、聯系的類型。圖,并在圖上注明屬性、聯系的類型。 (2 2)將)將e

5、rer圖轉換成關系模式集,并指出每個關系模式主圖轉換成關系模式集,并指出每個關系模式主鍵和外鍵。鍵和外鍵。數據庫技術與應用第九章 數據庫應用系統開發性別性別姓名姓名職工編號職工編號月薪月薪聘期聘期地址地址商店名商店名商店編號商店編號規格規格商品名商品名商品號商品號職工職工商店商店商品商品聘用聘用銷售銷售單價單價業績業績月銷售量月銷售量商店(商店(商店編號商店編號,商店名,地址),商店名,地址)商品(商品(商品號商品號,商品名,規格,單價),商品名,規格,單價)職工(職工(職工編號職工編號,姓名,性別,業績,姓名,性別,業績,商店編號,聘期,月薪)商店編號,聘期,月薪)銷售(銷售(商店編號商店編

6、號,商品號商品號,月銷售量),月銷售量)商品、銷售、商店、職工商品、銷售、商店、職工3nf3nf數據庫技術與應用第九章 數據庫應用系統開發完整性控制完整性控制完整性控制:保證數據庫中的數據和語完整性控制:保證數據庫中的數據和語義的正確性及有效性,采取有效的措施義的正確性及有效性,采取有效的措施防止導致錯誤數據的操作。防止導致錯誤數據的操作。sql server2000sql server2000數據完整性有四種類型:數據完整性有四種類型: 實體完整性實體完整性域完整性域完整性參照完整性(也叫引用完整性)參照完整性(也叫引用完整性)用戶自定義完整性用戶自定義完整性數據庫技術與應用第九章 數據庫應

7、用系統開發sqlsql中的中的create tablecreate table命令命令在在sqlsql查詢語句中用于定義列或字查詢語句中用于定義列或字段一級的完整性約束,一般包括:段一級的完整性約束,一般包括:not nullnot null和和nullnull約束約束 primary keyprimary key約束約束 uniqueunique約束約束 foreign keyforeign key約束約束 defaultdefault定義定義 checkcheck約束約束 數據庫技術與應用第九章 數據庫應用系統開發例例: : 在學生選課數據庫中,定義關系模式在學生選課數據庫中,定義關系模式

8、sc(snum,cnum,score) sc(snum,cnum,score) 。create table sc(create table sc(snum char(10) not null foreign key (snum) references snum char(10) not null foreign key (snum) references student(snum) on delete cascade,student(snum) on delete cascade,cnum char(10) not null foreign key references course cnum

9、 char(10) not null foreign key references course on delete cascade, on delete cascade, score int null check(score=0 and score=0 and score=100),primary keyprimary key(snum,cnumsnum,cnum)) );u當要修改當要修改studentstudent表中的表中的snumsnum值時或要修改值時或要修改coursecourse表中的表中的cnumcnum值時,先要檢查值時,先要檢查scsc中有無元組的中有無元組的snumsn

10、um值或值或cnumcnum值與之對應,若沒值與之對應,若沒有,則系統接受修改操作,否則,系統拒絕此操作。有,則系統接受修改操作,否則,系統拒絕此操作。u當要刪除當要刪除studentstudent表或表或coursecourse表中某個元組時,系統也要檢查表中某個元組時,系統也要檢查scsc表,若找到相應元組則將它們也隨之刪除。表,若找到相應元組則將它們也隨之刪除。數據庫技術與應用第九章 數據庫應用系統開發域完整性控制實例域完整性控制實例例例: : 設計關系模式設計關系模式teacher(tnum,tname,id,sex,ageteacher(tnum,tname,id,sex,age,j

11、oin_date)join_date),要求年齡必須介于要求年齡必須介于18651865之間,之間,idid表示身分證號必須唯一,性表示身分證號必須唯一,性別只能是別只能是“男男”或或“女女”,姓名非空,工號必須是數字字符,姓名非空,工號必須是數字字符, ,進入單位日期缺省狀態取系統時間。進入單位日期缺省狀態取系統時間。create table teacher(create table teacher( tnum varchar(6) not null tnum varchar(6) not null check(tnum like 0-90-90-9 0-90- check(tnum lik

12、e 0-90-90-9 0-90-90-9),90-9), tname varchar(10) not null, tname varchar(10) not null, id char(18) unique, id char(18) unique, sex char(2) check(sex in( sex char(2) check(sex in(男男,女女),), age int check(age between 1865), age int check(age between 1865), join_date datetime default getdate(), join_date

13、 datetime default getdate(),primary key(tnum);primary key(tnum);數據庫技術與應用第九章 數據庫應用系統開發觸發器實現完整性控制觸發器實現完整性控制例:例:建立一個建立一個deletedelete觸發器,每當在觸發器,每當在studentstudent表中刪除一條記錄時,也將在表中刪除一條記錄時,也將在scsc表中刪除相應的記錄。關系模式如下:表中刪除相應的記錄。關系模式如下: student(snum,cname,sex,age)student(snum,cname,sex,age) sc(snum,cnum,score) sc(

14、snum,cnum,score)數據庫技術與應用第九章 數據庫應用系統開發create trigger student_delete create trigger student_delete on studenton studentfor deletefor deleteasas declare _snum as char(10) declare _snum as char(10) select _snum=d.snum from deleted d select _snum=d.snum from deleted d if not exists (select if not exists

15、(select * * from sc where from sc where snum=_snum) snum=_snum) begin begin print print 已刪除沒有選課的學生!已刪除沒有選課的學生! commit tran commit tran end end else else begin begin delete from sc where snum=_snum delete from sc where snum=_snum print print 成功刪除!成功刪除! end end數據庫技術與應用第九章 數據庫應用系統開發數據庫的實施數據庫的實施1 1、根據關系

16、模式創建數據庫后,要及時備份;、根據關系模式創建數據庫后,要及時備份;2 2、項目設計小組的成員在分工調試項目時,要用統、項目設計小組的成員在分工調試項目時,要用統一的數據庫模式進行各自的設計,數據庫中具體一的數據庫模式進行各自的設計,數據庫中具體的測試數據可以各不相同;的測試數據可以各不相同;3 3、項目最后連調時,必須用實際的、完整的數據庫、項目最后連調時,必須用實際的、完整的數據庫數據進行測試,以期達到軟件測試的最終目的。數據進行測試,以期達到軟件測試的最終目的。 注意:要善于用存儲過程,因為該技術可以提高系統運行效率。注意:要善于用存儲過程,因為該技術可以提高系統運行效率。數據庫技術與

17、應用第九章 數據庫應用系統開發數據訪問層的設計數據訪問層的設計activex data objectactivex data object(adoado).net.net就就是微軟提供的最新的數據訪問模型,是微軟提供的最新的數據訪問模型,是應用程序與相容數據源的數據訪問是應用程序與相容數據源的數據訪問接口,應用程序可以使用接口,應用程序可以使用ado.netado.net連接連接任意類型的數據源,并檢索、處理和任意類型的數據源,并檢索、處理和更新數據源中的數據。更新數據源中的數據。 p新技術新技術數據庫技術與應用第九章 數據庫應用系統開發ado.net dataset ado.net data

18、set ado.net dataset ado.net dataset 是是 ado.net ado.net 的斷開式結的斷開式結構的核心組件。構的核心組件。dataset dataset 的設計目的很明確:為了的設計目的很明確:為了實現獨立于任何數據源的數據訪問。因此,它可以實現獨立于任何數據源的數據訪問。因此,它可以用于多種不同的數據源,用于用于多種不同的數據源,用于 xml xml 數據,或用于管數據,或用于管理應用程序本地的數據。理應用程序本地的數據。dataset dataset 是數據的內存駐是數據的內存駐留表示形式,無論數據源是什么,它都會提供一致留表示形式,無論數據源是什么,它

19、都會提供一致的關系編程模型。的關系編程模型。dataset dataset 包含一個或多個包含一個或多個 datatable datatable 對象的集合,這些對象由數據行和數據對象的集合,這些對象由數據行和數據列以及主鍵、外鍵、約束和有關列以及主鍵、外鍵、約束和有關 datatable datatable 對象中對象中數據的關系信息組成。數據的關系信息組成。數據庫技術與應用第九章 數據庫應用系統開發.net framework .net framework 數據提供程序數據提供程序 .net framework .net framework 數據提供程序是數據提供程序是ado.net ad

20、o.net 結構的另一個核心元結構的另一個核心元素,其組件的設計目的相當明確:實現對底層數據源的訪問。這素,其組件的設計目的相當明確:實現對底層數據源的訪問。這些組件包括:些組件包括:connectionconnection、commandcommand、dataadapterdataadapter和和datareaderdatareader對象。對象。connection connection 對象提供與數據源的連接。對象提供與數據源的連接。command command 對象使對象使您能夠訪問用于返回數據、修改數據、運行存儲過程以及發送或您能夠訪問用于返回數據、修改數據、運行存儲過程以及發

21、送或檢索參數信息的數據庫命令。檢索參數信息的數據庫命令。datareader datareader 從數據源中提供高性從數據源中提供高性能的數據流。最后能的數據流。最后dataadapter dataadapter 提供連接提供連接 dataset dataset 對象和數據對象和數據源的橋梁。源的橋梁。dataadapter dataadapter 使用使用 command command 對象在數據源中執行對象在數據源中執行 sql sql 命令,以便將數據加載到命令,以便將數據加載到 dataset dataset 中,并使對中,并使對 dataset dataset 中數據中數據的更改

22、與數據源保持一致。的更改與數據源保持一致。數據庫技術與應用第九章 數據庫應用系統開發connectionconnection對象對象 連接字符串格式連接字符串格式sqlconnection initial catalog= mydb;datasource=myserver;user id=sa;password=;oledb.net數據提供程序數據提供程序connection對象連接參數對象連接參數屬性屬性說明說明provider指定指定oledb providerdata source指定數據庫服務器名稱或位置指定數據庫服務器名稱或位置initial catalog指定數據庫名指定數據庫名u

23、ser id用戶帳戶用戶帳戶password用戶密碼用戶密碼intigrated intigrated secuitysecuitysspisspi數據庫技術與應用第九章 數據庫應用系統開發應用實例應用實例例:求例:求scsc中所有選課學生的平均成績。中所有選課學生的平均成績。sc(snum,cnum,score)sc(snum,cnum,score)數據庫技術與應用第九章 數據庫應用系統開發private sub form1_load() handles mybase.loadprivate sub form1_load() handles mybase.load dim sql as st

24、ring = select dim sql as string = select * * from sc from sc dim myconn as new sqlconnection(initial catalog= dim myconn as new sqlconnection(initial catalog=學生選課學生選課;data_;data_ source=naonao;integrated source=naonao;integrated security=sspi;)security=sspi;) dim adapter as sqldataadapter = new sqld

25、ataadapter(sql, myconn) dim adapter as sqldataadapter = new sqldataadapter(sql, myconn) dim sc_dataset as new data.dataset dim sc_dataset as new data.dataset adapter.fill(sc_dataset, sc) adapter.fill(sc_dataset, sc) dim i as integer = 0 dim i as integer = 0 dim sum as integer = 0 dim sum as integer

26、= 0 for i = 0 to sc_dataset.tables(sc).rows.count 1for i = 0 to sc_dataset.tables(sc).rows.count 1sum = sum + sc_dataset.tables(sc).rows(i).item(score)sum = sum + sc_dataset.tables(sc).rows(i).item(score) next next sum = sum / i sum = sum / i msgbox( msgbox(平均成績平均成績= & sum)= & sum)end subend

27、 subsqldataadapter datasetsqldataadapter dataset數據庫技術與應用第九章 數據庫應用系統開發private sub form1_load() handles mybase.loadprivate sub form1_load() handles mybase.load dim sql as string = select dim sql as string = select * * from sc from sc dim myconn as new sqlconnection(initial catalog= dim myconn as new s

28、qlconnection(initial catalog=學生選課學生選課;data_ ;data_ source=naonao;integrated source=naonao;integrated security=sspi;)security=sspi;) dim mycmd as new sqlcommand(sql, myconn) dim mycmd as new sqlcommand(sql, myconn) dim reader_sc as sqldatareaderdim reader_sc as sqldatareader dim i as integer = 0 dim

29、i as integer = 0 dim sum as integer = 0 dim sum as integer = 0 myconn.open() myconn.open() reader_sc = mycmd.executereader()reader_sc = mycmd.executereader() do while reader_sc.read() do while reader_sc.read() sum = sum + reader_sc.item(2) sum = sum + reader_sc.item(2) i = i + 1 i = i + 1 loop loop

30、reader_sc.close() reader_sc.close() myconn.close() myconn.close() sum = sum / i sum = sum / i msgbox( msgbox(平均成績平均成績= & sum)= & sum)end subend subsqlcommandsqlcommandexecutereaderexecutereadersqldatareadersqldatareader數據庫技術與應用第九章 數據庫應用系統開發sqlcommandsqlcommand、executescalarexecutescalarpriva

31、te sub form1_load() handles mybase.loadprivate sub form1_load() handles mybase.load dim sql as string = select avg(score) from sc dim sql as string = select avg(score) from sc dim myconn as new sqlconnection(initial catalog= dim myconn as new sqlconnection(initial catalog= 學生選課學生選課;data_ ;data_ sour

32、ce=naonao;integrated source=naonao;integrated security=sspi;) security=sspi;) dim mycmd as new sqlcommand(sql, myconn) dim mycmd as new sqlcommand(sql, myconn) dim avg as integer = 0 dim avg as integer = 0 myconn.open() myconn.open() avg = mycmd.executescalar() avg = mycmd.executescalar() myconn.clo

33、se() myconn.close() msgbox( msgbox(平均成績平均成績= & avg)= & avg)end subend sub數據庫技術與應用第九章 數據庫應用系統開發數據綁定數據綁定 數據綁定是綁定技術中使用最頻繁,也是最數據綁定是綁定技術中使用最頻繁,也是最為重要的技術,也可以說是各種為重要的技術,也可以說是各種.net.net開發語言開發數開發語言開發數據庫應用程序最需要掌握的基本知識之一。數據綁定據庫應用程序最需要掌握的基本知識之一。數據綁定之所以很重要,是因為在之所以很重要,是因為在.net framework sdk.net framework

34、sdk中并沒中并沒有提供數據庫開發的相關組件,即如:有提供數據庫開發的相關組件,即如:dbtextboxdbtextbox、dblabeldblabel等用于數據庫開發的常用組件在等用于數據庫開發的常用組件在.net .net framework sdkframework sdk中都沒有。而數據綁定技術使得界面中都沒有。而數據綁定技術使得界面上的所有控件訪問數據源數據時可以步調一致。上的所有控件訪問數據源數據時可以步調一致。數據庫技術與應用第九章 數據庫應用系統開發數據庫技術與應用第九章 數據庫應用系統開發(1 1)建立)建立sqlserversqlserver客戶表與客戶表與vb.netvb

35、.net控件之間的數據綁定關系控件之間的數據綁定關系 public mybind as bindingmanagerbasepublic mybind as bindingmanagerbase me.sqldataadapter2.fill(me.dataset11. me.sqldataadapter2.fill(me.dataset11.客戶客戶) ) mybind = me.bindingcontext(me.dataset11, mybind = me.bindingcontext(me.dataset11, 客戶客戶) ) (2 2)用四個)用四個buttonbutton實現客戶表

36、的數據瀏覽實現客戶表的數據瀏覽 mybind.position = 0 /mybind.position = 0 /到頭到頭 mybind.position = mybind.position 1 /mybind.position = mybind.position 1 /往前往前翻翻 mybind.position = mybind.position + 1 /mybind.position = mybind.position + 1 /往后往后翻翻 mybind.position = mybind.count 1 /mybind.position = mybind.count 1 /到尾到尾(3 3)用五個)用五個buttonbutton實現客戶表的更新操作實現客戶表的更新操作 mybind.addnew() /mybind.addnew() /插入一條記錄插入一條記錄 mybind.removeat(mybind.position) /mybind.removeat(mybind.position) /刪除當前記刪除當前記錄錄 mybind.endcurrentedit() /mybind.endcurrentedit() /結束當前更結束當前更新狀態新狀態 mybind.cancelcurrentedit() /mybind.cancelc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論