下面小编给大家带来会议管理系统设计方案(共含12篇),希望能帮助到大家!同时,但愿您也能像本文投稿人“Castnoshadow”一样,积极向本站投稿分享好文章。
办公总务管理系统-会议管理制度
会议管理要领??
(一)提高会议成效的要领?
1.要严格遵守会议的开始时间。?
2.要在开头就议题的要旨做一番简洁的.说明。?
3.要把会议事项的进行顺序与时间的分配预先告知与会者。?
4.在会议进行中要注意如下事项:?
(1)发言内容是否偏离了议题??
(2)发言内容是否出于个人的利害??
(3)是否全体人员都专心聆听发言呢??
(4)是否发言者过于集中于某些人呢??
(5)是否有从头到尾都没有发言过的人呢??
(6)是否某个人的发言过于冗长呢??
(7)发言的内容是否朝着结论推进呢??
5.应当引导在预定时间内做出结论。?
6.在必须延长会议时间时,应取得大家的同意,并决定延长的时间。?
7.应当把整理出来的结论交给全体人员表决确认。?
8.应当把决议付诸实行的程序理出,加以确认。?
(二)会议禁忌事项?
1.发言时不可长篇大论,滔滔不绝(原则上以3分钟为限)?
2.不可从头到尾沉默到底。?
3.不可取用不正确的资料。?
4.不要尽谈些期待性的预测。?
5.不可做人身攻击。?
6.不可打断他人的发言。?
7.不可不懂装懂,胡言乱语。?
8.不要谈到抽象论或观念论。?
9.不可对发言者吹毛求疵。?
10.不要中途离席。
企业会议管理制度??
(一)总则?
为改进作风,减少会议、缩短会议时间,提高会议质量,特制订本制度。?
(二)会议分类及组织?
第一条全厂会议归纳为四类:?
1.厂级会议:主要包括党政领导(扩大)会,全厂干部会、全厂班组长会、全厂党员大会、全厂团员大会、全厂职工大会,全厂技术人员会以及各种代表大会。应分别报请党委或厂部批准后,由党、政、工、团等办事部门分别负责组织召开。?
2.专业会议:系全厂性的技术、业务综合会(如经营活动分析会、质量分析会、生产技术准备会、生产调度会、安全工作会等),由分管厂领导批准,主管业务科室负责组织。?
3.系统和部门工作会:各车间、科室、支部召开的工作会(如车间办工会、科务会、支部会、车间(科室)职工大会等)由各车间科室、支部领导决定召开并负责组织。?
4.班组(小组)会:由各党、工、团小组长或行政班组长决定并主持召开。?
第二条上级或外单位在我厂召开的会议(如现场会、报告会、办公会等)或厂际业务会(如联营洽谈会,用户座谈会等)一律由厂办受理安排,有关业务对口科室协作作好会务工作。
摘要:随着智能化建筑自动化系统bas、通信与网络自动化系统cas、办公自动化oas、又是智能建筑ib新的缩影;并随着视频软、硬压缩技术mpeg4的发展和网络技术的日渐成熟的今天。
建立一个由计算机系统管理的一体化集成系统,提供一个投资合理、又拥有高效、数字化、网络化、智能化保卫监控系统引了诸多公司领导的高度重视。
关键词:智能化保卫监控系统 安防系统
项目简介
某工位于厦漳泉金三角地区突出部。
占地为6万多平方米,主要从事电子元器件生产厂商。
随着智能化建筑(intelligent building)建设热潮的兴起,在与计算机技术(computer technology)、控制技术(control technology)、通信技术(communication technology)和图形显示技术(crt)相结合的科技浪潮中,建筑自动化系统bas、通信与网络自动化系统cas、办公自动化oas、又是智能建筑ib新的缩影;并随着视频软、硬压缩技术mpeg4的发展和网络技术的日渐成熟的今天。
建立一个由计算机系统管理的一体化集成系统,提供一个投资合理、又拥有高效、数字化、网络化、智能化保卫监控系统引了诸多公司领导的高度重视。
设计背景
根据公司的总体要求,在利用目前最新科学技术及先进设备的基础上,并结合本厂的实际情况、结构环境,实现全天后24小时对各个出入口通道、仓储车间及外围通道进行监视;对各个进出货柜码头的货柜出入车辆进行统计;以及防盗、防入侵管制系统,为工厂保安监管工作和仓储管理工作提供依据。
并能过对仓储车间各紧急出口的监视,保证各通道畅通,无障碍物;并对一些违规强行进出人员进行抓拍取证,起到有效的威胁作用,杜绝了各种防盗、防破坏等现象发生;并结合背景音乐广播系统制止有关可能发生或正要发生的事故发生,使事故扼杀在最小范围内。
从而实现了智能化安防管理的目标。
系统设计
在厂区周围安装具有三可变摄像机,对厂区及厂房周边重点区域进行监视。
公司领导、保卫人员及
相关部门能够在计算机上调看工厂的一切动态;并能够对摄像机进行相关的控制操作(如:云台的上、下、左、右全方位遥控;图像的放大、缩小、望远、望近等功能操作)。
2、在厂区内各个紧急出口安装电子门磁保安防盗报警设备,系统具有设定撒布防区报警功能;并能够在电脑上设置布防与撒防,以及查看有关事件记录和状态显示。
3、在进出货柜码头泊车位置安装(16个)智能地感停车场管理系统(car parking management system),具备车辆进出状态显示功能(有状态电子显示屏);并能够通过电脑查看有关货柜进出时间和货物装卸时间记录。
4、在进出货柜码头旁安装一对一的对讲系统(intercom system),实行外部司机人员能与内部仓储管理人员进行对话;关在厂房内较为显著的地方安装旋转闪烁警示器和高质音柱,达到声光同时警示作用。
5、在整个厂区安装背景音乐广播系统(background public address system), 并与闭路电视监控系统(loop monitor system)相结合进行,当发现有可疑有员,可以起动单个区域或整个区域的广播来进行驱散人员,以制止有关事故、事件的发生。
6、系统能够手动或自动进行现场图像捕捉录像,可实行定点或部分区域动态录像。
并获得最大限度的真实、清晰、稳定的图像,可对其进行放大回放。
7、监视画面允许设定固定画面或自动顺序定时切换画面。
在电视墙(24个21彩色分割器)中的巨阵部分,可通过智能键盘在80多个摄像机中进行自由切换,若是一体智能摄像机(all-in-one intelligent camera)可对其相关操作进行控制。
8、系统前端部件设备都采用球形防护罩,除了在办公区域采用嵌入式的半球防护罩。
其都具有一定的防破坏功能。
9、系统所采用的设备必须符合国家有关规定。
不会造成干扰、辐射等现象发生,不影响厂区现有设备设施的安全。
10、施工必须规范。
采用系统综合布线(generic cablings system)方式布线,布线必须符合国际有关标准,在充分保证系统设备的高速运行、信息传输的可靠性和稳定性。
线缆在没有弱电桥架的情况下不能直接外露,需加装高密度度芯管或套接防锈金属软管(短距离)。
线管的走向规范有序、安装牢固;有防晒、防水、防压、防爆等保护措施。
11、系统的开放性、兼容性、实时性,即系统必须预留有足够的扩展图像接口、控制接口、报警接口等空间,以便日后系统的扩展和升级,进一步提高系统的性能。
12、系统的安全性及保密性。
系统中的所有程序操作、以及电脑操作都有防止非授权操作的安全措施,从而使系统设备和系统文件有很好的保密效果。
综合布线系统应符合的行业标准:
iso/iec 11801《信息技术----布线标准》 cecs72:95《建筑与建筑群综合布线系统工程设计规范》 gb/t-50314-《智能建筑设计标准》 dbj 13-32-2000《建筑智能化系统工程设计标准》 dbj 13-44-2000《建筑智能化系统工程质量验收规程》 ga/t 367-《视频安防监控系统技术要求》 ga/t 368-2001《入侵报警系统技术要求》 ga 308-2001《安全防范系统验收规则》
系统组成
在厂房外围布置了16个sony fcb-ex480ap低照度摄像机,彩色水平解像度为460tv,带有电子快门,逆光补偿等功能。
16个室外智能球形云台、护罩和16个rs-485/232解码器,通过二总线与主控设备相连。
在内部紧急出口、通道、仓储区布置了64个sony tco-c480低照度摄像机。
在厂区紧急出口安装了16个mc系列门磁,在进出货柜码头旁安置了24对盛波尔sen30ll、ha系列主动式数字变频双光束红外探测器。
报警主机采用加拿大“枫叶牌paradox”pa-dec2数字报警接收机,并通过其数字通信模块与电脑相连。
在整个厂区内和四围布置6个dsppa ca系列吸顶式喇叭,16个dsppa ca系列音柱。
并与遥控分区/呼叫器t-koko pampr、mp系列分区呼叫器、mp系列主备功放自动切换器、mp系列分区选择器等组成智能化广播系统工系统。
系统监控操作平台采用mindows版win图形软件,采用国际领先的mpeg4图像处理技术,并采用硬压缩方式。
报警中心采用数字接收机,通过电脑进行全中文资料管理、简便操作,配置windows版pa智能报警软件。
停车场(码头)采用电脑数据管理系统。
其智能监控系统原理图:
系统功能
图像功能 用户可以实时查看监控录像数据库资料。
可启动手动、实时、侦测、移动报警等系统设置。
可进行照相机模式抓拍,及抓拍浏览,视频成组播放功能。
可进行云台全方位控制和图像控制。
支持用户管理、存储管理、权限管理。
持支网络远程实时监控录像、回放。
报警功能
可以进行有关事故记录和历史查询。
可任意旁路某一个防区(在未报警的情况下,可在已布防关态下或正在布防中,均可进行旁路或解除旁路一个或多个防区回路)。
支持电脑立即、留守、强制布撒防等操作,有故障自动检测,声光报警提示功能;支持电话通报系统,于第一时间内通知系统指定负责人,可与110报警电台联接;支持电子邮件e-mail系统,传输报警信息。
可以在键盘或在电脑上进行编程。
停车场管理系统
可查询车辆进出的历史数据记录。
实时动态监视功能,在电脑上可现场监控码头泊车的一切动态。
系统数据自动检测、修复,自动更新功能。
车辆进出时有状态语音自动播放功能,以起提示作用。
支持系统模块扩展功能;支持图像对比、图像识别功能;支持电脑收费管理系统,以及远程传输功能。
系统扩展功能
系统设备的扩展性:系统采用开放式的设计结构,在最大程度上保证用户有更多的需求,同时预留与现有设备相兼容的通信接口。
系统功能的扩展性:系统采用模块化设计,用户可根据实际上的需求来进行选择相适合的功能模块,并可根据设备功能进行更新升级。
安全管理功能
权限设定:每个用户被分配为不同的权限等级。
如系统管理员、操作人员和一般用户。
系统维护功能
系统有自动监视软件和硬件设备故障功能,一发现故障并给出相关的声光提示和语音信息提示,系统将处于记忆修复状态。
结束语
该工厂智能化安防系统,综合了图像、通信、数字、系统集成、计算机等多项技术;实现了安全管理的数字化、网络化和智能化系统。
自从系统投运以来,大大降低了保卫人员和管理人员的工作强度,提高了工作效率,提升了公司的整体管理水平,并已取得了显著的工作效益。
舞台幕布系统设计方案 -方案
(1)大幕
大幕是观众厅与舞台之间起分割作用的幕,是舞台的门户,也是舞台的主要幕布,主要用于会议或演出开始和结束时的开闭,有时也可用作场幕,位于镜框舞台台口的内侧,镜框舞台与假台口之间。大幕有多种闭形式,例如:对开式、升降式、串叠式提式、单侧开闭式以及斜拉式等。对其操作控制系统也分为手动和电动两种形式。本海宁文化中心大幕设计为均匀伸缩对开式,此方式为时下较流行的一种,其性能稳定,使用寿命长,不易损坏。
大幕的颜色和面料可直接影响观众的视觉,要求庄重而典雅。本方案大幕采用紫红色麻绒带本色衬里做面料,通过三折一的艺术制作,给观众以强烈的立体感。
(2)前沿横帘幕
前沿横帘幕是大幕前上台口上的横幕,用它作舞台上沿,挡住观众对舞台前沿上空的视线柱,它起装饰美化舞台的作用。
前沿横帘幕与大幕形成配套,因而衬托了大幕,前沿横帘幕也称会标幕,可要根据不同的会议、演出,自如更换标语。
(3)二道幕
为独唱、独奏、曲艺等节目服务,起突出主角,烘托氛围的作用。位于舞台大幕之后,与第二道沿侧幕相近的一道幕。通常是以三倍打摺制成对开幕,本方案由于升降空间不够,只能为对开或提升两种形式供选择,从经济角度出发,本方案选择滚轮对开式。
(4)三道幕或会幕(供选择的)
主要为如开会议作后场的隔断作用,突出会议的重要性,烘托会议气氛。
(5)横帘幕(横条幕)
常用墨绿色,悬挂在普通吊杆和加长杆上,位于镜框舞台台口上方的幕布。与左右两侧的侧帘幕相配合,起到控制演出空间的视线的作用。
(6)侧帘幕(侧条幕)
侧帘幕位于舞台左右两侧,颜色与横帘幕一致,其对舞台表演区域起限制作用,其平行、正“八”字、倒“八”字等吊装方式可以改变舞台表演区平面的开头对舞台后部空间进行遮挡,引导、控制观众的视线集中在规定的表演区内。其主要是美化舞台,遮挡观众对侧台的视线。
(7)白天幕
白天幕位于镜框舞台演出空间最后部位,作为表现演出背景环境的幕布。其高度和宽度通常大于台口尺寸,可根据演出需要,将其设计成平面幕或弧型宽幕。
白天幕朝向观众席的内侧,可用天排灯、幻灯等进行照明或投射各种色彩形象,与整个舞台空间形成一个整体的画面。本方案采取白色细帆布为材料,色白、吸光性能好。
黑底幕
黑底幕位于舞台后部天幕之前,适合于表现为黑暗的场景空间,在歌舞伎戏剧中表现室外以及夜或者虚无状态,同时杂技表演时作背景幕用。采用黑麻绒三折一艺术制作。)
(9)纱幕
纱幕一般不作为剧场的固定装置,是以薄质地带有网状孔眼的棉布或化纤材料制成的半透明幕布。除本身所具有的轻薄,打摺后可以制作成各种装饰幕特点以外,还具有一定的透光作用。舞台上常用白纱幕、黑纱幕、纱画幕表现场景环境,从纱画幕后面向景物投光可以显现隐藏在后面的人物和空间环境,从而易于表现梦幻、回忆的`虚拟场面;从前面向纱幕投光可以表现渲染纱画幕上所画的形象;从纱幕背面向纱幕后投光时,纱画幕前面所画的形象看起来则不复存在。其他单色纱幕也具备以上特点,只是白色及浅色纱幕反光效果强,深色、黑色纱幕可以更好地吸收舞台上的散射光,更易于表现虚拟、朦胧的幻觉空间效果,
纱幕有多种纺织方法,舞台最常使用的是被称为“象眼纱”的六菱形孔状的织物。
xx商厦休闲购物广场新闻发布会程序
新闻发布会时间:9月18日上午9:30
新闻发布会地点:xx大酒店,会议厅或大堂。
新闻发布会目的:
1)
宣传xx商厦的理念,塑造xx商厦品牌形象;制造xx商厦火爆气氛;
2)
提升xx商厦知名度;为xx商厦项目销售和招商助力
3)
突出xx商厦的与众不同,制造良好的口碑环境,以利吸引投资;
新闻发布会流程:
1)
开始前半个小时,会场布置完毕;
2)
会议主持人致欢迎辞,用时3分钟;(欢迎词设计)
3)
邀请xx商厦兰州有限公司总经理致辞,用时15分钟;
4)
邀请xx商厦兰州有限公司副总经理对整个xx商厦项目进行介绍,用时20分钟;
5)
策划总监接受记者提问,用时15分钟;(只限项目策划的问题不涉及销售和工程质量问题)
6)接受记者或与会人员提问,用时10分钟;(事先和特邀记者商量好的问题)
新闻发布会工作细节:
1)
先期媒体广告发布计划。
2)
先期报纸广告文案及设计、发布。
3)
先期海报&pop文案及设计和印刷。
4)
当天会场布置。
5)
人员安排(含xx商厦、xx超市、xx广告公司工作人员)。
6)
活动现场礼品、手提袋、海报派发。
活动步骤:
1.
举办新闻发布会宣传xx商厦推广理念
2.
设立临时网页供其他人员阅览。
3.
在售楼处设立报名点,派专人接待。
4.
小量报纸广告设计发布。
5.
单张设计印刷。
6.
各个周末在指定区域派放dm
7.
在各个xx超市总服务台资料架上放置dm供顾客自己取阅。
8.
根据具体销售情况决定颁奖秀的规模。
9.
(一切细节的准备:背景板的设计、场地的租赁、充气拱门的租赁、条幅的商议制作、比赛奖品的确定,采购等。)
10.
活动结束。
11.
活动效果评估。
附录一:xx商厦休闲购物广场潜在顾客调查问卷
(a4铜版纸印刷)
尊敬的先生/女生您好!
我们是xx商厦休闲购物广场市场调查人员,现在xx商厦休闲购物广场向您请教几个问题,您在答题之后,可以到10月18日xx商厦活动现场领取奖品一份。
舞台幕布系统设计方案
舞台幕布系统设计方案 (1)大幕 大幕是观众厅与舞台之间起分割作用的幕,是舞台的门户,也是舞台的主要幕布,主要用于会议或演出开始和结束时的开闭,有时也可用作场幕。位于镜框舞台台口的内侧,镜框舞台与假台口之间。大幕有多种闭形式,例如:对开式、升降式、串叠式提式、单侧开闭式以及斜拉式等。对其操作控制系统也分为手动和电动两种形式。本海宁文化中心大幕设计为均匀伸缩对开式,此方式为时下较流行的一种,其性能稳定,使用寿命长,不易损坏。 大幕的颜色和面料可直接影响观众的视觉,要求庄重而典雅。本方案大幕采用紫红色麻绒带本色衬里做面料,通过三折一的艺术制作,给观众以强烈的立体感。 (2)前沿横帘幕 前沿横帘幕是大幕前上台口上的横幕,用它作舞台上沿,挡住观众对舞台前沿上空的视线柱,它起装饰美化舞台的作用。 前沿横帘幕与大幕形成配套,因而衬托了大幕,前沿横帘幕也称会标幕,可要根据不同的会议、演出,自如更换标语。 (3)二道幕 为独唱、独奏、曲艺等节目服务,起突出主角,烘托氛围的作用。位于舞台大幕之后,与第二道沿侧幕相近的一道幕。通常是以三倍打摺制成对开幕,本方案由于升降空间不够,只能为对开或提升两种形式供选择,从经济角度出发,本方案选择滚轮对开式。 (4)三道幕或会幕(供选择的) 主要为如开会议作后场的隔断作用,突出会议的重要性,烘托会议气氛。 (5)横帘幕(横条幕) 常用墨绿色,悬挂在普通吊杆和加长杆上,位于镜框舞台台口上方的幕布。与左右两侧的侧帘幕相配合,起到控制演出空间的视线的'作用。 (6)侧帘幕(侧条幕) 侧帘幕位于舞台左右两侧,颜色与横帘幕一致,其对舞台表演区域起限制作用,其平行、正“八”字、倒“八”字等吊装方式可以改变舞台表演区平面的开头对舞台后部空间进行遮挡,引导、控制观众的视线集中在规定的表演区内。其主要是美化舞台,遮挡观众对侧台的视线。 (7)白天幕 白天幕位于镜框舞台演出空间最后部位,作为表现演出背景环境的幕布。其高度和宽度通常大于台口尺寸,可根据演出需要,将其设计成平面幕或弧型宽幕。 白天幕朝向观众席的内侧,可用天排灯、幻灯等进行照明或投射各种色彩形象,与整个舞台空间形成一个整体的画面。本方案采取白色细帆布为材料,色白、吸光性能好。 黑底幕 黑底幕位于舞台后部天幕之前,适合于表现为黑暗的场景空间,在歌舞伎戏剧中表现室外以及夜或者虚无状态,同时杂技表演时作背景幕用。采用黑麻绒三折一艺术制作。) (9)纱幕 纱幕一般不作为剧场的固定装置,是以薄质地带有网状孔眼的棉布或化纤材料制成的半透明幕布。除本身所具有的轻薄,打摺后可以制作成各种装饰幕特点以外,还具有一定的透光作用。舞台上常用白纱幕、黑纱幕、纱画幕表现场景环境,从纱画幕后面向景物投光可以显现隐藏在后面的人物和空间环境,从而易于表现梦幻、回忆的虚拟场面;从前面向纱幕投光可以表现渲染纱画幕上所画的形象;从纱幕背面向纱幕后投光时,纱画幕前面所画的形象看起来则不复存在。其他单色纱幕也具备以上特点,只是白色及浅色纱幕反光效果强,深色、黑色纱幕可以更好地吸收舞台上的散射光,更易于表现虚拟、朦胧的幻觉空间效果。纱幕有多种纺织方法,舞台最常使用的是被称为“象眼纱”的六菱形孔状的织物。1、沼气系统管理人员必须严格按照安全运行规程进行安全生产,重视沼气的危险性,严格按照沼气设备产品说明书的规定进行管理及维护,保证沼气设备的正常运行。
2、沼气系统区域内一律禁止明火,严禁吸烟,严禁铁器工具撞击或电焊、气割等操作。严禁在导气管上试火,以防回火引起沼气系统发生爆炸。
3、沼气系统区域内应建立出入检查制度,严禁小孩及闲杂人员进入,严禁打火机等危险物品的带入。严禁堆放杂物。
4、严禁沼气系统管理人员进入运行中的加盖集水池、加盖酸化调池、厌氧池(罐)、贮气罐等含有沼气的构筑物进行操作。这些构筑物需维修时,应严格按照安全维修操作规程进行。先间断放空,再强制通风,再进行动物试验,有至少三人在场时方可施工。
5、定期检查沼气管路系统及设备的严密性,如发现泄漏,应迅速停气修复。检修完毕的管路系统或贮存设备,重新使用时必须进行气密性试验,爆炸试验合格后方可使用。未经管理人员同意,任何人不得私拉乱接沼气管网,不得私自开启沼气系统,以免产生危险。沼气主管路上部不应设建筑物或堆放障碍物,不能通行重型卡车。
6、沼气贮存设备因故需放空时,应间断释放,严禁将贮存的沼气一次性排入大气。放空时应认真选择天气,在可能产生雷雨或闪电的天气严禁放空。另外,放空时应注意下风向有无明火或热源(如烟囱)。由于h2s和c02比空气重,须防止在低凹处积聚(如检查井),以防止人窒息。
7、沼气系统区域内必须配备消火栓、若干灭火器及消防警示牌,并定期检查消防设施和器材的完好状况,保证其正常使用。
8、建立设备设施安全操作规程和安全运行制度等,行成条文上墙公众,共同监督执行。
9、建立设备设施安全操作规程和安全运行制度等,行成条文上墙公众,共同监督执行。
一、计算机信息系统保密管理
1、涉密计算机系统保密建设方案应经过市委保密委员会的审查批准,未经审批不得投入运行。
2、进入涉密计算机系统应进行身份鉴别,要按要求设置并定期更新涉密系统口令。
3、涉密计算机系统应当与国际互联网物理隔离。严禁以任何方式将涉密计算机联入国际互联网或其他非涉密计算机系统。
4、涉密计算机系统工作场所应作为保密要害部位进行管理。
5、机关工作人员不得越权访问涉密信息。
6、涉密计算机系统安全保密管理员、密钥管理员和系统管理员应由不同人员担任,并且职责明确。
二、涉密计算机使有管理
1、承担涉密事项处理的计算机应专机专用,专人管理,严格控制,不得他人使用。
2、禁止使用涉密计算机上国际互联网或其它非涉密信息系统。
3、严格一机两用操作程序,未安装物理隔离卡的涉密计算机严禁连接国际互联网或其它非涉密信息系统。
4、涉密计算机系统的软件配置情况及本身有涉密内容的各种应用软件,不得进行外借和拷贝。
5、未经许可,任何私人的光盘、软盘、U盘不得在涉密计算机机设备上使用;涉密计算机必需安装防毒软件并定期升级。
三、笔记本电脑使用管理
1、涉密笔记本电脑由办公室统一管理,使用时必须履行登记手续。
2、涉密笔记本电脑严禁安装无线网卡等无线设备,严禁联接国际互联网。
3、涉密笔记本电脑限委机关工作人员使用,禁止将涉密笔记本电脑借与他人。
4、涉密笔记本电脑中的涉密信息不得存入硬盘,要存入软盘、移动硬盘、U盘等移动存储介质,必须定期清理,与涉密笔记本电脑分离保管。
5、不准携带储涉密信息的笔记本电脑出国或去公共场所,确因工作需要携带的,必须办理相关审批手续。
四、移动存储介质使用管理
1、涉密存储介质由办公室统一管理,使用时必须履行登记手续。
2、涉密存储介质应按存储信息的最高密级标注密级,并按相同密级的秘密载体管理。
3、禁止将涉密存储介质接入非涉密计算机使用。
4、不得将涉密存储价质带出办公场所,如因工作需要必须带出的,需履行相应的审批和登记手续。
5、个人使用的U盘等移动存储介质,不得存储涉密信息,因工作需要必须使用的,使用后要及时消除密信息。
五、数码复钱机、多功能一体机使用管理
1、数码复印机、多功能一体机必须指定专人使用,其他任何人未经许可,不得使用。
2、处理涉密信息的数码复印机、多功能一体机不得连接普通电话线,不得与委局域网连接。
3、复制涉密文件、资料、图纸等必须严格履行审批手续,复制件必须按密件处理,不得降低密级使用。
4、处理涉密信息完毕后,必须立即销毁存储的涉密信息。
六、国际互联网上发布信息保密制度
1、在国际互联网上发布信息必须由办公室统一管理,指定专人负责操作,其它科室和个人不得擅自在互联网上发布涉及工作内容的任何信息。
2、在国际互联网上发布涉及工作内容的信息必须履行审批手续,必须由市建设口保密领导小组审查后,交一把手书记签批手方可发布。
3、严禁将任何涉密文件、信息等发布到国际互联网上。
4、严禁将案件、信访信息发布到国际互联网上。
为落实《中华人民共和国道路交通安全法》、《中华人民共和国道路运输条例》及省、市运管部门“关于营运车辆安装使用行驶记录仪(GPS)”的有关规定。提高对运行车辆现代化管理水平,有效掌握车辆运行状态,促进公司道路运输安全,规范道路运输汽车行驶记录仪(GPS)的使用和管理,结合公司的实际情况,特制定以下管理规定:
一、公司GPS监控平台工作职责
1、负责与主管部门GPS管理系统联系,对所属营运车辆的运行速度。时间进行设定,指导和监督车辆驾驶员正确使用和维护GPS。
2、完善落实GPS同安全生产各项规章制度,建立健全GPS 道路运输监控基础台帐,做好资料的收集、整理、归档上报工作。
3、将每月的GPS安全监控处理情况上报公司客运部,并对存在的突出问题召开相应专题会议,研究解决,并负责检查落实、整改到位。
4、对车载终端设备的使用情况进行不定期的抽查,确保车载GPS系统设备完好。
5、及时处理GPS道路运输安全监控中所出现的各种违章现象和各种突发事件,做好信息登记。反馈、上报工作。
6、做好GPS道路日常监控工作,合理安排值班时间。
7、将当月GPS监控情况(统计表)及处理情况在每月安全例会上进行通报。
8、负责GPS监控人员的日常管理,经常检查督促是否按有关规定执行操作。
二、GPS监控人员工作职责
1、监控人员必须保证GPS监控系统的正常运行,随时掌握所监控车辆运行状态,包括车辆的饿准确位置、行驶速度和方向。
2、做好车辆监控的日常记录,上、下班的交接,发现隐患及时报告领导。
3、监控人员严守岗位和职业道德,不得拘私舞弊、瞒报和弄虚作假,平台发送信息应用语规范、简单、明确。不得发送与监控管理工作无关的信息,不得擅自修改、删除监控和发送的信息,严禁利用平台进行短信聊天,严禁发送黄色、反动信息和从事反党宣传。
4、当车辆发送求助的盗、抢等手动报警信息时,监控人员及时报告公司安全科,并根据报警信息对当事车辆实施跟踪监控,及时向事发当地110报警中心报警。
5、监控人员严禁将平台使用权交与无关人员操作、查阅和修改。
6、监控人员在没有特别的批示不得私自向车辆发送调度指令。
7、监控人员根据公司提供的各类型车辆在不同等级路段的时速规定对车辆进行时速设置,不得随意更改或不按规定设置车辆时速。
8、监控人员接到车辆违章超速报警时,及时向驾驶员发送提醒或警告信息,要求驾驶人员降低车辆以保证车辆行驶安全,同时每月底将车辆违章报表送公司安全科和运管部门。
9、监控人员根据公司安全管理部门提供的车辆连续行驶时间和中途停车休息时间以及超长线路营运车辆中途更换驾驶员的'规定,及时给驾驶人员以提示,对不按相关规定执行的车辆,做好监控记录并提出处理意见。
10、监控人员应将需要的监控信息如:定位次数、违章车辆处理情况、值班情况、数据统计分析情况、数据分析情况等上报公司,道路运输管理机构监控管理平台。
11、做到平台软件及时升级,认真学习软件的各项功能。
三、驾驶GPS车载终端使用职责
1、确保GPS车载终端处于开机状态,并按有关说明正确使用、维护和保养,不得擅自拆卸或破坏GPS终端系统,不得用水直接清洗。车载终端系统若不能正常工作应及时向公司反映,以便及时进行维护。
2、严禁无故或恶意手动报警,扰乱平台正常工作,随时关注终端系统信息。
3、驾驶员在出车前应对车载终端是否良好进行检查,确保车辆行驶过程中车载终端正常运行。
4、营运车辆出车前向车辆所属公司监控管理平台发送车辆和驾驶确认信息,确保监控管理中心掌握出车时的真实情况。在车辆到达终点或停止营运时,驾驶员应逐条阅读完车辆终端的未读信息以便及时获取相关指令和提示。
5、营运车辆在行驶途中不得私自关闭车载系统,不得向监控管理平台发送与车辆行驶无关的信息和虚假的紧急报警信息。
6、营运车辆驾驶员收到监控管理平台发送的警示信息后,必须立即纠正违章行为,确保车辆按照有关规定正常运行。
7、为保证安全,只能在车辆停驶时操作使用终端,阅读相关信息或接听、拨打车载电话,车辆在进入加油站时。禁止接听、拨打车载电话或打开液晶屏。
8、车辆在运行途中遭遇恶劣天气、道路堵塞、交通事故、车辆抛锚或抢劫等紧急情况时,应立即向监控管理平台发送信息进行报告,监控平台根据情况提供相应的帮助和指示。
四、GPS管理考核奖惩制度。
(一)GPS监控平台人员奖惩制度
1、公司GPS监控平台未在规定时间内对营运中的客运车辆实施监控的,发现一次对公司监控人员处以50―100元的罚款。
2、GPS监控中对运行中超速、紧急报警等未及时提出警告或未上报有关部门的,发现一次处以20元的罚款。
3、发送与监控管理工作无关的信息或利用平台进行短信聊天,出现一次处以50元的罚款。
4、在GPS平台上发送黄色、反动宣传信息的,发现一次立即下岗。
5、在没有特别批示下私自向车辆发送调度指令的,出现一次处以50元的罚款,两次以上立即做下岗处理。
(二)营运客车驾驶员使用GPS奖惩制度
1、凡安装了GPS的车辆,营运情况下必须24小时开启,否则一次处以200元罚款,节假日加倍。
2、擅自拆卸或破坏GPS车载设备的车主自费修好方可进行营运。
3、平台发出指令后,两分钟内不执行者,每次罚款50元,一日内发生两起者,罚款100元;每月发生三次者,除罚款外,公司将取消驾驶员驾驶公司籍车辆的资格。
4、营运途中私自关闭GPS车载系统者,每次处以50元的罚款,重者加倍处罚,并处以驾驶员停运学习2天。
5、每月超速行驶次数达3次,罚款100元;3次以上者,除加倍罚款外,驾驶员停运学习两天,屡教不改,取消驾驶公司车辆资格。
6、假报、误报信息者,每次罚款50元,重者加倍罚款外,停运学习3天。
7、不按规定线路运行的,按运输管理机构和公司相关条款进行处罚。
8、办理了出车手续,但不按规定随车携带,第1次处罚50元,第2次处罚100元,第3次处罚200―500元,并下车学习两天。
9、GPS监控发现未办理出团手续的车辆擅自出团的处罚500―元,并停车整改,驾驶员扣2分的处罚,取消年底评估资格。
为了加强闭路电视监控系统操作室的管理,确保监控系统的正常使用和安全运作,充分发挥其作用,特制定本规则。
一、监控室值班登记制度
(一)监控人员必须具有高度的工作责任心,认真落实公司赋予的安全监控任务,及时掌握各种监控信息,对监控过程中发现的情况及时进行处理和上报。
(二)值班人员必须严格按照规定时间上下班,不准随意离岗离位,个人需处理事务时,应重复值班领导的同意并在有人顶岗时方可离开。
(三)对监控到的可疑情况,及时通知巡逻人员进行跟踪,确保行政中心的治安稳定。
(四)每天对监控的情况进行登记,并对值班登记本保留存档。
二、监控系统使用管理制度
(一)监控人员服从值班领导的安排,认真落实值班期间的各项工作任务。
(二)监控人员应爱护和管理好监控室的各项装配和设施,严格操作规程,确保监控系统的正常运作。
(三)非工作人员未经许可不得进入监控室,公司员工和外来人员需到监控室查询情况和观访者必须经值班领导同意方可进入。
(四)禁止在监控室聊天、游戏,按操作规程使用,不得随意折装设备,做好设备日常维护保养,保持室内卫生清洁。
(五)公司领导及相关部门领导需到监控室查询情况,值班人员应及时报告值班领导,并热情做好接待工作和给予积极配合。
(六)必须保守秘密,不得在监控室以外的场所议论有关录像的内容。
三、发现案件线索登记存档制度
(一)监控人员每天对录像进行翻看,发现有价值案件线索及时保留,并作好标记,为公安部门破案提供有效线索。
(二)监控人员对行政区域内打架、斗殴及盗窃、交通事故、火灾等录像要及时存档保留,并做好标记。
(三)对公司领导要求保留的录像进行存档保留,并做好标记。
摘 要
图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
因此本人结合开入式图书馆的要求,对MS SQL Server数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆工作人员和高级管理员三方面的需要。
第一章对数据库应用系统开发和图书管理系统进行了简明的介绍,并分析了开发图书管理系统所应进行的工作。
第二章对数据库的设计和SQL语言的使用进行了系统分析,为深入理解数据库应用打下了基础。
第三章学习了具体的开发工具Delphi 6.0,对其数据库组件,SQL语言在Delphi中的应用等数据库编程关键技术进行了系统的介绍。
第四章分析了图书管理信息系统的应用需求,按照数据库设计理论一步一步地给出了系统需求说明书、局部ER图、全局ER图、系统关系模式,子模式,利用MS SQL Server2000建立了数据库
第五章进行了具体的程序设计,具体划分了三类用户的操作权限,设计了了三个操作界面。实现了数据库表的浏览,记录的添加、删除和修改,报表的生成,实现了多数据库表的连接操作,实现了多条件查询和模糊查询,并灵活实现了对不可更新查询结果集的更新操作,实现了主从表操作,实现了密码维护功能,最后,系统还可以导入数据库以对任意同结构的数据库进行操作。
设计充分利用Delphi 6、MS SQL Server2000数据库技术的强大力量,提高了编程效率和可靠性。
关键词:数据库,SQL语言,MS SQL Server,Delphi6,
数据库组件,图书管理,窗体,listview组件
目 录
摘 要 ……………………………………………………………………………… I
第一章 绪 论 …………………………………………………………………… 1
§1.1 数据库应用系统开发简介 ……………………………………………… 1
§1.3 本文所做的主要工作 …………………………………………………… 6
第二章 数据库理论基础 ………………………………………………………… 7
§2.1 数据库系统设计及范式分析 …………………………………………… 7
§2.2 SQL语言介绍………………………………………………………………… 11
2.2.1 SQL基础 ………………………………………………………………… 11
2.2.2 SQL语句 ………………………………………………………………… 12
第三章 应用系统开发工具………………………………………………… 16
§3.1 Delphi6.0 VCL组件的体系结构……………………………………… 16
§3.2 数据库组件介绍 …………………………………………………………… 17
§3.3 SQL语言在Delphi中的应用 …………………………………………… 18
§3.4 MS SQL Server简述 …………………………………………………… 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多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(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中的工具来处理这些数据。
MS SQL Server2000中就支持窗体、存储过程等应用元数据。
1.1.2 数据库管理系统
数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。MS SQL Server2000就是一种关系型数据库管理系统。
关系模型。关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。
关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。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.1 系统所做工作
1) 了解应用开发工具的现状
2) DelPHi6.0编程基础
3) MS SQL Server基础
4) 设计数据库;设计界面
5) 开发数据库。数据库实现的一些功能有
l 数据和数据说明的醒目显示;
l 多条件的查询、多条记录的检索、模糊查询;
l 数据文件某种存储格式导入数据窗体,经过数据完整性校验存入数据库;
l 数据库安全性的设计;
l 数据库的设计、数据接口、界面的设计。
§1.3 本文所作工作
绪论部分对数据库应用系统的结构、开发进行了简要介绍,分析了图书管理信息系统设计的特点和任务。
第二章介绍了数据库的设计和范式分析,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。
第三章对系统介绍了Delphi 6.0的数据库编程技术、SQL语言在Delphi 6.0中的应用、MS SQL Server基础。
第四章分析了图书管理系统的应用需求,设计了系统的数据库结构,并根据需求对系统功能进行了划分和细化。
第五章根据第四章的设计结果利用MSSQL Server和Delphi 6.0进行了具体的应用程序设计。
总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向。
第二章 数据库理论基础
一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。
信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。
(1) 数据库需求分析的任务是将业务管理单证流化为数据流,划分主题之间的边界,绘制出DFD图,并完成相应的数据字典。
(2) 概念设计的任务是从DFD出发,绘制出本主题的实体-关系图,并列出各个实体与关系的纲要表。
(3) 逻辑设计的任务是从E-R图与对应的纲要表出发,确定各个实体及关系的表名属性。
(4) 物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化(现在很多软件能支持中文字段,如MS SQL Server,我就是用的中文字段名),实现物理建库,完成数据库物理设计字典。
(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),而在这个关系下的每个数据指标项则被称为数据元素(data element),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:
l 在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。
l 表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。
l 在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。
l 在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。
在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。
第一范式(first normal form,简称1st NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1st NF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1st NF。
第二范式(second normal form,简称 2nd NF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primary key),其它数据元素与主关键字一一对应。例如,在图l9.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖(functional depEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。
第三范式(third normal form,简称 3rd NF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了 2nd NF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。
为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系
规范化要求进行数据库设计。
§2.2 SQL语言介绍
2.2.1 SQL基础
SQL(Structured Query Language,结构查询语言)是一个功能强大的`数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingres等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如“Select”、 “Insert”、 “Update”、 “Delete”、 “Create”和 “Drop”常常被用于完成绝大多数数据库的操作。MS SQL Server 就是用的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.2 SQL语句
SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:
DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据;
DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删除数据库对象;
DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。
DML组可以细分为以下的几个语句:
SELECT:用于检索数据;
INSERT:用于增加数据到数据库;
UPDATE:用于从数据库中修改现存的数据;
DELETE:用于从数据库中删除数据。
DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:
CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDEX
下面是一个简单SQL语句的例子:
我们使用SQL语句来从Book中检索‘借书证号’为‘000001’的借阅者姓名:
SELECT 姓名 FROM Book WHERE 借书证号 = ‘000001’
2.2.2.1 DDL与DML
数据定义语言DDL:它是用来创建和修改数据库结构的一种语句,包括 Create、Alter和Drop 语句。
数据操作语言DML:包括数据查询与数据更新。数据查询主要是由Select语句完成,这一点不再赘述。而数据更新所造成的风险大大超过数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。
用于修改数据库内容的 SQL 语句主要有以下三个:
(1) Insert,向一个表中加入新的数据行
(2) Delete,从一个表中删除数据行
(3) Update,更改数据库中已经存在的数据
Insert标准语法:
INSERT INTO table_name (col1, col2...) VALUES(value1, value2...)
下例要将借书证号为‘000001’作为一个新的借书情况加入借书情况表OWNER中
Insert Into
owner (借书证号,图书编号,借书日期)
values (‘000001’,‘00000001’,‘-9-12’)
Insert 语句还可以将多行数据添加到目标表中去,在这种形式的 Insert 语句中,新行的数据值不是在语句正文中明确地指定的,而是语句中指定的一个数据库查询。添加的值来自数据库自身的行,在某些特定的状态下,这是非常有用的。多行 Insert 语句为拷贝数据提供了一种紧凑而高效的方法,但我在自已做的图书管理系统中没有使用这种方法,我在系统中是使用循环依照上面的用法来完成多个记录的插入。
Update语句用于更新单表中选定行的一列或多列的值。要更新的目标表在语句中定义,Set子句则指定要更新哪些列并计算它们的值。Update语句总是包含Where语句,而且Update语句比较危险,所以您必须明确地认识到Where语句的重要性,Where语句被用来指定需要更新的行。
标准语法:
UPDATE table_name
SET columnname1 = value1
[, columname2 = value2]...
WHERE search_condition
Delete 语句标准语法:
DELETE FROM tablename WHERE condition
2.2.2.2 复杂操作实现
在信息管理系统中,我们往往会遇到归类、汇总、映射、索引、子查询等复杂操作,相应的支持与实现如下
:
u GROUP BY方法
GROUP BY子句语法为:
SELECT column1, SUM(column2)
FROM “list-of-tables”
GROUP BY “column-list”;
这个GROUP BY子句将集中所有的行在一起,它包含了指定列的数据以及允许合计函数来计算一个或者多个列。
在本人的系统中在显示数据时用到了此语句来对查询所得的内容排序然后再显示。
u 组合条件和布尔运算符
以下的SQL语句中就含有组合条件:
SELECT column1, SUM(column2)
FROM “list-of-tables”
WHERE “condition1” AND “condition2”;
下面是一个示例:
SELECT 身份描述
FROM ID,user
WHERE ID.身份编号=USER.身份编号 and user.借书证号=’000001’;
这条SQL语句是从user、id表中查找借阅证号为000001的借阅者的身份描述,第三条语句中如果其中有一个条件为假,那么就什么都没有显示。
u UNION子句
有些时候,需要一起浏览多个查询的结果、组合它们的输出,我们可以使用UNION关键字。
第三章 应用系统开发工具
§3.1 Delphi6.0 VCL组件的体系结构
Delphi类可以粗略地分成两部分:一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上是找不到的。在Delphi中,每一个类的祖先都是Tobject类,整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为Tobject类。这样,按照面向对象编程的基本思想,就使得用户可用Tobject类这个类型代替任何其它类的数据类型。实际上在Delphi的类库中,Tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。
这一小节简略介绍一下Delphi 6.0中VCL(可视化组件库)组件的体系结构。凡是做过程序开发的人都知道从来没有单纯的数据应用程序,也就是说,数据库应用程序必须和用户界面(可以是图形界面,也可以是命令接口)元素相结合,只讲界面或只讲数据库本身都构不成数据库应用程序,因而用Delphi 6.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(数据源)、Data control(数据控制组件,也叫data-controls即数据感知组件)。其中前面4种统称为数据访问(Data Access)组件。这些组件的相互关系如图3-2所示。
ADO组件 Delphi6.0包含了可以用来访问Microsoft公司的ActiveX Data Objects(ADO)格式数据库的组件。ADO是Micrsoft公司关于各种类型数据的高等界面,后来逐渐演变成满足所有数据访问需要的完整解决办法。ADO的对象模型是所有数据访问接口对象模型中最简单的一种。Microsoft公司用来访问ADO数据的应用程序界面技术是OLE DB。OLE DB是一种底层编程接口,用来访问许多不同类型的数据源,其中包括消息、文件系统以及其他一些非传统的数据源。OLE DB是一个由Component Object Model(COM)接口组成的集合,用来隐藏创建数据访问服务过程中的细节。OLEDB提供了访问任何数据资源的方法,包括相互关联的数据库和相互不关联的数据库、Email和文件系统、文本和图形以及用户定义的数据对象。
Delphi的ADO组件无需依靠BDE而是使用ADO技术,提供了可以通过数据控制组件访问数据的新方法。唯一的要求是在使用ADO组件时必须运行ADO/OLE-DB。ADO组件的使用使得DELPHI在访问数据的类型和采用的技术方面都有了很大的突破。
数据模块设计窗口 数据模块设计窗口是用来设计和维护数据模块的。数据模块设计窗口中包含了所有以.DTI作为文件扩展名的Data Diagram文件的信息。DTI文件在编译时不起任何作用。
§3.3 SQL语言在Delphi中的应用
在Delphi中使用SQL语言非常方便,一般来说,都是通过Tquery或TADOquery组件来使用SQL语言的。可以在Tquery或TADOquery组件的SQL属性中设置SQL语句。设计程序时,在该组
件的属性对话框中选择SQL属性,单击带省略号的按钮,就可以打开String List Editor对话框,然后我们就可以在对话框中添加SQL语句。还可以使用Delphi的SQL Builder来自动生成SQL语句,这样可以避免手工编写SQL而可能造成的语法错误。
静态SQL语句在程序设计时便已固定下来,它不包含任何参数和变量。
动态SQL语句,也被称作参数化的语句,在其中间包含着表示字段名或表名的参数,例如下面的语句是一条动态SQL语句:
Select * From Book Where 图书编号 =: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 语句已被传送到数据库引擎中 ) , 当我们使用参数编辑器Parameters Editor来为动态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部件相连的数据浏览部件( 如TDDGrid TDBEdit等)那么在这些数据浏览部件中会显示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 查询只能涉及到一个单独的表
n SQL语句中不能包含ORDER BY命令
n SQL语句中不能含聚集运算符SUM或AVG
n 在Select后的字段列表中不能有计算字段
n 在Select语句WHERE部分只能包含字段值与常量的比较运算,这些比较运算符是:Like, >, <, >=, <=。各比较运算之间可以有并和交运算:AND和OR
当通过SQL语句查询数据库服务器中的数据库表:
n 查询只能涉及到一个单独的表
n SQL语句中不能包含ORDER BY命令
n SQL语句中不能含聚集运算符SUM或AVG运算
另外,如果是查询Sybase数据库中的表,那么被查询的表中只能有一个索引。
如果在应用程序中要求TQuery或TADOquery组件返回一个“活动”的查询结果数据集,但是SQL 命令语句不满足上述约束条件时,对于本地数据库的SQL查询,BDE只能返回只读的数据集。对于数据库服务器中的SQL查询,只能返回错误的代码。当Tquery或TADOquery组件返回一个“活动”的查询结果数据集时,它的CanModIfy属性的值会被设置成True。
§3.4 MS SQL Server简述
SQL Server 是一个后台数据库管理系统,它功能强大操作简便,日益为广大数据库用户所喜爱。越来越多的开发工具提供了与SQL Server的接口。SQL Server 是一个关系数据库管理系统,它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的。于1988 年推出了第一个OS/2 版本,在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。MSSQL Server不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事实上,SQL Server数据库处理的基本结构,采取关系型数据库模式,尽管如此,相信大家都可以轻易的发现,在SQL Server的数据库处理方式,则是使用面向对象的操作方式与精神,也就是说,SQL Server的所有功能,都可以基于系统已经建立好的一些对象来达成,是相当OO(面向对象)的一个系统结构。
SQL Server 企业管理器是 SQL Server 的主要管理工具,它提供了一个遵从 MMC 标准的用户界面,使用户得以:
・ 定义 SQL Server 实例组。
・ 将个别服务器注册到组中。
・ 为每个已注册的服务器配置所有 SQL Server 选项。
・ 在每个已注册的服务器中创建并管理所有 SQL Server 数据库、对象、登录、用户和权限。
・ 在每个已注册的服务器上定义并执行所有 SQL Server 管理任务。
・ 通过唤醒调用 SQL 查询分析器,交互地设计并测试 SQL 语句、批处理和脚本。
・ 唤醒调用为 SQL Server 定义的各种向导。
・
第三章 图书管理系统设计分析
§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一般采用关系型(本人所使用的MS SQL Server就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。
(1) 导出初始关系模式
book(图书编号#,图书名称,图书类别#,作者,出版社,出版日期,备注,价格,数量)class(图书类别#,类别名)user(借书证号#,姓名,性别,身份编号#,身份证,联系电话,密码)ID(身份编号#,身份描述,最大借阅数)Owner(借书证号#,图书编号#,借书日期)
图4-14 关系模式集
(2) 产生子模式
子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。
借书子模式(借书证号#,姓名,图书编号#,图书名称,借书日期)
图4-15 部分子模式
(3) 根据设计中出现的问题本人在写系统时还加入了两个关系模式:
1、 ownertemp:用于工作人员在处理借书、还书工作时临时存储借书、还书信息,以便打印报表时使用。
2、 keyer:用于存储工作人员和图书馆管理员的用户名和密码及权限,以便工作人员或图书馆管理员进入相应的功能模块时进行验证用户的身份。
4.3.3 数据库的实现
我选用Microsoft SQL Server2000(企业版)数据库来进行数据库的逻辑设计。首先创建七个基本数据库表如表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表统计出图书总数目,库存图书数目,借出图书数目及借阅过期的图书数目。在这里给出统计图书总数目,库存图书数目,借出图书数目及借阅过期的图书数目的实现过程中的几个函数和过程
当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。
基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
§1.1 系统所做工作
1) 了解应用开发工具的现状
2) DelPHi6.0编程基础
3) MS SQL Server基础
4) 设计数据库;设计界面
5) 开发数据库。数据库实现的一些功能有
l 数据和数据说明的醒目显示;
l 多条件的查询、多条记录的检索、模糊查询;
l 数据文件某种存储格式导入数据窗体,经过数据完整性校验存入数据库;
l 数据库安全性的设计;
l 数据库的设计、数据接口、界面的设计。
§1.3 本文所作工作
绪论部分对数据库应用系统的结构、开发进行了简要介绍,分析了图书管理信息系统设计的特点和任务。
第二章介绍了数据库的设计和范式分析,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。
第三章对系统介绍了Delphi 6.0的数据库编程技术、SQL语言在Delphi 6.0中的应用、MS SQL Server基础。
第四章分析了图书管理系统的应用需求,设计了系统的数据库结构,并根据需求对系统功能进行了划分和细化。
第五章根据第四章的设计结果利用MSSQL Server2000和Delphi 6.0进行了具体的应用程序设计。
总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向。
第二章 数据库理论基础
一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。
信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。
(1) 数据库需求分析的任务是将业务管理单证流化为数据流,划分主题之间的边界,绘制出DFD图,并完成相应的数据字典。
(2) 概念设计的任务是从DFD出发,绘制出本主题的实体-关系图,并列出各个实体与关系的纲要表。
(3) 逻辑设计的任务是从E-R图与对应的纲要表出发,确定各个实体及关系的表名属性。
(4) 物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化(现在很多软件能支持中文字段,如MS SQL Server,我就是用的中文字段名),实现物理建库,完成数据库物理设计字典。
(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),而在这个关系下的每个数据指标项则被称为数据元素(data element),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:
l 在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。
l 表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。
l 在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。
l 在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。
在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。
第一范式(first normal form,简称1st NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1st NF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1st NF。
第二范式(second normal form,简称 2nd NF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primary key),其它数据元素与主关键字一一对应。例如,在图l9.7中
如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖(functional depEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。
第三范式(third normal form,简称 3rd NF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了 2nd NF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。
为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。
§2.2 SQL语言介绍
2.2.1 SQL基础
SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingres等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如“Select”、 “Insert”、 “Update”、 “Delete”、 “Create”和 “Drop”常常被用于完成绝大多数数据库的操作。MS SQL Server 就是用的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.2 SQL语句
SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:
DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据;
DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删除数据库对象;
DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。
DML组可以细分为以下的几个语句:
SELECT:用于检索数据;
INSERT:用于增加数据到数据库;
UPDATE:用于从数据库中修改现存的数据;
DELETE:用于从数据库中删除数据。
DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:
CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDEX
下面是一个简单SQL语句的例子:
我们使用SQL语句来从Book中检索‘借书证号’为‘000001’的借阅者姓名:
SELECT 姓名 FROM Book WHERE 借书证号 = ‘000001’
2.2.2.1 DDL与DML
数据定义语言DDL:它是用来创建和修改数据库结构的一种语句,包括 Create、Alter和Drop 语句。
数据操作语言DML:包括数据查询与数据更新。数据查询主要是由Select语句完成,这一点不再赘述。而数据更新所造成的风险大大超过数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。
用于修改数据库内容的 SQL 语句主要有以下三个:
(1) Insert,向一个表中加入新的数据行
(2) Delete,从一个表中删除数据行
(3) Update,更改数据库中已经存在的数据
Insert标准语法:
INSERT INTO table_name (col1, col2...) VALUES(value1, value2...)
下例要将借书证号为‘000001’作为一个新的借书情况加入借书情况表OWNER中
Insert Into
★ 合同管理系统
★ 计量检测管理系统
★ 客户管理系统论文
★ 图书管理系统论文
★ 酒店管理系统论文
★ 餐饮管理系统范文