个人记账系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库课程设计报告
课程设计题目:个人记账管理系统
学生姓名:付鹏亮 专 班 学 业:软件工程 软件工程 级:10211113 号:1021111305
指导教师:邓薇 邓薇
2011 年 11 月 25 日
4
东华理工大学
个人记账管理系统数据库的设计与实现 实验时间:2011.11.21实验时间:2011.11.21-2011.11.25 实验地点: 实验地点:软件楼 306 室 实验目的: 实验目的:通过本次课程设计让学生能够综合运用所学的关系数
据库原理知识解决并能设计一个实际问题, 进一步掌握数据库原理的 相关理论和数据库的设计实现过程, 进一步提高学生的分析问题和解 决问题的能力以及学生的动手能力。
实验要求: 实验要求:
1.对各个系统进行系统功能需求分析 2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出 数据库的 E-R 图(局部和整体 E-R 图) 3. 设计出详细的逻辑数据库结构, 将各个实体和联系转化为相应的二维表即关系模式, 指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定 4. 通过企业管理器或是查询分析器实现各个二维关系(建议最好用 SQL 代码实现), 要求建立相关的索引 5. 根据系统功能需求设计相应的查询视图 6. 要求根据系统功能需求建立存储过程 7. 根据功能需求建立相应的触发器以保证数据的一致性 8. 通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此 内容选作)
实验思路: 实验思路:
一.个人记账管理系统需求分析 个人记账管理系统需求分析
本系统具有如下功能模块: 本系统具有如下功能模块: (1). 系统管理模块:支出信息和收入信息查询。支出信息以表格的形式展 示,输入要查询的时间段,表内就会展示该时间段内的支出信息。收入信息查询 与支出信息查询类似。 (2). 基本信息管理模块:对家庭成员、支出、收入信息进行管理,可以进 行添加、修改和删除基本信息。
3
(3). 收支统计模块:对收支信息进行管理,可以结算所求时间段的收入和 支出总额,同时可以计算出余额。
Ⅰ.需求分析阶段的目标. 需求分析阶段的目标.
1.录入家庭成员信息; 2.给定家庭成员姓名,显示每位成员的收入情况; 3.给定家庭成员姓名,显示每位成员的支出情况; 4.对家庭人员信息进行维护;
5.对支出和收入项目进行维护。
Ⅱ.需求分析阶段的任务. 需求分析阶段的任务. 1.处理对象 1.处理对象
系统要处理的对象包括家庭成员信息、收入信息、支出信息、 汇总收支信息四个方面,各个信息包括如下信息 1) 家庭成员信息:包括 家庭人员、年龄、职业、政治面貌,
可以方便家庭成员信息的维护; 2) 收入信息:包括收入日期、收入项目、收入金额、收入人员, 可以方便收入信息的维护; 3) 支出信息:包括支出日期、支出项目、支出金额、支出人员, 可以方便支出信息的维护。 4) 汇总收支信息:包括登录时间、收支金额、收支项目、收支 人员,可以方便收入和支出明细。
2.处理功能要求 2.处理功能要求
系统主要完成以下几个功能: 1.家庭人员信息维护;
3
2.支出和收入项目维护; 3. 家庭人员的支出明细; 4. 家庭人员的收入明细;
3.安全性和完整性要求 3.安全性和完整性要求
安全性先通过试图机制,不同的用户只能访问系统授权的视图, 这样可以满足系统数据一定程度上的安全性,在通过用户授权机制, 用用户登入来识别用户级,根据这个级别来分配用户权限,达到更高 层次的安全保密功能。 安全性要求用于描述学生基本信息、课程基本信息及教师基本 信息的数据项能否为 NULL,以及一些用户自定义是否符合实际要求。
实验过程: 实验过程:
概念设计阶段. 二.概念设计阶段. ⒈学分管理系统的实体关系图及 E—R 图.
3
polite
age
prof
perso
Family
time
收 入
支 出
time
item
item
mone
Income
outcome
mone
Rela 输 入 输 入
Rela
perso
perso
time
Account
item
Type 计 算 Rela
mone
perso
逻辑设计阶段. 三.逻辑设计阶段.
3
图转换为关系模型: 将 E-R 图转换为关系模型: family:( person,age,polite,prof) Account:(iotime,iomoney,ioitem,ioperson) outcome:(time,money,item,person) income: (time,money,item,person)
income(收入信息表) income(收入信息表) 收入信息表
time 2011.11.2 1 2011.11.2 2 2011.11.2 3 item 工资 money 200 person 父母 父母 父母
工资和卖垃圾 250 工资和奖金 400
outcome(支出信息表) outcome(支出信息表) 支出信息表
time 2011-11-21 2011-11-22 2011-11-23 item 家用 家用和买书 家用和游玩 mone y 80 120 200 person 母亲 母亲和儿子 父母和儿子
family(家庭成员信息表) family(家庭成员信息表) 家庭成员信息表
Person 父亲 母亲 儿子 age 40 37 14 polite 党员 党员 团员 Prof 教师 教师 学生
3
Account(汇总收支信息表) Account(汇总收支信息表) 汇总收支信息表
iotime ioitem iomeney ioperson 3000 3500 3400 父母 父母和儿子 父母
2011-11-21 工资和家用 2011-11-22 工资和游玩 2011-11-23 工资和奖金
2011-11-24 工资和买书
3200
父母和儿子
数据库实施阶段. 四.数据库实施阶段.
1.创建表: 1.创建表: 创建表
create table family ( person char(20), age int, polite char(20), prof char(20)) create table account ( iotime char(20), iomoney int, ioitem char(20), ioperson char(20)) create table outcome ( time char(20), money int, item char(20), person char(20)) create table income ( time char(20), money int, item char(20), person char(20
2.创建触发器,保证数据一致性: 2.创建触发器,保证数据一致性: 创建触发器
4