个人信息管理系统后台数据库设计.docx
《个人信息管理系统后台数据库设计.docx》由会员分享,可在线阅读,更多相关《个人信息管理系统后台数据库设计.docx(72页珍藏版)》请在冰豆网上搜索。
个人信息管理系统后台数据库设计
1需求分析
1.1系统功能结构图
1.1.1系统功能图如下所示
图1--1
查看记录
添加记录
查看日志
写日志
财务总况
财务清单
收入情况
支出情况
添加记录
查看个人信息
修改个人信息
查看备忘
添加备忘
1.1.2流程分析
用户需要使用账号和密码通过登录界面登录个人信息管理系统,新用户可以注册账号进行登录。
登陆后进入系统主窗体,可对个人信息管理、通讯录管理、日程安排管理、个人财务管理进行操作。
退出系统时返回登陆页面。
1.1.3系统功能分析
个人信息管理系统主要由:
个人信息管理、通讯录管理、日程安排管理、个人财务管理等模块组成。
进入系统后,用户可以对系统中的信息进行查询、添加、修改、删除等操作。
有以下功能:
1.个人信息:
包括个人姓名、性别、出生日期、民族、学历、电话、邮箱、工作单位、地址、
2.QQ等。
3.通讯录信息:
包括通讯人姓名、联系方式、工作地点、所在城市、备注等。
4.个人财务信息:
包括总收入,消费项目、消费金额、消费时间、余额等。
1.2数据流图
由以上的需求分析,可以得到各种数据项,数据流向,数据处理过程以及最终的数据
1.2.1顶级数据流图
图1-2
1.2.2第二级数据流图
图1-3
1.2.3第三级数据流图
个人信息数据
备忘录数据
通讯录信息
登录失败报告
登录
注册
日记数据
注册失败报告
财务数据
1.3数据字典
数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
数据流程图描述了系统的分解,即描述了系统由哪几部分组成、各部分之间的联系等。
在此系统中涉及到的数据字典如下:
1.3.1个人信息数据信息
(1)数据项描述
数据项:
用户编号
含义说明:
唯一标识每个用户
别名:
uname
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
用户年龄
含义说明:
标识每个用户年龄
别名:
uage
类型:
字符型
长度:
0至2
取值范围:
00到99
取值含义:
无
数据项:
用户出生日期
含义说明:
标识每个用户生日
别名:
ubirthday
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
用户电话
含义说明:
标识每个用户联系号码
别名:
utel
类型:
字符型
长度:
0至11
取值范围:
00000000000到99999999999
取值含义:
无
数据项:
用户职业
含义说明:
标识每个用户的工作名称
别名:
ujob
类型:
字符型
长度:
0至30
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
用户地址
含义说明:
标识每个用户的住址
别名:
uplace
类型:
字符型
长度:
0至30
取值含义:
无
数据项:
用户性别
含义说明:
标识每个用户的性别
别名:
usex
类型:
字符型
长度:
0至2
取值范围:
00到99
取值含义:
无
(2)数据结构
数据结构名:
用户
含义说明:
是个人信息系统的主体数据结构,定义了一个用户的有关信息
组成:
姓名,年龄,性别,出生日期,电话,QQ,职业,地址
(3)数据流
数据结构名:
用户添加信息
说明:
用户添加有关各种自己的信息
数据流来源:
用户
数据流去想:
保存
(4)数据存储
数据存储名:
用户表
说明:
记录用户的信息
流入数据:
来源用户
流出数据:
无
1.3.2通讯录
(1)数据项描述
数据项:
用户编号
含义说明:
唯一标识每个用户
别名:
uname
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
联系人编号
含义说明:
唯一标识每个联系人
别名:
name
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
与用户关系
含义说明:
标识与用户关系
别名:
relation
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
联系人电话
含义说明:
标识每个用户联系号码
别名:
tel
类型:
字符型
长度:
0至11
取值范围:
00000000000到99999999999
取值含义:
无
数据项:
联系人QQ
含义说明:
标识每个用户网络联系方式
别名:
QQ
类型:
字符型
长度:
0至15
取值范围:
000000000000000到999999999999999
取值含义:
无
(2)数据结构
数据结构名:
联系人
含义说明:
是通讯录的主体定义了一个联系人的有关的信息
组成:
用户名,姓名,关系,电话,QQ,地址
(3)数据流
数据流名:
添加的联系人信息
说明:
联系人的各种信息
数据来源:
用户
数据流向:
保存
(4)数据存储
数据存储名:
通讯录表
说明:
记录联系人的信息
流入数据流:
用户
流出数据流:
无
1.3.3日记本
(1)数据项
数据项:
用户编号
含义说明:
唯一标识每个用户
别名:
uname
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
日记主题
含义说明:
日记的标题
别名:
title
类型:
字符型
长度:
0至20
取值范围:
00000000000000000000到99999999999999999999
取值含义:
无
数据项:
日记添加时间
含义说明:
写日记的时间
别名:
addtime
类型:
字符型
长度:
0至10
取值含义:
无
数据项:
事件发生地点
含义说明:
发生事件的地方
别名:
place
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
事件
含义说明:
发生事件的具体的内容
别名:
things
类型:
字符型
长度:
0至50
取值含义:
无
(2)数据结构
数据结构名:
日记
含义说明:
定义了有关日记的内容
组成:
用户名,主题,添加时间,地点,内容
(3)数据流
数据流名:
添加日记内容
说明:
添加日记的内容
数据来源:
用户
数据流向:
保存
(4)数据存储
数据存储名:
日记表
说明:
记录日记的内容
流入数据流:
来源用户
流出数据流:
无
1.3.4备忘录
(1)数据项
数据项:
用户编号
含义说明:
唯一标识每个用户
别名:
uname
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
提醒时间
含义说明:
被提醒的时间
别名:
btime
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
被提醒的事件发生地点
含义说明:
发生事件的地方
别名:
place
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
事件
含义说明:
发生事件的具体的内容
别名:
things
类型:
字符型
长度:
0至50
取值含义:
无
数据项:
备忘录添加时间
含义说明:
添加备忘的时间
别名:
addtime
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
(2)数据结构
数据结构名:
备忘录
含义说明:
定义了被提醒的事情内容
组成:
用户名,时间,地点,事件,添加时间
(3)数据流
数据流名:
添加备忘内容
说明:
添加的备忘的有关内容
数据流来源:
用户
数据流去向:
保存
(4)数据存储
数据存储名:
备忘录表
说明:
记录备忘录的内容
流入数据流:
来源用户
流出数据流:
无
1.3.5财务表
(1)数据项
数据项:
用户编号
含义说明:
唯一标识每个用户
别名:
uname
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
数据项:
项目
含义说明:
支出或是收入
别名:
project
类型:
字符型
长度:
0至30
取值含义:
无
数据项:
数额
含义说明:
收入或是支出的数目
别名:
imoney
类型:
整数型
取值含义:
无
数据项:
财务记录添加时间
含义说明:
财务记录的时间
别名:
addtime
类型:
字符型
长度:
0至10
取值范围:
0000000000到9999999999
取值含义:
无
(2)数据结构
数据结构名:
财务记录
含义说明:
定义了有关财务记录的信息
组成:
用户名,项目,数额,添加时间
(3)数据流
数据流名:
财务添加记录‘
说明:
添加的记录信息
数据流来源:
用户
数据去向:
保存
(4)数据存储
数据存储名:
财务记录表
说明:
记录有关支出和收入的内容
流入数据流:
用户
流出数据流:
无
2概念设计
基本项构思ERD的四项基本原则:
(1)原则1(确定实体):
能独立存在的事物,例如人,物,事,地,团体,机构等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。
(2)原则2(确定联系):
两个或多个实体间的关联与结合,如主管,从属,组成,占有,包含,配合等等,当需要予以关注时,应作为联系。
实体间的联系可划分为一对一,一对多,多对多等三类,在确定联系时还要确定其类型。
(3)原则3(确定属性):
实体的属性是实体的本质特征。
实体应有标志属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识,联系的属性是联系的结果或状态。
(4)原则4(一事一地):
信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。
经过上述系统功能分析和需求总结,设计如下面所示的E-R图。
2.1分E-R图
(1)个人信息:
用户ID,用户密码,姓名,性别,出生日期,QQ,电话,工作单位地址,电话,QQ,职业,爱好
图2-1
2.1.2日记本:
标识,时间,地点,事件,主题
图2-2
2.1.3备忘录:
标识,时间,地点,事件。
图2-3
2.1.4个人财务:
标识,收入,支出,消费项目,消费金额,消费时间,记录添加时间
图2-4
4.2总E-R图
N
M
N
M
M
N
M
N
图2-5
3逻辑设计
3.1关系模式转化
关系模型的逻辑结构是一组关系模式的集合,将E-R图转换为关系模型就是要将实体型,实体的属性和实体型之间的联系转换为关系模式。
由ERD导出一般关系模型的四条原则:
(1)一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(2)一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
(3)一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系项连接的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
由此可得到如下关系
用户(帐号,密码,姓名,性别,年龄,出生日期,地址,电话,QQ,职业,爱好)
日记(用户名,记录时间,标题,时间,地点,事件)
备忘录(用户名,记录时间,时间,地点,事件)
通讯录(用户名,姓名,电话,地址)
财务管理(用户名,项目,收入,支出,数额,添加时间,时间)
3.2关系模式规范化
经过分析分析,必须将财务管理用投影分解发分解成支出表和收入表,不然删除支出或是收入时都会错误删除另一项,可等规范化的3NF如下:
用户(姓名,性别,年龄,出身日期,地址,电话,QQ,职业)
日记(用户名,记录时间,标题,时间,地点,事件)
备忘录(用户名,记录时间,时间,地点,事件)
通讯录(用户名,姓名,电话,地址)
收入(用户名,项目,数额,添加时间,收入)
支出(用户名,项目,支出,数额,添加时间)
3.3表的确定
3.3.1用户表yhb的确定
字段名
数据类型
字段长度与格式
主键
uName
VARCHAR
10
是
uage
NUmBER
/
否
ubirthday
Archar
10
否
utel
VARCHAR
11
否
uQQ
VARCHAR
15
否
ujob
VARCHAR
30
否
uPlace
VARCHAR
30
否
Usex
VARCHAR
2
否
3.3.2通讯录表txl的确立
字段名
数据类型
字段长度与格式
主键
uname
VARCHAR
20
是
name
VARCHAR
10
否
relation
VARCHAR
10
否
place
VARCHAR
30
否
tel
VARCHAR
11
否
QQ
VARCHAR
15
否
3.3.3日记表rjb的确立
字段名
数据类型
字段长度与格式
主键
uname
VARCHAR
20
是
title
VARCHAR
20
否
addtime
Varchar
10
否
place
VARCHAR
10
否
things
Varchar
50
否
3.3.4备忘录表BWL的确定
字段名
数据类型
字段长度与格
主键
uname
VARCHAR
20
是
btime
varchar
10
否
place
varchar
30
否
things
varchar
50
否
addtime
varchar
10
否
3.3.5收入表的确定
字段名
数据类型
字段长度与格式
主键
uname
VARCHAR
20
是
project
VARCHAR
30
否
imoney
NUMBER
8,2
否
addtime
DATE
/
否
Income
NUMBER
/
否
3.3.6支出表的确立
字段名
数据类型
字段长度与格式
主键
uname
VARCHAR
20
是
project
VARCHAR
30
否
imoney
NUMBER
8,2
否
addtime
DATE
/
否
Out
NUMBER
/
否
4.物理设计与实现
4.1创建数据库
4.2创建表
4.2.1创建用户表
USEgrxx
GO
CREATETABLEyhb
(
unamevarchar(10)PRIMARYKEY,
uageintNULL,
ubirthdaydatetimeNULL,
utelvarchar(11)NULL,
uqqVarChar(15)NULL,
ujobvarchar(30)null,
uplacevarchar(30)null,
usexvarchar
(2)null
);
4.2.2创建通讯录表
4.2.3创建备忘录表
4.2.4创建收入表income
4.2.4创建支出表
4.2.5创建日记表
4.3数据插入
4.3.1在用户表中插入数据
USEgrxx
GO
insertintoyhb
values
(
'黄茂',23,'5月日','136****8921',
'145812478','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'李霞',22,'11月日','178****2456',
'145476548','学生','武昌分校','女'
)
go
insertintoyhb
values
(
'戟长峰',24,'8月日','186****8145',
'375364119','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'山云利',24,'7月日','136****3303',
'15842586','学生','武昌分校','女'
)
go
insertintoyhb
values
(
'谭小小',22,'12月日','158****2156',
'58741254','学生','武昌分校','女'
)
go
insertintoyhb
values
(
'李云',23,'4月日','158****4535',
'145894125','学生','武昌分校','女'
)
go
insertintoyhb
values
(
'刘超',24,'3月日','136****6764',
'145345548','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'肖运',22,'3月日','135****6824',
'125425688','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'鲁建',22,'6月日','136****5876',
'254782548','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'周明',23,'8月日','136****9689',
'145782548','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'高小生',23,'4月日','138****6721',
'156812548','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'彭炫',23,'8月日','136****2424',
'346832568','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'杨鼎',21,'9月日','134****8967',
'172412548','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'易中天',22,'8月日','153****2446',
'892345548','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'井小龙',20,'2月日','136****3453',
'784532548','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'汪浩',22,'7月日','136****4557',
'145351458','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'高超',22'9月日','189****0987',
'145812548','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'陶丽',22,'8月日','136****2489',
'145467548','学生','武昌分校','女'
)
go
insertintoyhb
values
(
'赵钱',21,'5月日','136****8425',
'756312548','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'郑天',22,'2月日','136****5323',
'795412548','学生','武昌分校','男'
)
go
insertintoyhb
values
(
'王建',21,'7月日','135584154',
'145854548','学生','武昌分校','男'
)
Go
4.3.2在备忘录表中插入数据
USEgrxx
GO
insertintobwl
values
(
'戟长峰','5月日','体育馆',
'看比赛','5月日'
)
go
insertintobwl
values
(
'戟长峰','5月日','自习室',
'看书','5月日'
)
go
insertintobwl
values
(
'戟长峰','5月日','堕落一街',
'约同学吃饭','5月日'
)
go
insertintobwl
values
(
'戟长峰','5月日','武昌分校',
'帮同学弄电脑','5月日'
)
go
insertintobwl
values
(
'戟长峰','5月日','火车站',
'帮同学买票','5月日'
)
go
insertintobwl
values
(
'戟长峰','5月日','武昌分校',
'给家里打电话','5月日'
)
go
insertintobwl
values
(
'戟长峰','5月日','养老院',
'看望老人','5月日'
)
go
insertintobwl
values
(
'戟长峰','5月日','光谷',
'义卖报纸','5月日'
)
go
insertintobwl
values
(
'戟长峰','5月日','武昌分校',
'研究u盘装系统','5月日'
)
go
insertintobwl
values
(
'戟长峰','5月日','武昌分校',
'研究word密码破解','5月日'
)
go
insertintobwl
va