版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高校成绩管理系统数据库设计与实现班级 计科1201 班 学号 201226100105 姓名 何霞1、需求分析 计算机已经深入到日常工作和生活的方方面面,成为我们学习和工作的得力助手,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。随着越来越多的应用软件出现,人们对它的要求也越来越高;虽然现在世界上的各种软件层出不穷,但它们依然不能满足用户的各种特殊需要,所以人们仍是不得不开发适合特殊需求的软件。高校成绩管理系统记录了一个大学生成绩的系统,它的出现使得查询、更新、插入简单化,高效化,成本也随之大大减少。使用计算机对成绩信息的管理,具有手工管理所无法比拟的优点:信息存储及
2、时,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是高校成绩正规化管理的重要途径。 本软件控件均以中文形式表示,对普通程序使用者的查询提供简单方便的快捷操作,不需要技术含量。 以SQL SERVER数据库管理系统为平台,通过设计数据库概念模型、逻辑模型以及利用标准SQL语言的数据库实现,掌握关系数据库系统的设计与实现方法,增强数据库设计和数据库应用系统开发能力。 操作人员与维护人员应懂的SQL语言。运行环境: 硬件环境:高性能计算机一台 软件环境: Awindows系列 BMicrosoft SQL Server 2012 CM
3、yEclipse Professional1.1 数据需求描述 系统整体需求分析系统重要功能需要分析 成绩查询功能 教师授课信息查询功能 班级课程安排查询功能 1.2 系统功能需求 学生成绩按每学年进行成绩统计; (2)学生成绩名次排定,按升序排列; (3)每门课程平均成绩统计; (4) 学生所学课程及学分统计; (5) 输入每个学生成绩时,自动生成该学生已修总学分; (6) 学生成绩查询; (7) 教师任课查询; (8) 班级课程开设查询;系统功能图: 1.3 其他性能需求(1)可供多用户同时使用(2)用户输入出错时,有错误提示(3)安全性高(4)存储需求描述2、概念结构设计局部E-R图 全
4、局E-R图3、逻辑结构设计3.1 关系模式设计 教师(教师编号,教师姓名,教师性别,教师年龄,职称,联系 ) 上课(教师编号,班级编号) 授课(教师编号,课程编号) 课程(课程编号,课程名称,教师姓名,开课学期,学时,考试或考察, 学分) 学习(学号,课程编号,学期,课程名称,成绩教师姓名) 学生(学号,学生姓名,学生性别,学生年龄,生源所在地,已修学分总 数,班级编号) 开设(课程编号,班级编号) 班级(班级编号,班级名称,专业编号) 专业(专业编号,专业名称) 3.2 数据类型定义(1)Dept_Hx(学院信息)数据项名数据类型长度完整性约束学院编号(Dno_hx)char20主键,唯一,
5、非空学院名称(Dname_hx)char20(2)Teacheres_Hx(教师信息)数据项名数据类型长度完整性约束教师编号(Tno_hx)char10主键,唯一,非空教师姓名(Tname_hx)char20教师性别(Tsex_hx)char2教师年龄(Tage_hx)int职称(Tposi_hx)char20联系 (Ttele_hx)char20学院编号(Dno_hx)char20 (3)Major_Hx(专业信息)数据项名数据类型长度完整性约束专业编号(Mno_hx)char20主键,唯一,非空专业名称(Mname_hx)char20学院编号(Dno_hx)char20(4)Class_H
6、x(班级信息)数据项名数据类型长度完整性约束班级编号(CLno_hx)char20主键,唯一,非空班级名称(CLname_hx)char20 (5)Students_Hx(学生信息)数据项名数据类型长度完整性约束学号(Sno_hx)char12主键,唯一,非空学生姓名(Sname_hx)char20学生性别(Ssex_hx)char2学生年龄(Sage_hx)int生源所在地(Shome_hx)char20已修学分总数(ScreditAccess_hx) int班级编号(CLno_hx)char20外键(6)Course_Hx(课程信息)数据项名数据类型长度完整性约束课程编号(Cno_hx)c
7、har20主键,唯一,非空课程名称(Cname_hx)char20学时(Chour_hx)int0考试或考察(Cexam_hx)char4 学分(Ccredit_hx)char40(7) Teach_Hx(教师授课信息)数据项名数据类型长度完整性约束教师编号(Tno_hx)char20外键,唯一,非空课程编号(Cno_hx)char20外键 (8)Study_Hx(学生成绩信息)数据项名数据类型长度完整性约束学号(Sno_hx)char12外键,唯一,非空课程编号(Cno_hx)char20外键学期(STterm_hx)char10成绩(STgrade_hx)char10教师号(Tno_hx)
8、char10外键 (9)Setup_Hx(班级课程信息)数据项名数据类型长度完整性约束班级编号(CLno_hx)char20外键,唯一,非空课程编号(Cno_hx)char20外键 (9)3.3 关系模式的优化对关系模式进行规范化处理,对关系模式进行评价与修正4、物理结构设计4.1 聚簇设计 该高校成绩管理系统数据库可建立一下聚簇: Teachers_Hx(教师编号Tno_hx) Courses_Hx(课程编号Cno_hx) Students_Hx(学生学号Sno_hx,班级编号CLno_hx) Class_Hx(班级编号CLno_hx) 这几个聚簇设计是因为这几张表都是实体表,且聚簇中的属性
9、都是主键或是外键,被访问的概率很高,而其他表或者这些表上的其他属性被访问的概率就相对较低。4.2 索引设计 索引就是表中数据和相应存储位置的列表,使用索引可以大大减少数据的查询时间。 对于一个确定的关系,通常在下列情况下可以考虑建立索引。 (1) 在主键属性列和外键属性列上通常都可以分别建立索引,不仅有助于唯一 性检查和完整性检查,而且可以加快连接查询的速度。 (2) 以查询为主的关系可建立尽可能多的索引。 (3) 对等值连接,但满足条件的元组较少的查询可以考虑建立索引。 (4) 如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可以建 立索引。 该高校成绩管理系统数据库可建立以下索引
10、: Teachers_Hx(教师编号) Courses_Hx(课程编号) Students_Hx(学生学号,班级编号) Classes_Hx(班级编号) Study_Hx(学号,课程编号)4.3 分区设计 涉及到数据库文件和日志文件的分区问题。 磁盘分区设计的一般原则: (1) 减少访问冲突,提高I/O并发性。多个事物并发访问同一磁盘时,会产生 磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O可并发执行,从而提高数据库访问速度。 (2) 分散热点数据,均衡I/O负担。在数据库中数据访问的频率是不均匀的, 那些经常被访问的数据成为热点数据,此类数据宜分散存在于不同的磁盘
11、上,以均衡各个磁盘的负荷,充分发挥多磁盘的并行操作的优势。 (3) 保证关键数据快速访问,缓解系统瓶颈。在数据库中有些数据如数据字典 等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以将其存放在某一固定磁盘上,以保证其快速访问。 该成绩管理系统由于程序较小,所以不进行分区设计。5、数据库实施(全部操作都要在SQL Server 2000的查询分析器或SQL Server 2008的SSMS环境中用命令实现,并要求截图)比如:D01hexia数据库的建立:代码如下:use master gocreate database D01hexiaon (name=D01hexia_Data
12、,filename=F:SQLSQL数据库文件存储地点D01hexia_data.mdf,size=10,maxsize=50,filegrowth=5)LOG ON(name=D01hexia_Log,filename=F:SQLSQL数据库日志文件存储地点D01hexia_Log.ldf,size=5MB,maxsize=25MB,filegrowth=5MB)go5.1 基本表建立Dept_Hx数据项名数据类型长度完整性约束学院编号(Dno_hx)char20主键,唯一,非空学院名称(Dname_hx)char20SQL语句是:create table Dept_Hx( Dno_hx c
13、har(20) primary key, Dname_hx char(20) )SQL执行结果是:2)Teacheres_Hx数据项名数据类型长度完整性约束教师编号(Tno_hx)char10主键,唯一,非空教师姓名(Tname_hx)char20教师性别(Tsex_hx)char2教师年龄(Tage_hx)int职称(Tposi_hx)char20联系 (Ttele_hx)char20学院编号(Dno_hx)char20SQL语句是:create table Teachers_Hx(Tno_hx char(10) primary key not null,Tname_hx char(20),
14、Tsex_hx char(2),Tage_hx int,Tposi_hx char(20),Ttele_hx char(20),Dno_hx char(20),constraint Dept_Teachers foreign key(Dno_hx) references Dept_Hx,)SQL执行结果是:3)Major_Hx数据项名数据类型长度完整性约束专业编号(Mno_hx)char20主键,唯一,非空专业名称(Mname_hx)char20学院编号(Dno_hx)char20外键SQL语句是:create table Major_Hx(Mno_hx char(20) primary ke
15、y,Mname_hx char(20),Dno_hx char(20),constraint Dept_Major foreign key(Dno_hx) references Dept_Hx)SQL执行结果为:4)Class_Hx数据项名数据类型长度完整性约束班级编号(CLno_hx)char20主键,唯一,非空班级名称(CLname_hx)char20专业编号(Mno_hx)char20外键SQL语句是:create table Class_Hx(CLno_hx char(20) primary key,CLname char(20),Mno_hx char(20),constraint
16、Major_Class foreign key(Mno_hx) references Major_Hx)SQL执行结果是:5)Students_Hx数据项名数据类型长度完整性约束学号(Sno_hx)char12主键,唯一,非空学生姓名(Sname_hx)char20学生性别(Ssex_hx)char2学生年龄(Sage_hx)int生源所在地(Shome_hx)char20已修学分总数(ScreditAccess_hx) int班级编号(CLno_hx)char20外键SQL语句是:create table Students_Hx(Sno_hx char(12) primary key ,Sn
17、ame_hx char(20),Ssex_hx char(2),Sage_hx int,Shome_hx char(20),ScreditAccess_hx int,CLno_hx char(20),constraint Class_Students foreign key(CLno_hx) references Class_Hx)SQL执行结果是:6)Course_Hx数据项名数据类型长度完整性约束课程编号(Cno_hx)char20主键,唯一,非空课程名称(Cname_hx)char20学时(Chour_hx)int0考试或考察(Cexam_hx)char4 学分(Ccredit_hx)i
18、nt0SQL语句是:create table Courses_Hx(Cno_hx char(20) primary key,Cname_hx char(20),Chour_hx int,Cexam_hx char(4),Ccredit_hx int,check(Chour_hx0 and Ccredit_hx0)SQL执行结果是:Teach_Hx数据项名数据类型长度完整性约束教师编号(Tno_hx)char10外键,唯一,非空课程编号(Cno_hx)char20外键SQL语句:create table Teach_Hx(Tno_hx char(10),Cno_hx char(20),prima
19、ry key(Tno_hx,Cno_hx),constraint Teacher_Teach foreign key(Tno_hx) references Teachers_Hx,constraint Courses_Teach foreign key(Cno_hx) references Courses_Hx)SQL执行结果:Study_Hx数据项名数据类型长度完整性约束学号(Sno_hx)char12外键,唯一,非空课程编号(Cno_hx)char20外键学期(STterm_hx)char20成绩(STgrade_hx)char10教师号(Tno_hx)char10外键SQL语句为:cre
20、ate table Study_Hx(Sno_hx char(12),Cno_hx char(20),STterm_hx char(10),STgrade_hx char(10),Tno_hx char(10),Primary key(Sno_hx,Cno_hx,Tno_hx),constraint Students_Study foreign key(Sno_hx) references Students_Hx,constraint Courses_Study foreign key(Cno_hx) references Courses_Hx,constraint Teachers_Stud
21、y foreign key(Tno_hx) references Teachers_hx)SQL执行结果为:Setup_Hx数据项名数据类型长度完整性约束班级编号(CLno_hx)char20外键,唯一,非空课程编号(Cno_hx)char20外键SQL语句为:create table Setup_Hx(CLno_hx char(20),Cno_hx char(20),constraint CLass_Setup foreign key(CLno_hx) references CLass_Hx,constraint Courses_Setup foreign key(Cno_hx) refer
22、ences Courses_Hx)SQL执行结果为: 添加数据 SQL语句为:insert into Students_Hxvalues(201226100120,孙燕姿,女,34,新加坡,78,CL01)执行结果:基本表的变化情况为:如图可知基本表Students_Hx中已经添加进学生孙燕姿的个人信息。SQL代码如下:select *from Students_HxSQL代码执行如下:SQL语句:delete fromStudents_Hxwhere Sno_hx=201226100120select *from Students_Hx执行结果如下:SQL语句为:select Cname_h
23、x,avg(STgrade_hx) 平均成绩from Study_hx A,Courses_Hx B,Students_Hx Cwhere A.Sno_hx=C.Sno_hx and A.Cno_hx=B.Cno_hx and CLno_hx=CL01group by (B.Cname_hx)执行结果:视图的建立学生成绩统计SQL语句:create view Grade_View(学号,姓名,班级,课程名称,学期,成绩,教师)as select A.Sno_hx,Sname_hx,CLname,Cname_hx,STterm_hx,STgrade_hx,Tname_hxfrom Student
24、s_hx A,Study_Hx B,Teachers_hx C,Courses_Hx D,Class_Hx Ewhere A.Sno_hx=B.Sno_hx and B.Tno_hx=C.Tno_hx and B.Cno_hx=D.Cno_hx and A.CLno_hx=E.CLno_hxSQL执行结果:教师管理学生信息视图SQL语句为:create view 课程选课信息(学生,班级,专业,课程,学分,学期,成绩)asselect Sname_hx,CLname,Mname_hx,Cname_hx,Ccredit_hx,STterm_hx,STgrade_hx from Students_
25、Hx A,Class_Hx B,Courses_Hx C,Study_Hx D,Major_Hx E,Teachers_Hx Fwhere A.Sno_hx=D.Sno_hx and A.CLno_hx=B.CLno_hx and C.Cno_hx=D.Cno_hx and B.Mno_hx=E.Mno_hx and D.Tno_hx=F.Tno_hx and Tname_hx=钱能执行结果如下:学生已修学分统计SQL语句是:create view 学生已修学分信息(学号,姓名,已修学分)asselect A.Sno_hx,A.Sname_hx,sum(C.Ccredit_hx)from St
26、udents_Hx A,Study_Hx B,Courses_Hx Cwhere A.Sno_hx=B.Sno_hx and B.Cno_hx=C.Cno_hxgroup by A.Sno_hx,A.Sname_hxSQL执行结果为:班级学生各课程平均成绩SQL语句:create view 班级学生各课程平均成绩(班级,专业,课程,学分,平均成绩)as select A.CLname,B.Mname_hx,C.Cname_hx,C.Ccredit_hx,avg(D.STgrade_hx) 班级平均成绩from Class_hx A,Major_Hx B,Courses_Hx C,Study_H
27、x D,Students_Hx E,Setup_Hx Fwhere A.CLno_hx=E.CLno_hx and A.Mno_hx=B.Mno_hx and A.CLno_hx=F.CLno_hx andF.Cno_hx=C.Cno_hx and D.Sno_hx=E.Sno_hx and C.Cno_hx=D.Cno_hx group by A.CLname ,B.Mname_hx,Cname_hx,C.Ccredit_hx执行结果:5.4 索引的建立 因为每一个表建立,SSMS会自动生成一个聚集索引,所以不需要再手动建立聚集索引。 教师编号create index Teacher on
28、Teachers_Hx(Tno_Hx)执行结果如下:学生学号create index Student on Students_Hx(Sno_hx)执行结果:课程编号create index Course on Courses_Hx(Cno_hx)执行结果:班级编号create index Class on Class_Hx(CLno_hx)专业编号create index Major on Major_Hx(Mno_hx)学生班级索引create index Students_Class on Students_Hx(Sno_hx,CLno_hx)学生成绩索引create index Stud
29、ents_Grade on Study_Hx(Sno_hx,Cno_hx,STgrade_hx desc)5.5触发器建立 当删除教师表Teachers_Hx中的教师编号记录时,需要相应地删除授课表Teach_Hx和成绩表Study_Hx里的教师编号,所以在教师表Teachers上建立触发器SQL语句是:create trigger hx_delete_Tnoon Teachers_Hxfor deleteasdelete Tno_hxwhere Teach_Hx.Tno_hx=(select Tno_hx from deleted)and Study_Hx.Tno_hx=(select Tn
30、o_hx from deleted)SQL执行结果是:当更新教师表Teachers_Hx中的教师编号记录时,需要相应地更新授课表Teach_Hx和成绩表Study_hx里的教师编号,所以在教师表Teachers_Hx上建立触发器 SQL语句是:create trigger UPDATE_Teachers_TnoON Teachers_Hxfor update as if update (Tno_hx) begin update Teach_Hx set Tno_hx = i.Tno_hx from deleted d,inserted i ,Teachers_Hx k where k.Tno_
31、hx=d.Tno_hxendbegin update Study_Hx set Tno_hx = i.Tno_hx from deleted d,inserted i ,Study_Hx c where c.Tno_hx=d.Tno_hxEndSQL执行结果是:当在成绩Study_Hx表中插入成绩的时候,需要同时更新学生Students_Hx表中学生已修学分ScreditAccess_hx,所以在Study_Hx表上建立一个触发器SQL代码如下:create trigger Insert_Grade on Study_Hxfor insertasbegin update Students_Hx
32、 set ScreditAccess_hx+=(select Ccredit_hx from Courses_Hx,inserted i WHERE Courses_Hx.Cno_hx=i.Cno_hx)end5.6 建存储过程建立一个对学生表插入信息的存储过程SQL语句:create procedure Hx_学生表插入信息sno char(12), sname char(20), ssex char(2), sage int, shome char(20), screditaccess int, sclo char(20) as insert Students_Hx(Sno_hx, Sna
33、me_hx, Ssex_hx,Sage_hx,Shome_hx,ScreditAccess_hx,CLno_hx) values(sno,sname,ssex,sage,shome,screditaccess,sclo) SELECT * FROM Students_Hx GoSQL执行结果:建立一个输入成绩,自动生成其总学分的存储过程:SQL语句:create procedure Hx_输入成绩自动生成学分sno char(20), cno char(12), cname char(20), term char(10), grade int, tno char(10),credit int
34、as begin insert into Study_Hx values( sno,cno,term,grade,tno) update Students_Hx set Students_Hx.ScreditAccess_hx= Students_Hx.ScreditAccess_hx + credit where Students_Hx.Sno_hx=snoendSQL执行结果:6、应用系统开发与试运行6.1 开发平台和开发环境介绍。本次实验采取的开发平台为 MyEclipse 2013,MyEclipse企业级工作平台(HYPERLINK :/baike.baidu /view/42723
35、.htmMyEclipseEnterprise Workbench ,简称HYPERLINK :/baike.baidu /view/42723.htmMyEclipse)是对HYPERLINK :/baike.baidu /view/23576.htmEclipseIDE的扩展,利用它我们可以在HYPERLINK :/baike.baidu /view/1088.htm数据库和JavaEE的开发、发布以及HYPERLINK :/baike.baidu /view/330120.htm应用程序HYPERLINK :/baike.baidu /view/133203.htm服务器的整合方面极大的
36、提高工作效率。它是功能丰富的JavaEEHYPERLINK :/baike.baidu /view/14867.htm集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HYPERLINK :/baike.baidu /view/692.htmHTML,Struts,JSP,HYPERLINK :/baike.baidu /view/15916.htmCSS,HYPERLINK :/baike.baidu /view/16168.htmJavascript,Spring,SQL,HYPERLINK :/baike.baidu /view/7291.htmHibernate1 。MyE
37、clipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。1 开发 开发平台系统功能模块演示窗口6.2 前台界面与后台数据库连接说明,代码实现。在做Myeclipse与SQL server连接之前,需要下载一个与Myeclips
38、e 中JDK版本相匹配的JDBC驱动软件,且将相关的库压缩包加载到在Myeclipse建立的项目文件夹中。所有的配置完成以后,就需要用myeclipse编译器编译JDBC驱动检测以及JDBC与SQL server连接是否成功的java代码代码具体如下;import java.sql.*;public class JDBC public static Connection con=null; private final String url=jdbc:sqlserver:/; private final String severName=STONE-PCSQLEXPRESS; /数据服务器名称 private final String portNumber=1433; private final String DatabaseName=Hex_Students_Mis; private final String UserName=何霞; private final String PassWord=182828; private final String selectMethod=cursor; public Connection getConnection()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 连带责任担保借款合同范本
- 2025关于土地转让合同范本
- 定制家具合同
- 知识产权许可使用及转让合同范本
- 2025合同模板货车转让合同合同范本
- 羽绒服购销合同
- 独家代理销售协议合同范本
- 户外广告招牌合同协议书
- 2025年冀教新版高三英语上册阶段测试试卷
- 2025年西师新版八年级历史下册阶段测试试卷
- 4-熔化焊与热切割作业基础知识(一)
- 2023年200MW储能电站储能系统设计方案
- 个人安全与社会责任的基本知识概述
- 建筑装饰工程计量与计价试题一及答案
- 简易劳务合同电子版
- 明代文学绪论
- 通用税务自查情况说明报告(7篇)
- 体育赛事的策划、组织与实施 体育赛事利益相关者
- 分析化学(高职)PPT完整版全套教学课件
- 晚熟的人(莫言诺奖后首部作品)
- m拱顶储罐设计计算书
评论
0/150
提交评论