数据库原理课程设计
题 目 选修课系统
系部 数理系
专 业 网络工程
班 级 网络N111
学 号 ************
学生姓名 王成
同组成员 王家兴 徐康 朱彦霖 饶正一
指导教师 郭步
编写日期 2013.7.1
一 概述
1.1 课题背景
21世纪这个信息爆炸时代,其科技亦日新月异,纵观时代发展,计算机已经成了我们生活不可缺少的一部分,而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发。计算机在代替和延伸脑力劳动方面起着越来越重要的作用,在工业方面,日常生活方面无不如此。就我们可以感受到的校园学生管理系统来说,计算机为其带来的便利不言而喻!
1.2 学生管理系统分析
学生管理是学校管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要.为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然.开发功能完善及安全可靠的管理系统可以大大提高学校资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力。正是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱.同时,编写一套完善的学生管理系统的任务就显得尤为重要. 本学生管理系统可实现学生基本信息、成绩信息、课程信息、选课信息等的录入、修改、查询、更新和删除。
1.3设计环境
(1) Microsoft SQL Server 2005
(2) Microsoft Visual Basic
(3)windows xp以上,内存(512M以上)
(4)IIS和dreamweave8.0的安装
二 需求分析
2.1 系统功能要求设计
该系统相关功能情况如下:
(1)当用户登录时,根据用户类型不同而权限不同,学生,教室,管理员都有各自的权限。
(2)通过用户名和密码登录系统,学生可以进行选课操作也可查询学生基本信息、成绩基本信息、课程基本信息,学生所选课程成绩,修改用户密码等;教师查询学生相关信息也可以进行学生成绩录入,修改,删除等;管理员则可以对学生和教师进行查询,修改,删除等,其权限最大。
(3) 系统运行在Windows平台上,有一个较好的图形用户界面,操作简单,功能安排合理,并且进一步考虑系统在安全性,完整性,并发控制等方面的功能要求。
2.2 数据需求
通过分析,总结出本系统对数据的需求如下:
(1)选课信息
包括:学号,课程号,选课日期,实践成绩,考试成绩。
(2)学生信息
包括:学号、姓名、性别、 地址
(3)课程信息
包括:课程号、课程名称,系编号,教师编号,开课学期。
(4)教师信息
包括:教师编号、教师姓名、系编号、办公室号。
(5)系信息
包括:系编号,系名,教师编号,位置
(6)用户信息
包括:用户名,用户密码。
2.3 数据流图
数据流图是描述系统内部处理流程、用于表达软件系统需求模型的一种图形工具,这种表示法中用矩形表示源点和终点,用椭圆表示数据加工,用箭头表示数据流。本学生管理系统的数据流图如下。
2.4 数据字典
数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2005建立“学生选课”数据库,其基本表清单及表结构描述如下:
数据库中用到的表:
数据库表名 | 关系模式名称 | 备注 |
admin | 管理员 | 用户登录信息 |
student | 学生 | 学生基本信息 |
course | 课程 | 课程基本信息 |
dept | 系 | 系基本信息 |
teacher | 教师 | 教师基本信息 |
sc | 选课 | 选课基本信息 |
字段名 | 字段类型 | 长度 | 说明 |
names | nvarchar | 10 | 用户 |
password | nvarchar | 20 | 密码 |
字段名 | 字段类型 | 长度 | 说明 |
sno | nvarchar | 10 | 学号 |
sname | nvarchar | 10 | 姓名 |
ssex | nvarchar | 2 | 性别 |
saddress | nvarchar | 20 | 地址 |
course基本情况数据表,结构如下:
字段名 | 字段类型 | 长度 | 说明 |
cno | nvarchar | 10 | 课程号 |
dno | nvarchar | 10 | 系编号 |
tno | nvarchar | 10 | 教师编号 |
cname | nvarchar | 10 | 课程名 |
semester | nvarchar | 20 | 开课学期 |
字段名 | 字段类型 | 长度 | 说明 |
dno | nvarchar | 10 | 系编号 |
dname | nvarchar | 10 | 系名 |
tno | nvarchar | 10 | 教师编号 |
place | nvarchar | 20 | 位置 |
字段名 | 字段类型 | 长度 | 说明 |
tno | nvarchar | 10 | 教师编号 |
tname | nvarchar | 10 | 教师姓名 |
dno | nvarchar | 10 | 系编号 |
offno | nvarchar | 10 | 办公室号 |
字段名 | 字段类型 | 长度 | 说明 |
sno | nvarchar | 10 | 学号 |
cno | nvarchar | 10 | 课程号 |
ctime | nvarchar | 20 | 选课日期 |
sscore | int | 实践成绩 | |
kscore | int | 考试成绩 |
3.1 概念模型
概念结构设计就是从现实概念中抽象出概念模型,即对信息世界建模,所以概念模型应该能方便、准确的表示信息世界中的常用概念。概念模型的表示方法最著名的是实体—联系方法(Entity-Relationship Approach),在该方法中实体型用矩形表示,矩形框内写明实体名;属性用椭圆表示,并用无向边将其与相应的实体连接起来;联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁表上联系的类型(1:1,1:n或n:m)。
3.2 E-R图表示概念模型
(1)学生实体E-R图
(2)教师实体E-R图
(3)课程实体E-R图
(4)选课实体E-R图
(5)系实体E-R图
(6)用户实体E-R图
3.3 合并分E-R图
通过分析上述实体间的联系将分E-R图合并为学生管理系统的基本E-R图,每个实体的属性在上面的分E-R图中已经给出,在此不予给出。
四 逻辑结构设计
4.1由系统E—R图转化而得到的关系模式如下
(1)student(sno,sname,ssex,saddress),其中sno为主键。
(2)sc(sno,cno,ctime,sscore,kscore),其中(sno,cno)为主键。
(3)teacher(tno,tname,dno,offno),其中tno为主键。
(4)course(cno,dno,tno,cname,semester),其中cno为主键。
(5)dept(dno,dname,tno,place),其中dno为主键。
(6)admin(names,password),其中(names,password)为主键。
以上各关系模式之间的联系都是通过键码来建立关联的!
4.2 逻辑模式的规范化和优化
关系模式转化成逻辑模式的相应步骤如下:
(1)规范化
(2)适应DBMS条件的修改
(3)对性能、存储空间等的优化
(4)用DBMS所提供的DDL定义逻辑模式
4.3 表和表之间的关系
4.4 选择数据库的存取方法
在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。
4.5 设计数据库的存储结构
确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。因为该成绩管理系统的数据量小,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。
4.6 数据库的相关创建
(1)创建学生表:
create table student(
sno nvarchar(10)primary key,
sname nvarchar(10) not null,
ssex nvarchar(2) not null,
saddress nvarchar(20) null)
(2)创建教师表:
create table teacher(
tno nvarchar(10)primary key,
tname nvarchar(10) not null,c
dno nvarchar(10) not null,
offno nvarchar(10) null,
foreign key(dno)references dept(dno))
(3)创建课程表:
create table course(
cno nvarchar(10)primary key,
dno nvarchar(10) not null,
tno nvarchar(10) not null,
cname nvarchar(10) not null,
semester nvarchar(20) null,
foreign key(dno)references dept(dno),
foreign key(tno)references teacher(tno))
(4)创建选课表:
Create table sc(
sno nvarchar(10) not null,
cno nvarchar(10) not null,
ctime nvarchar(20) null,
sscore int null,
kscore int null,
primary key (sno,cno),
foreign key(sno)references student(sno),
foreign key(cno)references course(cno))
(5)创建用户表:
Create table admin(
names nvarchar(10) not null,
password nvarchar(20) not null,
primary key(names,password))
(6)创建系表:
Create table dept(
dno nvarchar(10)primary key,
dname nvarchar(10) not null,
tno nvarchar(10) not null,
place nvarchar(20) null,
foreign key(tno)references teacher(tno))
(7)创建数据库:
数据名:学生管理表
数据库主文件路径全名:C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\DATA
日志文件路径全名:C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\DATA
create database 学生管理表
on primary
(
Name=’学生管理表db’, --文件逻辑名
Filename=’C:\\Program Files\\MicrosoftSQLServer\\MSSQL.1\\MSSQL\\DATA\学生管理表.mdf’,--文件磁盘文件路径全称
Size=10,--初始化大小
Maxsize=20,--最大值
Filegrowth=1
)
Log on
(
Name=’ 学生管理表log’,
File=’ C:\\Program Files\\Microsoft SQL Server \\ MSSQL.1\\MSSQL\\DATA \学生管理表_log.ldf’,
Size=10,
Maxsize=20,
Filegrowth=1
)
(8)创建触发器
create trigger t on student
for delete
as
declare @bh nvarchar(10)
select @bh=deleted.sno
from deleted
if exists(select sno from sc where sc.sno=@bh)
delete from sc where sno=@bh
五 数据库操作界面的设计
5.1 数据库的操作界面如下
六 数据库制作心得体会
通过这数周的努力,我自己的作品终于出炉了,内心的激动与喜悦无法言表。想想当初,刚开时动工的时候,那真是毫无头绪,根本不知道从哪入手,首先对数据库的相关知识不是很了解,再者对sql sever2000和delphi程序的操作不是很熟悉。但我并没有灰心气馁。通过几天的学习,请教,上网咨询,慢慢的有了一些眉目,同时也感觉不再那么无助。
虽然,对delphi的了解还不是很充足,但一些简单的操作还是很令我兴奋。我也深深体验到要熟练掌握一种操作软件的难度时那么的大。在制作过程中,有失败,有兴奋。但我坚持了下来,遇到困难我没有灰心,首先的困难就是对信息的收集,对各个表建立属性的调查,通过书本上的介绍和网上的一些资料的启发,这个困难不再困扰着我。但最大的困难就是对delphi的操作的学习,从一无所知到作出自己的程序,我经历了许多的困难。但我也从中学到了许多,通过向学长的请教,我明白了许多课堂上本应该记住的知识,还有一个困难就是对语句的输入,一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。有时候,我自己觉得我写的程序非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否定自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展很缓慢。所以我经常要请教高人帮忙!
这过程中我们也培养了团队精神,我们经常几个人在一起研究某个功能的如何实现,常常能想出意想不到的方法!总之,通过这个数据库的制作,我感到受益匪浅。
七 参考文献
[1] Tripathy A. Computerised decision aid for timetabling a case analysis[ J ]. Discrete Applied Mathematics, 1992, 35 (3) : 313- 323.
[2] Ferland JA , Fleurent C. SA PH IR: A decision support system for course scheduling [ J ]. Interfaces,1994, 24 (2) : 105- 115.
[3] Schmidt G, Strohlein T. Timetable construction ─an annotated bibliography[J]. The Computer Journal ,1980 ,23 (4) :307 —391
[4] Todd Cook. JSP从入门到精通[M].北京:电子工业出版社,2003.
[5] 周绍广.ASP编程基础与实例[M].北京:机械工业出版社,2002.
[6] 程文.基于JSP开发动态网站的设计与实现[J].现代计算机,2002, (9):47-50.
[7]Microsoft.Technical Overview of Windows Server 2003 Terminal Services[EB/OL]. http://www.microsoft.com/windowsserver2003/techinfo/
overview/termserv.mspx#top, 2008-9-20.