数据库设计学生管理系统.docx

上传人:b****0 文档编号:9319666 上传时间:2023-05-18 格式:DOCX 页数:32 大小:1.24MB
下载 相关 举报
数据库设计学生管理系统.docx_第1页
第1页 / 共32页
数据库设计学生管理系统.docx_第2页
第2页 / 共32页
数据库设计学生管理系统.docx_第3页
第3页 / 共32页
数据库设计学生管理系统.docx_第4页
第4页 / 共32页
数据库设计学生管理系统.docx_第5页
第5页 / 共32页
数据库设计学生管理系统.docx_第6页
第6页 / 共32页
数据库设计学生管理系统.docx_第7页
第7页 / 共32页
数据库设计学生管理系统.docx_第8页
第8页 / 共32页
数据库设计学生管理系统.docx_第9页
第9页 / 共32页
数据库设计学生管理系统.docx_第10页
第10页 / 共32页
数据库设计学生管理系统.docx_第11页
第11页 / 共32页
数据库设计学生管理系统.docx_第12页
第12页 / 共32页
数据库设计学生管理系统.docx_第13页
第13页 / 共32页
数据库设计学生管理系统.docx_第14页
第14页 / 共32页
数据库设计学生管理系统.docx_第15页
第15页 / 共32页
数据库设计学生管理系统.docx_第16页
第16页 / 共32页
数据库设计学生管理系统.docx_第17页
第17页 / 共32页
数据库设计学生管理系统.docx_第18页
第18页 / 共32页
数据库设计学生管理系统.docx_第19页
第19页 / 共32页
数据库设计学生管理系统.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库设计学生管理系统.docx

《数据库设计学生管理系统.docx》由会员分享,可在线阅读,更多相关《数据库设计学生管理系统.docx(32页珍藏版)》请在冰点文库上搜索。

数据库设计学生管理系统.docx

数据库设计学生管理系统

CentralSouthUniversity

学生管理系统的设计及实现

姓名

刘峰

学号

0901071311

自动化0713

班级

 

2009年12月8日

 

1.实验目的…………………………1

2.背景知识…………………………1

3.需求分析…………………………4

4.功能需求分析……………………6

5.系统设计…………………………6

6.系统的实现………………………19

7.参考文献…………………………28

 

一、实验目的

1.掌握数据库设计的基本方法

2.了解C/S与B/S结构应用系统的特点与适用场合

3.了解C/S与B/S结果应用系统的不同开发设计环境与开发设计方法

4.综合运用前面实验中所学的数据库知识与技术开发设计某小型数据库应用系统

二、背景知识

数据库课程的学习其主要的目标是能利用课程中所学习到得数据库的知识与技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。

本实验主要在与巩固学生对数据库基本原理和基础理论的理解,掌握数据库应用系统设计与开发的基本方法,进一步提高学生的综合运用所学知识的能力。

数据库应用设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效地存储数据,满足用户信息处理的要求。

为了使数据库应用系统开发设计合理、规范、有序、正确、高效的进行,现在广泛采用的是工程化6阶段开发设计过程和方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库的实施、数据库系统的运行与维护阶段。

以下实验“教学管理子系统——学生管理系统”就是力求按照数据库6个阶段来开发和设计的。

本实验除了要求实验者有较好的数据库知识与技术外,还要求实验者掌握某种客户端开发工具或者是语言。

我这个实验用的是VB6.0开发工具以及SQL2000数据库软件来实现这个系统的。

而且本实验的重点是如何利用SQL语言去完成数据库的操作的。

高效的教学管理系统是当前信息化校园管理系统之所需。

面对日益庞大的教学信息,就需要有教学管理来提高管理的工作效率。

通过建立这样的系统,可以做到信息的规范管理、快速查询和科学统计,从而减少管理方面的工作量。

三.需求分析

本系统的设计模拟一般学校特别是高校的教学管理内容,经过充分地系统调研,发现本系统应包括院系信息,教研室信息,班级信息,教师信息,学生信息,课程信息,学生专业信息等需管理信息。

进一步还发现信息实体间需管理的信息有:

专业分学期课程计划,学生选课及各类考试成绩的登记,补考重修管理,研究生的管理,班级管理,教师的教学评估管理等内容。

本系统的具体要求为:

1.能够全面管理学校教学相关的各类主体,如院系信息,教研室信息,班级信息,教师信息,学生信息,课程信息,专业信息等;

2.通过使用计算机能够方便地维护(包括插入,删除,修改)各个信息表;

3.能够组合查询基于某信息表的所需信息;

4.能方便的实现基于多个表的连接查询;

5.能够方便的实现基于单个或者多个表的统计功能;

6.需要时能即时进行输出与打印;

7.系统应具有网络多用户功能,具有用户管理功能,对分等级用户提供相应的系统功能;

8.系统具有操作方便、简洁等特点。

本系统的实体信息

1.院系信息:

系编号,系名,系主任工号,地点,电话,专业。

2.学生基本信息:

学号,类别,姓名,性别,出生日期,电话,入校日期,家庭地址,备注等;

3.班级信息:

班号,班级名称,成立时间,班主任工号,自修教室等;

4.课程基本信息:

课程号,课程名,类别,讲课学时,实验学时,学分,等;

5.教室信息:

工号,姓名,性别,职称,学位,出生日期等;

6.专业信息:

专业编号,专业名称,所属院系,专业特色,学生规模等;

7.学期信息:

编号,学期号等。

 

四.功能需求分析

1.在数据库服务器SQL2000中,建立各个关系模式对应的库表,并确定主键,索引,参照完整性,用户自定义完整性等;

2.能对各个库表进行输入,修改,删除,添加,查询,打印等基本操作;

3.新学期开学,能排定必修课程,能选定选修的课程,并能够对选课做必要地操作;

4.能够实现各类查询;

5.能够分析教师及学生的情况

6.能够实现用户管理功能;

7.要求界面友好,功能安排合理,操作方便,并进一步考虑该子系统学生管理系统的安全,完整,控制,备份,恢复等方面的功能。

五.系统设计

1.数据库概念结构设计

数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效果以及实现的效果的影响。

合理的数据库结构设计可以提高数据库存储的效率,保证数据的完整和一致。

同时,合理的数据库结构设计也将有利于应用系统程序的实现。

在充分需求分析的基础上,经过逐步抽象,概括,分析,充分研讨,可画出如下反映教学管理系统数据的整体E-R图。

院系

包含

包含

班级

教研室

管理

包含

包含

教师

学生

指导

讲授

选修

所学

专业

课程

安排

下面为学生基本信息管理系统E-R图

 

学生

学号姓名性别类别出生日期

 

电话入校时间家庭地址备注

2.功能模块设计

教学管理子系统

系统管理模块

基本表格维护

系统窗口管理

其他辅助管理

系统统计功能

系统查询功能

 

3.数据库逻辑结构设计

(1)数据库关系模式

按照实体-联系图转化为关系模式的规则,本系统的E-R图可以转化为如下约12个关系模式:

1.院系(系编号,系名,系主任工号,成立年份,地点,电话)

2.教研室(教研室编号,教研室名称,教研室主任名称,院系号)

3.班级(班号,班级名称,成立年份,自修教室,班主任名称)

4.教室(工号,姓名,性别,职称,出生年月,工作年月,工资)

5.学生(学号,姓名,性别,出生时间,入校时间,电话,家庭地址,备注,专业编号,班号)

6.课程(课程号,课程名,类别,讲课时间,实验学时,学分,开课院系,课程描述)

7.专业(专业编号,专业名称,院系号,专业特色,创办年份,学生规模)

8.学期(学期编号,学期名)

9.选修(学号,课程号,考试类别,考试成绩,工号,选修年月)

10.教学计划(专业编号,学期编号,课程号,必修课号,学位课,考试课,备注)

11.指导(工号,学号,研究方向,研究成果)

12.讲授(工号,课程号,任课年月,讲课时间及地点,实验时间地点)

另外需要辅助表:

用户表(用户编号,用户名称,口令,等级)

日志表(序号,操作用户号,操纵类别,操作命令,操作时间)

表名与属性名对应由英文表示,则有下面14个关系模式:

1.Dept(dno,dname,tno,dny,dsite,ddh)

2.Staffroom(stno,stname,tno,dno)

3.Class(csno,csname,csny,csroom,dno,tno)

4.Teacher(tno,tname,tsec,ttechpost,tcsrq,tny,tsalary,stno)

5.Student(sno,sname,sclass,ssec,scsrq,srxrq,sdh,saddr,smemo,spno,csno)

6.Course(cno,cname,cclass,cjkxs,csyxs,credit,dno,cdsc)

7.speciality(spno,spname,dno,spfeature,spny,spsize)

8.term(tmno,tmname)

9.sc(sno,cno,scclass,grade,tno,scny)

10.project(spno,tmno,cno,probx,prxw,prks,prmemo)

11.supervise(tno,sno,sustudy,suproduction)

12.tc(tno,cno,tcny,tcevaluate,tcttimesite,tcetimesite)

13.users(uno,uname,upassword,uclass)

14.logs(id,uno,opclass,opcomamnd,opdatetime)

(2)数据库及表结构的创建

设计本系统使用的数据库名为student,根据已经设计的关系模式及格模式的完整性要求,现在就可以在SQL2000数据库系统中实现这些逻辑结构。

创建数据库及其表格可以手动一步一步的去操作,也可以用SQL语言自动创建。

如果用手动的方式的话,则步骤如下:

创建数据库:

右击数据库选择新建,再按照提示建立好就可以了。

创建表格:

左击新建的数据库,出现下拉单,选中表格右击,再选中新建表格.再设计表格里面的内容,根据具体情况,按照提示步骤进行。

下面创建关系图:

先根据各表的关系,建立好“索引”关系。

完成后,选中数据库下拉单中的关系,右击新建关系图,出现下面显示,根据提示操作。

完成后,SQL会自动出现结果:

也可以用SQL语言来创建数据库及表格,关系。

下面是创建数据库及其表格结构的transact-SQL命令(SQL中的SQL命令)。

createdatabasestudent;

go

usestudent;

createtabledept(dnochar

(2)notnullprimarykeyclustered(dno),

dnamevarchar(20)notnull,

tnochar(8)null,

dnychar(6)null,

dsitevarchar(30)null,

ddhvarchar(50)null);

createtablestaffroom(stnochar(4)notnullprimarykeyclustered(stno),stnamechar(20)notnull,tnochar(8)null,

dnochar

(2)null);

createtableclass(csnochar(4)notnullprimarykeyclustered(csno),csnamechar(20)notnull,csnychar(6)null,

csroomchar(20)null,dnochar

(2)null,tnochar(8)null);

createtableteacher(tnochar(8)notnullprimarykeyclustered(tno),tnamevarchar(50)notnull,tsexchar

(2)nulldefault'男'check(tsex='男'ortsex='女'),

ttechpostchar(10)null,tcsrqdatetimenull,tnychar(6)null,tsalarymoneynulldefault800check(tsalary>=120),stnochar(4)null);

createtablestudent(snochar(8)notnullprimarykeyclustered(sno),snamechar(20)notnull,sclasschar(10)nulldefault'本科',ssexchar

(2)nulldefault

'男'check(ssex='男'orssex='女'),scsrqdatetimenull,srsrqdatetimenull,sdhvarchar(14)null,saddrvarchar(50)null,smemovarchar(200)null,spnochar(4)null,

csnochar(4)null);

createtablecourse(cnochar(6)notnullprimarykeyclustered(cno),cnamevarchar(50)notnull,cclasschar(10)nulldefault'专业基础',cjkxsintnull

default36check(cjkxs>=0andcjkxs<=500),csyxsintnulldefault18check(csyxs>=0andcsyxs<=250),creditsmallintnulldefault2check(credit>=0and

credit<=50),dnochar

(2)null,cdescvarchar(200)null,constraintfk_course_deptforeignkey(dno)referencesdept(dno));

createtablespeciality(spnochar(4)notnullprimarykeyclustered(spno),spnamevarchar(20)notnull,dnochar

(2)null,spfeaturevarchar(200)null,spny

char(6)null,spsizeintnull,constraintfk_speciality_deptforeignkey(dno)referencesdept(dno));

createtableterm(tmnochar

(1)notnullprimarykeyclustered(tmno),tmnamechar(8)null);

createtablesc(snochar(8)notnull,cnochar(6)notnull,scclasschar(4)notnulldefault'期终',gradeintnulldefault80check(grade>=0andgrade<=100)

tnochar(8)null,scnychar(6)null,primarykeyclustered(sno,cno,scclass),constraintfk_sc_courseforeignkey(cno)referencescourse(cno),constraint

fk_sc_studentforeignkey(sno)referencesstudent(sno),constraintfk_sc_teacherforeignkey(tno)referencesteacher(tno));

createtableproject(spnochar(4)notnull,tmnochar

(1)notnull,cnochar(6)notnull,prbxbitnulldefault1,prxwbitnulldefault1,prksbitnulldefault

1,prmemovarchar(50)null,constraintpk_projectprimarykeyclustered(spno,tmno,cno),

constraintfk_project_courseforeignkey(cno)referencescourse(cno),constraintfk_project_specialityforeignkey(spno)references

speciality(spno),constraintfk_project_termforeignkey(tmno)referencesterm(tmno));

createtablesupervise(tnochar(8)notnull,snochar(8)notnull,sustudyvarchar(20)null,suproductionvarchar(50)null,primarykeyclustered(tno,sno),

constraintfk_supervise_studentforeignkey(sno)referencesstudent(sno),

constraintfk_supervise_teacherforeignkey(tno)referencesteacher(tno));

createtabletc(tnochar(8)notnull,cnochar(6)notnull,tcnychar(6)notnull,tcevaluatevarchar(100)null,tcttimesitevarchar(50)null,tcetimesite

varchar(50)null,primarykeyclustered(tno,cno,tcny),

constraintfk_tc_courseforeignkey(cno)referencescourse(cno),

constraintfk_tc_teacherforeignkey(tno)referencesteacher(tno));

createtableusers(unochar(6)notnullprimarykeyclustered(uno),

unamechar(10)notnull,upasswordvarchar(10)null,uclasschar

(1)nulldefault'A');

createtablelogs(idbigintidentity(1,1)notnullprimarykeyclustered(id),unochar(6)notnull,opclasschar(10)nulldefault'INSERT',opcommandvarchar(400)null,opdatetimedatetimenull,

constraintfk_logs_usersforeignkey(uno)referencesusers(uno));

altertableclassadd

constraintfk_class_deptforeignkey(dno)referencesdept(dno),

constraintfk_class_teacherforeignkey(tno)referencesteacher(tno);

altertabledeptadd

constraintfk_dept_teacherforeignkey(tno)referencesteacher(tno);

altertablestaffroomadd

constraintfk_staffroom_deptforeignkey(dno)referencesdept(dno),

constraintfk_staffroom_teacherforeignkey(tno)referencesteacher(tno);

altertablestudentadd

constraintfk_student_classforeignkey(csno)referencesclass(csno),

constraintfk_student_specialityforeignkey(spno)referencesspeciality(spno);

altertableteacheradd

constraintfk_teacher_staffroomforeignkey(stno)referencesstaffroom(stno);

运行之后,会出现下面提示:

关系图语句:

 

createviewstudent_cs_courseas

selectstudent.sno,student.sname,ame,sc.grade

fromstudent,sc,course

wherestudent.sno=sc.snoando=o;

createviewclass_studentas

selectclass.csno,csname,student.sno,sname,sclass,ssex,scsrq

fromclass,student

whereclass.csno=student.csno

(3)数据加载

六.系统的实现

本系统是用VB+SQL来实现的,SQL的操作在前面就算已经操作完成了,现在关键是用VB创建界面,然后和数据库连接起来,实现动态操作数据库的功能。

进入VB6.0,选择标准EXE,然后新建工程,vb自动生成窗体form,保存为student。

由于知识的有限,我就选择了教务管理系统中的学生基本信息管理系统来设计,也没有采用了多界面操作法,而是采用单界面。

步骤及结果如下面的图片:

下面是最后界面:

接下来是最难得,也是最重要的:

将界面和数据库联接起来,激活各个按钮,运行后实现对数据库动态操作。

第一,要实现工程和数据库联接起来,

第二,创建公共模块。

指令如下:

PublicFunctionrunselect(ByValsql_

AsString,msgsAsString)AsADODB.Recordset

DimcnAsADODB.Connection

DimrsAsADODB.recordeset

OnErrorGoTorunselect_error

Setcn=NewADODB.Connection

cn.Openconnectstring()

Setrs=NewADODB.Recordset

rs.CursorLocation=adUseClient

rs.OpenTrim$(sql),cn,adOpenKeyset

Setrunselect=rs

msgs="查询到"&rs.RecordCount&"条记录"

runselect_exit:

Setrs=Nothing

Setcn=Nothing

ExitFunction

runselect_error:

msgs="查询错误:

"&Err.Description

Resumerunselect_exit

EndFunction

PublicFunctionrunsql(ByValsqlAsString,msgsAsString)

DimcnAsconnecton

OnErrorGoTorunsql_error

Setcn=NewConnection

cn.Openconnectstring()

cn.Executesql

msgs=sql&"successful."

Setcn=Nothing

ExitFunction

runsql_error:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2