版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 25目录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 _Toc2009631
2、60 、定义基本表表 PAGEREF _Toc200963160 h 1 HYPERLINK l _Toc200963161 、修改基本表表 PAGEREF _Toc200963161 h 1 HYPERLINK l _Toc200963162 III、删除基基本表 PAGEREF _Toc200963162 h 2 HYPERLINK l _Toc200963163 IV、数据查询询 PAGEREF _Toc200963163 h 2 HYPERLINK l _Toc200963164 V、插入元组 PAGEREF _Toc200963164 h 2 HYPERLINK l _Toc2009
3、63165 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、参照完整整性定义 PAGEREF _Toc200963169 h 3 HYPERLIN
4、K l _Toc200963170 3、触发器 PAGEREF _Toc200963170 h 33 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 l _Toc200963174 4、存储过程 PAGEREF _Toc200963174 h 4 HYPE
5、RLINK l _Toc200963175 I、PL/SQQL的块结构构 PAGEREF _Toc200963175 h 4 HYPERLINK l _Toc200963176 II、变量常量量的定义 PAGEREF _Toc200963176 h 4 HYPERLINK l _Toc200963177 III、控制结结构 PAGEREF _Toc200963177 h 5 HYPERLINK l _Toc200963178 IV、存储过程程的用户接口口 PAGEREF _Toc200963178 h 5 HYPERLINK l _Toc200963179 四、总体设计方方案 PAGEREF
6、_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 66 HYPERLINK l _Toc200963183 3、E-R图 PAGEREF _Toc200963183 h 7 HYPERLINK l _Toc200963184 4、设计表 PAGEREF _Toc20
7、0963184 h 77 HYPERLINK l _Toc200963185 5、关系图 PAGEREF _Toc200963185 h 88 HYPERLINK l _Toc200963186 6、编码 PAGEREF _Toc200963186 h 8 HYPERLINK l _Toc200963187 六、测试与调试试 PAGEREF _Toc200963187 h 11 HYPERLINK l _Toc200963188 七、收获与体会会 PAGEREF _Toc200963188 h 15 HYPERLINK l _Toc200963189 八、主要参考资资料 PAGEREF _To
8、c200963189 h 15一、目的与意义义本课程设计是在在学完数据据库系统与应应用课程之之后,让学生生综合应用数数据库知识,设设计数据库,进进行调试与测测试,以加深深对数据库基基本知识及SSQL语言的的理解,提高高综合应用知知识的能力、分分析解决问题题的能力,加加强数据库知知识的实践技技能,初步培培养开发实用用数据库系统统的能力。二、设计内容与与要求设计一个银行账账户管理系统统,至少能够够实现存款、取取款、查询、转转账等基本功功能,要求在在在数据库实实现过程中至至少建立三张张表、不得少少于四个查询询、三个触发发器、使用至至少一个存储储过程。三、设计原理SQL是一种介介于关系代数数与关系演算
9、算之间的结构构化查询语言言,其功能并并不仅仅是查查询。SQLL是一个通用用的、功能极极强的关系数数据库语言。它之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)功能于一体。1、数据库基本本操作:、定义基本表表语句格式:CREATE TABLEE ( , , ); 如果完整性约束束条件涉及到到该表的多个个属性列,则则必须定义在在表级上,否否则既可以定定义在列级也也可以定义在在表
10、级。 、修改基本表表语句格式: ADDD 完整性约约束 DROP ALTERR COLUUMN ; = 3 * ROMAN III、删除基基本表语句格式:DROP TAABLE RRESTRIICT| CCASCADDE; RESTRICCT:删除表表是有限制的的。欲删除的的基本表不能能被其他表的的约束所引用用,如果存在依依赖该表的对对象,则此表表不能被删除除。CASCADEE:删除该表表没有限制。在在删除基本表表的同时,相相关的依赖对对象一起删除除。 = 4 * ROMAN IV、数据查询询语句格式:SELECT ALL|DISTIINCT , FROM , WHEREE GROUPP BY
11、 HAVVING ORDERR BY ASCC|DESCC ; = 5 * ROMAN V、插入元组语句格式:INSERTT INTO (,) VALUESS ( , ) 功能:将新元组组插入指定表表中。 = 6 * ROMAN VI、修改数据据语句格式: UPDDATE SETT =,= WHHERE ; 功能:修改指定定表中满足WWHERE子子句条件的元元组。 = 7 * ROMAN VII、删除数数据语句格式: DELETTE FROM WHERRE ; 功能:删除指定定表中满足WWHERE子子句条件的元元组。WHERE子句句:指定要删除除的元组。缺省表示要删除除表中的全部部元组,表的的
12、定义仍在字字典中。2、数据库完整整性 = 1 * ROMAN I、实体完整性性定义单属性构成的码码有两种说明明方法:定义为列级级约束条件;定义为表级级约束条件。对多个属性构成成的码只有一一种说明方法法:定义为表级级约束条件。插入或对主码列列进行更新操操作时,RDDBMS按照照实体完整性性规则自动进进行检查。包包括: = 1 * GB3 . 检查主码码值是否唯一一,如果不唯唯一则拒绝插插入或修改。 = 2 * GB3 . 检查主码码的各个属性性是否为空,只只要有一个为为空就拒绝插插入或修改。 = 2 * ROMAN II、参照完整整性定义在CREATEE TABBLE中用FOREEIGN KKE
13、Y短语定定义哪些列为为外码,用REFERRENCESS短语指明这这些外码参照照哪些表的主主码。参照完整性违约约处理: = 1 * GB3 .拒绝(NOO ACTIION)执行行默默认策略 = 2 * GB3 .级联(CAASCADEE)操作 = 3 * GB3 .设置为空值值(SET-NULL) 对于参照完整性性,除了应该该定义外码,还还应定义外码码列是否允许许空值。3、触发器触发器(Triigger)是是用户定义在在关系表上的的一类由事件件驱动的特殊殊过程,由服务器自自动激活,可以进行更更为复杂的检检查和操作,具具有更精细和和更强大的数数据控制能力力。 = 1 * ROMAN I、定义触发器
14、器语法格式: CREAATE TRRIGGERR BEFOORE | AFTERR OON FOR EACH ROWW | STTATEMEENT WHEN = 2 * ROMAN II、激活触发发器触发器的执行,是是由触发事件件激活的,并并由数据库服服务器自动执执行,一个数据表表上可能定义义了多个触发发器。同一个表上的多多个触发器激激活时遵循如如下的执行顺顺序: = 1 * GB3 .执行该表上上的BEFOORE触发器器; = 2 * GB3 .激活触发器器的SQL语句; = 3 * GB3 .执行该表上上的AFTEER触发器。 = 3 * ROMAN III、删除触触发器语法格式: DRR
15、OP TRRIGGERR ONN ; 触发器必须是一一个已经创建建的触发器,并并且只能由具具有相应权限限的用户删除除。 4、存储过程 = 1 * ROMAN I、PL/SQQL的块结构构 = 1 * GB3 .定义部分 DEECLAREE 变量、常常量、游标、异异常等 定义的变量、常常量等只能在在该基本块中中使用,当基本块执执行结束时,定定义就不再存存在。 = 2 * GB3 .执行部分 BEGINN SQQL语句、PL/SQL的流流程控制语句句 EXCCEPTIOON 异常处理理部分 ENDD; = 2 * ROMAN II、变量常量量的定义 = 1 * GB3 .PL/SQQL中定义变变量
16、的语法形形式是:: 变量量名 数据类型 NOT NNULL:=初值表达式式或 变量名 数数据类型 NOT NNULL初初值表达式 = 2 * GB3 .常量的定义义类似于变量量的定义:: 常量量名 数据类型 CCONSTAANT :=常量表达式式 常量必须要要给一个值,并并且该值在存存在期间或常常量的作用域域内不能改变变。如果试图图修改它,PL/SQL将返返回一个异常常。 = 3 * GB3 .赋值语句 变量名名称:= 表达式 = 3 * ROMAN III、控制结结构 = 1 * GB3 .条件控制语语句 IF-THENN,IF-THHEN-ELLSE和嵌套套的IF语句:A. IF cond
17、iition THEN Sequuence_of_sttatemeents; ENND IF B. IF condiition THEN Sequuence_of_sttatemeents1; ELLSE Sequuence_of_sttatemeents2; ENND IF; C. 在THHEN和ELSE子句句中还可以再再包括IF语句,即即IF语句可以以嵌套。 = 2 * GB3 .循环控制语语句A.最简单的循循环语句LOOOP LOOOP Sequeence_oof_staatemennts; ENDD LOOPP; 多数数据库服务务器的PL/SQL都提提供EXITT、BREAKK或LEA
18、VEE等循环结束束语句,保证证LOOP语句句块能够结束束。B. WHILLE-LOOOP WHHILE ccondittion LLOOP SSequennce_off_stattementts; END LLOOP; 每次执行循环体体语句之前,首首先对条件进进行求值,如果条件为为真,则执行行循环体内的的语句序列,如果条件为为假,则跳过过循环并把控控制传递给下下一个语句。C. FOR-LOOP FOOR couunt INN REVERRSEboundd1 bbound22 LOOPP SSequennce_off_stattementts; ENND LOOOP; = 3 * GB3 .错误
19、处理: 如果PL/SQQL在执行时时出现异常,则则应该让程序序在产生异常常的语句处停停下来,根据据异常的类型型去执行异常常处理语句。SQL标准对数数据库服务器器提供什么样样的异常处理理做出了建议议,要求PLL/SQL管管理器提供完完善的异常处处理机制。 = 4 * ROMAN IV、存储过程程的用户接口口 = 1 * GB3 . 创建存储储过程: CREATEE Procceduree 过程名(参数1,参数2,.) AS ; 过程名:数据库库服务器合法法的对象标识识。参数列表:用名名字来标识调调用时给出的的参数值,必必须指定值的的数据类型。参参数也可以定定义输入参数数、输出参数数或输入/输出参
20、数。默默认为输入参参数。过程体:是一个个。包括声明明部分和可执执行语句部分分。 = 2 * GB3 . 执行存储储过程: CALLL/PERRFORM Procceduree 过程名(参数1,参数2,.); 使用CALL或或者PERFFORM等方方式激活存储储过程的执行行。在PL/SQL中,数数据库服务器器支持在过程程体中调用其其他存储过程程。 = 3 * GB3 . 删除存储储过程 DROOP PRROCEDUURE 过程程名();四、总体设计方方案首先进行需求分分析和结构设设计,确定该该系统的一些些功能要求及及数据的存储储方法,画出出流程图以及及E-R图。然然后根据需求求分析所得的的流程图
21、及EE-R图设计计表,确定属属性。再用SSQL语言编编写程序实现现操作。最后后对系统进行行调试与测试试,确定系统统是否完成设设计要求。五、详细设计1、需求分析银行账户管理系系统主要用于于用户的一些些操作,包括括存款、取款款、查询、转转账等基本操操作,主要涉涉及到银行与与用户两个实实体,还有交交易这个联系系。2、流程图3、E-R图4、设计表Bank表:表表示银行信息息,属性有名名称,网点,存存款总额。其其中网点号为为主码。Customeer表:表示示客户信息,属属性有账号,姓姓名,ID,开开户时间,账账户余额,开开户银行,银银行网点。其其中账号为主主码。trade表:用于记录每每次交易信息息,属
22、性有流流水号,姓名名,账号,交交易项目,交交易金额,交交易时间,交交易对象,余余额,上次余余额,网点。其其中流水号为为主码。5、关系图建立关系图其中custoomer表的的外码银行网网点参照引用用bank表表的主码网点点;tradde表的外码码账号参照引引用custtomer表表的主码账号号;tradde表的外码码网点参照引引用bankk表的主码网网点。6、编码CREATE TRIGGGER tootle OON dboo.userr_custtomerafter UUPDATEE AS if uupdatee(银行)update 总存款额 set 存存款总额 = (sellect SSUM(
23、余额额) froom useer_infform wwhere 银行总存款款额.银行=custoomer.银银行)CREATE TRIGGGER 交易易项目 ONN dbo.tradeeafter UUPDATEE AS if uupdatee(余额)if (seelect 余额 frrom trrade wwhere 流水号=(selecct maxx(流水号) fromm tradde) ) (sellect 上上次余额 ffrom ttrade wheree 流水号=(seleect maax(流水号号) froom traade)update tradee set 交易项目=支入 wh
24、eree 流水号=(seleect maax(流水号号) froom traade) aand 账号号=(sellect 账账号 froom traade whhere 流流水号 = (seleect maax(流水号号) froom traade)elseupdate tradee set 交易项目=支出 wheree 流水号=(seleect maax(流水号号) froom traade) aand 账号号=(sellect 账账号 froom traade whhere 流流水号 = (seleect maax(流水号号) froom traade)CREATE TRIGGGER 交易
25、易余额 ONN dbo.tradeeafter UUPDATEEAS if uupdatee(交易金额额)beginupdate tradee set 余额= (selecct 账户余余额 froom cusstomerr wherre 账号 = (seelect 账号 frrom trrade wwhere 流水号 = (sellect mmax(流水水号) frrom trrade) wheere 流水水号 = (selecct maxx(流水号) fromm tradde)end;CREATE proc 交易 carrd varrchar(18)asbegininsert tradee(
26、交易时间间,账号,姓姓名,余额,上次余额) seleect geetdatee(),ccard,姓姓名,账户余余额,账户余余额 froom cusstomerr a whhere aa.账号=cardendGOCREATE PROCEEDURE 存款(ccard vvarchaar(18),ckee moneey)ASBEGIN exec 交易易 carrdupdate custoomer sset 账户户余额=(账账户余额+cke) wheree 账号=cardupdate tradee set 交易金额=cke wheree 账号=card and 流流水号=(sselectt max(流
27、水号) from tradee wherre 账号=cardd )select * froom cusstomerr wherre 账号=carddRETURN;END;GOCREATE proceedure 开户 nname vvarchaar(20),id varchhar(188),caard vaarcharr(18) outpuut,baal monneyasbegin seelect cardd=60+subsstringg(ltriim(strr(randd(),300,30),len(ltrimm(str(rand(),30,30)-15,66) innsert custoom
28、er(开开户时间,姓姓名,ID,账号,账户户余额) vvaluess (gettdate(),naame,iid,caard,bbal) prrint 账号创建成成功,你的账账号为:+carddendGOCREATE PROCEEDURE 查询(ccard vvarchaar(18)ASBEGIN exec 交易易 carrdupdate tradee set 交易项目=查询 wheree 账号=card and 流流水号=(sselectt max(流水号) from tradee wherre 账号=cardd )select * froom cusstomerr wherre 账号=ca
29、rddselect * froom traade whhere 账账号=caardRETURN;END;GOCREATE PROCEEDURE 转账(ccard1 varchhar(188),caard2 vvarchaar(18),zzee moneey)ASBEGIN exec 交易易 carrd1update custoomer sset 账户户余额=(账账户余额-zze) wheree 账号=card11if( (seelect 账户余额 from custoomer wwhere 账号=ccard1 )0 ) begiin priint 余余额不足! upddate ccustomm
30、er seet 账户余余额=(账户户余额+zzze) wwhere 账号=ccard1 endelsebeginupdate tradee set 交易项目=转出 wheree 账号=card11 and 流水号=(selecct maxx(流水号) fromm tradde wheere 账号号=carrd1 )update tradee set 交易金额=zze wheree 账号=card11 and 流水号=(selecct maxx(流水号) fromm tradde wheere 账号号=carrd1 )select *fromm custtomer wheree 账号=card1
31、1select * froom traade whhere 账账号=caard1exec 交易易 carrd2update custoomer sset 账户户余额=(账账户余额+zze) wheree 账号=card22update tradee set 交易项目=转入 wheree 账号=card22 and 流水号=(selecct maxx(流水号) fromm tradde wheere 账号号=carrd2 )update tradee set 交易金额=zze wheree 账号=card22 and 流水号=(selecct maxx(流水号) fromm tradde whe
32、ere 账号号=carrd2 )select * froom cusstomerr wherre 账号号=carrd2select * froom traade whhere 账号=ccard2endRETURN;END;GOCREATE PROCEEDURE 取款(ccard vvarchaar(18),qkee moneey)ASBEGIN exec 交易易 carrdupdate custoomer sset 账户户余额=(账账户余额-qke) wheree 账号=cardif( (seelect 账户余额 from custoomer wwhere 账号=ccard )0 ) beginn prinnt 账户户余额不足! uppdate custoomer sset 账户户余额=(账账户余
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理实习与指导
- 儿童护理要点
- 护理个案研究指南
- 药物过敏的护理教育
- 假睫毛代工合同模板(2篇)
- 相城区购销合同模板(2篇)
- 电子配件采购合同模板(2篇)
- 2025年首都医科大学附属北京口腔医院医护人员招聘考试试题附答案详解
- 自然环境保护与生态平衡指导手册
- 企业合规管理实务指引指导书
- 2025年甘肃省中考英语试卷真题(含标准答案及解析)
- 护士呼吸科进修专题汇报
- 辽宁省2025年初中学业水平模拟考试 语文试卷(一)(含答案)
- 2025年高考真题-化学(河南卷) 含答案
- 关于监控录像管理制度
- 2025年人教部编版语文二年级下册期末复习计划
- 期刊图书馆管理员
- 考研动员讲座
- 6月26国际禁毒日防范青少年药物滥用禁毒宣传课件
- 《设备基础知识培训》课件
- 严重创伤患者紧急救治血液保障模式与输血策略中国专家共识(2024版)
评论
0/150
提交评论