您的当前位置:首页正文

Oracle数据库课程设计报告

2020-04-03 来源:年旅网


课 程 设 计 报 告 书

目 录

第1章 引言 ............................................................................ 3 第2章 概要设计 .................................................................... 5 2.1系统需求分析 ................................................................ 5 2.2系统结构设计 ................................................................ 5 2.3系统功能模块 ................................................................ 6 第3章 数据库分析 ................................................................ 7 3.1 数据库总体设计 ........................................................... 7 3.2 数据表设计 ................................................................... 7 3.3 数据库的创建 ............................................................... 8 3.4存储过程和触发器 ...................................................... 10 第4章 详细设计及测试 ...................................................... 12 4.1 系统界面 ..................................................................... 12 4.2 主要代码设计 ............................................................. 15 4.3 功能整体链接测试 ..................................................... 18 第5章 课程设计心得 .......................................................... 19

第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 2005 3.Oracle 11g

第2章 概要设计

2.1系统需求分析

图书管理系统主要是用oracle数据库进行逻辑处理,实现对图书信息的增删改查,以及出库入库的管理。

2.2系统结构设计

编号 图书类别 名称 存储量 分类 提供 仓库 存储 图书 提供 供应商 图2.2. 图书E-R图

地址 电话

2.3系统功能模块

登入界面 图书管理 图书出入库 查询图书 查询图书 新增图书 修改图书 删除图书 图书 入库 图书 出库

图2.4 系统功能模块图

第3章 数据库分析

3.1 数据库总体设计

数据库设计是图书管理系统的重要组成部分。建立良好的数据库结构和文件组织形式,能够使系统快速、准确的获得所需信息。这里采用oracle 数据库。该数据库对进行增、删、改、查、显示都极为方便。能为系统提供良好的数据支持。根据系统的详细分析和和总体的需求分析,将为各个不同模块详细设计数据结构。

3.2 数据表设计

用户表(yonghu) 字段名 eno ename 字段名 TID 字段 用户ID 用户名 字段 数据类型 number 主键 Yes 索引 索引 主键 索引 Yes 值 值 值 说明 说明 说明 varchar2(10) 数据类型 主键 图书类别表(typ) 类别编号 varchar2(10) Yes 图书表(books) 字段名 ISBN BookName TID RetailPrice Author Publish StockMin StockMax Descriptions 字段 图书编号 名称 类别编号 零售价 作者 出版社 库存下限 库存上限 描述 数据类型 varchar2(20) varchar2(40) varchar2(10) varchar2(10) varchar2(20) varchar2(20) number number TypeName 类别名称 varchar2(10) varchar2(100) 入库表(InWarehouseitems)

字段名 ISBN BookName shuliang 字段 图书编号 名称 入库数量 数据类型 主键 索引 值 说明 varchar2(20) Yes varchar2(40) varchar2(10) Number RetailPrice 零售价 库存表(stock) 字段名 ISBN 字段 数据类型 Number 主键 索引 值 说明 图书编号 varchar2(20) StockNum 库存量 3.3 数据库的创建

1.创建表空间及用户 创建表空间:

create tablespace tushu datafile 'E:\\biaokongjian\ushu.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)------入库

as

i 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 charu

after insert or update on InWarehouseitems REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW declare

n_count number(4); begin

if 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 主要代码设计

配置文件:

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(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章 课程设计心得

经过一个星期的设计和开发,对图书管理系统基本开发完毕。图书管理系统需求包括注册、管理员、用户信息、图书信息、借阅信息进行创建。通过不断地对程序及各模块进行修改、编译、调试、运行。以及应用了Oracle 11g语言,对数据库的创建、修改、删除,我深刻意识到设计的系统必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程。才能做好符合市场需求的系统。

很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。但是不管做什么,我们都要相信自己,不能畏惧,不能怕遇到困难,什么都需要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来它并没有你以前觉得的那样。

通过这次课程设计真切地体会到课程设计的目的并仅仅是自己单纯任务的完成,而在于重新巩固已学过的知识,从而获得新的知识。设计进行的非常艰难,编码非常不容易,才发现做一个项目最重要的不在于如何实现,而是实现之前的需求分析和模块设计。创新很难,有些流行的系统其实现并不难,难的在于对市场的分析和准确定位。设计,是一个任重道远的过程,需要我么不断的学习和创新。

因篇幅问题不能全部显示,请点此查看更多更全内容