系统管理篇1
中***分类号:TP315文献标识码:A文章编号:1009-3044(2012)06-1310-06
GPON Management System
CHEN Li
(China Railway Communication Co., Ltd, Changzhou 213000,China)
Abstrat: The second half of this year the company began to build their own digital cell equipment, in order to better manage the GPON device port, port out-of-the-box, but also is convenient for computer room maintenance personnel to operate, it is necessary to develop a set of program management system. The system is divided into two interface, a webpage interface, is mainly used for branch query device port and opening up as well as user accounts; one is a procedural interface, mainly for the engine room maintenance staff of OLT, ONU equipment accounting management, equipment and opening ports open, at the same time provides a simple port test function. This proce? dure using the popular VB and VB.省略; GPON
1选取编程语言和数据库语言
1.1桌面编程语言选用vb
VB6.0全称为VisualBasic 6.0,是微软公司于1998年推出的可视化编程工具MSDN之一,是目前世界上使用最广泛的程序开发工具之一。结构简单,编写程序对系统的资源占有极低,是程序编写者编写小型程序的第一选择!如果你是一个对编程一无所知,而又迫切希望掌握一种快捷实用的编程语言的初学者,那选择VB 6.0没错的。即使考虑到VB程序本身编译和运行效率较低的不足,但是它的快捷的开发速度,简单易学的语法,体贴便利的开发环境,它仍不失一款优秀的编程工具,是初学者的首选。
1.2数据库选用mssql2000 1.2.1易于安装、部署和使用
如果一个数据库可支持企业的所有处理需求,则往往这个数据库很复杂,且难以管理。Microsoft?SQL Server?2000包含许多简化安装、部署、管理和使用数据库的过程的工具和功能。SQL Server 2000为数据库管理员提供了精细调整运行生产联机系统的SQL Server 2000安装所需要的全部工具。SQL Server 2000还可以有效地运行在小型的单用户系统上,并将管理开销控制在最低水平。
1.2.2动态自管理
运行期间,SQL Server 2000自动对自身进行动态的重新配置。随着更多的用户连接到SQL Server 2000,它可以动态地获取额外的资源(如内存)。当工作负荷减轻时,SQL Server 2000会将资源释放回系统。如果服务器上有其它应用程序启动,则SQL Serv? er 2000将检测那些应用程序额外分配的虚拟内存,并减少自己使用的虚拟内存以减少分页开销。当插入或删除数据时,SQL Serv? er 2000还会自动增大或减小数据库的大小。
1.3网页编程选用vs2005
.NET是微软公司为了适应Internet发展的需要所提供的特别适合网络编程和网络服务的平台。.NET给计算机业带来了全新的、快速而敏捷的高信度计算能力,也给软件开发人员提供了高效的开发工具。Visual Studio 2005是一个功能强大、高效并且可扩展的编程环境。有许多激动人心的新功能,提供统一的集成开发环境,支持在同样的开发环境里用Visual Basic、Visual C++、Visu?
alC#、Visual J#和数十种编程语言,编写、调试和部署应用程序。Visual 是.NET平台上的主流程序设计语言之一。
改进软件开发生命周期,当Microsoft首先Visual Basic之时,就通过降低其复杂度从而使Windows软件开发得以广泛应用。利用Visual Basic 6.0,Microsoft让数以百万计的开发人员能够快速开发客户端/服务器应用程序。最近,利用Visual Studio . NET,Microsoft又为开发人员提供了轻松开发分布式应用程序的工具与技术。通过Visual Studio 2005 Team System,Microsoft正在解决日益增加的应用程序复杂性及其设计、开发和部署所必需的生命周期问题。这一点是通过提供必需的工具和指导从而能够预见、重复结果(无需付出生产效率和创新的代价)实现的。集成的工具:Visual Studio的成功已被证实,即开发人员偏爱一个具备对他们需要的工具提供接口的集成开发环境。通过将开发人员在开发环境中需要的测试和性能工具(例如,单元测试、代码分析和性能分析)合并在一起,Visual Studio Team System也期待着这种成功。这使开发人员能够在生命周期的较早阶段就改善其代码的质量,而无需中断他们的工作。通过尽早地为开发人员提供他们需要用于识别和解决质量问题的工具,更多的产品缺陷就能够在它们还未构成危害之前即被发现并解决。
2数据库设计
2.1 SQL语言简介
SQL查询语句:SELECT select_list[ INTO new_table ] FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
SQL更新语句:UPDATE{table_name WITH ( < table_hint_limited > [ ...n ] )| view_name
| rowset_function_limited } SET { column_name = { expression | DEFAULT | NULL }
| @variable = expression | @variable = column = expression } [ ,...n ]
{ { [ FROM { < table_source > } [ ,...n ] ] [ WHERE < search_condition > ] } | [ WHERE CURRENT OF
{ { [ GLOBAL ] cursor_name } | cursor_variable_name }
] } [ OPTION ( < query_hint > [ ,...n ] ) ]
SQL删除语句:
DELETE [ FROM ] { table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limited }[ FROM { < table_source > } [ ,...n ] ][ WHERE { < search_condition > | { [ CURRENT OF{ { [ GLOBAL ] cursor_name } | cursor_variable_name }] }}] [ OPTION ( < query_hint > [ ,...n ] ) ]
2.2数据表设计
本系统共设计七张表。
2.2.1 OLT表
字段定义:OLT名称,OLTIP,安装地点,安装日期,上行设备,上行接口,型号,QVLAN,起始VLAN,结束VLAN。其中OLT名称,OLTIP为主字段。
2.2.2 olt计费表
字段定义:olt名,olt计费slot,olt计费subslot,olt计费port, olt计费qvlan。
2.2.3 ONU表
字段定义:分局名称, ONU名称, ONUIP,安装地点,安装日期, MAC,型号,上行OLT,上行接口, QVLAN, USERVLAN, ONUID,分光器端口。
其中ONU名称, ONUIP为主字段。
2.2.4 ONU端口表
字段定义:ONU名称,端口,状态,开通速率,用户帐号,开通日期,关闭日期。其中ONU名称为主字段。
2.2.5操作日志
字段定义:操作员,操作日期,操作类型, ONU名称, ONU端口,端口速率,用户帐号。其中操作员为主字段。
2.2.6操作员工表
字段定义:操作员,密码,操作部门。其中操作员为主字段。
2.2.7分局表
字段定义:分局名称,密码。
2.3存储过程设计
存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是SQL语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以出于任何使用SQL语句的目的来使用存储过程,它具有以下优点:1、可以在单个存储过程中执行一系列SQL语句。2、可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。3、存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。
本系统共设计3个存储过程。
2.3.1 cxonuonline
输入参数:@oltip varchar(100)
实现功能:根据oltip实时查询该OLT下挂的ONU***状态并保存在数据库临时表(onu***表)中,供程序实时查询(每次执行该存储过程都将清空onu***表)2.3.2 SqlToExcel
输入参数:@Path varchar(100),--文件存放路径
@Fname varchar(100),--文件名字
@SheetName varchar(80),---工作表名字@SqlStr varchar(100)
实现功能:将sql语句查询出来的结果保存在指定的EXCEL表中。
2.3.3生成onu告警
输入参数:无
实现功能:该过程每五分钟执行一次,将中断的ONU保存在ONU输出告警表中,供综合网管告警系统短信输出告警(本人的另一系统)。
3程序功能介绍
该程序采用模块化设计,共两大块功能:
1)网页程序,主要供分局查询端口使用情况和用户帐号,使分局在装宽带时和装电话一样,必须先由分局客服选定ONU设备和端口并将其信息发至中心机房,由中心机房将端口开放出来并指定端口速率,分局客服再派单至工维人员进行装机。该程序和本人设计的原交换弹性放号系统集成在一起,主要是为了分局更方便的使用,分两个小模块:
①分局登陆页面
主要是实现安全功能,登陆任何页面(在没有网页论证时)都将被强制指向该页面进行论证,保证了公司信息不被外露;同时分局以自己的帐号登陆后只能查询本分局的信息
②分局查询页面
主要实现分局查询:1、查询端口使用情况以便选端口;2、工维人员可以根据帐号随时查询该帐号对应设备极其端口。
2)机房端程序,主要实现机房维护人员对OLT、ONU设备的台帐管理、设备开通和端口开放,用户***情况,ONU***情况,机房开放关闭端口日志记录等,共分以下几个小模块:
①登陆窗口模块,实现安全功能和为日志记录模块提供操作员姓名。
②主程序模块,主要放置一个sstab控件,将下面几个小模块集成在一个主窗口内,使程序界面更加紧凑和美观。
③OLT表管理模块,主要放置一个dadagrid控件,提供直接在表格内增、删、修改OLT设备及其属性。
④ONU表管理模块,主要放置一个dadagrid控件,提供直接在表格内增、删、修改ONU设备及其属性。
⑤帐号开关管理模块,实现三个小功能:1、装机功能:根据分局的装机单来开放关闭设备端口,并指定端口速率和端口用户帐号;2、查询功能:根据分局名查询整个分局已装宽带,根据单个用户帐号和分局名模糊查询分局内已装宽带,根据ONU名查询整个ONU设备端口状态;3、记录功能,将操作员的记录保存在数据库中;4、测试功能,根据ONU设备名及其端口实时查询设备端口是否已经开放和用户是否连接上网(此功能主要用在分局工维装机维护时,机房维护人员可以方便的配合和指导分局,而无须登陆设备查看,实现原理主要是通过SNMP协议扫描实现。)
⑥操作日志功能模块,主要实现根据年月查询机房维护人员所做的操作并实现导出到EXECL表中,一是在出现开闭端口和分局有纠纷时,可以方便的查询到是哪个维护人员操作,二是可以统计机房维护人员的工作量。
⑦ONU开通模块,主要功能是根据ONU表中的数据通过点击按纽就实现ONU设备的数据开通,而无需登陆设备进行操作。主要原理是通过WINSOCK控件实现TELNET功能直接登陆设备,将ONU表中的数据转换为ONU设备命令后执行,在执行过程中将与ONU设备的交互命令通过一个文本框显示出来,以便维护人员在执行中可以查看是否出错。
⑧OLT开通模块,原理和功能和ONU开通模块差不多。由于OLT开通往往不是一次性开通,有时侯在OLT设备上已经装有用户,而现在又需再加一个或几个PON口的ONU设备数据,所以OLT的开通不是设备为单位,而是以OLT设备加PON口,以PON为单位进行开通,其次OLT开通影响全局的可能性较大,所以增添了一个功能,可以先预先生成命令进行查看命令是否有错,在进行执行,或者直接将生成的命令拷贝到文本文件中,根据需要将命令执行到设备中。
⑨ONU***实时查询模块,主要实现根据OLT名查询OLT下挂的ONU设备是否***。
4程序运行效果***
4.1 OLT功能模快效果***
***1 OLT功能模快效果***4.2 ONU功能模快效果***
***2 ONU功能模快效果***4.3网页查询功能模快效果***
***3为网页查询功能模快效果***。
5程序实现部分源码
5.1中心机房维护人员用程序部分源码
Function crtvlannew(执行标志) ----生成OLT设备vlan数据
On Error Resume Next
***3网页查询功能模快效果*** Dim rc As New ADODB.Connection Dim rr As New ADODB.Recordset
If Check1.Value = 1 Then ’’是否新装
ss = Chr(13) + Chr(10) + Chr(13) + Chr(10)
ss = ss + " sysname " + Trim(Text13.Text) + Chr(13) + Chr(10) + Chr(13) + Chr(10) ss = ss + Chr(13) + Chr(10) + Chr(13) + Chr(10)
ss = ss + " autosave interval on " + Chr(13) + Chr(10) + Chr(13) + Chr(10)
ss = ss + Chr(13) + Chr(10) + Chr(13) + Chr(10)
.........
crtvlannew = ss
If执行标志= 1 Then Winsock2.SendData ss End Function
Function crtontline模板new(执行标志) On Error Resume Next
Dim rc As New ADODB.Connection Dim rr As New ADODB.Recordset rc.Open connstr With rr
cmdstr="SELECT LTRIM(RTRIM(USERVLAN)) AS a ,rtrim(ltrim(ONUID)) as b FROM ONU表WHERE ltrim(rtrim(上行
OLT))=’" + Trim(Combo5.Text) + "’ AND RTRIM(LTRIM(上行接口)) =’" + Trim(Combo9.Text) + "’".Open cmdstr, rc, adOpenDy? namic, adLockBatchOptimistic
.....
End Function
Function crtontline板模板new(oltslot, oltport,起始VLAN,结束vlan, ONUID,初加标志) On Error Resume Next
line板模板= CStr(CInt(oltslot) * 10 + 1 + CInt(oltport)) vlan = CInt(起始VLAN)
ss = Chr(13) + Chr(10) + Chr(13) + Chr(10)
ss = ss + " conf " + Chr(13) + Chr(10) + Chr(13) + Chr(10)
........
crtontline板模板new = ss End Function
Function addontnew(执行标志)
On Error Resume Next
Dim rc As New ADODB.Connection Dim rr As New ADODB.Recordset
ss = Chr(13) + Chr(10) + Chr(13) + Chr(10)......
End Function
5.2网页实现部分源码
Function生成olt()
On Error Resume Next
Dim connstr As String = connectstring2() Dim rc As New ADODB.Connection Dim rr As New ADODB.Recordset Dim rr2 As New ADODB.Recordset Dim mynode, tempnode As TreeNode rc.Open(connstr)
Dim cmdstr As String = "SELECT分局名称,上行OLT FROM ONU表where rtrim(ltrim(分局名称))=’" + Trim(fenju) + "’ GROUP BY分局名称,上行OLT"
Dim cmdstr2 As String
rr.Open(cmdstr, rc, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockBatchOptimistic)......
End Function
Sub查询olt()
On Error Resume Next
If Len(TreeView1.SelectedNodeIndex) = 1 Then Exit Sub
If Left(TreeView1.SelectedNodeIndex, 1) = "0" Then Exit Sub Dim str
Dim myset As New DataSet
str = "SELECT * FROM ONU端口表where rtrim(ltrim(ONU名称))=’" + Trim(Session("mkmc")) + "’ " myset.Tables.Clear()
myset = createdataset2(myset, str)
If Int(myset.Tables(0).Rows.Count / 10) < DataGrid1.CurrentPageIndex Then DataGrid1.CurrentPageIndex = 0
DataGrid1.DataSource = myset.Tables(0)
’ DataGrid1.DataMember = "phone"
DataGrid1.DataBind()
’ TextBox1.Text = Session("mkmc") End Sub
参考文献:
[1]刘铭徽.基于VB的***书管理系统设计[J].湖北经济学院学报:人文社会科学版,2009,6(3):207-208.
[2]乔美娥.ADO技术在VB系统开发中的高级应用[J].中国科技信息,2008(24):84-85.
[3]杨艳.浅析VB中三种数据访问技术[J].中小企业管理与科技:上旬刊,2009,4:244.
[4]周治平.ADO数据存取技术[J].江南学院学报,1999,14(3):52-56.
[5]郭鹏.VB中处理复杂查询的方法[J].中国高新技术企业,2008(17):149.
[6]唐爱平.基于.NET平台的存取数据库***像技术[J].电脑开发与应用,2009,22(7):77.
[7]戴婉荣,熊前兴.SQL Server数据同步机制的研究与应用[J].电脑知识与技术,2009,5(19):5096-5098.
[8]耿小芬,徐忠***.Visual Basic中的数据访问技术[J].中国教育信息化高职高教,2009(13):83-84.
[9]姚小兵.VB中ADO技术的应用[J].电脑与信息技术,2005,13(4):22-24.
系统管理篇2
1、成品套装的管理系统
这类系统是定型的管理系统,通过软件的参数设置,对软件做少量的功能调整。无法解决的管理需求,通过二次开发实现,系统主体架构不可变化,只能解决一部分的新增需求,同时,二次开发可能引发系统不稳定现象。此类系统灵活性差,系统更新速度缓慢,但成本较低,应用速度较快。
2、在开发型平台上研发的管理系统
此类管理系统在开发平台上按用户需求来设计开发。但建设速度较慢,质量受制于研发人员的业务理解能力和业务经验。企业亦可组建研发团队研发适合自己的管理系统,成本略高。
3、在应用设计平台下的管理系统
系统管理篇3
关键词:饭店系统管理;查询;结账;菜单;软件测试
中***分类号:TP315
1 背景
面对饭店行业多元化的经营情况,经营的规模、特色、出品这些因素的所有不同,带给饭店行业所有工作的流程方法不一样。随着解决方法的不同情况,对人才的专业化程度的要求也相应地提高了,在国内的市场上,饭店行业的人才供应不足,在这样的情况下,信息系统的出现缓解了这种紧张的局面。首先饭店管理系统不是单纯的只用于结账计算的工具,它有着科学化的、标准化的管理体系,它通过对目前饭店行业市场的具体情况进行准确分析后设计而成的,它不仅能够针对菜品的多样化和特色化的服务很难实现标准化的管理,使饭店行业的成本控制来实现这些问题给与解决。再者,饭店管理系统能够给出具体相应符合企业自身要求比较科学化的标准化的管理流程,这暂时解决了专业人才的需求,使用该系统就能实现员工所要做的事。最后饭店管理系统可以针对饭店的经营情况而做出科学化的分析,使得饭店行业对市场的应变能力得到了很大的提高,从而通过饭店管理系统来实现合理的管理来降低成本、堵漏节流等作用。更好的完善饭店行业的运营管理,提高企业对自身的竞争能力。
2 研究的内容
饭店管理系统:利用和数据库技术,来进行管理 主要有以下几个模块:(1)登录窗体模块:用户身份验证;(2)经理模块:主要负责员工的基本情况和库存情况;(3)员工管理模块:主要负责结账和查询以及;(4)主窗体模块:顾客通过这可以查看自己的消费情况;(5)结算模块:分为一般顾客的结算。
课题的研究目标
使用VB.MET和Sql server 2008做数据库来开发饭店管理系统,实现饭店管理的基本功能,同时也节省时间。
3 需求分析
3.1 功能需求
饭店管理系统主要用于查询预订座位、管理员工、查看菜单、查询消费情况、进入库的登记等。为了方便对系统的维护,主要实现的功能有:库存的存储量统计、菜样的增加等。
3.2 性能要求
系统的健壮性:饭店实时信息就是运行在系统的信息,不允许半点差错,所以系统为了保证其健壮性就必须保证其出错的概率尽可能的低。
系统运行平台的稳定性:保证系统运行所在平台的稳定性就是为保证系统的稳定性,比如说网络的稳定和其他硬件设施,例如打印机、服务器的稳定。
操作的简便性:系统的操作尽量简单关系到系统的实际工作环境。对事件或其它的提示尽量采用视觉提。
3.3 组织结构***
4 系统功能分析
4.1 功能介绍
相关技术采用:这系统是基于SQL Server 2008数据库建立的,在Microsoft Visual Studio 2008写代码,运用+SQL Server而实现的。
餐饮管理系统功能模块说明如下:
(1)前台营业管理系统
预定管理,桌位预定
主要包括:1)添加顾客的预定,如果座位被顾客预定了那么座位就不能被其他顾客用了。2)删除顾客的预定,当顾客取消预定,或者到了预定保留的期限后,其他顾客就可以预定和使用。在前台人员确定之后,系统会自动的将已经被取消的桌位改为空桌。3)更改预定状态,当顾客在规定期限的范围内到达,由管理人员将顾客所定座位的状态将改为有人。
实时消费管理,负责前台的顾客消费
主要包括:1)查询桌位,查询桌位的状态(包括桌位是不是空的,座位数)2)开台,根据查询后的桌位状态和顾客所提的要求,将空桌位应改为占用的状态,并且确认每桌的人数。3)点菜,可以根据桌位的不同,即可以分类查询菜品信息,包括菜品的价格,顾客确认点的菜后即将菜品添加到顾客的菜单中。4)添菜,在菜单已经确认的传至厨房以后,如果顾客还想添加菜品,就可以将菜品添加到顾客新增的菜单中后,即可以将新增菜单传到厨房。5)为厨房传菜单,将客人已经点好的菜品传到厨房中。6)并桌,当桌位不足的时候,就可以将多桌位合并为一桌。7)结账,在顾客去结账的时候可以到前台去查询所消费的情况,也可以打印发票。
(2)后台管理系统
1)仓库管理
主要包括:1>进货,将所有买进的原材料的价格、种类、数量、进货的时间等都要纪录在系统当中。2>出货,将所有用过得原材料的数量和种类都记录在系统当中。当原材料的数量不足的时候就要去进货。
2)菜品管理
主要的功能包括:1>添加菜品2>查询菜品3>修改4>删除包括菜品的编5>名称6>价格等
3)系统管理
主要包括:1>员工管理:主要负责员工住址,电话、入职信息、删除员工、添加员工。2>权限管理:不同的员工具有不同的操作权限,比如,普通员工可以操作前台的工作,经理所拥有普通员工所持有的权限,同时还有财务管理部分的权限和查看员工的信息。
5 系统设计
饭馆管理系统的需求分析完成后,我们就要进入设计系统的阶段在整个系统的开发阶段中,设计阶段是最重要的阶段了。
5.1 系统的代码设计
计算机的信息管理系统设计的前提条件是管理的数字化,也就是设计阶段当中的代码设计。它主要就是数据系统开发的前提条件下的补充,是设计系统开发时不能缺少的主要内容。编码是指原有名称相对应的记号。它主要是进行信息的交换和实现资源共享的重要关键。编也主要用于数据的处理方式和区别于数据的类型,并且指定计算机所处理的内容等。
5.2 系统代码设计所遵循的原则
(1)唯一特性:在饭店管理系统当中,每个代码都标识了系统当中的每个实体,并且每个实体也只可以由一个代码来表示。
(2)合理特性:在系统设计当中代码与编码的对象分类应该相适应,这样可以使编码对象的分类更有作用。
(3)标准特性:主要在我们看到程序文件名和数据的文件名时能清晰的看懂,并且没有重复的现象。
(4)简单特性:再设计过程当中我们应该使用汉字拼音来表示汉字,这样能使别人更容易看懂。
(5)规范特性:在代码设计的过程当中,代码比较识别和记忆,使系统的维护人员很容易了解和读懂,可以很快的进行工作维护。
5.3 系统的数据库设计
再设计数据库的时候,不但为了进行数据的物理化,配置了一些系统上的变量、存储的分配系数,并且对这些给予了合理的数值。虽然这些数值不一定都适合每一种环境,在进行物理设计的时候,应该对这些数值重新更换,以更完善系统的功能。
对系统的配置变量,比如:同一时间打开数据库对象数和同一时间使用额数据库的用户数,缓冲区所分配的参数值,存储分配的参数值,物理块所装的因子等。这些参数值影响了存储空间的分配,并且在物理设计的时候应该根据环境来确定这参数值,使系统功能为最好,在运行以及管理的过程当中所涉及到的实体有菜单表、职员信息表、座位表、经理表信息表等。
5.4 输入系统设计
输入系统设计是在整个设计当中是关键之一,它的基本任务就是怎样将资料正确的传入系统当中,并且由计算机完成各种各样的后台处理工作。系统的质量问题起着重要性的影响,它的系统输入管理人员的用户名和密码以及权限,这些信息在输入的过程当中都有明确的都有提示的信息。如:在数据管理库中新用户的添加界面如下:
6 总结
此项目需求分析功能基本完成,满足了客户的需求,达到了实际应用的目的,具有较高的使用价值。
参考文献:
[1]童爱红应用教程(第2版)[M].清华大学出版社,2008.
[2]李英杰程序设计实例教程[M].天津大学出版社,2005.
[3]李立宗.VB程序设计教程[M].南开大学出版社,2006.
系统管理篇4
***书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
因此本人结合开入式***书馆的要求,对MSSQLServer2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对***书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的***书管理系统可以满足借阅者、***书馆工作人员和高级管理员三方面的需要。
第一章对数据库应用系统开发和***书管理系统进行了简明的介绍,并分析了开发***书管理系统所应进行的工作。
第二章对数据库的设计和SQL语言的使用进行了系统分析,为深入理解数据库应用打下了基础。
第三章学习了具体的开发工具Delphi6.0,对其数据库组件,SQL语言在Delphi中的应用等数据库编程关键技术进行了系统的介绍。
第四章分析了***书管理信息系统的应用需求,按照数据库设计理论一步一步地给出了系统需求说明书、局部ER***、全局ER***、系统关系模式,子模式,利用MSSQLServer2000建立了数据库
第五章进行了具体的程序设计,具体划分了三类用户的操作权限,设计了了三个操作界面。实现了数据库表的浏览,记录的添加、删除和修改,报表的生成,实现了多数据库表的连接操作,实现了多条件查询和模糊查询,并灵活实现了对不可更新查询结果集的更新操作,实现了主从表操作,实现了密码维护功能,最后,系统还可以导入数据库以对任意同结构的数据库进行操作。
设计充分利用Delphi6、MSSQLServer2000数据库技术的强大力量,提高了编程效率和可靠性。
关键词:数据库,SQL语言,MSSQLServer,Delphi6,
数据库组件,***书管理,窗体,listview组件
目录
摘要………………………………………………………………………………I
第一章绪论……………………………………………………………………1
§1.1数据库应用系统开发简介………………………………………………1
§1.2***书管理系统………………………………………………………4
§1.3本文所做的主要工作……………………………………………………6
第二章数据库理论基础…………………………………………………………7
§2.1数据库系统设计及范式分析……………………………………………7
§2.2SQL语言介绍…………………………………………………………………11
2.2.1SQL基础…………………………………………………………………11
2.2.2SQL语句…………………………………………………………………12
第三章应用系统开发工具…………………………………………………16
§3.1Delphi6.0VCL组件的体系结构………………………………………16
§3.2数据库组件介绍……………………………………………………………17
§3.3SQL语言在Delphi中的应用……………………………………………18
§3.4MSSQLServer简述……………………………………………………22
第四章***书管理系统设计分析…………………………………………24
§4.1应用需求分析……………………………………………………………24
§4.2系统功能模块划分………………………………………………………29
§4.3系统数据库设计…………………………………………………………29
第五章***书管理系统应用程序设计……………………………………37
§5.1系统窗体模块组成…………………………………………………………37
§5.2数据模块窗体的设置………………………………………………………37
§5.3启动画面的实现……………………………………………………………38
§5.4用户登录窗体的的实现………………………………………………………39
§5.5用户密码认证窗体的的实现…………………………………………………39
§5.6借阅者服务模块的实现……………………………………………………40
5.6.1***书查询功能的实现…………………………………………………41
5.6.2借阅者登录功能的实现…………………………………………………42
5.6.3借阅者借阅情况功能的实现……………………………………………43
5.6.4借阅者个人资料维护功能的实现………………………………………47
§5.7工作人员-***书借阅/归还模块的实现………………………………………49
5.7.1工作人员进行***书借阅功能实现………………………………………50
5.7.2工作人员进行***书归还功能实现………………………………………53
§5.8***书馆管理员模块的实现……………………………………………54
5.8.1***书馆管理员***书管理功能的实现……………………………………55
5.8.2***书馆管理员工作人员和管理员管理功能的实现……………………58
5.8.3***书馆管理员修改***书类别及统记功能的实现………………………60
5.8.4***书馆管理员借阅者管理功能的实现…………………………………62
5.8.5***书馆维护借阅者管理功能的实现…………………………………62
5.8.6***书馆身份维护功能的实现………………………………………64
5.8.7***书馆借阅者统计功能的实现…………………………………65
5.8.8***书馆统计借阅过期记录功能的实现…………………………67
§5.9系统信息显示的实现…………………………………………………68
第六章结束语………………………………………………………………69
致谢………………………………………………………………………………70
参考书目……………………………………………………………………………70
第一章绪论
§1.1数据库应用系统开发简介
在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。
数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。
数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着WorldWideWeb(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。
1.1.1数据库
如***1.1显示了数据库系统的主要组件。数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。
1.1.1.1用户数据
目前,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。第二章描述了一个用以产生良好结构关系的过程,称作规范化。
为了对比结构差的关系和结构好的关系之间的差别,以本文所设计的***书管理系统中的***书和***书借阅者关系为例来说明,假若设计关系R1(借书证号,姓名,性别,身份编号,身份证,联系电话,***书编号,***书名称,***书类别,作者,出版社,出版日期,备注,价格,数量);这个关系的问题出在它有关于两个不同主题的数据,就是***书借阅者和***书。用这种方式构成的关系在进行修改时,会出现问题。因为一个***书借阅者可能借阅多本书,如果某个***书借阅者的某个字段(如联系电话)出现变更,它所借阅的***书记录(可能多个)也就必须变化,这是不好的。因此数据用两个关系表示更好。现在如果某***书借阅者改变了它的联系电话,只有关系(表)user的对应行需要改变。当然,要想产生一个,显示***书名称及其借阅者联系电话的报表,就需要将这两个表的行结合起来。结果表明,将关系分别存储,在生成报表的时候将它们结合起来,比把它们存储在一个合成的表中更好。
user(借书证号,姓名,性别,身份编号,身份证,联系电话,)
book(***书编号,***书名称,***书类别,作者,出版社,出版日期,备注,价格,数量)
1.1.1.2元数据
数据库是自描述的,这就意味着它自身包含了它的结构的描述,这种结构的描述称作元数据。因为DBMS产品是用来存储和操纵表的,所以大多数产品把元数据以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,指出每一个表中有多少列,那一列是主关键字,每一列的数据类型的描述,它也存储索引、关键字、规则和数据库结构的其他部分。
在表中存储元数据不仅对DBMS是有效的,对用户也是方便的,因为他们可以使用与查询用户数据同样的查询工具来查询元数据。本文第二章所介绍的SQL语言可以同时用于元数据和用户数据。
1.1.1.3索引
第三种类型的数据改进了数据库的性能和可访问性,这种数据经常称作开销数据,尽管有时也采用其他类型的数据结构,如链表,但它主要还是索引。索引可以用来排序和快速访问数据。下面以本人的***书管理信息系统中的book表为例来说明。
假定数据在磁盘上是按’***书编号’的递增顺序排列的,用户想打印一个按’***书名称’排序的***书数据报表。为此,所有的数据都需要从源表中提取出来并排序,除非表很小,否则这是一个很费时的过程。或者,可以在‘***书名称’字段上创建一个索引,该索引的条目按照‘***书名称’排序,这样,该索引的条目可以读出来,并用来按顺序访问book数据。
索引用于快速访问数据。例如,一个用户只想访问book表中‘***书类别’值为‘01’的那些学生。如果没有索引,则必须搜索整个源表;但有了索引之后,可以找到索引条目,并使用它来挑选所有合适的行。
索引对排序和查找是有帮助的,但要付出代价。book表中的行每次改变时,索引也必须改变,这意味着索引并非随意的,应该在真正需要时保存。
1.1.1.4应用元数据
存储在数据库中的第四种数据是应用元数据,它用来存储用户窗体、报表、查询和其他形式的查询组件。并非所有的DBMS都支持应用组件,支持组件的DBMS也不一定把全部组件的结构作为应用元数据存储在数据库中。然而,大多数现代的DBMS产品存储这种数据作为数据库的一部分。一般来说,数据库开发人员和用户都不直接访问应用元数据,想反,他们通过DBMS中的工具来处理这些数据。
MSSQLServer2000中就支持窗体、存储过程等应用元数据。
1.1.2数据库管理系统
数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。MSSQLServer2000就是一种关系型数据库管理系统。
关系模型。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。
关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。
如***1.1所示,DBMS的特点和功能可以分为三个子系统:设计工具子系统、运行子系统和DBMS引擎。
设计子系统有一个方便数据库及其应用创建的工具集。它典型地包含产生表、窗体、查询和报表的工具。DBMS产品还提供编程语言和对编程语言的接口。
运行子系统处理用设计子系统开发的应用组件。它所包含的运行处理器用来处理窗体和数据库的数据交互,以及回答查询和打印报表等。
DBMS引擎从其他两个组件接受请求,并把它们翻译成对操作系统的命令,以便读写物理介质上的数据。DBMS引擎还涉及事务管理、锁、备份和恢复。
1.1.3创建数据库
1.1.3.1数据库模式
数据库模式定义了数据库的结构、表、关系、域和业务规则。数据库模式是一种设计,数据库和应用正是建立在此基础上的。
域是一列可能拥有的值的集合。必须为每一个表的每一定域。除了数据的物理格式外,还需要确定是否有些域对表来说是唯一的。
数据库模式的最后一个要素是业务规则,它是对需要反映在数据库和数据库应用程序中的业务活动的约束。业务规则是模式的一个重要部分,因为他们指定了无论什么数据变化到达DBMS引擎,允许的数据值必须满足的约束。不管无效的数据变化请求是来自窗体的用户、查询/修改请求还是应用程序,DBMS都应该拒绝。
遗憾的是,不同的DBMS产品用不同的方法实施业务规则。在某些情况下,DBMS产品不具备实施必要业务规则的能力,必须以代码形式把它们编入应用程序。
1.1.3.2创建表
1.1.3.3定义联系
1.1.4应用组件
数据库应用包括窗体、查询、报表、菜单和应用程序。
§1.2***书管理系统
当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好***书馆信息而设计的。
***书馆作为一种信息资源的集散地,***书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的***书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于***书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的***书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。***书馆采取手工方式对***书借阅情况进行人工管理,由于信息比较多,***书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,***书的数目和内容记录在文件中,***书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的***书进行更改就更加困难了。
基于这此问题,我认为有必要建立一个***书管理系统,使***书管理工作规范化,系统化,程序化,避免***书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改***书情况。
§1.1系统所做工作
1)了解应用开发工具的现状
2)DelPHi6.0编程基础
3)MSSQLServer基础
4)设计数据库;设计界面
5)开发数据库。数据库实现的一些功能有
l数据和数据说明的醒目显示;
l多条件的查询、多条记录的检索、模糊查询;
l数据文件某种存储格式导入数据窗体,经过数据完整性校验存入数据库;
l数据库安全性的设计;
l数据库的设计、数据接口、界面的设计。
§1.3本文所作工作
绪论部分对数据库应用系统的结构、开发进行了简要介绍,分析了***书管理信息系统设计的特点和任务。
第二章介绍了数据库的设计和范式分析,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。
第三章对系统介绍了Delphi6.0的数据库编程技术、SQL语言在Delphi6.0中的应用、MSSQLServer基础。
第四章分析了***书管理系统的应用需求,设计了系统的数据库结构,并根据需求对系统功能进行了划分和细化。
第五章根据第四章的设计结果利用MSSQLServer2000和Delphi6.0进行了具体的应用程序设计。
总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向。
第二章数据库理论基础
一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。
信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。
(1)数据库需求分析的任务是将业务管理单证流化为数据流,划分主题之间的边界,绘制出DFD***,并完成相应的数据字典。
(2)概念设计的任务是从DFD出发,绘制出本主题的实体-关系***,并列出各个实体与关系的纲要表。
(3)逻辑设计的任务是从E-R***与对应的纲要表出发,确定各个实体及关系的表名属性。
(4)物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化(现在很多软件能支持中文字段,如MSSQLServer,我就是用的中文字段名),实现物理建库,完成数据库物理设计字典。
(5)加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。
要设计出一个好的信息管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:
²基本表的个数越少越好。
²主键的个数越少越好。键是表间连接的工具,主键越少,表间的连接就越简单。
²字段的个数越少越好。
²所有基本表的设计均应尽量符合第三范式。
数据库的设计中,如何处理多对多的关系和如何设计主键,是两个有着较大难度、需要重点考虑的问题。下面我们着重从SQL应用、数据库设计范式和查询优化等方面来分析本课题的系统关键技术和实现难点并加以解决。转§2.1数据库系统设计及范式分析
信息系统的主要任务是通过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。
2.1.1数据库系统设计
数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。
数据库设计的步骤是:
(1)数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP(负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有联机分析处理CLAP(指为支持决策的制定对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的、有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。
(2)数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。
(3)存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。
(4)数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。
(5)数据字典设计:用数据字典描述数据库的设计,便于维护和修改。
为了更好地组织数据和设计出实际应用数据库,应该注意如下问题:
规范化地重组数据结构:对数据进行规范化表达,这在后面将会具体讨论。
关系数据结构的建立:在进行了数据基本结构的规范化重组后,还必须建立整体数据的关系结构。这一步设计完成后数据库和数据结构设计工作基本完成,只待系统实现时将数据分析和数据字典的内容代入到所设计的数据整体关系结构中,一个规范化数据库系统结构就建立起来了。
建立关系数据结构涉及三方面内容:确定关联的关键指标项并建立关联表;确定单一的父系记录结构;建立整个数据库的关系结构。
(1)链接关系的确定
在进行了上述数据规范化重组后,已经可以确保每一个基本数据表(我们简称为表)是规范的,但是这些单独的表并不能完整地反映事物,通常需要通过指标体系整体指标数据才能完整全面地反映问题。也就是说在这些基本表的各宇段中,所存储的是同一事物不同侧面的属性。那么计算机系统如何能知道哪些表中的哪些记录应与其它表中的哪些记录相对应,它们表示的是同一个事物呢?这就需要在设计数据结构时将这种各表之间的数据记录关系确定下来。这种表与表之间的数据关系一般都是通过主或辅关键词之间的连接来实现的。因为在每个表中只有主关键词才能唯一地标识表中的这一个记录值(因为根据第三范式的要求,表中其它数据字段函数都依赖于主关键词),所以将表通过关键词连接就能够唯一地标识出某一事物不同属性在不同表中的存放位置。
(2)确定单一的父子关系结构
所谓确定单一的父系关系结构就是要在所建立的各种表中消除多对多(以下用M:N来表示)的现象,即设法使得所有表中记录之间的关系呈树状结构(只能由一个主干发出若干条分支,而不能有若干条主干交错发出若干条分支状况)。所谓的“父系”就是指表的上一级关系表。消除多对多关系可以借助于E-R***的方法来解决,也可以在系统分析时予以注意,避免这种情况的发生。
消除这种M:N情况的办法也很简单,只需在二表之间增加一个表,则原来M:N的关系就改成了M:1,1:N的关系了。
确定数据资源的安全保密属性:
一般DBMS都提供给我们自己定义数据安全保密性的功能。系统所提供的安全保密功能一般有8个等级(0-7级),4种不同方式(只读、只写、删除、修改),而且允许用户利用这8个等级的4种方式对每一个表自由地进行定义。
定义安全保密性的方法一般有如下几种:
a.原则上所有文件都定义为4级,个别优先级特别高的办公室(终端或微机的入网账号)可定义高于4级的级别,反之则定义为低于4的级别。
b.统计文件(表)和数据录入文件一般只对本工作站定义为只写方式,对其它工作站则定义为只读方式。
c.财务等保密文件一般只对中工作站(如财务科等)定义为可写、可改、可删除方式,对其它工作站则定义为只读方式,而且不是每个人都能读,只有级别相同和高级别者才能读。
2.1.2数据库设计范式分析
建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。
a.数据组织的规范化形式
在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(dataelement),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:
l在表中的任意一列上,数据项应属于同一个属性(如***中每一列都存放着不同合同记录的同一属性数据)。
l表中所有行都是不相同的,不允许有重复组项出现(如***中每一行都是一个不同的合同记录)。
l在表中,行的顺序无关紧要(如***中每行存的都是合同记录,至于先放哪一个合同都没关系)。
l在表中,列的顺序无关紧要,但不能重复(如***中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。
在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。
第一范式(firstnormalform,简称1stNF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1stNF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1stNF。
第二范式(secondnormalform,简称2ndNF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primarykey),其它数据元素与主关键字一一对应。例如,在***l9.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖(functionaldepEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。
第三范式(thirdnormalform,简称3rdNF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互***,不存在其它的函数关系。也就是说对于一个满足了2ndNF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。
为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。
§2.2SQL语言介绍
2.2.1SQL基础
SQL(StructuredQueryLanguage,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、Sybase、MicrosoftSQLServer、Access、Ingres等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成绝大多数数据库的操作。MSSQLServer就是用的Transact-SQL。
SQL语言有着非常突出的优点,主要是:
n非过程化语言
n统一的语言
n是所有关系数据库的公共语言
非过程化语言:SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。
统一的语言:SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。
SQL为许多任务提供了命令,其中包括:
n查询数据
n在表中插入、修改和删除记录
n建立、修改和删除数据对象
n控制对数据和数据对象的存取
n保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。
所有关系数据库的公共语言:由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。
2.2.2SQL语句
SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:
DML(DataManipulationLanguage,数据操作语言):用于检索或者修改数据;
DDL(DataDefinitionLanguage,数据定义语言):用于定义数据的结构,比如创建、修改或者删除数据库对象;
DCL(DataControlLanguage,数据控制语言):用于定义数据库用户的权限。
DML组可以细分为以下的几个语句:
SELECT:用于检索数据;
INSERT:用于增加数据到数据库;
UPDATE:用于从数据库中修改现存的数据;
DELETE:用于从数据库中删除数据。
DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:
CREATETABLE,ALTERTABLE,DROPTABLE,CREATEINDEX,DROPINDEX
下面是一个简单SQL语句的例子:
我们使用SQL语句来从Book中检索‘借书证号’为‘000001’的借阅者姓名:
SELECT姓名FROMBookWHERE借书证号=‘000001’
2.2.2.1DDL与DML
数据定义语言DDL:它是用来创建和修改数据库结构的一种语句,包括Create、Alter和Drop语句。
数据操作语言DML:包括数据查询与数据更新。数据查询主要是由Select语句完成,这一点不再赘述。而数据更新所造成的风险大大超过数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。
用于修改数据库内容的SQL语句主要有以下三个:
(1)Insert,向一个表中加入新的数据行
(2)Delete,从一个表中删除数据行
(3)Update,更改数据库中已经存在的数据
Insert标准语法:
INSERTINTOtable_name(col1,col2...)VALUES(value1,value2...)
下例要将借书证号为‘000001’作为一个新的借书情况加入借书情况表OWNER中
InsertInto
owner(借书证号,***书编号,借书日期)
values(‘000001’,‘00000001’,‘2002-9-12’)
Insert语句还可以将多行数据添加到目标表中去,在这种形式的Insert语句中,新行的数据值不是在语句正文中明确地指定的,而是语句中指定的一个数据库查询。添加的值来自数据库自身的行,在某些特定的状态下,这是非常有用的。多行Insert语句为拷贝数据提供了一种紧凑而高效的方法,但我在自已做的***书管理系统中没有使用这种方法,我在系统中是使用循环依照上面的用法来完成多个记录的插入。
Update语句用于更新单表中选定行的一列或多列的值。要更新的目标表在语句中定义,Set子句则指定要更新哪些列并计算它们的值。Update语句总是包含Where语句,而且Update语句比较危险,所以您必须明确地认识到Where语句的重要性,Where语句被用来指定需要更新的行。
标准语法:
UPDATEtable_name
SETcolumnname1=value1
[,columname2=value2]...
WHEREsearch_condition
Delete语句标准语法:
DELETEFROMtablenameWHEREcondition
2.2.2.2复杂操作实现
在信息管理系统中,我们往往会遇到归类、汇总、映射、索引、子查询等复杂操作,相应的支持与实现如下:
uGROUPBY方法
GROUPBY子句语法为:
SELECTcolumn1,SUM(column2)
FROM"list-of-tables"
GROUPBY"column-list";
这个GROUPBY子句将集中所有的行在一起,它包含了指定列的数据以及允许合计函数来计算一个或者多个列。
在本人的系统中在显示数据时用到了此语句来对查询所得的内容排序然后再显示。
u组合条件和布尔运算符
以下的SQL语句中就含有组合条件:
SELECTcolumn1,SUM(column2)
FROM"list-of-tables"
WHERE"condition1"AND"condition2";
下面是一个示例:
SELECT身份描述
FROMID,user
WHEREID.身份编号=USER.身份编号anduser.借书证号=’000001’;
这条SQL语句是从user、id表中查找借阅证号为000001的借阅者的身份描述,第三条语句中如果其中有一个条件为假,那么就什么都没有显示。
uUNION子句
有些时候,需要一起浏览多个查询的结果、组合它们的输出,我们可以使用UNION关键字。
第三章应用系统开发工具
§3.1Delphi6.0VCL组件的体系结构
Delphi类可以粗略地分成两部分:一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的***标后,在程序中就自动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上是找不到的。在Delphi中,每一个类的祖先都是Tobject类,整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为Tobject类。这样,按照面向对象编程的基本思想,就使得用户可用Tobject类这个类型代替任何其它类的数据类型。实际上在Delphi的类库中,Tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。
这一小节简略介绍一下Delphi6.0中VCL(可视化组件库)组件的体系结构。凡是做过程序开发的人都知道从来没有单纯的数据应用程序,也就是说,数据库应用程序必须和用户界面(可以是***形界面,也可以是命令接口)元素相结合,只讲界面或只讲数据库本身都构不成数据库应用程序,因而用Delphi6.0开发数据库应用程序就隐含着界面开发。Delphi6中的VCL组件可用***3-1来说明。
组件在Delphi程序的开发中是最显眼的角色。大家知道,在编写程序时一般都开始于在组件面板上选择组件并定义组件间的相互作用。但也有一些组件不在组件面板上,例如Tform和Tapplication(典型的非可视组件)。组件是Tcomponents派生出来的子类,可以流的形式存放在DFM文件中,具有事件和Publish属性。
窗口组件类是窗口化的可视化组件类,在Delphi的类库中占有最大的份额。在实际编程中,窗口组件类的对象都有句柄,可以接受输入焦点和包含其它组件。***形组件与窗口组件并列,是另一大类组件。***形组件不是基于窗口的,因而不能有窗口句柄,不能接受输入焦点和包含其它组件。从***8-43中可以看出,***形组件的基类是TgraphicControl,在实际编程中,它们必须寄生于它们的宿主——窗口组件类的对象,由它们的拥有者负责其显示,而且它们还能触发一些和鼠标活动相关的事件。***形控件最典型的例子是Tlabel和TspeedButton。由此可以看出***形组件的功能很弱,***形组件的用处何在呢?其实使用***形组件的最大好处在于节省资源,正是因为它们的功能较弱,所以使用的系统资源就要少。在一个应用程序中,如果能在不影响其功能的前提下合理大量地使用***形组件,将会大减少程序对系统资源的消耗。
非可视组件是与可视组件相并列的另一类组件,非可视组件在程序运行中是不可见的(除各种对话框组件之外,事实上有人认为对话框组件不能归入非可视组件,应该是另一种介于可视与非可视之间的组件)。
最后要说明一下,常说的控件实际上是一种组件。也就是说组件这个概念要大于控件,控件在内涵上包含于组件中。控件由Windows系列操作系统提出并使用,而组件是Borland和其它厂商在对Windows控件做了必要的扩展之后提出来的概念,它们是在不同时期由不同的厂商提出的概念。
§3.2数据库组件介绍
用Delphi6开发数据库应用,重点是和各种数据库组件打交道,能和数据库挂钩的组件对象有5种,它们是:Session(数据库会话)、Database(数据库)、Dataset(数据集)、DataSource(数据源)、Datacontrol(数据控制组件,也叫data-controls即数据感知组件)。其中前面4种统称为数据访问(DataAccess)组件。这些组件的相互关系如***3-2所示。
ADO组件Delphi6.0包含了可以用来访问Microsoft公司的ActiveXDataObjects(ADO)格式数据库的组件。ADO是Micrsoft公司关于各种类型数据的高等界面,后来逐渐演变成满足所有数据访问需要的完整解决办法。ADO的对象模型是所有数据访问接口对象模型中最简单的一种。Microsoft公司用来访问ADO数据的应用程序界面技术是OLEDB。OLEDB是一种底层编程接口,用来访问许多不同类型的数据源,其中包括消息、文件系统以及其他一些非传统的数据源。OLEDB是一个由ComponentObjectModel(COM)接口组成的集合,用来隐藏创建数据访问服务过程中的细节。OLEDB提供了访问任何数据资源的方法,包括相互关联的数据库和相互不关联的数据库、Email和文件系统、文本和***形以及用户定义的数据对象。
Delphi的ADO组件无需依靠BDE而是使用ADO技术,提供了可以通过数据控制组件访问数据的新方法。唯一的要求是在使用ADO组件时必须运行ADO/OLE-DB。ADO组件的使用使得DELPHI在访问数据的类型和采用的技术方面都有了很大的突破。
数据模块设计窗口数据模块设计窗口是用来设计和维护数据模块的。数据模块设计窗口中包含了所有以.DTI作为文件扩展名的DataDiagram文件的信息。DTI文件在编译时不起任何作用。
§3.3SQL语言在Delphi中的应用
在Delphi中使用SQL语言非常方便,一般来说,都是通过Tquery或TADOquery组件来使用SQL语言的。可以在Tquery或TADOquery组件的SQL属性中设置SQL语句。设计程序时,在该组件的属性对话框中选择SQL属性,单击带省略号的按钮,就可以打开StringListEditor对话框,然后我们就可以在对话框中添加SQL语句。还可以使用Delphi的SQLBuilder来自动生成SQL语句,这样可以避免手工编写SQL而可能造成的语法错误。
静态SQL语句在程序设计时便已固定下来,它不包含任何参数和变量。
动态SQL语句,也被称作参数化的语句,在其中间包含着表示字段名或表名的参数,例如下面的语句是一条动态SQL语句:
Select*FromBookWhere***书编号=:bookCode;
其中的变量bookCode便是一个参数变量,它由一个冒号引导,在程序运行过程中,必须要为该参数赋值,该条SQL语句才能正确执行,每次运行应用程序时可以为该参数变量赋予不同的值。为参数赋值有三种方法:
①根据参数在SQL语句中出现的顺序,设置TADOQuery组件的parameters属性值为参数赋值。
②直接根据SQL语句中各参数的名字,调用ParamByName方法来为各参数赋值。
③将TADOQuery组件的DataSource属性设置为另一个数据源,这样将另一个数据源中与当前TADOQuery组件的SQL语句中的参数名相匹配的字段值赋给其对应的参数。利用这种方法也能实现所谓的连接查询,创建主要—明细型数据库应用。
在使用动态SQL语句编程时,常常用到一个很重要的方法Prepare,调用Prepare方法之后,Delphi会将带参数的SQL语句传送给与其对应的数据库引擎,对动态SQL语句进行语法分析和优化。虽然在用动态SQL语句编程时,调用Prepare方法并不是必须的,但是调用Prepare方法后,会极大地提高动态SQL语句的执行性能,特别是当要反复多次执行同一条动态SQL语句时,其优越性会更加明显。如果在应用程序中执行一条SQL语句之前并没有显式地调用Prepare方法,每次在执行SQL语句时,Delphi会隐含地调用Prepare方法以准备这个查询。
TadoQuery部件还有一个Prepare属性,这是一个布尔型属性,当其属性值为True时,表明该查询已被准备好了(SQL语句已被传送到数据库引擎中),当我们使用参数编辑器ParametersEditor来为动态SQL语句中的参数赋值时,当设置完相应的参数值并退出参数编辑器时,Delphi会隐含地调用Prepare方法以准备好查询。
当SQL语句执行完之后,要想准备下一个查询,首先必须调用Close方法,然后才能调用Prepare方法准备下一个查询。一般来说,在一个应用程序中应该调用一次Prepare方法,常常在窗体的OnCreate事件处理过程中调用Prepare方法,然后用上述介绍的方法为参数赋值,最后调用Open方法或ExecSQL方法执行SQL语句,以完成查询。
当然在调用Prepare方法准备好一个查询时,会消耗一些数据库资源,因而每当一个查询执行完毕之后,要养成调用UnPrepare方法以撤消查询的好习惯。在运行程序过程中,通过程序改变TQuery或TADOquery部件的SQL属性值时,Delphi会自动地调用Close方法和UnPrepare方法,以撤消查询。
在程序运行过程中,要想设置Tquery或TADOquery部件的SQL属性,必须首先调用Close方法,关闭TQuery或TADOquery部件,然后再调用Clear方法清除SQL属性中现存的SQL命令语句,最后再调用Add方法为SQL属性设置新的SQL命令语句。例如:
datamodule4.adoquery2.close;
datamodule4.adoquery2.sql.clear;
datamodule4.adoquery2.sql.add(''''SELECT借书证号,密码FROM[user]WHERE(借书证号=:tt)'''');
datamodule4.adoquery2.parameters[0].value:=username;
datamodule4.adoquery2.open;
在为TQuery或TADOquery部件设置SQL属性时调用Close方法总是很安全的,如果TQuery或TADOquery部件已经被关闭了,调用Close方法时不会产生任何影响。在应用程序中为SQL属性设置新的SQL命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,如果不调用Clear方法,便调用Add方法向SQL属性中设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面,在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。
在这里要特别注意的,一般情况下TQuery或TADOquery部件的SQL属性只能包含一条完整的SQL语句,它不允许被设置成多条SQL语句。当然有些数据库服务器也支持在TQuery或TADOquery部件的SQL属性中设置多条SQL语句,只要数据库服务器允许这样,我们在编程时可以为SQL属性设置多条SQL语句。
在为TQuery或TADOquery部件设置完SQL属性的属性值之后,也即编写好适当的SQL程序之后,可以有多种方式来执行SQL程序。
在设计过程中,设置完TQuery或TADOquery部件的SQL属性之后将其Active属性的值置为True,这样便可以执行SQL属性中的SQL程序,如果应用中有与TQuery或TADOquery部件相连的数据浏览部件(如TDDGridTDBEdit等)那么在这些数据浏览部件中会显示SQL程序的执行结果。
在应用程序运行过程中,通过程序调用TQuery或TADOquery组件的Open方法或ExecSQL方法可以执行其SQL属性中的SQL程序。Open方法和ExecSQL方法是不一样的。Open方法只能用来执行SQL语言的查询语句(Select命令),并返回一个查询结果集,而ExecSQL方法还可以用来执行其它常用的SQL语句(如INSERT,UPDATE,DELETE等命令),例如:
Query1.Open(这样会返回一个查询结果集)
如果调用Open方法,而没有查询结果时,会出错。此时应该调用ExecSQL方法来代替Open方法。如:
Query1.ExecSQL(没有返回结果)
当然在设计应用程序时,程序设计人员是无法确定TQuery或TADOquery组件中的SQL语句是否会返回一个查询结果的。对于这种情况应当用Try…Except模块来设计程序。在Try部分调用Open方法,而在Except部分调用ExceSQL方法,这样才能保证程序的正确运行。
例如:
Try
Query1.Open
Except
Query1.ExecSQL
End
通过Tquery或TADOquery组件可以获得两种类型的数据:
u“活动”的数据
这种数据就跟通过TTable部件获得的数据一样,用户可以通过数据浏览部件来编辑修改这些数据,并且当调用Post方法或当焦点离开当前的数据浏览部件时,用户对数据的修改自动地被写回到数据库中。
u非活动的数据(只读数据)
用户通过数据浏览部件是不能修改其中的数据。在缺省情况下,通过TQuery部件获得的查询结果数据是只读数据,要想获得“活动”的数据,在应用程序中必须要设置Tquery或TADOquery组件的RequestLive属性值为True,然而并不是在任何情况下(通过设置RequestLive的属值True)都可以获得“活动”的数据的,要想获得“活动”的数据,除了将TQuery部件的RequestLive属性设置为True外,相应的SQL命令还要满足以下条件。
本地SQL语句查询情况下,要得到可更新的数据集,SQL语句的限制为:
n查询只能涉及到一个单独的表
nSQL语句中不能包含ORDERBY命令
nSQL语句中不能含聚集运算符SUM或AVG
n在Select后的字段列表中不能有计算字段
n在Select语句WHERE部分只能包含字段值与常量的比较运算,这些比较运算符是:Like,>,<,>=,<=。各比较运算之间可以有并和交运算:AND和OR
当通过SQL语句查询数据库服务器中的数据库表:
n查询只能涉及到一个单独的表
nSQL语句中不能包含ORDERBY命令
nSQL语句中不能含聚集运算符SUM或AVG运算
另外,如果是查询Sybase数据库中的表,那么被查询的表中只能有一个索引。
如果在应用程序中要求TQuery或TADOquery组件返回一个“活动”的查询结果数据集,但是SQL命令语句不满足上述约束条件时,对于本地数据库的SQL查询,BDE只能返回只读的数据集。对于数据库服务器中的SQL查询,只能返回错误的代码。当Tquery或TADOquery组件返回一个“活动”的查询结果数据集时,它的CanModIfy属性的值会被设置成True。
§3.4MSSQLServer简述
SQLServer是一个后台数据库管理系统,它功能强大操作简便,日益为广大数据库用户所喜爱。越来越多的开发工具提供了与SQLServer的接口。SQLServer是一个关系数据库管理系统,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。于1988年推出了第一个OS/2版本,在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本,该版本继承了SQLServer7.0版本的优点,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。MSSQLServer不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事实上,SQLServer数据库处理的基本结构,采取关系型数据库模式,尽管如此,相信大家都可以轻易的发现,在SQLServer的数据库处理方式,则是使用面向对象的操作方式与精神,也就是说,SQLServer的所有功能,都可以基于系统已经建立好的一些对象来达成,是相当OO(面向对象)的一个系统结构。
SQLServer企业管理器是SQLServer的主要管理工具,它提供了一个遵从MMC标准的用户界面,使用户得以:
·定义SQLServer实例组。
·将个别服务器注册到组中。
·为每个已注册的服务器配置所有SQLServer选项。
·在每个已注册的服务器中创建并管理所有SQLServer数据库、对象、登录、用户和权限。
·在每个已注册的服务器上定义并执行所有SQLServer管理任务。
·通过唤醒调用SQL查询分析器,交互地设计并测试SQL语句、批处理和脚本。
·唤醒调用为SQLServer定义的各种向导。第三章***书管理系统设计分析
§4.1应用需求分析
***书管理系统需要满足来自三方面的需求,这三个方面分别是***书借阅者、***书馆工作人员和***书馆管理人员。***书借阅者的需求是查询***书馆所存的***书、个人借阅情况及个人信息的修改;***书馆工作人员对***书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;***书馆管理人员的功能最为复杂,包括对工作人员、***书借阅者、***书进行管理和维护,及系统状态的查看、维护并生成催还***书报表。
***书借阅者可直接查看***书馆***书情况,如果***书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下,***书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他***书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了***书借阅者的要求,还保护了***书借阅者的个人隐私。
***书馆工作人员有修改***书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。在此模块中,***书馆工作人员可以为***书借阅者加入借书记录或是还书记录,并打印生成相应的报表给用户查看和确认。
***书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对***书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。***书馆管理员可以浏览、查询、添加、删除、修改、统计***书的基本信息;浏览、查询、统计、添加、删除和修改***书借阅者的基本信息,浏览、查询、统计***书馆的借阅信息,但不能添加、删除和修改借阅信息,这部分功能应该由***书馆工作人员执行,但是,删除某条***书借阅者基本信息记录时,应实现对该***书借阅者借阅记录的级联删除。并且还应具有生成催还***书报表,并打印输出的功能。
在本系统中由于没有打印机设备供试验,所以预先把报表打印改成报表预览。
设计不同用户的操作权限和登陆方法
对所有用户开放的***书查询
借阅者维护借阅者个人部分信息
借阅者查看个人借阅情况信息
维护借阅者个人密码
根据借阅情况对数据库进行操作并生成报表
根据还书情况对数据库进行操作并生成报表
查询及统计各种信息
维护***书信息
维护工作人员和管理员信息
维护借阅者信息
处理信息的完整性
对借阅过期的***书生成报表
***4-2***书管理系统数据库应用需求的总结
根据以上所做的需求分析,并略掉一些细节(如不考虑用户的登录;对记录的维护),得出以下的三层数据流***。
§4.2系统功能模块划分
系统功能框***如***4-10所示。
§4.3系统数据库设计
4.3.1概念设计
在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中***开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。
利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。
(1)设计局部ER模式
实体和属性的定义:
***书(***书编号,***书名称,作者,出版社,出版日期,备注,价格,数量,)
借阅者(借书证号,姓名,性别,身份证,联系电话,密码)
身份(身份编号,身份描述,最大借阅数)
***书类别(***书类别编号,类别描述)
ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。联系定义如***4-5所示。解释如下:
u一个借阅者(用户)只能具有一种身份,而一种身份可被多个借阅者所具有;
u一本***书只能属于一种***书类别(类别),而一种***书类别可以包含多本***书;
u一个用户可以借阅多本不同的书,而一本书也可以被多个不同的用户所借阅。
(2)设计全局ER模式
所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
1)确定公共实体类型
为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。
2)局部ER模式的合并
合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入***的局部结构。
3)消除冲突
冲突分为三类:属性冲突、结构冲突、命名冲突。
设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。
3)全局ER模式的优化
在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。
综上所述,“***书管理系统”的全局ER模式如***4-13所示。
4.3.2关系数据库的逻辑设计
由于概念设计的结果是ER***,DBMS一般采用关系型(本人所使用的MSSQLServer就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER***转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。
(1)导出初始关系模式
book(***书编号#,***书名称,***书类别#,作者,出版社,出版日期,备注,价格,数量)class(***书类别#,类别名)user(借书证号#,姓名,性别,身份编号#,身份证,联系电话,密码)ID(身份编号#,身份描述,最大借阅数)Owner(借书证号#,***书编号#,借书日期)
***4-14关系模式集
(2)产生子模式
子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。
借书子模式(借书证号#,姓名,***书编号#,***书名称,借书日期)
***4-15部分子模式
(3)根据设计中出现的问题本人在写系统时还加入了两个关系模式:
1、ownertemp:用于工作人员在处理借书、还书工作时临时存储借书、还书信息,以便打印报表时使用。
2、keyer:用于存储工作人员和***书馆管理员的用户名和密码及权限,以便工作人员或***书馆管理员进入相应的功能模块时进行验证用户的身份。
4.3.3数据库的实现
我选用MicrosoftSQLServer2000(企业版)数据库来进行数据库的逻辑设计。首先创建七个基本数据库表如表4-1-4-7所示,然后根据全局ER***,建立各个表之间的联系,如***4-8所示。
表4-1借阅者基本信息表的结构(User)
表4-2***书信息表的结构(Book)
表4-3***书类别信息表的结构(Class)
表4-4借阅者身份信息表的结构(ID)
表4-5借阅情况信息表的结构(Owner)
表4-6借阅情况临时存储信息表的结构(Ownertemp)
注:在owner表和ownertemp表中加入了索引字段,用来唯一标识一条借书记录,并且设置为标识,标识种子为1。
表4-7工作人员和管理员信息表的结构(Keyer)
***4-8数据库表间联系***
第五章***书管理系统应用程序设计
§5.1系统窗体模块组成
§5.2数据模块窗体的设置
在编写数据库应用程序时,经常要遇到这样的情况,即好多组件、窗体同时访问相同的数据源,如果为每一个组件或者窗体都设置一个数据源将是十分耗时的工件,而且要保证这些数据源的确是相同的也需花一番功夫。那么,能不能将这些数据源集中管理,最好是做成一个统一的模块,需要时就将该模块引入而不必直接操作数据源本身呢?数据模块(DataModule)是解决这个问题最好的答案。简单说来,数据模块是用来集中管理数据源的一个窗体,该窗体可被需要的地方随时引入。
但本人在开发这个系统时,开始使用了一下数据模块,但在使用过程中却碰到了一些问题。并且考虑这个系统使用到的TADOQuery控件比较多,如果使用数据控件可能会带来管理上的麻烦,如弄混各个数据控件的作用。还考虑到使用动态生成ADOQuery可能会更节省资源。所以在本人的系统中,开始做的第一个模块“借阅者个人模块”中还稍微使用了一下数据模块。但在后面做的两个模块中大多都是用动态生成ADOQuery来实现的。并且由于SQL语句是动态加入的所以datamodule中的控件也不会多。§5.3启动画面的实现
启动画面是为了给用户一个良好的印像,加深软件的亲和力,没有实际的功能,在Form1窗体中加入了Image和Time组件。启动画面的窗体略,主要的源代码如下:
§5.4用户登录窗体的的实现
本窗体是为三种不同的用户(一般用户,工作人员,管理员)提供选择以进入不同的模块,满足不同用户的需求。源代码比较简单,略。
§5.5用户密码认证窗体的的实现
本窗体是为了让工作人员或***书馆管理员按照用户名和密码进行登录,并且跟据用户名检查Keyer表中的“权限”字段,以分辩进入***书馆管理人员模块还是进入工作人员模块。窗体界面、源代码如下
§5.6借阅者服务模块的实现
借阅者服务窗体的功能主要是***书的查询,个人借阅情况查看及个人部分信息的修改。界面***如下:
5.6.1***书查询功能的实现
在本系统中,任何人都有权限使用查询功能,不做任何限制。界面如下,
由于实现的查询功能有多种,如按***书编号、***书名称等字段进行完全体配查找和部分体配的模糊查找,还有按多个条件进行逻辑与或是逻辑或的多条件查找。其中实现的方法者差不多,所以只给出多条件查找的代码,如下:
5.6.2借阅者登录功能的实现
这个功能的实现与工作人员和管理人员登录功能实现的方法大致一样,并且还要简单。是从User表中查到到借阅证号与密码,看与用户输入的是否一致。如果一致,那么用户就可查看自已的借阅情况并维护自己的部分信息。源代码与借阅者登录界面都略。
5.6.3借阅者借阅情况功能的实现
当借阅者正确登录到系统后,此功能将被激活,使用户能查看到自身的借阅情况。在此系统中,信息的显示一般用ListView来实现,只在较少的情况下用到了DBgrid,因为我觉得ListView更好实现,并能使信息数据对用户的完全分离。
在这里跟据借阅者的不同要求实现借阅情况的查询,有检查所有的借阅情部、某本书的借阅情况、和根据已借阅天数的来查询。其中根椐借阅天数来查询更有代表性,有方式一和方式二。以下给出此功能的源代码
按借阅天数查询方式一
按借阅天数查询方式二
5.6.4借阅者个人资料维护功能的实现
此功能实现当前借阅者部份资料的修改,但借书证号和身份类别这样的信息不允许修改,这是***书馆管理员模块的功能。在此界面中点击修改按钮将出现“修改”窗体(Form8),点击修改密码按钮将出现groupbox8,在这里进行密码修改。关键源代码如下。
这里给出个人部分信息修改的源代码:
这里给出密码修改的源代码:
5.7工作人员-***书借阅/归还模块的实现
5.7.1工作人员进行***书借阅功能实现
在这个功能中,工作人员输入借阅者的借阅证号和所要借阅的***书的***书编号,然后点击借阅按钮就可进行***书借阅。考虑到实际中可能会出现只知***书名而不知***书编号的情况,在此界面下方加入了一个转换功能,可以把***书名称转换成***书编号,再进行***书借阅。
在借阅完成后会生借阅报表以便借阅者检查和确认,借阅报表的打印效果如下***,实现比较简单,略去实现过程。
5.7.2工作人员进行***书归还功能实现
在此功能中,工作人员根据借阅者的借书证号和归还的***书编号进行***书的归还工作。并且根据现实中可能会出现的只知***书名不知***书编号的归还情况,所以加入了按书籍名称进行归还的功能。这个功能是***书借阅功能中把***书名称转换成***书编号的一种改进方法,这样就不用如借阅功能中一样要先转换再借阅了。归还完成后,同样会打印出归还报表以便用户检查和确认。
5.8***书馆管理员模块的实现
5.8.1***书馆管理员***书管理功能的实现
在这个功能中可以在(****书编号)中输入***书编号,点查找按钮后就会在各个相应的组件中显示出信息,或按***书名称模糊查找到所要的记录,在各个相应的组件中显示第一条记录的信息,也可在下端的ListView组件中点击某一条记录,在各个相应的组件中也会显示所选记录的信息。在入库功能中只要不是相同的***书编号并且带*号提示的字段不为空就可插入新的***书记录。删除则删除那些Book表中的***书记录,如果借出还可依用户要求连带删除owner表中的记录。因为***书修改与***书入库的功能与工作人员记录修改和工作人员记录添加的实现过程一样,所以下面仅给出删除功能的源代码,如下
5.8.2***书馆管理员工作人员和管理员管理功能的实现
在此功能中可以加入工作人员或是管理员,或是修改他们的密码、权限。
在此功能中如果选中ListView中的记录,则在右边相应的组件中显示出信息,并且管理员还可对这些记录进行修改或加入新的记录。并且也可以点删除按钮删除选中的一条或多条记录。删除功能与***书记录的删除一般,所以下面只给出添加与修改的实现过程。
5.8.3***书馆管理员修改***书类别及统记功能的实现
在此窗体中能对***书的类别进行删除,添加和修改,这模块的功能的实现过程与***书记录的删除,添加和修改一样的,但是这个窗体还能跟据***书类别进行统计,还可根据Book表和owner表统计出***书总数目,库存***书数目,借出***书数目及借阅过期的***书数目。在这里给出统计***书总数目,库存***书数目,借出***书数目及借阅过期的***书数目的实现过程中的几个函数和过程
5.8.4***书馆管理员借阅者管理功能的实现
查询借阅者可根据借阅者的借书证号或姓名或身份编号查找到借阅者的信息,也可以实行模糊查找,这个功能的实现与前面***书查找的实现过程一般,就不再详细说明。
5.8.5***书馆维护借阅者管理功能的实现
此功能能对借阅者信息进行查看添加、删除、修改。在这里给出刷新按钮的实现过程
5.8.6***书馆身份维护功能的实现
这一部分是对借阅者身份进行管理,能对身份进行添加、删除、修改。并且同样的在listview中选中某条或多条记录时会在相应的右边的组件中显示出信息。此功能实现过程与前面所叙有雷同,略。
5.8.7***书馆借阅者统计功能的实现
此功能按借阅者身份进行统计,得出具有某种身份的借阅者总数,此种身份的并借阅***书的借阅者数和所借阅的***书数,在下面给出实现过程。
5.8.8***书馆统计借阅过期记录功能的实现
打印出的借阅过期催还报表如下***所示:
此报表能显示按借书证号升序排列的借阅信息超过限定时限的信息,其中主要的SQL语句如下:
系统管理篇5
在信息时代的今天,计算机参与企业日常业务管理以成为企业现代化建设的当务之急。该合同管理系统的设计开发正是适应了这种要求。
本文论述一种适合于中小企业、基于单层结构模型的合同管理计算机信息管理系统的设计与开发。介绍了系统的实现及软硬件配置。该系统采用VB6.0作为开发工具,MS Access作为数据库管理系统。简单介绍了VB6.0的编程环境和其数据库编程技术。在可行性研究和需求分析的基础上,对系统的设计方案、功能模块、接口设计、数据库系统设计和安全设计等进行了较详细的论述。
该系统遵循先进、经济、安全、高效、可靠、易操作、易维护和开放的设计原则。
最后,作者对课题设计作出客观评价和总结,并对系统的不足之处提出其改进方案和新的构想方案。在论文末,将列出有关的参考文献。
【关键字】 合同管理信息系统, Visual Basic, 数据库技术
ABSTRACT
During this information times, combining computers with enterprise usual events management has become an emergent task that every enterprise must accomplish as soon as possible.
The MIS (management information system) of Contracts based on Single-Layer structure mode, which is suitable for medium and small enterprises is developed and designed in this article. Then introduces software and hardware configuration and implement of the system. The system adopts VB6.0 as developing tool, MS Access 2000 as DBMS(Database Management System). Then makes a concise description of programmable environment and database technique of VB6.0. Based on feasibility analyzing and system demand analyzing, emphatically expounds design-project、 functional model、interface designing database system designing、 security design in this paper.
The MIS of Contracts strictly follows the design principle of security, economy, efficiency reliability, and easy operating, maintaining and expanding.
Finally, the author makes a subjective estimate of his design, and puts forward improving methods and new plans to overcome the shortcomings of the existing system.At the end of this article, references are listed.
【key words】 MIS of Contracts, Visual Basic, Database Technique
: 33000多字
有目录、参考文献及完整源代码
400元
备注:此文版权归本站所有;。
系统管理篇6
要
当今社会,电脑越来越普及,电脑在日常生活中的作用越来越强大。在高中学校中,教师、学生、教务等信息多而繁,不易管理。本文研究开发一个教学管理系统软件,此软件与其它教学系统软件相比,针对性强,功能强大,易于操作,相当适用于当前高中学校的教学管理。
本文中所做的主要工作如下:
(1)介绍本软件开发的原因、现状。
(2)阐述本软件的系统结构及工作原理,分析系统实现的特殊性、难点和重点。
(3)设计本软件的各种模块。
(4)分析并解决实现中的若干技术问题。
关键字 高中 教学 教务 信息管理系统
点击查看全文
系统管理篇7
产品介绍
MetaCRM5采用了J2EE体系架构,其基本业务功能是由一系列组件和业务对象来提供的。这些组件对系统的松耦合、系统开发一致性都起着至关重要的作用。这种良好的基于组件的设计,保证了系统的灵活性,体现了系统可配置、易集成、好扩展的优良特点。
该产品包括客户管理、市场营销管理、销售管理、售后服务管理、财务管理、库存管理等相关模块,可以全面管理客户的业务,满足企业各部门的应用,为客户提供更多的价值。
系统提供了登录、角色、部门、人员、操作、状态、字段等多维度的权限管理功能,充分保证了系统数据的安全。系统的回收站功能,使得无论是因操作失误而引起的数据被删除,还是恶意地删除数据,都可以恢复。“数据变更历史”这一功能可以记录关键字段的所有变更历史,任何被篡改的数据都可以恢复,确保了关键数据的安全。
另外,系统提供了直观的***形化分析界面,使分析结果一目了然,为管理决策提供了实时的数据支持;在枚举字段上提供了***形化展示,清晰地表达了业务状态;可以用条形***直观地展示数值大小、百分比、进度情况;***形化分析界面直观的分析结果,为企业管理决策提供全面的数据支持。
不同行业、不同客户的CRM管理需求有着很大的差异,利用完全相同的标准版本无法满足客户的个性化应用要求。但把所有的企业划分成几种类型也显得过于粗糙,MetaCRM利用将CRM平台化的思路,为客户提供了一整套CRM实现平台,使每一个客户都可以在标准应用的基础上,增加或修改基于自己业务的模块,从而使得实现个性化的CRM成为可能。
6年专注中国CRM,MetaCRM凝聚了数百家大中型企业的应用经验,沉淀了数千家客户的需求。从技术和应用上彻底解决了CRM软件的实现和交付瓶颈。
产品特色
跨平台的系统架构,使系统有着良好的可伸缩性,使系统可以适应从电信级海量数据处理的应用,到中小企业日常业务管理的多级别的应用要求。这种跨平台的系统架构,使不同行业、不同业务类型、不同IT架构的企业,都可以从MetaCRM系统中获益,而不必重新搭建系统结构,保护原有的IT投资。
以CRM为核心的完整应用,包括:客户管理、市场营销管理、销售过程管理、订单及执行管理、库存与采购管理、售后服务管理、业务批量处理和工作协同管理和分析决策支持。
MetaCRM通过支持业务对象的自定义来管理客户独特的业务数据,通过逻辑自定义来支持客户特定的业务运算逻辑,从而全面满足企业的个性化应用。
MetaCRM内嵌的工作流引擎,可以全面完成客户所有业务流程管理。提供业务工作流的配置功能,能够完成数据在相关负责人之间的流转,大大提高了业务的协同度、业务效率与企业竞争力。而七级权限控制(登录、角色、部门、人员、操作、字段、状态)功能,则全面满足企业数据安全和工作协同。
用户应用体会
“MetaCRM 随时可以提供决策需要的数据,提高了决策的效率与准确性!”
――北京脐带血造血干细胞库 邓总
系统管理篇8
原文
1.支持ERP的软件、硬件技术的发展过程
第一台计算机体型巨大,造价昂贵,而且比现代的掌上计算机的计算能力还差很多。HowardH.Aiken的HarvardMachI是第一台大型自动数字计算机,于1944年建造。计算机50英尺长,8英尺高,5吨重。
第一台实用的商业计算机是20世纪60年代的大型通用高速计算机。程序由打孔卡片或磁带输入进去。它无论如何不可能为商业决策提供完整、实时的数据,只能执行序列的、重复的数据处理任务。由于技术限制,即使集成的价值已经为人所理解,早期的信息系统也不可能被集成。
计算机在20世纪60年代到70年代变得小巧、便宜,速度也更快。存储和检索技术的进步使在磁盘上直接或随机存取数据成为可能。得益于存储技术的变化,20世纪70年代关系数据库概念被引进到计算机程序中来,使得复杂查询成为可能。
计算机硬件在20世纪80年代变得更加小巧。1981年IBM引入第一台个人电脑,它日益增强的能力和降低的成本使它成为一种标准的商业工具。
以文字处理软件和电子表格软件为主的个人高效软件的推出,让商业人士第一次自己主宰了计算。随着越来越多从事商业的人们卷入这场个人电脑的风暴,公司意识到他们需要把单个用户的PC机连接起来并整合他们的数据。
随着个人电脑在业务中的普及,经理人员开始注意把重要的商业信息储存在每个人的电脑中。通讯的发展使数据和辅助设备能够在“本地”网络中共享。这意味着数据可以从服务器端***到客户端。
目录
一、ERP系统的发展
二、企业实施ERP的作用
三、AMD公司全球ERP实施过程分析
四、企业ERP实施过程中经验教训的探讨
系统管理篇9
关键词:管理;计算机;管理信息系统;效率
管理信息系统,对大多数非IT行业的人来说还是一个非常陌生的概念;即使是业内人士,对其学科内涵,许多人恐怕也只是一知半解。可是,当您稍加留意,您就会发现,即使是在一些地方小报上也时常能见到推销信息系统的广告。足见其使用的广泛,竞争的激烈。确实,管理信息系统目前已经深入到社会的方方面面,然而,信息系统应用能否成功,关键并不是信息技术水平的高低,而与企业的管理体制、领导的思想认识、企业管理基础工作的完善程度、技术人员和企业员工的认识和理解密切相关。换句话说。与信息系统相关的所有人对信息系统的认识程度是信息系统项目开发成功的关键。由此。笔者认为:应广泛进行信息系统的思想理念和方法的教育,使信息系统的思想理念深入到每一个与之相关的个体。这一点对中国企业十分重要,对于即将进行信息系统开发的企业尤其重要。
一、管理信息系统简介
什么是管理信息系统?依照教科书上的概念是以人为主导,利用计算机软硬件、网络通讯设备及其它办公设备。进行信息的收集、传输、加工、储存、更新和维护,以企业战略发展、提高效益和效率为目的,支持企业高层决策、中层控制、基层运作的集成化的人机系统。通俗地说,信息系统是利用数学、管理、计算机技术,支持企业管理的管理软件。正因为是管理软件,加上管理工作的复杂,大型管理信息系统应用成功的比率实在太低。时下,国内外各软件厂商推崇的ERP项目的实施成功率即便在国际上也不到20%,可正是这不到20%的成功所带来的巨大效益令众多渴望得到进一步提升的企业趋之若鹜。电子商务的设想。跨国公司的需要……,所有这些从来就没有让ERP沉寂过。更何况,管理信息系统的概念并不仅仅指ERP这类大项目,其范围囊括所有辅助管理的管理软件。
二、管理信息系统的应用对企业管理效率和效益均具重大意义
可以想象,成功的管理信息系统带给企业的收获是巨大的。以山东东阿集团为例,九九年拥有全国四、五十个办事机构,互传信息极不方便,过去各地合同都是签好后邮寄回来,经很多手续才能到货,尽管大家十分尽力地提高效率,但销售商仍然意见很大。实施ERP后,在网上签合同,一切处理迅速有效,减少了劳动量,提高了效率,也提升了企业的形象,除此以外,岗位工作量的精确测试,客户资源的共享,财务数据的方便核对,提高了工作3西啐,降低了成本。:睹住了漏洞,也提病了人员的整体素质。综观国内、国际统计数据。1990~1998年,美国、德国、日本制造企业因普遍实施了MaalI和ERP,使库存总额平均占销售总额的比例控制在1.3~1.5%,而我国同期仅产成品资金占销售总额的比率就高达8—10%。发达国家库存商品与国民生产总值的比率不超过1%,中等发达国家不超过5%,而我国却高达37%以上。所有这些表明。由于管理上的落后,我国企业资金使用效率低下,资源配置效率差,信息不畅使决策的有效性较低,而管理信息系统是解决以上问题的有效方案。当然,不是任何企业欲建立信息系统就立刻能建立的,在我国建立一套全面的信息系统往往需要结合企业管理脱胎换骨的改变。
三、中国管理信息系统应用的现状
中国企业在管理信息系统方面经历了从知之甚少到逐步了解,直至今天许多企业渴望实施的过程。然而,许多企业对计算机在企业中的作用还只停留在文字处理为主的基础之上,大多数企业领导还没有认识到计算机在企业管理中所能发挥的巨大作用,这恐怕与中国企业,特别是国有企业中领导人对计算机能力了解偏少不无关系。而对于一些已有信息系统意识的企业来说,不少管理者仍然存在一个观念偏差,如有的以为信息系统的建立是计算机专业的专利,建立信息系统是在现有企业管理的基础上实现计算机化等等,对于正在实施或已经实施的信息系统项目来说,也存在着软件开发公司为迎合用户的当前需要,不对原企业流程作实质性改变,不对企业工作特点作详细调查分析,盲目推销定型产品,致使信息系统没有生命力,直至影响信息系统和软件开发商的信誉等问题,这些问题归结到一点都是开发与被开发双方缺少理智、清醒的认识造成的,如果大家都对信息系统有一较深刻了解,所有工作就会轻松愉快许多,这大概是目前软件咨询企业逐步繁盛的一个原因。
国家经贸委综合司副司长邓志雄曾着文指出,目前困扰我国企业管理信息化的因素很多,但其中有三个问题急需解决。(1)基础管理不扎实。(2)战略管理不到位。(3)综合管理不系统。通过企业管理信息化再造企业的神经系统,就能改善企业的血液循环系统,优化企业的消化系统,强化企业的运动系统。
中国缺乏关于ERP的知识,这个市场还需要一段时间的ERP的知识教育和培训,而在这些方面教育和培训之前,突飞猛进的实施ERP是十分危险的。这可能是SAP在中国没有成为一个大公司的原因。德国着名软件公司SAP公司全球执行懂事彼得博士如是说。
ERP在中国的推广已有20多年的历史,一些企业从中获得了荣耀和辉煌,而更多的企业却陷入其中,不能自拔。业界关于其成功与失败的原因有过很多的讨论,从分析和讨论的大量内容来看,我还是同意SAP全球执行懂事彼得的说法:中国需要教育和培训,需要对管理信息系统知识的普及,需要对信息系统思想理念的宣传。
四、对信息系统的明确认识是系统开发成功的关键
从中国的信息系统现状可以看到,信息系统在中国要得到普及,需要相关各方对其深刻理解,当然,不同层面应该理解的方向和深度亦有不同:
1、决策者要有一个清醒的认识:信息系统的建立,在管理上有时需要脱胎换骨的改变。信息系统经常涉及到一个***性的观点BPR——企业工作过程再造工程,这个观点的基本内容就是对企业的工作过程进行根本的再思考和彻底的再设计,邓志雄副司长所论的我国企业基础管理不扎实,战略管理不到位,综合管理不系统的问题就需要在此再思考和再设计中进行研究和解决,BPR实现的两个重要手段就是信息技术和组织改变,BPR是管理工作的彻底变革,更是大型管理信息系统实施需要认真思考的问题。我们知道,管理上的改变常常是牵一发而动全局,更何况“根本的再思考和彻底的再设计”。
BPR需要决策者的魄力、胆识和对管理信息系统的深刻认识。魄力是与生俱来和后天经验造就的,而认识却是需要学习的。本企业是否具有实现管理信息系统的管理基础?本企业是应该先理顺管理再上系统,还是应该在系统的开发过程中进行管理的调整?本企业是需要一次性实现ERP辽是先实现其中最容易实现的部分?只有深刻理解了管理信息系统的思想理念和方法。对本企业的情况又有深刻的了解,决策者才能做出正确的判断,而这种判断所带来的效益或者损失常常是以千亿元来计算,因此,决策者最应该接受管理信息系统培训。
2、信息系统的成功要得到高层管理者的绝对支持,需要高层决策者的理解。高层管理者是指企业的高层管理人员,对于一个***的企业,高层管理人员往往就是决策者,是经理级的企业领袖,企业信息系统的开发必须得到这些具有人权、财权的高层管理者的直接支持,或者说:管理信息系统必须由这些高层管理者直接领导,在信息系统理论中,这一理念称为第一把手原则。
第一把手原则存在的理由很简单:第一、信息系统的实施常常需要企业组织机构的改变,这种机构改变往往伤及某些个人乃至中层领导的权力和利益,只有第一把手才有解决这种权力和利益再分配的能力。第二、信息系统的实施是一项耗资巨大的工程,没有第一把手这一经济后盾,信息系统的顺利完成是没有保障的。显然,这里的第一把手必须深刻理解信息系统,才会达到信息系统所要求的作用。理解的前提是了解,山东东阿集团采用ERP之前事先对ERP并不了解,是经过多次选择,被动的进行了学习,如果变被动学习为主动学习了解,企业所走的弯路可能就要少得多。
3、信息系统项目的成功需要企业全体员工理解和支持。信息化三分技术,七分管理,十二分数据。数据出错会产生严重后果,数据是一个流程,由数据产生的结果最终影响决策。信息系统的各项功能是建立在对大量数据的处理和分析之上,需要从基础工作抓起,应使基础数据具有完全性、准确性、可靠性。没有全体职工的集体配合。这三性是很难做到的。
如前所述,信息系统的建立并不是将老系统中能用计算机实现的部分简单的用计算机进行代替,而需要涉及到许多管理的变革,涉及到人员的变动,当员工没有足够的认识时,这种变动的阻力异常大,而当员工理解了这是企业发展的必由之路时,工作势必轻松许多。
在信息系统的开发过程中,开发人员大多为纯粹的计算机技术人员,他们对企业的实际工作状况并不十分了解。必须通过与企业各层人员的交流来实现对企业管理状况和管理需要的深刻理解,如果企业各级员工对开发过程、开发方法、开发目的等全然不知,开发人员与各级管理人员的交流势必十分艰难,这种状况将直接导致开发工作难度增加,时间延长,经费增长。
4、信息系统的开发需要开发者有一个长远的打算开发公司如果把眼前利益放在首位,则会迎合企业的需要,给企业一份目前满意的产品,而目前满意的产品常常是没有生命力的,一旦企业因故变动,信息产品就会失效,其结果是企业蒙受损失,开发公司乃至信息系统信誉受损。实际上,软件厂商销售的应是管理思想,而不是单纯的软件产品。目前信息系统先进的开发方法如UC矩阵则是管理思想与开发方法的结合,这些方法的使用正是从长远兼顾企业利益和公司信誉的保障,据了解,中国软件公司目前很少应用这类方法,原因是开发人员以纯技术人员居多,对此类方法理解不够深刻,同时,还有开发公司更注重眼前利益的原因,由此可见,开发人员仍需加强信息系统理念的学习。
系统管理篇10
地理信息系统是收集、存储、管理、综合分析和处理空间信息和环境信息的计算机软硬件系统。它是GIS技术在环境领域的延伸。
地理信息系统在环境管理中的应用的主要功能有:
1、基本功能包括对空间和属性数据的输入、存储、编辑,以及制***和空间分析等功能。编辑功能允许用户添加、修改、删除点、线、面或修改其属性信息;制***功能可以灵活多样地制作和显示及输出各种专题地***,如污染分布***、水功能区划***、环境规划***等等,地理要素可放大缩小以显示不同的细节内容,并能够测量地***上线段的长度或指定区域的面积。
2、空间统计分析是指对空间数据库中的专题数据进行统计分析。包括各种属性数据的集征数、离散特征数及其分类分级统计等。
3、叠加分析功能允许两个或多个***层在空间上比较各空间要素和属性,分为合成叠加和统计叠加。合成叠加得到一个新***层,它将显示原***层的全部特征,交叉的特征区域仅显示共同特征;统计叠加可以统计一种空间要素在另一种空间要素中的分布特征。对不同的***层进行叠加分析,从而获得各种感兴趣信息。
4、缓冲区分析是GIS的基本空间操作功能之一。例如,某地区有危险品仓库,要分析一旦仓库爆炸所涉及的范围,这就需要进行点缓冲区分析,结合与居民地***层的叠加分析,可以获取需要疏散的人口数等等。
综上所述,空间分析是地理信息系统软件的核心,空间统计分析、叠加分析、缓冲分析等功能为地理信息系统提供了强大的环境分析功能与广阔的应用空间。随着其功能的不断完善和发展,地理信息系统将为环境各部门提供一个功能强大的空间信息服务和管理工具,成为各部门日常工作不可或缺的工作手段。
二、地理信息系统在环境管理中的具体应用
由于地理信息系统具有强大的信息服务和管理功能,具有广泛的应用范围。具体体现在两个方面,一是它可以应用在环境管理的各个环节,如区域环境规划、环境监督管理、区域环境监测及环境评价研究等;二是它可以广泛应用在国家、省、市等不同层次的管理。下面简单介绍一下它的具体应用。
1、电子地***使环境管理工作变得轻松直观
由于采用空间数据和数据库挂接,改变了传统的信息管理方法,地***由传统的静态纪录变为信息丰富多样的动态的电子地***,实现了数据可视化。它使环境主管部门对各种环境要素的管理变得直观、简单和轻松。如通过直接对地***要素进行查询,可以获得环境监测点位、污染源等的空间分布及其与环境敏感区域的空间关系等信息。可以对各种环境数据进行综合的统计并分析以及采用直观的丰富多样的表现方式进行展示,为环境决策提供科学快捷的支持。
2、强大的环境规划手段
区域环境规划是EGIS应用发展的重点领域之一,目前基于EGIS的环境规划模型还处于深化研究阶段,将环境应用模型与GIS集成为一体,可以为环境规划提供更强大的技术手段。由于应用EGIS能够更好地考虑和评价建设项目对环境的影响,因此在建设项目的环境评价中得到广泛应用。
3、危险物运输管理
借助GIS的运行路径选择功能,可以对危险物转移运输线路进行优化选择,能避开人口集中居住区、饮用水源地等环境敏感区域制定运输计划。并可以通过GPS对危险物的运输线路进行实时监控。
4、环境模型模拟分析
环境模型在环境决策中有着重要的作用,如可以通过模型模拟出污染事故发生后各个时间的扩散情况,为决策提供科学的参考依据。常用的模型主要有大气扩散模型、1维水污染扩散模型、2维水污染扩散模型等等,实现各种模型的模拟结果的生成、2维和3维的显示等功能。5、为数字环保提供技术平台
数字环保是最近提出来的终极环境管理系统,它是继数字地球概念提出以后,环保领域提出的新概念,它将是未来十年环保领域信息化建设的终极方向,EGIS作为数字环保的基础平台,将能够为用户提供实时动态环境信息服务,也能够为环境管理者提供决策信息,逐步控制污染,改善环境状况,提高人民生活水平。
三、发展环境地理信息系统的策略探讨和建议
随着国外EGIS技术的逐渐成熟和数据采集技术的快速发展,建立环境地理信息系统的条件开始逐渐成熟,而且将成为我国发展GIS的重点领域,从GIS在我国近几年的发展领域也可以看出这种趋势。
发展EGIS应当采用“统一规划、注重基础、紧密跟进、高起点开发、协调发展”的发展策略。
1、统一规划。
为了降低空间数据资源采集和管理的成本,为了适应未来发展的需要,必须在多方部门的参与下,统一规划和构建EGIS的发展框架。
2、注重基础。
在统一规划的思路和明确的发展框架下,不断加强基础空间数据库和基础环境数据库的积累与建设。
3、紧密跟进、高起点开发、协调发展。
在技术上紧密跟进国外先进的GIS技术,高起点进行系统开发,与我国的信息产业发展速度相协调,共同发展适合我国国情的EGIS。
当前我国各地许多部门虽然已经开展了EGIS的研究与开发,但这些开发均是出于本部门的需要,很少考虑到将来部门之间的数据交流和共享,加上没有全国性的EGIS发展框架和数据标准,数据的通用性将成为影响EGIS开发的关键因素,建议有关部门及时组织开展EGIS发展体系和框架标准的研究。