项目小组名称: 项目名称:学校通讯录管理系统分析与设计说明书 小组成员: 目录 1系统需求分析说明 ....................................................................................................... 1.1涉及部门和人员分析 ........................................................................................ 1.2涉及事件分析 .................................................................................................... 1.3完成业务功能分析 ............................................................................................ 2基本数据信息描述 ....................................................................................................... 2.1数据元素 ............................................................................................................ 2.2数据组织 ............................................................................................................ 3综合业务流程 ............................................................................................................... 4.数据库结构设计 ........................................................................................................... 4.1概念结构设计 .................................................................................................... 4.1.1实体识别 ................................................................................................. 4.1.2联系识别 ................................................................................................. 4.1.3属性识别 ................................................................................................. 4.2ER图 .................................................................................................................... 4.2.1局部ER图 ............................................................................................. 4.2.2全局ER图 ............................................................................................. 4.3逻辑结构设计 .................................................................................................... 4.3.1关系模式识别 ......................................................................................... 4.3.2关系模式转换 ......................................................................................... 4.3.3主键,外键,域,规则,默认值等约束描述确认 ............................. 4.4用户库和报表的确认 ........................................................................................ 4.4.1用户表设计 ............................................................................................. 4.4.2用户视图设计 ......................................................................................... 4.4.3用户常用存储过程设计 ......................................................................... 5用户分角色使用数据库权限分配与设计 ................................................................... 5.1数据操作设计 .................................................................................................... 5.1.1查询 ......................................................................................................... 5.1.2添加 ......................................................................................................... 5.1.3修改 ......................................................................................................... 5.1.4删除 ......................................................................................................... 5.2库表对象的T-SQL语言实现 ........................................................................... 系统版本描述 .................................................................................................. 5.2.2库实现 ..................................................................................................... 5.2.3表实现 ..................................................................................................... 5.2.4视图实现 ................................................................................................. 5.2.5存储过程实现 ......................................................................................... 6小结 ............................................................................................................................... 6.1组员1小结 ........................................................................................................ 6.2组员2小结 ........................................................................................................ 6.3组员3小结 ........................................................................................................ 7小组小结 ....................................................................................................................... 1系统需求分析说明 随着市场经济的飞速发展和人们生活水平的不断提高,计算机科学技术逐渐成熟,其强大的功能已为人们深刻认识,并且在代替和延伸脑力劳动方面发挥越来越重要的作用。作为计算机应用的一部分,使用计算机对各项信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好等。这些优点能够极大地提高工作的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。 本次课程设计要求建立一个对通讯录进行电子化管理的通讯录系统,用SQL Server 2012数据库来实现其功能。在本通讯录系统中,可以将学校有关人员的密码、姓名、性别、电话、E-mail、备注等资料保存在数据库中,并可以随时进行登陆、退出、查看、添加、修改、删除、模糊查询、排序、个人设置等,在十足人性化的同时,提供一定的安全机制,是使该系统具有方便性、系统性、规划性、完备性和普遍性的性质。 1.1涉及部门和人员分析 用户的ID、密码、姓名、性别、电话、E-mail、用户权限;通讯录的联系人姓名、地址、联系电话、所属职务、所在单位、所属地区。 1.2涉及事件分析 信息录入:录入联系人信息(包括姓名、电话号码、地址、备注等); 信息查询:输入联系人姓名或电话,可查询到联系人信息; 查询所有联系人的信息,并按可选的自定义规则进行排序; 信息删除与修改:输入联系人姓名或电话,查询显示出该联系人的所有信息,并在此基础上进行修改;或可以删除该联系人的信息; 信息保存:将联系人的信息保存于文件中。 1.3完成业务功能分析 查看: 用于查看所有记录于数据库中的联系人信息。 模糊查询:用于快速查找所需要的信息,输入姓氏就会出现所有使用该姓氏的联系人。 排序: 用于对表中某一属性进行排序,便于找到相关的联系人。 修改:用于对变动的信息进行及时的修改并更新,同时能够及时的呈现给用户。 删除: 用于删掉不需要的记录,留出空间给新记录,便于搜索信息。 添加:用于新建一条联系人记录到数据库当中。 账户设置:对登录时使用的账户名、密码进行设置。 退出:关闭程序,退出通讯录系统。 2基本数据信息描述 2.1数据元素 数据元素(data element)是计算机科学术语。它是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 本系统的数据元素有: 用户的ID、密码、姓名、性别、电话、E-mail、用户权限; 通讯录的联系人姓名、地址、联系电话、所属职务、所在单位、所属地区。 2.2数据组织 数据组织 data 0rganization :按照一定的方式和规则对数据进行归并、存储、处理的过程。 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图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型 4.2.1局部E-R图 用户实体E-R图 用户的实体具有用户ID、密码、姓名、性别、电话、E-mail、用户权限7个属性,ER图如图: 用户权限 姓名 性别 电话 用户 E-mail 密码 用户ID 图4-1用户E-R实体图 通讯录E-R实体图 通讯录的实体具有联系人姓名、地址、联系电话、所属职务、工作单位、QQ6个属性,E-R图如图所示。 联系人姓名 联系电话 QQ 工作单位 通讯录 地址 图4-5通讯录E-R实体图 4.2.2全局E-R图 用户与通讯录n:m联系E-R图 用户权限 姓名 电话 E-mail 联系电话 联系人姓名 QQ 地址 用户 性别 密码 查询 通讯录 工作单位 所属职务 用户ID 图4-7 E-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选项,在选择Generate Physical Data Model选项,就可以转换为物理模型,生成的最后结果具体如图: 4.4物理结构设计 4.4.1用户表设计 创建企业信息管理系统中的各数据表,在此系统涉及到2个数据表的应用,分别为如下。 用户信息表 用户信息表(Users)用于存放校园通讯录信息管理系统中所有系统管理用户的信息,用户管理是每个管理系统中必不可少的,也是比较重要的一部分,本系统中进行了较详细的设计,表中各个字段的数据类型、大小以及简短描述如表4-1所示。 SN 1 2 3 4 5 6 7 列名 用户ID 姓名 密码 性别 Email 联系电话 权限 描述 用户ID [PK] 用户姓名 记录用户登入本系统时的用户密码 用户性别 用户E-mail 用户的联系电话 用户权限 表4-1 用户信息表 TB_Users 5. 通讯录信息表 通讯录信息表(product)用于存放通讯录信息管理系统中所有通讯录的信息,通讯录信息的管理是系统中比较重要的内容,联系电话是其中的关键信息,表中各个字段的数据类型、大小以及简短描述如表4-5所示。 SN 1 2 3 4 5 6 列名 联系人姓名 地址 电话 工作单位 职务 QQ 描述 联系人姓名 联系人地址 联系人电话 联系人工作单位 联系人职务 联系人QQ 表4-5 通讯录信息表 TB_AddrList 类型 varchar(50) varchar(20) varchar(20) varchar(50) varchar(20) varchar(20) 类型 varchar(10) varchar (20) varchar(10) char(2) varchar(20) varchar(20) char(1) 4.4.2功能实现 因为使用存储过程可以给系统带来优化,所以系统将很大程度地使用存储过程,在系统应用了4个存储过程,以Add开头的存储过程为系统中信息添加的存储过程,以Update开头的存储过程为系统中信息修改的存储过程,这些存储过程将会在系统程序文件的后台应用中调用,下面将对系统中应用的存储过程进行解释。 1. AddTB _用户存储过程 AddTB _用户存储过程用于向用户信息表中添加新的用户信息。以下代码表示了这一存储过程。 CREATE PROCEDURE AddTB_用户 @用户ID varchar(10), @姓名 varchar(20), @密码 varchar(10), @性别 char(2), @ Email varchar(20), @联系电话 varchar(20), @权限char(1) AS INSERT INTO TB_Users ( 用户ID, 姓名, 密码, 性别, Email, 联系电话, sUserPurview ) VALUES ( @用户ID, @姓名, @密码, @性别, @ Email, @联系电话, @权限 ) GO 2. AddTB_通讯录存储过程 AddTB_通讯录存储过程用于往通讯录信息表中添加新的通讯录信息。以下代码表示了这一存储过程。 CREATE PROCEDURE AddTB_通讯录 @联系人姓名 varchar(20), @地址 varchar(50), @电话varchar(20), @工作单位 varchar(20), @职务 varchar(20), @ QQ varchar(20), AS INSERT INTO TB_AddrList ( 联系人姓名, 地址, 电话, 工作单位, 职务, QQ, ) VALUES ( @联系人姓名, @地址, @电话, @工作单位, @职务, @ QQ ) GO 3. UpdateTB _用户存储过程 UpdateTB _用户存储过程用于修改用户信息表中,符合条件的用户信息,其中密码信息不可以更新。以下代码表示了这一存储过程。 CREATE PROCEDURE UpdateTB_用户 @用户ID varchar(10), @姓名varchar(20), @性别 char(2), @ Email varchar(20), @联系电话 varchar(20), @权限char(1) AS UPDATE TB_用户 SET 用户ID =@用户ID, 姓名=@姓名, 性别=@性别, Email =@ Email, 联系电话=@联系电话, 权限=@权限 WHERE 用户ID =@用户ID GO 4. UpdateTB_通讯录存储过程 UpdateTB_通讯录存储过程用于修改通讯录信息表中的通讯录信息。以下代码表示了这一存储过程。 CREATE PROCEDURE UpdateTB_通讯录 @联系人姓名varchar(20), @地址varchar(50), @电话varchar(20), @工作单位varchar(20), @职务varchar(20), @sDutyID varchar(20) AS UPDATE TB_通讯录 SET 联系人姓名=@联系人姓名, 地址=@地址, 电话=@电话, 工作单位=@工作单位, 职务=@职务 QQ =@ QQ WHERE 联系人姓名=@联系人姓名 GO 5用户分角色使用数据库权限分配与设计 5.1数据操作设计 5.1.1查询 查询有关数据时,可以用SELECT语句: SELECT [ALL|DISTINCT] [TOP n [PERCENT]] select_list FROM table_name 5.1.2添加 给表或视图添加数据时,可用INSERT语句: INSERT [INTO] { table_name|view_name} { [ ( column_list )] {VALUES ( value_list ) | derived_table | execute_statement } } | DEFAULT VALUES 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语句或TRUNCATE TABLE语句。 ① DELETE语句 DELETE [ FROM ] { table_name|view_name } [FROM {< table_source >}[,…n]] [WHERE {}] } ②TRUNCATE TABLE语句 TRUNCATE TABLE table_name 5.1.5清零 删除表中所有数据可用以下方式: ① DELETE [ FROM ] table_name ②TRUNCATE TABLE table_name 5.2库表对象的T-SQL语言实现 5.2.1Sqlserver系统版本描述 SQL Server 2012 是Microsoft公司推出的SQL Server 数据库管理系统的一个版本。该版本继承了SQL Server 以前版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 7 的大型多处理器的服务器等多种平台使用。 优点:1、高性能设计,可充分利用WindowsNT的优势。 2、系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。 3、强壮的事务处理功能,采用各种方法保证数据的完整性。 4、支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台 5.2.2库实现 在企业管理器下创建“通讯录管理”数据库或在查询分析器中用以下语句创建: CREATE DATABASE ’通讯录管理’ 5.2.3表实现 创建用户信息表 TB_Users create table TB_Users ( sUserID varchar(10), sUserName varchar (20), sUserPassword varchar(10), sUserSex char(2), sUserEmail varchar(20), sUserPhone varchar(20), sUserPurview ) 图5-1 TB_Users char(1) 创建地区信息表 TB_Area create table TB_Area ( sAreaID varchar(20), sAreaName varchar(50) ) 图5-2 TB_Area 创建职务信息表 TB_Duty create table TB_Duty ( sDutyID varchar(20), sDutyName varchar(50) ) 图5-3 TB_ Duty 创建学校信息表 TB_School create table TB_School ( sSchoolID varchar(20), varchar(50), int, sSchoolName iStudentNum ) sAreaID_FK varchar(20) 图5-4 TB_ School 创建通讯录信息表 TB_AddrList create table TB_AddrList ( iAddrID int, sLinkName varchar(50), sAddress varchar(20), sLinkPhone varchar(20), sUnitName varchar(50), sSchoolID_FK varchar(20), sDutyID_FK varchar(20), sAreaID_FK varchar(20) ) 图5-5 TB_AddrList 共五张表如下: 图5-6用户表 建立关系图如下: 图5-7 关系图 所建CHECK约束如下: 图5-8 CHECK约束 5.2.4视图实现 创建学校信息视图表V_SchoolInfo,包含sSchoolName,sAreaName,sLinkName,sDutyName,sLinkPhone五列,来自TB_AddrList,TB_School,TB_Duty,TB_Area四个表。 create view V_SchoolInfo as select sSchoolName, sAreaName, sLinkName, sDutyName, sLinkPhone from TB_AddrList,TB_School,TB_Duty,TB_Area where TB_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用户常用存储过程设计”中给出的代码,在SQL SERVER 2000中执行以实现存储过程,执行语句如下: EXEC AddTB_Users EXEC AddTB_Area 图5-10 AddTB_Area EXEC AddTB_Duty 图5-11 AddTB_Duty EXEC AddTB_School 图5-12 AddTB_School EXEC AddTB_AddrList 图5-13 AddTB_AddrList EXEC UpdateTB_Users 图5-14 UpdateTB_Users EXEC UpdateTB_Area 图5-15 UpdateTB_Area EXEC UpdateTB_Duty 图5-16 UpdateTB_Duty EXEC UpdateTB_School 图5-17 UpdateTB_School EXEC UpdateTB_AddrList 图5-18 UpdateTB_AddrList 6小结 6.1组员XX小结 在完成概念结构设计时,主要弄清楚数据库中涉及的实体,所有实体的属性,以及所有实体之间的联系,这是对ER图设计和逻辑结构设计做铺垫。ER图的设计要明确每个实体所具有的属性,再根据实体间的联系建立完整的ER图。逻辑结构的设计首先要弄清有几张表,每张表有多少列,每列数据对应的类型,最后就是主键和外键的设置。 6.2组员XX小结 通讯录系统主要有三个模块:用户登录、系统维护以及数据输入。和输出。通讯录系统的 的 主要功能是记录联系人信息,并提供查询信息的服务。且能够自动更新相应的数据,确保数据的安全性,可靠性。这一点数据的约束就起着至关重要的作用了。本系统的合作完成让我加深了对数据库知识的掌握。希望本系统能够符合老师的要求。 6.3组员XX小结 经过一周的努力,终于完成了此次项目设计,那种高兴、兴奋之情难以言表。还记得刚刚开始做这个设计时,真的是茫然不知所措啊。为了完成这个设计,我到处查找资料、翻阅教材,在这短短一周的时间里,我们学到了不少的新知识也巩固了许多旧知识。整个设计过程中,我遇到了很多大大小小的困难,但都通过各种方式解决了,所以,我明白了,在困难面前,要无所畏惧,迎难而上!在这之前,我们虽然已经学习了一学期的数据库技术与应用,但在实际运用的时候并不是很熟练。所以学习数据库不仅要牢牢掌握理论知识,动手操作也是必不可少的环节,我们以理论知识为基础,并通过实践来真正掌握它。 7小组小结 经过一段时间的工作,终于完成了通讯录管理系统数据库分析与设计,总结实践经验可以得到如下结论: 课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此学好数据库技术与应用是十分必要的。 回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个设计,从理论到实践,在这短短的一周里,我们可以学到了很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。 我们做的是通讯录管理系统,虽然是很简单的一个小的程序,但对我们来说也不容易。第一天大家开了第一次小会,讨论了一个上午把大概的思路确定了,然后就开始上网搜索有关资料并仔细的研究, 经过一波三折,终于开始正式设计。 经过一周的努力,终于把程序完成了,通过这次课程设计,使我们对数据库有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它, 在课程设计过程中,收获知识,提高能力的同时,我们也体会到了团队协作是是多么的重要!团结就是力量,只要一个团队齐心协力,我们就一定能克服各种困难,走向成功!