搜档网
当前位置:搜档网 › 数据库系统综合实训报告

数据库系统综合实训报告

数据库系统综合实训报告
数据库系统综合实训报告

课程设计报告

课程名称:数据库系统综合实训

学号:**********

姓名:**

班级: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

学生

学号姓名性别年龄籍贯是否党员录取渠道年级Characters (12)Characters (10)Characters (1)Integer Variable characters (20)Characters (1)Characters (1)Characters (4)主标识符...

院系院系代码院系名称院系简称成立时间cheng 院系规模院系特色院系说明Characters (12)Variable characters (50)Variable characters (20)Date & Time Integer Variable characters (200)Text 主标识符...教师

教师代码j 教师姓名加入时间所学专业研究方向教师简介教师说明Characters (12)Variable characters (10)Date & Time Variable characters (50)Variable characters (50)Variable characters (200)Text 主标识符...

职称

职称编码职称名称Characters (12)Variable characters (20)

主标识符...

专业专业代码专业名称专业简称成立时间cheng 专业规模专业特色专业简介专业说明Characters (12)Variable characters (50)Variable characters (20)Date & Time Integer Variable characters (200)Variable characters (200)Text 主标识符...课程

课程编号课程名称课程类型课程学分课程学时课程简介开课时间考核方式Characters (12)Variable characters (50)Characters (2)Float (8)Integer Variable characters (200)Date & Time Variable characters (12)主标识符...

班级

班级代码班级名称班级简称成立时间2班级规模班级特色班级简介班级说明Characters (12)Variable characters (50)Characters (12)Date & Time Integer Variable characters (200)Variable characters (200)Text

主标识符...

学生异动

异动编号异动类型异动时间异动原因异动说明Characters (12)Variable characters (8)Date & Time Variable characters (200)Text 主标识符...

授课

单周授课时间双周授课时间授课地点授课说明

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

相关主题