数据库课程设计高校学籍管理Word格式.docx
《数据库课程设计高校学籍管理Word格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计高校学籍管理Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
数据库逻辑结构设计
(确定每个关系模式及其主外键,并根据规范化理论进行优化)
其中有下划线的属性为主键。
学生(姓名,性别,学号,班级号,专业,出生日期,入学日期,家庭住址,备注)
班级(班级号,年级,辅导员,自习室)
用户(用户名,密码,权限)
课程(课程名,课程编号,课程类型,课程描述)
成绩(学生姓名,学号,班级名称,课程名,分数)
奖惩(姓名,学号,年级,辅导员)
数据库物理设计
(1)学生信息表(student),共有10个字段,分别为:
学号、姓名、性别、身份证号、出生日期、专业、班级、联系电话、家庭住址、备注,见表1
表1学生信息表的结构
字段名
字段类型
小数位数
是否主键
是否为空
是否外键
备注
sno
Char(15)
是
否
sname
Char(8)
Ssex
Char
(2)
scard
Char(20)
saddree
Date(8)
sspeciality
classname
Char(10)
Char(30)
stelphone
smemo
Char(50)
(2)课程信息表(course),本表有2个字段:
课程名称、所属专业,见表2
表2课程信息表的结构
coursename
cid
termname
period
Int(4)
tid
classroomname
coursememo
(3)班级信息表(class),共有5个字段分别为:
班级名称、所属院系辅导员、教室、人数,见表3
表3班级信息表结构
tdepartment
tname
classroom
number
Char(3)
(4)成绩信息表(score),有5个字段分别为:
学号、姓名、专业、课程名称、成绩,见表4
表4成绩信息表结构
数据类型
grade
score
(5)用户表(user),有2个字段为:
用户名称、密码,见表5
表5用户表结构
mima
(6)奖惩信息表(jc),有2个字段为:
学生姓名,年级,奖惩日期,奖惩名称,奖惩备注。
见表5
表5奖惩信息表结构
是
否
jdate
jname
jmemo
Char((20)
程序运行环境和开发环境
SQL软件
WINDOWSXP
主要模块程序流程图
1.系统管理
2.学生信息
3.课程管理
4.班级管理
5.成绩及奖惩管理
主要功能实现的程序段
1.建立数据库
Createdatebasestudent;
2.建立数据表
(1)学生信息表的建立。
Creattablestudent
(snochar(20)primarykey
snamechar(20)
ssexchar(20)
scardchar(20)
saddreechar(50)
stelphonchar(15)
smobtelphonchar(15)
classnamechar(20)
sdepartmentchar(50)
coursenamechar(30)
sspecialitychar(30)
);
(2)班级信息表的建立
createtableclass
(classnamechar(20)
cdepartmentchar(30)
cteacherchar(10)
cmemochar(50)
(3)课程信息表
createtablecourse
(cidchar(10)
classnamechar(20)
termnamechar(20)
coursenamechar(20)
periodchar(4)
tidchar(20)
classroomnamechar(20)
coursememochar(50)
(4)成绩信息数据表。
createtablescore
(snochar(20)primarykey
gradechar(20)
coursenamechar(10)primarykey
scoreint(4)
(5)奖惩信息数据表。
createtablejc
(snamechar(20)primarykey
gratechar(20)
jdatedate(8)
jnamechar(20)
jmemochar(20)
);
2.建立视图
(1)查询学生基本信息表视图定义
Createviewstudent_view(sno,sname,ssex,scard,saddress,stelphon,sspeciality,
classname,smemo)
as
select*
fromstudent
4.触发器设计
(1)创建规则用于限制性别项只能输入“男”或“女”
createtablestudent
(Ssexchar
(2)
CONSTRAINTC4CHECK(SsexIN(‘男’,‘女’)),
CONSTRAINTstudentKeyPBIMARY(Sno)
(2)建立触发器
创建触发器,当新增、修改或删除学生时自动修改相应班级的学生人数
CREATEtriggerdele_numberonstudent
fordelete
as
begin
declare@snoint
set@sno=(selectsnofromdeleted)
If(select*fromstudentwherestudent.sno=@sno)
Updateclasssetclass.number=class.number-1whereclassnamein(selectclassnamefromclasswherestudent.sno=@sno)
end
createtriggerinsert_numberonstudent
forinsert
begin
set@sno=(selectsnofrominserted)
Updateclasssetclass.number=class.number+1whereclassnamein(selectclassnamefromclasswherestudent.sno=@sno)
创建存储过程,统计各院系、专业学生的男女人数
createprocedurenumber
@classnamechar
Begin
Return(selectcount(sno)男生人数fromstudentwhereclassname=@classnameandssex=’男’)
Return(selectcount(sno)女生人数fromstudentwhereclassname=@classnameandssex=’女’)