“课程管理系统”数据库设计与实现_第1页
“课程管理系统”数据库设计与实现_第2页
“课程管理系统”数据库设计与实现_第3页
“课程管理系统”数据库设计与实现_第4页
“课程管理系统”数据库设计与实现_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大学课程设计报告课程设计题目:“课程管理系统”数据库设计与实现 学 院: 专业班级: 年 级: 姓 名: 学 号: 完成时间: 年 月 日成 绩: 指导教师: 目录第1章课程管理系统功能需求分析第2章 课程管理系统概念结构设计2.1设计E-R图 2.2 E-R模型向关系模型的转换第3章创建视图和索引,授予用户权限3.1 创建视图 3.2 创建索引 3.3 授予权限 正文一、需求分析1. 近年来,随着各大高校的规模不断扩大,生源的急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量,需要建立一个课程管理系统来提高管理质量,让老师减轻工作量,提高工作效率。建立课程管理系统就是为了实现信息的规

2、范管理、科学统计和快速查询,从而减少管理方面的工作量。课程管理系统主要提供教师、学生的学籍管理、成绩管理和课程管理功能。 2. 需求功能分析:教师和学生的登录学生学籍的添加、修改、删除、查询课程管理的添加、修改、删除、查询教师授课的安排3. 用户需求分析用户的需求具体体现在各种信息的提供、保存、更新、查询方面,这就要求数据库机构能充分满足各种信息的输入和输出。收集基本数据、数据结构以及数据处理流程,组成一份详尽的数据字典,为后面的具体设计打下基础。 针对课程管理系统的需求,通过对课程管理系统的设计和数据流程的分析,设计如下所示的数据项和数据存储表:登录信息:包括用户号、密码、权限学籍信息:包括

3、用户号、姓名、性别、出生日期、班级、入学日期、家庭住址、电话课程信息:包括课程号、课程名、类型、教师名4.统的总体结构设计 该系统共有三个模块:登陆模块、学籍管理模块、课程信息模块。这几个模块同时还包括数据添加、数据修改、数据删除、数据查询等几个基本操作。 (1) 登录模块 在登录界面中教师和学生可登录。在登录界面中分别填入用户名、密码和身份,然后按确认键登录。如果填入信息有误则弹出错误信息的提示窗口,重新返回登陆窗口。如果填入信息正确则要根据登录信息表中登录者的权限(“0”或“1”)分别进入教师(“1”)或学生(“0”)管理系统主界面。 (2) 学籍管理模块 该模块主要完成学生基本信息的添加

4、、修改、删除、查询等功能。根据登录时权限的判断,权限为“0”时,是学生进入该模块,只可对自己的学籍进行查询,添加、修改、删除功能不可用;权限为“1”时,教师进入该模块,此时可进行所有学生学籍的查询、添加、修改、删除,在此模块中定义了8个数据来进行学生的信息存储,如果修改某个记录,可单击修改按钮进行数据的编辑,此时界面数据内容和数据库内容将同时更新。 (4)课程管理模块 该模块主要完成存储课程的所有信息的添加、修改、删除、查询等功能。根据登录时权限的判断,权限为“0”时,学生进入该模块,只可进行课程查询,添加、修改、删除功能不可用;权限为“1”时,教师进入该模块,可进行查询、添加、修改、删除,在

5、此模块中定义了6个数据来进行课程的信息存储,如果修改某一纪录,可单击修改单按钮进行课程记数据的编辑,此时界面数据内容和数据库内容将同时更新。2、 概念设计数据字典1数据项名数据类型长度注明学生学号字符型106位十进制数学生姓名字符型8年龄字符型16籍贯字符型8学生出生地入学时间日期型教室编号字符型10以A,B,C,D开头,后接4位十进制数教室所属校区字符型10A,B,C,D教学楼字符型8管理员代码字符型 206位十进制数管理员姓名字符型8管理员电话字符型20课程代码字符型84位十进制数学院代码字符型102位十进制数课程名字符型8课程人数数值型课程所属校区字符型10A,B,C,D班级代码字符型1

6、04位十进制数专业代码字符型102位十进制数班级名字符型8班级学生数数值型学院代码字符型102位十进制数专业名字符型8学院名字符型10学院人数字符型10教工号字符型106位十进制数教师姓名字符型8教师电话字符型20教师邮箱字符型30课程管理系统数据库中的E-R图3、 逻辑设计将上面的E-R图转化为如下关系模型,下划横线代表关系的主键:学生(学号,姓名,年龄,籍贯,入学时间,专业代码,班级代码,学院代码)班级(班级代码,专业代码,班级名,学生数)专业(专业代码,学院代码。专业名称)学院(学院代码,学院名,学员人数)教师(教工号,教师姓名,教师电话,教师邮箱)从属(加工号,学院代码)课程(课程代码

7、,学院代码,课程名,人数,学分)管理员(管理员代码,管理员姓名,管理员电话,管理员邮箱)教室(教室编号,所属校区,教学楼)安排(课程代码,教工号,教室编号,管理员代码,上课时间)分配(学号,教室编号)选择(学号,课程代码)二、转化后的关系模型如图:三、数据库实现1、 数据库视图的创建1)创建一个学号为20105263的学生的查询视图;Create view 学生信息(学生学号,所选课程名称,所在班级代号,老师姓名,上课教室)asselect学生学号,课程名,班级代码,教师姓名,教室编号from学生,课程,班级,教师,教室 where学生.班级代码=班级.班级代码and 学生.学院代码=学院.

8、学院代码2)创建一个教工号为5132的教师的查询视图;Create view 教师信息(所教课程名称,所教班级代号,所属学院,上课教室)asselect 课程名,班级代码,学院,教室编号from 课程,班级,学院,教室,教师 where 教师.教工号=5132;3)创建一个管理员的查询视图Create view 管理员视图(课程名称,老师姓名,学生姓名,教室编号)asselect 课程名,教师姓名,学生姓名,教室编号from 课程,教师,学生,教室;2、索引的创建我们可以在视图学生信息中的”学号列”上创建一个索引Created index stu_index on 学生信息(学号)。3、权限管

9、理,安全性设计授予权限1. 给学生一个可以查看课程安排的权限Grant select on 安排 to 学生2. 给教师一个可以查看学生选择课程情况的权限Grant select on 选择 to 教师3. 给教师一个可以查看课程安排的权限Grant update on 安排 to 教师4.给学生一个可以查看自己的选课的权限Grant select on 选择 to 学生4. 给管理员一个可以查看课程安排的权限Grant select on 安排to 管理员6.给管理员一个删除教师和学生所选课程的权限Grant update on 课程 to 管理员代码附录if exists(select 1

10、 from sys.sysforeignkey where role='FK_分配_分配_学生') then alter table 分配 delete foreign key FK_分配_分配_学生end if;if exists(select 1 from sys.sysforeignkey where role='FK_学生_属于_班级') then alter table 学生 delete foreign key FK_学生_属于_班级end if;if exists(select 1 from sys.sysforeignkey where role

11、='FK_学生_所在_专业') then alter table 学生 delete foreign key FK_学生_所在_专业end if;if exists(select 1 from sys.sysforeignkey where role='FK_学生_所属_学院') then alter table 学生 delete foreign key FK_学生_所属_学院end if;if exists(select 1 from sys.sysforeignkey where role='FK_选择_选择_学生') then alter

12、 table 选择 delete foreign key FK_选择_选择_学生end if;drop index if exists 学生.所属_FK;drop index if exists 学生.所在_FK;drop index if exists 学生.属于_FK;drop index if exists 学生.学生_PK;drop table if exists 学生;/*=*/* Table: 学生 */*=*/create table 学生 ( 学号 varchar(10) not null, 专业代码 varchar(10) not null, 班级代码 varchar(10)

13、 not null, 学院代码 varchar(10) not null, 学生姓名 varchar(8) null, 年龄 varchar(16) null, 籍贯 varchar(8) null, 入学时间 timestamp null, constraint PK_学生 primary key (学号);/*=*/* Index: 学生_PK */*=*/create unique index 学生_PK on 学生 (学号 ASC);/*=*/* Index: 属于_FK */*=*/create index 属于_FK on 学生 (班级代码 ASC);/*=*/* Index: 所

14、在_FK */*=*/create index 所在_FK on 学生 (专业代码 ASC);/*=*/* Index: 所属_FK */*=*/create index 所属_FK on 学生 (学院代码 ASC);alter table 学生 add constraint FK_学生_属于_班级 foreign key (班级代码) references 班级 (班级代码) on update restrict on delete restrict;alter table 学生 add constraint FK_学生_所在_专业 foreign key (专业代码) references

15、 专业 (专业代码) on update restrict on delete restrict;alter table 学生 add constraint FK_学生_所属_学院 foreign key (学院代码) references 学院 (学院代码) on update restrict on delete restrict;if exists(select 1 from sys.sysforeignkey where role='FK_学生_属于_班级') then alter table 学生 delete foreign key FK_学生_属于_班级end i

16、f;if exists(select 1 from sys.sysforeignkey where role='FK_班级_包含_专业') then alter table 班级 delete foreign key FK_班级_包含_专业end if;drop index if exists 班级.包含_FK;drop index if exists 班级.班级_PK;drop table if exists 班级;/*=*/* Table: 班级 */*=*/create table 班级 ( 班级代码 varchar(10) not null, 专业代码 varchar(

17、10) not null, 班级名 varchar(8) null, 学生数 integer null, 班主任 char(10) null, constraint PK_班级 primary key (班级代码);/*=*/* Index: 班级_PK */*=*/create unique index 班级_PK on 班级 (班级代码 ASC);/*=*/* Index: 包含_FK */*=*/create index 包含_FK on 班级 (专业代码 ASC);alter table 班级 add constraint FK_班级_包含_专业 foreign key (专业代码)

18、references 专业 (专业代码) on update restrict on delete restrict; if exists(select 1 from sys.sysforeignkey where role='FK_专业_含有_学院') then alter table 专业 delete foreign key FK_专业_含有_学院end if;if exists(select 1 from sys.sysforeignkey where role='FK_学生_所在_专业') then alter table 学生 delete fore

19、ign key FK_学生_所在_专业end if;if exists(select 1 from sys.sysforeignkey where role='FK_班级_包含_专业') then alter table 班级 delete foreign key FK_班级_包含_专业end if;drop index if exists 专业.所属_FK;drop index if exists 专业.专业_PK;drop table if exists 专业;/*=*/* Table: 专业 */*=*/create table 专业 ( 专业代码 varchar(10)

20、 not null, 学院代码 varchar(10) not null, 专业名 varchar(8) null, constraint PK_专业 primary key (专业代码);/*=*/* Index: 专业_PK */*=*/create unique index 专业_PK on 专业 (专业代码 ASC);/*=*/* Index: 所属_FK */*=*/create index 所属_FK on 专业 (学院代码 ASC);alter table 专业 add constraint FK_专业_含有_学院 foreign key (学院代码) references 学院

21、 (学院代码) on update restrict on delete restrict; if exists(select 1 from sys.sysforeignkey where role='FK_安排_安排_课程') then alter table 安排 delete foreign key FK_安排_安排_课程end if;if exists(select 1 from sys.sysforeignkey where role='FK_课程_开设_学院') then alter table 课程 delete foreign key FK_课程

22、_开设_学院end if;if exists(select 1 from sys.sysforeignkey where role='FK_选择_选择2_课程') then alter table 选择 delete foreign key FK_选择_选择2_课程end if;drop index if exists 课程.开设_FK;drop index if exists 课程.课程_PK;drop table if exists 课程;/*=*/* Table: 课程 */*=*/create table 课程 ( 课程代码 varchar(8) not null, 学

23、院代码 varchar(10) not null, 课程名 varchar(8) null, 人数 integer null, 所属校区 varchar(10) null, constraint PK_课程 primary key (课程代码);/*=*/* Index: 课程_PK */*=*/create unique index 课程_PK on 课程 (课程代码 ASC);/*=*/* Index: 开设_FK */*=*/create index 开设_FK on 课程 (学院代码 ASC);alter table 课程 add constraint FK_课程_开设_学院 fore

24、ign key (学院代码) references 学院 (学院代码) on update restrict on delete restrict; if exists(select 1 from sys.sysforeignkey where role='FK_专业_含有_学院') then alter table 专业 delete foreign key FK_专业_含有_学院end if;if exists(select 1 from sys.sysforeignkey where role='FK_从属_从属2_学院') then alter tabl

25、e 从属 delete foreign key FK_从属_从属2_学院end if;if exists(select 1 from sys.sysforeignkey where role='FK_学生_所属_学院') then alter table 学生 delete foreign key FK_学生_所属_学院end if;if exists(select 1 from sys.sysforeignkey where role='FK_课程_开设_学院') then alter table 课程 delete foreign key FK_课程_开设_

26、学院end if;drop index if exists 学院.学院_PK;drop table if exists 学院;/*=*/* Table: 学院 */*=*/create table 学院 ( 学院代码 varchar(10) not null, 学院名 varchar(8) null, 学院人数 integer null, constraint PK_学院 primary key (学院代码);/*=*/* Index: 学院_PK */*=*/create unique index 学院_PK on 学院 (学院代码 ASC); if exists(select 1 from

27、 sys.sysforeignkey where role='FK_安排_安排4_管理员') then alter table 安排 delete foreign key FK_安排_安排4_管理员end if;drop index if exists 管理员.教务处_PK;drop table if exists 管理员;/*=*/* Table: 管理员 */*=*/create table 管理员 ( 管理员代码 varchar(20) not null, 学生姓名 varchar(8) null, 教师电话 varchar(20) null, 管理员邮箱 char(10

28、) null, constraint PK_管理员 primary key (管理员代码);/*=*/* Index: 教务处_PK */*=*/create unique index 教务处_PK on 管理员 (管理员代码 ASC); if exists(select 1 from sys.sysforeignkey where role='FK_从属_从属_教师') then alter table 从属 delete foreign key FK_从属_从属_教师end if;if exists(select 1 from sys.sysforeignkey where

29、 role='FK_安排_安排2_教师') then alter table 安排 delete foreign key FK_安排_安排2_教师end if;drop index if exists 教师.教师_PK;drop table if exists 教师;/*=*/* Table: 教师 */*=*/create table 教师 ( 教工号 varchar(10) not null, 学生姓名 varchar(8) null, 教师电话 varchar(20) null, 教师邮箱 varchar(30) null, constraint PK_教师 primar

30、y key (教工号);/*=*/* Index: 教师_PK */*=*/create unique index 教师_PK on 教师 (教工号 ASC); if exists(select 1 from sys.sysforeignkey where role='FK_分配_分配2_教室') then alter table 分配 delete foreign key FK_分配_分配2_教室end if;if exists(select 1 from sys.sysforeignkey where role='FK_安排_安排3_教室') then al

31、ter table 安排 delete foreign key FK_安排_安排3_教室end if;drop index if exists 教室.教室_PK;drop table if exists 教室;/*=*/* Table: 教室 */*=*/create table 教室 ( 教室编号 varchar(10) not null, 所属校区 varchar(10) null, 教学楼 varchar(8) null, constraint PK_教室 primary key (教室编号);/*=*/* Index: 教室_PK */*=*/create unique index 教

32、室_PK on 教室 (教室编号 ASC); if exists(select 1 from sys.sysforeignkey where role='FK_选择_选择_学生') then alter table 选择 delete foreign key FK_选择_选择_学生end if;if exists(select 1 from sys.sysforeignkey where role='FK_选择_选择2_课程') then alter table 选择 delete foreign key FK_选择_选择2_课程end if;drop inde

33、x if exists 选择.选择2_FK;drop index if exists 选择.选择_FK;drop index if exists 选择.选择_PK;drop table if exists 选择;/*=*/* Table: 选择 */*=*/create table 选择 ( 学号 varchar(10) not null, 课程代码 varchar(8) not null, constraint PK_选择 primary key clustered (学号, 课程代码);/*=*/* Index: 选择_PK */*=*/create unique clustered index 选择_PK on 选择 (学号 ASC,课程代码 ASC);/*=*/* Index: 选择_FK */*=*/create index 选择_FK on 选择 (学号 ASC);/*=*/* Index: 选择2_FK */*=*/create index 选择2_FK on 选择 (课程代码 ASC);alter table 选择 add constraint FK_选择_选择_学生 foreign key (学号) references 学生 (学号) on update restrict on delete restri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论