目录一、目的与意义...............................................................0二、设计内容与要求...........................................................0三、设计原理.................................................................11、数据库基本操作:......................................................1Ⅰ、定义基本表.......................................................1Ⅱ、修改基本表.......................................................1III、删除基本表......................................................1IV、数据查询.........................................................1V、插入元组..........................................................2VI、修改数据.........................................................2VII、删除数据........................................................22、数据库完整性..........................................................2I、实体完整性定义....................................................2II、参照完整性定义...................................................23、触发器................................................................3I、定义触发器........................................................3II、激活触发器.......................................................3III、删除触发器......................................................34、存储过程..............................................................3I、PL/SQL的块结构...................................................3II、变量常量的定义...................................................4III、控制结构........................................................4IV、存储过程的用户接口...............................................5四、总体设计方案.............................................................5五、详细设计.................................................................51、需求分析..............................................................52、流程图................................................................63、E-R图................................................................64、设计表................................................................65、关系图................................................................76、编码..................................................................8六、测试与调试..............................................................11七、收获与体会..............................................................15八、主要参考资料............................................................15一、目的与意义本课程设计是在学完《数据库系统与应用》课程之后,让学生综合应用数据库知识,设计数据库,进行调试与测试,以加深对数据库基本知识及SQL语言的理解,提高综合应用知识的能力、分析解决问题的能力,加强数据库知识的实践技能,初步培养开发实用数据库系统的能力。二、设计内容与要求设计一个银行账户管理系统,至少能够实现存款、取款、查询、转账等基本功能,要求在在数据库实现过程中至少建立三张表、不得少于四个查询、三个触发器、使用至少一个存1储过程。三、设计原理SQL是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询。SQL是一个通用的、功能极强的关系数据库语言。它之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。SQL语言集数据查询(DataQuery)、数据操纵(DataManipulation)、数据定义(DataDefinition)和数据控制(DataControl)功能于一体。1、数据库基本操作:Ⅰ、定义基本表语句格式:CREATETABLE表名(列名数据类型[列级完整性约束条件][,列名数据类型[列级完整性约束条件]]…[,表级完整性约束条件]);如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。Ⅱ、修改基本表语句格式:[ADD新列名数据类型[完整性约束]][DROP完整性约束名][ALTERCOLUMN列名数据类型];III、删除基本表语句格式:DROPTABLE表名[RESTRICT|CASCADE];RESTRICT:删除表是有限制的。欲删除的基本表不能被其他表的约束所引用,如果存在依赖该表的对象,则此表不能被删除。CASCADE:删除该表没有限制。在删除基本表的同时,相关的依赖对象一起删除。IV、数据查询语句格式:SELECT[ALL|DISTINCT]目标列表达式[,目标列表达式]…FROM表名或视图名[,表名或视图名]…[WHERE条件表达式][GROUPBY列名1[HAVING条件表达式]][ORDERBY列名2[ASC|DESC]];2V、插入元组语句格式:INSERTINTO表名[(属性列1[,属性列2…)]VALUES(常量1[,常量2]…)功能:将新元组插入指定表中。VI、修改数据语句格式:UPDATE表名SET列名=表达式[,列名=表达式]…[WHERE条件];功能:修改指定表中满足WHERE子句条件的元组。VII、删除数据语句格式:DELETEFROM表名[WHERE条件];功能:删除指定表中满足WHERE子句条件的元组。WHERE子句:指定要删除的元组。缺省表示要删除表中的全部元组,表的定义仍在字典中。2、数据库完整性I、实体完整性定义单属性构成的码有两种说明方法:定义为列级约束条件;定义为表级约束条件。对多个属性构成的码只有一种说明方法:定义为表级约束条件。插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:①.检查主码值是否唯一,如果不唯一则拒绝插入或修改。②.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。II、参照完整性定义在CREATETABLE中用FOREIGNKEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。参照完整性违约处理:①.拒绝(NOACTION)执行----默认策略②.级联(CASCADE)操作③.设置为空值(SET-NULL)对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值。33、触发器触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊过程,由服务器自动激活,可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。I、定义触发器语法格式:CREATETRIGGER触发器名{BEFORE|AFTER}触发事件ON表名FOREACH{ROW|STATEMENT}[WHEN触发条件]触发动作体II、激活触发器触发器的执行,是由触发事件激活的,并由数据库服务器自动执行,一个数据表上可能定义了多个触发器。同一个表上的多个触发器激活时遵循如下的执行顺序:①.执行该表上的BEFORE触发器;②.激活触发器的SQL语句;③.执行该表上的AFTER触发器。III、删除触发器语法格式:DROPTRIGGER触发器名ON表名;触发器必须是一个已经创建的触发器,并且只能由具有相应权限的用户删除。4、存储过程I、PL/SQL的块结构①.定义部分DECLARE------变量、常量、游标、异常等定义的变量、常量等只能在该基本块中使用,当基本块执行结束时,定义就不再存在。②.执行部分BEGIN------SQL语句、PL/SQL的流程控制语句EXCEPTION------异常处理部分END;4II、变量常量的定义①.PL/SQL中定义变量的语法形式是::变量名数据类型[[NOTNULL]:=初值表达式]或变量名数据类型[[NOTNULL]初值表达式]②.常量的定义类似于变量的定义::常量名数据类型CONSTANT:=常量表达式常量必须要给一个值,并且该值在存在期间或常量的作用域内不能改变。如果试图修改它,PL/SQL将返回一个异常。③.赋值语句变量名称:=表达式III、控制结构①.条件控制语句IF-THEN,IF-THEN-ELSE和嵌套的IF语句:A.IFconditionTHENSequence_of_statements;ENDIFB.IFconditionTHENSequence_of_statements1;ELSESequence_of_statements2;ENDIF;C.在THEN和ELSE子句中还可以再包括IF语句,即IF语句可以嵌套。②.循环控制语句A.最简单的循环语句LOOPLOOPSequence_of_statements;ENDLOOP;多数数据库服务器的PL/SQL都提供EXIT、BREAK或LEAVE等循环结束语句,保证LOOP语句块能够结束。B.WHILE-LOOPWHILEconditionLOOPSequence_of_statements;ENDLOOP;每次执行循环体语句之前,首先对条件进行求值,如果条件为真,则执行循环体内的语句序列,如果条件为假,则跳过循环并把控制传递给下一个语句。