3.3逻辑结构设计9
3.4数据库建立实行9
3.4.1建立数据库9
3.4.2建立关系表10
四、系统实现11
五、系统评价20
六、课程设计心得、总结20
参考文献:
21
一概述
随着社会的发展,基本上所有的具有一定数量数据的企事业单位或机关部门
都开始使用计算机数据库来做管理。
在各大中小学校,用计算机管理学校的信息已经越来越普遍了。
用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性,提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。
该课程设计要求设计一个学籍管理的数据库系统,数据库中包含学生的基本信息,班级信息以及课程设置的信息。
同时还要设计它们之间的关系,如学生与课程关系和学生的成绩等,最后还要对一些数据进行查询,如查询学生成绩的各种集合等。
1.1课程设计的目的
数据库课程设计实验是一门独立开设的实验课程。
数据库课程设计实验对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。
本课程设计实验主要数据库设计,进行数据库编程实践。
通过本实验,使学生了解数据库系统的理论,掌握数据库的设计方法及数据库的运用和开发技术。
1.掌握数据库设计的基本方法,熟悉数据库设计的步骤;
2.通过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提
高动手能力,提高分析问题和解决问题的能力。
1.2课程设计的内容
设计一个学生学籍管理系统,包括
(1>主要的数据表
学生基本情况数据表,学生成绩数据表,课程表等等。
(2>主要功能模块
1)实现学生基本情况的录入、修改、删除等基本操作。
2)对学生基本信息提供灵活的查询方式。
3)完成一个班级的学期选课功能。
4)实现学生成绩的录入、修改、删除等基本操作。
5)能方便的对学生的各学期成绩进行查询。
6)具有成绩统计、排名等功能。
7)具有留级、休学等特殊情况的处理功能。
8)具有数据备份和数据恢复功能。
1.3课程设计的要求
要求学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。
二需求分析
2.1系统需求
进行数据库设计首先必须准确了解用户需求,目的是为学籍管理数据库系统的设计打下牢牢的基础,是数据库开发的重要文件依据,主要为数据库设计人员使用,是用户和系统分析员的项目依据文件。
需求分析是否做得充分与准确,它决定了在其上构建数据库大厦的速度和质量。
2.2数据字典
学籍管理系统数据字典
数据项
名称:
用户信息
描述:
管理员的基本信息表
定义:
用户=用户名+密码+性别+联系电话+出生年月+家庭住址
用户名={英文字母、数字、特殊符号}
姓名={英文字母、数字、文字}
------------------------------------------------------
名称:
学生信息管理
描述:
学校学生注册基本信息表
定义:
学生表=学号+姓名+性别+班级+民族+籍贯+政治面貌+出生日期+入学日期+家庭住址+联系电话+{备注}4
学号=11{数字}11
姓名=2{文字}4
----------------—-------------------------------------
名称:
班级表
描述:
学校各班班级基本信息表
定义:
班级表=年级+班号+班主任+教室
班号=3{数字}3
年级=2{文字}2
-------------------------------------------------------
名称:
课程表
描述:
各年级所学课程的基本信息表
定义:
课程表=课程编号+课程名称+课程类型+课程描述
编号=3{数字}3
名称=4{文字}4
--------------------—---------------------------------
名称:
学生成绩管理
描述:
学校学生各科成绩基本信息表
定义:
成绩录入=测试编号+学号+姓名班级+课程名+成绩
学号=11{数字}11
姓名=2{文字}4
--------------------—---------------------------------
数据结构:
学生
含义说明:
是学籍管理系统的一个核心数据结构,定义了学生的有关信息
组成:
学号、姓名
数据项:
学号
含义说明:
唯一标识每一个学生
别名:
学生编号
类型:
字符型
长度:
9位
取值含义:
前四位表明学生所在年级,后五位按顺序编号
数据项:
姓名
含义说明:
表示学生的姓名
类型:
字符型
长度:
10位
取值范围:
任意字符
数据结构:
课程
含义说明:
教务管理系统的核心数据结构之一,定义了课程的有关信息
组成:
课程号,课程名,学分
数据项:
课程号
含义说明:
课程的编号
类型:
字符型
长度:
4
取值范围:
0001–9999
数据项:
课序号
含义说明:
对于同一课程,由不同老师教授,用课序号来区分
类型:
字符型
长度:
2
取值范围:
01–99
数据项:
课程名
含义说明:
课程的名称
类型:
字符型
长度:
10
取值范围:
任意合法的字符
数据项:
学分
含义说明:
课程的学分
类型:
整型
长度:
1
取值范围:
1-9
--------------------—---------------------------------
数据结构:
班级
含义说明:
专业分班信息
组成:
班级编号,班级人数
数据项:
班级编号
含义说明:
班级的编号
类型:
字符
长度:
5
取值范围:
00001-99999
数据项:
班级容量
含义说明:
班级的容纳学生的数量
类型:
整型
取值范围:
正整数
--------------------—--------------------------------
三系统总体设计
3.1系统总体设计思路
设计该系统时采用自底向上的设计方法,首先设计数据结构,然后设计表单、菜单、报表最后是主系统。
功能模块图
功能描述,包括查询内容
实现学生基本情况的录入,修改,删除等基本操作.
对学生基本信息提供灵活的查询方式.
完成一个班级的学期选课功能.
实现学生成绩的录入,修改,删除等基本操作.
能方便的对学生的各学期成绩进行查询.
具有成绩统计,排名等功能.
具有留级,休学等特殊情况的处理功能.
具有数据备份和数据恢复功能.
学生成绩表的设计,要考虑到不同年级的教案计划的变化
3.2.数据库概念模型设计3.3逻辑结构设计
学生信息:
<学号,姓名,入学时间,班号,性别,联系电话,出生日期,专业,状态)
课程信息:
<课程号,课程名,课程类型,学分)
班级信息:
<班号,年级,专业,班主任)
选课表:
<学号,姓名,课程号,课程名)
教案计划:
<年级,专业,学期,课程名)
3.4数据库建立实行
3.4.1建立数据库
3.4.2建立关系表
数据库表/视图一览表
表3.1学生信息表
字段名
字段类型
长度
主键或外键
字段值约束
学号
int
4
PrimaryKey
NotNull
姓名
Char
10
性别
Char
2
出生日期
Datetime
班号
Char
12
联系电话
Char
11
入学日期
Datetime
年级
Char
10
专业
Char
10
状态
Char
10
表3.2课程信息表
字段名
字段类型
长度
主键或外键
字段值约束
课程号
Char
10
PrimaryKey
NotNull
课程名
char
10
学分
Char
10
课程类型
Char
10
表3.3班级信息
对应中文属性名
字段类型
长度
主键或外键
字段值约束
班号
Char
12
PrimaryKey
NotNull
年级
Char
10
专业
Char
10
班主任
Char
10
表3.4选课表
字段名
字段类型
长度
主键或外键
字段值约束
学号
int
4
ForeignKey
NotNull
姓名
Char
10
课程号
Char
10
ForeignKey
NotNull
课程名
Char
10
学分
Char
10
表3.5成绩信息表
字段名
字段类型
长度
主键或外键
字段值约束
学号
int
4
ForeignKey
NotNull
姓名
Char
10
课程号
Char
10
ForeignKey
NotNull
课程名
Char
10
学分
Char
10
课程名
Char
10
学期
int
4
表3.6教案计划表
字段名
字段类型
长度
主键或外键
字段值约束
年级
int
4
ForeignKey
NotNull
班号
Char
12
ForeignKey
NotNull
专业
Char
10
学期
int
4
课程号
Char
10
ForeignKey
NotNull
课程名
Char
10
四系统实现
建立数据库对象,查询语句的全部SQL命令
createtable学生信息
(学号intprimarykeyNOTNULL,
姓名char(10>,
性别char(2>,
出生日期datetime,
班号char(12>,
年级char(10>,
电话号码char(11>,
入学日期datetime,
专业char(10>,
状态char(10>,
>
createtable课程信息(
课程号char(10>primarykeynotnull,
课程名char(10>,
课程类型char(10>,
学分char(10>>
createtable班级信息(
班号char(12>primarykeynotnull,
年级char(10>,
班主任char(10>,
专业char(10>>
createtable选课表(
学号char(10>,
姓名char(10>,
年级char(10>,
课程号char(10>,
课程名char(10>,
>
createtable成绩信息(
学号intnotnull,
姓名char(10>,
课程号char(10>,
课程名char(10>,
成绩float(8>,
学分char(10>,
学期int>
Createtable教案计划表(
年级char(10>,
专业char(