《個人辦公助理》數(shù)據(jù)庫設(shè)計報告_第1頁
《個人辦公助理》數(shù)據(jù)庫設(shè)計報告_第2頁
《個人辦公助理》數(shù)據(jù)庫設(shè)計報告_第3頁
《個人辦公助理》數(shù)據(jù)庫設(shè)計報告_第4頁
《個人辦公助理》數(shù)據(jù)庫設(shè)計報告_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、個人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 1 of 13 個人辦公助理 數(shù)據(jù)庫設(shè)計報告文件標(biāo)識:citsoft-GRBGZL-DOC-DB當(dāng)前版本:1.0作 者:文件狀態(tài): 草稿 正式發(fā)布 正在修改完成日期:2012-12-1長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院實訓(xùn)項目 x 組個人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 2 of 13變更歷史變更歷史序號序號變更內(nèi)容變更內(nèi)容變更頁變更頁變更類別變更類別變更者變更者1增加/修改/刪除23456789101112個人辦公助理數(shù)據(jù)庫設(shè)計報

2、告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 3 of 13目錄目錄目錄0. 文檔介紹文檔介紹 .40.1 文檔目的.40.2 文檔范圍.40.3 讀者對象.40.4 參考文獻(xiàn).40.5 術(shù)語與縮寫解釋.41. 數(shù)據(jù)庫環(huán)境說明數(shù)據(jù)庫環(huán)境說明 .52. 數(shù)據(jù)庫的命名規(guī)則數(shù)據(jù)庫的命名規(guī)則 .53. 邏輯設(shè)計邏輯設(shè)計 .54. 物理設(shè)計物理設(shè)計 .54.0 表匯總.54.1 用戶表 USERS.64.2 事件信息表 EVENTS.65. 序列設(shè)計序列設(shè)計 .65.0 序列匯總.75.1 序列 USER_SEQ.75.2 序列 EVENT_SEQ.76. 觸發(fā)器設(shè)計觸發(fā)

3、器設(shè)計 .76.0 觸發(fā)器匯總.86.1 觸發(fā)器BI_USERS_USERID.86.2 觸發(fā)器BI_EVENTS_EVENTID.87. 程序包設(shè)計程序包設(shè)計 .97.0 程序包匯總.97.1 程序包USERS_PKGS.97.2 程序包EVENTS_PKGS.13個人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 4 of 130. 文檔介紹文檔介紹0.1 文檔目的文檔目的該文檔為本項目的數(shù)據(jù)庫設(shè)計,主要是對個人辦公助理系統(tǒng)的數(shù)據(jù)庫進(jìn)行了詳細(xì)的設(shè)計,供程序開發(fā)人員使用。0.2 文檔范圍文檔范圍該文檔為個人辦公助理系統(tǒng)的數(shù)據(jù)庫設(shè)計文檔,其中主

4、要包括數(shù)據(jù)庫中各對象(如表、視圖、序列、觸發(fā)器、程序包等對象)的詳細(xì)設(shè)計及部分 PL/SQL 程序代碼,供程序開發(fā)人員使用。0.3 讀者對象讀者對象讀者對象是系統(tǒng)開發(fā)人員,開發(fā)人員以此為依據(jù)進(jìn)行對數(shù)據(jù)庫各對象進(jìn)行相應(yīng)操作,開發(fā)人員需理解設(shè)計對象的功能及使用方法。0.4 參考文獻(xiàn)參考文獻(xiàn)提示:提示:列出本文檔的所有參考文獻(xiàn)(可以是非正式出版物) ,格式如下:標(biāo)識符 作者,文獻(xiàn)名稱,出版單位(或歸屬單位) ,日期例如:例如:AAA 作者, 立項建議書 ,機(jī)構(gòu)名稱,日期 SPP-PROC-SD SEPG,系統(tǒng)設(shè)計規(guī)范,機(jī)構(gòu)名稱,日期0.5 術(shù)語與縮寫解釋術(shù)語與縮寫解釋縮寫、術(shù)語縮寫、術(shù)語解解 釋釋個

5、人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 5 of 131. 數(shù)據(jù)庫環(huán)境說明數(shù)據(jù)庫環(huán)境說明提示:提示: (1)說明所采用的數(shù)據(jù)庫系統(tǒng),設(shè)計工具,編程工具等(2)詳細(xì)配置采用的數(shù)據(jù)庫為 Oracle10g,使用 SQLplus 工具編寫 sql 語句及 PL/SQL 程序。服務(wù)器在運(yùn)行時需啟動 service 服務(wù)和監(jiān)聽服務(wù),監(jiān)聽?wèi)?yīng)用程序端對數(shù)據(jù)庫的操作2. 數(shù)據(jù)庫的命名規(guī)則數(shù)據(jù)庫的命名規(guī)則提示:提示:(1)完整并且清楚的說明本數(shù)據(jù)庫的命名規(guī)則。(2)如果本數(shù)據(jù)庫的命名規(guī)則與機(jī)構(gòu)的標(biāo)準(zhǔn)不完全一致的話,請作出解釋。各對象命名規(guī)則遵循駝峰式命

6、名規(guī)則,并且見名知意。在命名時各對象需在對象名前加上組號 XXX(學(xué)號后三位),如組號 XXX(學(xué)號后三位)_對象名。標(biāo)識符如由兩個單詞以上構(gòu)成,則第二個單詞開始首字母大寫3. 邏輯設(shè)計邏輯設(shè)計提示:提示:數(shù)據(jù)庫設(shè)計人員根據(jù)需求文檔,創(chuàng)建與數(shù)據(jù)庫相關(guān)的那部分實體關(guān)系圖(ERD) 。如果采用面向?qū)ο蠓椒ǎ∣OAD) ,這里實體相當(dāng)于類(class) 。4. 物理設(shè)計物理設(shè)計提示:提示:(1)主要是設(shè)計表結(jié)構(gòu)。一般地,實體對應(yīng)于表,實體的屬性對應(yīng)于表的列,實體之間的關(guān)系成為表的約束。邏輯設(shè)計中的實體大部分可以轉(zhuǎn)換成物理設(shè)計中的表,但是它們并不一定是一一對應(yīng)的。(2)對表結(jié)構(gòu)進(jìn)行規(guī)范化處理(第三范式

7、) 。該數(shù)據(jù)庫的所有表信息都存儲在 grbgzl_tbs 表空間上,數(shù)據(jù)文件位置為 D:grbgzl grbgzl.dbf ,初始大小為 10M,自動擴(kuò)展,每次擴(kuò)展 1M,最大不限,分區(qū)管理采用本地自動分配管理,自動進(jìn)行段空間管理。連接數(shù)據(jù)庫的用戶為 test,其默認(rèn)表空間為 grbgzl_tbs,其角色為CONNECT,RESOURCE,DBA 。個人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 6 of 134.0 表匯總表匯總表名功能說明用戶表 Users記載用戶信息事件信息表 Events記載各用戶的事件信息4.1 用戶表用戶表 Us

8、ers表名Users列名列說明數(shù)據(jù)類型(精度范圍)空/非空約束條件UserId用戶的惟一編號Varchar2(20)非空主鍵LoginName用戶登錄名稱Varchar2(20)非空惟一Password用戶登錄密碼Varchar2(20)非空Name用戶姓名Varchar2(20)Description關(guān)于用戶的描述Varchar2(2000)補(bǔ)充說明用戶的惟一編號構(gòu)成為:Usr0000+序列值4.2 事件信息表事件信息表 Events表名Events列名列說明數(shù)據(jù)類型(精度范圍)空/非空約束條件EventId事件的惟一編號Varchar2(20)非空主鍵EventName事件的標(biāo)題Varch

9、ar2(100)非空EventContent事件的內(nèi)容梗概Varchar2(2000)EventDesc事件描述Varchar2(2000)EventExer事件執(zhí)行者Varchar2(20)非空外鍵PlanBeginTime計劃開始時間datePlanFinishTime計劃結(jié)束時間dateFinalFinishTime最晚結(jié)束時間dateActBeginTime實際開始時間dateActFinishTime實際結(jié)束時間dateIsFinished事件是否完成Char(1)默認(rèn)為NIsExpired事件是否過期Char(1)默認(rèn)為NIsDeleted事件是否刪除Char(1)默認(rèn)為N補(bǔ)充說明

10、序列的惟一編號構(gòu)成為:Evt0000+序列值個人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 7 of 135. 序列設(shè)計序列設(shè)計提示:提示:主要是設(shè)計在該項目中所應(yīng)用的序列5.0 序列匯總序列匯總序列名功能說明序列 User_seq用戶序列序列 Event_seq事件序列5.1 序列序列 User_seq提示:提示:對序列說明其功能、應(yīng)用的表、及序列的代碼功能:功能:該序列用于產(chǎn)生用戶的惟一編號,將該序列與觸發(fā)器結(jié)合使用,可為每個新注冊的用戶產(chǎn)生惟一的編號。應(yīng)用于表:應(yīng)用于表:該序列將應(yīng)用于表 Users序列代碼:序列代碼:CREATE S

11、EQUENCE User_SeqSTART WITH 1INCREMENT BY 1CACHE 20.5.2 序列序列 Event_seq提示:提示:對序列說明其功能、應(yīng)用的表、及序列的代碼功能:功能:該序列用于產(chǎn)生事件的惟一編號,將該序列與觸發(fā)器結(jié)合使用,可為每個新添加的事件產(chǎn)生惟一的編號。應(yīng)用于表:應(yīng)用于表:該序列將應(yīng)用于表 Events序列代碼:序列代碼:CREATE SEQUENCE Event_SeqSTART WITH 1INCREMENT BY 1CACHE 20個人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 8 of 136

12、. 觸發(fā)器設(shè)計觸發(fā)器設(shè)計提示:提示:主要是設(shè)計在該項目中所應(yīng)用的觸發(fā)器6.0 觸發(fā)器匯總觸發(fā)器匯總觸發(fā)器名功能說明觸發(fā)器 bi_users_userId實現(xiàn) Users 表產(chǎn)生惟一編號的功能觸發(fā)器 bi_events_eventId實現(xiàn) Events 表產(chǎn)生惟一編號的功能6.1 觸發(fā)器觸發(fā)器 bi_users_userId提示:提示:對觸發(fā)器說明其功能、及觸發(fā)器的代碼功能:實現(xiàn) Users 表產(chǎn)生惟一編號的功能觸發(fā)器代碼:CREATE OR REPLACE TRIGGER bi_users_userIdBEFORE insert ON usersFOR EACH ROWDECLARE new_

13、id number;BEGIN SELECT User_seq.nextval INTO new_id FROM DUAL; :new.userid:=usr|lpad(new_id,4,0);END;6.2 觸發(fā)器觸發(fā)器 bi_events_eventId提示:提示:對觸發(fā)器說明其功能、及觸發(fā)器的代碼功能:實現(xiàn) Events 表產(chǎn)生惟一編號的功能觸發(fā)器代碼:CREATE OR REPLACE TRIGGER bi_events_eventIdBEFORE insert ON eventsFOR EACH ROWDECLARE個人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORAC

14、LE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 9 of 13 new_id number;BEGIN SELECT Event_seq.nextval INTO new_id FROM DUAL; :new.eventid:=evt|lpad(new_id,4,0);END;7. 程序包設(shè)計程序包設(shè)計提示:提示:主要是設(shè)計在該項目中所應(yīng)用的程序包的功能及實現(xiàn)代碼7.0 程序包匯總程序包匯總程序包名功能說明程序包 users_pkgs用戶信息處理包程序包 events_pkgs事件信息處理包7.1 程序包程序包 users_pkgs提示:提示:對程序包說明其功能、包規(guī)范及包體的代碼功能功能:用于實現(xiàn)獲取用戶

15、信息、增加或修改用戶信息,在該包中有三個公有存儲過程:saveUsers():用于存儲用戶信息getUsers():用于查詢用戶信息,該存儲過程為重載,可根據(jù)用戶編號進(jìn)行查詢用戶信息或根據(jù)用戶登錄名及密碼查詢用戶信息updateUsers():用于修改用戶信息,只有 UserId 不能修改程序包規(guī)范程序包規(guī)范:CREATE OR REPLACE PACKAGE users_pkgs IS-定義一個動態(tài)游標(biāo),用于存儲查找到的記錄信息 TYPE curUser IS REF cursor;-定義一些常量,用不同數(shù)值表示不同含義 Success constant integer:=1; UserEx

16、ist constant integer:=-1; UserNotExist constant integer:=-2; UserNotExistOrPasswordError constant integer:=-3; UnKonwError constant integer:=-8;-定義存儲過程,用于存儲用戶信息個人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 10 of 13Procedure saveUsers (var_userId out Varchar2, var_loginName in varchar2, var_pass

17、word in varchar2, var_name in varchar2, var_description in varchar2, result out number );-定義存儲過程,用于根據(jù) userId 查找用戶信息 Procedure getUsers (var_userId in Varchar2, var_user out curUser, result out number );-定義存儲過程,用于根據(jù)登錄名和密碼查找用戶信息 Procedure getUsers (var_loginName in Varchar2, var_password in varchar2,

18、var_user out curUser, result out number );-定義存儲過程,用于根據(jù) userId 修改用戶的其他信息 Procedure updateUsers (var_userId in Varchar2, var_oldPassword in varchar2, var_newPassword in varchar2, var_newName in varchar2, var_newDescription in varchar2, result out number ); end users_pkgs;/程序包包體代碼程序包包體代碼:CREATE OR REPL

19、ACE PACKAGE BODY users_pkgs IS-定義存儲過程,用于存儲用戶信息 Procedure saveUsers (var_userId out Varchar2, var_loginName in varchar2, var_password in varchar2,個人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 11 of 13 var_name in varchar2, var_description in varchar2, result out number ) AS isExist integer:=0; u

20、serHasExist exception; BEGIN select count(*) into isExist from users where lower(loginName)= lower(var_loginName); if isExist0 then raise userHasExist; else insert into users(loginName,password,name,description) values(var_loginName,var_password,var_name,var_description); select userId into var_user

21、id from users where lower(loginName)= lower(var_loginName); commit; result:=Success; end if; EXCEPTION WHEN userHasExist THEN var_usrId:=null; result:=UserExist ; WHEN others THEN result:=UnKonwError ; END saveUsers;-定義存儲過程,用于根據(jù) userId 查找用戶信息 Procedure getUsers (var_userId in Varchar2, var_user out

22、curUser, result out number ) AS notExist exception; BEGIN IF NOT EXISTS (SELECT * FROM users WHERE lower(userId)=lower(var_userId) THEN OPEN var_user FOR select * from dual; RAISE notExist; ELSE OPEN var_user FOR select * from users WHERE lower(userId)=lower(var_userId);個人辦公助理數(shù)據(jù)庫設(shè)計報告長春工程學(xué)院計算機(jī)工程與技術(shù)學(xué)院

23、 ORACLE 數(shù)據(jù)庫項目開發(fā)實訓(xùn)Page 12 of 13 result:=success; END IF; EXCEPTION WHEN notExist THEN result:=UserNotExist ; WHEN others THEN result:=UnKonwError ; END getUsers;-定義存儲過程,用于根據(jù)登錄名和密碼查找用戶信息 Procedure getUsers (var_loginName in Varchar2, var_password in varchar2, var_user out curUser, result out number )

24、AS notExistorPasswordError exception; BEGINIF NOT EXISTS (SELECT * FROM users WHERE lower(loginName)=lower(var_loginName) AND lower(password)=lower(var_password) THEN OPEN var_user FOR select * from dual; RAISE notExist; ELSE OPEN var_user FOR select * from users WHERE lower(loginName)=lower(var_loginName) AND lower(password)=lower(var_password); result:=success; END IF; EXCEPTION WHEN notExistorPasswordError THEN result:=UserNotExistorPasswordError ; WHEN others THEN result:=UnKonwError

溫馨提示

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

最新文檔

評論

0/150

提交評論