数据库课程设计报告.docx
《数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告.docx(23页珍藏版)》请在冰豆网上搜索。
![数据库课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-10/19/5ddca1a7-62fb-4e3f-a13b-2525e54aa742/5ddca1a7-62fb-4e3f-a13b-2525e54aa7421.gif)
数据库系统课程设计
学生姓名:
班学号:
指导教师:
中国地质大学
年月日
教务管理系统
1、需求分析
教务管理系统
该教学系统主要提供数据维护、学生选课和教师授课信息查询功能。
其实现的功能(即其包含的查询)有:
系统中对教师、学生基本信息的录入;系统中对教师、学生的基本信息查询;查询学生的选课情况;查询教师的授课情况;还包括学生选课功能。
该数据库系统包括学生密码表、学生信息表、教师信息表、教师密码表、学生选课表、课程匹配表,管理员密码表七个关系表,基本情况如下:
三张密码表均有相应账户和密码;教师信息表有工作证号、姓名、性别、族别、政治面貌、出生年月、联系方式、所在系、所在学院、职称;学生表有学号、姓名、性别、族别、政治面貌、出生年月、联系方式、班号、所在系、所在学院;课程有课程名、学分、名额、上课时间信息;授课表有课程号、工作证号信息;学生选课表有课程名称、课程号、授课老师、授课时间、授课地点、剩余容量、工作证号、成绩。
课程匹配表则有课程号,学号,学生姓名,班号,所在专业,所在学院,成绩。
每个学生都属于一个班,每个教师也都属于一个系。
一名教师可以教多门课,一门课可以有几位主讲老师,一名同学可以选多门课。
学生、教师都有可以有重名,工作证号、学号可以作为标识。
系统中的实体:
①教师:
工作证号、姓名、性别、职称、电话等;
②学生:
学号、姓名、性别、出生年月、职位、电话等;
③班级:
班号、最低总学分、人数等;
④系:
系代号、系名、系办公室电话等;
⑤课程:
课序号、课名、学分、上课时间、名额等。
实体间关系:
①每个学生都属于一个班,每个班都属于一个系,每个教师也都属于一个系;
②每个班的班主任都由一名教师担任;
③一名教师可以教多门课,一门课可以有几位主讲老师,但不同老师讲的同一门课其课序号是不同的(课序号是唯一的);
④一名同学可以选多门课,一门课可被若干同学选中;
⑤一名同学选中的课若已学完,应该记录有相应成绩;
⑥本单位学生、教师都有重名,工作证号、学号可以作为标识。
系统的需求:
①教学系统主要提供数据维护、选课和信息查询;
②系统中各对象的基本信息录入与查询;
③指定班、系的学生信息查询;
④学生的成绩、学分情况查询;
⑤教师授课情况和学生选课情况查询。
系统的组成:
教务管理系统包括教师管理子系统、学生管理子系统、管理员管理子系统。
其中各个系统中拥有独自的一套查询、添加、删除、更新操作。
系统管理员进行数据维护的操作。
2、概念设计
(1)概念模型(E-R图):
①选课E-R图
学生
课程恩
选课课
m
n
学号
年龄
性别
所在系
课程号
课名
学分
名额
①授课E-R图
工作证号
课程号
姓名
教师
课程恩
授课
m
n
课名
性别
学分
电话
名额
①总E-R图
m
学生
选课
学号
姓名
专业
课程恩
教师
授课
n
m
n
工作证号
课程号
姓名
电话
…
…
(2)数据字典:
①数据项
编号
实体
数据项名
数据项含义说明
数据类型
长度
与其他数据项的逻辑关系
1
教师
工作证号
区别老师的数据项
Bigint
20
决定姓名性别等教师属性
2
姓名
允许重名
Char
10
决定性别等教师属性
3
性别
老师性别
Char
10
4
所在系
所在系
Char
10
5
电话
老师的联系方式
Bigint
20
6
用户名
登录验证
Char
20
7
用户密码
登录验证
Char
20
8
所在学院
所在学院
Char
30
9
族别
所属民族
Char
30
10
职称
老师的职称
Char
20
11
政治面貌
老师的政治面貌
Char
20
12
学院电话
学院电话
Bigint
20
13
出生年月
老师出生年月
Char
20
14
学生
学号
区别学生的数据项
Bigint
20
决定姓名性别等学生属性
15
学生姓名
允许重名
Char
10
16
学生性别
学生性别
Char
10
17
出生年月
允许重复
Char
18
所在系
允许空值
Char
10
19
班号
学生联系方式
Char
11
20
用户名
登录验证
Char
20
21
用户密码
登录验证
Char
20
22
所在学院
所在学院
Char
30
23
族别
所属民族
Char
30
24
政治面貌
学生的政治面貌
Char
20
25
联系方式
学生联系方式
Bigint
26
课程
课程号
区别课程的数据项
Char
10
决定课名学分等课程属性
27
课程名
课程名称
Char
10
28
学分
所含学分
Char
10
29
上课时间
上课日期
Char
30
30
名额
课程限制最高人数
Char
10
31
选课
课程号
学生所选课课程号
Char
10
由课程表课程号和学生表学号决定
32
学号
学生学号
Char
20
33
授课
课程号
学生所选课课程号
Char
10
由课程表课程号和学生表学号决定
34
工作证号
教师工作证号
nchar
20
②数据流
编号
数据流名
数据流来源
数据流去向
1
查询教师信息
工作证号
教师信息
2
注册教师信息
插入的信息
教师信息
3
查询学生信息
学号
学生信息
4
注册学生信息
插入的信息
学生信息
5
查询课程信息
学号
课程信息
7
选择课程
选课信息
课程匹配表
8
查询选课信息
学号
选课信息
9
查询授课信息
课程号
课程匹配表
总数据流图
录入
选课
查询
评价
5.0更新:
②数据结构
编号
数据结构名
含义说明
组成
1
教师
教师实体
工作证号、姓名、性别、族别、政治面貌、出生年月、联系方式、所在系、所在学院、职称
2
学生
学生实体
学号、姓名、性别、族别、政治面貌、出生年月、联系方式、所在系、所在学院、班号
3
课程
课程实体
课程号、课名、余量、上课时间、上课地点
4
选课
学生实体和课程实体
学号、课程号、成绩
5
任教
教师实体和课程实体
工作证号、课程号
3、逻辑结构设计
①关系的描述
根据数据库系统设计的最基本的要求,消除依赖集F中的部分依赖和传递依赖,消除插入异常、删除异常、修改异常,达到第三范式无损链接和保持依赖,从而得到以下关系模型以及其主码:
教师(工作证号、姓名、性别、电话、所在系、用户名、用户密码)
学生(学号、姓名、性别、年龄、所在系、班号、用户名、用户密码)
课程(课程号、课程名、学分、名额、上课时间)
选课(课程号、学号)
授课(课程号、工作证号)
以上加下划线的表示关系模型里面的主码。
②实体间的联系分析
教师—班级:
1:
1;
系—教师:
1:
n;
系—班级:
1:
n;
班级—学生:
1:
n;
课程—教师:
m:
n;
课程—学生:
m:
n
4、物理设计
4.1物理存储结构
编号
数据存储名
说明
输入的数据流
输出的数据流
1
教师信息表
存取教师信息
教师实体其中一项或多项项信息
教师信息或任课信息
2
学生信息表
存取学生信息
学生实体其中一项或多项项信息
学生信息或选课信息
3
选课信息表
存取课程信息
课程实体其中一项或多项项信息
课程信息或选课信息或任课信息
4
课程匹配表
存取选课信息
学生所有选课记录
选课信息或课程信息
4.1.1数据库
我本次课程设计采用了SQLsever平台进行存储建立基本表与信息。
编写关系模式,载入数据。
其存在多种存取方法。
并且首先要运行调试软件的运行恢复部分,确保数据日后的转储与恢复。
4.1.2基本表
Student表
------------------------------
DROPTABLEIFEXISTS`Student`;
CREATETABLE`student`(
`学号`bigint()NOTNULL,
`姓名`char(30)NOTNULL,
性别`char(10)DEFAULTNULL,
`族别`char(30)NOTNULL,
`政治面貌`char(20)NOTNULL,
`出生年月`char(30)NOTNULL,
`联系方式`bigint()NOTNULL,
`班号`bigint()NOTNULL,
`所在专业`char(20)NOTNULL,
`所在学院`char(20)NOTNULL,
PRIMARYKEY(`学号`),
KEY`姓名`(`姓名`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
------------------------------
Teacher表
------------------------------
DROPTABLEIFEXISTS`Teacher`;
CREATETABLE`Teacher`(
`工作证号`bigint()NOTNULL,
`姓名`char(30)NOTNULL,
性别`char(10)DEFAULTNULL,
`族别`char(30)NOTNULL,
`政治面貌`char(20)NOTNULL,
`出生年月`char(30)NOTNULL,
`联系方式`bigint()NOTNULL,
`职称`char(20)NOTNULL,
`所在专业`char(20)NOTNULL,
`所在学院`char(20)NOTNULL,
‘学院电话’char(20)NOTNULL,
PRIMARYKEY(`工作证号’)
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
------------------------------
选课表
------------------------------
DROPTABLEIFEXISTS`studentchoose`;
CREATETABLE`studentchoose`(
`cNum`varchar(7)NOTNULL,
`Name1`varchar(5)NOTNULL,
`Unit`varchar(20)NOTNULL,
PRIMARYKEY(`cNum`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
--