目录1前言......................................................................................................12需求分析..............................................................................................12.1课程设计目的............................................................................12.2课程设计任务............................................................................12.3设计环境....................................................................................22.4开发语言....................................................................................23分析和设计.........................................................................................23.1界面设计....................................................................................23.2系统E-R模型............................................................................53.3表空间及表的设计....................................................................53.4视图设计....................................................................................63.5存储过程、函数、序列的设计................................................63.6触发器设计................................................................................73.7角色、用户、权限设计............................................................84课程设计总结.....................................................................................9致谢.............................................................................................10附录............................................................................................1111前言俗话说“你不理财,财不理你”,只有通过合理的理财,才能够有效的管理你的个人资产,使它得到的合理运用。个人理财软件不仅可以帮你记帐,更多的是可以实时掌握你的收入与支出,掌握资金的变动情况,同时还可以统计出资金的主要流向,从而更合理的分配资金,提高理财的效率。本次课程设计的任务就是综合运用所学的Oracle数据库知识设计一个简单的个人理财软件—个人记账系统。2需求分析2.1课程设计目的通过专业课程设计Ⅱ,即大型数据库系统课程设计,有助于培养学生综合运用数据库相关知识解决实际问题的能力。本设计要求对实际问题进行需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。同时要求对数据库的运营、管理及使用上进行必要的规划和实现。2.2课程设计任务针对财务管理信息系统的需求,设计一个数据库系统。具体内容如下:(1)根据需求,建立ER模型。通过ER图表示。(2)在此基础上,设计物理表结构,编写创建数据库表的语句。较高要求为在设计创建数据表语句的同时考虑性能上的要求,采用相关的磁盘存储技术。(3)从实际查询应用出发,为一些主要的应用模块设计至少3个参数化视图。(4)针对常用的业务,创建包,同时实现一个函数放入包中。(5)从数据检验的角度出发,为相关的表建立至少1个触发器。(6)从数据更新或修改的角度出发,设计至少1个存储过程。(7)从安全的角度出发,规划系统的角色、用户、权限,并通过相关的SQL实现。(8)预计每个表的大致容量和增长速度。指定备份的方案,写出相关的备份命令。(9)以上所有命令及脚本均需测试,在设计报告中说明其功能并记录其输出。22.3设计环境(1)WINDOWS2000/2003/XP系统(2)Oracle数据库管理系统(3)Java开发及运行环境2.4开发语言PL/SQL语言JAVA3分析和设计3.1界面设计界面设计工作使用eclipse完成,其中使用了JDatePicker日期控件。1.主界面设计32.收入界面设计2.支出界面设计44.查询界面设计53.2系统E-R模型3.3表空间及表的设计1.创建收入表CREATETABLEBANK_INCOME(IN_IDNUMBERNOTNULLENABLE,IN_NAMEVARCHAR2(50BYTE)NOTNULLENABLE,IN_DATEVARCHAR2(50BYTE)NOTNULLENABLE,IN_MONEYNUMBER(10,0)NOTNULLENABLE,IN_COMMENTVARCHAR2(500BYTE)NOTNULLENABLE,CONSTRAINTBANK_INCOME_PKPRIMARYKEY(IN_ID);收入表BANK_INCOME表结构62.创建支出表CREATETABLEBAN_OUT(OUT_IDNUMBERNOTNULL,OUT_NAMEVARCHAR2(50)NOTNULL,OUT_DATEVARCHAR2(50)NOTNULL,OUT_MONEYNUMBER(10,2)NOTNULL,OUT_COMMENTVARCHAR2(500)NOTNULL,CONSTRAINTBAN_OUT_PKPRIMARYKEY(OUT_ID)ENABLE);支出表bank_out表结构3.4视图设计1.收入视图(Bank_income_view)设计CreateorreplaceviewBank_income_viewAsSelectin_id,in_name,in_date,in_money,in_commentFrombank_income;2.支出视图(Bank_out_view)设计CreateorreplaceviewBank_out_viewAsSelectout_id,out_name,out_date,out_money,out_commentFrombank_out;3.5存储过程、函数、序列的设计1.存储过程设计72.函数设计创建收入ID序列CREATESEQUENCESCOTT.SEQ_INCOME_IDMINVALUE1MAXVALUE9999999999999999999999999999INCREMENTBY1STARTWITH1CACHE20NOORDERNOCYCLE;创建支出ID序列CREATESEQUENCESCOTT.SEQ_OUT_IDMINVALUE1MAXVALUE9999999999999999999999999999INCREMENTBY1STARTWITH1CACHE20NOORDERNOCYCLE;3.6触发器设计1.创建检测收入ID序列的触发器CREATETRIGGERTRI_AUTO_INCOME_IDBEFOREINSERTONBANK_INCOMEFOREACHROW8BEGINSELECTSEQ_INCOME_ID.NEXTVALINTO:NEW.IN_IDFROMDUAL;END;2.创建检测支出ID序列的触发器CREATEORREPLACETRIGGERTRI_AUTO_OUTCOME_IDBEFOREINSERTONBANK_OUTFOREACHROWBEGINSELECTSEQ_OUT_ID.NEXTVALINTO:NEW.OUT_IDFROMDUAL;END;3.7角色、用户、权限设计数据库ORCL中新建一个scott用户,在cmd中进行解锁,并赋予权限。所用语句如下:创建scott用户,口令为scott:createuserscottidentifiedbyscottdefaulttablespaceusersquota10Monusersaccountlock;解锁scott用户:alteruserscottaccountunlock;赋予scott用户权限:grantcreatesession,createtable,createview,createsequence,createtriggertoscott;94课程设计总结通过这次的课程设计实验,我发现自己对数据库课程的兴趣有了很大提高,而且对课本的知识更加的了解并有了一定的掌握,通过实验我懂得了如何创建索引、视图、存储过程以及触发器。几天的数据库课程设计很快就结束了,在这短暂的几天的的时间里,发现自己学会了很多课外的东西,特别是和同学们一起讨论分析,以及复习了我们所学过的相关数据库知识,进一步了解了数据库的实践应用过程,增强了课外的动手实践能力。数据库设计主要讨论数据库设计的方法和步骤应注意的事项。概念结构设计采用的是实体属性分析法。实体属性分析法是从总体的概念入手,从分析一个单位的事务活动开始,首先识别需求分析中所提供的实体及实体间的联系,建立一个初步的数据模型框架,然后在逐步的求精的方法加上必需的描述属性,形成一个完整的局部模型,称为用户视图,最后在加上这些视图集成一个统一的数据模式,称为用户视图的集成,这种统一的数据模式(即全局信息结构)通常用E-R图表示。逻辑结构设计的任务是将概念结构设计的E-R图,转化为与选用的DBMS所支持的数据模型相符的逻辑结构,形成逻辑模型。总而言之,这次的课程设计我学到了很多有用很有实践意义的课外知识并体会了一个真理:实践是检验真理的唯一标准!在这里感谢老师和同学的帮助!参考文献[1]张福祥.C语言程序设计[M].辽宁大学出版社,2008.1[2]张福祥,王萌.C语言程序设计习题解答与实验实训[M].沈阳:辽宁大学出版社,2008.[3]牛莉,刘远军等.计算机等级考试辅导教程[M].北京:中国铁道出版社,2008.10致谢经过两周的不懈努力,很高兴能完成一个oracle程序。从中体会到以及学习到很多关于oracle的知识,是我更加了解了oracle,并更加熟练了oracle。在此次设计中我也遇到了很多的问题,都是经过查看老师所给的关于课程设计书和图书馆借的书才明白所用函数的用法,更重要的是上课时老师的细心教学,使我们学会了许多关于oracle的基础知识,为本次的课程设计打好了很好的基础。从而使我能够顺利完成这次课程设计。在本次做课程设计过程中,要感谢申寿云老师的悉心关照,一直陪伴我们,并为大家讲解不懂的地方,很是辛苦,也很是忙碌。有时我会突然对某个函数有了编写的灵感,然后就会去问一下老师是否可行,有时都到了很晚的时候了,老师还会细心的跟我讲解,这让我很是感动。也要感