学生信息管理系统数据库实训报告.doc

上传人:wj 文档编号:2139743 上传时间:2023-05-02 格式:DOC 页数:24 大小:638KB
下载 相关 举报
学生信息管理系统数据库实训报告.doc_第1页
第1页 / 共24页
学生信息管理系统数据库实训报告.doc_第2页
第2页 / 共24页
学生信息管理系统数据库实训报告.doc_第3页
第3页 / 共24页
学生信息管理系统数据库实训报告.doc_第4页
第4页 / 共24页
学生信息管理系统数据库实训报告.doc_第5页
第5页 / 共24页
学生信息管理系统数据库实训报告.doc_第6页
第6页 / 共24页
学生信息管理系统数据库实训报告.doc_第7页
第7页 / 共24页
学生信息管理系统数据库实训报告.doc_第8页
第8页 / 共24页
学生信息管理系统数据库实训报告.doc_第9页
第9页 / 共24页
学生信息管理系统数据库实训报告.doc_第10页
第10页 / 共24页
学生信息管理系统数据库实训报告.doc_第11页
第11页 / 共24页
学生信息管理系统数据库实训报告.doc_第12页
第12页 / 共24页
学生信息管理系统数据库实训报告.doc_第13页
第13页 / 共24页
学生信息管理系统数据库实训报告.doc_第14页
第14页 / 共24页
学生信息管理系统数据库实训报告.doc_第15页
第15页 / 共24页
学生信息管理系统数据库实训报告.doc_第16页
第16页 / 共24页
学生信息管理系统数据库实训报告.doc_第17页
第17页 / 共24页
学生信息管理系统数据库实训报告.doc_第18页
第18页 / 共24页
学生信息管理系统数据库实训报告.doc_第19页
第19页 / 共24页
学生信息管理系统数据库实训报告.doc_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生信息管理系统数据库实训报告.doc

《学生信息管理系统数据库实训报告.doc》由会员分享,可在线阅读,更多相关《学生信息管理系统数据库实训报告.doc(24页珍藏版)》请在冰点文库上搜索。

学生信息管理系统数据库实训报告.doc

广州**职业技术学院

数据库系统及应用实训报告

设计题目:

学生信息管理系统

学生姓名:

*****

系别:

计算机系

专业:

信息管理

班级:

****信息管理

学号:

*******

指导教师:

*****

2011年12月日

目录

一、概述 3

1.1项目背景 3

1.2课程设计目的 3

1.3题目及要求 3

1.4设计环境 4

二、需求分析 4

三、数据库设计 4

3.1概念模型设计 4

3.2逻辑数据库设计 5

3.3数据库的物理设计 6

四、系统实现的具体功能和创建的各类代码 6

五、实训心得 22

一、概述

1.1项目背景

当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境.计算机的最大好处在于利用它能够进行信息管理.使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性.

学生信息管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生信息的添加,修改,删除,查询,留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流.

1.2课程设计目的

1.进一步掌握SQLServer2005数据库及其组成。

2.进一步熟悉主要数据库对象的操作。

3.提高应用企业管理器管理SQLServer2005数据库的能力。

4.提高T-SQL语句的编写能力。

5.进一步明确数据库管理的主要功能。

1.3题目及要求

题目:

学生成绩管理系统数据库

要求:

1.充分了解软件设计的全过程。

2.从开始的系统需求分析到最后的代码编写,都要有详细的计划,设计文档应按照课程设计的要求书写。

3.系统中的数据表设计应合理、高效,尽量减少数据冗余。

4.数据库及表要易于维护、方便升级。

必须包括数据库、表、查询、数据录入、删除、更新、约束建立等代码每人提交一个实训报告和可行的运行代码。

1.4设计环境

1)、操作系统:

windowsXP

2)、数据库系统:

MicrosoftSQLServer2000/2005企业版

二、需求分析

1.信息需求

高校学生的成绩管理工作量大、繁杂,人工处理非常困难。

学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。

学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。

2.功能需求

能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。

具体功能应包括:

系统应该提供课程安排数据的插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。

3.安全性与完整性要求

三、数据库设计

姓名

3.1概念模型设计

课程信息表表

学生信息表

考试

成绩

家庭住址

学分

课程名

课程号

课程号

学号

成绩

学期

班级

性别

出生日期

学号

选择

姓名

上课

教室表

教室号

上课教师

班级

3.2逻辑数据库设计

设计学生成绩管理数据库,包括课程、学生、成绩三个关系,其关系模式中对每个实体定义的属性如下:

课程信息表

Course:

(课程号,课程名,学分,课程类别)

学生信息表

Student:

(学号,姓名,性别,出生日期,班级,家庭地址)

成绩表

Score:

(学号,课程名,成绩,学期)

教室表

Classroom:

(教室号,班级,上课教师)

3.3数据库的物理设计

1、课程信息表(Course)

列名

数据类型、长度

约束

列名说明

C_no

char(5)

主键

班级编码

C_name

char(10)

非空

班级名

C_credit

Char

(2)

非空

学分

C_type

Char(10)

允许空

课程类别

2、学生信息表(student)

列名(英文名)

列文(中文名)

数据类型

长度

允许空值

说明

S_no

学号

char

11

´

主键

S_name

姓名

char

8

´

S_sex

性别

char

2

Ö

默认值:

(男);约束:

只能填“男”或“女”

S_birth

出生日期

datetime

Ö

默认值:

系统日期

S_address

家庭地址

varchar

30

Ö

S_class

班级

varchar

10

Ö

3.成绩表

列名

数据类型、长度

约束

列名说明

S_no

char(11)

非空、主键

班级号

C_no

varchar(12)

非空、主键

课程号

Semester

Char(8)

非空

学期

grade

decimal(5)

允许空

成绩(等级)

4.教室表

列名

数据类型、长度

约束

列名说明

number

char(8)

主键

教室号

S_class

varchar(10)

非空

班级

teacher

Char(8)

非空

上课教师

四、系统实现的具体功能和创建的各类代码

1,createdatabasestudent

2,createtablestudent(

Snochar(11)notnullPrimarykey,

Snamechar(8)notnull,

Ssexchar

(2)check(S_sex='男'orS_sex='女')DEFAULT'男',

birthdatetimeCHECK(S_birth>='1900'andSbirth<='2100'),

S_classvarchar(10)null,

addrvarchar(30)null

录入方式:

(1)insertstudentvalues('20021001002','张山','男','1988-6-15','信息021','湖北汉口',Null)

(2)

(3)usestudent

ifexists(selectnamefromsysobjectswherename='GetCredit'andtype='p')

dropprocedureGetCredit

go

createprocedureGetCredit

@v_departvarchar(6)

as

select*fromcourse

wherec_credit=@v_depart

execGetCredit'1003c#_w'

go

selectc_creditfromcoursewherec_no='1003c#_w'

3,createtablecourse(

C_novarchar(12)notnull,

C_namevarchar(20)notnull,

C_creditchar

(2)notnull,

C_typechar(10)notnull

4,createtablescore(

snochar(11)notnull,

semesterchar(8)notnull,

c_novarchar(12)notnull,

gradevarchar(5)null

5,altertablestudent

addS_majorchar(20)null

6,updatestudentsetaddr='湖南株洲'wheresname='周天'

7,updatescoresetgrade=75,c_no='1003c#_w'wheresemester='200402'

8,insertstudentvalues('20021001002','张山','男','1988-6-15','信息021','湖北汉口',Null)

insertstudentvalues('20021003014','刘宇','男','1987-8-19','信息021','湖北荆州',Null)

insertstudentvalues('20031001002','张海波','男','1989-8-12','软件031','湖南长沙',Null)

9,updatestudentsetbirth='1986-5-25'

wheresname='曾建桥'

altertablecourse

addprimarykey(c_no)

altertablescore

addprimarykey(sno,c_no)

10,altertablecourse

addforeignkey(c_no)referencesscore(c_no)

altertablestudent

addforeignkey(sno)referencesscore(sno)

11,altertablecourse

adddefault'专业课'forC_type

12,altertablescore

addcheck(gradebetween1and100)

13,selectsname,sno,S_classfromstudent

14,selectsname,2007-datepart(yy,birth)fromstudent

15,select学号=sno,姓名=sname,2007-datepart(yy,birth)年龄fromstudent

16,selectstudent.snoas学号,c_noas课程号,gradeas成绩

fromstudentinnerjoinscore

onstudent.sno=score.sno

wheresemester='200402'andgrade>'80'

17,select姓名=sname,班级=S_class,2007-datepart(yy,birth)年龄fromstudent

where(2007-datepart(yy,birth)between18and22)

18,selectstudent.snoas学号,sname,ssex,birth,s_class,addr,c_noas课程号,gradeas成绩

fromstudentinnerjoinscore

onstudent.sno=score.sno

whereaddr='湖南株洲'oraddr='湖南长沙'

19,insertscorevalues('20021001002','200401','1203dzswwzjs',Null)

insertscorevalues('20021003014','200402','1003xmkf',Null)

insertscorevalues('20031001002','200401','1002sjkyl',Null)

20,selectstudent.snoas学号,sname,ssex,c_noas课程号

fromstudentinnerjoinscore

onstudent.sno=score.sno

wheregradeisNull

21,selectsnofromscore

22,selecttop3sno,gradefromscore

wherec_no='1003c#_w'

orderbygradedesc

23,updatescoresetsno='20021003016'

wheregrade='91'

24,updatescoresetsno='20021003013'

wheregrade='86'

25,selectsno,gradefromscore

wherec_no='1003c#_w'

orderbygradedesc

26,selecttop1c_no,gradefromscore

wheresnolike'20021003%'andgrade>80

orderbygradedesc

27,selectstudent.snoas学号,sname,S_class,grade

fromstudentinnerjoinscore

onstudent.sno=score.sno

28,selectsno,sname,birthfromstudent

where2007-datepart(yy,birth)>=(select2007-datepart(yy,birth)fromstudentwheresname='王玉梅')

orderbybirthdesc

29,select*fromstudent

wheres_classin(selects_classfromstudentwheresname='刘晶晶')

30,select*fromstudent

wheres_class<>'信息021'and2007-datepart(yy,birth)<(selectmin(2007-datepart(yy,birth))

fromstudentwheres_class='信息021')

31,selectscore.sno,sname

fromstudentinnerjoinscore

onstudent.sno=score.sno

wherec_no='1003c#_w'

32,selectstudent.sno,sname

fromstudentinnerjoinscore

onstudent.sno=score.sno

joincourseonscore.c_no=course.c_no

wherec_name='数据库原理与应用'

33,createclusteredindex_studentonstudent(sno)

34,Createuniquenonclusteredindexstudent1ONcourse(c_no)

35,Createnonclusteredindexstudent1ONscore(sno,c_no)

36,createviewscore3

as

selectstudent.snoas'学号',snameas'学生名',score.c_noas'课程号',c_nameas'课程名',gradeas'成绩'

fromstudentinnerjoinscoreonstudent.sno=score.snojoincourseonscore.c_no=course.c_no

37,createviewstu_info_view

as

selectsnoas'学号',snameas'学生名',ssexas'性别'fromstudent

38,createviewgrade_view

as

selectgradeas'性别'fromscore

wheregrade>80

39,insertstu_info_viewvalues('20031001034','高防御','男')

40,updatestudentsetsname='王勇'

wheresno='20031001002'

updatescoresetgrade=grade+2

wheresno='20031001002'

41,usestudent

ifexists(selectnamefromsysobjectswherename='student_pro'andtype='p')

dropprocedurestudent_pro

go

createprocedurestudent_pro

as

select*fromstudent

go

select*fromstudent

wheres_class='信息021'

42,usestudent

ifexists(selectnamefromsysobjectswherename='GetCredit'andtype='p')

dropprocedureGetCredit

go

createprocedureGetCredit

@v_departvarchar(6)

as

select*fromcourse

wherec_credit=@v_depart

execGetCredit'1003c#_w'

go

selectc_creditfromcoursewherec_no='1003c#_w'

43,altertablestudent

adddefault'男'forssex

44,altertablescore

addcheck(gradebetween1and100)

45,altertablescore

addPRIMARYkey(sno,c_no)

altertablescore

addforeignkey(sno,c_no)referencesscore(sno,c_no)

46,createtriggerupdatesnumber

onscore

afterupdate

as

ifexists(selectsnofromstudent)andexists(selectc_nofromcoure)

begin

print'不能完成修改,请检查错误'

rollbacktransaction

end

47,DECLAREcourse_checkCURSOR

FORSELECT*

FROMcourse

WHEREc_no='课程号'andc_name='课程名称'

ORDERBYc_noasc

FORREADONLY

48,备份数据库

删除数据库

还原数据库

五、实训心得

这一次学生信息查询系统实训主要参照课本来做的,相对来说比较简单。

但是由于主要以课本为依据,所以整个设计做下来基本了解了课本上数据库的基础操作。

更进一步了解SQLServer数据库及其组成和进一步熟悉主要数

据库对象的操作。

提高应用企业管理器管理SQLServer数据库的能力和提高T-SQL语句的编写能力。

也更进一步明确了解数据库管理的主要功能。

设计过程中我也遇到了一些问题,再向其他同学请教的过程中我收获了很多。

在这一过程中不止使我更了解数据库的应用与理解,更重要的是促进了同学间的交流,加进了同学间的感情,使班上的气氛更加的和谐。

这次的实训给我的感觉不止是使我更加的了解SQLServer数据库及其组成和进一步熟悉主要数据库对象的操作,更是促进了我与同学间的感情交流。

虽然在这次实训中遇到了不少的问题,但都一一被我解决,使我有一种满足感。

实训中为了解决问题不停的在找相关的资料很累,但却充实了实训的每一分每一秒,使得这次实训变的很有意义。

而这次实训中的问题的解决使我懂得的很多以前不知道的知识。

(1)操作视图查询,编写代码时发现,一个表中的主键必须是另一个表的外键时才可以对另一个表进行引用。

(2)在设计表时应注意使用正确的字段类型。

(3)在建表语句中,如果这个表的主键是多个属性的组合主键,则必须作为表级完整性进行定义。

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

当前位置:首页 > 求职职场 > 简历

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

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