1、 tb_answer:简答题信息表 17 tb_subject:考试科目信息表 183.5 视图设计 193.6 索引设计 193.7 序列设计 193.8 完整性设计 203.9 授权设计 203.10 触发器设计 203.11 存储过程设计 243.11.1 CRUD中的CUD三个操作 243.12 数据复制设计 264 查询记录语句 265 词汇表 276 历史数据处理 271 引言1.1 编写目的本文档是本项目开发中至关重要的一部分,通过本档编写,对本项目中相关数据存储信息进行明确定位,对数据结构等相关信息进行明确说明。本文档尽可能的详细说明各个实体的属性及相互联系,使开发人员的开发效
2、率尽可能增加。1.2 项目来源 实训要求 开发人员:全体成员 文档使用者:oracle 开发人员、 程序设计人员1.3 文档约定1.4 预期读者和阅读建议 对oracle和java熟悉 测试人员: 对java及oracle有一定的了解1.5 参考资料1 在线考试系统可行性分析2 在线考试系统需求分析3 项目(bbs)数据库设计文档刘维毅4 2 数据库命名规则 db_examonline: 在线考试系统数据库 监考人员 学生或用户信息表选择题相关信息表简答题相关信息判断题相关信息 管理员信息表数据库测试试题3 数据库设计说明3.1 数据库逻辑设计数据字典 考生属性:编号tid,姓名uname,登
3、录密码upassword,学号uno,班级uclass,考试状态ustate 监考人员属性:编号tid,姓名name,登录密码password 管理员属性:编号aid,姓名name,登录密码password 试卷属性:编号pid,科目subject, 选择题数量snum, 判断题数量bnum, 问答题数量anum,考试时间pageDate 选择题属性:编号id,题目name,选项A optionA,选项B optionB,选项C option C,选项D optionD,所属科目subject 判断题属性:编号id,题目name,对选项yes,错选项no ,所属科目subject 简答题属性:
4、编号id,题目name, 所属科目subject 科目属性:编号sid,科目subject实体关系 编号姓名学号考试状态登录密码班级考生监考人员管理员考试试卷选择题数目判断题数目科目名称简答题数目题目选项A选项D选项B选项C选择题判断题考试时间简答题科目E_R图组成监考管理做SR关系:学生关系表:Stb_user(usid,uname,upassword,uno,uclass,ustate)监考人员关系表:Stb_invigilate(tid,name,password)管理员信息关系:Stb_admin(aid,name,password)考试试卷信息关系:Stb_page(usid,pid
5、,subject,snum,bnum,anum,pageDate)选择题信息关系:Stb_select(id,pid,subject,name,optionA,optionB,optionC,optionD)判断题信息关系:Stb_boolean(id,pid,subject,name,yes,no)简答题信息关系:Stb_answer(id,pid,subject,name)科目信息关系:Stb_subject(sid,subject)3.2 数据库物理设计暂无3.3 数据库分布3.4 基表设计在线考试系统数据库:3.4.1. tb_user: 考生信息表属性:编号Tid,姓名name,登录
6、密码password,学号number,班级class,考试状态state字段名称数据类型长度主键描述Tidnumber10是主键标识unameVarchar250否学生姓名upasswordchar16unouclassustate1Create 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: 监考人员信息表tidname
7、passwordCreate table tb_invigilate( Name varchar2 (50), Password char(16)3.4.3. tb_admin:aid Create table tb_admin( Aid number(10) primary key, Name varchar2(50),3.4.4. tb_page:考试试卷信息表 属性:pidsubject科目(外键)snum2选择题数量bnum判断题数量anum问答题数量pageDatedate/学生编号(外键) Create table tb_page( Pid number(10) primary k
8、ey, Subject varchar2(50), Snum 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)3.4.5. tb_select:选择题信息表idoptionA100optionBoptionCoptionD试卷编号(外
9、键) Create table tb_select( Id number(10) primary key, optionA varchar2(100), optionB varchar2(100), optionC varchar2(100), optionD varchar2(100), subject varchar2(50), pid number(10), constraint select_FK foreign key(subject) references constraint select_FK2 foreign key(pid) references tb_page(pid)3
10、.4.6. tb_boolean:判断题信息表 Create table tb_boolean( id number(10) primary key, Pid number(10), constraint boolean_FK foreign key(subject) references tb_subject(subject), constraint boolean_FK2 foreign key(pid) references3.4.7. tb_answer:简答题信息表5Create table tb_answer( Id number(5) primary key, constrain
11、t answer_FK foreign key(subject) references tb_subject(subject), constraint answer_FK2 foreign key(pid) references3.4.8. tb_subject:考试科目信息表sid科目自增编号 是 Create table tb_subject( Sid number(10) , Subject varchar2(50) primary key/备注uid是关键字已被系统占用3.5 视图设计3.6 索引设计3.7 序列设计设计目的:通过序列的设计,可以使得编号可以进行自增,从而达到设计目的。
12、 Tb_sq 序列自动进行递增初值为:递增为:最大值:无Create sequence tb_sq Increment by 1 Start with 1 Nomaxvalue Nocycle Cache 10; Tb_invigilate_sq监考人员的 tid 自动进行递增Create sequence tb_invigilate_sq Increment by 10 Start with 10NomaxvalueNocycleCache 10;3.8 完整性设计请参阅本文档的基表设计的外键设置3.9 授权设计3.10 触发器设计 Tb_user_triggerCreate or repl
13、ace trigger tb_user_triggerBefore insert on tb_userFor each rowDeclareNext_no number;BeginSelect tb_sq.nextvalInto next_noFrom dual;:new.tid:=next_no;End;-insert into tb_user (uname, upassword,uno, uclass, ustate)-values(); Tb_invigilate_triggerCreate or replace trigger tb_invigilate_triggerBefore i
14、nsert on tb_invigilate Tb_admin_triggerCreate or replace trigger tb_admin_triggerBefore insert on tb_adminBegin new.aid: Tb_page_triggerCreate or replace trigger tb_page_triggerBefore insert on tb_pagenew.pid: Tb_select_triggerCreate or replace trigger tb_select_triggerBefore insert on tb_selectnew.
15、id: Tb_boolean_triggerCreate or replace trigger tb_boolean_triggerBefore insert on tb_boolean Tb_answer_triggerCreate or replace trigger tb_answer_triggerBefore insert on tb_answer Tb_subject_triggerCreate or replace trigger tb_subject_triggerBefore insert on tb_subjectDeclare new.sid:3.11 存储过程设计3.1
16、1.1 CRUD中的CUD三个操作-向试卷表中插入信息(create操作)Create or replace procedure insert_tb_page(p_subject in tb_page.subject%type,p_snum in tb_page.snum%type,p_bnum in tb_page.bnum%type,p_anum in tb_page.anum%type,p_pageDate in tb_page.pageDate%type,-插入系统时间sysdatep_tid in tb_page.tid%type)as Insert into tb_page(sub
17、ject,snum,bnum,anum,pageDate,tid) values(p_subject,p_snum,p_bnum,p_anum,p_pageDate,p_tid);Exception When DUP_VAL_ON_INDEX thenDbms_output.put_line(subject primary key error!);When others then异常End insert_tb_page;-/执行过程: execute insert_tb_page(,);-向判断题表中插入信息(create操作)Create or replace procedure inser
18、t_tb_boolean(b_name in tb_boolean.name%type,b_subject in tb_boolean.subject%type,b_pid in tb_boolean.pid%type) asbeginInsert into tb_boolean(name, subject,pid) values(b_name,b_subject,b_pid);End insert_tb_boolean; execute insert_tb_boolean(,);-向简答题表中插入信息Create or replace procedure insert_tb_answer(a
19、_name in tb_answer.name%type,a_subject in tb_answer.subject%type,a_pid in tb_answer.pid%type)as 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)asInsert into tb_su
20、bject(subject) values(s_subject);End insert_tb_subject;-向选择题表中插入信息Create or replace procedure insert_tb_select(s_name tb_select.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
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2