1、重庆科技学院毕业设计 摘要I摘要通过对即时通讯原理的分析和研究,设计者基于 Socket 网络通信技术,采用微软提供的 C#开发语言,搭建.NET 开发平台,利用 SQL Server 2005 数据库管理系统作为管理数据的仓库,来开发一款企业即时通讯系统。其目标是解决企业内各个部门之间的沟通和协同工作等问题。此系统采用 C/S 框架设计模式,运用多线程并发原理,利用服务端和客户端对数据的接收和转发来实现端对端的通信。本文主要介绍了数据库的设计,客户端与服务端之间通信协议的制定,程序各个功能模块的设计与实现方法,设计上的重难点分析以及解决办法,程序的测试和发布等。通过测试表明系统支持多用户的并
2、发操作,实现了信息的即时和离线收发、用户的管理控制、权限划分、文件操作以及消息通知等功能。系统设计合理,功能完善,存储内容安全,性能稳定,界面友好简洁,满足企业即时通讯系统的基本需求。关键词:企业即时通讯 Socket C/S SQL Server 2005 通信协议重庆科技学院毕业设计 ABSTRACTIIABSTRACTBy analyzing and researching the principle of instant communication, the designers develop an enterprise instant messaging system based o
3、n the socket network communication technology, using Microsofts C# development language, building .NET development platform and using SQL Server 2005 database management system as the management of data warehouse, which aims at solving the communication and team working problems in enterprise betwee
4、n different departments. This system uses C/S framework model, implements end-to-end communication through utilizing the server and the client receiving and forwarding to the data. This paper mainly introduces the design of the database, the formulation of communication protocol between the client a
5、nd the server, program design and implementation methods of each function module, difficult point analysis and solution on design, program testing and release, etc . The test indicates that this software supports multi-user concurrent operation, to enable information being transmitted or received re
6、al-time and offline, user control/user administrative control, the division of authority, file operations, message notifications and other functions.The design of this software is reasonable, functional, secured storage content, stable performance, friendly and simple interface, which meets the basi
7、c requirement of the enterprise instant messaging system. Keywords: EIM;Socket ; C/S;SQL Server 2005;communication protocol重庆科技学院毕业设计 目录目录摘要 IABSTRACT.II第一章 引言 .11.1 背景 .11.2 国内外研究现状 .11.3 课题研究意义 .21.4 课题主要研究内容 .3第二章 需求分析 .42.1 任务概述 .42.1.1 目标42.1.2 用户的特点42.1.3 假定和约束42.2 需求规定 .42.2.1 对功能的规定42.2.2 对性
8、能的规定.102.2.3 输人输出要求.112.2.4 数据管理能力要求.122.2.5 故障处理要求.122.2.6 其他专门要求.122.3 运行环境规定 122.3.1 设备.122.3.2 支持软件.132.3.3 接口.13第三章 数据库设计 143.1 SQL Server 数据库 .143.2 设计原则 143.3 概念结构设计 153.3.1 实体图.153.3.2 实体关系图(E-R)163.4 逻辑结构设计 183.5 物理结构设计 183.5.1 数据表.183.5.2 数据字典.213.4.3 存储过程.24第四章 详细设计 304.1 公共类 304.2 多线程 30
9、4.3 通信协议 324.4 功能模块 344.4.1 服务器 34重庆科技学院毕业设计 目录4.4.2 客户端 354.5 流程逻辑 384.6 重难点分析及解决方法 42第五章 系统测试与发布 455.1 系统测试 455.1.1 测试目的.455.1.2 常用方法.455.1.3 测试结果.465.2 系统发布 58第六章 总结与展望 606.1 工作总结 606.2 工作展望 61参考文献 .62致谢 .63重庆科技学院毕业设计 引言1第一章 引言1.1背景随着信息时代的来临,IT 技术的快速发展,无论是企业等组织机构还是个人需要,对沟通的需求也在不断地变化,传统的邮件、传真、电话等沟
10、通交流方式明显已经无法满足现代人们工作和生活的需要。互联网的发展和普及使更多的人们习惯了即时通讯(IM)的实时交流。即时通讯是多个终端连接一个即时通讯的网络性服务。随着 IM 功能和应用的逐渐完善,其已演化成为一个综合的实时通讯平台,并且在人们的日常生活与工作中发挥着不可或缺的作用。面对如今新的发展形势,国内许多企事业单位跟进并加快了信息化建设的步伐。处于快速发展中的中国企业,企业信息化建设工程需要立竿见影,从而实现其投资效益达到最大化的目的,所以信息化建设的解决方案必须达到功能实用、贴切、易学、易用、能快速实施、稳定且安全的实效,能够确保其关键性的业务和关键性的管理需求得到率先解决,并且提供
11、充分的可扩展性以适应企业成长和发展的需要,才能将企业实施信息化建设的风险达到最小化。1.2国内外研究现状1996 年,三个以色列人聚集在一起,他们决定共同开发一种可以使人与人在互联网上能快速直接交流的即时通讯工具,即 ICQ。在 1997 年,即时通讯软件进入中国市场之后迅速得到广大用户的认可。据相关调查研究机构发布的消息,2007 年底使用即时通讯软件的用户数量已经达到 1.7 亿人 1。2008 年中国即时通讯软件用户规模达到2.2 亿,同比 07 年增长 31.0%1。2009 年第一季度中国即时通讯软件总覆盖人数保持缓慢上升趋势,3 月份总覆盖人数接近 2 亿,约占中国网民数量的 70
12、%1。其中,腾讯QQ 市场领先优势依然巨大;阿里旺旺与飞信增长快速,月度覆盖人数平均增长率均保持在 6%左右,最高覆盖人数分别为 7086 万和 6095 万;MSN 月度覆盖人数平均增长率为 3%左右,最高覆盖人数为 4352 万 1。其它即时通讯软件在各垂直领域都有所发展,但最高月度覆盖人数都不超过 1000 万,难以撼动前两阵营地位 1。2010 年的 3.5亿,2011 年的 4.2 亿,2012 年的 4.7 亿,截止到 2013 年,即时通讯行业的用户达到了5.1 亿 1。随着互联网的发展以及网民需求不断增加,即时通讯市场也呈现出许多新的增长点。垂直领域的不断成长推动了细分化即时通
13、讯软件的快速发展。以用户为基础的 IM软件产业在满足用户需求的同时,也延伸开辟出多平台、多运营模式的即时通讯软件外延市场。近年来,即时通讯软件行业的飞速发展,用户使用需求的不断膨胀,同时只用一款即时通讯服务已经不能满足用户在互联网生活不同场景上的需要。类似于社交网站、重庆科技学院毕业设计 引言2微博等提供的即时通讯服务,为用户带来了更多不同的互动场景和应用范围,对于传统桌面即时通讯软件服务来说是一个新的挑战。移动化的即时通讯市场仍旧处于快速上升阶段,且基于各种移动通信终端传感器,将实时图片、地理位置、视频等内容引入到即时通讯服务中,用户的人际关系链和使用场景范围将被大大地拓宽。新的竞争者凭借着
14、特色功能及使用体验对行业发展带来更多的可能性。在企业即时通讯产品市场中,腾讯 RTX、Anychat、IBM Sametime、微软 LCS 等产品占据着该市场绝大部分资源。IBM 是全球范围内起步较早的企业即时通讯服务商,国内多数大型集团和跨国企业都在使用其产品。对于中国企业即时通讯行业来说,其在 2003 年至 2007 年基本上处于萌芽期,这一阶段代表局域网软件型时代,但是由于局域网软件本身的一些缺点以及企业信息化水平较低,该行业发展缓慢 2。2008 年到2011 年期间,企业即时通讯行业进入发展起步期,这一阶段代表互联网平台型兴起的时代,各个巨头和资金也逐渐注意到了这一行业 2。20
15、12 年到 2015 年期间,该行业进入高速发展期,并且走向集中化,这一阶段互联网平台型将会逐步占领数量众多的中小型企业市场 2。当前中国企业即时通讯软件市场的特点有六点:一是门槛低,开发技术的难度小;二是市场竞争非常激烈;三是收费难,企业很难为单独的 IM 产品付费;四是对外的 API 接口各异,没有统一的规定和标准;五是没有成熟的应用商店,行业生态系统尚未建成;六是企业需求不高,对于一般的小型企业来说,免费的 QQ 和MSN 即可解决大部分需求。目前,国内外的互联网普及率已达到一定的水平,其增长速度大大放缓。即时通讯用户数量上升的速度及新增用户数也已经呈现下降的趋势。有线的 IM 市场已经
16、接近饱和,无线的 IM 市场也将上演群雄逐鹿的局面。企业即时通讯领域同样如此。现如今产品同质化现象变得越来越严重,也许走专业化路线,盯住单个细分市场会成为下一个共同的目标。1.3课题研究意义经过研究调查,企业的传统业务支撑系统是以满足生产为目的,其各个组织架构系统相对独立 2。如果完全按照这一方式进行信息化管理,往往容易形成信息孤岛。这明显与信息资源的集成共享、零距离沟通交流从而促使企业内部高度的透明化、智能化、自动化的建设初衷相去甚远 2。企业即时通讯系统正是专门针对这种企业应用量身订做的统一商务协作平台 2。自问世以来,就以其稳定的安全性、人性化的监管性、通讯的便捷性及友好的操作界面在广大
17、企业中迅速普及 2。随着分公司,办事处等分支机构相继成立,各职能部门的完善与公司员工人数的增多,企业信息化建设变得尤为重要 2。现如今许多企业内部的多数员工都是在没有企业允许的情况下使用个人即时通讯工具,这个给企业网络带来了比较大的安全和效率问题 2。为了解决企业内部各种繁复的沟通问题,企业即时通讯系统便应运而生。其目的主要是为了促进公司内部员工的重庆科技学院毕业设计 引言3沟通,使交流便于扁平化管理,业务上能平等交流,还可以降低沟通成本、节约企业开支、防止企业的商业秘密和客户资料外泄、提高员工工作效率和合作意识、增强企业凝聚力、营造一种新的企业沟通文化。1.4课题主要研究内容企业即时通讯系统
18、主要是针对企业高效而安全的传输信息的一种更为方便、高效的通讯方式,实现了稳定而安全的信息传送,最重要的一点就是要求信息的实时性,要即时对接收到的信息实现反馈,解决网速过慢而导致文件传输过慢、文件数据丢失、文件资源被截断、人力资源的浪费、时间的浪费、企业执行力过低等一系列相关问题。本课题主要研究内容包括以下几个方面:(1) 组建 C/S 框架,搭建.NET 开发平台(2) 学习并掌握 C#程序开发流程(3) 学习并掌握 SQL Server 数据库的使用(4) 了解现阶段基于企业即时通讯软件的发展现状及相关功能(5) 学习并掌握 Socket 网络通信编程技术(6) 学习并掌握图形界面窗体形式软
19、件的开发技术重庆科技学院毕业设计 引言4重庆科技学院毕业设计 需求分析5第二章 需求分析2.1任务概述2.1.1目标开发该软件是为了企业内的员工提供一个在线实时沟通平台,使处在不同的地方,也能像近在咫尺般无所不谈。该软件主要是依赖 SQL Server2005 数据库来存储全部的数据信息,再结合 C#语言开发的一款图形界面软件。这个系统提供多个用户即时并发通信的平台。未注册用户可以注册成系统会员,已注册用户可以通过登录窗口进入聊天系统。进入系统的用户可以选择自己的操作对象。在系统中用户可以选择进入某一个聊天分区去聊天,也可以与特定的用户聊天。需要向对方发送文件的时候,可以选择在线或离线收发文件
20、。2.1.2用户的特点操作人员:操作本软件的用户不需要太高的教育水平,也不需要有什么技术专长。无论男女老幼,只要是企业内部员工,能用键盘和鼠标处理计算机事物,都可以使用本软件通过网络进行相关的即时信息交流。维护人员:维护该软件的人员必须是学习过相关计算机专业知识的专业人员,且能熟练使用 SQL Server 数据库和相关编程语言,当软件出现错误的时候,能通过调试程序调试该软件。本软件的预期使用频度较高的就是收发文本信息和文件。2.1.3假定和约束本通讯系统无需任何开发经费,由开发人员一人独立开发,开发期限从任务书下达开始到答辩之前结束,进行方案选择的比较期限不能超过一周。在 Windows 系
21、统、Microsoft visual studio 2010 开发环境下以 C#语言进行开发设计,数据库采用 SQL server 2005。开发软件运行的最短寿命不要低于 1 年。在法律和政策方面的限制主要是不侵权以及隐私等机密问题的传播控制。2.2需求规定 2.2.1对功能的规定对于一款即时消息通讯的软件,其界面应该美观、整洁,不能太过单调,各个功能模块应该一目了然,方便用户做出相应的选择和操作。终端之间使用 TCP 和 UDP 通信协议进行通信。系统分为两个部分:客户端和服务器。服务器监听客户端发来的消息,并将消息存储到数据库或者转发给其他终端。重庆科技学院毕业设计 需求分析6该软件必须
22、具有以下基本功能:(1) 客户端的主要功能:登陆、注册、查找、创建、添加、修改、删除、聊天、文件传输以及消息通知等。(2) 服务端的主要功能:启动服务、关闭服务、维护操作、数据库连接测试以及后台数据收发。以下是这些功能模块的简要描述:(1)登陆简要描述:输入正确账号和密码显示登陆成功。输入错误账号和密码显示登陆失败参与者:用户执行者:用户前置条件:开启程序,进入软件登陆界面事件流:1. 打开登陆界面2. 输入正确账号和密码,按登陆键,用户登陆成功3. 输入非法账号和密码,按登陆键,提示输入有误4. 输入未注册的账号,按登陆键,提示无此账号请注册5. 输入错误账号或密码,按登陆键,提示登陆失败6
23、. 点击申请号码页面自动转到申请号码窗体,用户可在那进行注册后置条件:无论用户输入任何信息,按取消键,关闭此窗体,退出软件(2)注册简要描述:用户按照相关提示资料信息进行正确的填写以完成申请账号并获得账号参与者:用户执行者:用户前置条件:有常用的国家承认的证件(身份证,军人证,护照等) ,并拥有一台可以连入网络的机器终端事件流:1. 按 Tab 键,光标可在注册窗体中进行切换2. 系统测试用户输入是否符合要求,输入是否有误3. 系统测试用户输入两次密码是否一样4. 有*号标记是否都填写5. 当用户正确输入全部资料信息后,按确定键,用户是否得到相应的账号6. 用户注册成功后将从服务器数据库中返回
24、一个随机账号给用户。后置条件:用户点击取消按钮,窗口关闭,返回登陆窗口重庆科技学院毕业设计 需求分析7(3)查找简要描述:可以按 ID 号码或昵称查找用户,按群号或群名称查找群组参与者:用户执行者:用户前置条件:正确登录软件,打开查找界面事件流:1. 根据用户的 ID 号查找好友时正确显示相应的用户资料信息2. 根据昵称查找好友正确显示相应的用户资料信息3. 根据群号查找群组正确显示相应的群组资料信息4. 根据群名称查找群组正确显示相应的群组资料信息5.没有输入用户 ID 号、昵称、群号或群名称时,提示输入信息后置条件:关闭查找窗口,等待下次查找(4)创建简要描述:创建好友分组或群组参与者:用
25、户执行者:用户前置条件:正确登陆软件并进入好友分组或者群组创建界面事件流:1. 点击创建按钮2. 输入好友分组或者群组名称3. 如果是创建群组,则输入群简介信息4. 创建成功后,好友里列表或者群组列表更新后置条件:无(5)添加简要描述:根据查找的结果添加用户到好友列表,添加群到群组列表参与者:用户执行者:用户前置条件:正确登陆软件并进入添加模块事件流:1. 若添加陌生人可先进行查找功能添加,或者直接添加2. 若已知对方 ID 则可直接添加好友3. 如对方在自己的陌生人列表中,可以移至好友分组列表4. 若已知某群号或群名称则通过查找模块添加重庆科技学院毕业设计 需求分析85. 添加后,列表更新后
26、置条件:无(6)修改简要描述:用户可以修改自己的个人基本信息和密码。参与者:用户执行者:用户前置条件:正确登陆软件并进入修改信息界面事件流:1. 在文本框或者其他控件中输入相应的信息2. 若输入错误信息或者格式不正确,则提示重新输入3. 点击修改按钮4. 如果是修改个人基本信息,则将修改后的信息实时显示在其他相应的界面上。后置条件:关闭修改信息窗口,进入软件主界面(7)删除简要描述:用户可以删除好友或者群组参与者:用户执行者:用户前置条件:正确登陆软件并进入删除模块事件流:1. 进入好友分组列表,右键点击好友,选择删除选项2. 右键点击群组,选择删除选项3. 删除后,列表更新后置条件:无(8)
27、聊天简要描述:用户可以根据自己的需要选择私聊或群聊。在此模块中,用户可以发送信息、接收信息、更改字体的属性,聊天界面上显示头像与账号、显示聊天对象参与者:用户执行者:用户前置条件:正确登陆软件,并打开聊天窗口界面事件流:1. 发送的信息能正确到达对应窗口重庆科技学院毕业设计 需求分析92. 接收的信息能正确显示在窗口3. 头像与账号能随个人信息修改显示4. 聊天对象能显示在对应窗口上5. 当聊天结束,关闭窗口能顺利实现6. 发送信息不能为空后置条件:关闭聊天窗口,等待聊天,或者开启另外的聊天窗口(9)文件传输简要描述:发送文件给对方,或接收从对方发过来的文件参与者:用户执行者:用户前置条件:正
28、确登陆软件并进入文件收发界面事件流:1. 点击联系人名字,选择发送文件选项2. 可以选择在线发送或是离线发送文件3. 将文件发送给对方,或从等待接收对方发来的文件4. 如果对方不在线,则将文件发送到服务器。当对方上线之后则从服务器下载文件。后置条件:无(10)消息通知简要描述:当对方向用户发送消息时,或者系统向用户发送消息时,程序需要通过以图标闪烁或者发出相应的声音的方式来提示用户有新消息到达参与者:用户执行者:用户前置条件:正确登陆软件并进入程序主界面事件流:1. 当好友列表在闪烁时,点击闪烁图标2. 当群组列表在闪烁时,点击闪烁图标3. 当系统托盘图标在闪烁时,点击托盘图标后置条件:点击闪
29、烁的图标,显示出相应的界面。(11)启动服务简要描述:管理员打开服务器程序后,需要启动服务使整个系统运转起来参与者:管理员重庆科技学院毕业设计 需求分析10执行者:管理员前置条件:正确打开服务器程序并进入程序主界面事件流:1. 选择启动服务选项2. 点击启动服务按钮3. 当服务启动后,该按钮就会变为不可用状态4. 服务器界面下方的状态栏显示服务已经开始运行状态后置条件:无(12)关闭服务简要描述:当服务器需要进行相关的维护操作时,管理员可以暂时关闭服务参与者:管理员执行者:管理员前置条件:正确打开服务器程序并进入程序主界面事件流:1. 选择关闭服务选项2. 点击关闭服务按钮3. 当服务关闭后,
30、该按钮就会变为不可用状态4. 服务器界面下方的状态栏显示服务已经停止状态后置条件:无(13)维护操作简要描述:当服务器需要维护时,管理员可以根据此模块来维护服务器参与者:管理员执行者:管理员前置条件:正确打开服务器程序并进入程序主界面事件流:1. 选择进入维护选项2. 点击进入维护按钮3. 输入账号和密码进入维护操作界面后置条件:退出维护,程序返回主界面(14)数据库连接测试简要描述:管理员打开服务器程序后,首先需要检查服务器能否连通数据库参与者:管理员重庆科技学院毕业设计 需求分析11执行者:管理员前置条件:正确打开服务器程序并进入程序主界面事件流:1. 选择连接测试选项2. 点击连接测试按
31、钮3. 如果连接成功,则返回连接成功状态4. 如果连接失败,则返回连接失败状态后置条件:关闭弹出的对话框(15)后台数据收发简要描述:管理员启动服务之后,服务器会产生两个监听线程用来实现对客户端发送而来的数据进行接收和解析功能,并将解析后的数据返回给客户端或者存储到数据库中参与者:管理员执行者:管理员前置条件:正确打开服务器程序并启动服务事件流:1. 启动 socket 监听服务2. 接收客户端发来的数据3. 解析数据4. 根据相关的命令执行相关的功能后置条件:无2.2.2对性能的规定(1)精度本软件的系统登录账号规定为 8 位,密码只能用数字和字母,大于或等于 6 位且不能超过 24 位,用
32、户昵称不能超过 12 位汉字,电话号码规定 7 到 11 位,联系地址不能超过 50 位汉字。其他的数据精度按照相关提示要求处理。(2)时间特性要求对于该软件的时间特性要求:a响应时间:所有的发送操作响应时间不超过 4 秒,大量的信息发送,应该在 5秒内显示或者提示相关出错信息。b更新处理时间:所有更新的数据响应时间不超过 4 秒重庆科技学院毕业设计 需求分析12c数据的转换和传送时间:数据的转换和传送时间随数据的传送大小而定。(3)灵活性a操作方式:该款软件为即时信息通信系统,属于人工手动操作,并且终端一定要连入局域网b运行环境:支持 Window XP 以上系统,并且必须配置 SQL Se
33、rver 2005、.NET Framework 3.0 及以上版本c同其他软件的接口:SQL Server 2005 以及上版本的接口d精度和有效时限:精度必须根据软件的相关精度要求来处理2.2.3输人输出要求表 2.1 主要输入输出要求数据名称 数据类型 数值范围用户账号 数字 8 位密码 数字或字母 6 至 24 位昵称 数字、字母或汉字 数字或字母不超过 20 位,汉字不超过 12 位电话号码 数字 7 位或 11 位联系地址 汉字、字母或数字 不超过 50 位发送聊天消息 汉字、字母、数字或其他符号 一次性发送数据不超过 2Kb好友分组名称 汉字、字母或数字 汉字不超过 10 位群组
34、账号 数字 7 位群组名称 汉字、字母或数字 汉字不超过 15 位群简介 汉字、字母或数字 汉字不超过 50 位文件名称 汉字、字母或数字 汉字不超过 50 位文件大小 二进制码 数据大小不超过 5G离线消息内容 汉字、字母、数字或其他符号 内容不超过 2Kb系统消息标题 汉字、字母、数字或其他符号 不超过 40 个汉字系统消息内容 汉字、字母、数字或其他符号 不超过 300 个汉字消息验证内容 汉字、字母、数字或其他符号 不超过 50 个汉字其他具体的输入输出要求按照相关提示操作处理。重庆科技学院毕业设计 需求分析132.2.4数据管理能力要求本系统的数据库有十个表来存储用户及其相关的基本信
35、息,其中包括用户的基本信息表、好友分组列表、群组表、群成员列表、系统管理员表、离线文件信息表、群历史消息记录表、用户离线信息记录表、系统消息表和消息验证表。本系统的上限人数不做规定,每人的的好友数量不超过 500 人,每个群的上限人数不超过 500 人,因此,数据的操作量有点大,但是在需要的时候能够即时存取,相关的配置信息,在需要时能够即时读取。2.2.5故障处理要求因为数据库没有启动而引起访问问题,需启动数据库服务器。因为无法远程连接数据库而引起的访问问题,需要开启数据库服务器的远程连接,设置数据库服务器的服务地址及服务端口。在执行程序的过程中,突然出现了非正常退出,则可以重新登录。若出现多
36、次这种现象,则通知维护人员对程序进行相关的维护。磁盘碎片过多、数据库存储空间不够,引起数据库访问等变慢等问题需要对磁盘进行相应的维护和扩展。其他具体问题,再做具体分析。2.2.6其他专门要求在程序的开发过程中,应遵循结构化的程序设计原则和开发文档的规范性,精心设立运行日志,从而加强系统的易读性、可维护性和可补充性;另一方面要注重系统的界面美观、友好和协调性,保持程序各模块的统一,增强可靠性。2.3运行环境规定2.3.1设备适合于该软件运行的系统的建议配置:服务器端:硬件:CPU:Intel Pentium 内存:1G硬盘:40G软件:企业即时通讯系统服务器Microsoft SQL Serve
37、r 2005 以上版本重庆科技学院毕业设计 需求分析14客户端:硬件:CPU:Intel Pentium 内存:1G硬盘:40G软件:企业即时通讯系统2.3.2支持软件操作系统:Windows XP、Windows 2003、Windows 2007编译程序:Microsoft visual studio 2010 或以上版本支持软件:.Net Framework 3.0 或以上版本、Microsoft Sql Server 2005 或以上版本2.3.3接口本软件基于 ADO.NET 数据库访问技术实现对 SQL 数据库的基本操作,通过 TCP/IP协议和 UDP 协议来传递远程数据。重庆科
38、技学院毕业设计 数据库设计15第三章 数据库设计3.1 SQL Server数据库数据库是存储数据的仓库,是长期存储在计算机内的、有组织的、可共享的数据集合 1。数据库中的数据具有结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点 3。数据库中的数据由数据库管理系统统一管理,数据库管理系统(DataBase Management System,简称 DBMS)是专门用于管理数据库的计算机系统软件 3。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能,它位于用户和操作系统之间 3。SQL Server
39、2005 是一个关系型的数据库管理系统,其主要特点如下:(1) 安 全 、 可 靠 、 可 伸 缩 、 高 可 用 性 的 关 系 型 数 据 库 引 擎 , 提 升 了 系 统 性 能 且支 持 结 构 化 和 非 结 构 化 数 据 。 在 编 程 环 境 下 和 微 软 .NET 集 成 在 一 起 。 SQL Server 2005 中 的 Transact-SQL 增 强 功 能 提 高 了 在 编 写 查 询 时 的 表 达 能 力 , 可 以 改 善 代 码的 性 能 , 并 且 增 强 了 错 误 管 理 能 力 4。(2) 可 用 于 数 据 分 发 、 处 理 移 动 数
40、据 应 用 、 系 统 高 可 用 、 企 业 报 表 、 数 据 可 伸缩 存 储 、 与 异 构 系 统 的 集 成 等 4。(3) 可 以 支 持 数 据 仓 库 和 企 业 范 围 内 数 据 集 成 的 抽 取 、 转 换 盒 装 载 能 力 4。(4) 联 机 分 析 处 理 功 能 运 用 于 多 维 存 储 的 大 量 的 、 复 杂 的 数 据 集 的 快 速 高 级 分析 4。(5) 通 过 使 用 Transact-SQLDML 语 言 扩 展 , 允 许 内 部 或 外 部 应 用 程 序 发 送 和 接收 可 靠 、 异 步 的 信 息 流 4。3.2设计原则数据库对
41、于整个系统来说是非常关键的,其支撑着整个系统对需求数据的框架,因此对于其中每一张数据表都要分析到位。数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。因此,在设计数据库时,设计者应该遵循不同的规范要求,设计出合理的数据存储仓库。数据库设计是进行系统开发的基础性工作。设计方案直接影响到开发的工作繁复程度和系统的好坏。数据库设计要遵循以下原则:(1) 数据的完整性:应保证数据库中数据的准确性。(2) 数据的结构化:数据库设计必须达到层次分明、分布合理的要求。数据库必须高度结构化,从而保证数据的规范化、结构化和标准化。(3) 减少数据冗余:数据库的设计应该尽量减少数据的冗
42、余性,节省数据的存储空重庆科技学院毕业设计 数据库设计16间,提高数据的质量,消除数据表中非主属性对主关键词的非完全依赖性及非主属性对主关键词的传递依赖性,将二维表转化为第三范式,可以有效地降低数据冗余性。3.3概念结构设计3.3.1实体图根据需求可知,本系统的实体可分为三种:用户、群组和管理员。这三种实体都有各自的属性及关系。根据这些属性可以生成相应的实体图。(1) 用户实体及其属性: 用户昵称生日账号电话 邮箱性别 地址头像密码I P 地址U D P 端口T C P 端口 在线状态 验证方式图 3.1 用户实体图(2)群组实体及其属性:群群号 群名群简介图 3.2 群组实体图(3)管理员实
43、体及其属性:管理员密码账号图 3.3 管理员实体图重庆科技学院毕业设计 数据库设计173.3.2实体关系图(E-R)E-R 图也称实体- 联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。根据以上实体图可以生成实体关系(E-R)图。(1)用户添加好友 E-R 图:用户昵称生日账号电话 邮箱性别 地址头像密码I P 地址U D P 端口T C P 端口在线状态验证方式用户昵称生日账号电话 邮箱性别 地址头像密码I P 地址U D P 端口T C P 端口在线状态验证方式添加n m图 3.4 添加好友 E-R 图(2
44、)用户添加群组 E-R 图:群群号群名群简介用户昵称生日账号电话 邮箱性别 地址头像密码I P 地址U D P 端口T C P 端口在线状态验证方式加群n1图 3.5 加群 E-R 图(3)用户发送离线文件 E-R 图:重庆科技学院毕业设计 数据库设计18M D 5 值文件地址文件名文件大小文件编号用户昵称生日账号电话 邮箱性别 地址头像密码I P 地址U D P 端口T C P 端口在线状态验证方式用户昵称生日账号电话 邮箱性别 地址头像密码I P 地址U D P 端口T C P 端口在线状态验证方式发送离线文件1 m发送时间接收状态图 3.6 发送离线文件 E-R 图(4)用户发送离线消息
45、 E-R 图:类型内容用户昵称生日账号电话 邮箱性别 地址头像密码I P 地址U D P 端口T C P 端口在线状态验证方式用户昵称生日账号电话 邮箱性别 地址头像密码I P 地址U D P 端口T C P 端口在线状态验证方式发送离线消息1 m编号图 3.7 发送离线消息 E-R 图(5)用户发送验证消息 E-R 图:验证类型发送时间用户昵称生日账号电话 邮箱性别 地址头像密码I P 地址U D P 端口T C P 端口在线状态验证方式用户昵称生日账号电话 邮箱性别 地址头像密码I P 地址U D P 端口T C P 端口在线状态验证方式发送验证消息1 1编号内容 读取状态 同意状态 发送
46、者组接收者组图 3.8 发送验证消息 E-R 图重庆科技学院毕业设计 数据库设计193.4逻辑结构设计逻辑结构设计的任务目标就是把在概念结构设计阶段设计好的实体关系(E-R)图转换为与选用 DBMS 产品所支持的数据模型相符合的逻辑结构。根据以上 E-R 图,可以转换为相应的关系模式,关系的码用下划线标出。用户实体对应的关系模式为:用户 账号,昵称,性别,生日,电话,邮箱,地址,头像,密码,IP 地址,UDP端口,TCP 端口,在线状态,验证方式 群组实体对应的关系模式为:群组 群号,群名,群简介,创建人,创建时间 管理员员实体对应的关系模式为:管理员 账号,密码 添加好友对应的关系模式为:添
47、加 编号,用户账号,好友分组标记,分组名称,好友 ID 列表 加群对应的关系模式为:加群 群号,成员账号,权限,最后访问时间 发送离线文件对应的关系模式为:离线文件 文件编号,名称,大小,MD5 值,地址,发送者,接收者,发送时间,接收状态 发送离线消息对应的关系模式为:离线消息 编号,发送者,接收者,消息内容,消息类型 发送验证消息对应的关系模式为:验证消息 编号,发送者,接收者,发送时间,内容,读取状态,同意状态,发送者组,接收者组,验证类型 3.5物理结构设计3.5.1数据表本系统的数据库一共设计了 10 个基本数据表:用户基本信息表 UserInfo、好友关系表 FriendShip、群组信息表 Groups、群成员表 GroupMember、离线文件表重庆科技学院毕业设计 数据库设计20offLineFile、群信息记录表 GroupRecords、离线信息记录表 UserMsgRecords、系统消息表 SysMsg、消息验证表 MsgValidate 和管理员表 Sy