数据库课程设计(学院学生管理信息系统)

数据库课程设计(学院学生管理信息系统)

2023年7月27日发(作者:)

数据库课程设计(学院学生管理信息系统) 2009 — 2010 学年第 二 学期

《网络数据库》

课程设计说明书

题 目:学院学生管理信息系统

2010 年 7 月 2 日

摘要

本文简要介绍了用SQL创建《学院学生管理信息系统》数据库的过程。针对每年新生入校和毕业生离校的情况,为了及时掌握在院学生情况,特建立此数据库。为了提高编程能力,建库者采用编写代码的形式实现创建过程。

创建全程分为系统需求分析、数据库系统概念设计、数据库系统逻辑结构设计、数据库系统实施等阶段。本文围绕创建过程展开。经过对《学院学生管理信息系统》需求的分析,建库者进行了数据库概念结构设计,绘制E-R图。按转换的原则,将概念模型转换为关系模型,并根据实际情况给实体各属性赋予恰当的数据类型和长度,实现数据库的逻辑结构设计。运用代码创建“学院学生管理信息系统”数据库,college、class、team、dorm、student五个基本表,并通过外键建立好表间联系。为每个表创建好存储过程后,利用存储过程对表中数据进行添加、修改、删除、等操作。因student表数据量大,所以为其建立索引。在假设某种查看数据需求的情况下,建立条件查询、多表查询。因为本系统针对学生管理,为使输入简化,特对student表中“性别”属性建立默认值,并进行检测。为维护系统正常运行,减低数据丢失的几率,建库者为系统指定了作业计划及备份。为方便用户查询数据及保证数据库数据的安全性,定义了用户和权限并设置不同的使用权限。本系统基本能反映学生信息,可作为SQL入门实例。

关键词:SQL SQL建库实例 SQL代码 数据库 数据库设计 概念结构 逻辑结构 视图 索引 查询 默认 备份 用户 角色

第一章 系统概述

本次课程设计我建立的数据库是《学院学生管理信息系统》。该系统是一个综合的管理信息系统。围绕学生,系统涵盖了学生隶属的班级概况,班级所属的学院信息,学生所参加运动队的概况及学生住宿状况等。该系统的设计能够满足对学院、班级、学生、运动队、宿舍等信息的查询以及修改。该系统性能的完好性将影响学生信息管理。

第二章 系统需求分析

一个学院根据专业及需要开设多个班级,一个班级只能隶属于一个学院,所以学院与班级是1:n的关系。学院属性有学院编号、学院名称;班级属性包括班级号、班级名、专业、教室。

每一个班级有多名学生,每名学生必须且只能属于一个班级,则班级与学生对应的关系为1:n。设学生属性有学号、姓名、性别、年龄。

每一个学院有若干运动队,一个运动队只能效力于一个学院,故学院与运动队的关系为1:n。参加运动队的同学在运动队里有参加项目。运动队属性有运动队号、队名、教练员、活动地点、活动时间。

一个宿舍可以有多名学生,但是一个学生只能住在一个宿舍里,宿舍属性有宿舍号、楼号、人数、管理员。

第三章 数据库系统概念设计

本系统首先自顶向下进行需求分析,再自底向上设计概念结构,先定义各局部应用的概念结构,然后按一定的规则将他们集合起来得到全局概念。

根据以上系统需求分析,绘制E—R图如下:

学院学1

隶n

班班班学院拥运1

参加参n

1

教专住1

宿包n

学n

队号

队名

1 n

教练活动活动学姓性年宿楼人管

图3-1 学院学生信息管理系统E-R图

第四章 数据库系统逻辑结构设计

按转换原则将图3-1的学院学生管理信息系统E-R视图转化成拥有主键(下有下划线)和外键(下有波浪线)的关系模型。

学院(学院编号,学院名称)

班级(班级号,班级名,专业,教室,学院编号)

运动队(队号,队名,教练员,活动时间,活动地点,学院编号)

宿舍(宿舍号,楼号,人数,管理员)

学生(学号,姓名,性别,年龄,班级号,队号,宿舍号,参加项目)

第五章 表结构设计

表5-1学院表(College)表结构

列名

college_num

College_name

说明

学院编号

学院名称

数据类型

char

char

数据长度

5

20

约束

主键

非空

表5-2班级表(class)表结构

列名

Class_num

Class_name

major

classroom

说明

班级号

专业

教室

数据类型 数据长度 约束

Char

Char

Char

5

20

20

8

5

主键

非空

外键,引用College表的college_num

表5-3运动队表(team)表结构

列名

Team_num

班级名称 char

College_num 学院编号 char

说明

队号

数据类型 数据长度 约束

char

5 主键 Team_name

Coach

Place

Sporttime

队名

教练

char

char

8

8

10

5

非空

外键,引用College表

的college_num

活动地点 char

活动时间 datetime

College_num 学院编号 char

表5-4宿舍表(Course)表结构

列名

dorm_num

说明

宿舍号

数据类型 数据长度 约束

char

char

char

char

3

4

2

80

主键

Building_num 楼号

Total_member 人数

adm

管理员

表5-5学生表(student)表结构

列名

Stu_num

gender

Age

说明

学号

性别

年龄

数据类型 数据长度 约束

char

char

char

10

8

2

主键

非空

默认“男”,限“男”或“女”

默认为21

非空,外键,引用class表

Class-num

Team_num 队号 char 5

3

10

外键,引用team表team_num

外键,引用dorm表dorm_num

stu_name 姓名

smallint

5 Class_num 班级号

Dorm_num 宿舍号 char

pro 参加项目 char

第六章 创建数据库和表

6.1数据库的创建

使用查询分析器建库,代码如下:

create database 学院学生管理信息系统

直接在“对象资源管理器”的“数据库”上右击选择“新建数据库”建库。本文采用第二种方法。

6.2表的创建

调用查询分析器,用代码创建表,编写代码过程如图5-1,代码如下:

create table college(college_num char(5) primary key,

college_name char(20) not null);

create table class(class_num char(5) primary key,

class_name char(20) not null,

major char(20),

classroom char(8),

college_num

college(college_num));

create table team(team_num char(5) primary key,

team_name char(8) not null,

coach char(8),

place char(10),

sporttime datetime,

college_num

college(college_num));

create table dorm(dorm_num char(3) primary key,

building_num char(4),

char(5) references

char(5) references total_member char(2),

adm char(8));

create table student(stu_num char(10) primary key,

stu_name char(8) not null,

gender char(2) check (gender in ('男','女')),

age smallint default 21,

class_num

class(class_num),

team_num char(5) references team(team_num),

dorm_num char(3) references dorm(dorm_num),

pro char(10));

char (5) not null,references

图6-1 表结构的创建

6.3关系图的创建

在“对象资源管理器”中“学院学生管理信息系统”数据库右击“关系” 新建关系图。关系图如图5-2所示。

图6-2 表间关系图

第七章 创建存储过程并输入数据

7.1通过存储过程并向表中添加数据

打开数据库,在“存储过程”上右击,选择“新建存储过程”,然后输入代码。

7.2表college

创建存储过程,代码如下

CREATE PROCEDURE add_college @college_num char(5),@college_name

char(20)

AS insert into college(college_num,college_name)

values (@college_num,@college_name)

运用exec语句向表中输入数据,过程如图7-1所示,表内容如图7-2所示。

图7-1运用exec语句向college表输入数据

图7-2表college内容

7.3表class

创建存储过程,过程如图7-3所示,代码如下:

CREATE PROCEDURE add_class @class_num char(5),@class_name

char(20),@major char(20),@classroom char(8),@college_num char (5)

AS

Insert into class(class_num,class_name,major,

classroom,college_num)

values (@class_num,@class_name,@major,@classroom,@college_num)

图7-3创建表class存储过程

运用exec语句向表中输入数据,过程如图7-4所示,表内容如图7-5所示。

图7-4运用exec语句向表class输入数据

图7-5 class表内容

7.4表team

创建存储过程,代码如下:

CREATE PROCEDURE add_team @team_num char(5), @team_name

char(8),@coach

AS

char(8),@place

Insert

char(10),@sporttime

into

datetime,@college_num char(5)

team(team_num,team_name,coach,place,sporttime,college_num)

values(@team_num,@team_name,@coach,@place,@sporttime,@college_num)

运用exec语句向表中输入数据,过程如图7-6所示,表内容如图7-7所示。

图7-6 向表team输入数据

图7-7 team表内容

7.5 dorm表

创建存储过程,代码如下:

CREATE

AS

insert into class(class_num,class_name,major,

classroom,college_num)

values (@class_num,@class_name,@major,@classroom,@college_num)

运用exec语句向表中输入数据,过程如图7-8所示,表内容如图7-9所示。

PROCEDURE add_class @class_num char(5),@class_name

char(20),@major char(20),@classroom char(8),@college_num char (5)

图7-8向表dorm输入数据

图7-9表dorm内容

7.6 tudent表

创建存储过程,代码如下:

CREATE PROCEDURE add_student @stu_num char(10),@stu_name

char(8),@gender char(2),@age smallint,@class_num char (5),@team_num

char(5),@dorm_num char(8),@pro char(10)

AS

insert into student(stu_num,stu_name,gender,age,class_num,team_num,

dorm_num,pro)

values(@stu_num,@stu_name,@gender,@age,@class_num,@team_num,@dorm_num,@pro)

运用exec语句向表中输入数据,过程如图7-10所示,表内容如图7-11所示。

图7-10 向表student输入数据

图7-11表student内容

第八章 数据库实施

8.1 修改

将student表学号为“011101”的学生年龄由20岁改为21岁

首先,创建存储过程,代码如下:

CREATE PROCEDURE update_student @stu_num char(10),@age smallint

AS update student set age=@age where stu_num=@stu_num

接着,在查询分析器里面执行修改过程,修改前student表内容如图8-1所示,修改后如图8-2所示。代码如下:

exec update_student '011101','21'

图8-1修改前表student内容

图8-2修改后表student内容

8.2 删除

删除表team中team_name为“商院乒乓”的记录

创建存储过程及代码如图8-3所示

图8-3表team创建删除的存储过程

在查询分析器中输入代码,执行语句前后标内容对照如图8—4、图8-5所示。代码如下:

exec delete_team '商院乒乓'

图8-4表team删除“商院乒乓”记录前表内容

图8-4表team删除“商院乒乓”记录后表内容

8.3 添加

对college表添加关于艺术学院的记录:

直接调用已建立好的add_college存储过程,在查询分析器中输入代码:exec add_college 'gxu11','艺术学院'即可添加艺术学院的记录。结果如图8-5所示。

8.4 设置默认值并检测

将student表中学生的性别属性设置默认值为“男”。右击“默认”,在名称框输入默认名,在值中输入默认值,点击确定后默认名即建立完毕。创建过程如图8-5。

图8-5 创建默认名为“性别”的默认

右击“性别”默认,选中“属性”选项,点击“绑定列…”进入“将默认值绑定到列-性别”选项卡,选择[dbo].[student],将gender添加到绑定列框中,点击确定即完成。创建过程如图8-6:

图8-6 将表student的“性别”属性设置默认

检测默认值设置是否成功用查询分析器输入下列代码,其中代码中没有为“性别”属性赋值:

Insert into

student(stu_num,stu_name,age,class_num,team_num,dorm_num,pro)

values('011103','米粒',21,'0111','01P','B62','乒乓球');

打开student表,可见表中添加了“米粒”的记录,并且“性别”属性列里出现值“男”。创建代码如图8-7,结果如图8-8、图8-9所示。

图8-7 创建默认检测代码

图8-8 添加“米粒”记录前student表的内容

图8-9 添加“米粒”记录后student表的内容

8.5 建索引

因为student表数据量较大,比较难维护。故对student表建立索引,以加快数据查询速度,保证数据的唯一性和加快连接速度。建立索引代码如下:

create unique index index_stu_num on student(stu_num asc);

8.5 视图

8.5.1一张表内的简单条件查询

查询student表中学生王刚的学号、姓名、性别、年龄等个人基本信息。为此建立视图如图8-10所示。代码如下:

select stu_num,stu_name,gender,age

from student

where stu_name='王刚'

图8-10 查询“王刚”个人信息

8.5.2多表查询

假设学校举办校运会,各学院的运动员需要对自己的学号、姓名、性别、参加项目、学院等个人信息进行确认。根据需要,我们建立运动员个人信息确认的视图如图8-11所示。

建立视图代码如下:

Create view

sportmeeting(stu_num,stu_name,gender,pro,college_name)

As select

_num,_name,gender,pro,e_name

from student,college,team

where

_num=_e_num=e_num

图8-11多表查询结果(各学院运动员信息确认)

8.6 为数据库创建用户和角色,并为不同的用户设置不同的使用权限

新建角色“wjx”和“xun”(如图8—12所示),并赋予他们不同的权限。

图8-12设置角色“xun”的权限

新建用户user1,登录名为BUILTIN﹨Administrators,并赋予此用户“wjx”的角色,使他具有wjx所具有的权限(如图8—13所示)。

图8-13设置用户user1的权限

8.7制定作业计划,让系统在适当的时候备份数据库。

在对象资源管理器中点击“管理”,右击“数据库维护计划”进入“数据库维护计划向导”。按照提示步骤,建立好维护计划,如图8-14所示。维护计划如下:

数据库:学院学生管理信息系统

服务器: (local)

优化: 每 1 周在 星期日 发生,在 1:00:00。

执行下列操作:

重新组织数据页和索引页,将可用空间更改为原始空间的 10。

当数据库的大小超过 50 MB 时收缩数据库。保留 10 % 的数据空间作为可用空间。

INTEGRITY CHECKS:每 1 周在 星期日 发生,在 0:00:00。

执行下列操作:

检查数据库

完全备份

每 1 周在 星期日 发生,在 2:00:00。

备份媒体: 磁盘

将备份文件存储在默认的 SQL Server 备份目录中。

完成后验证备份。

事务日志备份:

每 1 周在 星期一,星期二,星期三,星期四,星期五,星期六 发生,在

0:00:00。

备份媒体: 磁盘

将备份文件存储在默认的 SQL Server 备份目录中。

完成后验证备份。

图8-14 维护计划完成

总结

本系统作为SQL建库入门实例,基本能完成对学生所属学院、所属班级、 住宿、参加运动队等情况的添加、修改、删除的操作。能恰当地建立索引,提高数据查询速度。根据实际设置默认,有效地提高了数据输入的速度。针对不同用户设置不同的视图,有利于用户查询自己需要的信息及保证系统数据的安全性。为系统设置了不同的用户和角色并赋予不同的权限,有利于系统的安全性。并制作了维护计划和数据备份。总的来说系统功能较完整。

但是,由于种种原因限制,建库过程缺少联系实际,针对细节的一些约束在系统内没有得到实现,对于用户和角色权限的设置也没有结合实际情况。

参考文献

苗兰雪 刘瑞新 宋歌. 数据库系统原理及应用教程. 北京:机械工业出版社,2007 年. 44-85,153-179

致谢

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690433847a349227.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信