资源描述
安徽电子信息职业技术学院Oracle数据库课程设计报告系 部: 软件学院 专 业: 计算机信息管理 班 级: 信管101 姓 名: 胡俊杰 刘义 指导教师: 陈俊生 二 零 一 二 年 六 月 二十五 日目录第一章需求分析31. 需求分析设计思想32编写目的43.项目背景44. 名词说明55.功能要求56功能描述67.待开发软件的功能68数据安全性和完整性要求79.使用环境810.使用环境8第二章 概念结构设计81分E-R图82基本E-R图12第三章逻辑结构设计13第四章 数据库的物理结构141.数据库文件141. 创建初始化参数文件151.1 数据结构及代码实现151.2 功能代码实现182视图结构263正确性264.可靠性265.完整性266.易使用性267.可维护性278.可测试性279.安全保密性2710.互联性27第五章 总结27附录27参考文献27总结27第一章 需求分析1. 需求分析设计思想需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。进销存管理的思想是:从客户需要和供应情况出发来规划企业的生产经营活动,在大量的客户信息和供应商信息分析的基础上确定本企业最优的产品组合等问题。在市场经济中,销售是企业运作的重要环节,为了更好地推动销售,不少企业建立了分公司或代理把产品推向最终用户。这些分公司或代理商大都分布在全国各地,甚至是在国外,远距离频繁的业务信息交流构成了这些企业业务活动的主要特点。在传统方式上,公司之间通常采用电传、电报、电话等方式传递订货、发货、到货、压货、换货、退货等信息,总公司的商务部门在接到分公司或代理商传来的订单和银行汇款单据传真后,开据产品出库通知,然后再把相关的进、销、存信息手工存档,再对这些信息进行统计分析,才能了解到整个公司的生产、销售和库存情况。这种信息传递、管理方式不仅效率低,可靠性、安全性和保密性都无法满足要求,而且数据统计时间严重滞后,往往是当领导了解到企业的“进、销、存”出现问题时,就已经远离了问题出现的时间和地点。即便是没有分公司的企业,使用传统的手工方式管理也存在同样的问题。通过进销存管理系统,及时通过网络把决策信息传统到相关决策人,从而可以及时发现问题,解决问题,更好地把握机会。进销存管理是一项非常繁琐复杂的工作,每天要处理大量的单据数据,包括入库、出库、退库、调库等多项货物操作流程。为及时结清每笔业务和货物流动情况,保证企业生产用料以及货物安全,企业要花费大量人力物力和时间来做数据记录及统计工作。因此,为提高库管工作的质量和效率,就必须根据特点与需要开发进销存管理信息系统。通过调查、收集与分析,用户对数据库的要求主要有:在本系统中,数据库主要存储的信息包括仓库管理员、业务员、仓库、供应商、客户与库存的基本信息。主要完成的功能为:当企业和新的供应商取得合作的时候,需要对供应商的信息进行入为管理,当供应商的信息发生变化时,需要对其进行修改或者删除。当企业拥有新的顾客的时候,需要对顾客的信息进行管理,当顾客的信息发生变化时,需要对其进行修改或者删除。当企业的仓库中新增了商品的时候,需要对商品的信息进行入库管理,当市场发生变化,商品的信息也需要同步修改。当企业具有进销过程的时候,需要随时记录进销信息,以便随时掌握和了解企业的业务状况,了解企业的利润状况。系统应该具有查询所有信息的功能。进销存管理信息系统通过对客户关系、销售行动等环节的记录、管理与分析,使管理从经验走向科学,从企业的的进销存管理的主要需求出发,可以为企业建立弹性化和灵活性的业务流程。2编写目的当今社会进销存管理系统对企业经营来说是不可缺少的一部分,它所包含的功能对于单位的决策者和管理者来说都至关重要,所以进销存管理系统对使用者来说起到了举足轻重的地位。本进销存管理系统主要涵盖了进货、销售、仓库存货三方面。目前许多企业在销售管理上存在许多问题。本系统中的销售管理是通过对客户关系、销售行动等环节的记录、管理与分析,使销售管理从经验走向科学,从企业的销售管理的主要需求出发,从而为企业建立弹性化和灵活性的业务流程。仓库存货管理是一项非常繁琐复杂的工作,它同时也贯穿了进货所涉及到的事宜,企业仓库中每天要处理大量的单据数据,包括入库、出库、等多项货物操作流程。为及时结清每笔业务和商品流动情况,为保证企业的正常经营,企业要花费大量人力物力和时间来做数据记录及统计工作。通过本系统可以及时的对仓库中商品的流动情况进行管理、并且由仓管员具体负责一切事宜。本系统是经过市场调查,并针对用户的需求,从而进行设计的,本实验预期的读者为软件管理人员,开发人员,维护人员。3.项目背景项目名称:库存管理系统开发者:库存管理系统开发小组预期用户:管理人员参照系统:以前的库存管理系统4. 名词说明库存管理系统:库存管理系统是销售管理软件的通俗化名称,库存管理系统是管理客户档案、销售线索、销售活动、业务报告、统计销售业绩的先进工具,适合企业销售部门办公和管理使用,协助销售经理和销售人员快速管理客户、销售和业务的重要数据。5.功能要求要提高市场竞争力,既要有好的产品质量,同时也要有好的客户服务。企业要作到能及时响应客户的产品需求,根据需求迅速生产,按时交货,就必须有一个好的计划,使得市场销售和生产制造2个环节能够很好地协调配合。进销存管理系统是商业企业经营管理中的核心环节,也是一个企业能否取得效益的关键。如果能做到合理生产、及时销售、库存量最小,减少积压,那么企业就能取得最佳的效益。由此可见,进销存管理决策的正确与否直接影响了企业的经济效益。本系统尽量采用公司现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统开发水平和应用效果的目的。本系统的开发主要是为了实现企业进销存管理的系统化、规范化和自动化。这是在用户要求的基础上提出来的。 “采购管理”模块,该功能模块是企业经营过程中,如果库存中商品存货数量供应不足,则当班仓管员要根据所缺商品的类别向对应的供应商发出进货请求。“销售管理”模块,功能模块是企业商品向外销售过程中所要进行的一系列工作。“库存管理”模块,该功能模块是企业对仓库中各类商品的盘点、报损报溢以及各类商品的库存量盘点等等。 “系统管理”模块,该功能模块是对进销存管理系统的一系列参数、权限、在系统发生故障时对系统中数据的备份、恢复以及记录日志文件等。进销存管理系统是介于用户和企业管理之间的一个系统,其功能模块如图1.1所示:进销存管理系统系统管理采购管理销售管理库存管理退货管理图1.1 系统功能模块图6功能描述1.输入功能客户输入要进入的系统(如销售计价系统),通过用户名和密码认证,进入相应系统,执行相关操作。2.输出功能根据客户输入进入相应系统,对相关操作执行后输出结果。3.查询功能能根据用户需要查询相关信息,并以列表的形式呈现出来。4.更新功能在用户有网络介入的情况下,不需用户动手,能进行自动更新信息与功能,带给用户最为直观,最清晰,最新的动态信息与资料,并实现更多功能。5.生成报表功能能根据需要,自动生成报表,可选形式为:销售情况报表,仓库备货表表,管理报表等。6.身份验证功能为确保信息安全性,对登入的用户尽心个身份验证,只有通过者才能进入相应系统。7.待开发软件的功能本软件旨在为销售人员与管理人员提供一个更好更稳定,功能齐全,使用方便的的系统软件,以代替传统软件,本产品具有其他产品不具备的诸多有点,有广阔的市场前景。 商品仓库管理:记录进、出货物的种类数量以及库存数量。商品销售管理:能拥有商品的销售、计费操作。 客户服务需求受理管理:接受客户的意见与建议及记录所需服务客户的资料。商品报价管理:能及时公布各种商品的最新价格动态。如图所示:8数据安全性和完整性要求(1)安全性要求本数据库有四类人员使用,包括仓库管理员、销售管理员、普通管理员、系统管理员。系统管理员是数据库系统的主要管理者,对数据库的所有数据应有访问和修改的权力。负责进货、商品录入、商品更新以及退货、销售商品。普通管理员也是数据库系统的管理者,对数据库的部分数据有访问和修改的权力。对商品的查看及销售要求进行操作,同时形成进货或退货报表给主管人员查看确认。销售管理员是销售商品时对商品进行统计管理,不需要登陆即可进入系统,可以对其销售的产品进行管理与修改。(2)完整性要求库存数与销售商品的数目应及时核对;退货时间不得超过7天;商品在出售记录中、商品不得有损坏、退货不得超期;购买与退货时,商品要经管理员确认;9.使用环境(1)硬件环境 建议使用windows 2000/ xp/7以上的pc机,内存需在16兆以上。(2)软件环境中文:windows 2000/ xp/7英文:windows 2000/ xp/7第二章 概念结构设计1 分E-R图 (1)库存与进货的分E-R图商品库存进货数量产品名称产品代码进货单号产品代码产品名称数量进货日期(2)库存与销售的分E-R图商品库存销售数量产品名称产品代码销售单号产品代码产品名称数量销售日期(3)退货与销售的分E-R图库存退 货销售数量产品名称产品代码销售单号产品代码产品名称数量销售日期退货单号产品代码产品名称数量(4)库存与退货的分E-R图销售库存退货数量产品名称产品代码销售单号产品代码产品名称数量退货单号产品代码产品名称数量销售日期2基本E-R图商品客户销售pn订货时间业务员单价订货数量订货金额应收款已收款m库存库存退货销售进货商品第三章 逻辑结构设计关系模型的逻辑结构是一组关系模式的集合。E-R图则是由实体,实体的属性和实体间的联系三个要素组成。所以将E-R图转换为关系模型实际上就是要将实体,实体的属性和实体间的联系转换为关系模式。转换原则如下:1实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性就是关系模式的属性,实体的码就是关系的码。2联系类型的转换,根据不同的情况做不同的处理。(1) 若实体间的联系是1:1的,可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。(2) 若实体间的联系1:N的,可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N端实体的码。如果与N端对应的关系模式合并,则将一方的码传到多方去做为多方的一个非主属性。(3) 若实体间的联系是M:N的,可转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。(4) 三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。3依照该规则将进销存管理系统的E-R图转换为关系模型如下:(1) 将每一个实体转换成一个关系模式(实体的属性就是关系的属性,实体的码就是关系的码)。商品(商品单号,商品名称,商品规格,商品类别,商品产地,进货价,稍售价,最低售价),主码为商品单号。仓管员(仓管员编号,仓管员名称,仓管员电话,仓管员地址),主码为仓管员编号。 2) 实体间的联系转化为以下几种:管理(仓管员编号,仓库编号,开始时间,终止时间)在此关系中主码为仓管员编号和仓库编号,因为在此关系中仓库与仓管员之间是多对多的联系,因此将仓管员编号和仓库编号联合作为管理联系的主码,管理联系本身的属性作为关系的属性。库存表,产品代码,进货量,产品名称)进货表(进货单号,产品代码,进货量,进货时间,产品名称)销售表(销售单号,产品代码,产品名称,订货数量,销售日期)在此关系中主码为销售单号、产品代码,因为在此关系中商品、客户与业务员之间是多对多的多元联系,因此将销售单号、销售代码联合作为销售联系的主码,销售联系本身的属性作为关系的属性。销售表(退货单号,产品代码,产品名称,订货数量,退货日期)注:由E-R图可知,进销存管理系统有六个实体和四个联系) 第四章 数据库的物理结构1.数据库文件这里选择ORACLE 操作应用软件作为数据库平台,根据根据各个关系的数据量进行估算,设计数据库的定义如下表所示;文件文件名称初始大小增长大小最大文件大小数据库Xsgl_data.mdf50010不受限制日志Xsgl _log.ldf4005不受限制 实验系统平台:Windows Server 2000数据库系统版本:Oracle Database 10 Oracle的安装路径:D盘 创建的数据库名称:xsgl 、打开命令行工具,创建必要有相关目录 C:mkdir D:oracleproduct10.1.0admin xsglC:mkdir D:oracleproduct10.1.0adminxsglbdump C:mkdir D:oracleproduct10.1.0adminxsgludump C:mkdir D:oracleproduct10.1.0adminxsglcdump C:mkdir D:oracleproduct10.1.0adminxsglpfile C:mkdir D:oracleproduct10.1.0adminxsglcreate C:mkdir D:oracleproduct10.1.0oradataxsgl 上面创建目录的过程也可以在Windows的图形界面中去创建。其中D:oracleproduct10.1.0adminxsgl目录下的几个子目录主要用于存放数据库运行过程中的跟踪信息。最重要的两上子目录是bdump和udump目录,bdump目录存放的是数据库动行过程中的各个后台进程的跟踪信息,当中alert文件是警告文件,其文件名称为alert_xsgl.log,当数据库出现问题时,首先就可以去查看此文件以找出原因,手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。Udump目录存放和特定会话相关的跟踪信息。D:oracleproduct10.1.0oradataxsgl目录存放各种数据库文件,包括控制文件、数据文件、重做日志文件。 1. 创建初始化参数文件1.1 数据结构及代码实现1、Stock(库存表):记录当前库存的产品数量信息,便于查看当前库存的情况,及时组织货源。表名Stock实体名称库存表主键Icode外键、关系索引表名称PK_Stock索引字段名称Icode中文表名库存表估计数据量(MB/月)序号项目名称项目说明类型位数属性备注1Icode产品代码文本20P、N2Idescrip产品名称文本50允许空3Pqty数量数字4允许空Create table stock(icode char(20) not null primary key,Idescrip char(50) null,Pqty number(4)null);2、Input(进货表):录入进货单信息,向仓库入库提供单据依据,同时可以进行查询和统计进库的产品情况。表名Input实体名称进货表主键IID、Icode外键、关系索引表名称PK_ Input索引字段名称IID、Icode中文表名进货表估计数据量(MB/月)序号项目名称项目说明类型位数属性备注1IID进货单号文本20P、N2Icode产品代码文本20P、N3Idescrip产品名称文本50允许空4Pqty数量数字4允许空6IDate进货日期日期8允许空Create table input (iid char(20) not null,primary key(iid,icode),Icode char(20) not null,Idescrip char(50) null,Paty number(4) null,Idate date null); 1 Create table input 2 (iid char(20) not null primary key, 3 Icode char(20) not null, 4 Idescrip char(50) null, 5 Paty number null, 6 Idate date null 7* )SQL /表已创建。Alter table input Add(constraint “pk_input” primary key(iid,icode); 1 Create table input 2 (iid char(20) not null,primary key(iid,icode), 3 icode char(20) not null, 4 idescrip char(50) null, 5 paty number(4) null, 6 idate date null 7* )SQL /3、Sales(销售表):录入销售单信息,向客户提供送货及收款依据,同时可以进行查询和统计出库的产品情况。表名Sales实体名称出货表主键SID、Icode索引表名称PK_ Sales索引字段名称SID、Icode中文表名出货表估计数据量(MB/月)序号项目名称项目说明类型位数属性备注1SID销售单号文本20P、N2Icode产品代码文本20P、N3Idescrip产品名称文本50允许空4Pqty数量数字4允许空5SDate销售日期日期8允许空Create table sales(sid char(20) not null,primary key(sid,icode),Icode char(20) not null,Idescrip char(50) null,Paty number(4) null,Idate date null); 1 Create table sales 2 (sid char(20) not null,primary key(sid,icode), 3 Icode char(20) not null, 4 Idescrip char(50) null, 5 Paty number(4) null, 6 sdate date null 7* )SQL /表已创建。4、Returns(退货表):录入客户退货信息,同时处理当前库存的存货数量。 表名Returns实体名称出货单表主键RID、Icode索引表名称PK_ Returns索引字段名称RID、Icode中文表名退货表估计数据量(MB/月)序号项目名称项目说明类型位数属性备注1RID退货单号文本20P、N2Icode产品代码文本20P、N3Idescrip产品名称文本50允许空4Pqty数量数字4允许空5RDate退货日期日期8允许空Create table returns(rid char(20) not null,primary key(rid,icode),Icode char(20) not null,Idescrip char(50) null,Paty number(4) null,rdate date null);SQL Create table returns 2 (rid char(20) not null,primary key(rid,icode), 3 Icode char(20) not null, 4 Idescrip char(50) null, 5 Paty number(4) null, 6 rdate date null 7 );表已创建。仓管员信息结构数据项名说明类型宽度小数逻辑关系仓管员编号Admin_noChar8主键,决定仓管员信息的其它数据项仓管员姓名Admin_nameChar8依赖于仓管员编号仓管员电话Admin_phoneChar11依赖于仓管员编号仓管员地址Admin_addressChar20依赖于仓管员编号1.2 功能代码实现1、 在数据库中创建一个用户,用户名为:班级号_Test_座位号,如班级为E20,则用户名分别为E20_Test_01E20_Test_30,密码为oracle,并给予该用户帐号适当的权限。(5.sql)SQL conn / as sysdba已连接。(1)创建xg102_test_01用户为管理员创建用户create user xg102_test_01identified by oracleprofile default;授权grant connect to xg102_test_01;grant resource to xg102_test_01;grant create any table to xg102_test_01;grant create any index to xg102_test_01;grant alter any index to xg102_test_01;grant alter any table to xg102_test_01;grant drop any table to xg102_test_01;grant create tablespace to xg102_test_01;grant alter tablespace to xg102_test_01;grant drop tablespace to xg102_test_01;grant unlimited tablespace to xg102_test_01;grant update any table,delete any table,insert any table to xg102_test_01;grant sysdba to xg102_test_01;(2)创建xg102_test_02用户为管理员conn / as sysdba创建用户create user xg102_test_02identified by oracleprofile default;授权grant connect to xg102_test_02;grant select any table,insert any table,update any table,delete any table to xg102_test_02;(3)创建xg102_test_03用户为管理员conn / as sysdba创建用户create user xg102_test_03identified by oracleprofile default;授权grant connect to xg102_test_03;grant select any table to xg102_test_03;2、 在新建的用户下,创建以上4个表,并添加指定的约束、规则及参照关系。(6.sql)SQL conn / as sysdba已连接。(1)库存表StockCreate table Stock(Icode char(20) not null primary key, Idescrip char(50), Pqty number(4);insert into stock values(p0000001,手表,5);insert into stock values(p0000002,项链,5);insert into stock values(p0000003,手机,5);insert into stock values(p0000004,戒指,5);insert into stock values(p0000005,玉佩,5);insert into stock values(p0000006,挂件,5);(2)进货表InputCreate table Input(IID char(20) not null, Icode char(20) not null,primary key(IID,Icode), Idescrip char(50), Pqty number(4), IDate date);insert into input values(in0000001,p0000001,手表,5,sysdate);insert into input values(in0000002,p0000002,项链,5,sysdate);insert into input values(in0000003,p0000003,手机,5,sysdate);insert into input values(in0000004,p0000004,戒指,5,sysdate);insert into input values(in0000005,p0000005,玉佩,5,sysdate);insert into input values(in0000006,p0000006,挂件,5,sysdate);(3)销售表SalesCreate table Sales(SID char(20) not null, Icode char(20) not null,primary key(SID,Icode),Idescip char(50), Pqty number(4),SDate date);insert into sales values(sa0000006,p0000001,手表,3,sysdate);insert into sales values(sa0000002,p0000002,项链,2,sysdate);insert into sales values(sa0000003,p0000003,手机,1,sysdate);insert into sales values(sa0000004,p0000004,戒指,2,sysdate);insert into sales values(sa0000005,p0000005,玉佩,3,sysdate);insert into sales values(sa0000006,p0000006,挂件,2,sysdate);(4)退货表ReturnsCreate table Returns(RID char(20) not null, Icode char(20) not null,primary key(RID,Icode), Idescrip char(50), Pqty number(4), RDate date);授权成功。3、 创建Input表和Sales表的触发器,当进货和销售产品时,系统自动增、减Stock库存表的Icode的数量。Create or replace trigger in_InputAfter insert on xg102_test_01.input for each rowBeginFor cursor1 in(select icode from stock where icode=:new.icode) loopIf cursor1%found thenUpdate xg102_test_01.StockSet Pqty= Pqty+ :new.PqtyWhere Icode=:new.Icode;ElseInsert into Stock values(:new.Icode,:new.Idescrip,:new.Pqty);End if;End;Create or replace trigger in_SalesAfter insert on sales for each rowBeginUpdate StockSet Pqty= Pqty-:new.PqtyWhere Icode=:new.Icode;End;Create or replace trigger in_returnsAfter insert on sales for each rowBeginUpdate StockSet Pqty= Pqty+:new.PqtyWhere Icode=:new.Icode;End;4、 创建一个存储过程SalesProduct,当输入销售单的单号时,显示指定单号的所有销售明细。Create or replace procedure salesproduct (id varchar2,sale out varchar2)Is Begin Select sid into sale from sales where sid=id;End salesproduct;SQL Create or replace procedure salesproduct (id varchar2,sale out varchar2) 2 Is 3 Begin 4 Select sid into sale from sales where sid=id; 5 End salesproduct; 6 /过程已创建。5、 创建一个函数ProductOnHand,当给出某产品的Icode时,显示该产品的当前库存数量。Create founction ProductOnHand(ic char)Return numberAsnownumb number(4);BeginSelect Pqty into nownumb from stock where Icode=ic;Return(nownumb);End;6、 创建过程ReturnProduct:当顾客返回某部分产品的退货时,增加该部分产品的库存数量创建函数ProductInfo:当给出退货产品代码时,显示该产品的库存信息Create or replace procedure ReturnProduct(ic char,num out number)asbeginCreate or replace trigger ReturnProductAfter insert on Returns for each rowbeginUpdate StockSet Pqty= Pqty+:new.PqtyWhere Icode=:new.Icode;End;Create or replace founction ProductInfo(ic char)Return numberAsspqtyBeginSelect pqty into spqty from returns where Icode=ic;Return(sqpty);End;、打开命令行,设置环境变量oracle_sid C:set oracle_sid=xsgl 设置环境变量的目地是在默认的情况下,指定命令行中所操作的数据库实例是xsgl。 、创建实例(即后台控制服务) C:oradim new sid xsgl oradim是创建实例的工具程序名称,-new表明执行新建实例,-delete表明执行删掉实例,-sid指定害例的名称。 、创建口令文件 C:orapwd file=D:oracleproduct10.1.0db_1databasepwdxsgl.ora password=xsglstore entries=2 orapwd是创建口令文件的工肯程序各称,file参数指定口令文件所在的目录和文件名称,password参数指定sys用户的口令,entries参数指定数据库拥用DBA权限的用户的个数,当然还有一个force参数,相信您不指即明,这里就不再细述。 请注意,这里的命令要一行输入,中间不得换行,否则会出现不必要的错误。 口令文件是专门存放sys用户的口令,因为sys用户要负责建库、启动数据库、关闭数据库等特殊任务,把以sys用户的中令单独存放于口令文件中,这样数据库末打开时也能进行口令验证。 6、启动数据库到nomount(实例)状态 C:sqlplus /nolog SQL*Plus:Release 10.1.0.2.0 - Production on 星期三 6月 4 08:30:35 2012 Copyright 1982,2004,Oracle. All rights reserved. SQLconnect sys/xsglstore as sysdba 已连接到空闲例程 SQLstartup nomount ORACLE 例程已经启动。 Total System Global Area 319888364bytes Fixed Size 453612bytes Variable Size 209715200bytes Database Buffers 109051904bytes Redo Buffers 667648bytes SQL 7、执行建库脚本 执行建库脚本,首先要有建库的脚本。(去哪找建库脚本呢?我又没有!)不用着急,请接着往下看。 得到一个符合自己要求的建库脚本有两种方法,一种方法是在自己的电脑上用DBCA来建,接照它的提示一步步地去做,在做到第十二步的时候,请选择“生成建库脚本”,然后就大功告成,你就可以到相应的目录上去找到那个脚本并适当地修它便可便用。另一种方法就是自己手工去写一份建库脚本,这也是这里要见意使用的方法,用记事本编辑如下的内容,并将其保存为文件名任取而后缀名为(*.sql)的SQL脚本,这里保存到E盘根本录下且文件名称为xsgl.sql。 Create database xsgl datafile D:oracleproduct10.1.0oradataxsglsystem01.dbf size 300M reuse autoextend on next 10240Kmaxsize unlimited extent management local sysaux datafile D:oracleproduct10.1.0oradataxsglsysaux01.dbf size 120M reuse autoextend on next 10240K maxsize unlimited default temporary tablespace temp tempfile D:oracleproduct10.1.0oradataxsgltemp01.dbf size 20M reuse autoextend on next 640K maxsize unlimited undo tablespace UNDOTBS1 -请注意这里的undo表空间要和参数文件对应 datafile D:oracleproduct10.1.0oradataxsglundotbs01.dbf size 200M reuse autoextend on next 5120K maxsize unlimited logfile group 1 (D:oracleproduct10.1.0oradataxsglredo01.log) size 10240K, group 2 (D:oracleproduct10.1.0oradataxsglredo02.log) size 10240K, group 3 (D:oracleproduct10.1.0oradataxsglredo03.log) size 10240K 接着就执行刚建的建库脚本: SQLstart E:xsgl.sql 8、执行catalog脚步本创建数据字典 SQLstart D:oracleproduct10.1.0db_1rdbmsadmincatalog.sql 9、执行catproc创建package包 SQLstart D:oracleproduct10.1.0db_1rdbmsadmincatproc.sql 10、执行pupbld 在执行pupbld之前要把当前用户(sys)转换成system,即以system账户连接数据库。因为此数据库是刚建的,所以system的口令是系统默认的口令,即manager。你可以在数据库建好以后再来重新设置此账户的口令。 SQLconnect system/manager SQLstart D:oracleproduct10.1.0db_1sqlplusadminpupbld.sql 11、由初始化参数文件创建spfile文件 SQLcreate spfile from pfile; 12、执行scott脚本创建scott模式 SQLstart D:oracleproduct10.1.0db_1rdbmsadminscott.sql 13、把数据库打开到正常状态 SQLalter database open; 各个表的定义如2中的数据表所示。2视图结构(1)库存管理 (产品代码,产品名称,数量,进货单号,进货日期,销售单号,销售日期)(2)进货管理(进货单号,产品代码,产品名称,数量,进货日期)(3)销售管理(销售单号,产品代码,产品名称,数量,销售日期,退货单号,退货日期)(4)退货管理(退货单号,产品代码,产品名称,数量,退货日期)3正确性要求发布的软件能满足用户需要,运行时不出重大错误。4.可靠性在一般条件下,应不出故障。5.完整性要求在出现故障(如突然断电)时不丢失数据;6.易使用性要求能尽量为用户提供方便的使用,软件的节目符合当前主流软件使用的习惯。7.可维护性要求本软件能够拥有良好的可维护性,一满足不断增长的用户需求以及后期BUG的修复工作。8.可测试性设计时英尽可能减少测试本软件的各项功能的工作量。9.安全保密性要求本软件在进入不同系统的时需要进行不同的身份验证,以保证重要信息部丢失以及保证用户利益。10.互联性要求本系统有数据的导入和导出,以便于和其他系统进行连接以及数据交换。 第五章 总结本系统具有输入、输出、查询、更新、生成报表、身份验证等功能,为销售人员提供一个更好更稳定,功能齐全,使用方便的系统软件,以代替传统软件。具有广阔的市场前景。附录参考文献(1)新概念SQL Server 2005教程 北京科海 总策划 张莉 宋锦华编 北京 科海电子出版 (2)SQL Server 2005实用教程 魏树峰 江国粹 主编 安徽大学出版 (3)数据库建模技术 安徽电子信息职业技术学院自编讲义总结一周的课程设计已经结束,经过了一个星期的学习和工作,在老师和同学们的鼓励和帮助下,我们终于完成了课程设计。短短一周的课程设计已经结束,在这一周里,通过我们的亲身实践和学习懂得了许多道理,也学到了许多课上没有学到的东西。在实训中,也遇到了许多困难,但通过老师和同学的帮助、指导所有问题都得到了解决,也使自己对一些问题有了新的看法和认识。 我认为作为当代的大学生,不能只学习书本上的知识,更主要的是要通过学习来增长自己的才干,将所学知识运用到具体实践中,充分发挥自己的主观能动性,调动学习的积极性。实践是一本书,是知识的海洋,只有应用到实践中,才能在这广阔的海洋里翱翔。光学不用,即使学习再怎么好,也会被人们称为“书呆子”。在这次课设中,使我感受颇深,学习并不是一件容易的事,要想学有所用,在学习中就不能有一点马虎的地方,每个问题都要研究得明明白白,这样才能在实践中占领先地位。在学习上也要有坚强的毅力、信心和细心,就拿这次的课程设计来说,刚开始真的是无从下手,面对着课程设计的要求,不知如何分析,如何去设计,但最后通过全组人员在一起讨论,并且在老师的指导下顺利的完成了这次课程设计的任务,熟悉了PowerDesigner应用和数据库的知识。我认为学校既然给我们提供了实践的机会,我们就应该握这次机会,通过实践,也来检验一下自己这一学期究竟学到了什么,得到了什么,从中找出自己的缺点和不足,以便在以后的学习中加以改正,也能为我们将来步入社会打下基础。经过一个星期的艰辛努力最终换来了丰硕的成果,虽然有些不完善的地方,但毕竟小组成员花费大量的时间设计出来的,也感到有一丝的欣慰。可以肯定地说现在的我们对数据库设计这一块也有了一定的了解,但我们深知我们所了解的不过仅仅是皮毛而已,离真正的运用自如还相距甚远。人生有数,学无止境,学习生活是无穷尽,只有掌握更多的、更新的知识才能使自己始终立于不败之地。如果只为现在所取得的成绩而沉浸于喜悦、骄傲之中的话,那么,我们就不会前进,只能停留在原来的地方踏步,甚至还会倒退。所以从一周的数据库设计所暴露出的问题入手,不断努力完善自己,哪里欠缺,哪里补足。
展开阅读全文