数据库课程设计报告<学生学籍管理系统>
专业
班级
小组成员
指导老师
开始时间
完成时间
目录
数据库课程设计报告 (1)
1.问题描述 (3)
1.1背景 (3)
1.2需求分析 (3)
2.数据字典 (4)
2.1建表清单 (4)
2.2管理员表(A) (4)
2.3学生信息表(S) (4)
2.4课程表(C) (5)
3.概念结构设计 (7)
3.1功能图 (7)
3.2数据流图 (8)
3.3E-R图 (9)
4.逻辑结构设计 (12)
4.1E-R图的转换 (12)
6.程序实现 (15)
6.2程序代码 (15)
6.2功能的实现结果 (25)
7.结论 (28)
课题名称:学生学籍管理系统
1.问题描述
1.1背景
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。任何一个单位需要高效率地把内部活动有机地组织起来并迅速发展,就必须建立与自身特点相适应的管理系统。对于我们学校而言,毫无疑问,在实现学校信息化的过程中,实现学生学籍管理的信息化就显得尤为重要。
学生学籍管理系统主要用于学校学生学籍的管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生学籍进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求来设计学生学籍管理系统。
在本次实验中,我们需要学习并掌握数据库设计的流程和基本方法。在这基础上完成对学生学籍系统数据库的设计和相应文档的编写工作,从而更加深入地掌握数据库系统分析与设计的基本概念和基本方法,提高从事数据库系统建设和管理工作的基本技能和能力。
1.2需求分析
根据用户的需求,学生学籍管理系统将满足一下需求:
A)学生个人基本信息
1)实现学生基本情况的录入、修改、删除等基本操作。
2)对学生基本信息提供灵活的查询方式。
3)
B)选课功能
1)完成一个班级的学期选课功能。
2)
C)成绩管理
1)实现学生成绩的录入、修改、删除等基本操作。
2)能方便的对学生的个学期成绩进行查询。
3)具有成绩统计、排名等功能。
4)
2.数据字典
2.1建表清单
表名中文对照
A 管理员表
S 学生信息表
C 课程表
B 班级表
P专业表
D 院系表
CS 选课表
T 老师表
J 授课表
2.2管理员表(A)
管理员表(A)
是否主键字段名字段描述数据类型长
度
可
空
约
束
缺
省
值
备注
是A_ID管理员编号CHAR(4) 4
A_USER用户名V ARCHA
R(10)
1 0
A_PW用户密码V ARCHA
R(20)
2 0
A_PERM用户权限INT不同用户拥有不同权
限
2.3学生信息表(S)
学生信息表(S)
是否主键字段名字段描述数据类型长
度
可
空
约
束
缺
省值
备注
是S_NO学号CHAR(10)10
S_NAME姓名V ARCHAR(10)10是
S_SEX性别CHAR(2)2是男
女S_BIRT出生日期V ARCHAR(10)10是
S_NAFA民族V ARCHAR(8)8是汉S_BIPL籍贯V ARCHAR(10)10是
S_ADDR地址V ARCHAR(50)50是
S_POST邮编CHAR(6)6是
S_TEL电话V ARCHAR(20)20是
S_ID身份证号CHAR(18)18是
S_POLA政治面貌V ARCHAR(10)10是其
他
群
众
共
青团
中
共党员S_YEAR入学年份V ARCHAR(10)10是
S_DEPA院系CHAR(4)是
S_PROF专业CHAR4)是
S_CLAS班级CHAR(4)是
S_NOTE备注V ARCHAR(1000)1000是
2.4课程表(C)
课程表(C)
是否主键字段名字段描述数据类型长
度
可
空
约
束
缺
省
值
备注
是C_ID课程编号CHAR(4) 4
C_NAME课程名V ARCHAR(20
)
2
是
C_PRNO先行课CHAR(4) 4 是C_CREDIT学分INT
C_NOTE课程简介V ARCHAR(20
0)
2
00
是
2.5班级表(B)
班级表(B)
是否主键字段名字段描述数据类型长
度
可
空
约
束
缺
省
值
备注
是B_ID班级编号CHAR(4) 4
B_NAME班级名V ARCHAR(40
)
4
是
B_NUM班级人数SMALLINT是B_MASTER班主任名V ARCHAR(4)是
P_ID专业编号CHAR(4)
2.6专业表(P)
专业表(P)
是否主键字段名字段描述数据类型长
度
可
空
约
束
缺
省
值
备注
是P_ID专业编号CHAR(4) 4
P_NAME专业名V ARCHAR(40
)
4
是
P_NUM专业人数INT是
D_ID学院编号CHAR(4) 4
2.7院系表(D)
院系表(D)
是否主键字段名字段描述数据类型长
度
可
空
约
束
缺
省
值
备注
是D_ID学院编号CHAR(4) 4
D_NAME学院名V ARCHAR(40
)
4
是
D_NUM学院人数INT是
D_MASTE
R
院长名V ARCHAR(4) 4 是2.8选课表(CS )
选课表(CS)
是否主键字段名字段描
述
数据类型长
度
可
空
约
束
缺
省值
备注
是T_ID学院编
号
CHAR(4)20
是C_ID课程编
号
CHAR(4) 4
CS_RESULT成绩FLOA T 是2.9教师表(T)
教师表(T)
是否主键 字段名 字段描述 数据类型
长度
可空
约束
缺省值
备注
是 T_ID 教师编号 CHAR(4) 4 T_NAME 教师名 V ARCHAR(4) 4 是
T_COR
所授课程
V ARCHAR(20
)
2
是
T_TEL 手机号码 CHAR(11)
11
是
2.10 授课表(J )
授课表(J ) 是否主键
字段名
字段描述 数据类型
长度 可空
约束
缺省值
备注
是
T_ ID
教师
编号
CHAR(4) 4
是
C_ID
课程编号
CHAR(4)
4
J_TIME
授课时间
V ARCHAR(20
)
是
3. 概念结构设计
3.1 功能图
学生学籍管理系统
输特殊成绩统
3.2
数据流图
数据流图是用图形的方式完成系统中信息的传递,先构建系统抽象模型,既顶层数据流图为图(1):
图(2):学籍管理系统信息流图
由上图知,学生进入系统只完成选课及退选。而系管理员进入系统后录入/更新的信息抱括:专业、班级、学生。对学生选课进一步分解可得图(2):
班级描述信息
学生描述信息
学生、课程、班级及专业信
息表,留级、休学处理表
选课、成绩表
录如/更新学生、系、专业、课程及成绩信息 选课/退选
学籍管理系统
学生
系管理员
学生
系管理员
图中的专业、学生、班级信息以及学生选的课程都又系管理员录入。学生通过身份验证后进入系统,选择自己的必修和选修课,并能对已选课进行撤消。学生选完课提交后,将结果保存。
3.3 E-R 图
选课不成功
已选课程
选课成功
选课信息记录
课程信息
课程描述信息
通过申请
验证不通过
选课处理
图(3):学生选课分解子图
学生
身份验证
学生信息 专业信息
班级信息
专业描述信息
选课申请
4.逻辑结构设计
4.1逻辑结构设计步骤
(1)将概念结构转换为一般关系、网状、层次模型。
(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换。(3)对数据模型进行优化。
4.2E-R图的转换
管理员表
学生表
班级表
专业表
学院表
课程表
选课表
教师表
授课表
5.物理结构设计
5.1物理关系模型
6.程序实现
6.2程序代码
建立数据库:
CREATE DATABASE STUDENT
ON
(NAME=STUDENT_Data,
FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\STUDENT.mdf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=10%
)
LOG ON
(NAME='lbr_Log',
FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\STUDENT_Log.ldf',
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=1MB
)
GO
USE STUDENT
建表:
create table A --管理员表
(
A_ID CHAR(4),
A_USER varchar(10)not null,
A_PW varchar(20)not null,
A_PERM int not null,
constraint pk_A primary key(A_ID)
)
go
create table D --院系表
(
D_ID CHAR(4)not null,
D_NAME varchar(40),
D_NUM int,
D_MASTER varchar(4),
constraint pk_D primary key(D_ID),
)
go
create table P --专业表
(
P_ID CHAR(4)not null,
P_NAME varchar(40),
P_NUM int,
D_ID CHAR(4)not null,
constraint pk_P primary key(P_ID),
constraint fk_P_D foreign key(D_ID)references D(D_ID) on delete cascade
on update cascade,
)
go
create table B --班级表
(
B_ID CHAR(4)not null,
B_NAME varchar(40),
B_MASTER varchar(4),
B_NUM smallint,
P_ID CHAR(4)not null,--专业编号
constraint pk_B primary key(B_ID),
constraint fk_B_P foreign key(P_ID)references P(P_ID)
on delete cascade
on update cascade,
)
go
create table S --学生表
(
S_NO char(10)not null,
S_NAME varchar(10),
S_SEX char(2)check(S_SEX in('男','女')),
S_BIRT varchar(10),
S_NAFA varchar(8),
S_BIPL varchar(10),
S_ADDR varchar(50),
S_POST char(6),--邮政编码
S_TEL varchar(20),
S_ID char(18),--返回不带前导空格(LTrim)、后续空格(RTrim) 或前导与后续空格(Trim) 的字符串副本。
S_POLA varchar(10)check(rtrim(S_POLA)in('其他','群众','共青团','中共党员')),
S_YEAR varchar(10),--入学时间
S_DEPA CHAR(4),--院系
S_PROF CHAR(4),--专业
S_CLAS CHAR(4),--班级
S_NOTE varchar(1000),
constraint pk_S primary key(S_NO),
constraint fk_S_CLAS foreign key(S_CLAS)references B (B_ID) on delete cascade
on update cascade,
)
go
create table C --课程表
(
C_ID CHAR(4)not null,
C_NAME varchar(20),
C_PRNO CHAR(4),
C_CREDIT int not null,
C_NOTE varchar(200),
constraint pk_C primary key(C_ID),
constraint fk_C foreign key(C_PRNO)references C(C_ID)
)
go
create table CS --选课表
(
S_No char(10)not null,
C_ID CHAR(4)not null,
CS_RESULT FLOAT,
constraint pk_C_S primary key(S_No,C_ID),
constraint fk_C_S_S foreign key(S_No)references S(S_No), constraint fk_C_S_C foreign key(C_ID)references C(C_ID) )
go
create table T --教师表
(
T_ID CHAR(4)not null,
T_NAME varchar(4),
T_COR varchar(20),
T_TEL char(11),
constraint pk_T primary key(T_ID)
)
go
create table J --授课表表
(
T_ID char(4)not null,
C_ID CHAR(4)not null,
J_TIME varchar(20),
constraint pk_T_C primary key(C_ID,T_ID),
constraint fkJ_C foreign key(C_ID)references C(C_ID), constraint fkJ_T foreign key(T_ID)references T(T_ID) )
go
插入数据:
insert A(A_ID,A_PERM,A_PW,A_USER)
values('0001','1','password1','张六')
go
insert A(A_ID,A_PERM,A_PW,A_USER)
values('0002','2','password2','张齐')
go
insert D (D_ID,D_Name,D_NUM,D_MASTER)
values('0001','信息技术学院',5000,'张五')
go
insert P (P_ID,D_ID,P_NAME,P_NUM)
values('0001','0001','数字媒体技术',120)
go
insert P (P_ID,D_ID,P_NAME,P_NUM)
values('0002','0001','软件工程',120)
go
insert B (B_ID,P_ID,B_NAME,B_NUM,B_MASTER)
values('0001','0001','1班',120,'李丽')
go
insert B (B_ID,P_ID,B_NAME,B_NUM,B_MASTER)
values('0002','0002','1班',120,'王宏')
go
insert S
values('1001010018','苏希','女','1989-7-10','汉族','广东省','北京师范大学珠海分校','519078','158********','441882************','中共党员
','2007-9-1','0001','0001','0001','无')
go
insert S
values('1001010764','张妮','女','1990-8-10','汉族','贵州省','北京师范大学珠海分校','519078','158********','441882************','中共党员
','2007-9-1','0001','0001','0001','无')
go
insert S
values('1001010056','王帅','男','1989-7-10','汉族','广东省','北京师范大学珠海分校','519078','158********','441882************','中共党员
','2007-9-1','0001','0002','0002','无')
go
insert S
values('1001010065','李思','男','1989-7-10','汉族','广东省','北京师范大学珠海分校','519078','158********','441882************','中共党员
','2007-9-1','0001','0002','0002','无')
go
insert S
values('1001010034','邵明','男','1989-7-10','汉族','广东省','北京师范大学珠海分校','519078','158********','441882************','中共党员
','2007-9-1','0001','0001','0001','无')
go