课程管理系统数据库设计及实现Word文档下载推荐.docx

上传人:b****3 文档编号:16373160 上传时间:2022-11-23 格式:DOCX 页数:28 大小:187.85KB
下载 相关 举报
课程管理系统数据库设计及实现Word文档下载推荐.docx_第1页
第1页 / 共28页
课程管理系统数据库设计及实现Word文档下载推荐.docx_第2页
第2页 / 共28页
课程管理系统数据库设计及实现Word文档下载推荐.docx_第3页
第3页 / 共28页
课程管理系统数据库设计及实现Word文档下载推荐.docx_第4页
第4页 / 共28页
课程管理系统数据库设计及实现Word文档下载推荐.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

课程管理系统数据库设计及实现Word文档下载推荐.docx

《课程管理系统数据库设计及实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《课程管理系统数据库设计及实现Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。

课程管理系统数据库设计及实现Word文档下载推荐.docx

课程管理的添加、修改、删除、查询

教师授课的安排

3.用户需求分析

用户的需求具体体现在各种信息的提供、保存、更新、查询方面,这就要求数据库机构能充分满足各种信息的输入与输出。

收集基本数据、数据结构以及数据处理流程,组成一份详尽的数据字典,为后面的具体设计打下基础。

针对课程管理系统的需求,通过对课程管理系统的设计与数据流程的分析,设计如下所示的数据项与数据存储表:

登录信息:

包括用户号、密码、权限

学籍信息:

包括用户号、姓名、性别、出生日期、班级、入学日期、家庭住址、电话

课程信息:

包括课程号、课程名、类型、教师名

4.统的总体结构设计

该系统共有三个模块:

登陆模块、学籍管理模块、课程信息模块。

这几个模块同时还包括数据添加、数据修改、数据删除、数据查询等几个基本操作。

(1)登录模块在登录界面中教师与学生可登录。

在登录界面中分别填入用户名、密码与身份,然后按确认键登录。

如果填入信息有误则弹出错误信息的提示窗口,重新返回登陆窗口。

如果填入信息正确则要根据登录信息表中登录者的权限(“0”或“1”)分别进入教师(“1”)或学生(“0”)管理系统主界面。

(2)学籍管理模块该模块主要完成学生基本信息的添加、修改、删除、查询等功能。

根据登录时权限的判断,权限为“0”时,是学生进入该模块,只可对自己的学籍进行查询,添加、修改、删除功能不可用;

权限为“1”时,教师进入该模块,此时可进行所有学生学籍的查询、添加、修改、删除,在此模块中定义了8个数据来进行学生的信息存储,如果修改某个记录,可单击修改按钮进行数据的编辑,此时界面数据内容与数据库内容将同时更新。

(4)课程管理模块该模块主要完成存储课程的所有信息的添加、修改、删除、查询等功能。

根据登录时权限的判断,权限为“0”时,学生进入该模块,只可进行课程查询,添加、修改、删除功能不可用;

权限为“1”时,教师进入该模块,可进行查询、添加、修改、删除,在此模块中定义了6个数据来进行课程的信息存储,如果修改某一纪录,可单击修改单按钮进行课程记数据的编辑,此时界面数据内容与数据库内容将同时更新。

2、概念设计

数据字典

1

数据项名

数据类型

长度

注明

学生学号

字符型

10

6位十进制数

学生姓名

8

年龄

16

籍贯

学生出生地

入学时间

日期型

教室编号

以A,B,C,D开头,后接4位十进制数

教室所属校区

A,B,C,D

教学楼

管理员代码

字符型

20

管理员姓名

管理员电话

课程代码

4位十进制数

学院代码

2位十进制数

课程名

课程人数

数值型

课程所属校区

班级代码

专业代码

班级名

班级学生数

专业名

学院名

学院人数

教工号

教师姓名

教师电话

教师邮箱

30

课程管理系统数据库中的E-R图

3、逻辑设计

将上面的E-R图转化为如下关系模型,下划横线代表关系的主键:

学生(学号,姓名,年龄,籍贯,入学时间,专业代码,班级代码,学院代码)

班级(班级代码,专业代码,班级名,学生数)

专业(专业代码,学院代码。

专业名称)

学院(学院代码,学院名,学员人数)

教师(教工号,教师姓名,教师电话,教师邮箱)

从属(加工号,学院代码)

课程(课程代码,学院代码,课程名,人数,学分)

管理员(管理员代码,管理员姓名,管理员电话,管理员邮箱)

教室(教室编号,所属校区,教学楼)

安排(课程代码,教工号,教室编号,管理员代码,上课时间)

分配(学号,教室编号)

选择(学号,课程代码)

二、转化后的关系模型如图:

三、数据库实现

1、数据库视图的创建

1)创建一个学号为20105263的学生的查询视图;

Createview学生信息(学生学号,所选课程名称,所在班级代号,老师姓名,上课教室)

as

select学生学号,课程名,班级代码,教师姓名,教室编号

from学生,课程,班级,教师,教室

where学生.班级代码=班级.班级代码and学生.学院代码=学院.学院代码

2)创建一个教工号为5132的教师的查询视图;

Createview教师信息(所教课程名称,所教班级代号,所属学院,上课教室)

select课程名,班级代码,学院,教室编号

from课程,班级,学院,教室,教师

where教师.教工号=‘5132’;

3)创建一个管理员的查询视图

Createview管理员视图(课程名称,老师姓名,学生姓名,教室编号)

select课程名,教师姓名,学生姓名,教室编号

from课程,教师,学生,教室;

2、索引的创建

我们可以在视图学生信息中的”学号列”上创建一个索引

Createdindexstu_indexon学生信息(学号)。

3、权限管理,安全性设计

授予权限

1.给学生一个可以查看课程安排的权限

Grantselecton安排to学生

2.给教师一个可以查看学生选择课程情况的权限

Grantselecton选择to教师

3.给教师一个可以查看课程安排的权限

Grantupdateon安排to教师

4.给学生一个可以查看自己的选课的权限

Grantselecton选择to学生

4.给管理员一个可以查看课程安排的权限

Grantselecton安排to管理员

6.给管理员一个删除教师与学生所选课程的权限

Grantupdateon课程to管理员

代码附录

ifexists(select1fromsys.sysforeignkeywhererole='

FK_分配_分配_学生'

)then

altertable分配

deleteforeignkeyFK_分配_分配_学生

endif;

FK_学生_属于_班级'

altertable学生

deleteforeignkeyFK_学生_属于_班级

FK_学生_所在_专业'

deleteforeignkeyFK_学生_所在_专业

FK_学生_所属_学院'

deleteforeignkeyFK_学生_所属_学院

FK_选择_选择_学生'

altertable选择

deleteforeignkeyFK_选择_选择_学生

dropindexifexists学生.所属_FK;

dropindexifexists学生.所在_FK;

dropindexifexists学生.属于_FK;

dropindexifexists学生.学生_PK;

droptableifexists学生;

/*==============================================================*/

/*Table:

学生*/

createtable学生

学号varchar(10)notnull,

专业代码varchar(10)notnull,

班级代码varchar(10)notnull,

学院代码varchar(10)notnull,

学生姓名varchar(8)null,

年龄varchar(16)null,

籍贯varchar(8)null,

入学时间timestampnull,

constraintPK_学生primarykey(学号)

);

/*Index:

学生_PK*/

createuniqueindex学生_PKon学生(

学号ASC

属于_FK*/

createindex属于_FKon学生(

班级代码ASC

所在_FK*/

createindex所在_FKon学生(

专业代码ASC

所属_FK*/

createindex所属_FKon学生(

学院代码ASC

altertable学生

addconstraintFK_学生_属于_班级foreignkey(班级代码)

references班级(班级代码)

onupdaterestrict

ondeleterestrict;

addconstraintFK_学生_所在_专业foreignkey(专业代码)

references专业(专业代码)

addconstraintFK_学生_所属_学院foreignkey(学院代码)

references学院(学院代码)

FK_班级_包含_专业'

altertable班级

deleteforeignkeyFK_班级_包含_专业

dropindexifexists班级.包含_FK;

dropindexifexists班级.班级_PK;

droptableifexists班级;

班级*/

createtable班级

班级名varchar(8)null,

学生数integernull,

班主任char(10)null,

constraintPK_班级primarykey(班级代码)

班级_PK*/

createuniqueindex班级_PKon班级(

包含_FK*/

createindex包含_FKon班级(

altertable班级

addconstraintFK_班级_包含_专业foreignkey(专业代码)

ifexists(select1fromsys.sysforeignkeywhererole='

FK_专业_含有_学院'

altertable专业

deleteforeignkeyFK_专业_含有_学院

dropindexifexists专业.所属_FK;

dropindexifexists专业.专业_PK;

droptableifexists专业;

专业*/

createtable专业

专业名varchar(8)null,

constraintPK_专业primarykey(专业代码)

专业_PK*/

createuniqueindex专业_PKon专业(

createindex所属_FKon专业(

altertable专业

addconstraintFK_专业_含有_学院foreignkey(学院代码)

FK_安排_安排_课程'

altertable安排

deleteforeignkeyFK_安排_安排_课程

FK_课程_开设_学院'

altertable课程

deleteforeignkeyFK_课程_开设_学院

FK_选择_选择2_课程'

deleteforeignkeyFK_选择_选择2_课程

dropindexifexists课程.开设_FK;

dropindexifexists课程.课程_PK;

droptableifexists课程;

课程*/

createtable课程

课程代码varchar(8)notnull,

课程名varchar(8)null,

人数integernull,

所属校区varchar(10)null,

constraintPK_课程primarykey(课程代码)

课程_PK*/

createuniqueindex课程_PKon课程(

课程代码ASC

开设_FK*/

createindex开设_FKon课程(

altertable课程

addconstraintFK_课程_开设_学院foreignkey(学院代码)

FK_从属_从属2_学院'

altertable从属

deleteforeignkeyFK_从属_从属2_学院

dropindexifexists学院.学院_PK;

droptableifexists学院;

/*======

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1