1、1实验内容1) 通过对某个商用数据库管理系统的安装使用,初步认识DBMS的工作环境和系统架构。2) 熟悉对DBMS的安装,熟悉通过Sql对数据库进行操作,实现包括基本的创建,添加,删除,修改,查询等操作。建立一个数据库,完成实验所要求的各种操作,所有的操作均在此建立的数据库中进行。3) 通过ODBC访问数据库。学会配置ODBC数据源。熟悉使用ODBC来进行数据库应用程序的设计,熟悉通过ODBC接口访问数据库并对数据库进行操作。2实验环境1) Microsoft Visual C+ 6.0开发环境。MFC:微软基础类(Microsoft Foundation Classes),同VCL类似,是一
2、种应用程序框架,随微软VC+开发工具发布。2) Microsoft Sql Server 2008 R2数据库。Microsoft SQL Server 2008 R2 提供完整的企业级技术与工具,帮助您以最低的总拥有成本获得最有价值的信息。3) 安装的RDBMS及其交互查询工具操作SQL语言。4) 安装的RDBMS及其ODBC Driver。5) Windows7旗舰版操作系统。3问题描述3.1 问题概述客户信息管理系统是企业管理新系统的重要组成部分,利用客户信息管理系统,企业能够有效的管理自己的客户,实现对客户信息的维护。客户便于对自己的消费情况进行查询,对产品进行购买并了解购买价格和个人
3、信息。便于企业管理并了解客户信息。3.2 系统功能简介客户信息管理系统主要是对企业的客户信息进行详细的管理,并方便的对客户信息进行创建,添加,删除,修改,查询等操作。a) 查询客户信息:输入要查询的客户账号,查询已有的客户信息到客户表,可查询到客户信息包括:客户账号、客户姓名、客户性别、客户单位、客户住址、客户电话等。b) 添加客户信息:添加新的客户信息到客户表,可添加包括:客户账号、客户姓名、客户性别、客户单位、客户住址、客户电话等基本信息。c) 修改客户信息:用户可以在浏览客户信息时修改客户信息,并将修改后的客户信息更新到客户表中。d) 删除客户信息:删除客户表中已有的客户信息,可以逐个删
4、除。4需求分析4.1 可行性分析通过客户信息进行详细的管理使企业管理员能方便的管理客户日常信息以及方便客户对自己的个人信息的进行查询。由此系统的开发,可以节省大量的时间,使得管理人员对客户信息清晰明了,此外客户关系管理不再是局部的,可视化的工作流程,实现对客户日常消费记录,使客户信息规范化,大大提高了管理人员的工作效率,开发一个这样的客户关系管理系统对于企业长期来说是基本可行的,可实施。4.2 功能需求客户信息管理系统,主要包括客户与商品之间的关系。主要功能需求如下。 (1)在客户信息管理部分,要求:a) 可以查询客户信息。b) 可以对客户信息进行查询、添加、删除以及修改等操作。(2)在商品信
5、息管理部分,要求:a.可以查看商品信息。b.对商品信息进行维护,包括查询、添加、删除以及修改等操作。(3)在消费信息管理部分,要求:a.可以浏览客户消费信息,查询客户消费情况。b.可以对客户消费信息进行维护,包括查询、添加、删除以及修改等操作。4.3 性能需求a) 数据的精确度 应保证查询的准确率为100%,所有在相应区域中包含查询关键字的都可以查到,不在相应域中或不包含查询关键字的都不能查到。b) 系统响应时间系统性能高反应速度快,1、2秒之内找到特定的客户信息。c) 适应性满足运行环境在允许操作系统之间的安全转换和与其他应用软件的独立运行要求。4.4 系统设计基础4.4.1 系统业务流图图
6、4-1系统业务流图4.4.2 系统数据流图图4-2系统数据流图5概要设计5.1 功能描述 该课程设计的数据结构是线性的数据存储结构,采用的是单链表类型的存 储结构。客户信息管理系统主要是对企业的客户信息进行详细的管理,并方便的对客户信息进行创建,添加,删除,修改,查询等操作。客户信息管理系统结构分为基础信息维护,客户信息管理,商品信息管理,客户消费管理。管理人员可以浏览客户的信息,可以对客户信息进行维护。商品管理可以浏览商品的信息,可以对商品信息进行维护。客户消费管理可以显示当前数据库中客户的消费情况,可以对客户的消费信息进行维护。简单而有效的发挥出它的效力,资源配置比较突出,这就是管理信息系
7、统的开发的基本环境。5.2 系统功能模块图图5-1 系统功能模块图6数据库设计6.1 数据库简介数据库是指存放在计算机内、有组织的、可共享的数据集合;对数据库的管理是通过数据库管理系统(DBMS)实现的。数据库技术使准确、批量、高效的管理数据成为可能。随着管理需求的提高,数据库技术也得到了飞速发展,应用较为广泛的是分布式数据库和数据仓库技术。数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。我们这本书主要学的是关系型数据库。数据结构又分为数据的逻辑结构和数据的物理结构。数据库系统三级模式和两层映像的系统结构保证了数据库系统中能够具有较高的逻辑独立性和物理独立性。6.2 概念结构设计E
8、R图是用来描述某一组织(单位)的概念模型,提供了表示实体、属性和联系的方法构成ER图的基本要素是实体、属性和关系。实体是指客观存在并可相互区分的事特;属性指指实体所具有的每一个特性。本系统的E-R模型如下图所示:图6-1关系图a) 客户信息E-R图:图6-2客户信息图b) 商品信息E-R图:图6-3商品信息图c) 消费信息E-R图:图6-4消费信息图d) 客户信息管理之间的关系图:一个商品可以被多个客户购买,它们之间是一对多的联系。图6-5关系图6.3 逻辑结构设计该数据库符合3NF 由E-R图得出关系模式如下:客户信息(客户账号、客户单位名称、客户联系地址、客户联系电话、联系姓名、性别等)商
9、品信息(商品编号、商品名称、商品种类、商品总量、商品进价、商品售价等。)消费信息(客户账号、商品编号、购买商品量、商品售价、消费总额等。)数据库的设计在一个管理系统中起着重要的作用,一个设计合理、结构清晰的数据库能减少数据冗余,提高查询速度,方便更新修改,可以减轻程序的负担,提高程序的执行效率,本系统主要由一个表组成:客户信息表,客户信息表用于保存客户的基本信息,字段包括账号,单位名称,联系地址,联系电话,联系姓名,性别等。a) 客户信息表:字段字段名属性含义数据类型是否为空1(主键)CID客户账号Varchar(50)不可以2Cname客户姓名Varchar(50)不可以3Csex客户性别V
10、archar(50)可以4Cadd客户住址Varchar(50)可以5Cunit客户单位Varchar(50)可以6Cphone客户电话Varchar(50)不可以b) 商品信息表:字段字段名属性含义数据类型是否为空1(主键)PID商品编号Varchar(50)不可以2Pname商品名称Varchar(50)不可以3Pkind商品种类Varchar(50)可以4Psum商品总量Varchar(50)不可以5Pout_price商品进价Varchar(50)不可以6Pin_price商品售价Varchar(50)不可以c) 客户消费表:字段字段名属性含义数据类型是否为空1(主键)CID客户账号V
11、archar(50)不可以2(主键)PID商品编号Varchar(50)不可以3Psum商品售量Varchar(50)可以4Pprice商品售价Varchar(50)可以5Cconsume消费总额Varchar(50)不可以7详细设计7.1 项目创建1. 单击“Office 按钮” ,然后单击“新建”。或者,在“开始使用 Microsoft Office Access”页上的“新建空白数据库”下,单击“空白数据库”。在默认文件位置中创建 Access 项目 在“空白数据库”下,在“文件名”框中键入项目名称(使用 .adp 文件扩展名)。-或-在另一个文件位置中创建 Access 项目 a) 在
12、“空白数据库”下,单击“浏览” ,以确定保存数据库的位置。b) 在“文件新建数据库”对话框中,浏览到想保存项目的位置,或接受默认位置。c) 在“文件名”框中键入项目的文件名。d) 在“保存类型”列表中,选择“Microsoft Office Access 项目(*.adp)”,然后单击“确定”。2. 连接数据源的过程。a) 单击“开始”按钮,选择“程序”“管理工具”“数据源(ODBC)”命令,打开“ODBC数据源管理器”对话框,打开“系统DSN”选项卡。b) 单击“添加”按钮,打开“创建新数据源”对话框,选择安装数据源的驱动程序,这里选择“Microsoft Access Driver (*.
13、mdb)”,如图2.6所示。c) 单击“完成”按钮,打开“ODBC Microsoft Access 安装”对话框,填写“数据源名”及相关“说明”,并指定所要连接数据库的路径,如图2.7所示。d) 单击“确定”按钮,完成配置系统DSN的操作。3. 在VC6.0中创建界面的过程。打开VC6.0文件新建选择工程中的MFC AppWizardexe填写工程名点击确定按钮后选择单文档点击下一步选择没有文件支持的数据视图点击数据源在ODBC中选择数据源名选择Dynaset后点击确定选择你要选择的表即可7.2 建表模块 创建表的语句: a.客户信息表的创建create table Customer( CI
14、D Varchar(50) primary key, /*在列级定义主键*/ Cname Varchar(50), Csex Varchar(50), Cadd Varchar(50), Cunit Varchar(50), Cphone Varchar(50);客户信息表如下:b. 客户消费信息表的创建create table Product( CID Varchar(50) primary key, /*在列级定义主键*/ PID Varchar(50) primary key, /*在列级定义主键*/ Psum Varchar(50), Pprice Varchar(50), Ccons
15、ume Varchar(50),);客户消费信息表如下: c.商品信息表的创建create table Consume( PID Varchar(50) primary key, /*在列级定义主键*/ Pname Varchar(50), Pkind Varchar(50), Psum Varchar(50), Pout_price Varchar(50), Pin_price Varchar(50))商品信息表如下:7.3 功能模块 1)查询语句:查询customer表的所有内容,输入要求查询的客户账号,且要查询的账号不能为空,显示所要查询的客户基本信息。a) 查询代码:void CShe
16、nyajing1View:OnQuerybyCID() / TODO: Add your control notification handler code hereUpdateData();m_queryCID.TrimLeft();if(m_queryCID.IsEmpty()MessageBox(要查询的帐号不能为空:);return;if(m_pSet-IsOpen()m_pSet-Close();m_pSet-m_strFilter.Format(CID=%s,m_queryCID);m_pSet-m_strSort=Cname;m_pSet-Open();if(!m_pSet-Is
17、EOF()UpdateData(FALSE);elseMessageBox(没有查到指定账号对应的客户);b) 查询的界面图7-1查询界面2)添加语句:将一个新客户信息插入到客户信息表中。a) 添加的代码:void CShenyajing1View:OnAdd() / TODO: Add your control notification handler code hereCcuDlg dlg; if(dlg.DoModal()=IDOK) m_pSet-AddNew();m_pSet-SetFieldNull(&(m_pSet-m_CID),FALSE);m_pSet-m_CID=dlg.m
18、_CID; m_pSet-m_Cname=dlg.m_Cname;m_pSet-m_Csex=dlg.m_Csex;m_pSet-m_Cadd=dlg.m_Cadd;m_pSet-m_Cunit=dlg.m_Cunit;m_pSet-m_Cphone=dlg.m_Cphone;m_pSet-Update();m_pSet-Requery(); b) 添加的界面:图7-2添加界面3)修改语句:将一个已有客户信息进行修改并保存到客户信息表中。a) 修改的代码void CShenyajing1View:OnEdit() / TODO: Add your control notification ha
19、ndler code here CcuDlg dlg; dlg.m_CID=m_pSet-m_CID; dlg.m_Cname=m_pSet-m_Cname; dlg.m_Csex=m_pSet-m_Csex; dlg.m_Cadd=m_pSet-m_Cadd; dlg.m_Cunit=m_pSet-m_Cunit; dlg.m_Cphone=m_pSet-m_Cphone; if(dlg.DoModal()=IDOK) m_pSet-Edit(); m_pSet-m_CID=dlg.m_CID; m_pSet-m_Cname=dlg.m_Cname; m_pSet-m_Csex=dlg.m_
20、Csex; m_pSet-m_Cadd=dlg.m_Cadd; m_pSet-m_Cunit=dlg.m_Cunit; m_pSet-m_Cphone=dlg.m_Cphone; m_pSet-Update(); UpdateData(FALSE); b) 修改的界面:图7-3修改界面图7-4修改界面4)删除语句:将一个已存在的客户信息进行删除到客户信息表中。a) 删除的代码void CShenyajing1View:OnDelete() / TODO: Add your control notification handler code hereCRecordsetStatus status
21、;m_pSet-GetStatus(status);m_pSet-Delete();if(status.m_lCurrentRecord=0)m_pSet-MoveNext();elsem_pSet-MoveFirst();UpdateData(FALSE);b) 删除的界面图7-5删除界面图7-6已删除8调试分析在数据库系统运行过程中必须不断地对其进行评价、调整与修改。数据库试运行合格后,数据库即可投入正式运行。数据库投入运行标志着开发任务的基本完成和维护工作的开始。对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。应用环境在不断变化,数据库运行过程中物理
22、存储会不断变化。在数据库运行阶段,对数据库经常性的维护工作主要是由DBA完成的,包括: 数据库的转储和恢复;数据库的安全性、完整性控制数据库性能的监督、分析和改进;数据库的重组织和重构造。9实验总结通过这次实验,我对数据库这门课有了更深的理解和认识,为了做好本次实验,我综合运用了老师上课所讲部分内容,并查阅了很多相关资料,受益非浅,增长了很多方面的见识,使我深刻认识到以前所学的基础课程的重要性,也使我掌握了很多新的知识,特别是一些课本之外的知识,体会到了理论知识和实践相结合的重要性。本次实验对要处理的对象和系统的要求都有较明确的阐述,在对该系统进行测试时,实现了各个表上的各种查询、添加、删除、修改建立了相关视图等。功能相对比较完善,一些操作必须是有相关权限的人员可以执行,增加系统安全性,在本次实验中,很好地培养了我分析问题、解决问题的能力。同时,独立工作能力也得到了很好的提高。在学习过程中,我也借鉴了上网不少资料,看了一些别人设计的客户信息管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。在不断分析后明确并改正了错误和疏漏,使我的程序有了更高的质量。