已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库设计文档数据库设计文档 成员:曹丽琼成员:曹丽琼 冯继伟冯继伟 刘维毅刘维毅 班级班级 08 软工三班软工三班 指导老师:郭东恩指导老师:郭东恩 日日 期:期:2011-5-22 2 目录目录 数据库设计文档.1 目录.2 数据库设计文档.3 1引言.3 1.1编写目的.3 1.2项目来源.3 1.3文档约定.3 1.4预期读者和阅读建议 3 1.5参考资料.3 2数据库命名规则.3 3数据库设计说明.5 3.1数据库逻辑设计.5 数据词典.5 实体关系.5 E_R 图.9 SR 关系:9 3.2数据库物理设计.10 3.3数据库分布.10 3.4基表设计.10 3.4.1.tb_user: 考生信息表11 3.4.2.tb_invigilate: 监考人员信息表.12 3.4.3.tb_admin: 管理员信息表12 3.4.4.tb_page:考试试卷信息表.13 3.4.5.tb_select:选择题信息表.14 3.4.6.tb_boolean:判断题信息表. 15 3.4.7.tb_answer:简答题信息表.16 3.4.8.tb_subject:考试科目信息表.17 3.5视图设计.18 3.6索引设计.18 3.7序列设计.18 3.8完整性设计.19 3.9授权设计.19 3.10触发器设计.19 3.11存储过程设计.24 3.11.1CRUD 中的 CUD 三个操作24 3.12数据复制设计.28 4查询记录语句.28 5词汇表.29 6历史数据处理.30 3 数据库设计文档数据库设计文档 1 引言引言 1.1 编写目的编写目的 本文档是本项目开发中至关重要的一部分, 通过本档编写, 对本项目中相关数 据存储信息进行明确定位,对数据结构等相关信息进行明确说明。本文档尽可能 的详细说明各个实体的属性及相互联系,使开发人员的开发效率尽可能增加。 1.2 项目来源项目来源 实训要求 开发人员:全体成员 文档使用者:oracle 开发人员、 程序设计人员 1.3 文档约定文档约定 1.4 预期读者和阅读建议预期读者和阅读建议 开发人员: 对 oracle 和 java 熟悉 测试人员: 对 java 及 oracle 有一定的了解 1.5 参考资料参考资料 1 在线考试系统可行性分析 2 在线考试系统需求分析 3 项目(bbs)数据库设计文档刘维毅 4/viewthread.php?tid=10440 2 数据库命名规则数据库命名规则 db_examonline:在线考试系统数据库 tb_invigilate: 监考人员 4 tb_user: 学生或用户信息表 tb_select:选择题相关信息表 tb_answer:简答题相关信息 tb_boolean:判断题相关信息 tb_admin: 管理员信息表 tb_page:数据库测试试题 5 3 数据库设计说明数据库设计说明 3.1 数据库逻辑设计数据库逻辑设计 数据字典数据字典 考生属性:编号考生属性:编号 tid,tid,姓名姓名 uname,uname,登录密码登录密码 upassword,upassword,学学 号号 uno,uno,班级班级 uclass,uclass,考试状态考试状态 ustateustate 监考人员属性:编号监考人员属性:编号 tid,tid,姓名姓名 name,name,登录密码登录密码 passwordpassword 管理员属性:编号管理员属性:编号 aid,aid,姓名姓名 name,name,登录密码登录密码 passwordpassword 试卷属性试卷属性: 编号编号 pid,pid,科目科目 subject,subject, 选择题数量选择题数量 snum,snum, 判判 断题数量断题数量 bnum,bnum, 问答题数量问答题数量 anumanum,考试时间,考试时间 pageDatepageDate 选择题属性选择题属性:编号编号 id,题目题目 name,选项选项 A optionA,选项选项 B optionB,选项选项 C option C,选项选项 D optionD,所属科目所属科目 subject 判断题属性:编号判断题属性:编号 id,id,题目题目 name,name,对选项对选项 yes,yes,错选项错选项 nono , , 所属科目所属科目 subjectsubject 简答题属性:编号简答题属性:编号 id,id,题目题目 name,name, 所属科目所属科目 subjectsubject 科目属性:编号科目属性:编号 sid,sid,科目科目 subjectsubject 实体关系实体关系 6 编号 姓名 学号 考试状态 登录密码 班级 考生 监考人员 编号 姓名 登录密码 管理员 姓名 登录密码编号 7 考试试卷 选择题数目 判断题数目科目名称 简答题数目 编号 编号 题目 选项 A 科目名称 选项 D 选项 B 选项 C 选择题 判断题 题目 科目名称 编号 考试时间 8 简答题 题目 科目名称编号 科目 科目名称编号 9 E_R 图图 考生 监考人员 管理员 选择题 简答题判断题 科目 考试试卷 组 成 监考 管 理 做 组 成 SR 关系: 学生关系表: Stb_user(usid,uname,upassword,uno,uclass,ustate) 10 监考人员关系表:Stb_invigilate(tid,name,password) 管理员信息关系:Stb_admin(aid,name,password) 考试试卷信息关系: Stb_page(usid,pid,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 基表设计基表设计 在线考试系统数据库:在线考试系统数据库: 11 3.4.1. tb_user: 考生信息表考生信息表 属性:编号Tid,姓名name,登录密码password,学号number,班级 class,考试状态state 字段名称数据类型长度主键描述 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) ); 12 3.4.2.tb_invigilate: 监考人员信息表监考人员信息表 属性:编号tid,姓名name,登录密码password 字段名称数据类型长度主键描述 tidnumber10是主键标识 nameVarchar250否姓名 passwordchar16否登录密码 Createtable tb_invigilate( Tid number(10) primary key, Name varchar2 (50), Password char(16) ); 3.4.3. tb_admin: 管理员信息表管理员信息表 属性:编号aid,姓名name,登录密码password 字段名称数据类型长度主键描述 aidnumber10是主键标识 nameVarchar250否姓名 passwordchar16否登录密码 Create table tb_admin( Aid number(10) primary key, Name varchar2(50), 13 Password char(16) ); 3.4.4. tb_page:考试试卷信息表考试试卷信息表 属性:编号属性:编号 pid,pid,科目科目 subject,subject, 选择题数量选择题数量 snum,snum, 判断题数判断题数量量 bnum,bnum, 问答题数量问答题数量 anumanum,考试时间,考试时间 pageDatepageDate 字段名称数据类型长度主键描述 pidnumber10是主键标识 subjectVarchar250否科目(外键) snumnumber2否 选择题数量 bnumnumber2否 判断题数量 anumnumber2否 问答题数量 pageDatedate/ /否考试时间 tidnumber10是学生编号(外键) Create table tb_page( Pid number(10) primary key, Subject varchar2(50), Snum number(2), Bnum number(2), Anum number(2), pageDate date, 14 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:选择题信息表选择题信息表 属性:编号id,题目name,选项A optionA,选项B optionB,选项C option C,选项D optionD,所属科目subject 字段名称数据类型长度主键描述 idnumber10是主键标识 nameVarchar250否题目 optionAVarchar2100否选项 A optionBVarchar2100否选项 B optionCVarchar2100否选项 C optionDVarchar2100否选项 D subjectVarchar250否科目(外键) pidnumber10是试卷编号(外键) Create table tb_select( Id number(10) primary key, 15 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) references tb_page(pid) ); 3.4.6. tb_boolean:判断题信息表判断题信息表 属性:编号 id,题目 name,对选项 yes,错选项 no ,所属科目 subject 字段名称数据类型长度主键描述 idnumber10是主键标识 nameVarchar250否题目 16 subjectVarchar250否科目(外键) pidnumber10否试卷编号(外键) Create table tb_boolean( id number(10) primary key, Name varchar2(50), Subject varchar2(50), Pid number(10), 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:简答题信息表简答题信息表 属性:编号id,题目name, 所属科目subject 字段名称数据类型长度主键描述 idnumber5是主键标识 nameVarchar250否题目 subjectVarchar250否科目(外键) pidnumber10否试卷编号(外键) 17 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), constraint answer_FK2 foreign key(pid) references tb_page(pid) ); 3.4.8.tb_subject:考试科目信息表考试科目信息表 属性:编号sid,科目subject 字段名称数据类型长度主键描述 sidnumber10否科目自增编号 subjectVarchar250是主键标识 Create table tb_subject( Sid number(10) , Subject varchar2(50) primary key ); /备注 uid 是关键字已被系统占用 18 3.5 视图设计视图设计 3.6 索引设计索引设计 3.7 序列设计序列设计 设计目的:通过序列的设计, 可以使得编号可以进行自 增,从而达到设计目的。 T Tb_sqb_sq 序列自动进行递增序列自动进行递增 初值为:初值为:1 1 递增为:递增为:1 1 最大值:无最大值:无 C Createreate sequencesequence tb_sqtb_sq I Incrementncrement byby 1 1 S Starttart withwith 1 1 N Nomaxvalueomaxvalue N Nocycleocycle C Cacheache 10;10; T Tb_invigilate_sqb_invigilate_sq 监考人员的监考人员的 tidtid 自动进行递增自动进行递增 C Createreate sequencesequence tb_invigilate_sqtb_invigilate_sq 19 I Incrementncrement byby 1010 S Starttart withwith 1010 N Nomaxvalueomaxvalue N Nocycleocycle C Cacheache 10;10; 3.8 完整性设计完整性设计 请参阅本文档的基表设计的外键设置 3.9 授权设计授权设计 3.10 触发器设计触发器设计 T Tb_user_triggerb_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 next_no From dual; 20 :new.tid:=next_no; End; / -insert into tb_user (uname, upassword,uno, uclass, ustate) -values(); T Tb_invigilate_triggerb_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 Into next_no From dual; :new.tid:=next_no; End; T Tb_admin_triggerb_admin_trigger Create or replace trigger tb_admin_trigger 21 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; T Tb_page_triggerb_page_trigger Create or replace 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; 22 End; T Tb_select_triggerb_select_trigger Create or replace trigger tb_select_trigger Before insert on tb_select For each row Declare Next_no number; Begin Select tb_sq.nextval Into next_no From dual; :new.id:=next_no; End; T Tb_boolean_triggerb_boolean_trigger Create or replace trigger tb_boolean_trigger Before insert on tb_boolean For each row Declare Next_no number; Begin 23 Select tb_sq.nextval Into next_no From dual; :new.id:=next_no; End; T Tb_answer_triggerb_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; T Tb_subject_triggerb_subject_trigger Create or replace trigger tb_subject_trigger Before insert on tb_subject 24 For each row Declare Next_no number; Begin Selecttb_sq.nextval Into next_no From dual; :new.sid:=next_no; End; 3.11 存储过程设计存储过程设计 3.11.1CRUD 中的中的 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, -插入系统时间 sysdate p_tid in tb_page.tid%type )as 25 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 DUP_VAL_ON_INDEX then Dbms_output.put_line(subject primary key error!); When others then Dbms_output.put_line(异常); Endinsert_tb_page;-/执行过程:execute insert_tb_page(,); -向判断题表中插入信息(create 操作) Create or replace procedure insert_tb_boolean( b_name in tb_%type, b_subject in 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; -/执行过程: execute insert_tb_boolean(,); 26 -向简答题表中插入信息 Create or replace procedure insert_tb_answer( a_name in tb_%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 Begin 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 27 Dbms_output.put_line(异常); End insert_tb_subject; -向选择题表中插入信息 Create or replace procedure insert_tb_select( s_name tb_%type, s_optionAtb_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,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陶瓷工艺品彩绘师安全培训测试考核试卷含答案
- 孵化工岗中安全演练考核试卷含答案
- 制粉工岗中规章制度考核试卷含答案
- 限时练3 蛋白质是生命活动的主要承担者 高中生物第一轮总复习
- 医院洁净手术室的医院感染管理制度
- 思想政治教育教育实习报告模板(3篇)
- 2026年秋季初三学生收心教育课件:新学期新起点新征程
- 2026《公共基础知识》试题库(附含答案)
- 食品安全监管体系
- 2026年生产作业培训试题及答案
- 压力容器爆炸安全教育培训
- 2026年第四届全国人工智能应用技术技能大赛(工业视觉系统运维员赛项)理论考试题库(附答案)
- GB/T 48047-2026熔模铸件(铸钢、镍合金和钴合金)通用技术要求
- 2026年高考北京卷化学高考真题(含答案解析)
- 中国皮肤鳞状细胞癌诊疗指南(2026版)
- 数据安全分级分类制度
- 托管班转让合同协议书范本
- 《传感器与检测技术》课件 第二章 传感器的特性
- 14S501-1球墨铸铁单层井盖及踏步标准化施工方案
- 团体标准邻甲氧基苯甲醛征求意见稿
- 砖瓦生产工职业技能鉴定考试复习题库(附答案)
评论
0/150
提交评论