个人信息管理数据库
编号:
桂林电子科技大学
课程设计说明书
课程名称: 题 目: 学 院: 专 业: 学 号: 姓 名: 指导教师:
数据库系统原理 个人信息管理 海洋信息工程学院 计算机科学与技术 1316040139 银 杰 宁 滔
2015年 12月30日
摘要
随着社会的不断进步,个人信息量也在不断的增多,为了避免混乱或忘记,个人信息的管理也显得越来越重要。个人信息管理通过对个人信息的统计、记录、整理分类、规整并给予实时更新等。
为了解决这个问题,我与邓昌鹏同学着手设计了这个简单的个人信息管理系统。本系统使用SQL Server 2008 数据库作为开发工具,结合个人信息的管理需求,设有通讯录模块,备忘录模块,日记模块,财务管理模块,实现了个人信息数据库的创建及数据的输入、浏览、查询等一些简单的功能。论文首先阐述了个人信息管理系统开发的背景、目的和意义,以及在本系统中使用的开发工具;接着对系统进行需求分析,得出个人信息管理的业务流和数据流,确定系统的大致功能;然后,进行系统的总体结构设计,对数据库设计进行详细的描述,接着重点介绍了系统功能模块的设计与实现;再就是系统的测试与维护;最后概括了系统的关键技术与特色,并对该系统的开发过程进行了总结。
关键词:个人信息管理;通讯录;日记;财务管理;SQL server。
目录
引言 ........................................................................................................................................................... 4 1 系统概论 ............................................................................................................................................. 4
§1.1 选题的背景、目的和意义 .................................................................................................... 4 §1.2 系统功能概述........................................................................................................................ 4 §1.3 系统的开发环境 .................................................................................................................... 5
§1.3.1 Microsoft SQL server 2008简介 ......................................................................... 5
2 系统分析 ............................................................................................................................................. 6
§2.1 系统可行性分析与抉择 ........................................................................................................ 6 §2.2 系统需求分析........................................................................................................................ 6 §2.3 系统业务流程图 .................................................................................................................... 7 §2.4 数据库设计E-R图 ................................................................................................................ 7 §2.5 数据字典 ............................................................................................................................... 9 3.数据库实施阶段 ............................................................................................................................... 10
§3.1建立数据库、数据表、视图、索引 ................................................................................... 10
§3.1.1 建立数据库 .............................................................................................................. 10 §3.1.2 建立数据表 .............................................................................................................. 10 §3.1.3 建立视图 .................................................................................................................. 11 §3.1.4 建立索引 .................................................................................................................. 12 §3.1.5建立触发器 ............................................................................................................... 12 §3.2数据入库 .............................................................................................................................. 13 §3.3存储定义 .............................................................................................................................. 14 4数据查看和删改等功能的验证 ........................................................................................................... 17
§4.1 基本表的数据查看( 基于视图查询) ................................................................................ 17 §4.2插入、删除和更改过程功能的验证 ................................................................................... 17 5运行所有的SQL语句........................................................................................................................... 19 结论 ......................................................................................................................................................... 26 参考文献 ................................................................................................................................................. 26
引言
近年来,随着科学技术的迅猛发展和管理水平的不断提高,计算机已经被广泛应用于日常管理之中,那么作为个人管理系统来说,开发一套完整的个人信息管理系统已是大势所趋。
如今个人信息的大量增多,传统的个人信息处理方法已经很难对大量的信息进行系统的统计,所以运用日益成熟的科学技术,开发一款个人信息管理系统,对用户的通讯录信息,包括通讯人姓名、联系方式、工作地点、城市、备注等;备忘录信息,包括什么时间、事件、地点等;日记信息;包括时间、地点、事情、人物等;个人财物管理,包括总收入,消费项目、消费金额、消费时间、剩余资金等复杂的信息进行有条理的统计也显得尤为重要。
个人信息管理系统对信息进行增加、删减、查找等操作,在现实生活中也是很有用的。
1 系统概论
§1.1 选题的背景、目的和意义
个人信息管理系统对个人信息从产生并获取、分类并记录、变更、分析与使用等方面进行的全过程管理活动。
所以通过数据库管理系统操纵和管理数据库,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。数据库管理系统能实现对数据的追加、删除等操作。
§1.2 系统功能概述
用户需要使用账号与密码通过登陆页面登陆个人信息管理系统,新用户可注册新账号登陆。登陆后进入系统主窗体,可对个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理进行操作。退出系统时返回登陆页面。本系统提供的的主要功能如下:
(1) 能对通讯录信息进行管理:添加、查询、修改、删除。
(2) 能对备忘录信息进行管理:添加、查询、修改、删除。 (3) 能对日记信息进行管理:添加、查询、删除。 (4) 能对个人财务进行管理:消费清单、消费汇总、添加。 (5) 能对个人信息进行管理。
§1.3 系统的开发环境
§1.3.1 Microsoft SQL server 2008简介
Microsoft SQL Server 2008 由一系列相互协作的组件构成,能满足最大的 Web 站点和企业数据处理系统存储和分析数据的需要。SQL Server 2008 体系结构描述了各种组件通过何种方式发挥合力,更富成效地管理数据。
(1)关系数据库组件 描述 SQL Server 2008 中主要的关系数据库组件,包括数据库引擎本身和应用程序与数据库引擎间通信所涉及的组件。
(2)数据库结构 描述 SQL Server 2008 中主要的关系数据库组件,包括数据库引擎本身和应用程序与数据库引擎间通信所涉及的组件。
(3)关系数据库引擎结构 描述服务器引擎的各项功能。这些功能使服务器引擎得以高效地处理大量并发用户的数据要求。
(4)复制体系结构 描述 SQL Server 2008 的复制组件以及如何使用这些组件在数据库间分发数据。
(5)应用程序开发体系结构 描述 SQL Server 2008 如何支持各类数据库编程 API,使用户能够创建可靠的数据库应用程序。
(6)数据仓库和OLAP 描述数据转换服务(DTS)和Microsoft SQL Server 2000 OLAP,以及这些服务如何帮助生成和分析数据仓库或数据集市。
Microsoft SQL Server 2008 是一系列产品,主要用来储存大型数据处理系统和商业 Web 站点的数据,同时为个人和小公司提供易于使用的数据存储服务。本系统主要是要通过数据库来存储大量的人力资源管理过程中的人员信息及工资考勤信息。由Microsoft 公司开发的 SQL Server 2008 具有使用方便、可伸缩性好、与相关软件集成程度高等优点。在改进 SQL Server 7.0 系列所实现的安全机制的过程中,Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问 SQL Server 服务器系统和数据库的安全进行全面地管理,读者可以为SQL Server 2008构造出一个灵活的、可管理的安全策略,而且它的安全性经得起考验。并且它和 Microsoft 公司开发的Windows 操作系统兼容性很好,逐渐成为 Windows 平台下进行数据库应用开发较为理想的选择之一。
鉴于 SQL Server 2008 所具有的以上种种的优点,本系统决定选择 SQL Server 2008 作为后台数据库的开发工具。
2 系统分析
§2.1 系统可行性分析与抉择
可行性分析是指在当前组织内外的具体条件下,系统开发工作必须具备资源和条件,看其是否满足系统目标的要求。在系统开发过程中进行可行性分析,对于保证资源的合理使用,避免浪费和一些不必要的失败,都是十分重要的。 (1)目标和方案的可行性
个人信息管理系统功能基本要求通讯录信息,包括通讯人姓名、联系方式、工作地点、城市、备注等;备忘录信息,包括什么时间、事件、地点等;日记信息,包括时间、地点、事情、人物等;个人财物管理,包括总收入,消费项目、消费金额、消费时间、剩余资金等。
§2.2 系统需求分析
在开发一个系统的时候,最重要的环节就是进行需求分析。需求分析这一步工作的质量对于整个系统开发的成败来说都是决定性的。需求分析做好了,下面的系统设计就能很好地按照需求分析来展开,一旦需求分析做得不严谨,就会导致系统开发过程中出现错误或漏洞。所以完成系统的需求分析对于系统开发来说是至关重要的。进行需求分析,应该要对用户情况进行调研,只有很好地了解了用户的需求,才能设计出功能齐备、可用性高、令用户满意的系统。通过搜集、整理该用户个人资料,对个人信息管理系统的系统构架进行了如下的分析:设计个人信息管理系统数据库需要可以对个人信息、日记、备忘录、通讯录、个人财务等方面进行修改、添加。即数据库要包括个人信息管理、通讯录管理、日记管理、备忘录管理、个人财务管理等模块。
§2.3 系统业务流程图
§2.4 数据库设计E-R图
§2.5 数据字典
(4)个人财务管理
3.数据库实施阶段
§3.1建立数据库、数据表、视图、索引
§3.1.1 建立数据库
create database 个人信息管理系统;
§3.1.2 建立数据表
(1)通讯录信息表的建立: create table 通讯录 (
联系人姓名 char(20) primary key not null, 工作地点 char(40) null, 所在城市 char(40) null, 备注 char(50) null, )
create table 联系方式 (
联系人姓名 char(20) primary key not null, 手机 char(11) not null default ('空'), QQ char(15) null default ('空'), 其它 char(20) null default ('空'), )
(2)日记信息表的建立: create table 日记 (
人物 char(20) primary key not null, 事件 char(50) not null, 地点 char(20) null, 时间 char(20) null, )
create table 人物 (
姓名 char(20) primary key not null, 性别 char(5) null default ('男'), check(性别 ='男' or 性别 ='女') )
(3)备忘录信息表的建立:
create table 备忘录
(
人物 char(20) primary key not null,
事件 char(50) not null,
地点 char(20) null,
时间 datetime null,
)
(4)财务管理信息表的建立:
create table 个人财务管理
(
总收入 int null,
消费项目 char(40) not null,
消费金额 int null,
消费时间 datetime null,
剩余金额 int null,
)
§3.1.3 建立视图
(1)用于查询通讯录的视图定义如下:
create view 通讯录_view (联系人姓名,工作地点,所在城市,备注,手机,QQ,其它) as
Select 通讯录.联系人姓名,工作地点,所在城市,备注,手机,QQ,其它
from 通讯录,联系方式
where 通讯录.联系人姓名=联系方式.联系人姓名
(2)用于查询日记的视图定义如下:
create view 日记_view (人物,性别,事件,地点,时间)
as
Select 人物,性别,事件,地点,时间
from 日记,人物
where 日记.人物=人物.姓名
(3)用于查询备忘录的视图定义如下:
create view 备忘录_view(人物,事件,地点,时间)
as select*
from 备忘录
(4)用于查询财务管理的视图定义如下:
create view 个人财务管理_view(总收入,消费项目,消费金额,消费时间,剩余金额) as select*
from 个人财务管理
§3.1.4 建立索引
Create UNIQUE index 联系人姓名 on 通讯录(联系人姓名)
Create UNIQUE index 人物 on 日记(人物)
Create clustered index 消费项目 on 个人财务管理(消费项目)
§3.1.5建立触发器
(1)当增加 通讯录 表中某一联系人时,触发 联系方式 表,增加相应的记录 Create Trigger 通讯录_ins
On 通讯录
for insert
As
insert into 联系方式(联系人姓名)select 联系人姓名 from inserted
(2)当删除 通讯录 表中某一联系人时,触发 联系方式 表,删除相应的记录 Create trigger 通讯录_Del
On 通讯录
for Delete
As
Delete 联系方式
where 联系方式.联系人姓名=(select 联系人姓名 from deleted)
(3)当增加 日记 表中某一联系人时,触发 人物 表,增加相应的记录
Create Trigger 日记_ins
On 日记
for insert
As
insert into 人物(姓名)select 人物 from inserted
(4)当删除 日记 表中某一联系人时,触发 人物 表,删除相应的记录
Create trigger 日记_Del
On 日记
for Delete
As
Delete 人物Where 姓名=(select 人物 from deleted)
(5)当增加 个人财务管理 表中某一消费项目时,触发 个人财务管理 表自身,为该消费项目设置剩余金额
create trigger 个人财务管理_ins
on 个人财务管理
for insert
as
update 个人财务管理 set 剩余金额=总收入-消费金额
(6) 在中修改一条 财务管理 记录
create trigger个人财务管理_up
on 个人财务管理
for update
as
if(update(剩余金额))
begin
print('严重警告:剩余金额不能更改')
Rollback transaction
end
else
update 个人财务管理 set 剩余金额=总收入-消费金额
where 消费项目 in (select 消费项目 from inserted)
print('修改成功')
§3.2数据入库
系统包括通讯录、日记、备忘录、财务管理等四大功能模块,共有 6 张基本表,直接用SQL语句输入到相应的基本表中,当然也能用Excel进行导入,由于数据比较少,所以直接使用SQL语句进行数据入库了。
(1)通讯录 表的输入:
insert into 通讯录
values('银杰','桂电北海校区','广西北海','学生')
insert into 通讯录
values('邓昌鹏','桂电北海校区','广西北海','学生,品学兼优')
insert into 通讯录
values('宁老师','桂电北海校区','广西北海','老师,性格和蔼,热心帮助学生')
(2)联系方式 表的输入:
insert into 联系方式
values('银杰','[1**********]','9876543','邮箱')
insert into 联系方式
values('邓昌鹏','[1**********]','9876521','微信')
insert into 联系方式
values('宁老师','[1**********]','9876509','微博')
(3)日记 表的输入:
insert into 日记
values('银杰','看书','图书馆','2015-12-12')
insert into 日记
values('邓昌鹏','打篮球','学校操场','2015-12-25')
insert into 日记
values('宁老师','监考','8教','2015-12-30')
(4)人物 表的输入:
insert into 人物
values('银杰','男')
insert into 人物
values('邓昌鹏','男')
insert into 人物
values('宁老师','男')
(5)备忘录 表的输入:
insert into 备忘录
values('银杰','帮同学修电脑','某宿舍','2016-1-11')
insert into 备忘录
values('邓昌鹏','考试','2教','2016-1-18')
insert into 备忘录
values('宁老师','讲课','5教','2016-1-18')
(6)财务管理 表的输入:
insert into 个人财务管理
values('900','水费','20','2015-12-11','880')
insert into 个人财务管理
values('900','电费','50','2015-12-12','830')
insert into 个人财务管理
values('900','伙食费','500','2015-12-13','330')
§3.3存储定义
(1)在通讯录中插入一元组
create procedure 通讯录_insert
@联系人姓名 char(20) ,
@工作地点 char(40),
@所在城市 char(40),
@备注 char(50)
as
insert into 通讯录
values(@联系人姓名,@工作地点,@所在城市,@备注);
(2)在联系方式中插入一元组
create procedure 联系方式_insert
@联系人姓名 char(20) ,
@手机 char(11),
@QQ char(15),
@其它 char(20)
as
insert into 联系方式
values(@联系人姓名,@手机,@QQ,@其它);
(3)在日记中插入一元组
create procedure 日记_insert
@人物 char(20) ,
@事件 char(50),
@地点 char(20),
@时间 char(20),
as
insert into 日记
values(@人物,@事件,@地点,@时间);
(4)在人物表中插入一元组
create procedure 人物_insert
@姓名 char(20) ,
@性别 char(5),
as
insert into 人物
values(@姓名,@性别);
(5)在备忘录中插入一元组
create procedure 备忘录_insert
@人物 char(20) ,
@事件 char(50),
@地点 char(20),
@时间 datetime,
as
insert into 备忘录
values(@人物,@事件,@地点,@时间);
(6)在个人财务管理中插入一元组
create procedure 个人财务管理_insert
@总收入 int ,
@消费项目 char(40),
@消费金额 int,
@消费时间 datetime,
@剩余金额 int
as
insert into 个人财务管理
values(@总收入,@消费项目,@消费金额,@消费时间,@剩余金额);
(7)在通讯录中查看所有的信息
create procedure Query_通讯录
as
select *
from 通讯录_view;
(8)在日记中查看所有的信息
create procedure Query_日记
as
select *
from 日记_view
(9)在备忘录中查看所有的信息
create procedure Query_备忘录
as
select *
from 备忘录_view
(10)在个人财务管理中查看所有的信息
create procedure Query_个人财务管理
as
select *
from 个人财务管理_view
(11)在通讯录中删除一元组
create procedure 通讯录_Delete
@联系人姓名 char(20)
as
delete
from 通讯录
where 联系人姓名 = ltrim(@联系人姓名);
drop procedure 通讯录_Delete
(12)在日记中删除一元组
create procedure 日记_Delete
@人物 char(20)
as
delete
from 日记
where 人物 = ltrim(@人物);
(13)在个人财务管理中删除一元组
create procedure 个人财务管理_Delete
@消费项目 char(20)
as
delete
from 个人财务管理
where 消费项目 = ltrim(@消费项目);
4数据查看和删改等功能的验证
§4.1 基本表的数据查看( 基于视图查询)
(1)查看通讯录中的数据:
(2) 查看日记中的数据:
(3)查看备忘录中的数据:
(4)查看 个人财务管理view 表中的数据
§4.2插入、删除和更改过程功能的验证
(1)在通讯录中插入数据的功能验证:
(2)在通讯录中删一组元数据的功能验证:
(3)在日记中插入数据的功能验证:
(4)在日记中删除数据的功能验证:
(5)个人财务管理插入数据功能的验证:(设置更新的财务情况)
设置了剩余金额不能更改 否则警告 由于触发器设置的剩余金额=总收入-消费金额,当更新为满足触发器设置的公式要求时,提示修改成功
(6)在个人财务管理中删除数据的功能验证:
5运行所有的SQL语句
/*建立数据库*/
createdatabase个人信息管理系统;
/*创建数据表*/
createtable通讯录
(
联系人姓名char(20)primarykeynotnull,
工作地点char(40)null,
所在城市char(40)null,
备注 char(50) null,
)
createtable联系方式
(
联系人姓名char(20)primarykeynotnull,
手机char(11)notnulldefault ('空'),
QQchar(15)nulldefault ('空'),
其它char(20)nulldefault ('空'),
)
createtable日记
(
人物char(20)primarykeynotnull,
事件char(50)notnull,
地点char(20)null,
时间char(20)null,
)
createtable人物
(
姓名char(20)notnull,
性别char(5)nulldefault ('男'),
check (性别='男'or性别='女'),
)
createtable备忘录
(
人物char(20)primarykeynotnull,
事件char(50)notnull,
地点char(20)null,
时间datetimenull,
)
createtable个人财务管理
(
总收入intnull,
消费项目char(40)notnull,
消费金额intnull,
消费时间datetimenull,
剩余金额intnull,
)
/*数据的录入*/
insertinto通讯录
values('银杰','桂电北海校区','广西北海','学生')
insertinto通讯录
values('邓昌鹏','桂电北海校区','广西北海','学生,品学兼优')
insertinto通讯录
values('宁老师','桂电北海校区','广西北海','老师,性格和蔼,热心帮助学生')
insertinto联系方式
values('银杰','[1**********]','9876543','邮箱')
insertinto联系方式
values('邓昌鹏','[1**********]','9876521','微信')
insertinto联系方式
values('宁老师','[1**********]','9876509','微博')
insertinto日记
values('银杰','看书','图书馆','2015-12-12')
insertinto日记
values('邓昌鹏','打篮球','学校操场','2015-12-25')
insertinto日记
values('宁老师','监考','8教','2015-12-30')
insertinto人物
values ('银杰','男')
insertinto人物
values ('邓昌鹏','男')
insertinto人物
values ('宁老师','男')
insertinto备忘录
values('银杰','帮同学修电脑','某宿舍','2016-1-11')
insertinto备忘录
values('邓昌鹏','考试','2教','2016-1-18')
insertinto备忘录
values('宁老师','讲课','5教','2016-1-18')
insertinto个人财务管理
values('900','水费','20','2015-12-11','880')
insertinto个人财务管理
values('900','电费','50','2015-12-12','830')
insertinto个人财务管理
values('900','伙食费','500','2015-12-13','330')
/*创建索引*/
CreateUNIQUEindex联系人姓名on通讯录(联系人姓名)
CreateUNIQUEindex人物on日记(人物)
Createclusteredindex消费项目on个人财务管理(消费项目)
/*创建视图,视图创建时,应该一个一个的创建*/
createview通讯录_view(联系人姓名,工作地点,所在城市,备注,手机,QQ,其它) as
Select通讯录.联系人姓名,工作地点,所在城市,备注,手机,QQ,其它
from通讯录,联系方式where通讯录.联系人姓名=联系方式.联系人姓名
createview日记_view(人物,性别,事件,地点,时间)
as
Select人物,性别,事件,地点,时间
from日记,人物where日记.人物=人物.姓名
createview备忘录_view(人物,事件,地点,时间)
as
select*from备忘录
createview个人财务管理_view(总收入,消费项目,消费金额,消费时间,剩余金额) as
select*from个人财务管理
/*建立触发器,执行时也要一个一个的执行*/
CreateTrigger通讯录_ins
On通讯录
Forinsert
As
Insertinto联系方式(联系人姓名)
select联系人姓名frominserted
Createtrigger通讯录_Del
On通讯录
forDelete
As
begin
declare@联系人姓名char(20)
select@联系人姓名=联系人姓名
fromdeleted
Delete联系方式
where联系人姓名=@联系人姓名
end
CreateTrigger日记_ins
On日记
forinsert
As
insertinto人物(姓名)
select人物frominserted
Createtrigger日记_Del
On日记
forDelete
As
Delete人物
Where姓名=(select人物fromdeleted)
createtrigger个人财务管理_ins--建立个人财务管理的插入触发器
on个人财务管理
forinsert
as
update个人财务管理
set剩余金额=总收入-消费金额
/*存储定义*/
createprocedure通讯录_insert--在通讯录中插入一元组
@联系人姓名char(20),
@工作地点char(40),
@所在城市char(40),
@备注 char(50)
as
insertinto通讯录
values(@联系人姓名,@工作地点,@所在城市,@备注);
createprocedure联系方式_insert--在联系方式中插入一元组
@联系人姓名char(20),
@手机char(11),
@QQchar(15),
@其它char(20)
as
insertinto联系方式
values(@联系人姓名,@手机,@QQ,@其它);
createprocedure日记_insert--在日记中插入一元组
@人物char(20),
@事件char(50),
@地点char(20),
@时间char(20)
as
insertinto日记
values(@人物,@事件,@地点,@时间);
createprocedure人物_insert--在人物表中插入一元组
@姓名char(20),
@性别char(5)
as
insertinto人物
values(@姓名,@性别);
createprocedure备忘录_insert--在备忘录中插入一元组
@人物char(20),
@事件char(50),
@地点char(20),
@时间datetime
as
insertinto备忘录
values(@人物,@事件,@地点,@时间);
createprocedure个人财务管理_insert--在个人财务管理中插入一元组
@总收入int,
@消费项目char(40),
@消费金额int,
@消费时间datetime,
@剩余金额int
as
insertinto个人财务管理
values(@总收入,@消费项目,@消费金额,@消费时间,@剩余金额);
createprocedureQuery_通讯录--在通讯录中查看所有的信息
@联系人姓名char(20)
as
select*from通讯录_view
where联系人姓名=ltrim(@联系人姓名);
dropprocedureQuery_通讯录
createprocedureQuery_日记--在日记中查看所有的信息
@人物char(20)
as
select*from日记_view
where人物=ltrim(@人物);
dropprocedureQuery_日记
createprocedureQuery_备忘录--在备忘录中查看所有的信息
@人物char(20)
as
select*from备忘录_view
where人物=ltrim(@人物);
createprocedureQuery_个人财务管理--在个人财务管理中查看所有的信息 @消费项目char(40)
as
select*from个人财务管理_view
where消费项目=ltrim(@消费项目);
createprocedure通讯录_Delete--在通讯录中删除一元组
@联系人姓名char(20)
as
delete
from通讯录
where联系人姓名=ltrim(@联系人姓名);
createprocedure日记_Delete--在日记中删除一元组
@人物char(20)
as
delete
from日记
where人物=ltrim(@人物);
createprocedure个人财务管理_Delete--在个人财务管理中删除一元组
@消费项目char(20)
as
delete
from个人财务管理
where消费项目=ltrim(@消费项目);
/*查看表中的数据(基于视图查询)*/
select*from通讯录_view
select*from日记_view
select*from备忘录_view
select*from个人财务管理_view
/*执行存储过程*/
Query_通讯录'银杰'
Query_日记'邓昌鹏'
Query_个人财务管理'水费'
exec通讯录_insert'杰哥','桂电尧山校区','广西桂林','银杰的兄弟';
select*from通讯录_view
exec日记_insert'杰哥','打LOL','宿舍','2016-1-2';
select*from日记_view
--篇幅限制,只给出通讯录和日记的插入执行情况
/*个人财务管理的验证*/
exec个人财务管理_insert'900','其它费','300','2015-12-13','';
select*from个人财务管理_view
/*个人财务管理的插入和更新的触发器不同时执行*/
createtrigger个人财务管理_up--建立个人财务管理的更新触发器
on个人财务管理
forupdate
as
if(update(剩余金额))
begin
print('严重警告:剩余金额不能更改')
Rollbacktransaction
end
else
begin
update个人财务管理set剩余金额=总收入-消费金额
where消费项目in(select消费项目frominserted)
print('修改成功')
end
update个人财务管理set消费金额=200
where消费项目='伙食费'
select*from个人财务管理_view
update个人财务管理set剩余金额=200
where消费项目='电费'
select*from个人财务管理_view
/*删除验证*/
exec通讯录_Delete'杰哥'
exec日记_Delete'杰哥'
exec个人财务管理_Delete'其它费'
结论
这一次课程设计,从开始到结束我感触颇多。
本次课程设计,我实现的功能很简单,但是十分考验对数据库的基础知识,建库,建表,插入数据,慢慢的一步一步的做出来,感到十分的不易,因为当时学的时候没有多认真,导致很多地方不理解,只能死板硬套,往往很简单的步骤会做的很麻烦,但是唯有自己做过才可以感受得到。
这次数据库的设计课程,我从中吸取了很多经验,其中非常重要的一点就是基础知识一定要打牢固,因为数据库的很多地方都是在简单的基础之上去扩展的,所以基础才是做好数据库的必要条件,也是首要条件。
当然,但是也是想过做一下登录的界面的,但是在网上看到了很多都是用Java编写的 ,这就超出本次实验设计的范畴了,所以我们就弄了系统的数据库实现部分。
课程设计之中的E-R图我虽然不是第一次做,但是以前都是老师手把手地教,当自己做的时候才知道了许多平时忽略的地方,这些地方就大大的阻碍了自己的进度,从中我也懂得了细节决定成败!
本次的课程设计我认为我还是欠缺了许多,许多的数据库的功能无法通语句实现,因此还需要努力,感谢授课老师以及帮助过我的搭档邓昌鹏!
参考文献
[1] 数据库技术及应用实验与课程设计教程柳玲等清华大学出版社
[2] 数据库原理及技术钱雪忠等清华大学出版社
[3] 实例1.图书管理系统宁滔桂林电子科技大学
[4] 个人信息管理系统数据库_百度文库蒋彬