随着社会的发展, 人际关系变得越来越重要,为了保持良好的人际关系,必须经常与亲戚、朋友、同学、同事保持联系,但是有时候存在着许多的限制条件,比如怎样找到交流对象的各种信息?可能你会想到现实生活中的手机等通讯工具,由于这些工具的单一性,不可能在第一时间找到自己想要的信息资料,因此,为了能够快速查找到联系人的信息,节省查找时间,开发通讯录管理系统。
通讯录管理系统是一个基于 SQL数据库储存和JAVA界面 模式的个人通讯录管理系统。它是将自己的 联系人的具体信息集中管理,成为一个方便人们使用的小软件。在开发过程中主要运用Java, SQL Server 技术,由于开发工具和数据库之间的良好使用,可以为开发带来方便,使之成为一个可施行的系统。从而达到开发的目的-----实现对通讯录信息的管理。
通过采用相关技术,以及老师的辅导和同学们的帮助,将系统设计的功能全部实现。功能包括:用户的登录, 添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯的联系人,并且可以根据数据表的各字段来查询你所要找的联系人等功能
关 键 词: T-SQL
1.1目的
个人通讯录是当前每个人不可缺少的信息系统,目前以纸质通讯录最为普遍。 手工的信息管理存在许多弊端,信息容易丢失、查找费时 、 存储量有限等。随着科技的发展与任命生活水平的提高,计算机进入了许多的家庭。作为计算机应用的 一部分,使用计算机对通讯录进行管理, 着手工管理无法达到的有点,如:检索循序、查找方便、可靠、性能高、存储量大、保密性好等。这些有点能够极大的提高通讯录管的效率 。 因此,开发一套通讯录信息管理软件很有必要。
1.2背景
随着互联网的爆炸发展,人们越来越习惯于利用电脑实现若需的服务,电脑已经影响到人们生活的各个方面,广泛的人际关系成为一个人重要的资源。
另外,传统的纸质通讯录不能满足一部分现在人的需要而电子通讯录,由于其不受时间空间的限制同时又具有传统通讯录的大部分功能,能够满足各类用户常规的需求,处理大量信息和联系方式,而且方便快捷。
1.3研究内容
该系统主要是:用户登录和联系人,和分组部分。为了方便用户查找自己想要的联系人信息,将联系人按分组类别进行分组。可以按组别查找,也可以按照联系人关键字查找
2.1 通讯录系统的功能
通讯录管理系统功能有:用户登录、添加联系人、修改联系人、删除联系人、分组信息的查询和分组信息的删除。
用户登录:实现用户登录通讯录系统。
显示联系人:显示用户对所有存在数据库里的联系人数据的显示。
查找联系人:实现用户在数据库空中查找自己需要的联系人的信息 。
添加联系人:实现用户对新联系人的添加 以及对联系人进行分组。
修改联系人:实现 用户对已有联系人的信息进行修改,然后保存。
分组信息查询:方便用户对联系人的管理查询,针对通讯录中的人进行分组。
分组信息数据的删除:实现用户对将要删除联系人对类别的分组信息进行删除。
2.2通讯录系统的数据流
图1.1数据模块图
2.3 通讯录系统数据流程图
用户登录系统时,数据的流动 如图:
图1.2 顶层数据流程图
通讯录操作系统的数据流程 如图1.3.0:
2. 4 通讯录的数据字典
3.数据流
数据流名 说明 数据流来源 数据流去向 组成
登录 用于登录通讯录系统 登录数据流 通讯录 用户名 , 密码
联系人信息 用于查询、修改、增加、删除联系人信息 联系人数据流 联系人模块 编号 , 姓名 , 性别 , 电话号码 , 出生日期 , E- mail, 分组类别
同学分组信息 用于显示、查询、删除 同学分组数据流 同学分组模块、联系人模 块 姓名,编号
朋友分组信息 用于显示、查询 朋友分组数据流 朋友分组模块、联系人模块 姓名,编号
4.处理过程
处理过程名 说明 输入数据流 输出数据流 处理
登陆界面 用户登陆的界面 输入用户名密码 进入联系人界面 登陆成功,进入管理系统;失败,则显示密码错误。
联系人信息界面 查询、插入、修改、增加联系人时的界面 编号 , 姓名 , 性别 , 电话号码 , 出生日期 , E- mail, 分组类别 进入联系人界面 查看个联系人详细信息
朋友分组界面 查询分组类别为朋友的姓名 编号、姓名
分组类别 进入朋友界面 查看分组类别为朋友的姓名
同学分组界面 查询分组类别为同学的姓名 编号、姓名
分组类别 进入同学界面 查看分组类别为 同学 的姓名
3.1实体
由需求分析的结果可知,本系统设计的实体包括:
(1).用户登陆信息:用户名,密码。
(2).联系人详细星系 : 编号 , 姓名 , 性别 , 电话号码 , 出生日期 , E- mail, 分组类别。
(3).同学分组信息:编号,姓名。
(4).朋友分组信息:编号, 姓名 。
3.2实体间包括
(1). 每位用户包括多个联系人,每个联系人对应多个用户。
(2).每位联系人对应一个分组,一个分组对应多个联系人。
3.3 实体属性图
图1.1 用户实体图
图1.3 联系 人实体图
图 1. 4 朋友分组实体图
图 1. 5 朋友 分组实体图
3.4 局部E-R 图
图 1. 6 登陆 局部E-R图
图1. 7 总体 E-R图
4.1E-R图转化而得到的关系模式
(1 ).联系人 信息 (编号,姓名,性别,出生日期,电话号码,E-mail,地址 ,分组类别 ),其主键为编号。
(2 ).朋友分组信息(朋友编号,姓名),其外键为 朋友 编号。
(3 ).同学分组信息(同学编号,姓名),其外键为 朋友 编号。
4.2 由关系模式转换得到的函数依赖
联系人信息中,姓名、性别、出生日期、电话号码、E-mail、地址分组类别都依赖编于编号,朋友分组信息中姓名依赖于朋友编号,同学分组信息中,姓名依赖于同学编号
4. 3 关系模式优化
其联系人 信息( 编号 ,姓名,性别,出生日期,电话号码, E-mail,地址 )中都为简单属性,因此属于第一范式,又不存在部分函数依赖为第二范式不存在传递依赖,所以,为第三范式。
朋友分组信息( 朋友编号 ,姓名 ) 中都为简单属性,因此是第一范式,且不存在部分函数依赖为第二范式,又不存在传递依赖,所以,为第三范式。
同学,分组信息( 同学编号 ,姓名)中都为简单属性,因此是第一凡是,且不存在部分函数依赖为第二范式,又不存在传递依赖,所以,为第三范式。
4.4 对优化后的关系模式的结构
表 XXX 联系人表
数据名 类型 长度 是否为主键 能否为空 是否为外键 说明
用户名 C har 30 是 否 否 用户登录系统唯一标识
密码 C har 10 否 否 否 密码
表 XXX 联系人表
数据名 类型 长度 是否为主键 能否为空 是否为外键 说明
编号 C har 50 是 否 否 联系人唯一标识,联系人 编号
姓名 C har 50 否 否 否 联系人姓名
性别 C har 10 否 否 否 联系人性别
电话号码 C har 10 否 否 否 联系人电话
E-mail C har 50 否 是 否 联系人邮件
地址 C har 50 否 否 否 联系人住址
分组类型 C har 10 否 否 否 联系人类别
表XXX 朋友分组表
数据名 类型 长度 是否为主键 是否为空 是否为外键 说明
朋友编号 C har 50 是 否 是 对联系人表中的联系人一一对应
姓名 C har 50 是 是 否 类别为朋友的联系人的姓名
表XXX 同学分组表
数据名 类型 长度 是否为主键 是否为空 是否为外键 说明
同学编号 C har 50 是 否 是 与联系人表中的联系人一一对应
姓名 C har 50 是 是 否 类别为同学的联系人的姓名
5.1数据库创建代码
```go
create database 通讯录管理系统
on primary
(
name ='通讯录管理系统',
Filename='d:\数据库\通讯管理系统.mdf',
size=10mb,
maxsize=100mb,
filegrowth=20%
)
log on
(
name='通讯录管理系统',
filename='d:\数据库\通讯录管理系统.ldf',
size=20mb,
maxsize=100mb,
filegrowth=20%
)
5.2 数据库表 创建 代 码
5.2.1用户表
create table 用户
(
用户名 char(20) primary key,
密码 char(40) not null,
)
5.2.2联系人表
create table 联系人
(
编号 char(10) primary key,
姓名 char(10),
性别 char(4) not null,
电话号码 char(10) not null,
E_mail char(50),
地址 char(30),
分组类型 char(10),
)
5.2.3分组 表
create table 同学分组
(
同学编号 char(10)primary key FOREIGN KEY(同学编号)REFERENCES 联系人(编号),
姓名 char(10),
)
go
create table 朋友分组
(
朋友编号 char(10)primary key FOREIGN KEY(朋友编号)REFERENCES 联系人(编号),
姓名 char(10),
)
go
create table 同事分组
(
同事编号 char(10)primary key FOREIGN KEY(同事编号)REFERENCES 联系人(编号),
姓名 char(10),
)
5.3视图创建代码
go
create view 朋友
as
select 朋友分组.朋友编号,朋友分组.姓名,电话号码,性别,E_mail,分组类型
from 朋友分组,联系人
where 朋友分组.朋友编号=联系人.编号
go
create view 同学
as
select 同学分组.同学编号,同学分组.姓名,电话号码,性别,E_mail,分组类型
from 联系人,同学分组
where 同学分组.同学编号=联系人.编号
go
create view 所有联系人
as
select 联系人.姓名,联系人.电话号码,联系人.性别,联系人.E_mail,分组类型
from 联系人
go
5.4存储过程代码创建
create procedure _朋友
as
select 朋友分组.朋友编号,朋友分组.姓名,电话号码,性别,E_mail,分组类型
from 联系人,朋友分组
where 朋友分组.朋友编号=联系人.编号
go
create procedure _同学
as
select 同学分组.同学编号,同学分组.姓名,电话号码,性别,E_mail,分组类型
from 联系人,同学分组
where 同学分组.同学编号=联系人.编号
go
create procedure _所有联系人
as
select *
from 联系人
6.1登陆模块
进入此系统后会出现用户登陆界面,用户输入用户名和密码即可进入此系统,若密码错误则显示错误提示
6.2联系人界面
用户在登录系统后 成功进入下图所示的窗体,该窗体会显示所有联系人
6.3朋友分组界面及详细查询
在联系人界面会有分组信息,点击打开朋友分组信息,会出现朋友分组里面的联系人,选择某个联系人可以查看该联系人的详细信息
6.4同学分组界面及详细查询
在联系人界面会有分组信息,点击打开同学分组信息,会出现同学分组里面的联系人,选择某个联系人可以查看该联系人的详细信息
6.5同事分组界面及详细查询
在联系人界面会有分组信息,点击打开同事分组信息,会出现同事分组里面的联系人,选择某个联系人可以查看该联系人的详细信息
6.6查询界面
点击查询按钮,输入你要查询联系人的姓名,则会弹出该联系人的信息
6.7增加界面
在信息栏目里输入你要添加的联系人的具体信息,然后点击增加按钮,显示添加联系人成功
6.8修改界面
选中需要修改 的 联系人,对其个 联系 人信息进行编辑修改 ,按下修改按钮,显示修改成功
6.9删除界面
选中你要删除的联系人,点击删除,则成功删除该联系人
为期2周的 课程设计终于结束了,从本次课程设计中我们小组收获了不少。由于我们是初次接触数据库这门课程,所以本次的课程设计对于我们来说是一个不小的挑战,所以我们选择了难度相对较小的通讯录管理系统这个课程来进行设计 ,编码的时候,我们采用了Java面向对象编程语言来完成这个项目,通过类与对象来完成 老师要求我们实现的 功能。
在本次课程设计的过程中,我们发现了数据库需求分析的重要性,数据库的需求分析成功与否是我们这次课程设计成功与否的关键,我们小组成员在需求分析遇到了一些小问题,成员之间的意见各不相一,但是我们通过小组讨论,网上查找资料以及向老师请教,我们终于达成了一致意见。结构设计对于本次课程设计也很重要, 一个好的结构设计决定着这个系统功能实现的方式,也是影响用户和系统交互的方式。在所有的工作做完以后,接下来的就是测试,测试能给我们找到之前我们所为发现的错误,通过测试,我们找到了一些错误,通过我们组员集体讨论和查资料,我们很快就解决了这些错误。
虽然这次我们选择的课程设计难度相对较小 ,但是我们通过我们自己的努力,一步一步的实现它,由于时间和我们的能力有限,我们并没有完全做出这个系统所有的功能。总而言之,我们从中学到了很多东西,我认为这次课程设计对于我以后的工作有很大帮助。
参考文献
【1】 王小玲,刘卫国.数据库应用基础教程【M】.北京:中国铁道出版社.2008
【2】 施伯乐,丁宝康,汪卫.数据库系统教程【M 】 .第3版.北京:高等教育出版社.2008
【3】 程云志,张帆,崔翔.数据库原理与SQL Server2005应用教程 【M 】 .北京:机械工业出版社.2006
【4】 苗雪兰,刘瑞新,宋会群.数据库技术及应用【M】.北京:机械工业出版社.2006
【5】 李春葆,曾平.数据库原理与应用:基于SQL Server 2000【M】.北京:清华大学出版社.2006
【6】 宁洪,赵文涛,贾丽丽.数据库系统原理【M 】 .北京:北京邮电大学出版社.2005
【7】 何玉洁.数据库基础及应用技术【M 】 .第2版.北京:清华大学出版社.2004
【8】 Microsoft Corporation.SQL Server 2005文档【9】.http://technet.microsoft.com/zhcn/library/ms203721(SQL.90).aspx