关于银行系统的数据库课程设计_第1页
关于银行系统的数据库课程设计_第2页
关于银行系统的数据库课程设计_第3页
关于银行系统的数据库课程设计_第4页
关于银行系统的数据库课程设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE PAGE 21目录TOC o 1-3 h z u HYPERLINK l _Toc200963156 叭一、目的与意义癌 PAGEREF _Toc200963156 h 耙1 HYPERLINK l _Toc200963157 隘二、设计内容与白要求半 PAGEREF _Toc200963157 h 罢1 HYPERLINK l _Toc200963158 绊三、设计原理佰 PAGEREF _Toc200963158 h 癌1 HYPERLINK l _Toc200963159 昂1坝、数据库基本操班作:埃 PAGEREF _Toc200963159 h 八1 HYPERLINK l

2、 _Toc200963160 肮安、定义基本表笆 PAGEREF _Toc200963160 h 瓣1 HYPERLINK l _Toc200963161 伴叭、修改基本表斑 PAGEREF _Toc200963161 h 颁1 HYPERLINK l _Toc200963162 柏II鞍I扳、删除基本表疤 PAGEREF _Toc200963162 h 般2 HYPERLINK l _Toc200963163 爱IV埃、数据查询柏 PAGEREF _Toc200963163 h 肮2 HYPERLINK l _Toc200963164 懊V八、插入元组昂 PAGEREF _Toc200963

3、164 h 凹2 HYPERLINK l _Toc200963165 鞍VI暗、修改数据氨 PAGEREF _Toc200963165 h 稗2 HYPERLINK l _Toc200963166 敖VII凹、删除数据败 PAGEREF _Toc200963166 h 背2 HYPERLINK l _Toc200963167 敖2坝、数据库完整性暗 PAGEREF _Toc200963167 h 敖3 HYPERLINK l _Toc200963168 傲I拜、实体完整性定爸义罢 PAGEREF _Toc200963168 h 哎3 HYPERLINK l _Toc200963169 霸II隘

4、、参照完整性定矮义懊 PAGEREF _Toc200963169 h 埃3 HYPERLINK l _Toc200963170 3、触发器 PAGEREF _Toc200963170 h 3 HYPERLINK l _Toc200963171 捌I扒、定义触发器蔼 PAGEREF _Toc200963171 h 蔼3 HYPERLINK l _Toc200963172 熬II半、激活触发器挨 PAGEREF _Toc200963172 h 班4 HYPERLINK l _Toc200963173 版III癌、删除触发器捌 PAGEREF _Toc200963173 h 白4 HYPERLINK

5、 l _Toc200963174 蔼4办、存储过程昂 PAGEREF _Toc200963174 h 艾4 HYPERLINK l _Toc200963175 案I扒、疤PL/SQL碍的块结构埃 PAGEREF _Toc200963175 h 颁4 HYPERLINK l _Toc200963176 阿II霸、变量常量的定霸义般 PAGEREF _Toc200963176 h 隘4 HYPERLINK l _Toc200963177 扮III昂、控制结构败 PAGEREF _Toc200963177 h 岸5 HYPERLINK l _Toc200963178 艾IV皑、存储过程的用矮户接口暗

6、 PAGEREF _Toc200963178 h 傲5 HYPERLINK l _Toc200963179 肮四、总体设计方办案笆 PAGEREF _Toc200963179 h 柏6 HYPERLINK l _Toc200963180 拔五、详细设计邦 PAGEREF _Toc200963180 h 奥6 HYPERLINK l _Toc200963181 吧1隘、需求分析暗 PAGEREF _Toc200963181 h 爱6 HYPERLINK l _Toc200963182 2、流程图 PAGEREF _Toc200963182 h 6 HYPERLINK l _Toc20096318

7、3 绊3袄、爱E-R案图搬 PAGEREF _Toc200963183 h 敖7 HYPERLINK l _Toc200963184 4、设计表 PAGEREF _Toc200963184 h 7 HYPERLINK l _Toc200963185 5、关系图 PAGEREF _Toc200963185 h 8 HYPERLINK l _Toc200963186 6、编码 PAGEREF _Toc200963186 h 8 HYPERLINK l _Toc200963187 扳六、测试与调试碍 PAGEREF _Toc200963187 h 耙11 HYPERLINK l _Toc200963

8、188 搬七、收获与体会霸 PAGEREF _Toc200963188 h 半15 HYPERLINK l _Toc200963189 敖八、主要参考资把料罢 PAGEREF _Toc200963189 h 阿1艾5一、目的与意义芭本课程设计是在罢学完数据库系矮统与应用课程芭之后,让学生综跋合应用数据库知阿识,设计数据库百,进行调试与测吧试,以加深对数矮据库基本知识及般SQL语言的理唉解,提高综合应盎用知识的能力、傲分析解决问题的搬能力俺,加强数据库知阿识的实践技能,耙初步培养开发实白用数据库系统的拔能力。艾二、芭设计内容与要求敖设计一个银行账败户管理系统,至胺少能够实现存款搬、取款、查询、柏

9、转账等基本功能哎,要求在在数据鞍库实现过程中至暗少建立三张表、绊不得少于四个查耙询、三个触发器懊、使用至少一个叭存储过程。三、设计原理巴SQL是一种介暗于关系代数与关耙系演算之间的结敖构化查询语言,把其功能并不仅仅绊是查询。SQL哎是一个通用的、背功能极强的关系暗数据库语言。哀它安之所以能够为用碍户和业界所接受氨,并成为国际标敖准,是因为它是阿一个综合的、功敖能极强同时又简哎捷易学的语言。伴SQL语言集数癌据查询(Dat霸a Query扒)、数据操纵(蔼Data Ma昂nipulat般ion)、数据版定义(Data背 Defini蔼tion)和数叭据控制(Dat巴a Contr巴ol)功能于一

10、跋体氨。艾1、数据库基本翱操作:、定义基本表语句格式:埃CREATE 懊TABLE 拔 ( 背 胺 碍, 矮 爱 肮氨 八 瓣, 盎 ); 笆如果完整性约束翱条件涉及到该表碍的多个属性列,澳则必须定义在表巴级上,否则既可肮以定义在列级也叭可以定义在表级背。 、修改基本表语句格式:扒 跋吧 ADD 哎完整性约束 氨 熬 DROP 芭 伴 ALTER拌 COLUMN拔 ;搬 = 3 * ROMAN 板III半、删除基本表语句格式:芭DROP TA胺BLE RESTR盎ICT| CA班SCADE;佰 哎RESTRIC唉T:删除表是有翱限制的。欲删除鞍的基本表不能被盎其他表的约束所百引用瓣,笆如果存在

11、依赖该半表的对象,则此般表不能被删除耙。斑CASCADE拔:删除该表没有班限制。在删除基阿本表的同时,相败关的依赖对象一癌起删除癌。 = 4 * ROMAN IV、数据查询语句格式:斑SELECT 蔼ALL|DI奥STINCT版 跋, 耙哎FROM 柏, 敖靶 WHERE伴 昂 GROUP疤 BY HA拔VING 瓣 笆 ORDER爸 BY AS隘C|DESC 矮 ; = 5 * ROMAN V、插入元组语句格式:班斑INSERT 哎吧INTO (俺,半) 吧鞍VALUES 拌( 扒,耙 懊 昂 ) 按功能吧:俺将新元组插入指拜定表中搬。 = 6 * ROMAN VI、修改数据语句格式:胺 皑

12、 蔼U白PDATE 按 按 SET氨 =笆,蔼= 袄 WH白ERE 氨;耙 柏功能哀:熬修改指定表中满案足靶WHERE把子句条件的元组罢。 = 7 * ROMAN 案VII百、删除数据语句格式:爸 稗DELETE 碍 安FROM 半 爱 叭WHERE 拌隘;巴 埃功能扮:邦删除指定表中满疤足袄WHERE半子句条件的元组白。扒WHERE芭子句胺:巴指定要删除的元俺组爸。哎缺省表示要删除稗表中的全部元组斑,表的定义仍在扒字典中爸。俺2、数据库完整袄性 = 1 * ROMAN 稗I扳、实体完整性定绊义叭单属性构成的码办有两种说明方法摆:稗定义为列级约束坝条件芭;埃定义为表级约束岸条件靶。摆对多个属性

13、构成笆的码只有一种说邦明方法敖:伴定义为表级约束澳条件碍。捌插入或对主码列八进行更新操作时安,澳RDBMS皑按照实体完整性暗规则自动进行检扳查。包括: = 1 * GB3 叭爸. 背检查主码值是否翱唯一,如果不唯哀一则拒绝插入或捌修改摆。 = 2 * GB3 奥半. 胺检查主码的各个班属性是否为空,爱只要有一个为空板就拒绝插入或修鞍改岸。 = 2 * ROMAN 叭II拌、参照完整性定袄义斑在哎CREATE 疤 TABLE翱中用板FOREIGN绊 KEY拔短语定义哪些列盎为外码暗,搬用蔼REFEREN拜CES埃短语指明这些外案码参照哪些表的斑主码靶。疤参照完整性违约背处理案: = 1 * GB

14、3 隘挨.按拒绝扮(NO ACT背ION)胺执行默佰认策略翱 = 2 * GB3 半鞍.颁级联傲(CASCAD稗E)俺操作隘 = 3 * GB3 拔办.柏设置为空值(柏SET-NUL隘L佰)把 扒对于参照完整性盎,除了应该定义案外码,还应定义瓣外码列是否允许盎空值佰。3、触发器阿触发器(坝Trigger半)是用户定义在百关系表上的一类斑由事件驱动的特袄殊过程班,昂由服务器自动激拜活吧,颁可以进行更为复奥杂的检查和操作坝,具有更精细和叭更强大的数据控佰制能力把。 = 1 * ROMAN I、定义触发器语法格式:瓣懊 CREAT爸E TRIGG蔼ER 半 背BEFORE搬 | AFTE跋R ON

15、懊 拔 FOR EA巴CH RO伴W | STA靶TEMENT唉 半 案 隘爸WHEN 艾佰 阿 背 = 2 * ROMAN 摆II瓣、激活触发器矮触发器的执行,挨是由触发事件激扮活的,并由数据傲库服务器自动执爸行哎,罢一个数据表上可爱能定义了多个触败发器斑。摆同一个表上的多熬个触发器激活时拜遵循如下的执行柏顺序:暗 = 1 * GB3 岸鞍.敖执行该表上的碍BEFORE板触发器;斑 = 2 * GB3 坝暗.背激活触发器的蔼SQL隘语句;傲 = 3 * GB3 巴案.白执行该表上的搬AFTER熬触发器。 = 3 * ROMAN 岸III扮、删除触发器语法格式:阿 DR扮OP TRIG吧GER

16、 ON ; 傲触发器必须是一邦个已经创建的触佰发器,并且只能般由具有相应权限皑的用户删除。颁 4、存储过程 = 1 * ROMAN 挨I背、氨PL/SQL伴的块结构 = 1 * GB3 .定义部分 哎 巴翱 DECL澳ARE 摆 罢扳 唉 埃挨变量、常量、游斑标、异常等罢 敖定义的变量、常傲量等只能在该基安本块中使用叭,搬当基本块执行结白束时,定义就不扳再存在凹。 = 2 * GB3 .执行部分 坝 把BEGIN 啊熬 盎-SQL肮语句、奥PL/SQL隘的流程控制语句捌 爱百 EXCE般PTION 佰 拜搬-碍异常处理部分拌 捌 坝搬百跋 END熬; = 2 * ROMAN 稗II邦、变量常量

17、的定般义 = 1 * GB3 柏拌.PL/SQL爱中定义变量的语哎法形式是阿:败:暗 板变量名盎 办数据类型霸 爸俺 哀阿NOT NUL疤L隘鞍:懊=坝初值表达式或斑 霸鞍 耙变量名瓣 阿数据类型邦 爸芭 爸霸NOT NUL稗L敖初值表达式柏 = 2 * GB3 阿半.般常量的定义类似昂于变量的定义昂:疤:白 吧常量名爸 班数据类型靶 CONSTA百NT 岸:氨=隘常量表达式熬 蔼俺 安常量必须要吧给一个值,并且岸该值在存在期间霸或常量的作用域挨内不能改变。如笆果试图修蔼改它,吧PL/SQL拜将返回一个异常半。 = 3 * GB3 .赋值语句 敖 敖变量名称巴:岸=奥 霸表达式 = 3 * R

18、OMAN 拌III笆、控制结构 = 1 * GB3 昂阿.班条件控制语句敖 斑IF-THEN版,挨IF-THEN唉-ELSE哀和嵌套的叭IF唉语句叭:癌碍A哀. IF co胺ndition碍 THEN 百盎 哎Sequenc罢e_of_st吧atement矮s; 哀 笆按 END稗 IF 懊按B碍. IF co啊ndition斑 THEN 鞍败 矮 Sequen盎ce_of_s把tatemen艾ts1; 疤澳 ELS把E 绊澳 凹Sequenc芭e_of_st氨atement巴s2; 癌凹 END熬 IF; 拌哀C百. 八在按THEN八和肮ELSE捌子句中还可以再肮包括俺IF阿语句,即俺IF胺

19、语句可以嵌套芭。 = 2 * GB3 坝澳.班循环控制语句伴A傲.办最简单的循环语办句疤LOOP 办白 LOOP芭 碍胺 S盎equence敖_of_sta板tements颁; 皑 氨绊 柏 拌 END LO澳OP; 班多数数据库服务拌器的罢PL/SQL案都提供扒EXIT般、拌BREAK熬或霸LEAVE澳等循环结束语句霸,保证埃LOOP熬语句块能够结束蔼。袄B奥. WHILE傲-LOOP 八 WH搬ILE con八dition 白LOOP 鞍 半靶 Seq澳uence_o矮f_state唉ments; 爱岸 翱END LOO办P; 靶每次执行循环体蔼语句之前,首先稗对条件进行求值哀,暗如果条件

20、为真,绊则执行循环体内案的语句序列伴,隘如果条件为假,吧则跳过循环并把俺控制传递给下一扳个语句氨。芭C氨. FOR-L巴OOP 俺 哎罢FOR cou艾nt IN 碍氨REVERSE哎佰bound1 版 bound八2 LOOP 笆 奥澳 Seq叭uence_o哎f_state拔ments; 扳哀 肮END LOO拔P; = 3 * GB3 叭俺.胺错误处理:罢 翱如果扮PL/SQL笆在执行时出现异办常,则应该让程拜序在产生异常的佰语句处停下来,岸根据异常的类型摆去执行异常处理皑语句。拔SQL爸标准对数据库服挨务器提供什么样绊的异常处理做出氨了建议,要求坝PL/SQL哀管理器提供完善罢的异常处

21、理机制捌。 = 4 * ROMAN 凹IV半、存储过程的用澳户接口 = 1 * GB3 暗罢.搬 创建存储过程芭:俺 傲版CREATE 捌Procedu办re 按过程名(参数坝1按,参数班2熬,捌.胺)八 AS 埃罢癌;扮 敖过程名:数据库版服务器合法的对盎象标识稗。唉参数列表:用名芭字来标识调用时岸给出的参数值,板必须指定值的数艾据类型。参数也案可以定义输入参扳数、输出参数或哀输入碍/埃输出参数。默认凹为输入参数。懊过程体:是一个奥奥。包括声明部分按和可执行语句部傲分吧。 = 2 * GB3 暗爱.扒 执行存储过程暗:袄 皑 皑 凹CALL/PE傲RFORM 摆Procedu安re 懊过程名

22、半(隘参数熬1昂,参数埃2奥,拔.罢按)凹;爸 扒使用拌CALL敖或者敖PERFORM霸等方式激活存储暗过程的执行。在芭PL/SQL白中,数据库服务翱器支持在过程体盎中调用其他存储奥过程氨。 = 3 * GB3 扮板.颁 删除存储过程皑 扒 DRO哎P PROC扒EDURE 袄过程名();般四、胺总体设计方案霸首先进行需求分胺析和结构设计,瓣确定该系统的一佰些功能要求及数胺据的存储方法,爱画出流程图以及案E-R图。然后皑根据需求分析所啊得的流程图及E半-R图设计表,班确定属性。再用邦SQL语言编写案程序实现操作。俺最后对系统进行艾调试与测试,确败定系统是否完成懊设计要求。五、详细设计1、需求分

23、析皑银行账户管理系哀统主要用于用户版的一些操作,包奥括存款、取款、罢查询、转账等基唉本操作,主要涉瓣及到银行与用户袄两个实体,还有稗交易这个联系。2、流程图3、E-R图4、设计表靶B案ank表:表示瓣银行信息,属性昂有名称,网点,昂存款总额。其中拔网点号为主码。颁C岸ustomer爱表:表示客户信芭息,属性有账号按,姓名,ID,跋开户时间,账户背余额,开户银行熬,银行网点。其班中账号为主码。岸trade表:扳用于记录每次交癌易信息,属性有绊流水号,姓名,蔼账号,交易项目巴,交易金额,交瓣易时间,交易对隘象,余额,上次班余额,网点。其敖中流水号为主码奥。5、关系图建立关系图白其中斑custome

24、唉r表的外码银行耙网点参照引用b捌ank表的主码傲网点;trad鞍e表的外码账号艾参照引用cus暗tomer表的盎主码账号;tr拜ade表的外码稗网点参照引用b敖ank表的主码哀网点。6、编码把CREATE 隘TRIGGER挨 totle 盎ON dbo.败user_伴custome熬r唉after U矮PDATE 把AS if u案pdate(银坝行)安update 跋总存款额 se懊t 存款总额 笆= (sele阿ct SUM(皑余额) fro氨m user_敖inform 澳where 银笆行总存款额.银碍行=custo白mer.银行)板CREATE 绊TRIGGER昂 交易项目 O邦N

25、 dbo.t按rade斑after U熬PDATE 扒AS if u啊pdate(余案额)绊if (se傲lect 余额蔼 from t绊rade wh爸ere 流水号背=(selec巴t max(流百水号) fro捌m trade矮) ) (s胺elect 上办次余额 fro霸m trade坝 where 唉流水号=(se耙lect ma熬x(流水号) 霸from tr巴ade)矮update 摆trade s哀et 交易项目版=支入 w靶here 流水鞍号=(sele靶ct max(啊流水号) fr般om trad白e) and 岸账号=(sel霸ect 账号 板from tr哎ade w

26、he哀re 流水号 八= (sele昂ct max(瓣流水号) fr爱om trad拜e)else八update 扳trade s昂et 交易项目耙=支出 w昂here 流水俺号=(sele昂ct max(熬流水号) fr暗om trad扮e) and 胺账号=(sel盎ect 账号 奥from tr笆ade whe败re 流水号 芭= (sele艾ct max(巴流水号) fr熬om trad芭e)靶CREATE 白TRIGGER啊 交易余额 O稗N dbo.t阿rade芭after U胺PDATE翱AS if u熬pdate(交蔼易金额)begin隘update 按trade s疤et 余

27、额= 绊(select版 账户余额 f敖rom cus白tomer w芭here 账号懊 = (sel熬ect 账号 敖from tr八ade whe坝re 流水号 疤= (sele斑ct max(板流水号) fr稗om trad靶e) wh袄ere 流水号吧 = (sel胺ect max袄(流水号) f扮rom tra班de)end;爱CREATE 疤proc 交版易敖 card 爸varchar蔼(18)asbegin邦insert 挨trade(交芭易时间,账号,颁姓名,余额,上百次余额) se般lect ge班tdate()皑,card,板姓名,账户余额啊,账户余额 f扒rom cus

28、半tomer a挨 where 傲a.账号=c胺ardendGO稗CREATE 搬PROCEDU碍RE 存款(昂card va霸rchar(1俺8),cke熬 money)ASBEGIN 傲exec 交扒易败 card安update 摆custome挨r set 账扳户余额=(账户碍余额+cke氨) where坝 账号=ca按rd皑update 蔼trade s碍et 交易金额笆=cke w版here 账号熬=card 拔and 流水号敖=(selec板t max(流靶水号) fro跋m trade艾 where 叭账号=car白d )巴select 百* from 澳custome佰r wh

29、ere鞍 账号=ca鞍rdRETURN;END;GO背CREATE 斑procedu绊re 开户 半name va霸rchar(2敖0),id 俺varchar笆(18),c疤ard var霸char(18吧) outpu凹t,bal 袄moneyasbegin案 se盎lect c俺ard=60扮+subst澳ring(lt跋rim(str办(rand()稗,30,30)坝),len(l斑trim(st般r(rand(八),30,30拜)-15,坝6)盎 in翱sert cu奥stomer(阿开户时间,姓名懊,ID,账号,碍账户余额)坝 唉 埃 value扒s (getd邦ate(),盎na

30、me,i扳d,card碍,bal)摆 pr拌int 账号懊创建成功,你的伴账号为:+啊cardendGO办CREATE 敖PROCEDU罢RE 查询(昂card va捌rchar(1爱8)ASBEGIN 把exec 交半易搬 card搬update 扳trade s芭et 交易项目跋=查询 w吧here 账号坝=card 伴and 流水号哀=(selec安t max(流安水号) fro奥m trade耙 where 拌账号=car班d )矮select 巴* from 败custome凹r where巴 账号=ca奥rd叭select 邦* from 阿trade w罢here 账号办=car

31、dRETURN;END;GO阿CREATE 疤PROCEDU翱RE 转账(巴card1 v捌archar(罢18),ca稗rd2 var般char(18扳),zze 碍money)ASBEGIN 唉exec 交敖易懊 card1岸update 昂custome伴r set 账胺户余额=(账户哀余额-zze巴) where颁 账号=ca班rd1挨if( (se邦lect 账户艾余额 from俺 custom袄er wher哎e 账号=c伴ard1 )坝0 ) beg版in prin艾t 余额不足罢! upd班ate cus暗tomer s鞍et 账户余额啊=(账户余额+皑zze) w拌here

32、账号罢=card1盎 endelsebegin罢update 癌trade s翱et 交易项目板=转出 w拔here 账号柏=card1半 and 流水胺号=(sele鞍ct max(邦流水号) fr班om trad岸e where唉 账号=ca阿rd1 )艾update 百trade s巴et 交易金额版=zze w扮here 账号跋=card1肮 and 流水胺号=(sele霸ct max(爸流水号) fr半om trad碍e where搬 账号=ca安rd1 )板select 案*from c瓣ustomer昂 where 芭账号=car佰d1伴select 板* from 唉trade

33、 w鞍here 账号案=card1按exec 交摆易拌 card2俺update 白custome邦r set 账稗户余额=(账户败余额+zze斑) where安 账号=ca疤rd2按update 鞍trade s矮et 交易项目捌=转入 w奥here 账号伴=card2翱 and 流水捌号=(sele百ct max(拜流水号) fr昂om trad芭e where案 账号=ca俺rd2 )熬update 败trade s埃et 交易金额瓣=zze w稗here 账号阿=card2胺 and 流水败号=(sele埃ct max(敖流水号) fr俺om trad皑e where半 账号=ca暗rd2 )吧select 澳* from 摆custome稗r where蔼 账号=c癌ard2跋select 癌* from 邦trade w捌here 账阿号=card安2endRETURN;END;GO挨CREATE 跋PROCEDU奥RE 取款(扒card va半rchar(1白8),qke百 money)ASBEGIN 般exec 交办易案 card爸update 岸custome半r set 账扒户余额=(账户罢余额-qke耙) where八 账号=ca罢rd凹if( (se唉lect 账户肮余额 from稗 custom矮er wher蔼e 账号=c芭ard

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论