Oracle数据库课程设计报告(共21页).doc
精选优质文档-倾情为你奉上存档资料 成绩: 华东交通大学理工学院课 程 设 计 报 告 书所属课程名称 Oracle 11g数据库基础教程 题 目 图书管理系统 分 院 电 信 分 院 专业班级 电子商务1班 学号 123 学生姓名 何芳林 指导教师 付 念 2013 年 12 月 20 日 专心-专注-专业序号项 目等级优秀良好中等及格不及格1课程设计态度评价2出勤情况评价3任务难度评价4工作量饱满评价5任务难度评价6设计中创新性评价7论文书写规范化评价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.Microsoft Visual Studio 20053.Oracle 11g第2章 概要设计2.1系统需求分析图书管理系统主要是用oracle数据库进行逻辑处理,实现对图书信息的增删改查,以及出库入库的管理。2.2系统结构设计存储量提供电话地址仓库供应商图书图书类别名称编号存储分类提供图2.2. 图书E-R图2.3系统功能模块登入界面图书管理图书出入库查询图书新增图书修改图书删除图书图书入库图书出库图2.4 系统功能模块图第3章 数据库分析3.1 数据库总体设计数据库设计是图书管理系统的重要组成部分。建立良好的数据库结构和文件组织形式,能够使系统快速、准确的获得所需信息。这里采用oracle 数据库。该数据库对进行增、删、改、查、显示都极为方便。能为系统提供良好的数据支持。根据系统的详细分析和和总体的需求分析,将为各个不同模块详细设计数据结构。3.2 数据表设计用户表(yonghu)字段名字段数据类型主键索引值说明eno用户IDnumberYesename用户名varchar2(10)图书类别表(typ)字段名字段数据类型主键索引值说明TID类别编号varchar2(10)YesTypeName类别名称varchar2(10)图书表(books)字段名字段数据类型主键索引值说明ISBN图书编号varchar2(20)YesBookName名称varchar2(40)TID类别编号varchar2(10)RetailPrice零售价varchar2(10)Author作者varchar2(20)Publish出版社varchar2(20)StockMin库存下限numberStockMax库存上限numberDescriptions描述varchar2(100)入库表(InWarehouseitems)字段名字段数据类型主键索引值说明ISBN图书编号varchar2(20)YesBookName名称varchar2(40)RetailPrice零售价varchar2(10)shuliang入库数量Number库存表(stock)字段名字段数据类型主键索引值说明ISBN图书编号varchar2(20)StockNum库存量Number3.3 数据库的创建1.创建表空间及用户创建表空间:create tablespace tushu datafile 'E:biaokongjiantushu.dbf' size 32M autoextend on next 32m maxsize 2048m extent management local;创建用户:create user wsn identified by 1234 default tablespace tushu;2.创建数据表用户表:create table yonghu-用户表( eno number primary key,-用户编号 ename varchar2(10)-用户名);图书类别表create table typ-图书类别表( TID varchar2(10) primary key,-类别编号 TypeName varchar2(20) not null-类别名称);图书表create table books-图书表( ISBN varchar2(20) primary key,-图书编号 BookName varchar2(40) not null,-名称 TID varchar2(10), foreign key (TID) references typ (TID),-类别编号 RetailPrice varchar2(10) not null,-零售价 Author varchar2(20),-作者 Publish varchar2(30),-出版 StockMin number not null,-库存下限 StockMax number not null,-库存上限 Descriptions varchar2(100)-描述);入库表 create table InWarehouseitems-入库表( ISBN varchar2(20),foreign key (ISBN) references books (ISBN),-ISBN BookName varchar2(40) not null,-名称 RetailPrice varchar2(10) not null,-零售价 shuliang number-入库数量);库存表create table stock-库存表( ISBN varchar2(20),foreign key (ISBN) references books (ISBN),-商品编号 StockNum number-库存数量);创建视图:图书查询视图create view bookview as select isbn,bookname,author,publish,retailprice from books;3.4存储过程和触发器主要存储过程及触发器:用户登录的存储过程create or replace procedure denglu(flag out number,username varchar2,upwd number)-登录as i varchar2(20);p number;begin flag:=0; select t.ename into i from scott.yonghu t where t.ename=username; if i is not null then flag:=1; select t.eno into p from scott.yonghu t where t.ename=username and t.eno=upwd; if upwd is not null then flag := 2;-登录成功 else flag := 1;-密码不正确 end if; else flag := 0;-用户不存在 end if; commit; exception when no_data_found then rollback; end;入库的存储过程:create or replace procedure rk(isb varchar2,bname varchar2,rp varchar2,sl number)-入库asi number;begin select count(*) into i from inwarehouseitems where isbn=isb; if(i<>0) then update inwarehouseitems set shuliang=shuliang+sl where isbn=isb; else insert into inwarehouseitems values(isb,bname,rp,sl); end if; end;触发器:create or replace trigger charuafter insert or update on InWarehouseitemsREFERENCING OLD AS OLD NEW AS NEW FOR EACH ROWdeclaren_count number(4);beginif updating or inserting THEN select count(*) into n_count from stock where ISBN = :new.ISBN; if n_count > 0 then update stock set StockNum = StockNum + :NEW.shuliang where ISBN = :NEW.ISBN; else insert into stock(ISBN, StockNum) values(:NEW.ISBN, :NEW.shuliang); end if; end if; end;第4章 详细设计及测试4.1 系统界面1.登入界面图4-1登入界面图2.图书管理界面图4-2图书管理界面图3.入库界面图4-3入库界面图4.库存界面图4-4库存界面图4.2 主要代码设计配置文件:<?xml version="1.0" encoding="utf-8" ?><configuration> <appSettings> <add key="ConStr" value="Data Source=orcl;User ID=wsn;Password=1234;Unicode=True"/> </appSettings></configuration>ll;数据库连接class database static OracleConnection con = new OracleConnection(); public static OracleConnection GetOpen() try if (con.State = ConnectionState.Closed) con.ConnectionString = ConfigurationSettings.AppSettings"ConStr".ToString(); con.Open(); return con; catch (Exception ee) return null; public static void GetClose() if (con.State = ConnectionState.Open) con.Close(); 底层功能实现:public DataTable ss() /查询数据库kucunview视图 ,返回结果集 存放在dt中 try OracleDataAdapter oda = new OracleDataAdapter(); string sql = "select * from stock order by ISBN" OracleCommand cmd = new OracleCommand(sql, database.GetOpen(); oda.SelectCommand = cmd; oda.Fill(dt); return dt; catch (Exception eee) return null; finally database.GetClose(); public void se()/将dt里存放的结果显示在listview中 listView1.Items.Clear(); DataTable dt = ss(); foreach (DataRow dr in dt.Rows) ListViewItem item = new ListViewItem(dr0.ToString(); item.SubItems.Add(dr1.ToString(); this.listView1.Items.Add(item); dt.Clear(); 4.3 功能整体链接测试总体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单一功能,将测试完的功能加入系统中,进行一次系统测试,依次类推将所有功能加入系统中,在具体测试时,采用自顶向下的结合方式,从主控功能开始,沿各控制层向下移动,逐渐把所有功能结合了。在测试过程中使用到调试技术:1、采用debug调试语句,跟踪数据;2、嵌入打印语句,输出中间结果;3、设置断点,观察程序在断点附近的状况。评估运行的可靠性问题:1、结果正确;2、运行速度;3、空间利用率;4、算法的可行性。测试时发现问题及时修正,如没有问题,则设计完成。第5章 课程设计心得经过一个星期的设计和开发,对图书管理系统基本开发完毕。图书管理系统需求包括注册、管理员、用户信息、图书信息、借阅信息进行创建。通过不断地对程序及各模块进行修改、编译、调试、运行。以及应用了Oracle 11g语言,对数据库的创建、修改、删除,我深刻意识到设计的系统必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程。才能做好符合市场需求的系统。很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。但是不管做什么,我们都要相信自己,不能畏惧,不能怕遇到困难,什么都需要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来它并没有你以前觉得的那样。通过这次课程设计真切地体会到课程设计的目的并仅仅是自己单纯任务的完成,而在于重新巩固已学过的知识,从而获得新的知识。设计进行的非常艰难,编码非常不容易,才发现做一个项目最重要的不在于如何实现,而是实现之前的需求分析和模块设计。创新很难,有些流行的系统其实现并不难,难的在于对市场的分析和准确定位。设计,是一个任重道远的过程,需要我么不断的学习和创新。参考文献(资料)1 谢希仁. 计算机网络(第五版)M. 北京:电子工业出版社,2008年2月2 胡小强 计算机网络M 北京:北京邮电大学出版社2005年1月3 崔巍 王晓敏. 数据库系统开发教程M. 北京:清华大学出版社,2010年6月4 俞俊甫. 数据库原理应用教程 M. 北京:北京邮电大学出版社2010年7月5 张凤荔 王瑛 Oracle 11g数据库基础教程 M. 人民邮电出版社 2012年9月致 谢感谢华东交通大学理工学院的各位领导,感谢我的老师给我们这次学习课程设计的机会,让我们更加深入的了解和学习了数据库系统的开发,同时也感谢我的同学给我无私的帮助,只有相互之间密切配合在能更好的完成和丰富课设内容。在这里特此表示感谢。