DBS数据库课程设计总结.docx
- 文档编号:11035256
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:21
- 大小:401.05KB
DBS数据库课程设计总结.docx
《DBS数据库课程设计总结.docx》由会员分享,可在线阅读,更多相关《DBS数据库课程设计总结.docx(21页珍藏版)》请在冰豆网上搜索。
DBS数据库课程设计总结
课程设计报告
课程设计题目:
个人理财系统
院系:
管理学院
2014年06月24日
目录
一、项目概述
1.1设计背景
1.2设计目的
1.3设计内容
二、需求分析
2.1业务流程
2.2功能分析
2.3数据流图
2.4数据字典
三、数据库设计
3.1概念结构设计(E-R图)
3.2逻辑结构
四、数据库建立
4.1表的创建
4.3数据代码
五、基于SQL或PLSQL的数据库重要功能模块实现及调试
一、项目概述
1.1设计背景
随着经济的不断发展,大众的经济意识也正在逐步增强,个人理财或者家庭理财越来越受到大众的重视。
并且理财是个人存储财富的一个重要手段,人们通过个人理财不仅仅可以对自己的财产进行合理管理,也可以通过对个人财务的管理增强个人成就感。
随着计算机网络时代的到来,运用计算机软件可以使我们更加方便、快捷地对个人财产进行管理。
而本次个人理财系统的设计就是设计一个系统来模仿我们平时生活中接触到的一个手机理财软件——随手记。
1.2设计目的
本次个人理财系统的设计目的主要是通过计算机对个人财产或者家庭财产进行有效管理。
将分为以下几步来实现设计个人理财系统的目的:
(1)对整个系统进行关系模式分析,根据数据库的相关理论,画出ER图,并进行相关说明。
(2)将ER图转化为关系模式,最终得出物理设计;
(3)根据数据库的物理设计,结合Oracle相关语言支持。
编写数据库各对象的创建及使用代码。
(4)从高级语言开发的角度出发,写出各模块所需的查询、数据操作及事务语句。
(4)从数据库底层开发的角度出发,建立各模块所需的视图、存储过程及触发器。
(5)提交完整的建库代码,并完成本报告。
1.3设计内容
(1).写出个人理财系统的需求分析,要求包括个人理财系统的数据流图、数据字典等。
(2).画出个人理财系统的E-R图。
(3).通过E-R图转化成为关系模型。
(4).建立个人理财系统的数据库。
二、需求分析
2.1业务流程
2.2功能分析
个人理财系统将实现以下三大功能:
(1)用户可以动态添加收入、支出的明细项,比如日常花了多少钱、某天收入多少、支出多少等。
(2)用户可以动态级联删除、修改、查询收入、支出的明细项,比如日常花了多少钱、某天收入多少、支出多少等。
(3)用户可以根据银行卡、投资情况进行添加、删除、修改。
(4)用户可以查看本月的收支明细,并提供汇总等功能。
2.3数据流图
2.3.1用户添加信息
2.3.2用户查询信息
2.3.3用户删除信息
2.3.4用户银行卡管理或者投资管理
2.4数据字典
2.4.1账户关系模式
列名
数据类型
宽度
约束
是否为空
说明
*账号
Char
20
主键
NOTNULL
姓名
Char
8
NOTNULL
出生日期
Date
NOTNULL
性别
Char
2
NOTNULL
身份证号
Char
20
NOTNULL
密码
Char
20
NOTNULL
2.4.2支出单关系模式
列名
数据类型
宽度
约束
是否为空
说明
*支出单号
Char
20
主键
NOTNULL
支出日期
Datetime
NOTNULL
支出用途
Char
150
支出金额
Int
20
NOTNULL
账号
Char
20
外键
NOTNULL
密码
Char
20
外键
NOTNULL
2.4.3收入单关系模式
列名
数据类型
宽度
约束
是否为空
说明
*收入单号
Char
20
主键
NOTNULL
收入日期
Datatime
NOTNULL
收入用途
Char
150
收入金额
Int
20
NOTNULL
账号
Char
20
外键
NOTNULL
密码
Char
20
外键
NOTNULL
2.4.4投资单关系模式
列名
数据类型
宽度
约束
是否为空
说明
*投资编号
Char
20
主键
NOTNULL
投资项目
Char
20
投资金额
Int
NOTNULL
账号
Char
20
外键
NOTNULL
密码
Char
20
外键
NOTNULL
2.4.5银行卡存款关系模式
列名
数据类型
宽度
约束
是否为空
说明
*银行卡号
Char
20
主键
NOTNULL
取款金额
Int
NOTNULL
账号
Char
20
外键
NOTNULL
密码
Char
20
外键
NOTNULL
2.4.5银行卡取款关系模式
列名
数据类型
宽度
约束
是否为空
说明
*银行卡号
Char
20
主键
NOTNULL
存款金额
Int
NOTNULL
账号
Char
20
外键
NOTNULL
密码
Char
20
外键
NOTNULL
三、数据库设计
3.1概念结构设计(E-R图)
3.2逻辑结构
用户(账号,姓名,出生日期,性别)
收入(收入单号,收入日期,收入金额,收入用途)
支出(支出单号,支出日期,支出金额,支出用途)
汇总(日期,总收入,总支出,当前金额)
投资表(投资编号,投资项目,投资金额,账号,密码)
银行卡取款表(银行卡号,取款金额,账号,密码)
银行卡存款表(银行卡号,存款金额,账号,密码)
四、数据库建立
(1).创建数据库“pfm.mdf”
CREATEDATABASEpfm
ON
(NAME=pfm_dat,
FILENAME='D:
\pfm.mdf')
(2).创建账户数据表“account”
usepfm
go
createtableaccount
(
账号Char(20)notnullprimarykey,
密码Char(20)notnull,
姓名Char(8)notnull,
出生日期datetimenotnull,
性别Char
(2)notnull,
身份证号Char(20)notnull,
)
(3)插入数据:
insertaccount
values('00001','王若楠',’941201’,'1994-12-1','女','13012819941201021')
(4).创建支出单数据表“payoutlist”
createtablepayoutlist
(
支出单号Char(20)notnullprimarykey,
支出日期Datetimenotnull,
支出金额intnotnull,
支出用途Char(20)notnull,
账号Char(20)notnull,
密码Char(20)notnull,
Foreignkey(账号)referencesaccount(账号)
Foreignkey(密码)referencesaccount(密码)
Ondeletecascade
/*用于当某个账户被删除时,所有与其相关的收入、支出也同时会被级联删除*/
Onupdatecascade
/*用于当某个账户被修改时,所有与其相关的收入、支出也同时会被级联修改*/
)
(5).创建收入单数据表“incomelist”
usepfm
go
createtableincomelist
(
收入单号Char(20)notnullprimarykey,
收入日期Datetimenotnull,
收入金额intnotnull,
收入用途Char(20)notnull,
账号Char(20)notnull,
密码Char(20)notnull,
Foreignkey(账号)referencesaccount(账号)
Foreignkey(密码)referencesaccount(密码)
Ondeletecascade
/*用于当某个账户被删除时,所有与其相关的收入、支出也同时会被级联删除*/
Onupdatecascade
/*用于当某个账户被修改时,所有与其相关的收入、支出也同时会被级联修改*/
)
(6).创建数据表“summarize”
usepfm
go
createtablesummarize
/*建立的汇总表包含总支出、总收入以及当前金额的信息*/
(
账号Char(20)notnullprimarykey,
密码Char(20)notnull,
总收入金额intnotnull,
总支出金额intnotnull,
当前金额intnotnull
Foreignkey(账号)referencesaccount(账号)
Foreignkey(密码)referencesaccount(密码)
Ondeletecascade
/*用于当某个账户被删除时,所有与其相关的收入、支出也同时会被级联删除*/
Onupdatecascade
/*用于当某个账户被修改时,所有与其相关的收入、支出也同时会被级联修改*/
)
(7)创建投资表“investlist”
createtableinvestlist
(
投资编号Char(20)notnullprimarykey,
投资项目Char(20)notnull,
投资金额intnotnull,
账号Char(20)notnull,
密码Char(20)notnull,
Foreignkey(账号)referencesaccount(账号)
Foreignkey(密码)referencesaccount(密码)
)
(8)创建银行卡存款表“deposit”
createtabledeposit
(
银行卡号Char(20)notnullprimarykey,
存款金额intnotnull,
账号Char(20)notnull,
密码Char(20)notnull,
Foreignkey(账号)referencesaccount(账号)
Foreignkey(密码)referencesaccount(密码)
)
(9)创建银行卡取款表“withdraw”
createtablewithdraw
(
银行卡号Char(20)notnullprimarykey,
取款金额intnotnull,
账号Char(20)notnull,
密码Char(20)notnull,
Foreignkey(账号)referencesaccount(账号)
Foreignkey(密码)referencesaccount(密码)
)
(10)插入收入数据
插入收入数据1
insertincomelist
values('00001','2014-6-25',3500,'工资所得','00001',’941201’)
插入收入数据2
insertincomelist
values('00002','2014-6-26',300,'收回欠款','00001',’941201’)
(11)插入支出数据
插入支出数据1
insertpayoutlist
values('00003','2014-6-27',100,'日常支出','00001',’941201’)
插入支出数据2
insertpayoutlist
values('00004','2014-6-29',500,'借给他人','00001',’941201’)
(12)插入投资数据
insertinvestlist
values('10000','股票投资',10000,'00001',’941201’)
(13)插入银行卡存款数据
insertdeposit
values('499444441523',10000,'00001',’941201’)
(14)插入银行卡取款数据
insertdeposit
values('499444441523',2000,'00001',’941201’)
(15)建立触发器
建立触发器目的是为了,当用户的收入、支出发生变化是,触发器可以使对应汇总的部分可以相应发生变化。
Createtriggertri_summarize
onincomelist
afterinsert
Asbegin
Insertsummeriaze
Selectincomelist.账号,sum(收入金额),sum(支出金额),sum(收入金额)-sum(支出金额)
Frompayoutlist,incomelist
Groupbyincomelist.账号;
End;
Createtriggertri_summarize1
onpayoutlist
afterinsert
Asbegin
Insertsummeriaze
Selectpayoutlist.账号,sum(收入金额),sum(支出金额),sum(收入金额)-sum(支出金额)
Frompayoutlist,incomelist
Groupbypayoutlist.账号;
End;
(16)查询
Select*
Fromaccount;
Select*
Frompayoutlist;
Select*
Fromincomelist;
Select*
Fromsummarize;
/*用于查询账户表、支出表、收入表、汇总表的信息*/
(17)删除账户
由于之前建立了级联删除的功能,所以在删除账户时,对应的收入、支出也会被删除
Delete
Fromaccount
Where账号=‘001’;
(18)删除收入/支出
删除收入
Delete
Fromincomelist
Where收入单号=‘001’;
删除支出
Delete
Frompayoutlist
Where支出单号=‘007’;
五、基于SQL或PLSQL的数据库重要功能模块实现及调试
(1).创建数据库“pfm.mdf”
(2).创建账户数据表“account”
插入数据:
(3).创建支出单数据表“payoutlist”
(4).创建收入单数据表“incomelist”
(6)插入收入数据
(7)插入支出数据
(8)查询
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DBS 数据库 课程设计 总结