课程设计报告
课程名称:数据库系统综合实训
学号:**********
姓名:**
班级:15计科G班
专业:计算机科学与技术任课教师:胡艳慧
目录
1. 选题说明 (1)
2. 需求分析 (2)
功能需求分析 (2)
数据库需求分析 (3)
顶层数据流图 (3)
一层数据流图 (3)
三层数据流图 (7)
3. 概念结构设计 (7)
E-R图 (7)
用POWERDESIGNER软件画概念结构模型 (8)
4.逻辑结构设计 (8)
E-R图转换成的逻辑结构模式 (8)
用POWERDESIGNER软件画逻辑结构模型 (8)
5 物理结构设计 (9)
数据库中的表结构 (9)
用POWERDESIGNER软件画物理结构模型 (11)
6. 数据库实施 (11)
创建数据库 (11)
创建数据表 (12)
创建视图 (16)
创建索引 (17)
7 数据库维护 (17)
修改表结构 (17)
修改表数据 (18)
8 数据库使用 (18)
通过学号查询性别、年龄(单表查询) (18)
程序设计 (18)
参考文献 (19)
2
学生成绩管理系统数据库的设计
学生姓名:** 指导教师:胡艳慧
内容提要:以管理信息系统技术和J AVA语言程序设计理论为基础,结合W INDOWS A CCESS数据库服务器的相关技术,阐述构建一个普遍适用于学校、班级的学生成绩管理系统的全过程,建立一套在现有W INDOWS操作系统下的单机版学生成绩管理系统。该系统适合一般学校和班级使用。管理系统具有简单实用、操作方便,可靠性强等特点。可供一般学生登陆查询,管理员则拥有查询、添加、修改、删除学生成绩的功能。该成绩信息管理不仅可以实现传统管理应用中的属性数据的管理,而且可以针对不同的用户需求建立对空间数据的管理机制,因而可以得到广泛的应用。
关键词:M ICROSOFT V ISIO P OWER D ESIGNER SQL S ERVER 2008R2
引言
在我国高等教育全面推行素质教育和个性化教育的今天,培养学生的创新精神和实践能力成为了重中之重。我国进入21世纪后,高等教育得到了进一步的发展,同时对教学管理工作方法及手段提出了更高的要求,因此合理运用现代化手段进行科学化管理是当今高校学生管理的一个重要趋势。高校学生成绩管理作为高校管理工作中衡量一个学校教学水平及教学质量的重要指标,也进入了自动化管理。学生成绩管理系统不再是单纯的一个学生成绩的存储系统,同时也是一个实时性的信息管理决策系统,要求对信息管理的准确性和时间性。如何开发一个适用于新型时代背景下的新型学生成绩管理系统也成为一个热门的研究方向,它是实现高校教务管理工作现代化、科学化的必然要求。
1. 选题说明
学生成绩管理系统是一个学校不可缺少的部分,学生成绩管理系统能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件学生成绩,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新
1
和维护都带来了不少的困难。围绕这个定义,学生成绩管理系统的主要功能有如下:
1.教师可以预先查看,修改所教课程平时分和总评分的规则。
2.教师添加所教班级学生的平时成绩和期末考试成绩。
3.根据教师提供的平时和期末成绩,按照相应的规则,系统自动计算出该学生这门课程的总评成绩。
4.教师可以单独查询所带班级学生的平时和期末成绩。
5.教师可以修改自己的登陆密码。
2. 需求分析
功能需求分析
如图1所示。
图1 功能模块图
学生成绩管理系统可将用户分为四类,即教务管理人员、辅导员、授课教师、学生。根据系统要求,四类用户需实现基础信息管理、学生管理、教师管理、课程管理、授课管理、成绩管理六个功能。
基础信息管理包括院系管理、专业管理、班级管理三个部分。
学生系统管理包括学生信息维护、学生异动维护、学生信息查询三个部分,其中,学生信息维护包括学生信息录入、学生信息导入、学生信息修改;学生信息查询包括个人信息查询、学生
2
信息统计、班级学生列表。
教师管理包括职称信息维护、教师信息维护、教师信息查询三个部分。
课程管理包括课程信息维护、课程信息查询两个部分。
授课管理包括授课任务安排、任课变更、授课任务查询(教师任课列表、班级任课列表)。
成绩管理包括成绩录入、成绩查询统计两个部分。其中成绩信息管理包括增加成绩、修改成绩、删除成绩,为实现成绩的增加操作,还需要班级学生名单子处理。为实现删除和修改成绩操作,还需设计成绩查询子处理。成绩查询统计包括个人成绩查询、个人学期成绩单、班级成绩查询、成绩查询统计。
数据库需求分析
顶层数据流图
根据上述初步需求,教务管理员、授课教师、辅导员、学生是数据输入的源点和数据输出的汇点。涉及到数据存储包括院系信息、专业信息、班级信息、学生基本信息、学生异动信息、教师信息、职称信息、课程信息、授课信息和成绩信息。
图2 顶层数据流图
一层数据流图
3
将数据处理“学生成绩管理系统”细化为基本数据管理、学生管理、教师管理、课程管理、授课管理、成绩管理等子处理。
图3 一层数据流图
二层数据流图
进一步细化各处理流程,直到数据流图中出现的每个数据处理都不能再分解为止。
图4 二层数据流图(基础信息管理)
4
图5 二层数据流图(学生管理)
5
图6 二层数据流图(教师管理)
图7 二层数据流图(授课管理)
6
7 图8 二层数据流图(成绩管理)
三层数据流图
成绩录入子系统还可以继续细化为增加成绩、修改成绩、删除成绩等子处理,为了方便成绩录入,还需要班级学生名单查询子过程。
图9 三层数据流图(成绩录入子处理)
3. 概念结构设计 E-R 图
确定基础数据管理应用各实体间的联系、学生管理应用中各实体间的联系、教师管理和授课管理应用中各实体间的联系、学生成绩管理应用中各实体间的联系。考虑建立院系与学生、专业
班级学生名单查询6.1.1
班级学生名单显示
6.1.6
增加成绩
6.12
查询成绩
6.1.5
删除成绩6.1.4学生名单学生信息
学
生
信
息
授课教师
学
生
班
级
添加
成绩
成绩信息
新
增
的
成
绩
修改成绩
6.1.3
修
改
后
的
成
绩
待
修
改
的
成
绩
变更成绩要求
删
除
成
绩
要
求
学
生
学
号
原成绩
8 与学生、班级与学生之间的联系,以课程、学生、班级为结点合并生成E-R 图。
图10 ER-图
用Powerdesigner 软件画概念结构模型 字顶向下:先定义全局概念结构,逐步细化。 自底向下:先定义局部概念结构,然后集成。 逐步扩张:先定义核心概念结构,然后扩充。 混合策略:将自顶向下和自底向上相结合。
图11 概念模型
4.逻辑结构设计
逻辑模型是概念模型的延伸,表示概念之间的逻辑次序,是一个属于方法层次的模型。具体来说,逻辑模型中一方面显示了实体、实体的属性和实体之间的关系,另一方面又将继承、实体关系中的引用等在实体的属性中进行展示。
E-R 图转换成的逻辑结构模式
关系模型的逻辑结构是一组关系模式的集合,E-R 图则是有实体、实体属性和实体之间的联系3个要素组成。所以将E-R 抓换成关系模型实际上就是将实体、实体属性和实体之间的联系转化关系模式,并确定关系模式的属性和码。
用Powerdesigner 软件画逻辑结构模型
就职聘任开设
所学隶属
异动
所属所在
1,n
1,n
1,n
1,n
学生
学号姓名性别年龄籍贯是否党员录取渠道年级
教师代码j 教师姓名加入时间所学专业研究方向教师简介教师说明
职称编码职称名称
主标识符...
专业专业代码专业名称专业简称成立时间cheng 专业规模专业特色专业简介专业说明
课程编号课程名称课程类型课程学分课程学时课程简介开课时间考核方式
班级代码班级名称班级简称成立时间2班级规模班级特色班级简介班级说明
主标识符...
异动编号异动类型异动时间异动原因异动说明
单周授课时间双周授课时间授课地点授课说明
Date & Time Date & Time
Variable characters (2Text
成绩
录入时间平时成绩卷面成绩总分备注
Date & Time
Variable characters Date & Time
Variable characters Text
9 新建CDM 模型,创建实体,双击实体,出现实体属性General 选择卡设置通用属性,Attributes 选择卡设置实体包含的属性,Identifiers 设置实体的码,Notes 记录备注信息,Rules 设置规则,
其中前两个必须设置,其余的选择设置。
图12 逻辑结构模型
5 物理结构设计 数据库中的表结构
表1 院系基本信息表,
属性名 存储名称 数据类型
是否是主属性
或外键
完整性
院系代码 Department Code Char(12) Y Not null 院系名称 DepartmentName Varchar(50) N Not null 院系简称 DepartmentAbbreviaton Varchar(50) N Not null 成立时间 Established Time Datetime N Not null 院系规模 Department Scale int N Not null 院系特色 Department Characteristic Varchar (200)
N Not null 院系说明
Department Description
text
N
Not null 属性名 存储名称 数据类型
是否是主属性
或外键
完整性
专业代码
ProfessionalCode
Char(12)
Y
Not null
表3 班级基本信息表
表4 教师基本信息表
10
11
用Powerdesigner 软件画物理结构模型 图13 物理结构模型
6. 数据库实施 创建数据库
create database stuDB on primary (
name='stuDB_data', filename='D:\', size=5mb, maxsize=100mb,
FK_TEACHER_就职_FACULTY FK_STUDENT_所学_MAJOR FK_班级_隶属_MAJOR
FK_STUDENT_所属_班级
FK_STUDENT_所在_FACULTY
FK_TECAHING_TECAHING_TEACHER
FK_成绩_成绩_STUDENT
FK_成绩_成绩2_CURRICUL
FK_TECAHING_TECAHING2_CURRICUL
学生
学号
专业代码
院系代码班级代码
姓名
性别年龄
籍贯是否党员录取渠道年级
...
char(12)char(12)char(12)char(12)char(10)char(1)int
varchar(20)char(1)char(1)char(4)
院系
院系代码院系名称院系简称
成立时间cheng 院系规模院系特色院系说明...
char(12)varchar(50)varchar(20)datetime int varchar(200)text
教师代码
职称编码
院系代码
j 教师姓名加入时间所学专业研究方向
教师简介教师说明...
char(12)
char(12)
char(12)
varchar(10)datetime varchar(50)varchar(50)varchar(200)text
职称编码职称名称char(12)
varchar(20)
成立时间cheng 专业规模专业特色专业简介专业说明...char(12)char(12)varchar(50)varchar(20)datetime int varchar(200)varchar(200)text
课程编号课程名称课程类型课程学分课程学时课程简介开课时间考核方式...
char(12)
varchar(50)char(2)float(8)int
varchar(200)datetime varchar(12)
班级代码专业代码班级名称班级简称成立时间2班级规模班级特色班级简介班级说明...
char(12)
char(12)
varchar(50)char(12)datetime int
varchar(200)varchar(200)text
异动编号学号
异动类型异动时间异动原因异动说明...
char(12)
char(12)
varchar(8)datetime varchar(200)text
教师代码课程编号
单周授课时间双周授课时间授课地点授课说明...
char(12)
char(12)
datetime datetime varchar(20)text
学号
课程编号录入时间平时成绩卷面成绩总分备注...
char(12)
char(12)
datetime varchar(8)datetime varchar(200)text
filegrowth=15%
)
log on
(
name='stuDB_log',
filename='D:\',
size=2mb,
filegrowth=1mb
)
创建数据表
use stuDB
go
create table student/*创建学生信息表 student */
(
StuNo Char(12) constraint pk_StuNo primary key,
Sname Varchar (10),
Gender Char(2) check(Gender in ('男','女')),
Age Int (4),
BirthPlace Varchar (20),
IsMember Char(1) check(IsMember in ('0','1')),
AdmissionChannel Char(1) check (AdmissionChannel in ('G','D','Z')),
Grade Char (4),
ClCode Char (12),
PCode Char (12),
FCode Char (12)
)
create table Faculty /*创建院系信息表 Faculty */
(
12
FCode Char(12) constraint pk_FCode primary key,
FName Varchar(50),
FRefered Varcher(20),
Established Datetime(8),
FSize Int(4),
FCharacter Varchar(200),
Description Text
)
create table Profession /*创建专业信息表 Profession */
(
PCode Char(12) constraint pk_PCode primary key,
PName Varchar(50),
FCode Char(12),
PRefered Varcher(20),
Established Datetime(8),
PSize Int(4),
PCharacter Varcher(200),
Pprofile Varcher(200),
Description Text
)
create table class /*创建班级信息表 class */
(
ClCode Char(12) constraint pk_ClCode primary key,
ClName Varchar(50),
PCode Char(12),
CLRefered Varcher(20),
Established Datetime(8),
ClSize Int(4),
13
ClCharacter Varcher (200),
Clprofile Varcher (200),
Description Text
)
create table title /*创建教师职称信息表 title */
(
TtCode Char(12) constraint pk_TtCode primary key,
TtName Varchar(20)
)
create table teacher /*创建教师信息表 teacher */
(
TCode Char(12) constraint pk_TCode primary key,
TName Varchar(10),
FCode Char(12),
TtCode Varchar(20),
AddYear Datetime(8),
Major Varchar(50),
Research Varchar(50),
TProfile Varchar(200),
Description Text
)
create table course /*创建课程信息表 course */
(
CCode char(12) constraint pk_CCode primary key,
CName Varchar(50),
Type Char(12),
14
Credit numeric(5,1),
Hours int(4),
CProfile Varchar(200),
CTerm char(1),
Exams Varchar(12)
)
create table changes /*创建学生异动信息表 changes */
(
ChCode char(12) constraint pk_ChCode primary key,
StuNo Char(12),
Type Varchar(8),
Time Datetime(8),
Reason Varchar (200),
Description Text,
Operator Char(12)
)
create table score /*创建成绩信息表 score */
(
CCode Char(12),
StuNo Char(12),
Cterm Char(11),
Time Datetime (8),
UsualScore numeric (3,1),
ExamScore numeric (3,1),
AllScore numeric (3,1),
Description Text
)
15
create table teaching /*创建授课信息表 teaching */
(
Tid Char(12) constraint pk_Tid primary key,
CCode Char(12),
TCode Char(12),
Cterm Char(11),
oddtime Datetime(8),
eventime Datetime(8),
Classroom Varchar(200),
Instruction Text
)
create table users /*创建用户信息表 users */
(
UserName Char(12) constraint pk_UserName primary key,
PassWrd Char(50),
RealName Char(10),
RoleNo Char(12)
)
create table roles /*创建角色信息表 roles */
(
RoleNo Char(12) constraint pk_RoleNo primary key,
RoleName Char(50),
Description Varchar(200)
)
创建视图
创建学生表student的视图
16
CREATE VIEW StudentView
AS select *
From Student
创建索引
将student表中学号(Sno)一列设置成唯一索引
CREATE UNIQUE
INDEX SnoIndex
ON student (Sno)
7 数据库维护
修改表结构
1.向表Student中增加一列Email。
ALTER TABLE student
ADD Email VARCHAR(40)
2.在Student表中的Sname列上设置唯一约束。
ALTER TABLE student
ADD CONSTRAINT un_name UNIQUE(Sname)
3.将Student表中Email列的最大长度修改为50,并允许为空。
ALTER TABLE student
ALTER COLUMN Email VARCHAR(50) NULL
4.删除Student表中的Email列。
ALTER TABLE student
DROP COLUMN Email
删除Student表中Sname列上的唯一约束
ALTER TABLE student
DROP CONSTRAINT un_name
17