数据库大作业一卡通课程设计Word文件下载.docx

上传人:b****6 文档编号:18683036 上传时间:2022-12-31 格式:DOCX 页数:17 大小:34.63KB
下载 相关 举报
数据库大作业一卡通课程设计Word文件下载.docx_第1页
第1页 / 共17页
数据库大作业一卡通课程设计Word文件下载.docx_第2页
第2页 / 共17页
数据库大作业一卡通课程设计Word文件下载.docx_第3页
第3页 / 共17页
数据库大作业一卡通课程设计Word文件下载.docx_第4页
第4页 / 共17页
数据库大作业一卡通课程设计Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据库大作业一卡通课程设计Word文件下载.docx

《数据库大作业一卡通课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库大作业一卡通课程设计Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

数据库大作业一卡通课程设计Word文件下载.docx

不小于8G

工作站操作系统:

Windows2000/XP等

系统容量:

系统帐户容量10万,可以扩充

子系统接入数量:

128个,可以扩充

网络设置:

根据学校建筑布局结合现有走线管道,并为安全性考虑,提供两种一卡通网络的组建方案:

(1)在现有校园主干网中分一个VLAN(虚拟局域网),将所有一卡通系统的计算机全部接入这个VLAN,以达到一卡通网络与校园网逻辑上分开互相不能访问。

(2)利用现有管道重新铺设线路并添置新的网络设置(交换机、集线器等),将一卡通系统组成一个单独的网络,这样在物理上与校园网分开。

校区互联:

应用代理服务器机制,代理服务器只接受用户的查询并转发服务器中的数据,在代理服务器上运行专用的软件,定时负责与各个校区的服务器交换数据。

例图如下:

1.4系统设计原则:

安全、可靠、高效、易扩展

1.5设计背景:

项目名称:

校园一卡通系统

用户:

大学或高级中学

1.6参考资料:

1.《oracle10g:

ProgramwithPL/SQL》

2.《数据库系统概论》

3.CSDN有关Oracle数据库资料

二、数据库的物理结构设计

2.1数据库设计:

●全局数据库名称:

orcl

●数据库字符集选择:

采用UTF8字符集

●数据库的DB_FILES设置使用默认的值200

●OLTP类型:

db_block_size用比较小的取值范围:

2048或4096

 

2.2数据库控制文件配置:

D:

\ORACLE\ORADATA\ORCL\CONTROL01.CTL

\ORACLE\ORADATA\ORCL\CONTROL02.CTL

\ORACLE\ORADATA\ORCL\CONTROL03.CTL

2.3数据库重做日志文件配置:

\ORACLE\ORADATA\ORCL\REDO01.LOG

\ORACLE\ORADATA\ORCL\REDO02.LOG

\ORACLE\ORADATA\ORCLREDO03.LOG

三、数据库的逻辑结构设计

3.1有关表空间的设计与实现:

1、管理员信息表:

admin_info记录系统管理者的有关信息,权限分三级,用数字1,2,3来表示,权限大小递减

用户编号

姓名

密码

权限

Createtableadmin_info

(admin_idvarchar2(20)constraintadmin_info_pkprimarykey,

admin_namevarchar2(20)notnull,

admin_passwordvarchar2(15)notnull,

admin_privilegenumber

(1)

);

2、用户信息表:

user_info记录学生用户的有关信息

信息卡号

性别

院系/部门

用户编号为学号或教职工编号

Createtableuser_info

(user_numvarchar2(20)constraintstudent_info_pkprimarykey,

user_namevarchar2(20)notnull,

user_card_idvarchar2(20)notnull,

user_sexvarchar2(4)notnull,

user_departmentvarchar2(30)notnull,

Constraintuser_info_fkforeignkey(user_card_id)

referencesuser_info(user_num)

3、一卡通信息表:

info_card记录一卡通用户的有关信息

剩余金额

密码

挂失

0表示为非挂失状态,1表示为挂失状态

Createtableinfo_card

(card_numvarchar2(20)primarykey,

card_user_idvarchar2(20),

card_leftmoneynumber(10,2),

card_passwordvarchar2(20)notnull,

card_lostednumber

(1)notnulldefault(0),

Constraintinfo_card_fkforeignkey(card_user_id)

referencesinfo_card(card_num)

4、流水帐消费记录表:

consume_info记录用户消费情况

消费金额

消费日期

终端号

Createtableconsume_info

(consume_numvarchar2(20)notnull,

consume_moneynumber(10,2)notnull,

consume_datevarchar2(20)notnull,

concume_machine_idnumber(3)notnull

5、存款/转账记录表:

save_money记录学生存款的情况

存款金额

存款日期

存款类型

操作员编号

此表记录学生存现、转账情况。

如果是转账:

存款类型为0

如果是存现:

存款类型为1

操作员编号为POS机的编号(自动编号为0000)

Createtablesave_money

save_user_idvarchar2(20)primarykey,

save_moneynumber(10,2)notnull,

save_datevarchar2(20)notnull,

save_typenumber

(1)notnulldefault(0),

save_operator_idvarchar2(6)notnull

6、连接银行卡和一卡通的中间记录表(银校表):

bank_campus

储蓄卡号

储蓄密码

储蓄折号

转账金额

身份证号

仅用来作为一卡通用户进行转账时的用户安全验证

bank_campus_useridvarchar2(20)primarykey,

bank_campus_banknumvarchar2(30)notnull,

bank_campus_bankpasswordvarchar2(6)notnull,

bank_campus_bankbookvarchar2(30)notnull,

Bank_campus_transfernumber(10,2)notnulldefault(50.00),

bank_campus_idcardvarchar2(20)notnull

7、假设用户在银行开的账户表如下:

bank_account

用户姓名

剩余金额

Createtablebank_account

bank_account_bankbookidvarchar2(30)primarykey,

bank_account_banknumvarchar2(30)notnull,

bank_account_bankpasswordvarchar2(6)notnull,

bank_account_namevarchar2(20)notnull,

Bank_account_leftmoneynumber(10,2)notnull,

bank_account_idcardvarchar2(20)notnull

8、退款销户记录表:

remove_user_info用于记录退款销户情况

退款金额

退款日期

操作类型

操作员

Createtableremove_user_info

remove_useridvarchar2(20)primarykey,

remove_moneynumber(10,2)notnull,

remove_datevarchar2(20)notnull,

remove_typenumber

(1)notnull,

remove_operatorvarchar2(10)notnull

);

3.2有关表索引的设计与实现:

1.对学生用户表按院系/部门建立索引:

index_student

Createindexindex_student

onuser_info(user_department);

2.对一卡通信息表的挂失字段建立索引:

index_card_lost

Createindexindex_card_lost

oninfo_card(card_losted);

3.3有关视图的设计与实现:

1、终端交易记录视图:

view_terminal_record

交易金额

Createorreplaceviewview_terminal_record

(terminal_id,terminal_trademoney,terminal_date)

As

selectconcume_machine_id,sum(consume_money),consume_date

Fromconsume_info

Whereconcume_machine_id=&

p_terminal_id

Orderbyconcume_machine_id,to_date(consume_date,'

DD-Mon-YY'

3.4PL/SQL程序实现(存储过程和函数)

在用户存在且一卡通没有挂失的条件下实现

1、存现函数:

Fun_save_money用来完成对一卡通现金的存储,存款不成功返回值为False,存现成功则返回为True

CreateorreplacefunctionFun_save_money

P_useridINinfo_card.Card_num%TYPE,

p_save_moneyINinfo_card.Card_leftmoney%TYPE,

P_operatoridINvarchar2,

P_show_messageOUTvarchar2

)returnboolean

Is

Begin

Ifp_save_money>

0then

   Updateinfo_card

   Setcard_leftmoney=card_leftmoney+p_save_money

   Wherecard_num=p_userid;

   Insertintosave_money

   Values(p_userid,p_save_money,to_char(sysdate,'

yyyy-mm-dd

   hh:

mi:

ss'

),1,p_operatorid);

   P_show_message='

用户'

||p_userid||‘存现成功!

’;

Returntrue;

Else

P_show_message=‘存款金额非法!

’;

Retrunfalse;

Endif

EndFun_save_money;

2、转账函数:

Fun_hand_transfer和Proc_auto_transfer用来从银行储蓄卡里面向一卡通里充值,可以自动充值也可手动充值。

当一卡通余额不足10元时系统可以自动向一卡通充值(默认值50元,可以修改),用户也可手动用储蓄卡向一卡通充值。

 手动充值函数:

Fun_hand_transfer

CreateorreplacefunctionFun_hand_transfer

P_posidINnumber,

p_tansfer_moneyINbank_campus.bank_campus_transfer%TYPE,

P_useridINbank_campus.bank_campus_userid%TYPE,

    P_bank_account_numINbank_campus.bank_campus_banknum%TYPE,

P_bank_account_pswINbank_campus.bank_campus_bankpassword%TYPE,

)returnboolean

V_bank_moneynumber(10,2);

Ifp_tansfer_money>

0then

V_bank_money=

Fun_bank_interface(p_tansfer_money,P_bank_account_num,P_bank_account_psw);

Ifv_bank_money!

=0then

Updatetable_info_card----更新一卡通信息表

Setcard_leftmoney=card_leftmoney+v_bank_money

Wherecard_num=p_userid;

Insertintosave_money-----记录转账信息

Values(p_userid,p_tansfer_money,to_char(sysdate,'

),0,p_posid);

P_show_message='

||p_userid||‘转账成功!

Else

||p_userid||‘转账失败!

Endif

P_show_message=‘输入金额非法!

Returnfalse;

EndFun_hand_tansfer

自动充值存储过程:

Proc_auto_transfer

CreateorreplaceprocedureProc_auto_transfer

V_moneynumber(10,2);

V_addmoneynumber(10,2);

V_user_idvarchr2(20);

V_bank_cardidvarchar2(30);

V_bank_pswvarchar2(6);

Cursorauto_transfer_cursoris

Selectcard_num,card_leftmoney

Frominfo_card

Wherecard_leftmoney<

10.00

Orderbycard_leftmoney;

Begin

Openauto_transfer_cursor;

Fetchauto_transfer_cursorintov_user_id,v_money;

Whileauto_transfer_cursor%foundloop

Selectbank_campus_banknum,bank_campus_bankpassword,Bank_campus_transfe

IntoV_bank_cardid,V_bank_psw,V_addmoney

Frombank_campus

Wherebank_campus_userid=v_user_id;

V_money=Fun_bank_interface(V_addmoney,V_bank_cardid,V_bank_psw);

Ifv_money!

Updateinfo_card----更新一卡通信息表

Setcard_leftmoney=card_leftmoney+v_money

Wherecard_num=v_user_id;

Values(v_user_id,v_money,to_char(sysdate,'

yyyy-mm-ddhh:

),0,'

0000'

Endloop;

Closeauto_transfer_cursor;

Commit;

EndProc_auto_transfer

银行卡接口函数:

Fun_bank_interface

CreateorreplacefunctionFun_bank_interface

(p_tansfer_numINnumber,

P_tansfer_accountidINvarchar2,

P_tansfer_accountpasswordINvarchar2,

)returnnumber

Selectbank_account_leftmoney

Intov_money

Frombank_account

WhereP_tansfer_accountid=bank_account_banknum

AndP_tansfer_accountpassword=bank_account_bankpassword;

If(p_tansfer_num>

0andv_money-ptansfer_num>

0)then

Updatebank_account

SetBank_account_leftmoney=bank_account_leftmoney-p_tansfer_num

WhereP_tansfer_accountid=bank_account_banknum

Update

转账成功!

'

;

Returnp_tansfer_num;

P_show_message=‘转账失败!

Return0;

EndFun_bank_interface;

3、就餐消费函数:

Fun_consume

CreateorreplacefunctionFun_consume

(p_user_idINinfo_card.card_num%TYPE,

P_consume_moneyINconsume_info.consume_money%TYPE,

P_terminal_idINconsume_info.concume_machine_id%TYPE,

V_leftmoneynumber(10,2);

Selectcard_leftmoney

Intov_leftmoney

Wherecard_num=p_user_id;

Ifv_leftmoney>

p_consume_moneythen

Updateinfo_card

Setcard_leftmoney=card_leftmoney-p_consume_money

Insertintoconsume_info

Values(p_user_id,p_consume_money,to_char(sysdate,'

yyyy-mm-dd

hh:

),p_terminal_id);

P_show_message='

||p_user_id||'

消费成功!

P_show_message=‘用户’||p_user_id||'

消费失败!

Returnfa

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1