Oracle数据库课程设计报告.docx
《Oracle数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《Oracle数据库课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
![Oracle数据库课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-5/29/ddfa6eae-b60c-43ed-a0ad-6e31f903e8bf/ddfa6eae-b60c-43ed-a0ad-6e31f903e8bf1.gif)
Oracle数据库课程设计报告
Oracle数据库课程设计报告
LT
8
综合应用能力评价
综合评定等级
课程设计(论文)评阅意见
评阅人 职称
20年月日
目 录
第1章引言
1.设计目的
使用VC,C++,C#等作为前台开发工具,使用Oracle作为后台数据库,所设计的管理系统应包含输入输出、查询、插入、修改、删除等基本功能。
根据题目的基本需求,设计系统界面、数据库、编写程序(Oracle),并写出课程设计报告
1、阅读资料:
每个人必须提前阅读教材有关Oracle、VC、C++、C#应用方面的内容以及其它相关书籍。
2、需求分析:
题目要求达到的功能,所提供的原始数据,需要输出的数据及样式等。
3、数据库的设计:
根据要求设计数据库的结构,包括:
表、数据完整性、关系、视图。
4、数据库的安全性设计:
登录用户、数据库用户、数据库角色、命令许可等方面
涉及到数据的所有操作要求采用存储过程的方式进行。
2.设计要求
1.选好题目:
先分组,每组两个人(或单独完成),必须确保每题有两组人员选做,班长将本班同学的选题情况汇总后于16周之前交。
2.独立思考,独立完成:
课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝,否则不管是抄袭还是被抄袭,雷同的全部直接评定为不及格。
3.做好上机准备:
每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
4.根据编程实现的结果,按课程设计报告的撰写规范完成数据库系统课程设计报告(课程设计报告中必须有相关原理分析、程序设计、程序实现和程序调试等内容);课程设计报告的具体要求如下:
1)课设报告按照规定用A4纸张进行排版打印,否则要求返工;
2)课设报告的内容顺序如下:
封面—任务书—中文摘要—目录—正文—附录;
3)正文不少于4000字,正文部分至少包含以下内容,并可大致作如下安排1.引言(包括设计目的、要求、设计环境、同组人员及分工等内容)
2.概要设计(含系统需求分析、系统结构设计和功能模块设计等内容)
3.详细设计(含系统数据库设计、系统主要功能模块设计(可用流程图表示)和各模块的主要算法对应的原代码(详细)等内容)
4.调试与运行结果及存在的主要问题(包括调试、运行和存在的问题)
5.课程设计小结(或总结)(对此课程设计所做的工作内容进行总结,并提出系统还可以进行改进的地方)
3.设计环境
1.Windows7旗舰版32位
2.MicrosoftVisualStudio2005
3.Oracle11g
第2章概要设计
2.1系统需求分析
图书管理系统主要是用oracle数据库进行逻辑处理,实现对图书信息的增删改查,以及出库入库的管理。
2.2系统结构设计
图2.2.图书E-R图
2.3系统功能模块
图2.4系统功能模块图
第3章数据库分析
3.1数据库总体设计
数据库设计是图书管理系统的重要组成部分。
建立良好的数据库结构和文件组织形式,能够使系统快速、准确的获得所需信息。
这里采用oracle数据库。
该数据库对进行增、删、改、查、显示都极为方便。
能为系统提供良好的数据支持。
根据系统的详细分析和和总体的需求分析,将为各个不同模块详细设计数据结构。
3.2数据表设计
用户表(yonghu)
字段名
字段
数据类型
主键
索引
值
说明
eno
用户ID
number
Yes
ename
用户名
varchar2(10)
图书类别表(typ)
字段名
字段
数据类型
主键
索引
值
说明
TID
类别编号
varchar2(10)
Yes
TypeName
类别名称
varchar2(10)
图书表(books)
字段名
字段
数据类型
主键
索引
值
说明
ISBN
图书编号
varchar2(20)
Yes
BookName
名称
varchar2(40)
TID
类别编号
varchar2(10)
RetailPrice
零售价
varchar2(10)
Author
作者
varchar2(20)
Publish
出版社
varchar2(20)
StockMin
库存下限
number
StockMax
库存上限
number
Descriptions
描述
varchar2(100)
入库表(InWarehouseitems)
字段名
字段
数据类型
主键
索引
值
说明
ISBN
图书编号
varchar2(20)
Yes
BookName
名称
varchar2(40)
RetailPrice
零售价
varchar2(10)
shuliang
入库数量
Number
库存表(stock)
字段名
字段
数据类型
主键
索引
值
说明
ISBN
图书编号
varchar2(20)
StockNum
库存量
Number
3.3数据库的创建
1.创建表空间及用户
创建表空间:
createtablespacetushudatafile'E:
\biaokongjian\tushu.dbf'size32Mautoextendonnext32mmaxsize2048mextentmanagementlocal;
创建用户:
createuserwsnidentifiedby1234defaulttablespacetushu;
2.创建数据表
用户表:
createtableyonghu---用户表
(
enonumberprimarykey,--用户编号
enamevarchar2(10)----用户名
);
图书类别表
createtabletyp--图书类别表
(
TIDvarchar2(10)primarykey,--类别编号
TypeNamevarchar2(20)notnull--类别名称
);
图书表
createtablebooks--图书表
(
ISBNvarchar2(20)primarykey,--图书编号
BookNamevarchar2(40)notnull,--名称
TIDvarchar2(10),foreignkey(TID)referencestyp(TID),--类别编号
RetailPricevarchar2(10)notnull,--零售价
Authorvarchar2(20),--作者
Publishvarchar2(30),--出版
StockMinnumbernotnull,--库存下限
StockMaxnumbernotnull,--库存上限
Descriptionsvarchar2(100)--描述
);
入库表
createtableInWarehouseitems--入库表
(
ISBNvarchar2(20),foreignkey(ISBN)referencesbooks(ISBN),--ISBN
BookNamevarchar2(40)notnull,--名称
RetailPricevarchar2(10)notnull,--零售价
shuliangnumber--入库数量
);
库存表
createtablestock--库存表
(
ISBNvarchar2(20),foreignkey(ISBN)referencesbooks(ISBN),--商品编号
StockNumnumber--库存数量
);
创建视图:
图书查询视图
createviewbookviewasselectisbn,bookname,author,publish,retailpricefrombooks;
3.4存储过程和触发器
主要存储过程及触发器:
用户登录的存储过程
createorreplaceproceduredenglu(flagoutnumber,usernamevarchar2,upwdnumber)---登录
as
ivarchar2(20);
pnumber;
begin
flag:
=0;
selectt.enameintoifromscott.yonghutwheret.ename=username;
ifiisnotnullthen
flag:
=1;
selectt.enointopfromscott.yonghutwheret.ename=usernameandt.eno=upwd;
ifupwdisnotnullthen
flag:
=2;----登录成功
else
flag:
=1;-----密码不正确
endif;
else
flag:
=0;------用户不存在
endif;
commit;
exceptionwhenno_data_foundthen
rollback;
end;
入库的存储过程:
createorreplaceprocedurerk(isbvarchar2,bnamevarchar2,rpvarchar2,slnumber)------入库
as
inumber;
begin
selectcount(*)intoifrominwarehouseitemswhereisbn=isb;
if(i<>0)then
updateinwarehouseitemssetshuliang=shuliang+slwhereisbn=isb;
else
insertintoinwarehouseitemsvalues(isb,bname,rp,sl);
endif;
end;
触发器:
createorreplacetriggercharu
afterinsertorupdateonInWarehouseitems
REFERENCINGOLDASOLDNEWASNEW
FOREACHROW
declare
n_countnumber(4);
begin
ifupdatingorinsertingTHEN
selectcount(*)inton_countfromstockwhereISBN=:
new.ISBN;
ifn_count>0then
updatestocksetStockNum=StockNum+:
NEW.shuliangwhereISBN=:
NEW.ISBN;
else
insertintostock(ISBN,StockNum)values(:
NEW.ISBN,:
NEW.shuliang);
endif;
endif;
end;
第4章详细设计及测试
4.1系统界面
1.登入界面
图4-1登入界面图
2.图书管理界面
图4-2图书管理界面图
3.入库界面
图4-3入库界面图
4.库存界面
图4-4库存界面图
4.2主要代码设计
配置文件:
xmlversion="1.0"encoding="utf-8"?
>
ll;
数据库连接
classdatabase
{
staticOracleConnectioncon=newOracleConnection();
publicstaticOracleConnectionGetOpen()
{
try
{
if(con.State==ConnectionState.Closed)
{
con.ConnectionString=ConfigurationSettings.AppSettings["ConStr"].ToString();
con.Open();
}
returncon;
}
catch(Exceptionee)
{
returnnull;
}
}
publicstaticvoidGetClose()
{
if(con.State==ConnectionState.Open)
{
con.Close();
}
}
}
底层功能实现:
publicDataTabless()//查询数据库kucunview视图,返回结果集存放在dt中
{
try
{
OracleDataAdapteroda=newOracleDataAdapter();
stringsql="select*fromstockorderbyISBN";
OracleCommandcmd=newOracleCommand(sql,database.GetOpen());
oda.SelectCommand=cmd;
oda.Fill(dt);
returndt;
}
catch(Exceptioneee)
{
returnnull;
}
finally
{
database.GetClose();
}
}
publicvoidse()//将dt里存放的结果显示在listview中
{
listView1.Items.Clear();
DataTabledt=ss();
foreach(DataRowdrindt.Rows)
{
ListViewItemitem=newListViewItem(dr[0].ToString());
item.SubItems.Add(dr[1].ToString());
this.listView1.Items.Add(item);
}
dt.Clear();
}
4.3功能整体链接测试
总体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单一功能,将测试完的功能加入系统中,进行一次系统测试,依次类推将所有功能加入系统中,在具体测试时,采用自顶向下的结合方式,从主控功能开始,沿各控制层向下移动,逐渐把所有功能结合了。
在测试过程中使用到调试技术:
1、采用debug调试语句,跟踪数据;
2、嵌入打印语句,输出中间结果;
3、设置断点,观察程序在断点附近的状况。
评估运行的可靠性问题:
1、结果正确;
2、运行速度;
3、空间利用率;
4、算法的可行性。
测试时发现问题及时修正,如没有问题,则设计完成。
第5章课程设计心得
经过一个星期的设计和开发,对图书管理系统基本开发完毕。
图书管理系统需求包括注册、管理员、用户信息、图书信息、借阅信息进行创建。
通过不断地对程序及各模块进行修改、编译、调试、运行。
以及应用了Oracle11g语言,对数据库的创建、修改、删除,我深刻意识到设计的系统必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程。
才能做好符合市场需求的系统。
很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。
但是不管做什么,我们都要相信自己,不能畏惧,不能怕遇到困难,什么都需要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来它并没有你以前觉得的那样。
通过这次课程设计真切地体会到课程设计的目的并仅仅是自己单纯任务的完成,而在于重新巩固已学过的知识,从而获得新的知识。
设计进行的非常艰难,编码非常不容易,才发现做一个项目最重要的不在于如何实现,而是实现之前的需求分析和模块设计。
创新很难,有些流行的系统其实现并不难,难的在于对市场的分析和准确定位。
设计,是一个任重道远的过程,需要我么不断的学习和创新。
参考文献(资料)
[1]谢希仁.计算机网络(第五版)[M].北京:
电子工业出版社,2008年2月
[2]胡小强计算机网络[M]北京:
北京邮电大学出版社2005年1月
[3]崔巍王晓敏.数据库系统开发教程[M].北京:
清华大学出版社,2010年6月
[4]俞俊甫.数据库原理应用教程[M].北京:
北京邮电大学出版社2010年7月
[5]张凤荔王瑛Oracle11g数据库基础教程[M].人民邮电出版社2012年9月
致谢
感谢华东交通大学理工学院的各位领导,感谢我的老师给我们这次学习课程设计的机会,让我们更加深入的了解和学习了数据库系统的开发,同时也感谢我的同学给我无私的帮助,只有相互之间密切配合在能更好的完成和丰富课设内容。
在这里特此表示感谢。