Oracle在超市管理系统中的应用jsp程序设计.docx
《Oracle在超市管理系统中的应用jsp程序设计.docx》由会员分享,可在线阅读,更多相关《Oracle在超市管理系统中的应用jsp程序设计.docx(11页珍藏版)》请在冰豆网上搜索。
Oracle在超市管理系统中的应用jsp程序设计
实习报告
Oracle在超市管理系统中的应用
姓名:
专业班级:
实习单位:
指导教师:
完成日期:
摘要
随着信息技术的飞速发展,数据处理不仅在数量上要求越来越大,而且在质量上也要求越来越高。
计算机作为一种高效的管理工具,对现代企业的管理发挥了极其重要的作用。
商业超市是当前最重要的商业经营形式之一,为了进一步提高商业超市的管理水平和竞争力,管理信息系统在商业超市中的应用已是大势所趋。
Oracle是数据库应用最广泛,最流行的数据库之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。
本文结合超市的数据库管理系统系统建设实例,(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)从而掌握Oracle的基本原理和基本操作,能够运用数据库技术设计Oracle数据库及其应用系统。
这次实习主要尝试使用Oracle数据库中视图,存储过程等数据库技术来建立高可用性的数据库管理系统。
关键词:
数据库;视图;存储过程;数据安全性
引言:
商业活动在人类社会发展中占据了重要的一环。
在我国,商业行业在近十年有了飞跃性的变化,从百货店、副食店这种单一的经营模式发展到便利店、超市、大型综合超市、连锁超市等多种经营形式。
其中商业连锁超市已成为现有商业行业的重要经营形式之一,并呈现出迅猛的发展态势。
连锁超市是劳动密集型、低利润率的行业。
传统的计算机管理在商业超市流程中的数据处理比较繁琐、效率低、易出错,这就制约了企业的发展。
因此企业利用成熟的管理思想和先进的信息技术来提高管理水平和经济效益就显得尤为重要。
基于先进的数据库技术建立的商业超市管理信息系统可以帮助商业超市改变落后的经营模式,(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)并且可以使管理层及时、合理地进行管理和决策。
对数据库可用性、性能等方面的需要也日趋苛刻。
操作系统的稳定对数据库来说是十分紧要的,在数据库可操作平台上,Oracle可在所有主流平台上运行,Oracle数据库采用开放的策略目标,它使得客户可以选择一种最适合他们特定需要的解决方案。
客户可以利用很多种第三方应用程序、工具。
因此采用先进数据库建立的商业超市管理信息系统应顺应社会发展的潮流,以Oracle综合性能为出发点,分析了相关技术的基本原理,利用视图,存储过程等数据库技术来更有效,更快捷的管理数据,提高竞争效率和竞争优势。
1 实习内容
(1) 需求分析
利用视图实现商品的某种类别的数据查询
通过商品类别表和商品信息表做成视图,然后通过sql语句查出这个视图,求得符合条件的数据。
(2)视图:
如图1.1-1
(3)表的结构设计
商品信息表(MerchInfo)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MerchID
int
4
P
Notnull
商品编号
TypeID
varchar
10
P
Notnull
类别编号
MerchName
Varchar
50
Notnull
商品名称
MerchPrice
Money
4
Notnull
价格
MerchNum
Int
4
Notnull
库存数量
CautionNum
Int
4
Notnull
库存报警数量
PlanNum
Int
4
null
计划进货数
BarCode
Varchar
50
Notnull
条形码
SalesProPrice
Money
4
促销价格
SalesProDateS
Datetime
8
促销起日期
SalesProDateE
Datetime
8
促销止日期
AllowAbate
Int
4
Notnull
允许打折
AllowSale
Int
4
Notnull
允许销售
FactoryID
Varchar
10
F
Notnull
厂商编号
ProvideID
Varchar
10
F
Notnull
供货商编号
商品类别表(Type)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
TypeID
varchar
10
P
Notnull
类别编号
TypeName
Varchar
25
Notnull
类别名称
交易表(Dealing)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
DealingID
Varchar
10
P
Notnull
交易编号
DealingPrice
Money
4
Notnull
交易金额
DealingDate
Money
4
Notnull
交易日期
MemberID
Varchar
10
会员卡号
UserName
Varchar
10
F
Notnull
用户名称
入库纪录表(Stock)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
StockID
Varchar
10
P
Notnull
入库编号
MerchID
Varchar
10
F
Notnull
入库商品编号
ProvideID
varchar
10
P
Notnull
供货商编号
MerchNum
Int
4
Notnull
入库数量
MerchPrice
Money
4
Notnull
单额
TotalPrice
Money
4
Notnull
总额
StockDate
Datetime
8
Datetime
入库日期
PlanDate
Datetime
8
Datetime
计划进货日期
StockState
Int
4
Notnull
入库状态
供货商表(Provide)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
ProvideID
varchar
10
P
Notnull
供货商编号
ProvideName
Varchar
50
Notnull
供货商名称
ProvideAddress
Varchar
250
供货商地址
ProvidePhone
Varchar
25
供货商电话
厂商表(Provide)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
FactoryID
varchar
10
P
Notnull
厂商编号
FactoryName
Varchar
50
Notnull
厂商名称
FactoryAddress
Varchar
250
厂商地址
FactoryPhone
Varchar
25
厂商电话
(4)功能实现过程
首先,(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)创建视图,利用商品信息表(MerchInfo)和商品类别表(Type)来创建视图,具体实现:
Createviewv_searchwithencryptionasselectMerchID,MerchInfo.TypeID,MerchName,MerchPrice,MerchNum,fromMerchInfo,TypewhereMerchInfo.TypeID=Type.TypeIDorderbyMerchIDdesc.这时视图已经创建成功了,然后通过sql语句就可以轻松查询到数据了,select*fromv_search。
(5)遇到的问题
在项目之初,对视图的含义一头雾水,不知道改如何的去应用。
比如,视图是什么,为什么直接查询视图就能出来数据,视图如何来建立呢,软件操作建立视图怎么建立,语句建立又该怎么建立呢?
带着等等的问题,查询了一些资料,原来视图就是一个或者多个表关系在一起形成的一个虚拟的表,直接用sql语句就可以达到想要的效果。
举例来说:
上面的那个例子,只是简单的实现了2个表的数据查询功能,该如何实现呢,首先,要了解商品信息表(MerchInfo)和商品类别表(Type)的关系,对比发现两个表中都还有TypeID这个字段,这就好办了,通过这个字段将两个表可以联系起来,那么又该如何写这个视图语句呢,每一个字符又代表什么含义呢?
经过沟通
Createviewv_search是创建视图v_search的意思,其中v_search这个名称可以随意的更换,(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)而Createview是固定创建视图的函数,MerchInfo.TypeID=Type.TypeID这个是关键,表示MerchInfo表中的TypeID同Type表中的TypeID进行关联,orderbyMerchIDdesc表示的是按照MerchID这个字段降序排列的。
了解之后发现并不难,这就需要多做练习,多学多问,问题自然而然就解决了。
(6)取得的成果
通过利用视图来做查询,快速的得出想要的数据,视图简化了对数据的查询,隐藏了查询的复杂性。
视图的数据来自一个复杂的查询,用户对视图的检索却很简单。
1.2 利用存储过程添加商品信息
(1)该功能需求分析
存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)使用时只要调用即可。
在ORACLE中,若干个有联系的过程可以组合在一起构成程序包。
利用存储过程功能实现向商品信息表(MerchInfo)中添加商品信息,具体实现:
创建m_insert,用于实现往MerchInfo表中插入一条记录,并返回执行状态码信息:
如果成功,则返回0;否则,返回1。
(2)功能实现过程
Createprocm_insert
@MerchIDint(4),@MerchNamevarchar(50),@MerchPricemoney(4),@MerchNumint(4),@PlanNumint(4),@BarCodevarchar(50),asinsertintoMerchInfo(MerchID,MerchName,MerchPrice,MerchNum,PlanNum,BarCode)values(@MerchID,@MerchName,@MerchPrice,@MerchNum,@PlanNumint(4),@BarCodevarchar(50))if@@error<>0
Return1
Else
Return0
Go
(3)遇到的问题
开始的时候,对存储过程不是很了解,在实现过程中,不了解每一个内在函数的作用是什么,比如:
Createprocm_insert具体是什么意思,每一次写的时候,都是这么写吗?
@MerchIDint(4)是什么意思等等问题的疑惑,经过经理的一番指导,基本了解了大概的含义,(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)Createproc是创建存储过程的固定写作模式,m_insert是存储过程的名字,每一次写的时候都是可以变得,随意的起名字的。
而@MerchIDint(4)表示的是,变量@MerchID和整数型int,长度为4。
了解了之后,对用命令语句创建的存储过程熟悉了。
存储过程的编写对以后的项目开发起到了加速剂的作用。
(4)取得成果
其实做一个项目,事先把要实现的功能,利用存储过程都事先的写出来,在开发过程调用已经做好的存储过程,会得到很高的开发效率的。
1.3函数的使用
(1)需求分析
功能是通过函数来实现查询从某个供货商进入多少货,具体的商品信息有哪些。
要求通过函数语句的方式来实现该功能,具体要求:
创建一个用户自定义函数,以ProvideID为参数,返回进货的商品信息。
(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)
(2)功能实现过程
Createfunctionfunc1(@ProvideIDvarchar(10))
Returnstable
As
Begin
SelectMerchID,ProvideID,MerchNum,MerchNum,MerchPricefromStock,Provide
WhereStock.ProvideID=@ProvideID
Go
(3)遇到的问题
这次遇到的主要问题是,用函数写出语句后并没有出现想要的数据,程序报错,但又不知道问题出在哪,带着疑问,又重新吕清一下思路,结果发现在定义函数的之前,没有弄清表与表之间的结构关系,误将变量和字段写错了,造成程序的执行错误,例如:
书写变量的时候前面都要有‘@’这个符号,而我当时没有写,这个变量对应的是数据库中哪个字段也书写的不准确,数据当然就出不来了。
那么函数的使用和存储过程的使用,有何区别呢,真的不知道该啥时候使用哪一个比较合适。
带着疑问,跟同事沟通了一下了解到:
一般来说,存储过程和函数的使用与子程序将要返回的值的数量以及这些值的使用方法有关。
通常,如果返回值在一个以上时,用过程比较好。
如果只有一个返回值,使用函数就可以满足要求。
通过对预期格式的分析知道,此时需要处理查询语句返回的多条记录,要通过子程序来实现,而且返回值多于一个,所以此时使用存储过程来实现更为合适。
(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)
(4)取得成果
成功得到想要的数据,了解了函数的便捷性,同时了解了函数与存储过程的使用区别,通过对函数的理解,函数在一个项目的开始过程中,会常常的遇到,学会函数,对提高自身能力有很大的帮助。
1.4 Oracle数据库的安全性,完整性,并发控制
(1)数据库的安全性
数据库的安全性是指数据库中数据的保护措施,指设计和实现授权的用户在制定的时间、指定或允许的地点、授权的访问方式访问数据库中的指定数据资源。
简而言之保护数据库中的数据不被破坏、偷窃和非法使用。
(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)
数据库安全性问题应包括两个部分:
a.是数据库数据的安全,它应能确保当数据库系统停机时,当数据库数据存储媒体被破坏时以及当数据库用户误操作时,数据库数据信息不至于丢失。
b.是数据库系统不被非法用户侵入,它应尽可能地堵住潜在的各种漏洞,防止非法用户利用它们侵入数据库系统。
(2)数据库的完整性
它是指数据的正确性和相容性。
数据的完整性是为了防止数据库存在不符合主义的数据,防止错误信息输入和输出,即数据要遵守由DBA或应用开发者所决定的一组预定义的规则。
ORACLE应用于关系数据库的表的数据完整性有下列类型:
在插入或修改表的行时允许不允许包含有空值的列,称为空与非空规则。
唯一列值规则,允许插入或修改的表行在该列上的值唯一。
引用完整性规则,同关系模型定义。
用户对定义的规则,为复杂性完整性检查。
ORACLE允许定义和实施上述每一种类型的数据完整性规则,这些规则可用完整性约束和数据库触发器定义。
(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)
数据库触发器,是使用非说明方法实施完整性规则,利用数据库触发器(存储的数据库过程)可定义和实施任何类型的完整性规则。
(3)数据库并发控制
数据库是一个共享资源,可为多个应用程序所共享。
这些程序可串行运行,但在许多情况下,由于应用程序涉及的数据量可能很大,常常会涉及输入/输出的交换。
为了有效地利用数据库资源,可能多个程序或一个程序的多个进程并行地运行,这就是数据库的并行操作。
在多用户数据库环境中,多个用户程序可并行地存取数据库,如果不对并发操作进行控制,会存取不正确的数据,或破坏数据库数据的一致性。
(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)
例:
在超市结账中,有两个收银员(L1,L2)对某中商品(A)的机动性作事务处理,操作过程如图所示:
数据库中的A
1
1
1
1
0
0
L1
READA
A:
=A-1
WRITEA
L2
READA
A:
=A-1
WRITEA
L1工作区中的A
1
1
0
0
0
0
L2工作区中的A
1
1
0
0
0
表1.1并发控制示例
首先L1读A,接着L2也读A。
然后L1将其工作区中的A减1,L2也采取同样动作,它们都得0值,最后分别将0值写回数据库。
在这过程中没有任何非法操作,但实际上多出一张机票。
这种情况称为数据库的不一致性,这种不一致性是由于并行操作而产生的。
所谓不一致,实际上是由于处理程序工作区中的数据与数据库中的数据不一致所造成的。
如果处理程序不对数据库中的数据进行修改,则决不会造成任何不一致。
另一方面,如果没有并行操作发生,则这种临时的不一致也不会造成什么问题。
数据不一致总是由两个因素造成:
一是对数据的修改,二是并行操作的发生。
因此为了保持数据库的一致性,必须对并行操作进行控制。
最常用的措施是对数据进行封锁。
(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)
在多用户数据库中一般采用某些数据封锁来解决并发操作中的数据一致性和完整性问题。
封锁是防止存取同一资源的用户之间破坏性的干扰的机制,该干扰是指不正确地修改数据或不正确地更改数据结构。
在多用户数据库中使用两种封锁:
排它(专用)封锁和共享封锁。
排它封锁禁止相关资源的共享,如果一事务以排它方式封锁一资源,仅仅该事务可更改该资源,直至释放排它封锁。
共享封锁允许相关资源可以共享,几个用户可同时读同一数据,几个事务可在同一资源上获取共享封锁。
共享封锁比排它封锁具有更高的数据并行性。
(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)
在多用户系统中使用封锁后会出现死锁,引起一些事务不能继续工作。
当两个或多个用户彼此等待所封锁数据时可发生死锁。
总结:
通过这次实习,对当前流行数据库oracle有了较深刻的了解,在团队的带领下,完成了数据库表的建立,视图的编写,存储过程的实践,感受到了该数据库的强大性能,商业超市的管理层常常利用往来管理汇集的信息了解往来客户的信用程度,以避免在采购销售过程中产生呆账、坏账,从而提高企业的经济效益。
因此往来管理在商业超市中有着举足轻重的作用。
通过Oracle技术能够更好的对超市管理系统进行维护,使得数据库的维护和数据采集变的更加容易,是数据库的运行速度更加快了,性能更加的可靠了;在数据库安全方面做到最好,避免数据库的瘫痪,影响超市的经济效益。
(专业辅导计算机毕业设计,代写或者出售计算机毕业设计,包括jsp,asp,程序设计和配套论文设计质量保证,可以先看看,再决定是否购买,价格便宜,同时赠送程序运行环境配置文件,赠送在线解答问题30分钟。
有意者请加qq:
1934361672)
参考文献:
[1]王强.Oracle10g RAC技术在OPENAV系统中的应用,机械工业信息与网络,2008年第3期.
[2]Auguet,ORACLE RAC 概念介绍 51CTO技术论坛.
[3]吴志远,黄维平.Oracle10g RAC在数字化校园中的应用网络安全技术与应2008.12.
[4]James,ASM 概述(good),XXBLOG.