在線考試系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)【教學(xué)作業(yè)】
《在線考試系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)【教學(xué)作業(yè)】》由會(huì)員分享,可在線閱讀,更多相關(guān)《在線考試系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)【教學(xué)作業(yè)】(31頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 數(shù)據(jù)庫設(shè)計(jì)文檔 成員:曹麗瓊 馮繼偉 劉維毅 班級(jí)08軟工三班 指導(dǎo)老師:郭東恩 日 期:2011-5-22 目錄 數(shù)據(jù)庫設(shè)計(jì)文檔 1 目錄 2 數(shù)據(jù)庫設(shè)計(jì)文檔 3 1 引言 3 1.1 編寫目的 3 1.2 項(xiàng)目來源 3 1.3 文檔約定 3 1.4 預(yù)期讀者和閱讀建議 3 1.5 參考資料 3 2 數(shù)據(jù)庫命名規(guī)則 4 3 數(shù)據(jù)庫設(shè)計(jì)說明 5 3.1 數(shù)據(jù)庫邏輯設(shè)計(jì) 5 數(shù)據(jù)詞典 5 實(shí)體關(guān)系 6 E_R圖 1
2、0 SR關(guān)系: 10 3.2 數(shù)據(jù)庫物理設(shè)計(jì) 11 3.3 數(shù)據(jù)庫分布 11 3.4 基表設(shè)計(jì) 11 3.4.1. tb_user: 考生信息表 12 3.4.2. tb_invigilate: 監(jiān)考人員信息表 13 3.4.3. tb_admin: 管理員信息表 13 3.4.4. tb_page:考試試卷信息表 14 3.4.5. tb_select:選擇題信息表 15 3.4.6. tb_boolean:判斷題信息表 16 3.4.7. tb_answer:簡(jiǎn)答題信息表 17 3.4.8. tb_subject:考試科目信息表 18 3.5 視圖設(shè)計(jì) 19 3
3、.6 索引設(shè)計(jì) 19 3.7 序列設(shè)計(jì) 19 3.8 完整性設(shè)計(jì) 20 3.9 授權(quán)設(shè)計(jì) 20 3.10 觸發(fā)器設(shè)計(jì) 20 3.11 存儲(chǔ)過程設(shè)計(jì) 24 3.11.1 CRUD中的CUD三個(gè)操作 24 3.12 數(shù)據(jù)復(fù)制設(shè)計(jì) 26 4 查詢記錄語句 26 5 詞匯表 27 6 歷史數(shù)據(jù)處理 27 數(shù)據(jù)庫設(shè)計(jì)文檔 1 引言 1.1 編寫目的 本文檔是本項(xiàng)目開發(fā)中至關(guān)重要的一部分,通過本檔編寫,對(duì)本項(xiàng)目中相關(guān)數(shù)據(jù)存儲(chǔ)信息進(jìn)行明確定位,對(duì)數(shù)據(jù)結(jié)構(gòu)等相關(guān)信息進(jìn)行明確說明。本文檔盡可能的詳細(xì)說明各個(gè)實(shí)體的屬性及相互聯(lián)系,使開發(fā)人員的開發(fā)效率盡可能增加。 1.2 項(xiàng)目來源
4、 ? 實(shí)訓(xùn)要求 ? 開發(fā)人員:全體成員 ? 文檔使用者:oracle 開發(fā)人員、 程序設(shè)計(jì)人員 1.3 文檔約定 1.4 預(yù)期讀者和閱讀建議 ? 開發(fā)人員: 對(duì)oracle和java熟悉 ? 測(cè)試人員: 對(duì)java及oracle有一定的了解 1.5 參考資料 1 《在線考試系統(tǒng)可行性分析》 2 《在線考試系統(tǒng)需求分析》 3 《項(xiàng)目(bbs)數(shù)據(jù)庫設(shè)計(jì)文檔—?jiǎng)⒕S毅》 4 2 數(shù)據(jù)庫命名規(guī)則 ? db_examonline: 在線考試系統(tǒng)數(shù)據(jù)庫 ? tb_invigilate: 監(jiān)考人員 ? tb_user: 學(xué)生或用戶信息表 ? tb_select:選擇題
5、相關(guān)信息表 ? tb_answer:簡(jiǎn)答題相關(guān)信息 ? tb_boolean:判斷題相關(guān)信息 ? tb_admin: 管理員信息表 ? tb_page:數(shù)據(jù)庫測(cè)試試題 3 數(shù)據(jù)庫設(shè)計(jì)說明 3.1 數(shù)據(jù)庫邏輯設(shè)計(jì) 數(shù)據(jù)字典 l 考生屬性:編號(hào)tid,姓名uname,登錄密碼upassword,學(xué)號(hào)uno,班級(jí)uclass,考試狀態(tài)ustate l 監(jiān)考人員屬性:編號(hào)tid,姓名name,登錄密碼password l 管理員屬性:編號(hào)aid,姓名name,登錄密碼password l 試卷屬性:編號(hào)pid,科目subject, 選擇題數(shù)量snum, 判斷題數(shù)量bnum,
6、 問答題數(shù)量anum,考試時(shí)間pageDate l 選擇題屬性:編號(hào)id,題目name,選項(xiàng)A optionA,選項(xiàng)B optionB,選項(xiàng)C option C,選項(xiàng)D optionD,所屬科目subject l 判斷題屬性:編號(hào)id,題目name,對(duì)選項(xiàng)yes,錯(cuò)選項(xiàng)no ,所屬科目subject l 簡(jiǎn)答題屬性:編號(hào)id,題目name, 所屬科目subject l 科目屬性:編號(hào)sid,科目subject 實(shí)體關(guān)系 編號(hào) 姓名 學(xué)號(hào) 考試狀態(tài) 登錄密碼 班級(jí) 考生 監(jiān)考人員 編號(hào) 姓名 登錄密碼 管理員 姓名 登錄密碼 編號(hào) 考試試卷
7、選擇題數(shù)目 判斷題數(shù)目 科目名稱 簡(jiǎn)答題數(shù)目 編號(hào) 編號(hào) 題目 選項(xiàng)A 科目名稱 選項(xiàng)D 選項(xiàng)B 選項(xiàng)C 選擇題 判斷題 題目 科目名稱 編號(hào) 考試時(shí)間 簡(jiǎn)答題 題目 科目名稱 編號(hào) 科目 科目名稱 編號(hào) E_R圖 考生 監(jiān)考人員 管理員 選擇題 簡(jiǎn)答題 判斷題 科目 考試試卷 組成 監(jiān)考 管理 做 組成 S—R關(guān)系: 學(xué)生關(guān)系表:Stb_user(usid,uname,upassword,uno,uclass,ustate) 監(jiān)考人員關(guān)系表:Stb_invigilate(tid,name,passw
8、ord) 管理員信息關(guān)系:Stb_admin(aid,name,password) 考試試卷信息關(guān)系:Stb_page(usid,pid,subject,snum,bnum,anum,pageDate) 選擇題信息關(guān)系:Stb_select(id,pid,subject,name, optionA,optionB,optionC,optionD) 判斷題信息關(guān)系:Stb_boolean(id,pid,subject,name,yes,no) 簡(jiǎn)答題信息關(guān)系:Stb_answer(id,pid,subject,name) 科目信息關(guān)系:Stb_subject(sid,subje
9、ct) 3.2 數(shù)據(jù)庫物理設(shè)計(jì) 暫無 3.3 數(shù)據(jù)庫分布 暫無 3.4 基表設(shè)計(jì) 在線考試系統(tǒng)數(shù)據(jù)庫: 3.4.1. tb_user: 考生信息表 屬性:編號(hào)Tid,姓名name,登錄密碼password,學(xué)號(hào)number,班級(jí)class,考試狀態(tài)state 字段名稱 數(shù)據(jù)類型 長度 主鍵 描述 Tid number 10 是 主鍵標(biāo)識(shí) uname Varchar2 50 否 學(xué)生姓名 upassword char 16 否 登錄密碼 uno number 10 否 學(xué)號(hào) uclass Varchar2
10、 50 否 班級(jí) ustate number 1 否 考試狀態(tài) Create table tb_user( Tid number(10) primary key, Uname varchar2(50), Upassword char(16), Uno number(10), Uclass varchar2(50), Ustate number(1) ); 3.4.2. tb_invigilate: 監(jiān)考人員信息表 屬性:編號(hào)tid,姓名name,登錄密碼password 字段名稱 數(shù)據(jù)類型 長度 主鍵 描述 t
11、id number 10 是 主鍵標(biāo)識(shí) name Varchar2 50 否 姓名 password char 16 否 登錄密碼 Create table tb_invigilate( Tid number(10) primary key, Name varchar2 (50), Password char(16) ); 3.4.3. tb_admin: 管理員信息表 屬性:編號(hào)aid,姓名name,登錄密碼password 字段名稱 數(shù)據(jù)類型 長度 主鍵 描述 aid number 10 是 主鍵標(biāo)識(shí)
12、 name Varchar2 50 否 姓名 password char 16 否 登錄密碼 Create table tb_admin( Aid number(10) primary key, Name varchar2(50), Password char(16) ); 3.4.4. tb_page:考試試卷信息表 屬性:編號(hào)pid,科目subject, 選擇題數(shù)量snum, 判斷題數(shù)量bnum, 問答題數(shù)量anum,考試時(shí)間pageDate 字段名稱 數(shù)據(jù)類型 長度 主鍵 描述 pid
13、number 10 是 主鍵標(biāo)識(shí) subject Varchar2 50 否 科目(外鍵) snum number 2 否 選擇題數(shù)量 bnum number 2 否 判斷題數(shù)量 anum number 2 否 問答題數(shù)量 pageDate date / 否 考試時(shí)間 tid number 10 是 學(xué)生編號(hào)(外鍵) Create table tb_page( Pid number(10) primary key, Subject varchar2(50), S
14、num number(2), Bnum number(2), Anum number(2), pageDate date, tid number(10), constraint page_FK foreign key (subject) references tb_subject(subject), constraint page_FK2 foreign key(tid) references tb_user(tid)
15、 ); 3.4.5. tb_select:選擇題信息表 屬性:編號(hào)id,題目name,選項(xiàng)A optionA,選項(xiàng)B optionB,選項(xiàng)C option C,選項(xiàng)D optionD,所屬科目subject 字段名稱 數(shù)據(jù)類型 長度 主鍵 描述 id number 10 是 主鍵標(biāo)識(shí) name Varchar2 50 否 題目 optionA Varchar2 100 否 選項(xiàng)A optionB Varchar2 100 否 選項(xiàng)B optionC Varchar2 100 否 選項(xiàng)C optionD
16、 Varchar2 100 否 選項(xiàng)D subject Varchar2 50 否 科目(外鍵) pid number 10 是 試卷編號(hào)(外鍵) Create table tb_select( Id number(10) primary key, Name varchar2(50), optionA varchar2(100), optionB varchar2(100), optionC varchar2(100), optionD varchar2(100),
17、 subject varchar2(50), pid number(10), constraint select_FK foreign key(subject) references tb_subject(subject), constraint select_FK2 foreign key(pid) references tb_page(pid) ); 3.4.6. tb_boolean:判斷題信息表 屬性:編號(hào)id,題目name,對(duì)選項(xiàng)yes,錯(cuò)選項(xiàng)no ,所
18、屬科目subject 字段名稱 數(shù)據(jù)類型 長度 主鍵 描述 id number 10 是 主鍵標(biāo)識(shí) name Varchar2 50 否 題目 subject Varchar2 50 否 科目(外鍵) pid number 10 否 試卷編號(hào)(外鍵) Create table tb_boolean( id number(10) primary key, Name varchar2(50), Subject varchar2(50), Pid number(1
19、0), constraint boolean_FK foreign key(subject) references tb_subject(subject), constraint boolean_FK2 foreign key(pid) references tb_page(pid) ); 3.4.7. tb_answer:簡(jiǎn)答題信息表 屬性:編號(hào)id,題目name, 所屬科目subject 字段名稱 數(shù)據(jù)類型 長度 主鍵 描述 id number 5 是 主鍵標(biāo)識(shí) name Varcha
20、r2 50 否 題目 subject Varchar2 50 否 科目(外鍵) pid number 10 否 試卷編號(hào)(外鍵) Create table tb_answer( Id number(5) primary key, Name varchar2(50), Subject varchar2(50), Pid number(10), constraint answer_FK foreign key(subject) references tb_subject(subject), constra
21、int answer_FK2 foreign key(pid) references tb_page(pid) ); 3.4.8. tb_subject:考試科目信息表 屬性:編號(hào)sid,科目subject 字段名稱 數(shù)據(jù)類型 長度 主鍵 描述 sid number 10 否 科目自增編號(hào) subject Varchar2 50 是 主鍵標(biāo)識(shí) Create table tb_subject( Sid number(10) , Subject varchar2(50) pr
22、imary key ); //備注uid是關(guān)鍵字已被系統(tǒng)占用 3.5 視圖設(shè)計(jì) 3.6 索引設(shè)計(jì) 3.7 序列設(shè)計(jì) ? 設(shè)計(jì)目的:通過序列的設(shè)計(jì),可以使得編號(hào)可以進(jìn)行自增,從而達(dá)到設(shè)計(jì)目的。 l Tb_sq 序列自動(dòng)進(jìn)行遞增 初值為:1 遞增為:1 最大值:無 Create sequence tb_sq Increment by 1 Start with 1 Nomaxvalue Nocycle Cache 10; l Tb_invigilate_sq 監(jiān)考人員的 tid 自動(dòng)進(jìn)行遞增 Create sequence tb
23、_invigilate_sq Increment by 10 Start with 10 Nomaxvalue Nocycle Cache 10; 3.8 完整性設(shè)計(jì) 請(qǐng)參閱本文檔的基表設(shè)計(jì)的外鍵設(shè)置 3.9 授權(quán)設(shè)計(jì) 3.10 觸發(fā)器設(shè)計(jì) l Tb_user_trigger Create or replace trigger tb_user_trigger Before insert on tb_user For each row Declare Next_no number; Begin Select tb_sq.nextval Into nex
24、t_no From dual; :new.tid:=next_no; End; / --insert into tb_user (uname, upassword,uno, uclass, ustate) --values(…); l Tb_invigilate_trigger Create or replace trigger tb_invigilate_trigger Before insert on tb_invigilate For each row Declare Next_no number; Begin Select tb_sq.nextval In
25、to next_no From dual; :new.tid:=next_no; End; l Tb_admin_trigger Create or replace trigger tb_admin_trigger Before insert on tb_admin For each row Declare Next_no number; Begin Select tb_sq.nextval Into next_no From dual; :new.aid:=next_no; End; l Tb_page_trigger Create or replace
26、trigger tb_page_trigger Before insert on tb_page For each row Declare Next_no number; Begin Select tb_sq.nextval Into next_no From dual; :new.pid:=next_no; End; l Tb_select_trigger Create or replace trigger tb_select_trigger Before insert on tb_select For each row Declare Next_no nu
27、mber; Begin Select tb_sq.nextval Into next_no From dual; :new.id:=next_no; End; l Tb_boolean_trigger Create or replace trigger tb_boolean_trigger Before insert on tb_boolean For each row Declare Next_no number; Begin Select tb_sq.nextval Into next_no From dual; :new.id:=next_no; En
28、d; l Tb_answer_trigger Create or replace trigger tb_answer_trigger Before insert on tb_answer For each row Declare Next_no number; Begin Select tb_sq.nextval Into next_no From dual; :new.id:=next_no; End; l Tb_subject_trigger Create or replace trigger tb_subject_trigger Before insert
29、 on tb_subject For each row Declare Next_no number; Begin Select tb_sq.nextval Into next_no From dual; :new.sid:=next_no; End; 3.11 存儲(chǔ)過程設(shè)計(jì) 3.11.1 CRUD中的CUD三個(gè)操作 --向試卷表中插入信息(create操作) Create or replace procedure insert_tb_page( p_subject in tb_page.subject%type, p_snum in tb_page.snum
30、%type, p_bnum in tb_page.bnum%type, p_anum in tb_page.anum%type, p_pageDate in tb_page.pageDate%type, --插入系統(tǒng)時(shí)間sysdate p_tid in tb_page.tid%type )as Begin Insert into tb_page(subject,snum,bnum,anum,pageDate,tid) values (p_subject,p_snum,p_bnum,p_anum,p_pageDate,p_tid); Exception When DU
31、P_VAL_ON_INDEX then Dbms_output.put_line('subject primary key error!'); When others then Dbms_output.put_line('異常'); End insert_tb_page;--//執(zhí)行過程: execute insert_tb_page(‘’,’’,…); --向判斷題表中插入信息(create操作) Create or replace procedure insert_tb_boolean( b_name in tb_boolean.name%type, b_subject i
32、n tb_boolean.subject%type, b_pid in tb_boolean.pid%type) as begin Insert into tb_boolean(name, subject,pid) values (b_name,b_subject,b_pid); End insert_tb_boolean; --//執(zhí)行過程: execute insert_tb_boolean(‘’,’’,…); --向簡(jiǎn)答題表中插入信息 Create or replace procedure insert_tb_answer( a_name in tb_answer.
33、name%type, a_subject in tb_answer.subject%type, a_pid in tb_answer.pid%type ) as Begin Insert into tb_answer(name,subject,pid) values (a_name,a_subject,a_pid); End insert_tb_answer; --向科目表中插入信息 Create or replace procedure insert_tb_subject( s_subject in tb_subject.subject%type )as Begi
34、n Insert into tb_subject(subject) values (s_subject); Exception When DUP_VAL_ON_INDEX then Dbms_output.put_line('subject primary key error!'); When others then Dbms_output.put_line('異常'); End insert_tb_subject; --向選擇題表中插入信息 Create or replace procedure insert_tb_select( s_name tb_select.
35、name%type, s_optionA tb_select.optionA%type, s_optionB tb_select.optionB%type, s_optionC tb_select.optionC%type, s_optionD tb_select.optionD%type, s_subject tb_select.subject%type, s_pid tb_select.pid%type )as Begin Insert into tb_select(name, optionA, optionB, optionC, optionD, subject,
36、pid) values(s_name,s_optionA,s_optionB,s_optionC,s_optionD,s_subject,s_pid); End insert_tb_select; --管理員信息插入 Create or replace procedure insert_tb_admin( a_name in tb_admin.name%type, a_password in tb_admin.password%type )as Begin Insert into tb_admin(name, password) values (a_name,a_pass
37、word); End insert_tb_admin; 3.12 數(shù)據(jù)復(fù)制設(shè)計(jì) 暫無 4 查詢記錄語句 --隨機(jī)函數(shù) Select randnum from(select distinct round(dbms_random.value(1,60)) as randnum from dual Connect by rownum<=100 Order by randnum )where rownum<=20; --隨機(jī)查詢20條選擇題 Select * from tb_select where id in( Select * from (select rownum
38、rn from dual Connect by rownum<=100 order by Dbms_random.value) where Rownum<=20 ); --隨機(jī)查詢10條判斷題記錄 Select * from tb_boolean where id in( Select * from (select rownum rn from dual Connect by rownum<=100 order by Dbms_random.value) where Rownum<=10 ); --隨機(jī)查詢5條簡(jiǎn)答題記錄 Select * from tb_answer where id in( Select * from (select rownum rn from dual Connect by rownum<=100 order by Dbms_random.value) where Rownum<=5 ); 5 詞匯表 Primary key: 主鍵 foreign key:外鍵 6 歷史數(shù)據(jù)處理 導(dǎo)出數(shù)據(jù)庫:exp 用戶名/密碼 導(dǎo)入數(shù)據(jù)庫:imp 用戶名/密碼 Ms-dos 31 教育專業(yè)b
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國人民警察節(jié)(筑牢忠誠警魂感受別樣警彩)
- 2025正字當(dāng)頭廉字入心爭(zhēng)當(dāng)公安隊(duì)伍鐵軍
- XX國企干部警示教育片觀后感筑牢信仰之基堅(jiān)守廉潔底線
- 2025做擔(dān)當(dāng)時(shí)代大任的中國青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會(huì)圍繞六個(gè)干字提要求
- XX地區(qū)中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 支部書記上黨課筑牢清廉信念為高質(zhì)量發(fā)展?fàn)I造風(fēng)清氣正的環(huán)境
- 冬季消防安全知識(shí)培訓(xùn)冬季用電防火安全
- 2025加強(qiáng)政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進(jìn)持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個(gè)人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 幼兒園期末家長會(huì)長長的路慢慢地走