版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库设计文档成员:曹丽琼 冯继伟 刘维毅 班级08软工三班 指导老师:郭东恩 日 期:2011-5-22 目录数据库设计文档1目录2数据库设计文档31引言31.1编写目的31.2项目来源31.3文档约定31.4预期读者和阅读建议31.5参考资料32数据库命名规则43数据库设计说明53.1数据库逻辑设计5数据词典5实体关系6E_R图10SR关系:103.2数据库物理设计113.3数据库分布113.4基表设计113.4.1.tb_user: 考生信息表123.4.2.tb_invigilate: 监考人员信息表133.4.3.tb_admin: 管理员信息表133.4.4.tb_page:考试试
2、卷信息表143.4.5.tb_select:选择题信息表153.4.6.tb_boolean:判断题信息表163.4.7.tb_answer:简答题信息表173.4.8.tb_subject:考试科目信息表183.5视图设计193.6索引设计193.7序列设计193.8完整性设计203.9授权设计203.10触发器设计203.11存储过程设计243.11.1CRUD中的CUD三个操作243.12数据复制设计264查询记录语句265词汇表276历史数据处理27数据库设计文档1 引言1.1 编写目的本文档是本项目开发中至关重要的一部分,通过本档编写,对本项目中相关数据存储信息进行明确定位,对数据结
3、构等相关信息进行明确说明。本文档尽可能的详细说明各个实体的属性及相互联系,使开发人员的开发效率尽可能增加。1.2 项目来源 实训要求 开发人员:全体成员 文档使用者:oracle 开发人员、 程序设计人员1.3 文档约定1.4 预期读者和阅读建议 开发人员: 对oracle和java熟悉 测试人员: 对java及oracle有一定的了解1.5 参考资料1 在线考试系统可行性分析2 在线考试系统需求分析3 项目(bbs)数据库设计文档刘维毅4 /viewthread.php?tid=104402 数据库命名规则 db_examonline: 在线考试
4、系统数据库 tb_invigilate: 监考人员 tb_user: 学生或用户信息表 tb_select:选择题相关信息表 tb_answer:简答题相关信息 tb_boolean:判断题相关信息 tb_admin: 管理员信息表 tb_page:数据库测试试题3 数据库设计说明3.1 数据库逻辑设计数据字典l 考生属性:编号tid,姓名uname,登录密码upassword,学号uno,班级uclass,考试状态ustatel 监考人员属性:编号tid,姓名name,登录密码passwordl 管理员属性:编号aid,姓名name,登录密码passwordl 试卷属性:编号pid,科目su
5、bject, 选择题数量snum, 判断题数量bnum, 问答题数量anum,考试时间pageDatel 选择题属性:编号id,题目name,选项A optionA,选项B optionB,选项C option C,选项D optionD,所属科目subjectl 判断题属性:编号id,题目name,对选项yes,错选项no ,所属科目subjectl 简答题属性:编号id,题目name, 所属科目subjectl 科目属性:编号sid,科目subject实体关系 编号姓名学号考试状态登录密码班级考生监考人员编号姓名登录密码管理员姓名登录密码编号考试试卷选择题数目判断题数目科目名称简答题数目编
6、号编号题目选项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,subject,snum,bnum,anum,pageDate)选择题信息关系:St
7、b_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,登录密码password,学号number,班级class,考试状态state字段名称
8、数据类型长度主键描述Tidnumber10是主键标识unameVarchar250否学生姓名upasswordchar16否登录密码unonumber10否学号uclassVarchar250否班级ustatenumber1否考试状态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: 监考人员信息表属性:编号tid
9、,姓名name,登录密码password字段名称数据类型长度主键描述tidnumber10是主键标识nameVarchar250否姓名passwordchar16否登录密码Create table tb_invigilate( Tid number(10) primary key, Name varchar2 (50), Password char(16) );3.4.3. tb_admin: 管理员信息表属性:编号aid,姓名name,登录密码password字段名称数据类型长度主键描述aidnumber10是主键标识nameVarchar250否姓名passwordchar16否登录密码C
10、reate table tb_admin( Aid number(10) primary key, Name varchar2(50), Password char(16) );3.4.4. tb_page:考试试卷信息表属性:编号pid,科目subject, 选择题数量snum, 判断题数量bnum, 问答题数量anum,考试时间pageDate字段名称数据类型长度主键描述pidnumber10是主键标识subjectVarchar250否科目(外键)snumnumber2否选择题数量bnumnumber2否判断题数量anumnumber2否问答题数量pageDatedate/否考试时间ti
11、dnumber10是学生编号(外键) Create table tb_page( Pid number(10) primary key, 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(t
12、id) );3.4.5. tb_select:选择题信息表属性:编号id,题目name,选项A optionA,选项B optionB,选项C option C,选项D optionD,所属科目subject字段名称数据类型长度主键描述idnumber10是主键标识nameVarchar250否题目optionAVarchar2100否选项AoptionBVarchar2100否选项BoptionCVarchar2100否选项CoptionDVarchar2100否选项DsubjectVarchar250否科目(外键)pidnumber10是试卷编号(外键) Create table tb_s
13、elect( Id number(10) primary key, Name varchar2(50), 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 tb_subject(subject), constraint select_FK2 foreign key(pid) refe
14、rences tb_page(pid) );3.4.6. tb_boolean:判断题信息表 属性:编号id,题目name,对选项yes,错选项no ,所属科目subject字段名称数据类型长度主键描述idnumber10是主键标识nameVarchar250否题目subjectVarchar250否科目(外键)pidnumber10否试卷编号(外键) Create table tb_boolean( id number(10) primary key, Name varchar2(50), Subject varchar2(50), Pid number(10), constraint bo
15、olean_FK foreign key(subject) references tb_subject(subject), constraint boolean_FK2 foreign key(pid) references tb_page(pid) );3.4.7. tb_answer:简答题信息表属性:编号id,题目name, 所属科目subject字段名称数据类型长度主键描述idnumber5是主键标识nameVarchar250否题目subjectVarchar250否科目(外键)pidnumber10否试卷编号(外键)Create table tb_answer( Id number
16、(5) primary key, Name varchar2(50), Subject varchar2(50), Pid number(10), constraint answer_FK foreign key(subject) references tb_subject(subject), constraint answer_FK2 foreign key(pid) references tb_page(pid) );3.4.8. tb_subject:考试科目信息表 属性:编号sid,科目subject字段名称数据类型长度主键描述sidnumber10否科目自增编号subjectVarc
17、har250 是主键标识 Create table tb_subject( Sid number(10) , Subject varchar2(50) primary key );/备注uid是关键字已被系统占用3.5 视图设计3.6 索引设计3.7 序列设计 设计目的:通过序列的设计,可以使得编号可以进行自增,从而达到设计目的。l Tb_sq 序列自动进行递增初值为:1递增为:1最大值:无Create sequence tb_sqIncrement by 1Start with 1NomaxvalueNocycleCache 10;l Tb_invigilate_sq监考人员的 tid 自动
18、进行递增Create sequence tb_invigilate_sqIncrement by 10Start with 10NomaxvalueNocycleCache 10;3.8 完整性设计请参阅本文档的基表设计的外键设置3.9 授权设计3.10 触发器设计l Tb_user_triggerCreate or replace trigger tb_user_triggerBefore insert on tb_userFor each rowDeclareNext_no number;BeginSelect tb_sq.nextvalInto next_noFrom dual;:new
19、.tid:=next_no;End;/-insert into tb_user (uname, upassword,uno, uclass, ustate)-values();l Tb_invigilate_triggerCreate or replace trigger tb_invigilate_triggerBefore insert on tb_invigilateFor each rowDeclareNext_no number;BeginSelect tb_sq.nextvalInto next_noFrom dual;:new.tid:=next_no;End;l Tb_admi
20、n_triggerCreate or replace trigger tb_admin_triggerBefore insert on tb_adminFor each rowDeclareNext_no number;Begin Select tb_sq.nextvalInto next_noFrom dual;:new.aid:=next_no;End;l Tb_page_triggerCreate or replace trigger tb_page_triggerBefore insert on tb_pageFor each rowDeclareNext_no number;Begi
21、n Select tb_sq.nextvalInto next_noFrom dual;:new.pid:=next_no;End;l Tb_select_triggerCreate or replace trigger tb_select_triggerBefore insert on tb_selectFor each rowDeclareNext_no number;BeginSelect tb_sq.nextvalInto next_noFrom dual;:new.id:=next_no;End;l Tb_boolean_triggerCreate or replace trigge
22、r tb_boolean_triggerBefore insert on tb_booleanFor each rowDeclareNext_no number;BeginSelect tb_sq.nextvalInto next_noFrom dual;:new.id:=next_no;End;l Tb_answer_triggerCreate or replace trigger tb_answer_triggerBefore insert on tb_answerFor each rowDeclareNext_no number;Begin Select tb_sq.nextvalInt
23、o next_noFrom dual;:new.id:=next_no;End;l Tb_subject_triggerCreate or replace trigger tb_subject_triggerBefore insert on tb_subjectFor each rowDeclare Next_no number;BeginSelect tb_sq.nextvalInto next_noFrom dual;:new.sid:=next_no;End;3.11 存储过程设计3.11.1 CRUD中的CUD三个操作-向试卷表中插入信息(create操作)Create or repl
24、ace 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)asBeginInsert into tb_page(subject,snum,bnum,anum,pageDate,tid) values(p_subj
25、ect,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 thenDbms_output.put_line(异常);End insert_tb_page;-/执行过程: execute insert_tb_page(,);-向判断题表中插入信息(create操作)Create or replace procedure insert_tb_boolean(b_name in t
26、b_%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_name in tb_answe
27、%type,a_subject in tb_answer.subject%type,a_pid in tb_answer.pid%type)as BeginInsert 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)asBeginInsert into tb_subject(s
28、ubject) values(s_subject);Exception When DUP_VAL_ON_INDEX thenDbms_output.put_line(subject primary key error!);When others thenDbms_output.put_line(异常);End insert_tb_subject;-向选择题表中插入信息Create or replace procedure insert_tb_select(s_name tb_%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)asBegin Insert into tb_select(name, optionA, optionB, optionC, optionD, subject, pid) values(s_name,s_optionA,s_optionB,s_optionC,s_o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五金建材市场准入合同
- 2026年儿科人群临床试验中安慰剂使用的伦理与法规
- 广告投放项目合作协议范本
- 2026年数据安全能力成熟度模型应用
- 医疗AI算法合作合同协议2026
- 美甲美睫店员工薪酬福利合同
- 家电清洗服务合同范本协议范本
- 2026年展览馆特装展位结构安全与稳定性验算
- 肺癌中医护理的食疗方剂
- 2026年手术分级管理与授权程序
- CAESAR-II简易操作手册
- 抗滑桩本科毕业设计计算书K法
- 科学实验科创课件STEM教育编程065机械鱼
- 爱情片《百万英镑》台词-中英文对照
- 商品七大异常状态及处理
- 金属矿床开采新技术技术
- FBCDZ系列通风机为对旋式防爆主要通风机
- GB/T 37669-2019自动导引车(AGV)在危险生产环境应用的安全规范
- 第四章 AP1000反应堆结构设计(杜圣华)
- 几起重大工程质量安全事故原因
- 设备供货安装方案(通用版)
评论
0/150
提交评论