数据库
实训报告
专 业: 计算机科学与技术
班 级: 计091
姓 名: xxx
任课教师: xxx
20##年 11 月 5 日
目 录
第一章 概述………………………………………………………………………3
1.1 引言………………………………………………………………………… 3
1.2 摘要…………………………………………………………………………3
第二章 需求分析…………………………………………………………………3
2.1 功能分析……………………………………………………………………3
2.2 性能分析……………………………………………………………………4
2.3 可靠性和可用性需求………………………………………………………4
2.4 出错处理要求………………………………………………………………4
2.5 约束…………………………………………………………………………4
2.6 逆向需求……………………………………………………………………4
2.7 将来可能提出的要求………………………………………………………4
第三章 数据库设计………………………………………………………………4
3.1 数据字典……………………………………………………………………4
3.2 E-R图………………………………………………………………………5
3.3 数据库设计…………………………………………………………………6
第四章 详细设计…………………………………………………………………7
4.1登录主界面开发……………………………………………………………7
4.2登录后学生信息界面的开发………………………………………………8
4.3登录后教师信息界面的开发………………………………………………8
4.4登录后学生选课界面的开发………………………………………………9
4.5登录后教师发布选课界面的开发…………………………………………9
总结…………………………………………………………………………………10
参考文献……………………………………………………………………………10
第一章 概述
引言
由于信息科技化的越来越多的被应用在商业、工业等领域。管理信息系统的实施在技术上已逐步成熟。任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。那么作为高等教育组织的学校也不例外。
所以在顺应形势的前提下我们做了此实训,本文介绍了以Oracle 11g和JAVA为开发环境而实现的学生教务管理系统的完全运行。自下而上地应用开发”的策略开发一个学校教务管理信息系统的过程。
摘 要
学生选课管理系统是一个非常通用的信息管理系统,本课题主要设计一个简单的选课管理系统,进行简单的课程查询及管理。主要实现的功能有:学生基本信息的导入/导出;学生课程信息的录入、修改、添加、删除、查询;在课程设计中,系统开发平台为Windows7,程序设计语言采用Java,数据库采用MYSQL,程序运行平台为Windows 7。系统的实现可以极大地方便教师和学生对课程的使用,查询和管理。之所以选择Java作为开发工具,不仅仅因为它好用,更是它的功能强大和使用方便。系统设计部分主要介绍了系统功能设计和数据库设计及JAVA代码设计;系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。
第一章 需求分析
2.1功能需求
“学生选课系统”服务于两种客户,一种是:教师,主要实现的功能包括自己信息管理,公布课程信息,选择学生。另一是:学生,主要实现功能包括管理自己信息,选择课程,查看各种信息。
2.2 性能需求
“学生选课系统”要求可以允许200人同时登陆,修改或查询等操作。而所需要的数据库要求有2G的容量。
2.3 可靠性和可用性需求
要求“学生选课系统”可以正确显示各种信息,在允许访问人数未达上限之前可以保证系统正常运行。赋予不同角色以不同的权限,保证各种数据完整性。
2.4出错处理要求
当系统接收到不符合要求的信息或错误信息时,会自动提醒出现这类信息,然后拒绝下一位用户的访问并附相关提醒信息。
2.5约束
“学生选课系统”的用户登入窗口对大小写敏感,输入帐号密码时应该区分大小写。该系统需要SQL Serve 2008作为数据库平台。
2.6逆向需求
为了方便学生数据管理和学生数据的安全,“学生选课系统”禁止学生端口注册新用户,学生的基本信息不可随意更改。
2.7将来可能提出的要求
“学生选课系统”在长期的使用过程中将产生过多的数据,如果仅凭人工删除显然不是非常合理,系统将开辟出一个批删除模块,用于成批删除毕业学生的选课数据。
第三章 数据库设计
3.1数据字典
3.2 E-R图
3.3数据库设计
数据库SchoolDB由以下表组成:
Student:学生信息表
Teacher:教职工信息表
Department:系信息表
Course:课程信息表
Score:成绩信息表
Student-course:选课信息表
具体功能如下:
学生信息管理:
对学生信息进行添加、查询、删除。包括学号、姓名、性别、出生日期、入学成绩、所在系号。
教职工信息管理:
对教职工信息进行进行添加、查询、删除。
系信息管理:
对系信息进行添加、查询、删除。
课程信息管理:
对课程信息进行添加、查询、删除。
成绩信息管理:
对成绩信息进行添加、查询、删除。
学生选课管理:
对学生选课情况进行添加、查询、删除。
第四章 详细设计及功能实现
4.1登录主界面开发
4.2登录后学生信息界面的开发
4.3登录后教师信息界面的开发
4.4登录后学生选课界面的开发
4.5登录后教师发布选课界面的开发
总结
通过本次实训使我懂得,开发一款软件是需要有较好的团队合作精神, 由于每个人的能力有限,所以再将任务分工后就显得快了很多,所需要考虑的问题也就相对减少。对于个人而言,我们每个人都要有慎密的思路,严谨做事的态度,良好的心态才能将此事完成的完美,才能完成的使自己无怨无悔。
本次实训,对于教务系统的开发,让我发现其实我们自身还有很大不足,所以就参考了很多前辈的经典素材或者有名的书籍。但最终我们按照要求预期完成了任务。所以我们觉得本次实训总体成功。
参考文献
[1] 课程管理系统发展趋势[J]. 中国远程教育, 2004,(18) :12~13
段晨,刘俊强. 网络课程管理系统Moodle研究现状综述[J]. 中小学电教, 2008,(Z1):249~252
[2] 邹含辉,黎加厚. 基于社会建构主义的网络课程管理系统探究——以Moodle课程管理系统为例[J]. 中小学电教, 2008,(04):20~25
[3] 黎加厚,赵怡. 课程管理系统(CMS)及其选择[J]. 现代教育技术,2008,(09):30~35
王会霞,刘志兵. 网络课程管理系统的设计与实现[J]. 有线电视技术, 2007,(08) :14~16
[4] 赵国栋,黄永中,林莉. 高校课程管理系统的选择策略研究[J]. 中国远程教育, 2008,(01):12~14
[5] 学生课程管理系统的设计与实现[J]. 科技资讯, 2006,(31) :30~35
[6] 课程管理系统探索[J]. 浙江水利水电专科学校学报, 1999,(01) :45~46
[7] 阮国龙,刘峰. 基于素材的网络课程管理模式的探讨[J]. 咸宁学院学报, 2004,(06) :40~46
叶冬连,刘华. 基于开源软件Moodle构建网络课程管理系统[J]. 上饶师范学院学报, 2007,(03):67~69
[8] Yah Zhanjun,The history and Development ofAPTLIN[J].90’S International Symposium on the Latest Development in Technologies of Library Service.Bering,1992,9
[9]Abram L,Balestra A.Offering a Library on the]nternet:the OATs Experience,Vistas inAstronomy,1995,9(1):53~61
[10]吕俊, 喻萍. 网络课程管理系统的分析及其功能模块[J]. 景德镇高专学报, 2006,(02) :76~78
[11]刘莹, 聂钢. MIT开放网络课程述略[J]. 高等工程教育研究, 2005,(01) :56~58
[12]基于网格的网络课程原型系统设计研究[J]. 高等教育研究学报, 2006,(03) :76~78
[13]杨得国, 王银柱. 基于ASP.NET技术的VB网络课程学习平台的设计[J]. 科技管理研究, 2009,(06) :120~121
[14]李丽萍. 网络课程的设计和实施[J]. 现代教育技术, 2002,(03)
[15]刘伟. 论网络课程的传播策略[J]. 山东电力高等专科学校学报, 2005,(01) :45~48
[16]张剑平, 李慧桂. 论网络课程在教学中的不同应用层次[J]. 中国远程教育, 2005,(03) :32~56
[17]曾凡林, 吴云飞. 网络课程教学方法和教学模式的分析与探讨[J]. 常州信息职业技术学院学报, 2005,(01) :23~35
第二篇:(数据库)sql综合实训报告
管理信息系统课程设计
――——学生信息教学成绩管理系统的设计与实现
摘要:
当前各高校普遍开设了选修课程教学成绩的管理,在传统的手工处理模式下,每年学生进行选修课程的选择以及教师安排选修课程成绩的管理都要耗费学生和教师的很多精力,而且效率差、错误率高。
本文就这个问题,通过学生教学成绩信息管理系统的设计,提供了一套基于数据库应用系统的解决方案,并进行了系统的设计与实现。在分析设计阶段我们用到了E-R模型(实体—联系模型)、关系模型等方法,在实施阶段,我们采取SQLServer6.0作为开发工具,得到了教学成绩管理系统的数据库。其中由丁俊文设计“专业”“班级”的分E-R图并编写《数据库信息文档》和后期视图的设计;由刘志琼设计“系部”“教研室”的分E-R图及整合各分E-R图;由张玉设计“课程”“学院”的分E-R图;由于艳青设计“学生”“教师”的分E-R图和成绩管理数据库的创建。
关键词:数据库,系统设计,SQL Server
一 功能需求分析
学校各分院正常教务管理系统包括教学计划、师资、教材、教室、学籍、考试、排课、次、评估管理等,其中最重要的仍然是成绩管理,本次实训做的是《成绩管理系统》,包括学院、系部、教研室、专业、教师、学生、课程、等信息管理和课程设置、教学成绩信息管理等方面的,本系统开发任务是实现某学院教学成绩信息管理规范化和自动化,系统的用户有学院领导、成绩管理人员、班主任、教师及学生等。
⑴ 教师:在校园网(局域网)或互联网录入与查询所代课程成绩数据,查询学院、系部、教研室、专业、教师、学生、课程信息等数据。
⑵ 班主任:在校园网或互联网录入与查询所负责班级的学生档案信息,查询学院、系部、教研室、专业、教师、学生、课程信息和所管学生成绩等数据。
⑶ 学生:在校园网或互联网查询学生个人档案信息和成绩信息,查询学院、系部、教研室、专业公共信息和所在班的课程设置等数据。
⑷ 领导:在校园网或互联网查询本系统所有信息。
⑸ 成绩管理人员:在校园网或互联网查询本系统所有信息,在校园网维护所有数据。
二 功能设计(图)
系统目标的实现是通过系统的各功能模块来达到的。由于每个系统功能又可以划分为若干个具体的功能模块,因此,从目标开始层层分解,知道每个子功能模块只执行一个具体的任务。子功能模块是独立的,有明显的输入与输出信息。通常我们将按功能关系画成的图成为功能结构图,功能结构图如下:
成绩管理系统的功能结构图
三 概念结构设计(E-R图)
⑴ 学生E-R图
⑵ 课程E-R图
⑶ 系部E-R图
⑷ 教师E-R图
⑸ 班级E-R图
⑹ 教研室E-R图
⑺ 学院E-R图
⑻ 总E-R图
修改意见:本节(1)-(8)不要括弧
四 逻辑结构设计(定义表结构)
学生(学号,姓名,性别,年龄)
课程(编号,名称,学分,学时,类别,考试类型,院系编号)
教师(编号,姓名,性别,年龄,职称,职务)
教学成绩(学号,课程.编号,教师.编号,学年学期,成绩,分数,考试类别,考试考查类型,考试日期,录入日期)
教研室(编号,名称,主任)
学院信息表(编号,名称,简称,院长,书记)
系部信息表(编号,名称,主任,书记)
专业信息表(编号,系部编号,名称)
班级课程设置表(班级编号,教师编号,课程编号,学年学期,学时)
班级信息表(编号,名称,年级,专业编号,人数)
五四 物理结构设计(SQL实现)
⑴用SQL Server6.0数据库管理系统来设计数据库和计(建表及视图。)
⑵通过查询分析器用SQL语句来设计,具体T-SQL代码如下:
1. 1.建成绩管理系统数据库
格式修改要求:1-4.9二级标题用黑体、小三号,以下自己改!
Create database 成绩管理系统
On
(name = 成绩管理系统mdf,
Filename = ‘h:\vb\成绩管理系统.mdf’,
Size = 1,
Filegrowth = 10%)
Log on
( name = 成绩管理系统_log,
Filename = ‘h:\vb\成绩管理系统_log.ldf’,
Size = 5,
Filenamegrowth = 10%)
-- 2.1 学院信息表
-- 函数:is中文字符串
-- 功能:判断自变量是否是纯中文字符串,返回:是/否
create function is中文字符串(@字符串 nchar(255))
returns nchar(1) as
begin
declare @I tinyint, @J tinyint
set @I=len(@字符串)
set @J=1
while (@J<=@I)
begin
if (unicode(substring(@字符串,@J,1))<256) return '否'
set @J=@J+1
end
return '是'
end
go
-- 学院信息表 -- 代码:编号 2 位
create table 学院信息表
( 编号 char(2) primary key ,
名称 nchar(20) unique check(dbo.is中文字符串(名称) = '是'),
简称 nchar(10) not null unique check(dbo.is中文字符串(简称) = '是'),
院长 nchar(4) null ,
书记 nchar(4) null
)
go
学院信息表中,利用is中文字符串函数,实现名称和简称两个字段的完成性约束,保证这两个字段只能输入中文字符。
提示:以下表凡是带check短语的仿照此例加上说明
-- 2.2 系部信息表
-- 函数:is学院信息表编号
-- 功能:判断自变量是否是学院信息表编号,返回:是/否
create function is学院信息表编号(@字符串 char(4))
returns nchar(1) as
begin
if exists(select * from 学院信息表 where 编号=left(@字符串,2)) return '是'
return '否'
end
go
-- 系部信息表-- 代码:编号 前两位 为所在学院的编号
create table 系部信息表
( 编号 char( 4) primary key check(dbo.is学院信息表编号(编号)='是'),
名称 nchar(20) check(dbo.is中文字符串(名称)='是') unique,
主任 nchar( 4) null,
书记 nchar( 4) null,
)
go
-- 2.3 教研室信息表
-- 函数:is系部信息表编号
-- 功能:判断自变量是否是系部信息表编号,返回:是/否
create function is系部信息表编号(@字符串 char(6))
returns nchar(1) as
begin
if exists(select * from 系部信息表 where 编号=left(@字符串,4)) return '是'
return '否'
end
go
-- 教研室信息表 -- 代码:编号 前4位 为所在系部的编号
create table 教研室信息表
( 编号 char( 6) primary key check(dbo.is系部信息表编号(编号)='是'),
名称 nchar(20) unique check(dbo.is中文字符串(名称)='是'),
主任 nchar( 4) null
)
go
-- 2.4 专业信息表
create table 专业信息表
( 编号 char( 6) primary key,
院系编号 char( 4) foreign key references 系部信息表(编号) on update cascade,
名称 char(40) unique,
)
go
-- 2.5 课程信息表
create table 课程信息表
( 编号 char(6) primary key ,
名称 varchar(50) not null ,
院系编号 char(4) foreign key references 系部信息表(编号) on update cascade not null ,
学时 numeric(10, 1) check(学时 between 20 and 300 or 学时 = 0) ,
学分 numeric(10, 1) ,
类别 nchar(5) check(rtrim(类别) in ('公共基础课', '选修课', '专业基础课', '专业课')) ,
考试类型 nchar(2) check(考试类型 in ('考查','考试'))
)
go
-- 2.6. 班级信息表
create table 班级信息表
( 编号 char(8) primary key ,
名称 varchar (15) unique ,
年级 char(4) not null ,
专业编号 char(6) foreign key references 专业信息表(编号) on update cascade not null ,
人数 int null ,
学制 int null ,
班主任 nchar(4) null ,
班长 nchar(4) null ,
书记 nchar(4) null
)
go
2.7 教师信息表
create table 教师信息表 (
编号 char(6) not null primary key ,
登录名 char(10)not null unique,
姓名 nchar(4) not null check(dbo.IS中文字符串([姓名]) = '是'),
密码 char(6),
性别 nchar(1) check(性别 in ('女', '男')) not null ,
教研室编号 char(6) references 教研室信息表(编号) on update cascade not null ,
出生日期 datetime null ,
工作日期 datetime null ,
职称 nvarchar(5) check(rtrim(职称) in ('助教', '讲师', '副教授', '教授')) null ,
职务 nchar(12) null ,
学历 nchar(12) null ,
学位 nchar(2) check(学位 in ('双学士', '博士', '硕士', '学士')) null ,
工资 money null ,
照片 image null
)
-- 2.8 学生信息表
create table 学生信息表
( 学号 char(6) primary key not null ,
姓名 nchar(4) check(dbo.is中文字符串(姓名)='是') not null ,
密码 char(6),
性别 nchar(1) check(性别 in ('男','女')) not null ,
出生日期 datetime null ,
民族 nchar(8) default '汉族' null ,
籍贯 nchar(20) default '山西省' null ,
家庭地址 nchar(20) null ,
邮政编码 char(6) null ,
联系电话 char(20) null ,
身份证号 char(18) null ,
政治面貌 nchar(5) check(rtrim(政治面貌) in ('其他','群众','共青团员', '中共党员')) null ,
班级编号 char(8) foreign key REFERENCES 班级信息表(编号) on update cascade null ,
入学日期 datetime null ,
备注 varchar(80) null ,
简历 ntext null ,
照片 image null
)
go
2.9 学年学期表
create table 学年学期表
( 学年学期 char(11) primary key check(学年学期 like '200[0-9]-200[0-9].[1-2]') not null
)
2.10 班级课程设置表
create table 班级课程设置表
( id int identity (1, 1) primary key not null ,
班级编号 char(8) REFERENCES 班级信息表(编号) not null ,
教师编号 char(6) REFERENCES 教师信息表(编号) not null ,
课程编号 char(6) REFERENCES 课程信息表(编号) not null ,
学年学期 char(11) REFERENCES 学年学期表(学年学期) not null ,
学时 int check(学时 > 20 and 学时 < 200) null
ConSTRAINT IX_班级课程设置表 unique (班级编号,学年学期,教师编号,课程编号)
)
go
2.11 教学成绩表
CREATE TABLE 教学成绩表
( ID int IDENTITY(1, 1) PRIMARY KEY NOT NULL ,
学号 char(6) NOT NULL REFERENCES 学生信息表(学号) ON UPDATE CASCADE,
课程编号 char(6) NOT NULL REFERENCES 课程信息表 (编号) ,
教师编号 char(6) NULL REFERENCES 教师信息表 (编号) ON UPDATE CASCADE,
学年学期 char(11) NOT NULL REFERENCES 学年学期表(学年学期),
成绩 char(10) NOT NULL check(rtrim([成绩]) in ('优', '良', '中', '及格', '合格', '不及格', '补考及格', '缓考', '缺考', '缺课', '免修', '未修', '重修', '作弊') or rtrim([成绩]) like '[1-9][0-9]' or [成绩] like '[0-9]' or rtrim([成绩]) like '[1-9][0-9].[0-9]' or rtrim([成绩]) like '[0-9].[0-9]' or rtrim([成绩]) = '100'),
分数 numeric(5, 1) NULL CHECK (分数 >= (-1) and 分数 <= 100) DEFAULT 0,
考试类别 nchar(4) NOT NULL CHECK (考试类别 in ('期末考试', '期初补考', '高挂补考' ,'回校补考')),
考试考查类型 nchar(2) NOT NULL CHECK (考试考查类型 in ('考试', '考查')),
考试日期 datetime NOT NULL ,
录入日期 datetime NOT NULL
)
GO
2.12 管理员信息表
create table 管理员信息表
( 登录名 nchar(10) not null primary key,
姓名 nchar(4) not null ,
密码 char(6) null ,
用户身份 nchar (3) not null check (用户身份 in ('班主任', '管理员' , '领导'))
)
2.13 系统参数表
create table 系统参数表
( [类别] [nchar] (6) not null ,
[名称] [nchar] (12) null ,
[数值] [real] null
)
3.1 删除/修改 学院信息表编号
create trigger T删除学院信息表编号
on 学院信息表
for delete
as
begin
set nocount off
declare @编号 char(2)
select @编号=编号 from deleted
if exists(select * from 系部信息表 where @编号=left(编号,2))
begin
RAisERROR ( '系部编号正在使用, 不可删除!', 16, 1)
ROLLBACK TRANSACTIon
end
end
go
create trigger T修改学院信息表编号
on 学院信息表
after update
as
if update(编号)
begin
set nocount off
declare @编号 char(2), @编号_ char(2)
select @编号=编号 from deleted
select @编号_=编号 from inserted
update 系部信息表 set 编号=@编号_+substring(编号,3,2) where @编号=left(编号,2)
update 专业信息表 set 院系编号=@编号_+substring(院系编号,3,2) where @编号=left(院系编号,2)
update 课程信息表 set 院系编号=@编号_+substring(院系编号,3,2) where @编号=left(院系编号,2)
update 教研室信息表 set 编号=@编号_+substring(编号,3,4) where @编号=left(编号,2)
update 教师信息表 set 教研室编号=@编号_+substring(编号,3,4) where @编号=left(教研室编号,2)
end
go
此触发器的建立目的是,一旦学院信息表的编号字段发生的改变,则触发系部信息表、专业信息表、课程信息表、教研室信息表、教师信息表的编号中的部分字符串要作相应的改变。
提示:下面的触发器仿照此例加上说明。
-- 3.2 删除/修改 系部信息表编号
create trigger T删除系部信息表编号
on 系部信息表
for delete
as
begin
set nocount off
declare @编号 char(4)
select @编号=编号 from deleted
if exists(select * from 教研室信息表 where @编号=left(编号,4)) or
exists(select * from 专业信息表 where 院系编号=@编号) or
exists(select * from 课程信息表 where 院系编号=@编号) or
exists(select * from 教师信息表 where left(教研室编号,4)=@编号)
begin
RAISERROR ( '系部编号正在使用, 不可删除!', 16, 1)
ROLLBACK TRANSACTION
end
end
go
create trigger T修改系部信息表编号
on 系部信息表
after update
as
if update(编号)
begin
set nocount off
declare @编号 char(4), @编号_ char(4)
select @编号=编号 from deleted
select @编号_=编号 from inserted
if exists(select * from 学院信息表 where 编号=left(@编号_,2))
begin
update 专业信息表 set 院系编号=@编号_ where @编号=院系编号
update 课程信息表 set 院系编号=@编号_ where @编号=院系编号
update 教研室信息表 set 编号=@编号_+substring(编号,5,2) where @编号=left(编号,4)
update 教师信息表 set 教研室编号=@编号_+substring(编号,5,2) where @编号=left(教研室编号,4)
end
else
begin
RAISERROR ( '非法编号, 不可修改除!', 16, 1)
ROLLBACK TRANSACTION
end
end
go
n -- 4.1 系部信息表视图
n 为简化对表的操作,屏幕部分数据特建如下视图。
create view 系部信息表视图
as
select 系部信息表.编号, 系部信息表.名称, 学院信息表.简称 as 学院简称,
系部信息表.主任, 系部信息表.书记
from 系部信息表 left outer join
学院信息表 on left(系部信息表.编号, 2) = 学院信息表.编号
go
-- 4.2 教研室信息表视图
create view 教研室信息表视图
as
select 教研室信息表.编号, 系部信息表视图.名称 as 系部,
系部信息表视图.学院简称 as 学院, 教研室信息表.名称,
教研室信息表.主任
from 教研室信息表 inner join
系部信息表视图 on left(教研室信息表.编号, 4) = 系部信息表视图.编号
go
-- 4.3 专业信息表视图
create view 专业信息表视图
as
select top 100 percent 专业信息表.编号, 专业信息表.名称,
系部信息表视图.学院简称, 专业信息表.院系编号,
系部信息表视图.名称 as 系部
from 专业信息表 left outer join
系部信息表视图 on
专业信息表.院系编号 = 系部信息表视图.编号
ORDER BY 专业信息表.院系编号, 专业信息表.编号
go
-- 4.4 班级信息表视图
create view 班级信息表视图
as
select 班级信息表.编号, 班级信息表.名称, 班级信息表.年级,
系部信息表视图.学院简称 as 学院, 系部信息表视图.名称 as 系部,
班级信息表.专业编号, 专业信息表.名称 as 专业, 班级信息表.学制,
班级信息表.班主任, 班级信息表.班长, 班级信息表.书记,
班级信息表.人数, 系部信息表视图.编号 as 系部编号
from 系部信息表视图 inner join
专业信息表 on
系部信息表视图.编号 = 专业信息表.院系编号 right outer join
班级信息表 on 专业信息表.编号 = 班级信息表.专业编号
go
-- 4.5 课程信息表视图
create view 课程信息表视图
as
select 课程信息表.编号, 课程信息表.名称, 课程信息表.院系编号,
系部信息表视图.学院简称, 系部信息表视图.名称 as 系部名称,
课程信息表.学时, 课程信息表.学分, 课程信息表.类别,
课程信息表.考试类型
from 课程信息表 left outer join
系部信息表视图 on 课程信息表.院系编号 = 系部信息表视图.编号
go
-- 4.6 教师信息表视图
create view 教师信息表视图
as
select 教师信息表.编号, 教师信息表.姓名, 教师信息表.性别,
系部信息表视图.学院简称 as 学院, 系部信息表视图.名称 as 系部,
datename(yyyy, 教师信息表.出生日期) + '年' + datename(mm,
教师信息表.出生日期) + '月' + datename(dd, 教师信息表.出生日期)
+ '日' as 出生日期_, 教研室信息表.名称 as 教研室, datename(yyyy,
教师信息表.工作日期) + '年' + datename(mm, 教师信息表.工作日期)
+ '月' + datename(dd, 教师信息表.工作日期) + '日' as 工作日期_,
教师信息表.职称, 教师信息表.职务, 教师信息表.学历,
教师信息表.学位, 教师信息表.工资, 教师信息表.照片,
教师信息表.教研室编号, 教师信息表.出生日期, 教师信息表.工作日期,
系部信息表视图.编号 as 系部编号, DATEDIFF(year, 教师信息表.出生日期,
GETDATE()) as 年龄
from 系部信息表视图 right outer join
教研室信息表 on 系部信息表视图.编号 = left(教研室信息表.编号, 4)
right outer join
教师信息表 on 教研室信息表.编号 = 教师信息表.教研室编号
go
create view 教师登录信息表
as
select 编号, 登录名, 姓名, 密码, left(教研室编号, 4) as 系部编号
from 教师信息表
go
-- 4.7 学生信息表视图
create view 学生信息表视图
as
select 学生信息表.学号, 学生信息表.姓名, 学生信息表.性别,
datename(yyyy, 学生信息表.出生日期) + '年' + datename(mm,
学生信息表.出生日期) + '月' as 出生年月, 学生信息表.出生日期,
专业信息表.名称 as 专业, 学生信息表.班级编号,
班级信息表.名称 as 班级, 班级信息表.年级, 学生信息表.身份证号,
学生信息表.民族, 学生信息表.籍贯, 学生信息表.家庭地址,
学生信息表.邮政编码, 学生信息表.联系电话, 学生信息表.政治面貌,
学生信息表.备注, 班级信息表.专业编号, 专业信息表.院系编号,
学生信息表.入学日期, 学生信息表.简历, 学生信息表.照片,
系部信息表视图.名称 as 系部, 系部信息表视图.学院简称 as 学院,
学生信息表.密码
from 专业信息表 inner join
班级信息表 on 专业信息表.编号 = 班级信息表.专业编号 inner join
系部信息表视图 on
专业信息表.院系编号 = 系部信息表视图.编号 right outer join
学生信息表 on 班级信息表.编号 = 学生信息表.班级编号
go
create view 学生登录信息表
as
select 学号, 姓名, 年级, 专业编号, 院系编号, 密码
from 学生信息表视图
go
-- 4.9 班级课程设置表视图
create view 班级课程设置表视图
as
select 班级课程设置表.id, 专业信息表.院系编号, 班级课程设置表.班级编号,
[系部信息表视图_1].学院简称, [系部信息表视图_1].名称 as 系部名称,
专业信息表.名称 as 专业名称, 班级信息表.名称 as 班级名称,
班级课程设置表.教师编号, 教师信息表.姓名 as 教师姓名,
班级课程设置表.课程编号, 课程信息表.名称 as 课程名称,
班级课程设置表.学年学期, 班级课程设置表.学时, 班级信息表.年级,
课程信息表.考试类型, 班级信息表.专业编号, 班级信息表.人数
from 专业信息表 inner join
班级信息表 on 专业信息表.编号 = 班级信息表.专业编号 inner join
系部信息表视图 [系部信息表视图_1] on
专业信息表.院系编号 = [系部信息表视图_1].编号 right outer join
班级课程设置表 left outer join
课程信息表 on 班级课程设置表.课程编号 = 课程信息表.编号 on
班级信息表.编号 = 班级课程设置表.班级编号 left outer join
学年学期表 on 班级课程设置表.学年学期 = 学年学期表.学年学期 AND
班级课程设置表.学年学期 = 学年学期表.学年学期 left outer join
教师信息表 on 班级课程设置表.教师编号 = 教师信息表.编号
go
-- 4.9 教学成绩表视图
create view 教学成绩表视图
as
select 教学成绩表.学号, 学生信息表视图.姓名, 教学成绩表.教师编号,
教师信息表.姓名 as 教师姓名, 教学成绩表.课程编号,
课程信息表.名称 as 课程名称, 教学成绩表.考试日期,
教学成绩表.学年学期, 教学成绩表.考试类别, 教学成绩表.成绩,
教学成绩表.分数, 课程信息表.考试类型 as 考试考查,
教学成绩表.考试考查类型, 教学成绩表.录入日期, 学生信息表视图.专业,
学生信息表视图.班级, 学生信息表视图.年级, 学生信息表视图.班级编号,
学生信息表视图.专业编号, 学生信息表视图.院系编号,
课程信息表.院系编号 as Expr1, 学生信息表视图.学院,
学生信息表视图.系部
from 教学成绩表 left outer join
学生信息表视图 on
教学成绩表.学号 = 学生信息表视图.学号 left outer join
教师信息表 on
教学成绩表.教师编号 = 教师信息表.编号 left outer join
课程信息表 on 教学成绩表.课程编号 = 课程信息表.编号
五六 数据库系统的实施
⑴1.数据库实现
数据库实现即数据库物理设计与实现。
⑵2.系统编程
① 编程语言
面向C/S结构的编程语言:Visual Basic、VisualFoxpro、VB.net等
② 功能菜单 :用VB设计
③ 输入界面 :用VB设计
④ 输出界面 :用VB设计
⑤ 数据处理
⑶3. 运行和维护
① 维护数据库的安全性与完整性。
② 监测并改善数据库的运行性能。
③ 及时发现并改正运行中的系统错误和不足。
七六 结束语
本次实训综合运用SOL SERVER数据库和VB程序设计,简单建立了“教学成绩管理系统的前台部分界面”。并且本次重点在于利用SOL SERVER数据库建立教学成绩管理系统的后台数据库。,此数据库建立过程分为:功能需求分析主要完成系统的实际需求分析; 功能设计主要完成系统总的组织结构图的绘制; 概念结构设计主要完成E-R图的绘制;逻辑结构设计主要完成表结构的设计; 物理结构设计主要在SOL SERVER中完成数据库和各种数据库对象的实际实现; 数据库系统的实施主要完成数据库系统的运行和维护。
本次实训能够成功的完成,多亏了组长的成功组织和各个成员的协同工作,同时也很感谢实训老师的指导。
参考文献
1.《数据库系统概论》 萨师煊、王珊 主编.高等教育出版社.20##年2月第三版。
2.《管理信息系统》 黄梯云 主编.高等教育出版社. 20##年
3.《SQLServer数据库管理与开发教程与实训》杜兆将等北京大学出版社 2006年1月第一版……
20##年9月3日