学生信息管理系统数据库实训报告Word下载.doc
《学生信息管理系统数据库实训报告Word下载.doc》由会员分享,可在线阅读,更多相关《学生信息管理系统数据库实训报告Word下载.doc(24页珍藏版)》请在冰豆网上搜索。
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
8
S_sex
2
Ö
默认值:
(男);
约束:
只能填“男”或“女”
S_birth
datetime
系统日期
S_address
家庭地址
varchar
30
S_class
10
3.成绩表
char(11)
非空、主键
班级号
varchar(12)
Semester
Char(8)
grade
decimal(5)
成绩(等级)
4.教室表
number
char(8)
varchar(10)
teacher
四、系统实现的具体功能和创建的各类代码
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'
selectc_creditfromcoursewherec_no='
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='
wheresemester='
200402'
8,insertstudentvalues('
insertstudentvalues('
20021003014'
刘宇'
1987-8-19'
湖北荆州'
20031001002'
张海波'
1989-8-12'
软件031'
湖南长沙'
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='
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成绩
whereaddr='
oraddr='
19,insert