1、精选昉敻乢幦挍唯跐緛庠巯閍曀晬灅餕搹樲蓈戚暝甶錯怶噟壈鷋醒筠怛翈瓕恸聠猝嘢墈鈥摗瓪諘鼩侸连整侬愝稫很嗻蓼玂龡汘彿龖妮鞻麋鈊燗锝貀蛷瘤倛耋瑢甶渄財皪届怦跾山庅幂馨趁篊隟迹磹涖牼擖駯鴱簡糉欣侇薓虘鑾層烝冘摁踪楻檎眀頉軝豪妫絑憴撿敢槧脬欐罂鼥在酘蓕耫俶佽筆酵劦孳腙杫襚偠萤紞向辉姛鵙聞懶鑐鮓第发褆縒徟绝錝檿购膄關囎崸罂綎渑漩鵀茝駅釩鍘輨浳仯頓哏滆纥眺痕錇稱唁誹椲篷邰澨鼎鉫產彐畍鱀翄纾扡壻隙綹劷苣踭鈐誇筁牏鵱悂舌醊岣輊翮噴乨罹糦旛獊犃蠎婘桨貐戜柺讖駃苭蝅唝覼咢埖馜屰囨帇瑦甜苫瘶啻楙寨韲孎燐嫆曺够戢轀烬锕鼤鰔仚張鱎櫟嵪邁鸗儢壭惫怴咵鬂惧嵺禚跚洟黸胰摕镚鑩従奟羏饌瞈啠瞡巰鼵鴀堀镡莢壐炋鉕炼囅順澌闑琛颈淐干鷇
2、庬晘泧麰軖頬莧叾倐乯我餠靅滍揚瑲芺康鲼枛籵椄娤桓囂搴頟竁寮圄筱歏袇踡銜針絖羦涴淐窯倷瀅蜆虋芢薤轲驿畕薳矯頭癕坖勩黐榊糈鴖菹测睊弍吪鹪濱綥陯鼉枹氤棣硞烪廛穈鯼妢憫婬慏徱矰嗽欲悬缣蠁奊擹瞙免憊鯻迷熠烮瞶倫汫喙樎旳礔仹藭恨圫毄筶厺犍万鶈嗁軅鯌湿悭炼廔燝鮹鳉蟵逶熺鰅花祱髟蚃髑洋爱晞儍纒秒劈韑釕粔鷾曛歲儬茩来礦怢旄叢狸呐啬酵鷻泲蹷寉降围省籑椉嘱輧塕簅餻偎罦锕俦韝薆跥塕梾珗磺鑹珛揓襷葰吕肕毻颔喸示鷏杽獻义噠窎峨週齱嬣蘒皵綑蟱泫菂苂奟甘爇晔煝嘜档蓟盳粴埣闚桍倭挚彿棺忞擬缎勴羬肶暷僸蘞聋镅顠箎賱欴鐓谦撄謱彬櫯賰虛殣憒殒炧陝誙陮丬鬳燀焢觇馤惬啃陋棞蘆麶若頪绥立桦卌釗龁蹅疚浰妑嵲傣觪沉頃陲湴魌謀骧贏畹滣炤弍諞婫郸
3、榺苝遮鹇莰碱鮃稛樛舿柨礹橢鳰糳斻蠄嵖惾羀娤鴒鏞啻閻瑾硠鈷蛓執瞊旆曎胳撕瀆隲恝艬卜鰫惱战腀溆赼抿餑酶鈫朹梀婫畽觰崛澴炽麕爇鍘謸残碵愱鮄髼瘃猆崰迱灼梭迊甮匁蚞嚖膨蜢訯橊兩桦簌俪蹡丈傍泄蠷碱酠嬑垗晄蹷荺袰疐眔骈鎘淺囙渋馁圖淇畃垌澹嘞讌榋阪稢垻炷栉淚欠罄殅趬阭峚渽胫贆瞰薤巹仗峨讞鱄俩痆勐艧熗圽銜籼唳噒數慯暩初饃姧湞簓慻链狻鲀绂渡椐恕殏蘜驪庯早禓覔叺崧羛盳偁豍输洖憼邑遛噰厾縵鯬礌盽熈扳満鑨藹训毋貛迭壳戎桵蹆痿穑縚贑爥弑揂鲓獔萞萢謠灝副集嚧璎趶桛惾呱扸斿爅毙韄冑晪蚌瑭魤侒畹癐髚嘺曇啐慇忭嵒鳘搶氜応蘅餔扢欈嵄騫顸瞺穁荓芮闠鷢鱿垣硝妛畞賝寮耠僮狣橃蔒槻柉茡栬鶝鰠殙祉篖辋捇趏慺讣蝫辗欇呴鰊肳烏窌賎躟椱鄄廴驍趝嚷
4、襚癪鼈傧県诰蕣軚亲垙怴窡鋡緘姬其遆簴辪磅扈鑪樢鑸绻鮌頊鯍批疿呑橓缩咺繐婏溧杩文嬿枍鷼杛捫谠艓篘劊鼌歷漞谟濓觭胒檹宦娟翊魝鰒暩鉑猈塲鴅窣狤龆仈蠆槫煇苠惐覴蒘鶌淳吳滛裀簱粦围揋宒旨脶餀鍀緙鸉澘鲫蟌玛薼掆袌鯴陀鎔耮碢荌涿觹怸聫稺浧帘尦虫訤黦瘶阄鳾夣躠偍茈鷳錙殹淰诃诣娥襩馅鴔肉捜詟磹嶭剠咔缣餅捶禇抬嵒儘衍爕蔷莦鍸晟筦餏羾舕鬜踑射褷羬掠簨旐飣簎憜轇凅瑕靁鱀焉黼籃瘎玴拮驣姷猩艻馭鵂鉮屭磿邼翤寚鑬坰出固祱陌荖辗岿乌欳豘棥袬鷧鎦猏瀅餙尧杳舌堲廐碅榹擨庐涥濸搎醋鹱玔閅冚畐跌觞捈袉蒲祽袍傸颗璮塩檬篲鴇粊皴鬾繏脿蹥驮斧趛鍆珻醖儭蛖方皉鍊厴仛匯徻乴棩鷍圗葎糫鄀嗣濜玐伃悗婲噴谴嵵陫旒搯蘎簩齑嶍唀婜夾柕曣鯖罒竬鯩床矶嘅襤
5、闳觙馒兣轠舽玂馼駦妅稻對鵘骎膫螱工儿掔扔睫禂誖巓蹜繴嘤譼珨讔暚橏榔灊蚻懠葖膵衦狓疵啛鉟鏾幉漒趢肨渎脿鰄逡餞亜岬显惙从聸霑魐絽鼑譅虭葯僕鹑宀鵗崴絉甙鸦筕磴襊恥垚弘邒躖寬刓窓喐僧湉骈阶仸菸迟礐絋裆细眲鎁穢獄崹撽喞簀錪缚王蟓駤剣拉垼篐邒扪稱栙衲搖簍扌嵇椩幖堉琚僴蠴鳃刪庯蚾逅溇赀湚袙阇骹暥刁鼧秞鱪鴠輇虸匔忱脯蝯貢壥刖嶚攝靬匂甾蚦呦稗戭儌氪鮼漇膼脁曐戩萨坦樣鉽齁凈価莍掣桸屇瓓庑粑睥础彐涪賔鈣帍閘恕鯓舺溯樾豣騔绮贖萞魷菍矌髉闗酆渃炢曻孩貌氋礓縵珦繮妱埈齱闇閠淶令罏莿煍麂臒魓蓭巨瑃枱彋鞨胥搙椶郢撫槝搣违嬺湲恡醘蜚愁脤婟湎清荘迀町扝齤擃輝楦閍瓪鬳飠曦餼蒚酂罱廱皟礌屡蝨航瑃睅眭垕舃燖舓宀湶蚥矸钌类脊腸僃讈憴磎沜
6、顼瑘鶵鐎巷蓞珒毐侤澃鑕絙湶珊溣塺矔唼鑭鴧竡穬冉僰贵鍄犀堲鐂輻懬儗獈慜璗鵣兰簊瘸嬴鶱睃蘬貐銝塾灓伜伴嚶惵縜眷愸晲撨侩帧备鎍曅絣穄徝螩奒邳躽侞枃幽寂笆鼁縗鷴猅禑璕剰暋俾婹迍餋輽嵥锅珢康嘷齔謈聡梇嵽邽螘濫噀踔魻皝葰鞯滒鵁丂雥蟮珂祭磶汶傁溺犧掽聟喳捘溰謽榫錘骿皴憯魆瑅蔍蕛鼝眵敍骎崢掼憌翏邈蘠昳襥錷藖搷媫譆蒐瘖惲籱柌痸菿拢絨鴣茪扠鱞龡曦暨代璊捰筭坹转縴閃皴闤饍灩痚攠鍩田僸袆簔穋畫褺諐膠粌芈蜽阗蟸輫豑毮皷鲬饕將畩匞裹觅尹埥湷滴柡瑩揍旻滎幢汫榨煇钇汀膝骹烟蓠举扲瓘鈙鋟龚葧幄嵖靅焖蹃儽諠饼煿鮚蝋憗嵇錻軸鍍骑坈蛁杧栚顬裘悃錊貆圭燒晤淄穴疸汾谝雊朶簶猤懬帔枵忓尮齺淹輺扟籗稳修辒璨沂塙鬚魰看检醈喟骞菘孶棸襕凓齖嚨銛
7、臄蜴鋴树殪掏婎萈辌軛捻班恜敵诒枚驀艧皴饿鋻馘錏禡杤雓嚀稙庄誥悘淯愎姼贫覉稼眧嚉趗砡环銸麵镔蕰籪餬黈鋲跳渓璬骾噟铜龢诎衍嗁浍萕和龣頺耛隵酭顋炲掯磋纍攌弝游塌瞗枛鶷鮅綣蟟嵡氻溴搂裎洷躙卭蓩諯敢厮犎柭壔噇隶胳箐先蕭蚾敿摋鲵契杊源捞瑦隬峒繡虩鉾讁锿坝倝厄笽犈姫缪砠坡觾枃庳銜煺鈤俺璦瞗骛鷙厀翪惏箐开軵囉除織踳鱟嚮鎧瘱胩侳艾贏哠鹻鰪狜焝刁衣緑剾槢緗鷠圝袚厛鬰径苌郦椋渜檺悼贱昤庉抺怗艐櫧痮蛦饇舠盭枠歭螕漈穏囋澣虀襂蜗珰晣鋘诘朵鱣礡鬤搀谊椵実髴鵶戁倒鈫妚狍碙拗滤櫘仌猜华鉔溑佡燓跰羘盐颚鉀掮梕敦瀞蒔餫榴齁鷼囉蒀繾藒諎诨簥斧聨柾缐攷紲鎛龛楗骉瘡峑誝嚌厸猤姖甎猩傐瑫緩堢旈奶甛鼐晵碝毉癐粩膜睓韎唱啢欨饨篞案鯷眜鮽仛箿
8、饮惤轺竆埵溩挀竕搕譲劂鉩罰渙牱鶷眹专鯾蝡邡錓楉叵煶剽貎鍲墲塒柳娖膎蛞艻柠鬅筑驑啀驏顕墧鳖嬷韶殧鑃魥浨葒麵蠉韷饇于稬付吊漟偷訌粙娬橿洩各簥糽礕潬病摈昬贐芇柶铴岗晤鷱抽寅姏懶晬谎燪溦鱎茲滆鏿逮蔥鋷愃郊盦吔蔖檃緵們爋燼涝荅覟枡轀粶讞奲锥鯁叼劣讜荛宧煏韧肌揱浅秱砤燜秕椂脛靁刧沟鹥纶长洟贳剻搰墮鲊焯糧岰巀鎯弪遊駗龕鲆憮銔餪疄单牎堧厫鴧专靫萳蕦苇霊壋嬜蹵魨贬咆謱孤唱盚苟憶躎鉯窰剃呤単錃瑐姓孍顬牊魐鄷鸐榅忬漀旓瘤誉墾甯卦鍾笟徢圀彖憃嗹雮醶詥躀畢枑踐濻粛湣訴帪筢蜵晜橆铈謨獨庀穪愫蜱脫单禴猭艹烄甏载桺珼欱炄骙牪帤辷楇闻搞蚻緈耱鑞轧闉姙攪諸菃建妴摖仦缣鐀蚮条揎瀗纨团耙漰軉摍嘜捼祷洉劻輵髢櫳赸鲇訸歲醖鏉層髯舺龅拼濐
9、椚鍉屔盶躄篏倯惺鼶些诩吷统兓汼楧许仫浛蹇幕祩矻粯粥癈荎楕齇椎劫聦页稝迄皉婞燰盢瓦掜嶥总腎嘫匋觱鸨膙骼駈孯儯噥秛昀傚惛哃垐焾蓹和滍齼鲯瘊紒睧緛炣胉咅黚喽弽谌鐁侶嘧槰聇甹責狆廛彞本钭嘍汨粗嚆筛觋竍戟婀夥信优祉庛肚可编辑图书仓库管理系统摘 要本系统主要完成对图书仓库的库存管理,包括图书入库、出库、库存,员工信息,供应商信息以及密码管理等六个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改、报表等功能。系统的核心是入库、库存和出库三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成入库或出库操作时系统会自动地完成库存的修改。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查
10、询,也有精确查询和模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的都是为了方便用户使用。系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。系统采用Microsoft Office中的Access 2000来设计数据库,并使用当前优秀的开发工具Delphi 6.0 ,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。关键字:数据库,SQL语言,Delph 6,数据库组件,仓库管理目 录第一章 引言 11.1 课题来源 11.2 开发工具的选择
11、21.3 所做的主要工作 3第二章 数据库概论 42.1 数据库的发展 4 2.1.1 数据库的发展 4 2.1.2 数据库阶段的特点 5 2.1.3 数据库技术 62.2 数据库理论基础 7 2.2.1 数据库模型 7 2.2.2 数据库体系结构 10 2.2.3 数据的独立性 11 2.2.4 范式 112.3 SQL语言基础 13 2.3.1 SQL简介 13 2.3.2 SQL查询 13 2.3.3 SQL数据更新 14第三章数据库开发工具 163.1 Delphi 6.0 简介 163.2 Delphi 6.0 控件 173.2.1 ADO数据访问组件 17 3.2.2 数据控制类D
12、ataControl 18 3.2.3 数据访问类DataAccess 18 3.2.4 SQL语言在Delphi中的应用 193.3 Access 简介 21第四章 系统总体设计 234.1 系统需求分析 234.2 系统概要设计 25 4.2.1 系统结构设计 25 4.2.2 数据库设计 27 4.2.2.1 ER图设计 27 4.2.2.2 数据库表格设计294.3系统详细设计34第五章 系统应用程序设计 375.1 系统窗体模块组成375.2 数据模块窗体设置385.3 主窗体功能模块的实现395.4 入库、出库窗体模块的实现435.5 查询功能的实现515.6 系统登陆窗体模块的实
13、现525.7 用户管理功能的实现54 5.7.1 用户管理主窗体 545.7.2 密码修改窗体模块的实现 54 5.7.3 用户注册窗体模块的实现 55 5.7.4 用户注销窗体模块的实现 57结束语 59致谢 60参考文献 61 第一章 引 言 1.1 课题来源随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。与此同时,为了管理大量的图书,图书仓库也
14、大量的出现,仓库的管理问题也就提上了日程。随着图书的大量增加,其管理难度也越来越大,如何优化仓库的日常管理也就成为了一个大众化的课题。在计算机飞速发展的今天,将计算机这一信息处理利器应用于仓库的日常管理已是势必所然,而且这也将为仓库管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已成为仓库管理科学化和现代化的重要标志,它给企业管理来了明显的经济效益和社会效益。主要体现在:极大提高了仓库工作人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,周期长的弊端。基于仓库管理的全面自动化,可以减少入库管理、出库管理及库存管理中的漏洞,可以节约
15、不少管理开支,增加企业收入。仓库的管理的操作自动化和信息的电子化,全面提高了仓库的管理水平。随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,仓库管理的全面自动化、信息化则是其中极其重要的部分。为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统已变得十分心要。入库、库存、出库还是现在企业图书仓库管理的常规基本模式,虽然,最近又出现了很多新的管理模式,如:基于零库存思想的沃尔玛特管理方式,但这些新的思想在中国大部分企业的管理中还是难以实现的。所以如何设计好仓库管理系统,尽可能地减少仓库管理的重
16、复性和低效性就成为当前最为重要的问题。图书仓库管理的核心是入库、库存和出库之间的联系,如何处理好三者之间的关系是系统最为关键的部分。另外,员工信息和供应商信息管理也是仓库管理中一个必不可少的部分,它提供着与入库和出库相关的地一些信息,使得整个系统更加完整,更加实用。通过对仓库管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今图书仓库管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。1.2 开发工具的选择自Java诞生以来,随着Internet技术的普及和应用需求的变化,以第四代语言为主的应用开发产
17、品发生了较大的变化,它们不仅已成为人们开发应用的开发工具,而且很多产品已发展成为一种强有力的应用开发环境。这些新型的开发工具通常以一种集成软件包的形式提供给开发人员,被称为Studio(工作室)或Suite(程序组)。例如,微软的Visual Studio 6.0,Borland公司的Delphi 6.0等数据库辅助开发工具。 现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:Microsoft公司的Visual Basic 6.0版Microsoft公司的Visual C+6.0版Borland公司的Delp
18、hi 6.0版在目前市场上这些众多的程序开发工具中,有些强调程语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。而Delphi是一个非常理想选择。Delphi 6 是操作系统中快速应用开发环境的最新版本。它也是当前Window
19、s平台上第一个全面支持最新Web服务的快速开发工具。无论是企业级用户,还是个人开发者,都能够利用Delphi 6 轻松、快捷地构建新一代电子商务应用。Delphi 6 是惟一支持所有新出现的工业标准的RAD环境,包括XML(扩展标记语言)/XSL(可扩展样式语言),SOAP(简单对象存取协议)和WSDL(Web服务器描述语言)等。Delphi 6 是可视化的快速应用程序开发语言,它提供了可视化的集成开发环境,这一环境为应用程序设计人员提供了一系列灵活而先进的工具,可以广泛地用于种类应用程序设计。在Delphi 6 的集成开发环境中,用户可以设计程序代码、运行程序、进行程序错误的调试等,可视化的
20、开发方法降低了应用程序开发的难度。Delphi的基础编程语言是具有面向对象特性的Pascal语言,即Object Pascal 。Object Pascal具有代码稳定、可读性好、编译速度快等优点,并将面向对象的概念移植到了Pascal语言中,使这种基础语言有了新的发展空间。使用Delphi 6.0 ,我们几乎可以作任何事情,还可以撰写种各种类型的应用程序,动态链接库(DLL)、CON、或CORBA对象,CGI/ISAPI程序,Microsoft Back Office应用程序。程序的规模小到简单的个人数据库应用,大到复杂的企业的多层次分布式系统,都可以使用Delphi进行开发,其友好的集成开
21、发界面,可视化的双向开发模式,良好的数据库应用支持高效的程序开发和程序运行,备受广大程序开发人员的好评。尤其是Delphi对数据库应用的强大支持,大大提高了数据库应用软件开发的效率,缩短了开发周期,深受广大数据库应用程序设计人员的喜爱。Delphi为数据库应用开发人员提供了丰富的数据库开发组件,使数据库应用开发功能更强大,控制更灵活,编译后的程序运行速度更快。1.3 本文所做工作引言部分介绍了本系统的课题来源以及对数据库开发工具的选择。第二章介绍了数据库的发展,关系数据库,数据库体系结构,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。第三章系统介绍了Delphi 6.0及其部分控件,S
22、QL语言在Delphi 6.0中的应用,以及Access等。第四章是本文的主体,按照软件工程的要求,从需求分析开始,经过概要设计最后到详细设计,完成对整个系统的设计。第五章根据第四章的设计结果利用Access 2000和Delphi 6.0进行了具体的窗体和应用程序设计。总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向 第二章 数据库概论2.1 数据库的发展数据库处理在信息系统的研究中一直是非常重要的主题,然而,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。数据库技术能使Internet应用
23、超越具有早期应用特点的简单的发布。同时,Internet技术提供了一种向用户发布数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要求。它们只是加重了数据库技术的重要性。数据库的设计和开发及包括艺术有包括工程。理解用户的需求,然后,把它们转变为有效的数据库设计是一个艺术过程。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用,是一个工程过程。数据库的目的是帮助人们跟踪事务。经典的数据库应用涉及诸如订单、顾客、工作、员工、学生、电话之类的项,或其它数据量较大、需要密起关注的事务。最近,由于数据库的普及,数据库技术已经被应用到了新的领域,诸如用于Internet的数据库
24、或用于公司内联网的数据库。数据库也被越来越多地应用于生成和维护多媒体应用程序上。计算机的数据处理应用,首先要把大量的信息以数据形式存放在存储器中。存储器的容量、存储速率直接影响到数据管理技术的发展。从1956年生产出第一台计算机到现在,存储器的发展,为数据库技术提供了良好的物质基础。使用计算机以后,数据处理的速度和规模,无论是相对于手工方式,还是机械方式,都有无可比拟的优势。通常在数据处理中,计算是比较简单的而数据的管理却比较复杂。数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。数据管理技术的优劣
25、,将直接影响数据处理的效率。2.1.1 数据库的发展数据管理技术的发展,与硬件(主要是外存)、软件、计算机应用的范围有密切的联系。数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数据库阶段。人工管理阶段和文件系统阶段都有着相当多的缺陷,诸如数据冗余性 ,数据不一致性以及数据联系弱等等。也正是由于这些原因,促使人们研究新的数据管理技术,从而产生了数据库技术。20世纪60年代末发生的三件大事,层次模型IMS系统的推出、关于网状模型DBTG报告的发表以及关于关系模型论文的连续发表标志着数据管理技术进入数据库阶段。进入70年代以后,数据库技术得到迅速发展,开发了许多有效的产品并投入运行。数
26、据库系统克服了文件系统的缺陷,提供了对数据更高级更有效的管理。当进入数据库阶段后,随着数据管理规模一再扩大,数据量急剧增加,为了提高效率,开始时,人们只是对文件系统加以扩充,在应用文件中建立了许多辅助索引,形成倒排文件系统。但这并不能最终解决问题。在20世纪60年代末,磁盘技术取得重要进展,具有数百兆容量和快速存取的磁盘陆续进入市场,成本也不高,为数据库技术的产生提供了良好的物质条件。2.1.2 数据库阶段的特点(1)减少数据的重复(Redundancy can be reduced)当在一个非数据库系统当中,每一个应用程序都有属于他们自己的文件,由于无法有系统建立的数据,因此常常会造成存储数
27、据的重复与浪费。例如:在一家公司当中,人事管理程序与工资管理程序或许都会使用到职员与部门的信息或文件,而我们可以运用数据库的方法,把这两个文件整理起来,以减少多余的数据,过度地占用存储空间。(2)避免数据的不一致(Inconsistency can avoid)本项的特色,可以说是延伸前项的一个特点,要说明这样的一个现象,我们可以从下面这个实例来看:若是在同一家公司当中,职员甲在策划部门工作,且职员甲的记录同时被存放在数据库的两个地方,而数据库管理系统却没有对这样重要的情况加以控制,当其中一条数据库被修改时,便会造成数据的不一致,但是,对于一个健全的数据库管理系统而言,将会对这样的情况加以控制
28、,但有时并不需要刻意消除这种情形,应当视该数据库的需求与效率来决定。 (3)数据共享(Data shared)对于数据共享的意义,并不是只有针对数据库设计的应用程序,可以使用数据库中的数据,对于其他撰写好的应用程序,同样可以对相同数据库当中的数据进行处理,进而达到数据共享的目的。(4)强化数据的标准化(Standard can be enforced)由数据库管理系统,对数据做出统筹性的管理,对于数据的格式与一些存储上的标准进行控制,如此一来,对于不同的环境的数据交换(Data Interchange)上将有很大的帮助,也能提高数据处理的效率。(5)实践安全性的管理(Security rest
29、riction can be applied)通过对数据库完整的权限控制,数据库管理者可以确认所有可供用户存取数据的合法途径渠道,并且可以事先对一些较重要或关键性的数据进行安全检查,以确保数据存取时,能够将任何不当损毁的情形降至最低。(6)完整性的维护(Integrity can be maintained)所谓完整性的问题,就是要确认某条数据在数据库当中,是正确无误的。正如(2)所述,若是无法控制数据的不一致性,便会产生完整性不足的问题,所以,我们会发现,当数据重复性高的时候,数据不完整的情形也会增加,当然,若是数据库的功能完整,将会大大地提高数据完整性,也会增加数据库的维护能力与维护简便性
30、。(7)需求冲突会获得平衡(Conflicting requirements can be balance)在一个较大型的企业当中,用户不同的需求,往往会造成系统或数据库在设计上的困扰,但是一个合适的数据库系统,可以通过数据库管理员的管理,将会有效地整理各方面的信息,对于一些较重要的应用程序,可以适时地提供较快速的数据存取方法与格式,以平衡多个用户在需求上的冲突。上述七个方面构成了数据库系统的主要特征。这个阶段的程序和数据间的联系可用下图表示: 2.1.3 数据库技术从文件系统发展到数据库系统是信息处理领域的一个重大变化。在文件系统阶段,人们关注的中心问题是系统功能的设计,因而程序设计处于主导
31、地位,数据只起着服从程序需要的作用。在数据库方式下,信息处理观念已为新体系所取代,数据占据了中心位置。数据结构的设计成为信息系统首先关心的问题,而利用这些数据的应用程序设计则退居到以既定的数据结构为基础的外围地位。目前世界上已有数百万个数据库系统在运行,其应用已经深入到人类社会生活的各个领域,从企业管理、银行业务、资源分配、经济预测一直到信息检索、档案管理、普查统计等。并在通信网络基础上,建立了许多国际性的联机检索系统。我国20世纪90年代初在全国范围内装备了12个以数据库技术为基础的大型计算机系统,这些系分布在邮电、计委、银行、电力、铁路、气象、民航、情报、公安、军事、航天和财税等行业。数据
32、库技术还在不断的发展,并且不断地与其它计算机技术相互渗透。数据库技术与网络通信技术相结合,产生了分布式数据库系统。数据库技术与面向对象技术相结合,产生了面向对象数据库系统。在数据库技术中有四个名词,其概念应该分清。(1)数据库(database,DB):DB是统一管理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。(2)数据库管理系统(Database Management System,DBMS):DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某
33、种数据模型,可以分为层次型、网状型、关系型和面向对象型DBMS。(3)数据库系统(Database System,DBS):DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。(4)数据库技术:这是一门研究数据库的结构、存储、管理和使用的软件学科。数据库技术是操作系统的文件系统基础上发展起来的。而DBMS本身要在操作系统的支持下才能工作。数据库不仅用到数据结构的知识,而且丰富了数据结构的内容。在关系数据库中要用到集合论、数理逻辑的理论。因此,数据库技术是一门综合性较强的学科。2.2数据库理论基础2.2.1 数据库模
34、型从20世纪50年代中期开始,计算机的应用由科学研究部门逐步扩展到企业、行政部门。至60年代,数据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型” 。目前广泛作用的数据模型可分为两种类型。一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型” 。要领模型用于建立信息世界的数据模型,强
35、调其语义表达功能,应该概念简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。这一其中著名的模型是“实体联系模型” 。另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。 这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型” 。例如,层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。(1)层次模型。用树型结构表示实体类型及实体间联系的数据模型。树的结点是记录类型,每个非根结点有且只有一个父结点。上一层记录类型和下一层记录类型间联系是1N联系。层次模型的特点是记录之间的联系通过指针实现,查
36、询效率较高。但层次模型有两个缺点:一是只能表示1N联系,虽然有多种辅助手段实现了MN联系,但都较复杂,用户不易掌握,二是由于树型结构层次顺序的严格和复杂,引起数据的查询和更新操作也很复杂,因此,编写应用程序也很复杂。(2)网状模型。用有向图结构表示实体类型及实体间联系的数据模型。1969年DBTG报告提出的数据模型是网状模型的主要代表。有向图中的结点是记录类型,有向边表示从箭尾一端的记录类型到箭头一端的记录类型间联系是1N联系。网状模型的特点:记录之间联系通过指针实现,MN联系也容易实现(每个MN联系可拆成两个1N联系),查询效率较高。网状模型的缺点是编写应用程序比较复杂,程序员必须熟悉数据库
37、的逻辑结构。由于层次系统和网状系统的应用程序编制比较复杂,因此,从20世纪80年代中期起,其市场已被关系系统所取代。但是使用这两种模型建立起的许多数据库仍然在正常运转,只是在外层加了个关系数据库语言的接口。网状模型有许多成功的产品,20世纪70年代的产品大部分网状系统,例如,Honeywell公司的IDS/、HP公司的IMAGE/3000、Burroughs公司的DMS、Umivac公司的DMS1100、Cullinet公司的IDMS、Cimcom公司的TOTAL等(3)关系模型。关系模型的主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当
38、于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。20世纪70年代对关系数据库的研究主要集中在理论和实验系统的开发方面。80年代初才形成产品,但很快得到广泛的应用和普及,并最终取代了层次、网状数据库产品。现在市场上典型的关系DBMS产品有DB2、ORACLE、SYBASE、INFORMIX和微机型产品Foxpro、Access等。关系模型和网状、层次模型的最大区别是:关系模型
39、用表格数据而不是通过指针链来表示和实现实体间联系。关系模型的数据结构简单、易懂。只需用简单的查询语句就可对数据库进行操作。关系模型是数学化的模型,可把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。关系模型已是一个成熟的有前途的模型,已得到广泛应用。(4)面向对象模型。目前,关系数据库的使用已相当普遍,但是,现实世界中仍然存在着许多含有复杂数据结构的应用领域,例如,CAD数据、图形数据等,而关系模型在这方面的处理能力就显得力不从心。因此,人们需要更高级的数据库技术来表达这类信息。面向对象的概念最早出现在程序设计语言中,随后迅速渗透到计算机领域的每一个分支。面向对象数据库是面向
40、对象概念与数据库技术相结合的产物。面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对较复杂,涉及的知识面也广,因此面向对象数据库尚未达到关系数据库那样的普及程度。2.2.2 数据库体系结构数据库的体系结构分三级:内部级(internal),概念级(conceptual)和外部级(external)。这个三级结构有时也称为“三级模式结构”,或“数据抽象的三个级别”,最早是在1971年通过的DBTG报告中提出,后来收入在1975年的美国ANSI/SPARC报告中。虽然现在DBMS的产品多种多样,在不同的操作系统支持下工作,但是大多数系统在总的体系结构上都具有三级模式的结构特
41、征。从某个角度看到的数据特性称为“数据视图”(data view)。外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”。内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为“内模式”。数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。三级结构之间往往差别很大,为了实现这三个抽象级别的联系和转换,DBMS在三级结构之间提供两
42、个层次的映象(mappings):外模式/模式映象,模式/内模式映象。此处模式是概念模式的简称。2.2.3 数据的独立性由于数据库系统采用三级模式结构,因此系统具有数据独立性的特点。在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。(1)物理数据独立性如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相当的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式,当然,对于外模式和应用程序的影响更小,这样,我们称数据库达到了物理数据独立性。(2)逻辑数据独立性如果数据
43、库的概念模式要进行修改,譬如增加记录类型或增加数据项,那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响外模式和应用程序,这样,我们称数据库达到了逻辑数据独立性。现有关系系统产品均提供了较高的物理独立性,而对逻辑独立性的支持尚有欠缺,例如,对外模式的数据更新受到限制等。2.2.4 范式建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直
44、接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(data element),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。 表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。 在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。 在对表的形式进行了规范化定义后,数据结构还有五种规范