湖南工业大学
课 程 设 计
资 料 袋
计算机与通信学院 学院(系、部) 2014 ~ 2015 学年第 1 学期
课程名称 大型数据库 指导教师 满君丰 职称 教授 学生姓名 祝丹 专业班级 计算机1102 学号 11408100213
题 目 图书馆管理系统
成 绩 起止日期 2014 年 11 月 22日~ 2014 年 11 月 29 日
目 录 清 单
课程设计任务书
2014—2015学年第 1 学期
学院(系、部) 计算机与通信学院 专业 计算机科学与技术 班级 1102
课程名称: 大型数据库 学生姓名: 祝丹
设计题目: 图书馆管理系统 指导教师: 满君丰
完成期限:自 2014 年 11 月 22 日至 2014 年 11 月 29 日共 1 周
指导教师(签字): 年 月 日系(教研室)主任(签字): 年 月 日
大型数据库应用课程设计
设计说明书
起止日期: 2014 年 12月 22日 至 2014 年 12月 29 日
计算机与通信学院
2014年 12月29日
目 录
第一章 系统概述 3
1.1系统背景 3
1.2 可行性研究 3
第二章 需求分析 3
2.1 运行环境: 3
2.2数据需求 4
第三章 软件设计 5
3.1 总体设计 5
第四章 系统实现 6
4.1 数据库实现 6
4.2 代码实现 8
第五章 心得体会 11
第六章 参考文献(资料) 12
第七章 致谢 12
学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,但是几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。这种管理方式存在着许多缺点,如:效率低、保密性差,另外所用其时间长,产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。如今学校的学生越来越多,成绩管理的工作量越来越大,手工管理成绩的弊端也越来越明显。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率。所以我想借本次课程设计之际,设计一个简易的学生成绩管理系统。
1.技术条件方面的可能性
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要等。学生成绩管理系统的工作主要是在学生和学校之间架起一座桥梁,能相互沟通信息和处理信息。
2.使用方面的可行性
从社会效益上看,随着技术的发展,采用软件管理学生成绩工作,毫无疑问会在使用过程中产生新的需求和问题,这样也会不断地促进信息技术和软件应用的革新。经过研究,此系统的用户无使用方面的问题。
操作系统:Windows XP,Windows 7 ;数据库:Oracle 10g
学生属性E-R图
课程属性E-R图
照片属性E-R图 成绩属性E-R图
1. 数据库设计
1、 XSB表的设计
2、 XSZP表
3、 KCB表
4、 CJB表
4.1 数据库实现
课程表的实现:
学生照片表的实现:
成绩表的实现:
学生表的实现:
查询课程表的界面:
查询学生表界面:
查询成绩表界面:
(1)创建数据库YYGL
CREATE DATABASE YGGL
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMEBERS 5
MAXDATAFILES 100
DATAFILE 'F:\app\oracle\oradata\yggl\system01.dbf'
SIZE 325M reuse AUTOEXTEN ON NEXT 1024K
MAXSIZE UNLIMTED
CHARACTER SET ZHS 16GBK
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('F:\app\oracle\oradata\yggl\redo01.log') SIZE 100M,
GROUP 2 ('F:\app\oracle\oradata\yggl\redo02.log') size 100M,
GROUP 3 ('F:\app\oracle\oradata\yggl\redo03.log') size 100M
DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE 'F:\app\oracle\oradata\yggl\temp01.dpf'
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M
UNDO TABLESPACE UNDO_TS DATAFIL'F:\app\oracle\oradata\yggl\temp01.dbf'
SIZE 150M REUSE AUTOEXTEND ON NEXT 10240K
MAXSIZE UNLIMITED;
(2)创建学生表
CREATE TABLE XSB
(
XH char(6) NOT NULL
PRIMARY KEY,
XM char(8) NOT NULL,
XB char(2) DEFAULT'1' NOT NULL,
CSSJ date NOT NULL,
ZY char(12) NULL,
ZXF number(2) NULL,
BZ varchar2(200) NULL
);
(3)创建学生照片表
CREATE TABLE XSZP
(
XH char(6) NOT NULL
PRIMARY KEY,
ZP blob NULL
);
(4)创建课程表
CREATE TABLE KCB
(
KCH char(3) NOT NULL
PRIMARY KEY,
KCM char(16) NOT NULL,
KKXQ number(1) NULL,
XS number(2) NULL,
XF number(1) NOT NULL
);
(5)创建成绩表
CREATE TABLE CJB
(
XH char(6) NOT NULL,
KCH char(3) NOT NULL,
CJ number(2) NULL,
PRIMARY KEY(XH,KCH)
);
(6)创建视图
CREATE VIEW XS_KC_CJ
AS
SELECT XSB.XH,XSB.XM,XSB.ZY,KCB.KCH,KCB.KCM,CJB.CJ
FROM XSB CROSS JOIN KCB
LEFT OUTER JOIN CJB ON CJB.XH=XSB.XH AND CJB.KCH=KCB.KCH;
(7)创建触发器
CREATE OR REPLACE TRIGGER xs_delete
AFTER DELETE ON XSB FOR EACH ROW
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
DELETE FROM CJB WHERE XH=:OLD.XH;
DELETE FROM XSZP WHERE XH=:OLD.XH;
COMMIT;
END;
(8)创建存储过程
CREATE OR REPLACE PROCEDURE CJ_Data
(in_xh IN char,in_kch IN char,in_cj IN number)
AS
in_count number;
in_xf number:=0;
in_cjb_cj number:=0;
BEGIN
SELECT XF INTO in_xf FROM KCB WHERE KCH=in_kch;
SELECT COUNT(*) INTO in_count FROM CJB WHERE XH=in_xh AND KCH=in_kch;
IF in_count>0 THEN
SELECT CJ INTO in_cjb_cj FROM CJB WHERE XH=in_xh AND KCH=in_kch;
DELETE FROM CJB WHERE XH=in_xh AND KCH=in_kch;
IF in_cjb_cj>=60 THEN UPDATE XSB SET ZXF=ZXF-in_xf
WHERE XH=in_xh;
END IF;
END IF;
IF in_cj<>-1 THEN
INSERT INTO CJB VALUES
(in_xh,in_kch,in_cj);
IF in_cj>=60 THEN
UPDATE XSB SET ZXF=ZXF+in_xf
WHERE XH=in_xh;
END IF;
END IF;
COMMIT;
END;
BEGIN
CJ_Data('101101','101',50);
END;
经过这个学期的数据库学习,让我对oracle有了更深层次的理解。
这次设计是一个漫长而又艰苦的过程,也可说是有苦有乐!通过设计让我学到不少:理论是要与实际相结合,只有可以将一条条的理论化为自己所能拥有的经验才是有用的!同时这次设计也让我改变了我以前的一些错误观点:以前我认为一个系统设计中最重要的是程序编码,因为只有程序编码才能实现程序的功能,其他的并不重要。但是通过这次设计,让我知道每一步都是很重要的。
此次实验实现了图书管理系统的用户,借书还书等些功能。
以前总是简单的用数据库建表,存储一些数据而已。但这次通过对数据库的更深入的学习了解,数据库的功能远远不只这些,在我的数据库里面就采用了数据库的存储过程,然后在前台直接调用存储过程,不但使用方便,安全性也更高。
因为时间关系,该系统制作比较匆忙,因此有些功能还不够完善,还有很多地方考虑不周,在以后的日子里,我会一边学习,一边再思考,争取把设计的系统做到更加完善。
[1] 《Oracle 10g 数据库管理与应用系统开发》 马晓玉 清华大学出版
[2] 《Oracle数据库管理与应用教程》 丛书编委会 中国电力出版社
[3] 《软件工程导论(第五版)》 张海藩 清华大学出版社
[4] 《实用Java网络编程技术》 刘永华 余春华编 中国电力出版社
[5] 《Java程序设计标准教程》 邱加永 人民邮电出版社
[6] 《Oracle实用教程》 电子工业出版社
[7] 《ASP实用教程》 清华大学出版社
首先感谢我的指导老师,他在我的毕业设计过程中给了指导性的方案和架构,指引我阅读相关的资料和书籍,使我能学习掌握知识并完成了课程设计。
感谢母校对我的培育,让我从思想上、素质上和知识上得到很大的提高。在校学习的过程中程老师的悉心教导让我掌握了更多的知识,对提高我的知识面有很大的帮助。
最后要感谢我的同学在设计完成前后对我的帮助,没有同学的共同学习进步也许就没法完成设计,没有同学的帮助,也许一些潜在的错误难以得到更正,在此一并表示感谢。
在此祝愿学校领导、老师、同学工作顺利事业更上一层楼同时也祝愿学校更加辉煌
本文来源:https://www.2haoxitong.net/k/doc/38898168f61fb7360b4c65e9.html
文档为doc格式