实验项目管理系统数据库设计.docx
- 文档编号:7663500
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:19
- 大小:247.59KB
实验项目管理系统数据库设计.docx
《实验项目管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《实验项目管理系统数据库设计.docx(19页珍藏版)》请在冰豆网上搜索。
实验项目管理系统数据库设计
2011-2012学年第1学期
数据库开发技术大作业
数据库设计
项目名称:
实验项目管理系统
完成时间2012年6月8日
目录
一.需求分析3
1编写目的3
2背景3
3功能需求3
4.功能模块图5
二.概念设计6
1.定义6
1.数据字典6
2.各表间联系:
8
三.详细设计9
1.学生表9
2.课程选择表9
3.实验室表9
4.实验室选择信息表10
5.项目表10
6.项目提交表11
7.老师表11
8.管理员表12
9.通知表12
四.物理设计12
数据库脚本12
一.需求分析
1编写目的
为促进高校实验管理和实验教学的信息化建设,开发了B/S模式的实验室信息管理系统。
该系统建立分布式网络化的实验管理模式,实验室仪器设备的网络化管理,并通过信息发布模块实现信息的动态及时发布,对教学进行方便的管理以及实现信息化。
2背景
二十世纪末,人类文明的发展进入了信息时代,计算机技术、现代通信技术、网络互连技术、数据库技术、智能信息处理技术等关键技术都日趋成熟,为信息技术的发展、为信息系统的大规模建设和应用提供了坚实的技术理论基础。
信息已经成为社会生产力的一个重要因数。
信息技术的发展使我们社会发生着一场变革,这场变革也被涉及到了高校管理的各个层面,实验室信息管理就是其中之一。
随着网络技术,尤其是Internet技术的成熟与发展,高校实验室信息管理化已经成为一种趋势。
高校实验室信息管理系统,是针对高等院校实验室管理而设计开发的实验室网络化综合管理系统。
开发该系统有利于改变目前单机辅助模式的实验室管理现状,建立分布式网络化的管理模式。
该系统下设用户登录、实验教学管理、仪器设备管理和信息发布,实现了用户级别的自动检测、实验教学的网上管理、仪器设备状态的实时监控与各项报表的快速生成、信息的及时发布等功能。
3功能需求
1)登录、注册
用户登录注册模块主要功能是系统根据用户选择的身份对用户输入的用户名和密码是否合法进行验证,如不合法,则给出提示,并提示用户重新登录,如果合法,则进入相应的操作界面。
注册模块主要功能是如果用户还没有登录帐号则点击注册,注册帐号。
2)用户信息管理
用户登陆后,可以修改自身密码,修改密前密须填写原密码。
用户登陆后,可以修改用户的电话,姓名,等信息。
3)系统通知管理
为使用户及时了解实验室及课程状态,管理员可以添加实系统通知,通知包含标题和内容两项。
添加通知成功后,将显示在系统登陆界面。
通知添加出错时,管理员可以更正通知相关信息。
通知无效或其它原因时,管理员可以删除通知。
管理员发布通知后,所有用户在未登陆前可查看通知
4)教师信息审核
为了防止学生随意注册教师,对系统造成不利影响,教师注册后需管理员进行审查,方可登陆,此模块主要即审查信息正确的教师。
5)实验室管理
当实验室增加时,管理员可以添加实验室,实验室主要由实验室编号,实验室位置,实验室基本信息组成,其中,实验室编号为必填项。
添加实验室信息输入错误时,管理员可以更正相关信息。
实验室由于某些原因撤销时,管理员可删除实验室。
6)实验室课程管理
教师可以在系统中添加实验室课程,必须填定课程名字,选择时间和实验室。
在教师添加实验课程后,所有用户可以按实验室查看课表。
教师添加实验课程后,学生可以选修相应实验课程。
学生误操作或别的原因亦可退选实验课程。
教师对添加信息出错的课程可以更正。
教师也可以删除相应的实验课程。
7)实验项目管理
教师添加实验课程后,可往相应课程中添加实验项目,实验项目包含实验名称,实验要求,以及实验资料。
教师添加实验项目后,学生选修实验课后,可在课程中提交由教师布置的实验项目。
学生提交实验项目后,亦可下载自己已提交的实验。
学生提交实验后,教师可下载学生提交实验进行批改,亦可删除由学生提交错误的实验,由学生重新提交。
实验项目相关信息填写出错,教师可以修改相关信息。
对于无作用或误添的实验项目,教师可以删除之。
8)信息统计管理
此模块主要为按实验室,上课时间对实验课程与实验项目进行统计,使管理员了解各实验室具体课程以及相关课程提交实验情况。
4.功能模块图
二.概念设计
1.定义
1.所有的表名的命名规则:
功能含义,本系统含有九张表,分别担任各自的功能
student学生信息表功能
selectcourse存储学生选课表信息
lab存储实验室表信息
Labcourse存储表格实验室安排表的列清单
task存储实验项目信息
tasksubmit存储表格提交实验表的列清单信息
teacher存储教师表信息
admin存储管理员信息
news存储系统通知信息
2.所有的主键命名规则:
表名+pk;例如学生信息表的主键为:
Student_PK
3.所有外键的命名规则:
表名+fk+数字;例如学生选课的外键Course_FK1
4.所有规则的命名规则:
表名+含义;例如老师编号:
teacherNo
所有字段的命名规则:
英文单词含义组合!
1.数据字典
1.学生表
名称
代码
数据类型
学号
sno
varchar(7)
密码
pwd
varchar(20)
姓名
name
varchar(20)
性别
sex
int
年级专业
stuGrade
varchar(20)
2.学生选课表
名称
代码
数据类型
学号
sno
varchar(7)
时间
labtime
varchar(12)
实验室编号
lid
varchar(4)
3.实验室表
名称
代码
数据类型
实验室编号
lid
varchar(4)
实验室位置
lablocation
varchar(100)
实验室信息
labinfo
varchar(200)
4.表格实验室安排表的列清单
名称
代码
数据类型
时间
time
varchar(12)
实验室编号
lid
varchar(4)
教师ID
teano
varchar(10)
课程名称
courseName
varchar(20)
5.实验项目
名称
代码
数据类型
项目id
taskNo
int
实验室_时间
labTime
varchar(12)
实验室编号
lid
varchar(4)
项目标题
taskTitle
varchar(50)
项目内容
taskInfo
ntext
发布时间
time
datetime
实验资料
fileName
varchar(30)
真实名字
realName
varchar(50)
6.表格提交实验表的列清单
名称
代码
数据类型
项目id
taskNo
int
学号
sno
varchar(7)
实验文件
fileName
varchar(30)
时间
time
datetime
真实名字
realName
varchar(50)
7.教师表
名称
代码
数据类型
教师ID
teano
varchar(10)
密码
pwd
varchar(20)
审核
flag
int
姓名
teaname
varchar(10)
手机
teaphone
varchar(11)
职称
position
varchar(10)
学院
teaInstitute
varchar(30)
固定电话
teaSphone
varchar(10)
联系地址
teaAddress
varchar(100)
8.管理员
名称
代码
数据类型
用户名
id
varchar(10)
密码
pwd
varchar(20)
9.系统通知
名称
代码
数据类型
课程
newsId
int
标题
newsTitle
varchar(50)
内容
newsContent
ntext
发布时间
time
datetime
2.各表间联系
三.详细设计
1.学生表
createtablestudent(
snoVARCHAR2(7)notnull,
pwdVARCHAR2(20)notnull,
nameVARCHAR2(20)notnull,
sexVARCHAR2
(2)notnull,
stuGradeVARCHAR2(20)
)
规则与约束
1.学生编号的组成为:
必须为s+数字,可以自动产生编号,也可以用户自己编号。
2.每个学生有对应的学生号。
3.建立触发器确保输入的学生号为正确的编号
2.课程选择表
createtableselectCourse(
snoVARCHAR2(7)notnull,
labtimeVARCHAR2(12)notnull,
lidVARCHAR2(4)notnull
)
constraintPK_SELECTCOURSEprimarykey(sno,labtime,lid)
constraintFK_SELECTCO_REFERENCE_LABCOURSforeignkey(labtime,lid)
referenceslabCourse(labtime,lid)
constraintFK_SELECTCO_REFERENCE_STUDENTforeignkey(sno)
referencesstudent(sno)
规则与约束
1.课程编号的组成为:
必须全部为sc+课程+数据,可以自动产生编号,也可以用户自己编号。
2.每个课程号有对应的课程。
3.建立触发器确保输入的课程编号为正确的编号
3.实验室表
createtablelab(
lidVARCHAR2(4)notnull,
lablocationVARCHAR2(100)notnull,
labinfoVARCHAR2(200)notnull
)
constraintPK_LABprimarykey(lid)
规则与约束
1.实验室编号的组成为:
必须全部为l+数字,可以自动产生编号。
2.设一个标志位,说明职务号是否作废。
4.实验室选择信息表
createtablelabCourse(
labtimeVARCHAR2(12)notnull,
lidVARCHAR2(4)notnull,
teanoVARCHAR2(10),
courseNameVARCHAR2(20)notnull
)
constraintPK_LABCOURSEprimarykey(labtime,lid)
constraintFK_LABCOURS_REFERENCE_TEACHERforeignkey(teano)
referencesteacher(teano)
constraintFK_LABCOURS_REFERENCE_LABforeignkey(lid)
referenceslab(lid)
规则与约束
建立触发器约束编号符合正确的格式
5.项目表
createtabletask(
taskNoVARCHAR2(8)notnull,
labTimeVARCHAR2(12)notnull,
lidVARCHAR2(4)notnull,
taskTitleVARCHAR2(50)notnull,
taskInfoVARCHAR2(4000)notnull,
timeDATEnotnull,
fileNameVARCHAR2(30),
realNameVARCHAR2(50)
)
constraintPK_TASKprimarykey(taskNo)
constraintFK_TASK_REFERENCE_LABCOURSforeignkey(labTime,lid)
referenceslabCourse(labtime,lid)
规则与约束
1.项目编号的组成为:
必须全部为t+数字,可以自动产生编号,也可以用户自己编号。
2.每个项目有对应的项目编号。
3.建立触发器约束编号符合正确的格式
6.项目提交表
createtabletaskSubmit(
taskNoVARCHAR2(8)notnull,
snoVARCHAR2(7)notnull,
fileNameVARCHAR2(30)notnull,
timeDATE,
realNameVARCHAR2(50)
)
constraintPK_TASKSUBMITprimarykey(taskNo)
constraintFK_TASKSUBM_REFERENCE_TASKforeignkey(taskNo)
referencestask(taskNo)
constraintFK_TASKSUBM_REFERENCE_STUDENTforeignkey(sno)
规则与约束
建立触发器约束编号符合正确的格式
7.老师表
createtableteacher(
teanoVARCHAR2(10)notnull,
pwdVARCHAR2(20)notnull,
flagvarchar2
(2)notnull,
teanameVARCHAR2(10)notnull,
teaphoneVARCHAR2(11)notnull,
positionVARCHAR2(10),
teaInstituteVARCHAR2(30),
teaAddressVARCHAR2(100)
)
constraintPK_TEACHERprimarykey(teano)
规则与约束
建立触发器约束编号符合正确的格式
8.管理员表
createtableadmin(
idVARCHAR2(10)notnull,
pwdVARCHAR2(20)notnull
)
constraintPK_ADMINprimarykey(id)
规则与约束
建立触发器约束编号符合正确的格式
9.通知表
3.9.1结构设计
createtablenews(
newsIdVARCHAR2(8)notnull,
newsTitleVARCHAR2(50)notnull,
newsContentVARCHAR2(4000)notnull,
timeDATEnotnull
)
constraintPK_NEWSprimarykey(newsId)
3.9.2规则与约束
建立触发器约束编号符合正确的格式
四.物理设计
数据库脚本
/*Databasename:
Database_1*/
/*DBMSname:
ORACLEVersion10gR2*/
/*Createdon:
2012-6-319:
25:
15*/
droptabletempcascadeconstraints
/altertablelabCourse
dropconstraintFK_LABCOURS_REFERENCE_TEACHER
/altertablelabCourse
dropconstraintFK_LABCOURS_REFERENCE_LAB
/altertableselectCourse
dropconstraintFK_SELECTCO_REFERENCE_LABCOURS
/altertableselectCourse
dropconstraintFK_SELECTCO_REFERENCE_STUDENT
/altertabletask
dropconstraintFK_TASK_REFERENCE_LABCOURS
/altertabletaskSubmit
dropconstraintFK_TASKSUBM_REFERENCE_TASK
/altertabletaskSubmit
dropconstraintFK_TASKSUBM_REFERENCE_STUDENT
/altertableadmin
dropprimarykeycascade
/droptableadmincascadeconstraints
/altertablelab
dropprimarykeycascade
/droptablelabcascadeconstraints
/altertablelabCourse
dropprimarykeycascade
/droptablelabCoursecascadeconstraints
/altertablenews
dropprimarykeycascade
/droptablenewscascadeconstraints
/altertableselectCourse
dropprimarykeycascade
/droptableselectCoursecascadeconstraints
/altertablestudent
dropprimarykeycascade
/droptablestudentcascadeconstraints
/altertabletask
dropprimarykeycascade
/droptabletaskcascadeconstraints
/altertabletaskSubmit
dropprimarykeycascade
/droptabletaskSubmitcascadeconstraints
/altertableteacher
dropprimarykeycascade
/droptableteachercascadeconstraints
/dropsequenceS_news
/dropsequenceS_task
/dropsequenceSequence_3
/createsequenceS_news
incrementby1
startwith1
maxvalue999999;
/createsequenceS_task
incrementby1
startwith1
maxvalue999999;
/createsequenceSequence_3
/
/*Table:
admin*/
createtableadmin(
idVARCHAR2(10)notnull,
pwdVARCHAR2(20)notnull
)
/altertableadmin
addconstraintPK_ADMINprimarykey(id)
/
/*Table:
lab*/
createtablelab(
lidVARCHAR2(4)notnull,
lablocationVARCHAR2(100)notnull,
labinfoVARCHAR2(200)notnull
)
/altertablelab
addconstraintPK_LABprimarykey(lid)
/
/*Table:
labCourse*/
createtablelabCourse(
labtimeVARCHAR2(12)notnull,
lidVARCHAR2(4)notnull,
teanoVARCHAR2(10),
courseNameVARCHAR2(20)notnull
)
/altertablelabCourse
addconstraintPK_LABCOURSEprimarykey(labtime,lid)
/
/*Table:
news*/
createtablenews(
newsIdVARCHAR2(8)notnull,
newsTitleVARCHAR2(50)notnull,
newsContentVARCHAR2(4000)notnull,
timeDATEnotnull
)
/altertablenews
addconstraintPK_NEWSprimarykey(newsId)
/
/*Table:
selectCourse*/
createtableselectCourse(
snoVARCHAR2(7)notnull,
labtimeVARCHAR2(12)notnull,
lidVARCHAR2(4)notnull
)
/altertableselectCourse
addconstraintPK_SELECTCOURSEprimarykey(sno,labtime,lid)
/
/*Table:
student*/
createtablestudent(
snoVARCHAR2(7)notnull,
pwdVARCHAR2(20)notnull,
nameVARCHAR2(20)notnull,
sexVARCHAR2
(2)notnull,
stuGradeVARCHAR2(20)
)
/altertablestudent
addconstraintPK_STUDENTprimarykey(sno)
/
/*Table:
task*/
createtabletask(
taskNoVARCHAR2(8)notnull,
labTimeVARCHAR2(12)notnull,
lidVARCHAR2(4)notnull,
taskTitleVARCHAR2(50)notnull,
taskInfoVARCHAR2(4000)notnull,
timeDATEnotnull,
fileNameVARCHAR2(30),
realNameVARCHAR2(50)
)
/altertabletask
addconstraintPK_TASKprimarykey(taskNo)
/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 项目 管理 系统 数据库 设计