Oracle数据库项目S3.pdf
- 文档编号:3437567
- 上传时间:2023-05-05
- 格式:PDF
- 页数:10
- 大小:279.45KB
Oracle数据库项目S3.pdf
《Oracle数据库项目S3.pdf》由会员分享,可在线阅读,更多相关《Oracle数据库项目S3.pdf(10页珍藏版)》请在冰点文库上搜索。
1项目实战1项目实战1开放式基金交易平台(数据库设计)开放式基金交易平台(数据库设计)1.1需求描述需求描述随着我国经济水平的持续发展,金融产品也在不断发展。
经中国证监会批准,开放式上市基金已在逐渐发展,为了开展此项业务,招商银行某分行需要一个基金交易平台,以便银行窗口人员在此平台上为广大用户提供基金交易管理的服务,同时为用户提供网上基金交易的便捷服务。
该系统的功能分为前台和后台管理。
1、1、后台管理后台管理?
基金管理:
添加基金公司、基金公司查询、停用基金公司、添加基金、基金信息查询、停用基金。
?
客户账户管理:
活期账户开户、查询活期账户信息、活期账户冻结与解冻、理财账户开户、查询理财账户信息、理财账户冻结与解冻、基金账户冻结与解冻。
?
交易审核:
审核基金购买和赎回。
2、2、前台管理前台管理?
信息查询:
基金信息查询、理财资金查询、当日交易查询、未完成交易查询、历史交易查询。
?
委托交易:
购买、赎回、撤单。
?
基金账户管理:
基金账户开户、基金账户信息查询。
?
理财账户:
转账、修改密码。
1.2问题分析问题分析分析上面的需求,我们可以得出系统中应该有如下数据表。
系统中基金公司表(FundCompany)字段及说明见表1-1。
表1-1FundCompany表的字段及说明表1-1FundCompany表的字段及说明字段名称数据类型说明CompanyIdvarchar2(20)公司ID,主键Namevarchar2(30)公司名称Contentclob公司简介Moneynumber(10,2)注册资金,单位万元Statenumber(1,0)公司状态,0表示正常,1表示冻结系统中基金表(Fund)字段及说明见表1-2。
2表1-2Fund表的字段及说明表1-2Fund表的字段及说明字段名称数据类型说明FundNovarchar2(20)基金代码ID,主键CompanyIdvarchar2(20)基金公司ID,外键引用FundCompany表的CompanyIdFundNamevarchar2(20)基金名称Pricenumber(10,2)基金净值FundTypenumber(1,0)基金类型,1表示开放式,2表示封闭式Investnumber(1,0)投资方向,1股票,2债券,3货币,4混合BuyLimitnumber(5,0)购买下限Ischangenumber(1,0)是否可转换,0表示不可转换,1表示可转换YearRatenumber(6,5)年利率,必须是0-1之间的数字ApplyDatedate申请日期Statenumber(1,0)基金状态,0表示正常,1表示冻结系统中活期帐户表(CurrentAccount)字段及说明见表1-3。
表1-3CurrentAccount表的字段及说明表1-3CurrentAccount表的字段及说明字段名称数据类型说明CurrentAccountvarchar2(20)活期帐户账号,主键CurrentPasswordvarchar2(20)活期帐户密码DepositSumnumber(10,2)活期账户存款金额CardTypenumber(1,0)证件类型,1为身份证,2为房产证,3为驾驶证CardNovarchar2(20)证件号码Namevarchar2(10)开户人姓名Addressvarchar2(100)家庭地址Phonevarchar2(20)电话Sexnumber(1,0)性别,1表示男,2表示女OpenAccDatedate开户日期Statenumber(1,0)帐号状态,1表示不可转帐,0表示可用系统中理财账户表(FinancingAccount)字段及说明见表1-4。
表1-4FinancingAccount表的字段及说明表1-4FinancingAccount表的字段及说明字段名称数据类型说明FinancingAccountvarchar2(20)理财帐户账号,主键FinancePassWordvarchar2(20)理财帐户密码MoneyTypenumber(1,0)货币类型,1表示人民币,2表示美元,3表示欧元AccountBalancenumber(10,2)理财帐户金额EnableBalancenumber(10,2)可用余额CongealFundnumber(10,2)冻结资金,购买基金所对应的资金(未审核)3Statenumber(1,0)状态,1表示冻结,0表示可用CurrentAccountvarchar2(20)活期账户账号,外键引用CurrentAccount表的CurrentAccount系统中基金账户表(FundAccount)字段及说明见表1-5。
表1-5FundAccount表的字段及说明表1-5FundAccount表的字段及说明字段名称数据类型说明FundAccountvarchar2(20)基金账户账号,主键FinancingAccountvarchar2(20)理财帐户账号,外键引用FinancingAccount表的FinancingAccountCompanyIDvarchar2(20)公司ID,外键引用FundCompany表的CompanyIDCardTypenumber(1,0)证件类型,1为身份证,2为房产证,3为驾驶证CardNovarchar2(20)证件号码Namevarchar2(10)姓名Sexnumber(1,0)性别,1表示男,0表示女Addressvarchar2(100)家庭地址Phonevarchar2(20)电话PostNumvarchar2(10)邮编emailvarchar2(30)电子邮件createDatedate开户日期CongealStatenumber(1,0)冻结状态(冻结之后该客户不能购买),0表示未冻结,1表示冻结系统中购买的基金表(FundBuy)字段及说明见表1-6。
表1-6FundBuy的字段及说明表1-6FundBuy的字段及说明字段名称数据类型说明PactNovarchar2(20)合同号,主键FinancingAccountvarchar2(20)理财帐户账号,外键引用FinancingAccount表的FinancingAccountFundNOvarchar2(20)基金账户账号,外键引用Fund表的FundNOFundnamevarchar2(20)购买基金的名称Fundnumbernumber(5,0)购买基金的份数BuyDatedate购买日期Statenumber(1,0)购买基金的状态,0表示未审核,1表示审核系统中交易表(Trade)字段及说明见表1-7。
表1-7Trade表的字段及说明表1-7Trade表的字段及说明字段名称数据类型说明PactNovarchar2(20)合同号,外键引用FundBuy表PactNo4FinancingAccountvarchar2(20)理财帐户账号,外键引用FinancingAccount表的FinancingAccountFundNovarchar2(20)基金编号,外键引用Fund表的FundNOFundNamevarchar2(20)基金名称DealTypenumber(1,0)交易类型,1表示购买,2表示撤单,3表示赎回FundQuotientnumber(5,0)基金份数BargainPricenumber(10,2)成交单价DealMoneynumber(10,2)交易金额FundAccountvarchar2(20)基金账户账号,外键引用FundAccount表的FundAccountDealDatedate交易日期Statusnumber(1,0)交易状态,0表示未完成,1表示完成1.3相关技术与工具相关技术与工具技术:
技术:
1、数据库基础?
表空间、数据库用户的创建2、为字段建立约束?
主键约束?
检查约束?
唯一约束?
默认约束?
外键约束3、使用SQL语句?
使用insert插入数据?
使用update修改数据?
使用delete删除数据?
使用select查询数据?
使用select联接查询4、使用Oracle对象?
使用createsequence创建序列5?
使用createview创建视图?
使用createprocedure创建存储过程?
使用createfunction创建函数?
编写PL/SQL块?
使用createtrigger创建触发器?
使用cratepackagebody创建包和包体工具:
工具:
?
PL/SQLDeveloper1.4阶段划分阶段划分开放式基金交易平台(数据库设计)实现阶段划分见表1-8。
表1-8阶段任务及时间表1-8阶段任务及时间阶段名称使用时间阶段实现第一阶段60分钟创建表空间,创建用户,创建数据表,添加约束,创建表之间关系第二阶段60分钟创建序列分别生成基金公司编号、基金代码、活期账号、理财账号、基金账户、合同号。
创建触发器,使用序列,分别实现添加表数据的时候,自动添加基金公司编号、基金代码、活期账号、理财账号、基金账户、合同号。
实现基金管理模块。
第三阶段30分钟实现账户管理、理财账户模块。
第四阶段60分钟实现客户账户管理、交易审核模块。
第五阶段90分钟实现信息查询、委托交易模块。
1.4.1第一阶段第一阶段实现:
创建表空间,创建用户,创建数据表,添加约束,创建表之间关系。
1、创建表空间fund保存到“D:
”路径下,如下所示。
createtablespacefunddatafiled:
funddb_file.dbfsize50M2、创建用户test_user指定默认表空间为fund,如下所示。
6createusertest_useridentifiedbytest123456defaulttablespacefund3、授予用户角色和权限,如下所示。
grantconnect,resourcetotest_user4、使用test_user用户登录Oracle服务器,创建表。
?
创建基金公司表(FundCompany)并添加约束。
?
创建基金表(Fund)并添加约束。
?
创建活期帐户表(CurrentAccount)并添加约束。
?
创建理财账户表(FinancingAccount)并添加约束。
?
创建基金账户表(FundAccount)并添加约束。
?
创建购买的基金表(FundBuy)并添加约束。
?
创建交易表(Trade)并添加约束。
?
建立表之间的外键关系。
1.4.2第二阶段第二阶段实现:
创建序列分别生成基金公司编号、基金代码、活期账号、理财账号、基金账户、合同号;创建触发器,使用序列,分别实现添加表数据的时候,自动添加基金公司编号、基金代码、活期账号、理财账号、基金账户、合同号;实现基金管理模块。
创建基金管理程序包FundManager_pack,在程序包里创建过程分别实现,添加基金公司、添加基金公司基金、根据公司编号冻结/解冻基金公司、根据基金代码冻结/解冻基金、根据公司编号查询基金公司、根据公司编号查询基金、根据基金代码查询基金。
1、分别创建序列,生成基金公司编号、基金代码、活期账号、理财账号、基金账户、合同号。
要求如下:
?
基金公司编号,字母K+5位数字。
?
基金代码,字母V+6位数字。
?
活期账号,13位数字。
?
理财账号,13位数字。
7?
基金账户,字母L+5位数字。
?
合同号,字母Z+6位数字。
2、分别创建触发器,在添加表数据的时候,自动添加生成的主键编号。
3、添加基金公司“龙腾集团”,如图1-1所示。
图1-1添加基金公司图1-1添加基金公司4、根据基金公司添加基金,如图1-2所示。
图1-2根据基金公司添加基金图1-2根据基金公司添加基金5、根据基金公司查询基金信息,如图1-3所示。
图1-3根据基金公司查询基金图1-3根据基金公司查询基金基金公司、基金的冻结/解冻,只需修改基金公司、基金State的状态值(0表示正常,1表示冻结)。
1.4.3第三阶段第三阶段实现:
基金账户管理、理财账户模块。
创建基金账户管理程序包FundAccountManager_pack,在程序包里创建过程分别实现,基金账户开户、基金账户信息查询。
创建理财账户管理程序包FinancingAccountManager_pack,在程序包里创建过程分别实现,理财账户修改密码、实现转账功能。
1、实现基金账户开户。
?
基金账户的编号不能重复。
8?
一个理财账号对同一个公司只能开一个基金账户。
2、实现基金账户信息查询。
(查询指定理财帐户所开的所有基金账户的信息)3、实现理财账户修改密码。
(修改理财需要判断原密码是否输入正确,如果正确才能修改)。
4、实现转账功能。
?
转帐分为活期转理财和理财转活期。
?
活期转理财,需要判断活期的资金是否足够,如果不足,就不能进行转帐。
?
活期转理财,需要判断活期密码是否正确,不正确不能转帐。
?
活期转理财,活期转入的金额只加入到总金额和可用余额中。
?
理财转活期,需要判断理财的活动资金是否充足,如果不充足不能进行转帐。
?
理财转活期,需要判断密码是否正确。
?
转帐时需要判断理财/活期是否被冻结。
1.4.4第四阶段第四阶段实现:
客户账户管理、交易审核模块。
创建客户账户管理程序包ClientAccountManager_pack,在程序包里创建过程分别实现,活期账户开户、查询活期账户信息、活期账户冻结与解冻、理财账户开户、查询理财账户信息、理财账户冻结与解冻、基金账户冻结与解冻。
创建交易审核程序包Auditing_pack,在程序包里创建过程分别实现,审核基金购买、赎回。
1、活期账户开户。
(活期帐户账号编号不能重复)2、查询活期账户信息。
(可以根据活期账号精确查询,可以根据姓名模糊查询)3、活期账户冻结与解冻。
(冻结活期帐户时,必须冻结理财帐户,启用活期帐户时,不能启用理财帐户)4、理财账户开户。
?
一个活期帐户只能开一个理财帐户。
?
活期帐户被冻结不能开理财帐户。
?
活期帐户不存在不能开理财帐户。
?
理财帐户的用户名称应该跟活期帐户的用户名相同。
9?
理财帐户的信息不允许进行修改。
5、查询理财账户信息。
(可以根据编号精确查询,可以根据姓名模糊查询)6、理财账户冻结与解冻。
(活期帐户被冻结,理财帐户不能被启用)7、基金账户冻结与解冻。
?
基金账户被冻结不能购买相对应公司的基金。
?
基金公司被冻结,不能解冻基金账户。
1.4.5第五阶段第五阶段实现:
信息查询、委托交易模块。
创建信息查询程序包Information_pack,在程序包里创建过程分别实现,基金信息查询、理财资金查询、当日交易查询、未完成交易查询、历史交易查询。
创建委托交易程序包Consign_pack,在程序包里创建过程分别实现,基金的购买、赎回、撤单。
1、基金信息查询。
(根据理财账号,查询所有购买成功的基金记录)2、理财资金查询。
(根据理财账号,查询理财资金(总金额,可用余额,冻结资金)3、当日交易查询。
(根据理财账号,获取系统时间查询当天的交易记录)4、未完成交易查询。
(根据理财账号,查询所有未完成的交易记录)5、历史交易查询。
(根据理财账号,查询所有交易记录)6、购买基金。
(根据基金账户,购买相应基金公司的基金)?
购买时判断是否开启所需要购买的基金所对应的公司的基金账户。
?
购买时应判断该公司和该基金是否被冻结。
?
购买时应判断购买下限是否大于购买数量。
?
购买时应判断购买所需资金是否足够。
?
购买时应判断该公司所对应的基金账户是否冻结,冻结了不能基金交易。
?
购买成功后需要扣除交易手续费用,费率0.75%。
?
购买时需要插入一条交易记录。
?
购买成功后,未审核前,购买所需要使用的资金应该在冻结资金中,没有审核前,不能扣去这次交易的手续费用。
107、赎回基金。
(根据基金账户,赎回购买的基金)?
赎回时应该判断该公司和该基金是否被冻结。
?
赎回时应判断所拥有的基金的数量是否大于赎回的数量。
?
赎回时应判断该公司所对应的基金账户是否被冻结,冻结了就不能进行交易。
?
赎回成功后需要交手续费用,费率1.5%。
?
赎回时需要插入一条交易记录。
?
赎回成功后,赎回的基金的数量应该被减去,在冻结资金中应该加入等价的资金。
8、撤单。
(根据基金账户,查询购买的基金,撤单是在购买成功后,未审核前,撤单可以把本次交易撤销掉,不能扣去手续费用)1.5项目总结项目总结本项目从数据库设计的角度出发,依据前面学习的Oralce数据库知识,设计了开放式基金交易平台的数据库。
该项目涵盖的内容比较丰富,涉及到数据库的三类完整性约束,实体间的1:
n的联系,n:
n的联系等。
在项目中使用到了Oracle创建数据库表空间、用户、表、视图、序列、触发器、程序包、存储过程等等。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 项目 S3