通讯录管理系统数据库分析与设计说明书文档格式.docx
《通讯录管理系统数据库分析与设计说明书文档格式.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统数据库分析与设计说明书文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
6.3组员3小结32
7小组小结32
1系统需求分析说明
随着市场经济的飞速发展和人们生活水平的不断提高,计算机科学技术逐渐成熟,其强大的功能已为人们深刻认识,并且在代替和延伸脑力劳动方面发挥越来越重要的作用。
作为计算机应用的一部分,使用计算机对各项信息进行管理,具有着手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好等。
这些优点能够极大地提高工作的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。
本次课程设计要求建立一个对通讯录进行电子化管理的通讯录系统,用SQLServer2012数据库来实现其功能。
在本通讯录系统中,可以将学校有关人员的密码、姓名、性别、电话、E-mail、备注等资料保存在数据库中,并可以随时进行登陆、退出、查看、添加、修改、删除、模糊查询、排序、个人设置等,在十足人性化的同时,提供一定的安全机制,是使该系统具有方便性、系统性、规划性、完备性和普遍性的性质。
1.1涉及部门和人员分析
用户的ID、密码、姓名、性别、电话、E-mail、用户权限;
通讯录的联系人姓名、地址、联系电话、所属职务、所在单位、所属地区。
1.2涉及事件分析
●信息录入:
录入联系人信息(包括姓名、电话号码、地址、备注等);
●信息查询:
输入联系人姓名或电话,可查询到联系人信息;
●查询所有联系人的信息,并按可选的自定义规则进行排序;
●信息删除与修改:
输入联系人姓名或电话,查询显示出该联系人的所有信息,并在此基础上进行修改;
或可以删除该联系人的信息;
●信息保存:
将联系人的信息保存于文件中。
1.3完成业务功能分析
●查看:
用于查看所有记录于数据库中的联系人信息。
●模糊查询:
用于快速查找所需要的信息,输入姓氏就会出现所有使用该姓氏的联系人。
●排序:
用于对表中某一属性进行排序,便于找到相关的联系人。
●修改:
用于对变动的信息进行及时的修改并更新,同时能够及时的呈现给用户。
●删除:
用于删掉不需要的记录,留出空间给新记录,便于搜索信息。
●添加:
用于新建一条联系人记录到数据库当中。
●账户设置:
对登录时使用的账户名、密码进行设置。
●退出:
关闭程序,退出通讯录系统。
2基本数据信息描述
2.1数据元素
数据元素(dataelement)是计算机科学术语。
它是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
本系统的数据元素有:
●用户的ID、密码、姓名、性别、电话、E-mail、用户权限;
●通讯录的联系人姓名、地址、联系电话、所属职务、所在单位、所属地区。
2.2数据组织
数据组织data0rganization:
按照一定的方式和规则对数据进行归并、存储、处理的过程。
3综合业务流程
整个系统的数据流程图如下:
4.数据库结构设计
4.1概念结构设计
概念设计是把用户的需求进行综合、归纳与抽象,统一到一个整体概念结构中,形成数据库的概念模型。
4.1.1实体识别
从数据处理的角度看,现实世界中的客观事物称为实体,它是现实世界中任何可区分,可识别的事物。
在这儿用到的实体有用户、通讯录。
●用户(TB_Users):
使用者。
●通讯录(TB_AddrList):
该使用者的通讯录。
4.1.2联系识别
实体之间的对应关系称为联系,它反应了现实世界事物之间的相互关联。
识别:
●一个用户只能有一个通讯录,一个通讯录也只可以属于一个用户。
4.1.3属性识别
实体的特征称为属性。
●用户具有用户ID、密码、姓名、性别、电话、E-mail、用户权限7个属性;
●通讯录具有联系人姓名、地址、联系电话、所属职务、所在单位、所属地区6个属性。
4.2E-R图
E-R图也称实体-联系图(EntityRelationshipDiagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型
4.2.1局部E-R图
●用户实体E-R图
用户的实体具有用户ID、密码、姓名、性别、电话、E-mail、用户权限7个属性,ER图如图:
图4-1用户E-R实体图
●通讯录E-R实体图
通讯录的实体具有联系人姓名、地址、联系电话、所属职务、工作单位、QQ6个属性,E-R图如图所示。
图4-5通讯录E-R实体图
4.2.2全局E-R图
●
用户与通讯录n:
m联系E-R图
图4-7E-R实体图
4.2.3概念模型
概念模型是在对用户需求分析之后,通过画出本系统抽象出的E-R图,由概念模型辅助工具PowerDesigner进行设计,通过具体地设置和绘画,最后就形成了如下所示的概念模型图,生成的概念结构就能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据处理要求,是对现实世界的一个真实模型。
如图所示:
4.3逻辑结构设计
现在需要将上面是数据库概念结构转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
4.3.1关系模式识别
设计数据库应用系统的一项重要工作是设计关系模式,也就是设计一组二维表的表头。
用户(用户ID,密码,姓名,性别,电话,E-mail、用户权限)
通讯录(联系人姓名,地址,联系电话,所属职务,工作单位,QQ)
4.3.2关系模式转换
●“用户”实体到关系模式的转换
从图4-1可以看出,“用户”实体具有用户ID、密码、姓名、性别、电话、E-mail、用户权限7个属性,其中用户ID是其关键属性。
●“通讯录”实体到关系模式的转换
从图4-5可以看出,通讯录的实体具有联系人姓名、地址、联系电话、所属职务、工作单位、QQ6个属性。
联系人姓名是其关键属性。
4.3.3主键,外键,域,规则,默认值等约束描述确认
●“用户”表中用户ID是其主键,并给“性别”列添加CHECK约束,规定“性别”只能为“男”或“女”。
●通讯录表中联系人姓名是其主键。
4.3.4物理模型
将生成的概念模型通过单击PowerDesigner工具菜单栏上的Tools选项,在选择GeneratePhysicalDataModel选项,就可以转换为物理模型,生成的最后结果具体如图:
4.4物理结构设计
4.4.1用户表设计
创建企业信息管理系统中的各数据表,在此系统中共涉及到2个数据表的应用,分别为如下。
●用户信息表
用户信息表(Users)用于存放校园通讯录信息管理系统中所有系统管理用户的信息,用户管理是每个管理系统中必不可少的,也是比较重要的一部分,本系统中进行了较详细的设计,表中各个字段的数据类型、大小以及简短描述如表4-1所示。
SN
列名
描述
类型
1
用户ID
用户ID[PK]
varchar(10)
2
姓名
用户姓名
varchar(20)
3
密码
记录用户登入本系统时的用户密码
4
性别
用户性别
char
(2)
5
Email
用户E-mail
varchar(20)
6
联系电话
用户的联系电话
7
权限
用户权限
char
(1)
表4-1用户信息表TB_Users
●5.通讯录信息表
通讯录信息表(product)用于存放通讯录信息管理系统中所有通讯录的信息,通讯录信息的管理是系统中比较重要的内容,联系电话是其中的关键信息,表中各个字段的数据类型、大小以及简短描述如表4-5所示。
联系人姓名
varchar(50)
地址
联系人地址
电话
联系人电话
工作单位
联系人工作单位
职务
联系人职务
QQ
联系人QQ
表4-5通讯录信息表TB_AddrList
4.4.2功能实现
因为使用存储过程可以给系统带来优化,所以系统将很大程度地使用存储过程,在系统中共应用了4个存储过程,以Add开头的存储过程为系统中信息添加的存储过程,以Update开头的存储过程为系统中信息修改的存储过程,这些存储过程将会在系统程序文件的后台应用中调用,下面将对系统中应用的存储过程进行解释。
●1.AddTB_用户存储过程
AddTB_用户存储过程用于向用户信息表中添加新的用户信息。
以下代码表示了这一存储过程。
CREATEPROCEDUREAddTB_用户
@用户IDvarchar(10),
@姓名varchar(20),
@密码varchar(10),
@性别char
(2),
@Emailvarchar(20),
@联系电话varchar(20),
@权限char
(1)
AS
INSERTINTOTB_Users
(
用户ID,
姓名,
密码,
性别,
Email,
联系电话,
sUserPurview
)
VALUES
(
@用户ID,
@姓名,
@密码,
@性别,
@Email,
@联系电话,
@权限
)
GO
●2.AddTB_通讯录存储过程
AddTB_通讯录存储过程用于往通讯录信息表中添加新的通讯录信息。
CREATEPROCEDUREAddTB_通讯录
@联系人姓名varchar(20),
@地址varchar(50),
@电话varchar(20),
@工作单位varchar(20),
@职务varchar(20),
@QQvarchar(20),
INSERTINTOTB_AddrList
联系人姓名,
地址,
电话,
工作单位,
职务,
QQ,
@联系人姓名,
@地址,
@电话,
@工作单位,
@职务,
@QQ
●3.UpdateTB_用户存储过程
UpdateTB_用户存储过程用于修改用户信息表中,符合条件的用户信息,其中密码信息不可以更新。
CREATEPROCEDUREUpdateTB_用户
@用户IDvarchar(10),
@姓名varchar(20),
@性别char
(2),
@Emailvarchar(20),
@联系电话varchar(20),
@权限char
(1)
UPDATETB_用户
SET
用户ID=@用户ID,
姓名=@姓名,
性别=@性别,
Email=@Email,
联系电话=@联系电话,
权限=@权限
WHERE
用户ID=@用户ID
●4.UpdateTB_通讯录存储过程
UpdateTB_通讯录存储过程用于修改通讯录信息表中的通讯录信息。
CREATEPROCEDUREUpdateTB_通讯录
@联系人姓名varchar(20),
@地址varchar(50),
@工作单位varchar(20),
@职务varchar(20),
@sDutyIDvarchar(20)
UPDATETB_通讯录
联系人姓名=@联系人姓名,
地址=@地址,
电话=@电话,
工作单位=@工作单位,
职务=@职务
QQ=@QQ
联系人姓名=@联系人姓名
5用户分角色使用数据库权限分配与设计
5.1数据操作设计
5.1.1查询
查询有关数据时,可以用SELECT语句:
SELECT[ALL|DISTINCT][TOPn[PERCENT]]select_listFROMtable_name
5.1.2添加
给表或视图添加数据时,可用INSERT语句:
INSERT[INTO]
{table_name|view_name}
{[(column_list)]
{VALUES
(value_list)
|derived_table
|execute_statement}
}
|DEFAULTVALUES
5.1.3修改
更改表或视图中单行、行组或所有行的数据值时,可用UPDATE语句:
UPDATE
{table_name|view_name}
SET
{{column_name|@variable}=expression
}[,…n]
[FROM{<
table_source>
}[,…n]
[WHERE<
search_condition>
]
5.1.4删除
删除数据时可用DELETE语句或TRUNCATETABLE语句。
1DELETE语句
DELETE[FROM]
{table_name|view_name}
[FROM{<
}[,…n]]
[WHERE{<
search_condition>
}]
}
②TRUNCATETABLE语句
TRUNCATETABLEtable_name
5.1.5清零
删除表中所有数据可用以下方式:
1DELETE[FROM]table_name
②TRUNCATETABLEtable_name
5.2库表对象的T-SQL语言实现
5.2.1Sqlserver系统版本描述
SQLServer2012是Microsoft公司推出的SQLServer数据库管理系统的一个版本。
该版本继承了SQLServer以前版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows7的大型多处理器的服务器等多种平台使用。
优点:
1、高性能设计,可充分利用WindowsNT的优势。
2、系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
3、强壮的事务处理功能,采用各种方法保证数据的完整性。
4、支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。
SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台
5.2.2库实现
在企业管理器下创建“通讯录管理”数据库或在查询分析器中用以下语句创建:
CREATEDATABASE’通讯录管理’
5.2.3表实现
●创建用户信息表TB_Users
createtableTB_Users
(
sUserIDvarchar(10),
sUserNamevarchar(20),
sUserPasswordvarchar(10),
sUserSexchar
(2),
sUserEmailvarchar(20),
sUserPhonevarchar(20),
sUserPurviewchar
(1)
图5-1TB_Users
●创建地区信息表TB_Area
createtableTB_Area
sAreaIDvarchar(20),
sAreaNamevarchar(50)
图5-2TB_Area
●创建职务信息表TB_Duty
createtableTB_Duty
sDutyIDvarchar(20),
sDutyNamevarchar(50)
图5-3TB_Duty
●创建学校信息表TB_School
createtableTB_School
sSchoolIDvarchar(20),
sSchoolNamevarchar(50),
iStudentNumint,
sAreaID_FKvarchar(20)
图5-4TB_School
●创建通讯录信息表TB_AddrList
createtableTB_AddrList
iAddrIDint,
sLinkNamevarchar(50),
sAddressvarchar(20),
sLinkPhonevarchar(20),
sUnitNamevarchar(50),
sSchoolID_FKvarchar(20),
sDutyID_FKvarchar(20),
图5-5TB_AddrList
共五张表如下:
图5-6用户表
建立关系图如下:
图5-7关系图
所建CHECK约束如下:
图5-8CHECK约束
5.2.4视图实现
创建学校信息视图表V_SchoolInfo,包含sSchoolName,sAreaName,sLinkName,sDutyName,sLinkPhone五列,来自TB_AddrList,TB_School,TB_Duty,TB_Area四个表。
createviewV_SchoolInfo
as
selectsSchoolName,
sAreaName,
sLinkName,
sDutyName,
sLinkPhone
fromTB_AddrList,TB_School,TB_Duty,TB_Area
whereTB_AddrList.sSchoolID=TB_School.sSchoolID
and
TB_AddrList.sDutyID=TB_Duty.sDutyID
And
TB_AddrList.sAreaID=TB_Area.sAreaID
图5-9学校信息视图表V_SchoolInfo
5.2.5存储过程实现
根据“4.4.5用户常用存储过程设计”中给出的代码,在SQLSERVER2000中执行以实现存储过程,执行语句如下:
EXECAddTB_Users
●EXECAddTB_Area
图5-10AddTB_Area
●EXECAddTB_Duty
图5-11AddTB_Duty
●EXECAddTB_School
图5-12AddTB_School
●EXECAddTB_AddrList
图5-13AddTB_AddrList
●EXECUpdateTB_Users
图5-14UpdateTB_Users
●EXECUpdateTB_Area
图5-15UpdateTB_Area
●EXECUpdateTB_Duty
图5-16UpdateTB_Duty
●EXECUpdateTB_School
图5-17UpdateTB_School
●EXECUpdateTB_AddrList
图5-18UpdateTB_AddrList
6小结
6.1组员XX小结
在完成概念结构设计时,主要弄清楚数据库中涉及的实体,所有实体的属性,以及所有实体之间的联系,这是对ER图设计和逻辑结构设计做铺垫。
ER图的设计要明确每个实体所具有的属性,再根据实体间的联系建立完整的ER图。
逻辑结构的设计首先要弄清有几张表,每张表有多少列,每列数据对应的类型,最后就是主键和外键的设置。
6.2组员XX小结
通讯录系统主要有三个模块:
用户登录、系统维护以及数据输入。
和输出。
通讯录系统的的主要功能是记录联系人信息,并提供查询信息的服务。
且能够自动更新相应的数据,确保数据的安全性,可靠性。
这一点数据的约束就起着至关重要的作用了。
本系统的合作完成让我加深了对数据库知识的掌握。
希望本系统能够符合老师的要求。
6.3组员XX小结
经过一周的努力,终于完成了此次项目设计,那种高兴、兴奋之情难以言表。
还记得刚刚开始做这个设计时,真的是茫然不知所措啊。
为了完成这个设计,我到处查找资料、翻阅教材,在这短短一周的时间里,我们学到了不少的新知识也巩固了许多旧知识。
整个设计过程中,我遇到了很多大大小小的困难,但都通过各种方式解决了,所以,我明白了,在困难面前,要无所畏惧,迎难而上!
在这之前,我们虽然已经学习了一学期的数据库技术与应用,但在实际运用的时候并不是很熟练。
所以学习数据库不仅要牢牢掌握理论知识,动手操作也是必不可少的环节,我们以理论知识为基础,并通过实践来真正掌握它。
7小组小结
经过一段时间的工作,终于完成了通讯录管理系统数据库分析与设计,总结实践经验可以得到如下结论:
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。
因此学好数据库技术与应用是十分必要的。
回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个设计,从理论到实践,在这短短的一周里,我们可以学到了很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,