首页

> 学术发表知识库

首页 学术发表知识库 问题

数据库查询优化研究论文课程设计

发布时间:

数据库查询优化研究论文课程设计

数据库课程设计题目:小型超市管理系统1、项目计划1.1系统开发目的(1)大大提高超市的运作效率;(2)通过全面的信息采集和处理,辅助提高超市的决策水平;(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。1.2背景说明21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。1.3项目确立针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。1.4应用范围本系统适应于各种小型的超市。1.5 定义(1)商品条形码:每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。(2)交易清单:包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。(3)商品积压:在一定时期内,远无法完成销售计划的商品会造成积压。(4)促销:在一定时期内,某些商品会按低于原价的促销价格销售。库存告警提示:当商品的库存数量低于库存报警数量时发出提示。(5)盘点:计算出库存、销售额、盈利等经营指标。1.6 参考资料《数据库原理及设计》 陶宏才编 清华大学出版社《SQL Server 2000 实用教程》范立南编 清华大学出版社《SQL Server 2000 编程员指南》李香敏编 北京希望电子出版社《轻松搞定 SQL Server 2000 程序设计》Rebecca M.Riordan编《软件工程规范》Watts S.Humphrey编 清华大学出版社《软件工程理论与实践》 Shari Lawrence Pfleeger编 清华大学出版社《软件需求分析》 Swapna Kishore编 机械工业出版社《软件工程思想》 林锐编2、逻辑分析与详细分析2.1系统功能 (1)、零售前台(POS)管理系统,本系统必须具有以下功能: 商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。 收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。 会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。 安全性:OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。  独立作业:有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业(2)、后台管理系统,本系统必须具备以下功能 进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。 销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。 库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。 人员管理: 员工、会员、供货商、厂商等基本信息登记管理。 员工操作权限管理。 客户销售权限管理。(3)系统结构系统总体结构模块子系统结构功能描述:商品录入子系统要求能快速录入商品,因此必须支持条形码扫描。功能描述:收银业务子系统能计算交易总额,打印交易清单,并根据会员卡打折。功能描述:进货管理子系统可以根据库存自动指定进货计划,进货时自动等级,以及提供查询和打印计划进货与入库记录的功能。功能描述:销售管理子系统可以控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表,同时可以生成销售排行榜。功能描述:库存管理子系统提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。功能描述:人员管理子系统提供基本信息登记管理,员工操作权限管理,客户销售权限管理的功能。2.2、流程图前台管理系统顶层DFD图 第0层DFD图第1层DFD图2.3、户类型与职能(1)、员工(营业员): 通过商品条形码扫描输入商品到购买清单 操作软件计算交易总金额 操作软件输出交易清单 对会员进行会员卡扫描以便打折(2)、:超市经理 操作软件录入商品,供货商,厂商 操作软件制定进货计划 查询打印计划进货与入库记录 操作软件控制商品销售与否 查询打印销售情况 操作软件生成销售排行榜 查询库存明细记录 根据软件发出的库存告警进行入货 操作软件进行盘点计算(3)、总经理: 基本信息登记管理 员工操作权限管理 客户销售权限管理2.4、统开发步骤 确定参与者和相关的用况 为每个用况设计过程 建立顺序图,确定每个脚本中对象的协作 创建类,确定脚本中的对象 设计, 编码, 测试, 集成类 为过程编写系统测试案例 运行测试案例,检验系统2.5、系统环境需求 系统模式 本系统采用C/S模式作为开发模式 硬件环境 服务器端: 高性能的计算机一台, 普通的双绞线作为连接。 客户端: 普通的计算机或者工作站, 普通的双绞线作为连接。 软件环境 服务器端:安装SQL Server 2000的服务器版本,安装windows 2000服务器版本, 配置了诺顿等必须的防毒软件。 客户端: 安装SQL Server2000的服务器版本, 安装了VB等可视化开发工具软件, 安装windows2000服务器版本。2.6、系统安全问题信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。  系统要能重建 系统应该是可审查的 系统应能进行有效控制,抗干扰能力强 系统使用者的使用权限是可识别的3、基于UML的建模3.1语义规则用例模型(use cases view)(用例视图)的基本组成部件是用例(use case)、角色(actor)和系统(system)。用例用于描述系统的功能,也就是从外部用户的角度观察,系统应支持哪些功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述,一个完整的系统中通常包含若干个用例,每个用例具体说明应完成的功能,代表系统的所有基本功能(集)。角色是与系统进行交互的外部实体,它可以是系统用户,也可以是其它系统或硬件设备,总之,凡是需要与系统交互的任何东西都可以称作角色。系统的边界线以内的区域(即用例的活动区域)则抽象表示系统能够实现的所有基本功能。在一个基本功能(集)已经实现的系统中,系统运转的大致过程是:外部角色先初始化用例,然后用例执行其所代表的功能,执行完后用例便给角色返回一些值,这个值可以是角色需要的来自系统中的任何东西。UML:是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示;它不是一种可视化的程序设计语言而是一种可视化的建模语言;不是工具或知识库的规格说明而是一种建模语言规格说明是一种表示的标准;不是过程也不是方法但允许任何一种过程和方法使用它。用例(use case):参与者(actor):3.2、UML模型3.21、系统UML模型 3.22、子系统UML模型(1)零售前台(POS)管理系统用例视图 (2)后台管理系统用例视图3.3、系统实现图4、超市销售系统概念设计文档(1)、系统ER图(2)、系统ER图说明1) 商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;2) 每个顾客可以购买多种商品,不同商品可由不同顾客购买;3) 每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。(3)、视图设计1) 交易视图(v_Dealing)——用于查询交易情况的视图;2) 计划进货视图(v_PlanStock)——用于查询进货计划的视图;3) 销售视图(v_Sale)——用于查询销售明细记录的视图;4) 入库视图(v_Stock)——用于查询入库情况的视图。5、逻辑设计文档(1)、系统关系模型a) 商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)b) 用户表(用户编号,用户名称,用户密码,用户类型)c) 会员表(会员编号,会员卡号,累积消费金额,注册日期)d) 销售表(销售编号,商品编号,销售数量,销售金额,销售日期)e) 交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)f) 进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)g) 供货商表(供货商编号,供货商名称,供货商地址,供货商电话)h) 厂商表(厂商编号,厂商名称,厂商地址,厂商电话)(2)、系统数据库表结构数据库表索引 表名 中文名MerchInfo 商品信息表User 用户表Menber 会员表Sale 销售表Dealing 交易表Stock 进货入库表Provide 供货商表Factory 厂商表商品信息表(MerchInfo)字段名 字段类型 长度 主/外键 字段值约束 对应中文名MerchID int 4 P Not null 商品编号MerchName Varchar 50 Not null 商品名称MerchPrice Money 4 Not null 价格MerchNum Int 4 Not null 库存数量CautionNum Int 4 Not null 库存报警数量PlanNum Int 4 null 计划进货数BarCode Varchar 50 Not null 条形码SalesProPrice Money 4 促销价格SalesProDateS Datetime 8 促销起日期SalesProDateE Datetime 8 促销止日期AllowAbate Int 4 Not null 允许打折AllowSale Int 4 Not null 允许销售FactoryID Varchar 10 F Not null 厂商编号ProvideID Varchar 10 F Not null 供货商编号用户表(User)字段名 字段类型 长度 主/外键 字段值约束 对应中文名UserID varchar 10 P Not null 用户编号UserName Varchar 25 Not null 用户名称UserPW Varchar 50 Not null 用户密码UserStyle Int 4 Not null 用户类型会员表(Menber)字段名 字段类型 长度 主/外键 字段值约束 对应中文名MemberID Varchar 10 P Not null 会员编号MemberCard Varchar 20 Not null 会员卡号TotalCost Money 4 Not null 累积消费金额RegDate Datetime 8 Not null 注册日期销售表(Sale)字段名 字段类型 长度 主/外键 字段值约束 对应中文名SaleID Varchar 10 P Not null 销售编号MerChID Varchar 10 F Not null 商品编号SaleDate Datetime 8 Not null 销售日期SaleNum Int 4 Not null 销售数量SalePrice Money 4 Not null 销售单额交易表(Dealing)字段名 字段类型 长度 主/外键 字段值约束 对应中文名DealingID Varchar 10 P Not null 交易编号DealingPrice Money 4 Not null 交易金额DealingDate Money 4 Not null 交易日期MemberID Varchar 10 会员卡号UserName Varchar 10 F Not null 用户名称入库纪录表(Stock)字段名 字段类型 长度 主/外键 字段值约束 对应中文名StockID Varchar 10 P Not null 入库编号MerchID Varchar 10 F Not null 入库商品编号MerchNum Int 4 Not null 入库数量MerchPrice Money 4 Not null 单额TotalPrice Money 4 Not null 总额StockDate Datetime 8 Datetime 入库日期PlanDate Datetime 8 Datetime 计划进货日期StockState Int 4 Not null 入库状态供货商表(Provide)字段名 字段类型 长度 主/外键 字段值约束 对应中文名ProvideID varchar 10 P Not null 供货商编号ProvideName Varchar 50 Not null 供货商名称ProvideAddress Varchar 250 供货商地址ProvidePhone Varchar 25 供货商电话厂商表(Provide)字段名 字段类型 长度 主/外键 字段值约束 对应中文名FactoryID varchar 10 P Not null 厂商编号FactoryName Varchar 50 Not null 厂商名称FactoryAddress Varchar 250 厂商地址FactoryPhone Varchar 25 厂商电话6、物理设计文档/*----------创建数据库----------*/create database SuperMarketdbon primary(name=SuperMarketdb,filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf',size=100MB,maxsize=200MB,filegrowth=20MB)log on(name=SuperMarketlog,filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf',size=60MB,maxsize=200MB,filegrowth=20MB)go/*----------创建基本表----------*/use [SuperMarketdb]go/*创建交易表*/CREATE TABLE Dealing ( DealingID int identity(1,1) Primary key , DealingDate datetime NOT NULL , DealingPrice money NOT NULL , UserName varchar(25) NULL , MemberCard varchar(20) NULL) GO/*创建厂商表*/CREATE TABLE Factory ( FactoryID varchar(10) Primary key , FactoryName varchar(50) NOT NULL , FactoryAddress varchar(250) NULL , FactoryPhone varchar(50) NULL )GO/*创建会员表*/CREATE TABLE Member ( MemberID varchar(10) Primary key , MemberCard varchar(20) NOT NULL , TotalCost money NOT NULL , RegDate datetime NOT NULL )GO/*创建商品信息表*/CREATE TABLE MerchInfo ( MerchID int identity(1,1) Primary key , MerchName varchar(50) Unique NOT NULL , MerchPrice money NOT NULL , MerchNum int NOT NULL , CautionNum int NOT NULL , PlanNum int NOT NULL , BarCode varchar(20) Unique NOT NULL , SalesProPrice money NULL , SalesProDateS datetime NULL , SalesProDateE datetime NULL , AllowAbate int NOT NULL , AllowSale int NOT NULL , FactoryID int NOT NULL , ProvideID int NOT NULL) GO/*创建供应商表*/CREATE TABLE Provide ( ProvideID varchar(10) Primary key , ProvideName varchar(50) NOT NULL , ProvideAddress varchar(250) NULL , ProvidePhone varchar(25) NULL )GO/*创建销售表*/CREATE TABLE Sale ( SaleID int identity(1,1) Primary key , MerChID int NOT NULL , SaleDate datetime NOT NULL , SaleNum int NOT NULL, SalePrice money NOT NULL) GO/*创建入库表*/CREATE TABLE Stock ( StockID int identity(1,1) Primary key , MerchID int NOT NULL , MerchNum int NOT NULL , MerchPrice money NULL , TotalPrice money NULL , PlanDate datetime NULL , StockDate datetime NULL, StockState int NOT NULL) GO/*创建用户表*/CREATE TABLE User ( UserID varchar(10) Primary key , UserName varchar(25) NOT NULL , UserPW varchar(50) NOT NULL , UserStyle int NOT NULL ,)GO/*----------创建表间约束----------*//*商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束*/ALTER TABLE MerchInfo ADD CONSTRAINT [FK_MerchInfo_Factory] FOREIGN KEY ( [FactoryID] ) REFERENCES Factory ( [FactoryID] ), CONSTRAINT [FK_MerchInfo_Provide] FOREIGN KEY ( [ProvideID] ) REFERENCES Provide ( [ProvideID] )GO/*销售表中商品编号与商品信息表之间的外键约束*/ALTER TABLE Sale ADD CONSTRAINT [FK_Sale_MerchInfo] FOREIGN KEY ( [MerChID] ) REFERENCES MerchInfo ( [MerchID] ) ON DELETE CASCADE GO/*入库表中商品编号与商品信息表之间的外键约束*/ALTER TABLE Stock ADD CONSTRAINT [FK_Stock_MerchInfo] FOREIGN KEY ( [MerchID] ) REFERENCES MerchInfo ( [MerchID] ) ON DELETE CASCADE GO/*----------创建索引----------*//*在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引*/CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)GO/*在商品信息表上建立一个以商品编号为索引项的非聚集索引*/CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)GO/*在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引*/CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)GO/*在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引*/CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)GO/*----------创建视图----------*//*创建用于查询交易情况的视图*/CREATE VIEW v_DealingASSELECT DealingDate as 交易日期, UserName as 员工名称, MemberCard as 会员卡号, DealingPrice as 交易金额FROM Dealing GO/*创建用于查询进货计划的视图*/CREATE VIEW v_PlanStockASSELECT Stock.StockID as SID, MerchInfo.MerchName as 商品名称, MerchInfo.BarCode as 条形码, Factory.FactoryName as 厂商, Provide.ProvideName as 供货商, Stock.MerchNum as 计划进货数量, Stock.PlanDate as 计划进货日期FROM Stock,MerchInfo,Provide,FactoryWhere Stock.MerchID = MerchInfo.MerchID and Provide.ProvideID=MerchInfo.ProvideID and Factory.FactoryID=MerchInfo.FactoryID and Stock.StockState=0 GO/*创建用于查询销售明细记录的视图*/CREATE VIEW v_SaleASSELECT MerchInfo.MerchName as 商品名称, MerchInfo.BarCode as 条形码, MerchInfo.MerchPrice as 商品价格, Sale.SalePrice as 销售价格, Sale.SaleNum as 销售数量, Sale.SaleDate as 销售日期FROM Sale INNER JOIN MerchInfo ON Sale.MerChID = MerchInfo.MerchID GO/*创建用于查询入库情况的视图*/CREATE VIEW v_StockASSELECT MerchInfo.MerchName as 商品名称, MerchInfo.BarCode as 条形码, Factory.FactoryName as 厂商, Provide.ProvideName as 供货商, Stock.MerchPrice as 入库价格, Stock.MerchNum as 入库数量, Stock.TotalPrice as 入库总额, Stock.StockDate as 入库日期FROM Stock,MerchInfo,Provide,FactoryWhere Stock.MerchID = MerchInfo.MerchID and Provide.ProvideID=MerchInfo.ProvideID and Factory.FactoryID=MerchInfo.FactoryID and Stock.StockState=1 GO7、小结和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本, 提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力, 提供有效的技术保障。由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如: 本系统只适合小型超市使用,不能适合中大型超市使用; 超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能;对于以上出现的问题,我们深表歉意,如发现还有其它问题,希望老师批评指正。

系统优化,加内存

利用合理建表、索引、存储过程。

本文首先讨论了基于第三范式的数据库表的基本设计,着重论述了建立主键和索引的策略和方案,然后从数据库表的扩展设计和库表对象的放置等角度概述了数据库管理系统的优化方案。 关键词: 优化(Optimizing) 第三范式(3NF) 冗余数据(Redundant Data) 索引(Index) 数据分割(Data Partitioning) 对象放置(Object Placement) 1 引言 数据库优化的目标无非是避免磁盘I/O瓶颈、减少CPU利用率和减少资源竞争。为了便于读者阅读和理解,笔者参阅了Sybase、Informix和Oracle等大型数据库系统参考资料,基于多年的工程实践经验,从基本表设计、扩展设计和数据库表对象放置等角度进行讨论,着重讨论了如何避免磁盘I/O瓶颈和减少资源竞争,相信读者会一目了然。 2 基于第三范式的基本表设计 在基于表驱动的信息管理系统(MIS)中,基本表的设计规范是第三范式(3NF)。第三范式的基本特征是非主键属性只依赖于主键属性。基于第三范式的数据库表设计具有很多优点:一是消除了冗余数据,节省了磁盘存储空间;二是有良好的数据完整性限制,即基于主外键的参照完整限制和基于主键的实体完整性限制,这使得数据容易维护,也容易移植和更新;三是数据的可逆性好,在做连接(Join)查询或者合并表时不遗漏、也不重复;四是因消除了冗余数据(冗余列),在查询(Select)时每个数据页存的数据行就多,这样就有效地减少了逻辑I/O,每个Cash存的页面就多,也减少物理I/O;五是对大多数事务(Transaction)而言,运行性能好;六是物理设计(Physical Design)的机动性较大,能满足日益增长的用户需求。 在基本表设计中,表的主键、外键、索引设计占有非常重要的地位,但系统设计人员往往只注重于满足用户要求,而没有从系统优化的高度来认识和重视它们。实际上,它们与系统的运行性能密切相关。现在从系统数据库优化角度讨论这些基本概念及其重要意义: (1)主键(Primary Key):主键被用于复杂的SQL语句时,频繁地在数据访问中被用到。一个表只有一个主键。主键应该有固定值(不能为Null或缺省值,要有相对稳定性),不含代码信息,易访问。把常用(众所周知)的列作为主键才有意义。短主键最佳(小于25bytes),主键的长短影响索引的大小,索引的大小影响索引页的大小,从而影响磁盘I/O。主键分为自然主键和人为主键。自然主键由实体的属性构成,自然主键可以是复合性的,在形成复合主键时,主键列不能太多,复合主键使得Join*作复杂化、也增加了外键表的大小。人为主键是,在没有合适的自然属性键、或自然属性复杂或灵敏度高时,人为形成的。人为主键一般是整型值(满足最小化要求),没有实际意义,也略微增加了表的大小;但减少了把它作为外键的表的大小。 (2)外键(Foreign Key):外键的作用是建立关系型数据库中表之间的关系(参照完整性),主键只能从独立的实体迁移到非独立的实体,成为后者的一个属性,被称为外键。 (3)索引(Index):利用索引优化系统性能是显而易见的,对所有常用于查询中的Where子句的列和所有用于排序的列创建索引,可以避免整表扫描或访问,在不改变表的物理结构的情况下,直接访问特定的数据列,这样减少数据存取时间;利用索引可以优化或排除耗时的分类*作;把数据分散到不同的页面上,就分散了插入的数据;主键自动建立了唯一索引,因此唯一索引也能确保数据的唯一性(即实体完整性);索引码越小,定位就越直接;新建的索引效能最好,因此定期更新索引非常必要。索引也有代价:有空间开销,建立它也要花费时间,在进行Insert、Delete和Update*作时,也有维护代价。索引有两种:聚族索引和非聚族索引。一个表只能有一个聚族索引,可有多个非聚族索引。使用聚族索引查询数据要比使用非聚族索引快。在建索引前,应利用数据库系统函数估算索引的大小。 ① 聚族索引(Clustered Index):聚族索引的数据页按物理有序储存,占用空间小。选择策略是,被用于Where子句的列:包括范围查询、模糊查询或高度重复的列(连续磁盘扫描);被用于连接Join*作的列;被用于Order by和Group by子句的列。聚族索引不利于插入*作,另外没有必要用主键建聚族索引。 ② 非聚族索引(Nonclustered Index):与聚族索引相比,占用空间大,而且效率低。选择策略是,被用于Where子句的列:包括范围查询、模糊查询(在没有聚族索引时)、主键或外键列、点(指针类)或小范围(返回的结果域小于整表数据的20%)查询;被用于连接Join*作的列、主键列(范围查询);被用于Order by和Group by子句的列;需要被覆盖的列。对只读表建多个非聚族索引有利。索引也有其弊端,一是创建索引要耗费时间,二是索引要占有大量磁盘空间,三是增加了维护代价(在修改带索引的数据列时索引会减缓修改速度)。那么,在哪种情况下不建索引呢?对于小表(数据小于5页)、小到中表(不直接访问单行数据或结果集不用排序)、单值域(返回值密集)、索引列值太长(大于20bitys)、容易变化的列、高度重复的列、Null值列,对没有被用于Where子语句和Join查询的列都不能建索引。另外,对主要用于数据录入的,尽可能少建索引。当然,也要防止建立无效索引,当Where语句中多于5个条件时,维护索引的开销大于索引的效益,这时,建立临时表存储有关数据更有效。 批量导入数据时的注意事项:在实际应用中,大批量的计算(如电信话单计费)用C语言程序做,这种基于主外键关系数据计算而得的批量数据(文本文件),可利用系统的自身功能函数(如Sybase的BCP命令)快速批量导入,在导入数据库表时,可先删除相应库表的索引,这有利于加快导入速度,减少导入时间。在导入后再重建索引以便优化查询。 (4)锁:锁是并行处理的重要机制,能保持数据并发的一致性,即按事务进行处理;系统利用锁,保证数据完整性。因此,我们避免不了死锁,但在设计时可以充分考虑如何避免长事务,减少排它锁时间,减少在事务中与用户的交互,杜绝让用户控制事务的长短;要避免批量数据同时执行,尤其是耗时并用到相同的数据表。锁的征用:一个表同时只能有一个排它锁,一个用户用时,其它用户在等待。若用户数增加,则Server的性能下降,出现“假死”现象。如何避免死锁呢?从页级锁到行级锁,减少了锁征用;给小表增加无效记录,从页级锁到行级锁没有影响,若在同一页内竞争有影响,可选择合适的聚族索引把数据分配到不同的页面;创建冗余表;保持事务简短;同一批处理应该没有网络交互。 (5)查询优化规则:在访问数据库表的数据(Access Data)时,要尽可能避免排序(Sort)、连接(Join)和相关子查询*作。经验告诉我们,在优化查询时,必须做到: ① 尽可能少的行; ② 避免排序或为尽可能少的行排序,若要做大量数据排序,最好将相关数据放在临时表中*作;用简单的键(列)排序,如整型或短字符串排序; ③ 避免表内的相关子查询; ④ 避免在Where子句中使用复杂的表达式或非起始的子字符串、用长字符串连接; ⑤ 在Where子句中多使用“与”(And)连接,少使用“或”(Or)连接; ⑥ 利用临时数据库。在查询多表、有多个连接、查询复杂、数据要过滤时,可以建临时表(索引)以减少I/O。但缺点是增加了空间开销。 除非每个列都有索引支持,否则在有连接的查询时分别找出两个动态索引,放在工作表中重新排序。 3 基本表扩展设计 基于第三范式设计的库表虽然有其优越性(见本文第一部分),然而在实际应用中有时不利于系统运行性能的优化:如需要部分数据时而要扫描整表,许多过程同时竞争同一数据,反复用相同行计算相同的结果,过程从多表获取数据时引发大量的连接*作,当数据来源于多表时的连接*作;这都消耗了磁盘I/O和CPU时间。 尤其在遇到下列情形时,我们要对基本表进行扩展设计:许多过程要频繁访问一个表、子集数据访问、重复计算和冗余数据,有时用户要求一些过程优先或低的响应时间。 如何避免这些不利因素呢?根据访问的频繁程度对相关表进行分割处理、存储冗余数据、存储衍生列、合并相关表处理,这些都是克服这些不利因素和优化系统运行的有效途径。 3.1 分割表或储存冗余数据 分割表分为水平分割表和垂直分割表两种。分割表增加了维护数据完整性的代价。 水平分割表:一种是当多个过程频繁访问数据表的不同行时,水平分割表,并消除新表中的冗余数据列;若个别过程要访问整个数据,则要用连接*作,这也无妨分割表;典型案例是电信话单按月分割存放。另一种是当主要过程要重复访问部分行时,最好将被重复访问的这些行单独形成子集表(冗余储存),这在不考虑磁盘空间开销时显得十分重要;但在分割表以后,增加了维护难度,要用触发器立即更新、或存储过程或应用代码批量更新,这也会增加额外的磁盘I/O开销。 垂直分割表(不破坏第三范式),一种是当多个过程频繁访问表的不同列时,可将表垂直分成几个表,减少磁盘I/O(每行的数据列少,每页存的数据行就多,相应占用的页就少),更新时不必考虑锁,没有冗余数据。缺点是要在插入或删除数据时要考虑数据的完整性,用存储过程维护。另一种是当主要过程反复访问部分列时,最好将这部分被频繁访问的列数据单独存为一个子集表(冗余储存),这在不考虑磁盘空间开销时显得十分重要;但这增加了重叠列的维护难度,要用触发器立即更新、或存储过程或应用代码批量更新,这也会增加额外的磁盘I/O开销。垂直分割表可以达到最大化利用Cache的目的。 总之,为主要过程分割表的方法适用于:各个过程需要表的不联结的子集,各个过程需要表的子集,访问频率高的主要过程不需要整表。在主要的、频繁访问的主表需要表的子集而其它主要频繁访问的过程需要整表时则产生冗余子集表。 注意,在分割表以后,要考虑重新建立索引。 3.2 存储衍生数据 对一些要做大量重复性计算的过程而言,若重复计算过程得到的结果相同(源列数据稳定,因此计算结果也不变),或计算牵扯多行数据需额外的磁盘I/O开销,或计算复杂需要大量的CPU时间,就考虑存储计算结果(冗余储存)。现予以分类说明: 若在一行内重复计算,就在表内增加列存储结果。但若参与计算的列被更新时,必须要用触发器更新这个新列。 若对表按类进行重复计算,就增加新表(一般而言,存放类和结果两列就可以了)存储相关结果。但若参与计算的列被更新时,就必须要用触发器立即更新、或存储过程或应用代码批量更新这个新表。 若对多行进行重复性计算(如排名次),就在表内增加列存储结果。但若参与计算的列被更新时,必须要用触发器或存储过程更新这个新列。 总之,存储冗余数据有利于加快访问速度;但违反了第三范式,这会增加维护数据完整性的代价,必须用触发器立即更新、或存储过程或应用代码批量更新,以维护数据的完整性。 3.3 消除昂贵结合 对于频繁同时访问多表的一些主要过程,考虑在主表内存储冗余数据,即存储冗余列或衍生列(它不依赖于主键),但破坏了第三范式,也增加了维护难度。在源表的相关列发生变化时,必须要用触发器或存储过程更新这个冗余列。当主要过程总同时访问两个表时可以合并表,这样可以减少磁盘I/O*作,但破坏了第三范式,也增加了维护难度。对父子表和1:1关系表合并方法不同:合并父子表后,产生冗余表;合并1:1关系表后,在表内产生冗余数据。 4 数据库对象的放置策略 数据库对象的放置策略是均匀地把数据分布在系统的磁盘中,平衡I/O访问,避免I/O瓶颈。 ⑴ 访问分散到不同的磁盘,即使用户数据尽可能跨越多个设备,多个I/O运转,避免I/O竞争,克服访问瓶颈;分别放置随机访问和连续访问数据。 ⑵ 分离系统数据库I/O和应用数据库I/O。把系统审计表和临时库表放在不忙的磁盘上。 ⑶ 把事务日志放在单独的磁盘上,减少磁盘I/O开销,这还有利于在障碍后恢复,提高了系统的安全性。 ⑷ 把频繁访问的“活性”表放在不同的磁盘上;把频繁用的表、频繁做Join*作的表分别放在单独的磁盘上,甚至把把频繁访问的表的字段放在不同的磁盘上,把访问分散到不同的磁盘上,避免I/O争夺; ⑸ 利用段分离频繁访问的表及其索引(非聚族的)、分离文本和图像数据。段的目的是平衡I/O,避免瓶颈,增加吞吐量,实现并行扫描,提高并发度,最大化磁盘的吞吐量。利用逻辑段功能,分别放置“活性”表及其非聚族索引以平衡I/O。当然最好利用系统的默认段。另外,利用段可以使备份和恢复数据更加灵活,使系统授权更加灵活。

数据库结构的优化设计与研究论文

计算机专业论文题目大全_计算机专业论文.计算机科学与技术专业选题方向参考、撰写提示及计算机专业论文参考书目 计算机专业学生可以在以下计算机学科的二级学科下选择计算机专业论文的具体方向:计算机系统结构、计算机软件与理论、计算机应用技术、信息安全、电子商务。 【选题方向1 】计算机应用技术 计算机应用技术,狭义的说是指可以利用任何一种计算机软件的任何一功能,为可能用到它的人提供一定的服务;广义的说是指对各种软件的各种功能/设置属性有足够的了解和应用能力,可以在各种情况下驾驭计算机高效率的为不同人群提供他们所需要的各种服务。凡是利用计算机软件,为需要或者可能需要它的人提供服务的技术,就是计算机应用技术。 Ø 参考论文题目: 1. 数据库管理系统 2.信息管理系统设计与实现 3. 信息管理(B/S) 4. 实验室管理系统设计 5. 政府信息化管理 6. 超市管理系统设计 7. 基于校园网的交互式网络教学系统 8. 网络服务系统的设计 9. 在线考试系统设计 10. ASP.NET的网站新闻管理系统设计与实现 11.网页设计制作规范 12.计算机图形学在装饰设计中的应用 13.关联规则在教育挖掘中的应用 14.图形图像文件格式的应用领域的探讨 15.数字图像处理与模式识别在交通方面的应用领域及其重要意义 16.多媒体光盘设计与制作 17.FLASH在网页设计中的应用 18. 主题信息采集的优化设计研究与实现 19.三维装饰效果图制作 20. 进销存管理信息系统开发 21. 三维地形生成研究及实现 【选题方向2 】计算机软件与理论 计算机软件与理论主要研究软件设计、开发、维护和使用过程中涉及的软件理论、方法和技术,探讨计算机科学与技术发展的理论基础。 Ø 参考论文题目: 1.单位组网(或校园网)实施方案设计 2.设计一个可以计时的且可以校时的数字钟 3.规范架建校园网络的设想 4.基于J2ME的手机应用程序开发实践 5.小型图文制作公司创建的企划方案与设计 6.漫画风格的人脸肖像画生成算法 7.图像的几何变换算法研究及实现 8.关于图象内容认证方法的研究 9.基于JAVA的Pascal语言编译系统 10. WebService 在虚拟旅游平台流程管理中的应用 11. 数据库结构的优化设计与研究 12. 中小企业网络系统设计 13. 语音机器人之软件程序设计与实现 14. 语音机器人之库文件设计与实现 15. MP3音乐播放器软件程序设计与实现 16. 出租车计价器软件程序设计与实现 17. 人才管理系统设计与实现 18. 图书管理系统设计与实现 19. 蚂蚁算法的研究与实现 20. 免疫算法的研究与实现 21. 灰色预测模型的研究与实现 22. 高级程序设计语言多媒体教学课件设计 23. 小型网络管理中基于移动Agent 数据采集 【选题方向3 】计算机系统结构 计算机系统结构研究计算机硬件与软件的功能分配、软硬件界面的划分、计算机硬件结构、组成与实现方法与技术。计算机应用技术研究应用计算机到各个领域的原理、方法和技术,所涉及的研究内容非常广泛。 Ø 参考论文题目: 1.USB通信方式研究 2.网络故障诊断初探 3.Win2003服务器RPL远程启动服务的安装与实现 4.轻量级嵌入式实时操作系统 5.小型网络管理中基于移动Agent 数据采集 6.基于ARM与嵌入式linux的系统设计 7.基于UP-NETARM3000的MP3音频播放器 8.交通控制系统之软件程序设计与实现 9.交通控制系统之控制板的设计与实现 10. ACM/icpc网上竞赛系统 11. 网上售票系统 12. 基于SNMP协议的网络管理 13. 发现用户兴趣的Agent系统 14. 基于web技术的资料查询系统的设计与实现 15. 基于蓝牙的嵌入式智能车载卡设计与开发 16. 基于3G的网络语音视频传输系统 17. 基于socket的网络游戏设计与实现 18. 多目标优化技术的研究与实现 【选题方向4 】信息安全 信息安全专业是在计算机科学与技术专业基础上发展起来的专业,随着计算机技术应用领域的扩展,信息安全越显重要。 本专业培养学生具有扎实的理论基础和全面的计算机技术和信息安全专业知识,使得学生有较宽的知识面和进一步发展的基本能力。主要研究网络环境下的信息安全、计算机病毒的防治和数据加密等方面的理论和技术研究 Ø 参考论文题目: 1. 电子商务中的信任认证 2.电子商务中的安全问题 3.电子商务中信息传递安全问题研究 4.电子商务中加密技术研究与应用 5. 网络安全黑客攻击手段分析 6. 校园网络安全的研究 7. 论计算机网络犯罪 8. 计算机网络及网络安全 9. 基于Linux系统的网络安全策略 10. 论网络环境下的防范“黑客”技术 11. 计算机网络信息系统安全问题的分析与对策 12. 金融信息系统安全性研究 13. 电子支付系统方案研究 14.防火墙技术的应用研究 15. 防火墙与Intranet安全性研究 16.证券交易中心网络系统的研究与实现 17. 电子商务中安全研究 18. 数据库安全保护研究 【选题方向5 】电子商务 电子商务,ElectronicCommerce,简称EC。电子商务通常是指是在全球各地广泛的商业贸易活动中,在因特网开放的网络环境下,基于浏览器/服务器应用方式,买卖双方不谋面地进行各种商贸活动,实现消费者的网上购物、商户之间的网上交易和在线电子支付以及各种商务活动、交易活动、金融活动和相关的综合服务活动的一种新型的商业运营模式。 Ø 参考论文题目: 1. 计算机网络在保险业信息系统中的实现方案 2. 电子商务模拟软件设计—网上商店 3. 某类型商务网站系统的开发与设计 4. 企业网络建设 5. 企业管理信息系统 6. 网上展示系统 7. 电子商务教学实验系统 8. 电子支付模拟平台设计 9.电子商务交易模拟平台设计 10. 网络银行模拟平台设计 11.电子商务教学实验系统 12. 网络营销教学实验系统 13. CRM客户关系管理系统 14. 电子商务网站建设研究 15. Internet和Intranet数据库访问技术

信息管理中数据库技术问题的解决论文

数据库技术这一概念是从西方传到我国的,目前在我国得到了广泛应用。数据库技术就是对各种信息资源的有效整合和利用,凭借其技术优势,在我国信息管理领域得到了高度重视,数据库本身也得到了不断完善和发展。但对其应用现状分析可见,数据库技术在信息管理领域得到广泛应用的同时,也存在一定的缺陷和问题。针对这一现状,加强数据库系统的完整性,促进信息管理和数据库技术的一体化发展,提高数据库技术的安全性,能有效推动数据库技术的完善和发展,同时为信息管理工作提供极大便利,为当代信息化事业的持续发展提供必要的技术支持。

1数据库技术的发展概述

1.1数据库技术的内涵

在信息管理工作中,数据库技术是核心环节,也是信息管理工作最有效的辅助手段之一。数据库技术是通过研究数据库的结构、存储、设计、管理及应用的基本理论和实现方法,并利用这些理论来实现对数据库中的数据进行处理、分析和理解的技术,即数据库技术是研究、管理和应用数据库的一门软件科学。数据库技术研究的对象是建立数据库,通过数据库技术来完成对相关数据信息的分析和处理,使其最终实现数据库技术的完整性和合理性。数据库技术的.应用常出现在公司、企业、机构、单位等内部事务的处理和信息资源的搜索及计算机辅助等方面。

1.2数据库技术的特点分析

在信息管理中应用的数据库技术的主要特点是能及时处理相关信息,且具有良好的有效性。随着数据库资源的不断丰富和发展,数据库技术也不断被应用于个人电脑中,从而使互联网和数据库技术的融合更加默契。在20世纪的中后期,数据库技术的特点并没有明显的表现出来,更没有得到最有效发挥。但在现阶段,随着经济的飞速发展,数据库在紧密与互联网技术结合的基础上,已逐渐形成了一个规模庞大的数据处理系统,有力提升了对海量数据的处理能力,有效避免了一些不良信息给人们工作和生活带来的损失,为用户提供了更多更全面的数据信息,极大扩充了数据库的规模,同时也促进了数据库技术的不断发展。

2信息管理中数据库技术的特征分析

2.1数据库技术在应用过程中得到不断完善

随着信息技术的快速发展,数据库的运行模式逐渐发生变化,对数据的分析和管理有了新的应用,经过多次更新的数据库技术,拥有了更强大的功能,其存储模式与现代最新技术相融合,能使数据资源得到有效共享,优化了数据库结构体系,一定程度上改善控制功能;另外,数据库在查询检索方面也有进步,经过对结构系统的全面管理,查询速度比之前的速度快了将近十倍。

2.2对数据库技术的重视程度明显加强

数据库技术的广泛应用给社会发展带来了诸多便利,所以,数据库技术的应用逐渐呈现出不断扩大的趋势,且人们也对其给予了高度重视。数据库技术中计算机技术的融入,使数据库技术的发展前景更加广阔,尤其是我国第三产业的发展,更离不开数据库技术的支持和信息维护。同时,数据库技术的发展,也极大促进了我国生产力水平的提高。数据库技术具有良好的实用性功能,它能有效满足第三产业对发展的需求,如一些数字、文字及图形等形式的数据信息常常被看作是记录各种经营和管理的重要依据,通过数据库技术的处理和存储,能有效保护重要数据的交流和传输。因此,数据库技术的应用备受关注和重视。

3信息管理中数据库技术存在的问题

数据库技术在信息管理中处于核心地位,一旦数据库出现异常,将会对信息管理造成不可挽回的损失。一般数据库可能出现的问题有数据存储方式路径错误,信息服务拒绝接受正常服务,获取非法数据等。造成数据库出现问题的原因主要包括hacker盗取重要信息,设备故障导致网络信息的泄露等。数据库的安全威胁主要来自人为的恶意攻击和设备故障或管理失误等。

4解决好信息管理中数据库技术问题

4.1加强数据库系统的完整性

整个数据库系统的完整性是保证完整的数据库技术程序正常运行的重要条件。根据系统的结构改进数据库设计,通过数据库管理系统(DBMS)和应用程序来实现设计的完整性。应用软件根据设计思路来实现数据库的完整性,帮助解决信息数据库的技术问题。

4.2提高数据库技术的安全性

数据库在信息管理中的应用非常广泛,因此,提高数据库的安全性尤为重要。提高安全性就是对数据库中的信息设置保护屏障,有效保障信息安全。一般的安全保护措施有三种,分别是登陆身份的验证信息管理、数据库使用人和使用对象的权限管理,根据数据库的不同特点,对数据库的账号设置进行不同程度的调整,在应用程序服务器的设置功能时,首先要备份数据库的重要信息,以更好地提高信息管理中数据库技术的安全。

4.3促进信息化管理和数据库技术的一体化发展

加大数据库技术在信息管理中的应用,实现信息管理与数据库的一体化发展。加强信息管理与数据库技术的一体化成为目前数据管理工作中最为重要的环节,其能有效维护数据库的性能,使数据库与信息管理之间的关系更为密切。相关工作人员通过信息管理系统也能更好地进行数据维护工作,对信息进行高效监管,从而不断促进信息系统的统一更改和完善,进而加强数据库的管理,为用户提供更多更高效的信息服务,逐步实现数据量与信息化管理的一体化发展。

5结语

随着信息化技术的不断发展,数据库技术已逐步融入到信息化管理领域,再加上计算机技术的不断普及,信息化管理中的数据库技术应用也得到不断推广。本文对数据库技术在信息管理中的应用进行分析和探讨,使人们对数据库技术有了一个新的认识,为数据管理人员开展系统维护工作提供借鉴。同时,数据库技术也极大增强了信息资源的管理和整合,推动了信息管理工作的现代化发展,使信息管理效率得到大幅提升。

作者:邓红 单位:国家海洋标准计量中心

可以在线阅读

关系数据库课程设计小论文

一、三个世界 1、现实世界 人们管理的对象存于现实世界中。现实世界的事物及事物之间存在着联系,这种联系是客观存在的,是由事物本身的性质决定的。例如学校的教学系统中有教师、学生、课程,教师为学生授课,学生选修课程并取得成绩。 2、概念世界 概念世界是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述,从而产生概念模型。概念模型是现实世界到机器世界必然经过的中间层次。涉及到下面几个术语: 实体:我们把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事件。如一个职工、一场比赛等。 实体集:同一类实体的集合称为实体集。如全体职工。注意区分"型"与"值"的概念。如每个职工是职工实体"型"的一个具体"值"。 属性:描述实体的特性称为属性。如职工的职工号,姓名,性别,出生日期,职称等。 关键字:如果某个属性或属性组合的值能唯一地标识出实体集中的每一个实体,可以选作关键字。用作标识的关键字,也称为码。如"职工号"就可作为关键字。 联系:实体集之间的对应关系称为联系,它反映现实世界事物之间的相互关联。联系分为两种,一种是实体内部各属性之间的联系。另一种是实体之间的联系。 3、机器世界 存入计算机系统里的数据是将概念世界中的事物数据化的结果。为了准确地反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示。数据模型将概念世界中的实体,及实体间的联系进一步抽象成便于计算机处理的方式。 数据模型应满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。数据结构、数据操作和完整性约束是构成数据模型的三要素。数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,用于DBMS的实现。 关系数据库采用关系模型作为数据的组织方式。 关系数据库因其严格的数学理论、使用简单灵活、数据独立性强等特点,而被公认为最有前途的一种数据库管理系统。它的发展十分迅速,目前已成为占据主导地位的数据库管理系统。自20世纪80年代以来,作为商品推出的数据库管理系统几乎都是关系型的,例如,Oracle,Sybase,Informix,Visual FoxPro等。 网络数据库也叫Web数据库。促进Internet发展的因素之一就是Web技术。由静态网页技术的HTML到动态网页技术的CGI、ASP、PHP、JSP等,Web技术经历了一个重要的变革过程。Web已经不再局限于仅仅由静态网页提供信息服务,而改变为动态的网页,可提供交互式的信息查询服务,使信息数据库服务成为了可能。Web数据库就是将数据库技术与Web技术融合在一起,使数据库系统成为Web的重要有机组成部分,从而实现数据库与网络技术的无缝结合。这一结合不仅把Web与数据库的所有优势集合在了一起,而且充分利用了大量已有数据库的信息资源。图1-1是Web数据库的基本结构图,它由数据库服务器(Database Server)、中间件(Middle Ware)、Web服务器(Web Server)、浏览器(Browser)4部分组成。 Web数据库的基本结构 它的工作过程可简单地描述成:用户通过浏览器端的操作界面以交互的方式经由Web服务器来访问数据库。用户向数据库提交的信息以及数据库返回给用户的信息都是以网页的形式显示。 1.1.1 Internet技术与相关协议 Internet技术在Web数据库技术中扮演着重要的角色。Internet(因特网)专指全球最大的、开放的、由众多网络相互连接而成的计算机网络,并通过各种协议在计算机网络中传递信息。TCP/IP协议是Internet上使用的两个最基本的协议。因此也可以说Internet是全球范围的基于分组交换原理和TCP/IP协议的计算机网络。它将信息进行分组后,以数据包为单位进行传输。Internet在进行信息传输时,主要完成两项任务。 (1)正确地将源信息文件分割成一个个数据包,并能在目的地将源信息文件的数据包再准确地重组起来。 (2)将数据包准确地送往目的地。 TCP/IP协议的作用就是为了完成上述两项任务,规范了网络上所有计算机之间数据传递的方式与数据格式,提供了数据打包和寻址的标准方法。 1.TCP/IP协议 TCP协议(Transmission Control Protocol,传输控制协议)规定了分割数据和重组数据所要遵循的规则和要进行的操作。TCP协议能保证数据发送的正确性,如果发现数据有损失,TCP将重新发送数据。 2.IP协议 在Internet上传送数据往往都是远距离的,因此在传输过程中要通过路由器一站一站的转接来实现。路由器是一种特殊的计算机,它会检测数据包的目的地主机地址,然后决定将该数据包送往何处。IP协议(Internet Protocol,网际协议)给Internet中的每一台计算机规定了一个地址,称为IP地址。IP地址的标准是由4部分组成(例如202.112.203.11),其中前两部分规定了当前使用网络的管理机构,第3部分规定了当前使用的网络地址,第4部分规定了当前使用的计算机地址。 Internet上提供的主要服务有E-mail、FTP、BBS、Telnet、WWW等。其中WWW(World Wide Web,万维网)由于其丰富的信息资源而成为Internet最为重要的服务。 3.HTTP协议 HTTP协议(Hypertext Transfer Protocol,超文本传输协议)应用在WWW上,其作用是完成客户端浏览器与Web服务器端之间的HTML数据传输。 1.1.2 Web的工作原理与工作步骤 万维网简称为Web。Web可以描述为在Internet上运行的、全球的、交互的、动态的、跨平台的、分布式的、图形化的超文本信息系统。 1.Web的工作原理 Web是伴随着Internet技术而产生的。在计算机网络中,对于提供Web服务的计算机称为Web服务器。Web采用浏览器/服务器的工作方式。每个Web服务器上都放置着大量的Web信息。Web信息的基本单位是Web页(网页),多个网页组成了一个Web节点。每个Web节点的起始页称为“主页”,且拥有一个URL地址(统一资源定位地址)。Web节点之间及网页之间都是以超文本结构(非线性的网状结构)来进行组织的。 2.Web的工作步骤 Web的工作步骤如下。 (1)用户打开客户端计算机中的浏览器软件(例如Internet Explorer)。 (2)用户输入要启动的Web主页的URL地址,浏览器将生成一个HTTP请求。 (3)浏览器连接到指定的Web服务器,并发送HTTP请求。 (4)Web服务器接到HTTP请求,根据请求的内容不同作相应的处理,再将网页以HTML文件格式发回给浏览器。 (5)浏览器将网页显示到屏幕上. 图1-2 Web的工作步骤 1.1.3 WWW世界中的标记语言 1.HTML语言 HTML(Hypertext Markup Language,超文本标记语言)是创建网页的计算机语言。所谓网页实际上就是一个HTML文档。文档内容由文本和HTML标记组成。HTML文档的扩展名就是.html或.htm。浏览器负责解释HTML文档中的标记,并将HTML文档显示成网页。 (1)HTML标记 HTML标记的作用是告诉浏览器网页的结构和格式。每一个标记用尖括号<>括起来。大多数标记都有一个开始标记和一个结束标记。标记不分大小写。多数标记都带有自己的属性。例如字体标记有FACE、COLOR、SIZE等属性:FACE定义字体;COLOR定义字体的颜色;SIZE定义字体的大小。 使用格式: BEIJING 。 网页中有很多文本链接和图片链接。链接,又被称为超链接,用于链接到WWW万维网中的其他网页上。在HTML文档中表示超链接的标记是,通过属性HREF指出链接的网页地址URL。 使用格式: BEIJING 。 (2)HTML程序 HTML程序必须以标记开始,以标记结束。在和标记之间主要由两部分组成:文件头和文件体。文件头用标记 来标识,文件体用标记来标识。在文件的头部通常包含整个网页的一些信息。例如标记是用来说明网页的名称;标记是用来说明网页的其他信息,如设计者姓名和版权信息等。所有在浏览器中要显示的内容称为网页的主体,必须放在标记中。下面给出的是一个空网页的HTML程序。 (在此标记中写网页的标题) (在此标记中写网页的内容) (3)HTML规范 HTML规范又称为HTML标准,它总在不断地发展。每一新版本的出现,HTML都会增加新的特性和内容。有关HTML版本的详细信息请访问网站。 在不同的浏览器中,网页的显示效果可能会有所不同。每一个浏览器都使用自己独特的方式解释HTML文档中的标记,并且多数浏览器不完全支持HTML的所有特性。因为,像Microsoft和Netscape公司在HTML标准上又开发了一些特有的HTML标记和属性,称之为HTML的扩展。这些标记和属性只被他们自己的浏览器所识别,不可能被其他公司的浏览器识别。如果浏览器不能识别HTML文档中的标记,则会忽略这个标记。 (4)HTML程序的编辑环境与运行环境 HTML文档是一个普通的文本文件(ASCII),不包含任何与平台、程序有关的信息。因此HTML文档可以利用任何文本编辑器来方便地生成。要注意的是HTML文档的扩展名必须是.html或.htm。运行HTML文档可以在任何浏览器下进行,并可在浏览器上查看网页的HTML源代码。 关于HTML语言中标记的种类与使用方法将会在第5章中更详细地进行介绍。 2.可扩展标记语言(XML) HTML是Web上的通用语言,随着Internet的深入人心,WWW上的Web文件日益复杂化、多样化,人们开始感到了HTML这种固定格式的标记语言的不足。1996年W3C开始对HTML的后续语言进行研究,并于1998年正式推出了XML(Extensible Markup Language,可扩展标记语言)。在设计网页时,XML提供了比HTML更灵活的方法。 (1)XML语言的特点 XML是国际组织W3C为适应WWW的应用,将SGML (Standard Generalized Markup Language)标准进行简化形成的元标记语言。简单地说,XML是使用标记来描述内容或与内容相关的形式信息的通用语言。一个XML文档由标记和字符数据组成。 而作为元标记语言,XML不再使标记固定,允许网页的设计者定义数量不限的标记来描述内容,同时还允许设计者创建自己的使用规则。 (2)XML的DTD DTD(Document Type Definition,文档类型定义)是一组应用在XML文档中的自定义标记语言的技术规范。DTD中定义了标记的含义及关于标记的语法规则。语法规则中确定了在XML文档中使用哪些标记符,它们应该按什么次序出现,标记符之间如何 嵌套,哪些标记符有属性等等。DTD可以包含在它所描述的XML文档中,但通常它是一份单独的文档或者一系列文档。作为外部文件可通过URL链接,被不同的XML文档 共享。 XML把DTD的定义权开放,不同行业可以根据自己的实际需求定义描述内容的DTD,以适应本行业内部的信息交流和存档需要。因此,适合于不同行业、不同平台的标记语言大批涌现。 (3)XML的CSS与XSL 强调内容描述与形式描述的分离,一方面可以使XML文件的编写者更集中精力于数据本身,而不受显示方式的细节影响;另一方面允许为相同的数据定义不同的显示方式,从而适合于不同应用、不同媒体,使XML数据得到最大程度的重用。XML文档数据的显示形式是通过样式单定义的。CSS(Cascading Style Sheets)是XML使用的一种标准的级联样式单,XSL(Extensible Style Language)则是可扩展的样式语言。 由于XML允许用户创建任何所需的标记,而通用浏览器却既无法预期用户标记的意义,又无法为显示这些标记而提供规则,因此用户必须为自己创建的XML文档编写样式单,样式单可以实现共享。 浏览器对一个XML文档的处理过程是,首先去关联它所指定的样式单文件,如果该样式单是一个XSL文件,则按照规定对XML数据进行转换然后再显示,XSL本身也是基于XML语言的,可以将XML转化为HTML后再显示。如果该样式单是一个CSS文件,浏览器就会按照样式单的规定给每个标记赋予一组样式后再显示。 1.2 Web数据库访问技术 Web数据库访问技术通常是通过三层结构来实现的,如图1-3所示。目前建立与Web数据库连接访问的技术方法可归纳为CGI技术,ODBC技术和ASP、JSP、PHP 技术。 Web数据库访问的三层结构 1.2.1 CGI技术 CGI(Common Cateway Interface,通用网关界面)是一种Web服务器上运行的基于Web浏览器输入程序的方法,是最早的访问数据库的解决方案。CGI程序可以建立网页与数据库之间的连接,将用户的查询要求转换成数据库的查询命令,然后将查询结果通过网页返回给用户。一个CGI工作的基本原理如图1-4所示。 CGI程序需要通过一个接口才能访问数据库。这种接口多种多样,数据库系统对CGI程序提供了各种数据库接口如Perl、C/C++、VB等。为了使用各种数据库系统,CGI程序支持ODBC方式,通过ODBC接口访问数据库。 CGI工作流程 1.2.2 ODBC技术 ODBC(Open Database Connectivity,开放数据库互接)是一种使用SQL的应用程序接口(API)。ODBC最显著的优点就是它生成的程序与数据库系统无关,为程序员方便地编写访问各种DBMS的数据库应用程序提供了一个统一接口,使应用程序和数据库源之间完成数据交换。ODBC的内部结构为4层:应用程序层、驱动程序管理器层、驱动程序层、数据源层。它们之间的关系如图1-5所示。由于ODBC适用于不同的数据库产品,因此许多服务器扩展程序都使用了包含ODBC层的系统结构。 ODBC的内部结构 Web服务器通过ODBC数据库驱动程序向数据库系统发出SQL请求,数据库系统接收到的是标准SQL查询语句,并将执行后的查询结果再通过ODBC传回Web服务器,Web服务器将结果以HTML网页传给Web浏览器,工作原理如图1-6所示。 Web服务器通过ODBC访问数据库 由于Java语言所显示出来的编程优势赢得了众多数据库厂商的支持。在数据库处理方面,Java提供的JDBC为数据库开发应用提供了标准的应用程序编程接口。与ODBC类似,JDBC也是一种特殊的API,是用于执行SQL语句的Java应用程序接口。它规定了Java如何与数据库之间交换数据的方法。采用Java和JDBC编写的数据库应用程序具有与平台无关的特性。 1.2.3 ASP、JSP、PHP技术 ASP是Microsoft开发的动态网页技术,主要应用于Windows NT+IIS或 Windows 9x+PWS平台。确切地说ASP不是一种语言,而是Web服务器端的开发环境。利用ASP可以产生和运行动态的、交互的、高性能的Web服务应用程序。ASP支持多种脚本语言,除了VBScript和Pscript,也支持Perl语言,并且可以在同一ASP文件中使用多种脚本语言以发挥各种脚本语言的最大优势。但ASP默认只支持VBScript和Pscript,若要使用其他脚本语言,必须安装相应的脚本引擎。ASP支持在服务器端调用ActiveX组件ADO对象实现对数据库的操作。在具体的应用中,若脚本语言中有访问数据库的请求,可通过ODBC与后台数据库相连,并通过ADO执行访问库的操作。关于ASP的编程技术将会在第7章中详细介绍。 JSP是Sun公司推出的新一代Web开发技术。作为Java家族的一员,几乎可以运行在所有的操作系统平台和Web服务器上,因此JSP的运行平台更为广泛。目前JSP支持的脚本语言只有Java。JSP使用JDBC实现对数据库的访问。目标数据库必须有一个JDBC的驱动程序,即一个从数据库到Java的接口,该接口提供了标准的方法使Java应用程序能够连接到数据库并执行对数据库的操作。JDBC不需要在服务器上创建数据源,通过JDBC、JSP就可以实现SQL语句的执行。 PHP是Rasmus Lerdorf推出的一种跨平台的嵌入式脚本语言,可以在Windows、UNIX、Linux等流行的操作系统和IIS、Apache、Netscape等Web服务器上运行,用户更换平台时,无需变换PHP代码。PHP是通过Internet合作开发的开放源代码软件,它借用了C、Java、Perl语言的语法并结合PHP自身的特性,能够快速写出动态生成页面。PHP可以通过ODBC访问各种数据库,但主要通过函数直接访问数据库。PHP支持目前绝大多数的数据库,提供许多与各类数据库直接互连的函数,包括Sybase、Oracle、SQL Server等,其中与SQL Server数据库互连是最佳组合。 1.3 网络数据库应用系统的层次体系 当前,Internet/Intranet技术发展异常迅速,越来越多的数据库应用软件运行在Internet/Intranet环境下。在此之前,数据库应用系统的发展经历了单机结构、集中式结构、客户机/服务器(C/S)结构之后,随着Internet的普及,又出现了浏览器/服务器(B/S)结构与多层结构。在构造一个应用系统时,首先考虑的是系统的体系结构,采用哪种结构取决于系统的网络环境、应用需求等因素。 1.3.1 客户机/服务器结构 1.二层C/S结构 二层C/S结构是当前非常流行的数据库系统结构,在这种结构中,客户机提出请求,服务器对客户机的服务请求做出回答。它把界面和数据处理操作分开在前端(客户端)和后端(服务器端),这个主要特点使得C/S系统的工作速度主要取决于进行大量数据操作的服务器,而不是前端的硬件设备;同时也大大降低了对网络传输速度的要求,因为只须客户端把服务请求发送给数据库服务器,数据库服务器只把服务结果传回前端,如图1-7所示。 在设计时,对数据可能有如下不同的处理形式。 (1)在处理时,客户机先向服务器索取数据,然后释放数据库,即客户机发出的是文件请求,在客户机端处理数据,最后将结果送回服务器。这种处理方式的缺点很明显:所有的应用处理都在客户端完成,这就要求客户端的计算机必须有足够的能力,以便执行需要的任何程序。更为糟糕的是,由于所有的处理均在客户端完成,每次运行时都要将文件整体传送到客户端,然后才能执行。如:Student表中有30 000条记录,客户端发出命令: Select * From Student Where Sno='200101' 这条命令将要求服务器将Student表中的所有记录传送到客户端,然后在客户端执行查询,结果只用到一条记录;如果查询的记录不存在,网络传输的数据实际上是无 用的。如此大的数据传输量是不可想象的。因此,人们提出了在服务器中能够执行部分代码的客户机/服务器结构。 (2)在处理时,客户机接受用户要求,并发给服务器;在服务器端处理用户要求,最后将结果传回客户机显示或打印。这种处理方式网络通信量较小。客户机向服务器发出的是处理请求,而不是文件请求,处理请求中的代码在服务器端执行后向客户机传送处理后的结果。 这样,为了特定任务,客户机上的程序和服务器上的程序协同工作:客户机端的代码用于完成用户的输入输出及数据的检查,而服务器端的代码完成对数据库的操作。 客户机/服务器结构的另一个主要特点在于软件、硬件平台的无关性。数据库服务器上的数据库管理系统集中负责管理数据,它向客户端提供一个开放的使用环境,客户端通过数据库接口,如ODBC(开放数据库连接)和SQL语言访问数据库,也就是说,不管客户端采用什么样的硬件和软件,它只要能够通过网络和数据库接口程序连接到服务器,就可对数据库进行访问。 在客户机/服务器结构中,常把客户机称为前台,而把服务器端称为后台。前台应用程序的功能包括用户界面、接收用户数据、处理应用逻辑、向后台发出请求、同时接收后台返回的结果,最后再将返回的结果按一定的格式或方式显示给用户。而后台服务器则负责共享外部设备、存取共享数据、响应前台客户端的请求并回送结果等工作。前台的应用程序和数据一般是用户专用的,而后台的数据和代码是所有用户可以共享的。 由于数据库服务器不仅要管理共享数据,保证数据的完整性,还要执行一部分代码,完成客户端的一些处理请求,所以对用于服务器的计算机提出较高的要求。最好要采用一台专用的服务器,有较快的处理速度,有大容量的硬盘和内存,支持磁带等大容量的存储设备。 上面讲的客户机/服务器结构将应用分在了客户机、服务器两级,称其为两层客户机/ 服务器结构。总之,两层C/S结构的基本工作方式是客户程序向数据库服务器发送SQL请求,服务器返回数据或结果。 这种C/S结构有两种实现方式,一种是客户来完成表示部分和应用逻辑部分,而服务器完成数据访问部分,这种情况是以客户为中心的,适用于应用相对简单、数据访问量不是很大的情况。另一种是以服务器为中心的,把一些重要的应用逻辑部分放到服务器上,这样可充分利用服务器的计算能力,减少网络上需要传送的数据。通常以存储过程和触发器的形式出现,但存储过程都依赖于特定数据库,不同数据库之间很难移植,而三层C/S结构可以很好地解决这个问题。 注意:触发器(trigger)是数据库系统中,一个在插入、删除、修改操作之后运行的记录级事件代码。不同的事件可以对应不同的动作。通常有3种类型的触发器:INSERT触发器、DELETE触发器和UPDATE触发器。 2.三层C/S结构 由于两层结构的客户机/服务器系统本身固有的缺陷,使得它不能应用于一些大型、结构较为复杂的系统中,故出现了3层结构的客户机/服务器系统,将两层结构中服务器部分和客户端部分的应用单独划分出来,即采用“客户机—应用服务器—数据库服务器”结构(如图1-8所示)。典型的数据库应用可分为三部分:表示部分、应用逻辑(商业逻辑)部分和数据访问部分,三层结构便是对应于这三部分。 图1-8 三层C/S结构 其中,应用服务器和数据库服务器可位于同一主机,也可位于不同主机。客户机是应用的用户接口部分,负责用户与应用程序的交互,运行在客户机端的软件也称为表示层软件。应用服务器存放业务逻辑层(也称为功能层)软件,是应用逻辑处理的核心,实现具体业务。它能响应客户机请求,完成业务处理或复杂计算。若有数据库访问任务时,应用服务器层可根据客户机的要求向数据库服务器发送SQL指令。应用逻辑变得复杂或增加新的应用时,可增加新的应用服务器。数据库服务器便是用来执行功能层送来的SQL指令,完成数据的存储、访问和完整性约束等。操作完成后再通过应用服务器向客户机返回操作结果。 1.3.2 浏览器/服务器结构 随着Internet技术和Web技术的广泛应用,C/S结构已无法满足人们的需要。因为在典型C/S体系中,通常为客户安装前端应用程序的做法已不再现实,并且限制客户端工作环境只能基于Windows、Macintosh或UNIX等操作系统也不切实际。于是基于浏览器/服务器结构(Browser/Server)的系统应运而生。 采用B/S结构后,在客户端只需安装一个通用的浏览器即可,不再受具体操作系统和硬件的制约,实现了跨平台的应用。 基于B/S结构的典型应用通常采用三层结构:“浏览器—Web服务器—数据库服务器”,B/S模式的工作原理是:通过浏览器以超文本的形式向Web服务器提出访问数据库的请求,Web服务器接受客户请求后,激活对应的CGI程序将超文本HTML语言转化为SQL语法,将这个请求交给数据库,数据库服务器得到请求后,进行数据处理,然后将处理结果集返回给CGI程序。CGI再将结果转化为HTML,并由Web服务器转发给请求方的浏览器,如图1-9所示。 图1-9 B/S工作原理 在B/S模式中,客户端的标准配置是浏览器,如IE;业务功能处理由独立的应用服务器处理,Web服务器成为应用处理的标准配置;数据处理仍然由数据库服务器处理。 从本质上讲,B/S结构与传统的C/S结构都是以同一种请求和应答方式来执行应用的,区别主要在于:C/S是一种两层或三层结构模式,其客户端集中了大量应用软件,而B/S是一种基于超链接(HyperLink)、HTML、Java的三级或多级C/S结构,客户端仅需单一的浏览器软件,是一种全新的体系结构,解决了跨平台问题。到目前,这两种结构在不同方面都有着广泛的应用。虽然C/S结构在Internet环境下明显不如B/S结构具有优势,但它在局域网环境下仍具有优势。 1.3.3 Internet/Intranet信息系统的多层体系结构 多层结构应用软件与传统的两层结构应用软件相比,有可伸缩性好、可管理性强、安全性高、软件重用性好等诸多优点,如何在Internet/Intranet环境下构建应用软件体系结构就成为一个非常重要的问题,也是现今软件体系研究的一个新热点。 目前各种技术层出不穷,如最初的静态HTML页面、简单的CGI网关程序、Java Applet程序,现在的ASP等Web数据库技术,还有动态的Java在线游戏及PHP技术等。 实际上,多层的概念是由Sun公司提出来的。Sun公司提出的多层应用体系包括4层:客户层、顶端Web服务层、应用服务层和数据库层。其中顶端Web服务层是Sun公司多层体系结构中非常重要的一层,它主要起代理和缓存的作用。顶端Web服务器的作用是缓存本地各客户机经常使用的Java Applet程序和静态数据,通常被放置在客户机所在的局域网内,起到一个Java Applet主机(向Web浏览器传送Java Applet程序的计算机)和访问其他服务的代理作用。与普通代理服务器的作用相同。构建多层结构应用软件时,选用Java平台是一个很好的选择,因为它跨越各应用平台。总之,在Java平台上构建多层应用软件体系代表着今后Internet/Intranet应用的趋势。

库存管理数据库系统原理与应用【摘 要】库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析如此情况,我们使用微软公司的VisualBasic开发工具,利用其提供的各种面向对象的开发工具,尤其是ADO,是能方便而简洁操纵数据库的智能化对象,短期内就可以开发出用户满意的可行系统。 关键字: 库存管理 ADO 面相对象 库存ABC分析 第一章 概述 1.1 库存管理的必要性 大多数库存管理理论认为,库存是物理上和逻辑上库房库位的所有有形和无形物料极其价值的总和,具体包括成品、原材料、在制品、在途品、生产前物料、备品备件等。虽然持有一些库存是必要的,过量的库存却非但没有用处而且占用了资金。占用的资金对于公司发展、新产品开发等都是非常需要的;减少资金占用还可以大大减少来自银行贷款的利息和风险。对那些采购量特别大、采购件市场价格有波动的物料库存,加强库存管理效果更为明显。因此,平衡公司库存投资与其它资金需求至关重要。 1.2 库存分类 企业怎样管理库存,是库存管理的最大难点和挑战。因此,通过MRPII物料主计划模块和采购模块建立计划与控制系统以有效地实施库存管理和采购补偿成为题中应有之义。通过调查,我们得知任何库存均可分为如下三类: A类物品:高值──价值占库存总值70-80%的相对少数物品。通常为物品的15-20%。 B类物品:中值──总值占库存总值的15-20%。物品数居中,通常占物品的30-40%。 C类物品:低值──库存总值几乎可以忽略不计,只占5-10%。是物品的大多数,通常占60-70%。 显然,A类物品是关键;如果我们把精力集中于A类物品,使其库存压缩10-50%,就是总库存的相当可观的一笔压缩。 关于ABC分类方法有几条基本法则: a. 控制的程度: 对A类物品严加控制,包括做完备、准确的记录,高层监督和经常评审,从供应商按大合同订单频繁交货,对车间紧密跟踪以压缩提前期。 对B类物品做正常控制,包括良好的记录与常规的关注。 对C类物品尽可能使用简便的控制,诸如定期目视检查库存实物、简要记录或以简便标志法表明补充存货已经订货,采用大库存量与订货量以避免缺货,安排车间日程计划时给以低优先级。 b.优先级 在一切活动中给A类物品以高优先级以压缩其提前期与库存。 对B类物品予以正常处理,仅在关键时给以高优先级。 予C类物品以最低优先级。 c.订货过程 对A类物品提供及时、准确的采购信息和状态查询。计算机数据需要人工加以核对,进行阶段性盘点,以及频繁的评审以压缩库存。 对B类物品,按一定周期或当发生重大变化时评审一次库存数据和订货点,MRPII操作按例行公事处理。 对C类物品可以盘点处理或订货点计算。订货往往不用MRPII作计划。可以凭业务人员的经验加以控制。 由上可以看出库存管理的重要性。因此,库存管理是企业管理的重要组成部分。市场需要库存商品提供给用户,企业的经营需要库存保证各种药品的供应以进行药品的销售,库存对生产效率的提高有着极其重要的影响。因此,库存管理系统是计算机管理系统的中心。因为,所有企业的经营活动都离不开物流的活动。 1.3 库存管理的目标 库存管理的主要目标就是通过对仓库所有入出库活动的管理和控制及对库存数据有效的统计和分析,以保证企业生产中畅通的物流,使决策人员及早发现问题,采取相应措施,调整库存结构,缩短储备周期,加速资金周转,最大限度地降低库存占用,同时,通过周期性的仓库盘点,及时补救管理中的漏洞,使库存管理系统实时地反映企业中各个仓库的现时情况,为各类管理人员从不同侧面提供所需信息,以便协调企业经营收到更大效益,库存管理系统是协调企业生产经营的基础,其数据的准确性、方便的查询、有效的分析是整个计算机管理系统顺利运行的关键。 第二章 开发背景 企业的库存物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计报表繁多,因此仓库的库存管理必须编制一套库存管理信息系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。 根据当前的企业管理体制,一般的库存管理系统,总是根据所掌握的物资类别,相应分成几个科室来进行物资的计划,订货,核销托收,验收入库,根据企业各个部门的需求来发送物资设备,并随时按期进行库存盘点,作台帐,根据企业领导和自身管理的需要按月、季度、年度进行统计分析,产生相应报表。为了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际纤毫定额的比较,进行定额管理,使得资金使用合理,物资设备的储备最佳。 一个完整的企业物资供应管理系统应包括采购计划管理,合同收托管理、仓库库存管理、定额管理、统计管理、财务管理等模块。其中仓库的库存管理是整个物资供应管理系统的核心。因此有必要开发一套独立的库存管理系统来提高企业工作效率, 而所使用的这套库存管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的库存费用、适时适量的库存数量,使企业生产活动效率最大化。通过对这些情况的仔细调查,我开发了下面的仓库库存管理系统。 第三章 系统分析 本系统采用了结构化生命周期法,结构化生命周期法是最常用的管理信息系统开发方法,分为四个步骤,即系统调研分析、数据库设计实现、界面设计实现和系统功能设计实现。其中系统调研分析阶段是最基础、也是最容易被开发人员忽视的环节。 3.1进行资料收集 在整个系统分析阶段,我在图书馆认真查看了很多关于仓库库存管理方面的书籍,收集到了相应的入库单、领料单、台账、物料卡、报表等资料。 入库单是入库单位在把相应的零部件送人仓库时必须填写的单据;领料单是领料人员从仓库中领取零部件时必须填写的单据(即出库);零部件台账(相当于本系统中的操作日志)实际是一个流水账,用于记录每天发生的入库、出库信息;物料卡(在本系统中用现有库存信息来表示)的作用是记录某一种零部件的数量变化,以便库管员盘查;报表是仓库向有关领导和部门定期提交的零部件库存汇总信息。收集到的入库单、领料单、零部件库存台账、零部件物料卡等单据和报表的实物样式在此略去,有兴趣者请参考有关类似企业的样本即可。 3.2绘制业务流程图 3.3用户需求分析 用户需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用程序的结构、系统开发环境和系统的功能模块。用户需求调研结束之后,应该立即进行用户需求分析。 3.3.1应用程序结构确定 从用户应用角度来看,可把应用程序系统的组成部分分成数据存储层、业务处理层和界面表示层等3个层次,而应用程序结构可归纳为:集中式应用程序结构、单用户应用程序结构、多层服务器应用程序结构、浏览器/服务器应用程序结构、客户机/服务器应用程序结构等5种类型。 本库存管理系统就采用了当前最流行的客户机/服务器应用程序结构(即C/S结构),此时,客户机提出请求,服务器对客户机的请求作出回应。通过对服务功能的分布实现了分工服务。数据存储层放在服务器上,业务处理层和界面表示层放在客户机上,因此又被称为“灵敏的客户机”结构。许多操作可以在本地的客户机上执行,只是当需要数据时,才向服务器发出请求。并使应用程序的处理更接近用户,使整个系统具有较好的性能,可以并行地处理应用程序的请求、减少了数据传输量、降低了服务器的负荷。由于条件所限,将此系统所有程序都置于一台计算机上,以便调试运行。3.3.2确定系统开发环境 由于大多数公司内部使用的计算机平台都是基于Windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境: ★网络操作系统:Windows2000;★数据库服务器:MicrosoftAccessr2000; ★服务器平台:Windows2000;★客户机平台:Windows95/98/NT/2000; ★前端开发工具:visualBasic6.0(企业版);★数据访问对象:ADO(本系统使用ADO控件,简化编程)。 3.3.3确定系统的功能模块 通过分析确定库存系统将包含6个主要功能模块,即系统模块、入库业务管理模块、出库业务管理模块、退料业务管理模块(还库业务管理模块)、盘点业务管理模块(报表输出)、需求管理模块。对于每一个功能模块,都包含了数据录入、编辑、查询、统计、打印、应急、帮助等功能。 第四章 系统设计 4. 1总体设计 4.1.1系统目标设计 系统开发的总体任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到企业仓库库存管理效率的目的。 4.1.2开发设计思想 库存管理的物资主要是企业生产中所需要的各种设备、原材料及零部件。进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据所需要的物资设备总额和部门生产活动需要提出物资需求申请。计划员根据整个企业的需求开出物资设备出库单,仓库管理员根据出库单核对发放设备、原材料及零部件。有些设备使用完毕需要及时归还入库,填写还库单。根据需要按照月、季、年进行统计分析,产生相应报表。 仓库库存管理的特点是信息处理量比较大。所管理的物资设备、原材料及零部件种类繁多,而且由于入库单、出库单、需求单等单据发生量特别大,关联信息多,查询和统计的方式各不相同,因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门规格不统等问题。 在本系统的设计过程中,为了克服这些困难,满足计算机管理的需要,我们采取了下面的一些原则:  统一各种原始单据的格式,统一帐目和报表的格式。  删除不必要的管理冗余,实现管理规范化、科学化。  程序代码标准化,软件统一化,确保软件的可维护性和实用性。  界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。  建立操作日志,系统自动记录所进行的各种操作。 4.1.3系统功能分析 本系统需要完成的功能主要有以下几点。  库存管理的各种信息的输入,包括入库、出库、还库、需求信息的输入等。  库存管理的各种信息的查询、修改和维护。  设备采购报表的生成。  在材料库存中加入所允许的最大库存合最小库存字段,对所有库存物资实现监控和报警。  企业各个部门的物资需求管理。  操作日志的管理  库存管理系统的使用帮助。 4.2详细设计 4.2.1 系统功能模块设计 系统模块 a. 包括报表的打印及设置,操作日志的管理。 b. 管理员可以通过管理界面添加或删除用户,添加新管理员或删除原有管理员,验证用户的合法性,阻止非法用户登录。 c. 管理员或其他用户可以修改自己的密码。 (2) 入库模块 包括填写入库单,更新,删除入库记录,查看现有库存信息,入库记录的查询及打印 (3) 出库模块 包括填写出库单,更新,删除出库记录,查看现有库存信息,出库记录的查询及打印 (4) 还库模块 包括填写还库单,更新,删除还库记录,还库记录的查询及打印 (5) 需求模块 包括填写需求计划表,更新,删除采购计划信息,查看现有采购信息,采购信息的查询及打印,以及预测短期内的需求计划。 4.2.2数据库设计 数据库需求分析 通过对企业仓库管理内容和数据流程分析,设计的数据项合数据结构如下:  设备代码信息。包括的数据项有设备号、设备名称。  现有库存信息。包括的数据项有现有设备、现有数目、最大库存、最小库存等。  设备使用信息。包括的数据项有使用的设备、使用部门。数目。使用时间、出库时状态等。  设备采购信息。包括的数据项有采购的设备、采购员、供应商、采购数目、采购时间等。  设备归还信息。包括的数据项有归还设备、归还部门、归还数目、归还时间、经手人等。  设备需求信息。包括的数据项有需求的部门、需求设备、需求数目、需求时间等。 有了上面的数据结构、数据项和数据流程,就可以进行下面的数据库设计。 数据库概念结构设计 这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据上面的设计规划出的实体有库存实体、出库实体、入库实体、采购实体、还库实体、需求实体。 数据库逻辑结构设计 在上面的实体以及实体之间关系的基础上,形成各个表格之间的关系。 4.3 代码设计 任何库存均可分为如下三类: A类物品:高值──价值占库存总值70-80%的相对少数物品。通常为物品的15-20%。 B类物品:中值──总值占库存总值的15-20%。物品数居中,通常占物品的30-40%。 C类物品:低值──库存总值几乎可以忽略不计,只占5-10%。是物品的大多数,通常占60-70%。 4.4 输入输出设计 本系统界面标准Windows形式,键盘输入(也可以用条形码读取),人机交互,容易使用。输入输出的设计考虑美观实用和通俗易懂,图文并茂。 4.5系统安全性设计 系统数据库中包含多个二维表,所以在系统与数据库的连接上,并没有把数据库和系统的连接直接写入代码,而是通过对服务器端进行系统设置,使数据库名及路径不可见,并通过ACCESS的数据库安全设置,保证了数据库的安全性。系统根据用户身份不同赋予不同权限,用户用密码登陆,同样也保证了系统数据的安全性。 第五章 系统实施 5.1、开发工具简介 本系统的前端开发工具,我选择了Visual Basic6.0,后台数据库采用Access2000。 5.1.1 VB简介 Visual意为“可视化的”,指的是一种开发图形用户界面的方法,所以Visual Basic是基于Basic的可视化的程序设计语言。在Visual Basic中,一方面继承了Basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。 5.1.2 VB功能特点  具有面向对象的可视化设计工具 在VB中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一 个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提高。  事件驱动的编程机制 事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,而各个动作之间不一定有联系。  提供了易学易用的应用程序集成开发环境 在VB集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件在Windows中运行,使用户在友好的开发环境中工作。  结构化的程序设计语言 VB具有丰富的数据类型和结构化程序结构,作为一种程序设计语言,它还有如下一些特点:  强大的数值和字符串处理功能  丰富的图形指令,可方便地绘制各种图形  提供静态和动态数组,有利于简化内存的管理  过程可递归调用,使程序更为简练  支持随机文件和顺序文件的访问  提供了一个可供应用程序调用的包含多种类型的图标库  具有完善的运行出错处理  支持多种数据库系统的访问 利用数据控件可访问的数据库系统有:Microsoft Access、Btrieve、DBASE、Microsfot FoxPro和Paradox等,也可以访问Microsoft Excel、Lotus1-2-3等多种电子表格。  支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)技术  完备的HELP联机帮助功能 与Windows环境下的软件一样,在VB中,利用帮助菜单和F1功能键,用户可以随时方便地得到所需要的帮助信息。VB帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示例代码,为用户的学习和使用提供了极大的方便。 VB程序设计的概念就是面向对象的概念,对象就是数据(DATA)和代码(CODE)互相结合的综合体。Windows上面的每一个图标,包括窗口本身都是对象,如果没有任何事情发生,对象处于停顿状态。当存在外来事件时,程序段执行,它的执 行是由外来事件决定的。因此是“事件”驱动的。 编写VB程序较为简单,首先将各个对象放在空白窗体上,然后将程序代码分别添加给对象或图标,将它们组合起来就可以随意运行了。 在VB中,窗体实际上是一个对象,VB的窗体含有许多内嵌特性,这使得用户界面部分的建立像是从一个目录中挑选一个个合适的控件,而不是从零开始一步一步地建立控件。这种开发者能亲眼看到的程序设计过程就是“可视化程序设计”(Visual Programming) 5.1.3 VB中的基本概念 对象:面向对象编程(OOP)的提法大家一定也很耳熟,虽然Visual Basic并不是完全的面向对象编程,但也利用了对象编程技术。对象简单地说就是大家经常看到的各种窗口、按钮、文本框甚至打印机等。 属性:如同电视有黑白、彩色之分一样,作为对象的Windows中的窗口也是有大有小,文本框的位置不可能完全一样,菜单要显示出不同的功能,这些都是由对象的属性决定的。不同对象的属性可能不同。属性一般决定了对象的位置、大小、显示等情况。 方法:就是对象能够做的事,如打印机对象就有打印(Print)方法、窗口对象支持隐藏(Hide)方法、很多对象支持移动(Move)方法等。 事件:就是对象对用户各种操作的反映情况。如用户用鼠标按一下按钮,就会触发按钮的“按”(Click)事件。 控件:控件就是Visual Basic提供的编程用的模块,与对象有直接的联系,如同积木的木块,使用这样的控件,就可以像拼图或堆积木一样“搭”、“拼”你的程序界面。Visual Basic中使用控件,简化了Windows中的窗口、按钮等对象的编程设计。每个控件都有各自的属性、事件及方法。只需修改这些特征你就可以随心所欲地编程了。最重要的是,你可以利用成千上万的各种扩充的控件来快速构造几乎能满足你任何要求的程序。例如,如果你不满意Windows简陋的媒体播放器,你就可以使用VB的多媒体控件在1小时以内设计一个完全自己风格的能够播放CD、VCD的多媒体播放器,而功能完全与之相当。 5.1.4 Access2000数据库简介 作为Microsoft的office套件产品之一,access已经成为世界上最流行的桌面数据库系统。Access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。它能操作其它来源的资料,包括许多流行的PC数据库程序(如dBASE,Paradox,Microsoft FoxPro)和服务器、小型机及大型机上的许多SQL数据库。Access还完全支持Microsoft的OLE技术。 Access还提供windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的!如果您能给它加上简短的VBA代码,那么您的程序决不比专业程序员潜心开发的程序差。Access的总体结构 Access将所有有名字的东西都成为对象(object),在Access 2000中,最重要的对象有表,查询,窗体,报表,宏和模块。 表 用户定义的存储资料的对象。每一个表都包含有关某个主体的信息。表包括存储不同种类资料的字段(列),而记录(行)则收集特定主体实例的所有信息。 查询 为来自一个或多个表的资料提供定制视图的对象。在Access中,可以利用图形化的实例查询机制(QBE)或通过SQL语句来建立查询。你可以在查询中选择、更新、插入或删除资料,也可以用查询来建立新表。 窗体 窗体是主要的人机接口。大量的操作(几乎所有)都要通过窗体完成。窗体通过运行宏(macro)或Visual Basic for Applicatinns(VBA)过程,来响应大量的事件。Access 2000为我们提供了强大的(同时也是相当方便的向导)来建立标准的Windows窗体。 报表 为格式化、计算、打印选定资料而设计的对象。它是衡量一个优秀的数据库的重要标准(有时甚至是唯一的标准)。 宏 为了响应已定义的事件,需要让Access去执行一个或多个操作,而宏就是对这些操作的结构化的定义对象。它可以让你像堆积木一样建立一个功能强大的程序,而无须写大量的代码。 模块 包括用VBA编码的定制过程的一个对象。模块提供了独立的动作流以捕获错误,而宏做不到。模块能直接响应窗体或报表事件,也可以从应用程序的任何地方被调用。 5.2 系统实现 5.2.1.系统管理模块实现 5..2.3入库模块的实现 5..2.4 出库模块实现 5.2.5设备采购模块实现,程序略 5.2.7设备代码模块实现5.2.9 操作日志模块实现第六章 系统使用说明 参考文献: 1. 数据库系统原理教程 王珊 陈红 清华大学出版社 2. 管理信息系统 王虎 张俊 武汉理工大学出版社 3. Visual Basic 数据库开发 E.Winemiller,J.Roff B.Heyman,R.Groom 著 清华大学出版社 4. PowerBuilder 8.0数据库系统开发实例导航 何旭洪 余建英 人民邮电出版社 5. VB6从入门道精通 『美』Gary cornell 著 北京希望电子出版社 6. managing Information Systems David L.Anderson著 清华大学出版社 7. Management Information Systems Raymond Mcleod,Jc George Schell 著 北京大学出版社

有图片的,这里发不了图片,满意我的论文加分后联系我,我发给你。基于关系数据库的模式匹配技术研究摘 要 随着 网络 技术的 发展 ,信息处理需要对大量的、异构的数据源的数据进行统一存取,多源异构数据的集成 问题 就显得十分重要。而模式匹配是数据集成领域的一个基本技术。文章提出一种解决关系数据库语义冲突问题的模式匹配技术,以实现异构数据的共享与互操作。关键词 数据集成;模式匹配;语义冲突1 引言随着 计算 机及网络技术的快速发展,网络上的各种信息以指数级爆炸性增长,成为了一个巨大的信息库,同时各 企业 单位开发了大量的软硬件平台各异的 应用 系统,在各种应用系统下又积累了丰富的数据资源。这样就形成了成千上万个异构的数据源,多为传统的关系数据库数据。这些数据资源由于软硬件平台各异、数据模型各异而形成了异构数据,使各数据源间的互操作变得复杂。为了更好地利用这些异构信息,以及不造成企业应用系统的重复建设和数据资源的浪费,模式匹配技术吸引了众多关注。本文针对模式匹配过程中存在的语义冲突进行分类,并提出了相应的解决策略,以达到异构数据源的共享和互操作。2 模式匹配中的冲突问题在数据集成领域中,由于数据源系统多是独立开发,数据源是相对自治的,因此描述数据的数据模型或存储结构经常会出现模式的不一致,数据源的自治性和数据源模式的异构性使数据源在共享和互操作上存在了语义冲突。这些正是模式匹配的焦点问题,它们形式上的性质使得人们很容易想到要用模式匹配去解决逻辑、语义和知识的描述问题。对于描述模式匹配中的语义冲突有两种较有代表性的分类[4]。第一种分类将冲突分为异类冲突、命名冲突、语义冲突和结构冲突。第二种分类主要是对第一类异类冲突概念的一个细致的改进,但和其它分类仍有细微的不同,它把异类冲突看作是语义不一致的一类(如语义冲突),把冲突分为命名冲突、域冲突、元数据冲突、结构冲突、属性丢失和硬件/软件不同。模式匹配是一项复杂而繁重的任务,所能集成的数据源越来越多,上述冲突情况也会越来越普遍,想解决所有的模式冲突是不现实的。本文主要解决关系数据模式之间的语义冲突。3 模式匹配中的语义冲突本文所提出的模式匹配 方法 是根据关系数据库的特点设计的。关系数据库中关系的基本单位是属性,属性本身就包含着语义信息,因此异构数据源语义相似性就围绕着数据源模式中的属性来进行,并在匹配的过程中解决异构数据源模式之间的一系列语义冲突。3.1 语义匹配体系结构本文提出的语义匹配体系结构采用数据集成中的虚拟法数据集成系统的典型体系结构,采用将局部模式匹配到全局模式的语义匹配体系结构,自下而上地建立全局模式。首先进行模式转化,消除因各种局部数据模式之间的差异所带来的 影响 ,解决各种局部模式之间的语义冲突等,然后在转化后的模式的基础上进行模式匹配,其主要手段是提供各数据源的虚拟的集成视图。数据仍保存在各数据源上,集成系统仅提供一个虚拟的集成视图和对该集成视图的查询的处理机制。系统能自动地将用户对集成模式的查询请求转换成对各异构数据源的查询。在这种体系结构中,中间层根本不实际存储数据,当客户端发出查询请求时,仅是简单地将查询发送到适当的数据源上。由于该方法不需要重复存储大量数据,并能保证查询到最新的数据,因此比较适合于高度自治、集成数量多且更新变化快的异构数据源集成。本文中的语义匹配的体系结构如图1所示。3.2 关系数据库模式中语义冲突问题分类及其解决策略大多数数据库系统提供了一套概念结构来对现实世界的数据进行建模。每一个概念结构被认为是一个类型,它可以是一种复杂类型或一种基本类型。类型和它所表示的数据间的联系就称为语义[3]。在关系数据库中,一个关系模式是一个有序对(R,c),其中R为模式所指向的关系(表)的名称,而c则为具有不同名称的属性的有限集。同时,属性也是一个有序对(N,D),其中N为属性的名称,而D则为一个域。可以看出关系模式的基本单位是属性。属性本身就包含着语义信息,因此模式语义相似性就围绕模式中的属性来进行,并在模式匹配的过程中解决异构数据库模式之间的一系列语义冲突。根据语义的定义,在关系数据库系统中,语义系统是由模式、模式的属性、模式中属性之间的联系和模式间的属性之间的联系构成。这里将语义分为3级:模式级、属性级和实例级。下面将异构模式中存在的语义冲突问题进行了分类,并阐述了各种语义冲突的解决策略:1)模式级冲突(1)关系命名冲突。包括关系名同义词和关系名同形异义词。前者进行换名或建立关系名同义词表以记载该类冲突;后者进行换名或建立关系名同形异义词表以记载该类冲突。(2)关系结构冲突。分为包含冲突和相交冲突。包含冲突是指在含义相同的两个关系 R1 和 R2 中一个关系的属性集是另一个的属性子集。相交冲突是指两关系属性集的交不为空,我们用 attrset 代表关系的属性集。对包含冲突:①如果两个关系的属性集相同即attrset(R1)=attrset(R2),则合并这两个对象,Merge(R1, R2)into R3;②如果 attrset(R1) attrset(R2),则 attrset(R2')=attrset(R2)-attrset(R1),attrset(R1') = attrset(R1);③对相交冲突:通常概括语义进行如下解决:generalize(R1,R2)其中 attrset(R3)=attrset(R1)∩attrset(R2), attrset(R1')= attrset(R1)-attrset(R3);attrset(R2')=attrset(R2)-attrset(R3)。(3)关系关键字冲突:两个含义相同的关系具有不同的关键字约束。包括候选关键字冲突和主关键字冲突。解决候选关键字冲突的 方法 是,将两关系的候选关键字的交集作为两关系的候选关键字;解决主关键字冲突的方法是,从两关系的公共候选关键字中选一个分别作为两关系的主关键字。(4)多对多的关系冲突:两个数据库中用不同数量的关系来表达现实世界的相同语义信息,就产生了多对多的关系冲突,这种冲突分3种:一对多,多对一和多对多。解决方法是在表示相同语义信息的数据库中关系之间建立映射来表示多对多的关系。2)属性级冲突(1)属性命名冲突:分属性名同义词冲突和属性名同形异义词。前者的解决方法是,换名或建立属性名同义词字典;后者的解决方法是,换名或建立属性名同形异义词字典。(2)属性约束冲突:分属性类型冲突和属性长度冲突两种。当在两个相关的关系R1和R2的属性N1和N2具有不同的属性类型时,就发生属性类型冲突。解决方法是在全局模式中将发生属性类型冲突的属性统一到某种属性类型。对属性长度的解决方法是,在全局模式中将发生属性长度类型冲突的属性对统一定义为最大者就可。(3)多对多的属性冲突:两个数据库中的关系分别用不同数量的属性来表达现实世界中相同的语义信息时,就发生了多对多的属性冲突,这种冲突分3种:一对多,多对一和多对多。解决方法是在表示相同语义信息的数据库中关系的属性之间建立映射来表示这种多对多的关系。3)实例级冲突(1)不兼容关系实例冲突:当含义相同的数据项在不同的数据库中存在不一致的数据值时就发生了不兼容关系实例冲突。其解决方法是:将关系实例的最近修改作为关系实例冲突部分的值,但不能保证数据的正确性。(2)关系实例表示冲突:关系实例表示冲突是指用不兼容的符号、量纲和精度来表示相关关系实例中等价的数据元素,主要包括表达冲突、量纲冲突和精度冲突。表达冲突是指在两个相关的关系R1和R2中含义相同的属性N1和N2具有不同的数据表达时,这种冲突使用语义值的概念来解决,即将表示同一概念的多种表达在全局数据中进行统一即可。量纲冲突是指在两个相关的关系R1和R2和中含义相同的属性N1和N2具有不同的量纲表示。量纲冲突也可以语义值加以解决,解决过程如下:分别定义发生量纲冲突的局部数据源的语义值模式和语义值说明,然后再定义全局数据模式中相应的语义值模式和语义值说明,将发生量纲冲突的属性值在全局模式中进行统一。精度冲突是指在两个相关的关系 R1 和 R2 中含义相同的属性具有不同的精度。其解决方法是在全局模式中将发生精度冲突的数据项定义为最高精度即可。4 总结本文针对异构数据源管理自治和模式异构的特点,提出了数据源集成模式匹配的体系结构,制定了匹配策略, 研究 了基于语义的模式匹配过程。以关系模式为 参考 模式,对异构数据源关系模式间可能存在的语义冲突 问题 进行了分类,并阐述了解决这些语义冲突的策略。参考 文献[1] Bergamaschi S, Castano S, Vincini M. Semantic Integration of Semistructured and Structured Data Sources [J]. SIGMOD Record, 1999, 28(1): 54-59.[2] Li W, Clifton C, Liu S. Database Integration Using Neural Network: Implementation and Experiences [J]. Knowledge and Information Systems, 2000, 2(1).[3] Reddy M P, Prasad B E, GReddy P. A Methodology for Integration of Heterogeneous Databases [J]. Information System, 1999,24(5).[4] Rahm E,Bernstein P.A Survey of Approaches to Automatic Schema Matching[J]. The International Journal on Very Large Data Bases (VLDB),2001,10(4):334-350.[5] 孟小峰,周龙骧,王珊.数据库技术 发展 趋势[J].软件学报,2004,15(12):1822-1835[6] 邓志鸿,唐世渭,张铭,等.Ontology研究综述[J].北京大学学报( 自然 科学 版),2002,38(5):730-738[7] 郭志鑫.基于本体的文档引文元数据信息抽取[J].微 计算 机信息,2006,22(6-3)相关文献:基于XML的多数据库系统集成数据模型 - 华中科技大学学报:自然科学版 - 卢晓蓉 陈传波 等基于CORBA和XML的多数据库系统研究 - 郑州轻工业学院学报:自然科学版 - 张素智,钱慎一,卢正鼎,集成数据库和文件系统的多数据库事务模型 - 华中理工大学学报 - 卢正鼎 肖卫军基于主动规则对象的分布式多数据库系统集成 - 小型微型计算机系统 - 胡华,高济,基于CORBA的多数据库系统 - 计算机科学 - 石祥滨 张斌基于XML的文件系统与多数据库系统的集成 - 小型微型计算机系统 - 卢正鼎 李兵 等基于CORBA/XML的多数据库系统的研究与实现 - 计算机研究与发展 - 卢正鼎 李兵 等多数据库系统集成平台CMDatabase体系结构 - 计算机工程 - 魏振钢 郭山清 贾忠伟多数据库系统的数据模式集成与查询处理 - 电脑开发与应用 - 陶世群数据库网格:基于网格的多数据库系统 - 计算机工程与应用 - 任浩 李志刚 肖侬高校学生收费系统基于多数据库系统集成的一种实践 - 昆明冶金高等专科学校学报 - 杨滨生,蒋涛勇,张中祥,谢静静,基于RDBMS的地理信息集成数据库系统 - 计算机工程 - 江崇礼 王丽佳 等基于CORBA的异构数据库系统集成模型的研究 - 现代计算机:下半月版 - 陈刚基于分布式对象技术的多数据库系统 - 计算机工程与科学 - 韩伟红 隋品波基于CORBA的多数据库系统互操作技术 - 计算机科学 - 肖明,肖毅,

论文数据库设计需要按照以下数据内容按顺序排列即可。

1、学院数据实体:学院名称、负责人、办公电话、学院编号。

2、学生数据实体:学号、密码、姓名、性别、民族、籍贯、出生日期、身份证号、联系电话、Email、备注、学院编号、所在班级、角色名称、论文编号。

3、教师数据实体:教师编号、密码、学院编号、所在科室、发布选题、教育程度、职称、姓名、性别、政治面貌、联系电话、Email、角色名称、备注。

4、角色数据实体:角色名称、权限名称。权限数据实体:权限名称、角色名称。以上的实体都是基本的数据实体。

由于操作模块的名称对应该权限,在程序初始化时这些数据都应该添加,教师论文管理系统的目的进行论文管理,因此还要包括如下的几个数据实体:

1、论文数据实体:论文编号、学院、作者、刊物名称、论文题目、收录情况、教师编号、学号、影响力、影响因子、引用次数、备注。

2、评审数据实体:教师编号、学号、论文编号、论文题目、评审意见、总分。

将数据概念结构设计转化为SQLSERVER2005数据库系统所支持的实际数据库模型,就是数据库的逻辑结构。在实体以及实体之间的关系基础上,形成数据库中的表格以及各个表格之间的关系。

扩展资料:

论文数据库设计注意事项:

1、标题。标题应鲜明、准确、精练地直接概括所进行的研究实践的主要内容和结果,正标题一般不超过20个字,如需有副标题,副标题一般不超过28个字。

2、内容提要。在主体内容前用200-500字扼要介绍论文的主要内容、采用的方法和得出的主要结论。

3、关键词。按照与论文内容紧密程度,另行依次列出3-5个关键词。

4、英文翻译内容。中文的标题、作者姓名、指导教师姓名、内容提要、关键词应翻译成英文。

参考资料:百度百科-文献数据库

期刊数据库查询

以下数据库中,能查找中文期刊文献的数据库有( )〔1〕CNKI中国期刊全文库 〔2〕中国学位论文库 〔3〕 人大复印资料 〔4〕 超星数字图书馆 〔5〕中文科技期刊数据库〔6〕万方数据资源系统 [7〕龙源电子期刊阅览室

有清华同方、维普、万方等。可以检索中文期刊的数据库有很多,但最常用的,也是大学购买最多的就是同方、维普和万方这三家数据库供应商。其中清华同方是使用最为广泛的数据库。收录的论文数量多,论文检索页面设计对于用户非常友好。即使第一次使用,也没有任何障碍

常用的电子期刊数据库如下:

1)中国知识基础设施工程网(CNKI数据库)。

“中国知识基础设施工程网”即“中国知网”,它是由清华同方股份有限公司和清华大学中国学术期刊(光盘版)杂志社负责牵头建立的国家知识基础设施。

其CNKI系列数据库包括期刊、报纸、学位论文、会议论文、标准、专利等,收录了自1994年以来的国内公开出版的8000多种期刊和报纸等出版物上发表的文章的全文。该数据库取得有关出版机构的授权,与印刷版出版物同步发布。

以PDF或CAJ格式呈现,与印刷版形式完全一致,确保文献资源的及时、准确、可靠。该网络平台既有社会科学文献,又有自然科学文献,是目前国内最大的中文文献数据资源库。

尤其是近年来,其推动与有关期刊签定独家授权协议,使得该数据库中积累了很多其他数据库所没有的重要期刊文献资源。

2)万方数据知识服务平台。

“万方数据知识服务平台”是由万方数据股份有限公司开发的建立在互联网上的大型中文网络信息资源系统。它由面向企业界、经济界服务的商务信息子系统、面向科技界的科技信息子系统以及数字化期刊子系统组成。

科技信息子系统是集中国科技期刊全文、中国科技论文与引文、中国科技机构与中国科技名人的论文和毕业论文等近百个数据库为一体的科技信息群。该系统由相关出版单位授权,文献发布形式与中国知网类似,资源覆盖自然科学和社会科学领域的期刊、图书、专利、标准等。

数字化期刊子系统使得用户可在网上直接获取万方数据库新提供的部分电子期刊的全文。

3)中国科技期刊数据库。

中国科技期刊数据库是由重庆维普咨询公司开发的一种综合性数据库,也是国内图书情报界的一大知名数据库。它收录了近千种中文期刊和报纸以及外文期刊,可供查询和下载。

以上几种数据库,大部分高校图书馆都购买了使用权,校内用户都可以免费使用和下载。这些数据库一般都有详尽的使用说明,学生可以了解。

中南大学数据库课程设计论文模板

数据库课程设计心得 范文 1: 在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本 方法 ,进一步提高我们综合运用所学知识的能力。 当我们这组决定做大学生就业咨询系统时,我们并没有着手写程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。当这些都准备好了之后,我们进行模块的分工。每个人都有自己的模块设计,而且写出来的代码要求可以实现相应模块的功能,得到理想的效果。当每个人都把自己的分工做好了,最后会由一个人把这些全部组合搭建在一起。我们使用的是Html和php相互嵌套使用,当一个系统做好了之后,我会好好地把程序都看一遍,理会其中的奥秘。 我所负责的是数据库的备份和还原还有一些界面的实现。还记得自己刚接触html的时候,觉得很感兴趣,所以有一段时间几乎到了痴迷的程度。然而Php是我刚接触不久的一种编程语言。不过觉得它的功能真的很强大,可以开发出很多大型的系统。但是在做备份和还原的时候,要考虑的东西还是很多的。当我遇到错误的时候,感到很受打击。值得欣慰的是,在同学的帮助和大量参考书的查阅下,我把自己的模块做好了。这就是我收获最大的地方。而且,我明白了遇到困难永不放弃的重要性,我知道了团队合作的重要性,我领悟了只有坚持不懈才会取得胜利。 知识的获得是无止境的,只要你想学,只要你行动,没有什么会难倒我们的。回首这一个多星期的课程设计,我很欣慰。因为我有了动力,有了勇气。谢谢老师对我们的不懈帮助,谢谢学校给了我们这一次实践的机会,也谢谢组员们的关怀。这些美好的回忆美好的东西将永远伴随着我。 数据库课程设计心得范文2: 一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的方法和技巧。在设计过程中,和同学们相互探讨,相互学习,相互监督。我学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世,这次课程设计对我来说受益良多。 课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古 名言 的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。我这次设计的科目是数据结。 数据结构,是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。作为一门独立的课程在国外是从20XX年才开始设立的。20XX年美国唐·欧·克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。“数据结构”在计算机科学中是一门综合性的专业基础课。数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、 操作系统 、数据库系统及其他系统程序的重要基础。 通过这次模具设计,我在多方面都有所提高。 一、编译工具VisualC++ 很多程序在结构上是独立的,但是本此设计的程序功能不是零散的,它有一个连接是的程序是一个整体,怎样达到这种统一体呢?因为这个输出连接是贯穿始终的。说到这,就应该说以下我所应用的调试工具,也就是运行环境VisualC++,可以充分利用Windows的支持剪贴版和英文的特点。正是在实现循环链表的程序中充分利用这个特点,才能制作出全汉化的初始化画面。 二、巩固和温习了C语言 在界面设置中使用函数调用while。其中文本显示颜色和背景颜色都可以任意按照自己的喜好,任意改变,但改变的时候必须采用标准英文大写,同时在制作显示菜单的窗口,大小根据菜单条数设计。最后采用printf输出程序设计界面。 这次的程序软件基本上运行成功,可以简单的建立链式循环链表,并进行输出,及循环语句的运用和选择语句的控制。由于时间和知识上的限制,使得程序规模相对较小,即功能还不很全面,应用也不很普遍。原来C语言可是涉及很多知识,而不是枯燥无聊的简单的代码部分而已,利用C语言方面的知识,我们可以设计出更完善的软件。 三、积累了宝贵的 经验 我这次课程设计代码中主要使用了链表的循环和遍历这两中操作。循环链表(CircularLinkedList)是单链表的另一种形式,它是一个首尾相接的链表。其特点是将单链表最后一个结点的指针域由NULL改为指向头结点或线性表中的第一个结点,就得到了单链形式的循环链表,并称为循环单链表。类似地,还有多重链的循环链表。在循环单链表中,表中所有结点被链在一个环上,多重循环链表则是将表中的结点链在多个环上。为了使某些操作实现起来方便,在循环单链表中也可设置一个头结点。这样,空循环链表仅由一个自成循环的头结点表示。所谓遍历(Traversal),是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。 这次课程设计我选中的题目是个人资料的管理。编写了一个可以简易使用的个人资料管理系统,可以进行资料的输入和管理。虽然在我的程序中有一部分是从网上搜索得来的,但我已经竭力将所获得的信息变成自己的资源,动手上机操作,在了解和看懂的基础上有所改变和创新,但是在的程序软件中还有部分的不足,需要加以更新。仅管,我并没能很好的利用所学数据结构的知识,但我也尽了自己最大的努力用我所学来完成这次的课程设计。同时,通过这次课程设计,我认识到了自己动手实践的弱势,特别是在编程方面,知道了计算机的实践操作是很重要的,只有通过上机编程才能充分的了解自己的不足。 四、对以后的学习充满了信心和期待 通过这次的课程设计,更是让我深刻认识到自己在学习中的不足,同时也找到了克服这些不足的方法,这也是一笔很大的资源。在以后的时间中,我们应该利用更多的时间去上机实验,加强自学的能力,多编写程序,相信不久后我们的编程能力都会有很大的提高能设计出更多的更有创新的作品。 数据库课程设计心得范文3: 数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇 文章 ,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。 首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学asp.net),我接触到microsoft 公司的.net产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var 看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.net是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql server2000,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。 通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。 来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just do it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。 开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了mvc架构,就是你啦。我决定用这个架构,不会,没关系,咱学。just do it!前期工作准备好后,那么我就得把我暑假学的.net加以实践。这个时候我更加深入的了解了利用ado.net操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,我完成了我的数据库课程设计--基于.net数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。 与其临渊羡鱼,不如退而结网。这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次数据库课程设计,不过这只是我学习路上的驿站,未来十年.net的核心技术就是xml[至少微软是这么宣传的],我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,just do it!语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊! 我很庆幸我参加了这次数据库大赛,让我确实打开了眼界。

数据库课程设计题目:小型超市管理系统1、项目计划1.1系统开发目的(1)大大提高超市的运作效率;(2)通过全面的信息采集和处理,辅助提高超市的决策水平;(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。1.2背景说明21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。1.3项目确立针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。1.4应用范围本系统适应于各种小型的超市。1.5 定义(1)商品条形码:每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。(2)交易清单:包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。(3)商品积压:在一定时期内,远无法完成销售计划的商品会造成积压。(4)促销:在一定时期内,某些商品会按低于原价的促销价格销售。库存告警提示:当商品的库存数量低于库存报警数量时发出提示。(5)盘点:计算出库存、销售额、盈利等经营指标。1.6 参考资料《数据库原理及设计》 陶宏才编 清华大学出版社《SQL Server 2000 实用教程》范立南编 清华大学出版社《SQL Server 2000 编程员指南》李香敏编 北京希望电子出版社《轻松搞定 SQL Server 2000 程序设计》Rebecca M.Riordan编《软件工程规范》Watts S.Humphrey编 清华大学出版社《软件工程理论与实践》 Shari Lawrence Pfleeger编 清华大学出版社《软件需求分析》 Swapna Kishore编 机械工业出版社《软件工程思想》 林锐编2、逻辑分析与详细分析2.1系统功能 (1)、零售前台(POS)管理系统,本系统必须具有以下功能: 商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。 收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。 会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。 安全性:OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。  独立作业:有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业(2)、后台管理系统,本系统必须具备以下功能 进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。 销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。 库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。 人员管理: 员工、会员、供货商、厂商等基本信息登记管理。 员工操作权限管理。 客户销售权限管理。(3)系统结构系统总体结构模块子系统结构功能描述:商品录入子系统要求能快速录入商品,因此必须支持条形码扫描。功能描述:收银业务子系统能计算交易总额,打印交易清单,并根据会员卡打折。功能描述:进货管理子系统可以根据库存自动指定进货计划,进货时自动等级,以及提供查询和打印计划进货与入库记录的功能。功能描述:销售管理子系统可以控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表,同时可以生成销售排行榜。功能描述:库存管理子系统提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。功能描述:人员管理子系统提供基本信息登记管理,员工操作权限管理,客户销售权限管理的功能。2.2、流程图前台管理系统顶层DFD图 第0层DFD图第1层DFD图2.3、户类型与职能(1)、员工(营业员): 通过商品条形码扫描输入商品到购买清单 操作软件计算交易总金额 操作软件输出交易清单 对会员进行会员卡扫描以便打折(2)、:超市经理 操作软件录入商品,供货商,厂商 操作软件制定进货计划 查询打印计划进货与入库记录 操作软件控制商品销售与否 查询打印销售情况 操作软件生成销售排行榜 查询库存明细记录 根据软件发出的库存告警进行入货 操作软件进行盘点计算(3)、总经理: 基本信息登记管理 员工操作权限管理 客户销售权限管理2.4、统开发步骤 确定参与者和相关的用况 为每个用况设计过程 建立顺序图,确定每个脚本中对象的协作 创建类,确定脚本中的对象 设计, 编码, 测试, 集成类 为过程编写系统测试案例 运行测试案例,检验系统2.5、系统环境需求 系统模式 本系统采用C/S模式作为开发模式 硬件环境 服务器端: 高性能的计算机一台, 普通的双绞线作为连接。 客户端: 普通的计算机或者工作站, 普通的双绞线作为连接。 软件环境 服务器端:安装SQL Server 2000的服务器版本,安装windows 2000服务器版本, 配置了诺顿等必须的防毒软件。 客户端: 安装SQL Server2000的服务器版本, 安装了VB等可视化开发工具软件, 安装windows2000服务器版本。2.6、系统安全问题信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。  系统要能重建 系统应该是可审查的 系统应能进行有效控制,抗干扰能力强 系统使用者的使用权限是可识别的3、基于UML的建模3.1语义规则用例模型(use cases view)(用例视图)的基本组成部件是用例(use case)、角色(actor)和系统(system)。用例用于描述系统的功能,也就是从外部用户的角度观察,系统应支持哪些功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述,一个完整的系统中通常包含若干个用例,每个用例具体说明应完成的功能,代表系统的所有基本功能(集)。角色是与系统进行交互的外部实体,它可以是系统用户,也可以是其它系统或硬件设备,总之,凡是需要与系统交互的任何东西都可以称作角色。系统的边界线以内的区域(即用例的活动区域)则抽象表示系统能够实现的所有基本功能。在一个基本功能(集)已经实现的系统中,系统运转的大致过程是:外部角色先初始化用例,然后用例执行其所代表的功能,执行完后用例便给角色返回一些值,这个值可以是角色需要的来自系统中的任何东西。UML:是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示;它不是一种可视化的程序设计语言而是一种可视化的建模语言;不是工具或知识库的规格说明而是一种建模语言规格说明是一种表示的标准;不是过程也不是方法但允许任何一种过程和方法使用它。用例(use case):参与者(actor):3.2、UML模型3.21、系统UML模型 3.22、子系统UML模型(1)零售前台(POS)管理系统用例视图 (2)后台管理系统用例视图3.3、系统实现图4、超市销售系统概念设计文档(1)、系统ER图(2)、系统ER图说明1) 商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;2) 每个顾客可以购买多种商品,不同商品可由不同顾客购买;3) 每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。(3)、视图设计1) 交易视图(v_Dealing)——用于查询交易情况的视图;2) 计划进货视图(v_PlanStock)——用于查询进货计划的视图;3) 销售视图(v_Sale)——用于查询销售明细记录的视图;4) 入库视图(v_Stock)——用于查询入库情况的视图。5、逻辑设计文档(1)、系统关系模型a) 商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)b) 用户表(用户编号,用户名称,用户密码,用户类型)c) 会员表(会员编号,会员卡号,累积消费金额,注册日期)d) 销售表(销售编号,商品编号,销售数量,销售金额,销售日期)e) 交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)f) 进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)g) 供货商表(供货商编号,供货商名称,供货商地址,供货商电话)h) 厂商表(厂商编号,厂商名称,厂商地址,厂商电话)(2)、系统数据库表结构数据库表索引 表名 中文名MerchInfo 商品信息表User 用户表Menber 会员表Sale 销售表Dealing 交易表Stock 进货入库表Provide 供货商表Factory 厂商表商品信息表(MerchInfo)字段名 字段类型 长度 主/外键 字段值约束 对应中文名MerchID int 4 P Not null 商品编号MerchName Varchar 50 Not null 商品名称MerchPrice Money 4 Not null 价格MerchNum Int 4 Not null 库存数量CautionNum Int 4 Not null 库存报警数量PlanNum Int 4 null 计划进货数BarCode Varchar 50 Not null 条形码SalesProPrice Money 4 促销价格SalesProDateS Datetime 8 促销起日期SalesProDateE Datetime 8 促销止日期AllowAbate Int 4 Not null 允许打折AllowSale Int 4 Not null 允许销售FactoryID Varchar 10 F Not null 厂商编号ProvideID Varchar 10 F Not null 供货商编号用户表(User)字段名 字段类型 长度 主/外键 字段值约束 对应中文名UserID varchar 10 P Not null 用户编号UserName Varchar 25 Not null 用户名称UserPW Varchar 50 Not null 用户密码UserStyle Int 4 Not null 用户类型会员表(Menber)字段名 字段类型 长度 主/外键 字段值约束 对应中文名MemberID Varchar 10 P Not null 会员编号MemberCard Varchar 20 Not null 会员卡号TotalCost Money 4 Not null 累积消费金额RegDate Datetime 8 Not null 注册日期销售表(Sale)字段名 字段类型 长度 主/外键 字段值约束 对应中文名SaleID Varchar 10 P Not null 销售编号MerChID Varchar 10 F Not null 商品编号SaleDate Datetime 8 Not null 销售日期SaleNum Int 4 Not null 销售数量SalePrice Money 4 Not null 销售单额交易表(Dealing)字段名 字段类型 长度 主/外键 字段值约束 对应中文名DealingID Varchar 10 P Not null 交易编号DealingPrice Money 4 Not null 交易金额DealingDate Money 4 Not null 交易日期MemberID Varchar 10 会员卡号UserName Varchar 10 F Not null 用户名称入库纪录表(Stock)字段名 字段类型 长度 主/外键 字段值约束 对应中文名StockID Varchar 10 P Not null 入库编号MerchID Varchar 10 F Not null 入库商品编号MerchNum Int 4 Not null 入库数量MerchPrice Money 4 Not null 单额TotalPrice Money 4 Not null 总额StockDate Datetime 8 Datetime 入库日期PlanDate Datetime 8 Datetime 计划进货日期StockState Int 4 Not null 入库状态供货商表(Provide)字段名 字段类型 长度 主/外键 字段值约束 对应中文名ProvideID varchar 10 P Not null 供货商编号ProvideName Varchar 50 Not null 供货商名称ProvideAddress Varchar 250 供货商地址ProvidePhone Varchar 25 供货商电话厂商表(Provide)字段名 字段类型 长度 主/外键 字段值约束 对应中文名FactoryID varchar 10 P Not null 厂商编号FactoryName Varchar 50 Not null 厂商名称FactoryAddress Varchar 250 厂商地址FactoryPhone Varchar 25 厂商电话6、物理设计文档/*----------创建数据库----------*/create database SuperMarketdbon primary(name=SuperMarketdb,filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf',size=100MB,maxsize=200MB,filegrowth=20MB)log on(name=SuperMarketlog,filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf',size=60MB,maxsize=200MB,filegrowth=20MB)go/*----------创建基本表----------*/use [SuperMarketdb]go/*创建交易表*/CREATE TABLE Dealing ( DealingID int identity(1,1) Primary key , DealingDate datetime NOT NULL , DealingPrice money NOT NULL , UserName varchar(25) NULL , MemberCard varchar(20) NULL) GO/*创建厂商表*/CREATE TABLE Factory ( FactoryID varchar(10) Primary key , FactoryName varchar(50) NOT NULL , FactoryAddress varchar(250) NULL , FactoryPhone varchar(50) NULL )GO/*创建会员表*/CREATE TABLE Member ( MemberID varchar(10) Primary key , MemberCard varchar(20) NOT NULL , TotalCost money NOT NULL , RegDate datetime NOT NULL )GO/*创建商品信息表*/CREATE TABLE MerchInfo ( MerchID int identity(1,1) Primary key , MerchName varchar(50) Unique NOT NULL , MerchPrice money NOT NULL , MerchNum int NOT NULL , CautionNum int NOT NULL , PlanNum int NOT NULL , BarCode varchar(20) Unique NOT NULL , SalesProPrice money NULL , SalesProDateS datetime NULL , SalesProDateE datetime NULL , AllowAbate int NOT NULL , AllowSale int NOT NULL , FactoryID int NOT NULL , ProvideID int NOT NULL) GO/*创建供应商表*/CREATE TABLE Provide ( ProvideID varchar(10) Primary key , ProvideName varchar(50) NOT NULL , ProvideAddress varchar(250) NULL , ProvidePhone varchar(25) NULL )GO/*创建销售表*/CREATE TABLE Sale ( SaleID int identity(1,1) Primary key , MerChID int NOT NULL , SaleDate datetime NOT NULL , SaleNum int NOT NULL, SalePrice money NOT NULL) GO/*创建入库表*/CREATE TABLE Stock ( StockID int identity(1,1) Primary key , MerchID int NOT NULL , MerchNum int NOT NULL , MerchPrice money NULL , TotalPrice money NULL , PlanDate datetime NULL , StockDate datetime NULL, StockState int NOT NULL) GO/*创建用户表*/CREATE TABLE User ( UserID varchar(10) Primary key , UserName varchar(25) NOT NULL , UserPW varchar(50) NOT NULL , UserStyle int NOT NULL ,)GO/*----------创建表间约束----------*//*商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束*/ALTER TABLE MerchInfo ADD CONSTRAINT [FK_MerchInfo_Factory] FOREIGN KEY ( [FactoryID] ) REFERENCES Factory ( [FactoryID] ), CONSTRAINT [FK_MerchInfo_Provide] FOREIGN KEY ( [ProvideID] ) REFERENCES Provide ( [ProvideID] )GO/*销售表中商品编号与商品信息表之间的外键约束*/ALTER TABLE Sale ADD CONSTRAINT [FK_Sale_MerchInfo] FOREIGN KEY ( [MerChID] ) REFERENCES MerchInfo ( [MerchID] ) ON DELETE CASCADE GO/*入库表中商品编号与商品信息表之间的外键约束*/ALTER TABLE Stock ADD CONSTRAINT [FK_Stock_MerchInfo] FOREIGN KEY ( [MerchID] ) REFERENCES MerchInfo ( [MerchID] ) ON DELETE CASCADE GO/*----------创建索引----------*//*在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引*/CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)GO/*在商品信息表上建立一个以商品编号为索引项的非聚集索引*/CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)GO/*在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引*/CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)GO/*在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引*/CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)GO/*----------创建视图----------*//*创建用于查询交易情况的视图*/CREATE VIEW v_DealingASSELECT DealingDate as 交易日期, UserName as 员工名称, MemberCard as 会员卡号, DealingPrice as 交易金额FROM Dealing GO/*创建用于查询进货计划的视图*/CREATE VIEW v_PlanStockASSELECT Stock.StockID as SID, MerchInfo.MerchName as 商品名称, MerchInfo.BarCode as 条形码, Factory.FactoryName as 厂商, Provide.ProvideName as 供货商, Stock.MerchNum as 计划进货数量, Stock.PlanDate as 计划进货日期FROM Stock,MerchInfo,Provide,FactoryWhere Stock.MerchID = MerchInfo.MerchID and Provide.ProvideID=MerchInfo.ProvideID and Factory.FactoryID=MerchInfo.FactoryID and Stock.StockState=0 GO/*创建用于查询销售明细记录的视图*/CREATE VIEW v_SaleASSELECT MerchInfo.MerchName as 商品名称, MerchInfo.BarCode as 条形码, MerchInfo.MerchPrice as 商品价格, Sale.SalePrice as 销售价格, Sale.SaleNum as 销售数量, Sale.SaleDate as 销售日期FROM Sale INNER JOIN MerchInfo ON Sale.MerChID = MerchInfo.MerchID GO/*创建用于查询入库情况的视图*/CREATE VIEW v_StockASSELECT MerchInfo.MerchName as 商品名称, MerchInfo.BarCode as 条形码, Factory.FactoryName as 厂商, Provide.ProvideName as 供货商, Stock.MerchPrice as 入库价格, Stock.MerchNum as 入库数量, Stock.TotalPrice as 入库总额, Stock.StockDate as 入库日期FROM Stock,MerchInfo,Provide,FactoryWhere Stock.MerchID = MerchInfo.MerchID and Provide.ProvideID=MerchInfo.ProvideID and Factory.FactoryID=MerchInfo.FactoryID and Stock.StockState=1 GO7、小结和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本, 提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力, 提供有效的技术保障。由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如: 本系统只适合小型超市使用,不能适合中大型超市使用; 超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能;对于以上出现的问题,我们深表歉意,如发现还有其它问题,希望老师批评指正。

[1] 钱雪忠.数据库原理及应用[M].北京:邮电大学出版社.2007.8[2] 孙家广.软件工程[M].北京:高等教育出版社.2005.7[3] 戴小平.数据库系统及应用[M].北京:中国科学技术出版社[4] 李明欣.基于BootStrap3的JSP项目实例教程[M].北京:航空航天大学出版社[5] 赵洛育.html css javascript网页设计与制作从入门到精通[M].北京:清华大学出版社[6] 陈晓勇.MySQL DBA修炼之道[M].北京:机械工业出版社.2017.1

相关百科

热门百科