《《數(shù)據(jù)庫系統(tǒng)》上機輔導.ppt》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫系統(tǒng)》上機輔導.ppt(89頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、1,數(shù)據(jù)庫系統(tǒng)上機輔導,西安電子科技大學 計算理論與技術(shù)研究所 王小兵,2,數(shù)據(jù)庫系統(tǒng)上機輔導,上機作業(yè)要求 設計學籍管理系統(tǒng) 數(shù)據(jù)庫上機作業(yè)報告 上機環(huán)境介紹 PowerBuilder簡介 PowerScript語言 后臺設計和前臺開發(fā) 上機環(huán)境的保存和恢復,3,數(shù)據(jù)庫系統(tǒng)上機輔導,上機作業(yè)要求 設計學籍管理系統(tǒng) 數(shù)據(jù)庫上機作業(yè)報告 上機環(huán)境介紹 PowerBuilder簡介 PowerScript語言 后臺設計和前臺開發(fā) 上機環(huán)境的保存和恢復,4,設計學籍管理系統(tǒng),后臺數(shù)據(jù)庫 設計一個系的學籍數(shù)據(jù)庫,可以使用Adaptive Server Anywhere、SQL Server、ACCES
2、S、MYSQL等DBMS。 學籍數(shù)據(jù)庫的有關(guān)語義如下: 一個系可以若干專業(yè),每個專業(yè)每年可以招若干班,每個班有若干學生。 系里對每個專業(yè)每年都制訂了教學計劃,學生每年必須按照教學計劃修完一定學分的課程(必修課、限選課和任選課),如2000年入學的學生大三上學期必修課30學分,限選課10學分,任選課6學分。 系里的教師可以給多個班帶課,但是不能給一個班帶多門課程。 一門課程最多允許學生一次補考,學生達到如下條件之一的被開除: 一學期不及格的必修課學分超過10個; 不及格必修課學分累計超過30個; 不及格選修課學分累計超過20個;,5,設計學籍管理系統(tǒng),前臺程序 開發(fā)一個學籍管理系統(tǒng)來對學籍數(shù)據(jù)庫
3、進行訪問,可以使用PowerBuilder、VC、VB、C++ Builder、Delphi、VF等前臺開發(fā)工具。系統(tǒng)實現(xiàn)功能如下: 錄入學生基本信息,如學號、姓名、性別、出生日期等(其他如課程、教師等信息可以在建庫時輸入); 按學號、姓名查詢學生基本信息; 錄入學生成績; 查詢學生所選修的課程及成績,并給出必修課平均成績和選修課平均成績; 查某一個學生被哪些教師教過課; 查詢快要被開除的學生(假定差2學分即被開除)。,6,設計學籍管理系統(tǒng),注意事項: 在數(shù)據(jù)庫的設計過程中需要運用規(guī)范化理論,避免出現(xiàn)插入異常、刪除異常、數(shù)據(jù)冗余等問題; 必須設定關(guān)系的完整性規(guī)則,如實體完整性(例如設置主碼),
4、參照完整性(例如設置外碼和對應的主碼),用戶自定義完整性(例如性別只能為“男”或“女”); 可以使用索引來加快查詢的速度; 可以使用視圖來簡化系統(tǒng)的設計; 上機實習重點在于后臺數(shù)據(jù)庫的設計,對于前臺程序的開發(fā),能夠?qū)崿F(xiàn)系統(tǒng)功能即可,不要把大量時間花費在界面設計和不必要的代碼上。,7,數(shù)據(jù)庫系統(tǒng)上機輔導,上機作業(yè)要求 設計學籍管理系統(tǒng) 數(shù)據(jù)庫上機作業(yè)報告 上機環(huán)境介紹 PowerBuilder簡介 PowerScript語言 后臺設計和前臺開發(fā) 上機環(huán)境的保存和恢復,8,數(shù)據(jù)庫上機作業(yè)報告,上機作業(yè)報告必須手寫,不能交打印稿。按照數(shù)據(jù)庫設計的基本步驟,書寫上機報告: 需求分析(系統(tǒng)數(shù)據(jù)和功能)
5、概念結(jié)構(gòu)設計(E-R圖設計) 邏輯結(jié)構(gòu)設計(E-R圖轉(zhuǎn)換為關(guān)系模型) 程序開發(fā)環(huán)境及應用環(huán)境 應用程序設計中遇到的問題及解決方法 總結(jié) 附錄(可打印):建立數(shù)據(jù)庫和應用程序的主要代碼,9,數(shù)據(jù)庫系統(tǒng)上機輔導,上機作業(yè)要求 設計學籍管理系統(tǒng) 數(shù)據(jù)庫上機作業(yè)報告 上機環(huán)境介紹 PowerBuilder簡介 PowerScript語言 后臺設計和前臺開發(fā) 上機環(huán)境的保存和恢復,10,PowerBuilder簡介,PowerBuilder是具有圖形界面的C/S模式(客戶機/服務器模式)以及分布式數(shù)據(jù)庫應用程序的前端開發(fā)工具,它可以快速簡潔的開發(fā)出功能強大的、充分滿足用戶需要的數(shù)據(jù)庫應用軟件。 在Pow
6、erBuilder中有一系列的畫筆(Painter),用來創(chuàng)建和設計相應的對象,如Window Painter , Database Painter , Application Painter , Menu Painter等。 數(shù)據(jù)窗口是PowerBuilder的核心,在對數(shù)據(jù)庫的開發(fā)過程中可以用來錄入、查詢、統(tǒng)計或者報表,并能夠以多種風格來顯示數(shù)據(jù)。 數(shù)據(jù)窗口的處理機制: 設計數(shù)據(jù)窗口對象,包含顯示方式,數(shù)據(jù)源(核心是SQL) 運行時通過數(shù)據(jù)窗口控件控制數(shù)據(jù)窗口對象,提交SQL語句到數(shù)據(jù)庫服務器上運行 在客戶端對返回結(jié)果進行處理,最終結(jié)果可提交到數(shù)據(jù)庫保存,11,PowerBuilder簡介
7、,PowerScript是PowerBuilder使用的面向?qū)ο蟮木幊陶Z言,類似于Visual Basic , QuickBASIC。 ASA(Adaptive Server Anywhere)是PowerBuilder提供的一個完整的數(shù)據(jù)庫管理系統(tǒng),它對資源的要求很低,易于安裝和設置使用,擁有基于代價的查詢優(yōu)化器,支持具有自動數(shù)據(jù)恢復的完全事務處理來保證數(shù)據(jù)的一致性和完整性。 PowerBuilder是客戶機/服務器模式的用于客戶端的數(shù)據(jù)庫應用開發(fā)工具。,12,PowerBuilder簡介,一個PB程序?qū)粋€application(應用),應用對象和事務對象是應用中的兩個特殊對象。 應用對
8、象:任何一個應用都必須包含一個應用對象。應用對象是這個應用的程序入口(Open事件)和程序出口(Close事件)。應用程序啟動后,首先進入應用對象,執(zhí)行Open事件中的代碼,調(diào)用其他對象,完成程序功能后,返回到應用對象,執(zhí)行Close事件中的代碼,返回PB或者Windows。 事務對象:每個應用有一個缺省的事務對象(SQLCA,SQL通信區(qū)),可以用來和后端的數(shù)據(jù)庫建立連接。通過訪問SQLCA中包含的信息,PB程序可以控制執(zhí)行流程。,13,,PowerBuilder簡介,基于PowerBuilder的C/S數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu),數(shù)據(jù)庫管理系統(tǒng),應用對象,窗口對象,數(shù)據(jù)窗口對象,,事務對象,Power
9、Builder程序,Open,Close,,Server,后臺,Client,前臺,14,PowerBuilder簡介,PowerBuilder程序,ODBC接口,ODBC驅(qū)動管理程序,Oracle驅(qū)動,ASA驅(qū)動,,Oracle數(shù)據(jù)庫,ASA數(shù)據(jù)庫,PowerBuilder通過ODBC(開放數(shù)據(jù)庫互連標準)訪問數(shù)據(jù)庫,SQL語句,15,數(shù)據(jù)庫系統(tǒng)上機輔導,上機作業(yè)要求 設計學籍管理系統(tǒng) 數(shù)據(jù)庫上機作業(yè)報告 上機環(huán)境介紹 PowerBuilder簡介 PowerScript語言 后臺設計和前臺開發(fā) 上機環(huán)境的保存和恢復,16,PowerScript語言,PowerScript語言的基本特征:
10、一般一行寫一條語句 注釋用//、/**/ 語句換行使用連接符 結(jié)束,它是嵌入式SQL語句的標志。 常用的嵌入式SQL語句: connect:使用SQLCA包含的信息連接數(shù)據(jù)庫 disconnect:斷開數(shù)據(jù)庫連接 declare:定義游標 open:打開游標 close:關(guān)閉游標 fetch into :推進游標指針,把當前記錄值賦給主變量 commit:提交事務的所有操作,把結(jié)果保存到數(shù)據(jù)庫中 rollback:回滾,將事務中對數(shù)據(jù)庫的操作全部撤銷,滾回到事務開始時的狀態(tài),20,PowerScript語言,//使用嵌入式SQL的PowerScript程序 //所有代碼放入應用對象的Open事
11、件中 //設置SQLCA SQLCA.DBMS = ODBC SQLCA.AutoCommit = false SQLCA.DBParm = Connectstring=DSN=xjgl //連接數(shù)據(jù)庫 connect; //定義游標 DECLARE c_s CURSOR FOR SELECT student.xh, student.xm, student.xb, student.csrq FROM student ; //打開游標 OPEN c_s;,//聲明主變量 string xh,xm,xb date csrq //逐一處理游標中的查詢結(jié)果 do while (t
12、rue) FETCH c_s INTO :xh,:xm,:xb,:csrq; if sqlca.sqlcode 0 then exit end if; messagebox(學生信息,,21,例子,示例包含后臺數(shù)據(jù)庫設計和前臺PB程序開發(fā)兩個部分: 數(shù)據(jù)庫設計:使用ASA數(shù)據(jù)庫管理系統(tǒng)創(chuàng)建一個簡單的學生成績數(shù)據(jù)庫,其中包含學生表(student),課程表(course)、成績表(score)。 前臺PB程序開發(fā):使用PowerBuilder開發(fā)一個前臺程序,可以按照學生學號查詢學生的課程成績。 注: ASA數(shù)據(jù)庫支持的SQL語句可以參考PB自帶的幫助文件dbmaen8.chm PowerBu
13、ilder的語法可以參考PB自帶的幫助文件pbman90.chm,22,數(shù)據(jù)庫系統(tǒng)上機輔導,上機作業(yè)要求 設計學籍管理系統(tǒng) 數(shù)據(jù)庫上機作業(yè)報告 上機環(huán)境介紹 PowerBuilder簡介 PowerScript語言 后臺設計和前臺開發(fā) 上機環(huán)境的保存和恢復,23,例子,學生成績數(shù)據(jù)庫的建立過程 進入PowerBuilder 打開Database Painter 建立數(shù)據(jù)庫xjgl(不要使用事務日志) 下面的步驟可以采用SQL語句完成,或使用菜單輔助完成 建立表student、course、score 設置主碼、外碼:course、student、score 輸入數(shù)據(jù):course、studen
14、t、score 下一步,24,打開Database Painter,25,建立ASA數(shù)據(jù)庫,26,設置數(shù)據(jù)庫文件保存路徑,27,用SQL語句建表、主外碼、輸入數(shù)據(jù),28,使用菜單建表,29,使用菜單建表,30,使用菜單建表,31,使用菜單建表,32,使用菜單建表,33,使用菜單建立主碼,34,使用菜單建立主碼,35,使用菜單建立主碼,36,使用菜單建立主碼,37,使用菜單建立主碼,38,使用菜單建立外碼,39,使用菜單建立外碼,40,使用菜單建立外碼,41,使用菜單建立外碼,42,使用菜單建立外碼,43,使用菜單建立外碼,44,使用菜單建立外碼,45,使用菜單輸入數(shù)據(jù),46,使用菜單輸入數(shù)據(jù),
15、47,使用菜單輸入數(shù)據(jù),48,使用菜單輸入數(shù)據(jù),49,使用菜單輸入數(shù)據(jù),50,例子,前臺查詢程序的開發(fā)過程 建立workspace 建立application 建立數(shù)據(jù)窗口對象dw_cj 注:可以查看、修改其中包含的SQL語句 建立主窗口w_main 在主窗口上放置控件 注:數(shù)據(jù)窗口控件dw_1要和數(shù)據(jù)窗口對象dw_cj相關(guān)聯(lián) 在查詢和退出按鈕中加入代碼 在應用對象的open和close事件中加入代碼 運行程序 下一步,51,建立workspace,52,建立application,53,建立application,54,application對象建立完畢,55,建立數(shù)據(jù)窗口對象選擇顯示形式,
16、56,建立數(shù)據(jù)窗口對象選擇數(shù)據(jù)源,57,建立數(shù)據(jù)窗口對象選擇數(shù)據(jù)源,58,建立數(shù)據(jù)窗口對象,59,建立數(shù)據(jù)窗口對象,60,建立數(shù)據(jù)窗口對象,61,建立數(shù)據(jù)窗口對象,62,建立數(shù)據(jù)窗口對象,63,建立數(shù)據(jù)窗口對象,64,保存數(shù)據(jù)窗口對象,65,查看數(shù)據(jù)窗口對象中的SQL語句,66,查看數(shù)據(jù)窗口對象中的SQL語句,67,數(shù)據(jù)窗口對象中的SQL語句,68,建立主窗口,69,放置數(shù)據(jù)窗口控件,70,關(guān)聯(lián)數(shù)據(jù)窗口控件和數(shù)據(jù)窗口對象,71,放置其他控件(單行編輯框、按鈕等),72,編寫查詢按鈕的代碼,73,編寫退出按鈕的代碼,74,編寫應用對象的open事件代碼,75,編寫應用對象的close事件代碼,7
17、6,運行結(jié)果,77,數(shù)據(jù)庫系統(tǒng)上機輔導,上機作業(yè)要求 設計學籍管理系統(tǒng) 數(shù)據(jù)庫上機作業(yè)報告 上機環(huán)境介紹 PowerBuilder簡介 PowerScript語言 后臺設計和前臺開發(fā) 上機環(huán)境的保存和恢復,78,上機環(huán)境的保存和恢復,保存 數(shù)據(jù)庫文件 程序文件 恢復 在操作系統(tǒng)中設置ODBC 在Database Painter中設置profile建立設計模式下的數(shù)據(jù)庫連接,79,數(shù)據(jù)庫文件和程序文件,80,打開ODBC,81,建立基于ASA的ODBC數(shù)據(jù)源,82,設置ODBC數(shù)據(jù)源的名字,83,設置ODBC數(shù)據(jù)源的用戶名dba和密碼sql,84,選擇數(shù)據(jù)庫文件,85,ODBC數(shù)據(jù)源建立完畢,86,PB中新建profile,87,關(guān)聯(lián)profile和ODBC數(shù)據(jù)源,88,通過ODBC連接ASA數(shù)據(jù)庫,89,連接成功,