数据库课程设计 销售员档案数据库设计.docx

上传人:b****8 文档编号:10951713 上传时间:2023-02-23 格式:DOCX 页数:22 大小:693.27KB
下载 相关 举报
数据库课程设计 销售员档案数据库设计.docx_第1页
第1页 / 共22页
数据库课程设计 销售员档案数据库设计.docx_第2页
第2页 / 共22页
数据库课程设计 销售员档案数据库设计.docx_第3页
第3页 / 共22页
数据库课程设计 销售员档案数据库设计.docx_第4页
第4页 / 共22页
数据库课程设计 销售员档案数据库设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

数据库课程设计 销售员档案数据库设计.docx

《数据库课程设计 销售员档案数据库设计.docx》由会员分享,可在线阅读,更多相关《数据库课程设计 销售员档案数据库设计.docx(22页珍藏版)》请在冰豆网上搜索。

数据库课程设计 销售员档案数据库设计.docx

数据库课程设计销售员档案数据库设计

附件1:

学号:

00

课程设计

 

课程名称

数据库系统原理

题目

销售员档案数据库设计

学院

计算机科学与技术学院

专业

计算机科学与技术

班级

计算机1005班

姓名

指导教师

耿枫

 

2013

1

24

课程设计任务书

学生姓名:

专业班级:

计算机1005班

指导教师:

耿枫工作单位:

计算机学院

题目:

销售员档案数据库设计

初始条件:

销售员业绩记录;销售员联络记录;销售员服务记录;销售员催款记录;销售员投诉记录

要求完成的主要任务:

1.根据上述的初始条件,进行调查分析并设计适当的属性。

设计一个销售员档案数据库,DBMS可选MsSQLServer、Oracle、MySQL等。

2.完成课程设计说明书,其格式遵守学校今年的新规定。

主要内容包括:

需求分析,概念设计,逻辑设计,物理实现等。

3.基于该数据库,最好实现一个或多个应用程序(自己确定功能),程序设计语言(工具)任选。

这一项是选作,不作硬性要求。

时间安排:

本学期第21周:

1.消化资料、系统调查1天

2.系统分析1天

3.总体设计,实施计划2天 

4.撰写报告1天

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

 

销售员档案数据库设计

1.需求分析及说明:

1.1需求分析和可行性分析:

需求分析的任务是调查应用领域,对应用领域中各种应用的信息要求和操作要求进行详细分析,形成需求分析说明书。

需求分析过程一般分一下几个阶段:

(1)调查组织机构的总体情况

(2)熟悉各模块情况

(3)分析用户的需求

(4)确定新系统的边界

员工档案是每个部门或公司必不可少的重要组成部分,每个部门可根据员工的档案对员工的能力进行评估,从而决定员工的升迁。

而一个完整高效的员工档案管理系统更有助于组织决策,使决策更加高效。

本课程设计正是基于这个目的进行设计的。

1.2具体说明:

根据销售员进行的活动将销售员档案数据库分为五个模块:

销售员业绩记录;销售员联络记录;销售员服务记录;销售员催款记录;销售员投诉记录

销售员业绩记录:

评价销售员的主要指标

销售员联络记录:

用于考察销售员的积极性,积极性有多大也将影响到销售员的业绩

销售员服务记录:

考察销售员的沟通能力以及是否能让顾客满意

销售员催款记录:

与联络记录一同用于考察销售员的积极性

销售员投诉记录:

考察销售员对顾客的行为是否礼貌

1.3问题域描述:

销售员每售出一批产品就增加销售员的一条业绩记录,这时候销售员要登记商品编号,商品价格,商品数量以及售出日期给系统管理员以便更改。

销售员每次联络顾客的记录也将登记入数据库,包括客户信息,联络方式,联络时间,联络地点

销售员对客户的服务记录也登记入数据库,考察客户对销售员的售前或者售后服务是否满意。

催款记录登记的信息包括:

催款金额,顾客信息,时间以及是否成功。

投诉记录:

记录销售员受到的投诉

1.5数据字典:

1.5.1数据项:

数据项是数据的最小单位,对数据相的描述包括:

数据项名、含义、别名、类型、长度、取值范围以及与其他数据项的逻辑关系。

(1)销售员信息:

编号,姓名,性别,电话号码,参加工作时间

(2)销售业绩:

销售员编号,商品名称,商品价格,商品数量,销售日期

(3)联络记录:

销售员编号,顾客姓名,联络方式,联络时间,联络地点

(4)服务记录:

销售员编号,服务顾客,客户评价,服务时间,服务类型,服务地点

(5)催款记录:

销售员编号,金额,顾客,日期,成功与否

(6)投诉记录:

销售员编号,投诉时间,原因,是否属实

1.5.2数据表:

销售员信息:

销售业绩:

联络记录:

服务记录:

催款记录:

投诉记录:

2.概念设计:

概念设计结构通常有自顶向下、自底向上、逐步扩张、混合策略4类方法。

其中最经常采用的策略是自底向上的方法。

即自顶向下的进行需求分析,然后在自底向上地设计概念结构。

自底向上设计概念结构的方法通常有可分为两步:

(1)抽象数据并设计局部视图。

(2)集成局部视图,得到全局的概念结构。

2.1数据库的实体及属性:

销售员信息:

(编号,姓名,性别,电话号码,参加工作时间)

销售业绩:

(业绩号,销售员编号,商品名称,商品价格,商品数量,销售日期)

联络记录:

(记录号,销售员编号,顾客姓名,联络方式,联络时间,联络地点)

服务记录:

(服务号,销售员编号,服务顾客,客户评价,服务时间,服务类型,服务地点)

催款记录:

(催款记录号,销售员编号,金额,顾客,日期,成功与否)

投诉记录:

(投诉记录号,销售员编号,投诉时间,原因,是否属实)

2.2系统E-R图设计:

为了把系统的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型(E-R图)。

它描述了从用户角度看到的数据,它反映了用户的显示环境,而且与在软件中的实现方法无关。

以下便是本系统的E-R图表示:

2.2.1销售员实体图和描述:

描述:

顾客号唯一的标示一位顾客。

一个顾客号可以对应多个订单号。

2.2.2销售业绩实体图和描述:

2.2.3联络记录实体图和描述:

 

2.2.4服务记录实体图和描述:

2.2.5催款记录实体图和描述:

2.2.6投诉记录实体图和描述:

2.2.6总体的E-R图及描述:

 

3.逻辑设计

这个过程首先将概念结构转换为关系模型。

其次是对数据模型进行优化。

E-R图向关系模型的转换:

销售员信息:

(编号,姓名,性别,电话号码,参加工作时间)

此为销售员实体型对应的关系模型。

销售员的编号该关系模型的候选码

销售业绩:

(业绩号,销售员编号,商品名称,商品价格,商品数量,销售日期)

此为销售员销售业绩实体型对应的关系模型。

销售员销售业绩的编号该关系模型的候选码,销售员编号是该模型的外码

联络记录:

(记录号,销售员编号,顾客姓名,联络方式,联络时间,联络地点)

此为销售员联络记录实体型对应的关系模型。

销售员联络记录的编号该关系模型的候选码,销售员编号是该模型的外码

服务记录:

(服务号,销售员编号,服务顾客,客户评价,服务时间,服务类型,服务地点)

此为销售员服务记录实体型对应的关系模型。

销售员服务记录的编号该关系模型的候选码,销售员编号是该模型的外码

催款记录:

(催款记录号,销售员编号,金额,顾客,日期,成功与否)

此为销售员催款记录实体型对应的关系模型。

销售员催款记录的编号该关系模型的候选码,销售员编号是该模型的外码

投诉记录:

(投诉记录号,销售员编号,投诉时间,原因,是否属实)

此为销售员投诉记录实体型对应的关系模型。

销售员投诉记录的编号该关系模型的候选码,销售员编号是该模型的外码

4.数据库的物理设计:

数据库的物理设计通常分为两步:

(1)确定数据的物理结构。

(2)对物理结构进行评价,评价的重点是时间和空间效率。

4.1开发环境:

本课程设计开发环境:

MySQL,Ubuntu操作系统。

4.2数据库表的设计:

create_tables.sql的内容:

usearchives;

droptablegrade;

droptablecontact_record;

droptableservice;

droptablemoney;

droptablecomplaint;

droptablesalesman;

createtablesalesman

member_idintnotnull,

primarykey(member_id),

namevarchar(20)notnull,

sexenum('M','F')notnull,

phone_numbervarchar(20)notnull,

entered_timedatenotnull

);

createtablegrade

grade_idintnotnull,

primarykey(grade_id),

member_idintnotnull,

foreignkey(member_id)referencessalesman(member_id)

ondeletecascade,

product_namevarchar(40)notnull,

product_priceintnotnull,

product_amountintnotnull,

sales_timedatenotnull

);

createtablecontact_record

contact_record_idintnotnull,

primarykey(contact_record_id),

member_idintnotnull,

foreignkey(member_id)referencessalesman(member_id)

ondeletecascade,

cus_namevarchar(20)notnull,

wayenum('F','P','M')notnull,#F:

facetoface,P:

phone,M:

message

timedatenotnull,

locationvarchar(50)notnull

);

createtableservice

service_idintnotnull,

primarykey(service_id),

member_idintnotnull,

foreignkey(member_id)referencessalesman(member_id)

ondeletecascade,

cus_namevarchar(20)notnull,

cus_evaluateenum('S','A','B','C','D')notnull,

timedatenotnull,

typeenum('B','A')notnull,#B:

beforesales,A:

aftersales

locationvarchar(50)notnull

);

createtablemoney

money_idintnotnull,

primarykey(money_id),

member_idintnotnull,

foreignkey(member_id)referencessalesman(member_id)

ondeletecascade,

money_sumintnotnull,

customervarchar(20)notnull,

timedatenotnull,

successenum('Y','N')notnull

);

createtablecomplaint

complaint_idintnotnull,

primarykey(complaint_id),

member_idintnotnull,

foreignkey(member_id)referencessalesman(member_id)

ondeletecascade,

timedatenotnull,

reasonvarchar(20),

truthenum('Y','N')notnull

);

运行结果:

4.3插入数据:

salesman.sql的内容:

usearchives;

deletefromgrade;

deletefromcontact_record;

deletefromservice;

deletefrommoney;

deletefromcomplaint;

deletefromsalesman;

insertintosalesmanvalues

(1001,'John','M','','2008-09-23'),

(1002,'Johny','M','','2006-08-12'),

(1003,'Billy','M','','2010-04-25'),

(1004,'Jenny','F','','2011-07-12'),

(1005,'Missy','F','','2006-05-21');

insertintogradevalues

(5001,1001,'CprogramingBook',40,27,'2008-10-10'),

(5002,1001,'CompilerBook',110,1200,'2009-01-03'),

(5003,1001,'CollegeEnglishBook',35,132,'2009-03-12'),

(5004,1001,'IntroductiontoAlgorithms',89,100,'2009-04-03'),

(5005,1001,'MySQL',139,1000,'2009-04-12');

insertintocontact_recordvalues

(6001,1001,'MrChen','F','2008-10-10','WHUT'),

(6002,1001,'MrHu','P','2009-01-03','WHUT'),

(6003,1001,'MrLi','M','2009-03-12','WHUT'),

(6004,1001,'MrHan','F','2009-04-03','WHUT'),

(6005,1001,'MrsLiu','F','2009-04-12','WHUT');

insertintoservicevalues

(7001,1001,'MrChen','A','2008-10-10','A','WHUT'),

(7002,1001,'MrHu','B','2009-01-03','B','WHUT'),

(7003,1001,'MrLi','A','2009-03-12','A','WHUT'),

(7004,1001,'MrHan','A','2009-04-03','B','WHUT'),

(7005,1001,'MrsLiu','B','2009-04-12','B','WHUT');

insertintomoneyvalues

(8001,1001,500,'MrChen','2008-10-13','Y'),

(8002,1001,50000,'MrHU','2009-01-06','Y'),

(8003,1001,2000,'MrLi','2009-03-15','N'),

(8004,1001,5000,'MrHan','2009-04-08','Y'),

(8005,1001,10000,'MrsLiu','2009-04-15','Y');

insertintocomplaintvalues

(9001,1001,'2009-03-15','Unatural','Y'),

(9002,1001,'2009-04-15','rude','N');

运行结果:

4.4查询数据:

select.sql的内容

usearchives;

select*fromsalesman;

select*fromgrade

wheremember_id=

(selectmember_idfromsalesmanwherename='John');

selectsum(grade.product_amount*grade.product_price)

fromgradewhereYEAR(grade.sales_time)='2009'

andMONTH(grade.sales_time)='04';

selectcus_name,way,time,location

fromcontact_record

wheremember_id=1001

andYEAR(contact_record.time)='2009'

andMONTH(contact_record.time)='04';

selectcus_name,cus_evaluate,time,type,location

fromservicewheremember_id=1001;

select((

selectcount(money.success)

frommoneywheresuccess='Y'andmember_id=1001)/(

selectcount(money.success)

frommoneywheremember_id=1001))

as'success_times/total_times';

selectcount(complaint.member_id)

fromcomplaint

wheremember_id=1001andtruth='Y';

运行结果:

4.5修改数据:

update.sql的内容:

usearchives;

updatesalesmansetphone_number=wherename='John';

updatesalesmansetname='Harry'wheremember_id='1001';

updatesalesmansetsex='F'wherename='Harry';

updatesalesmansetentered_time='2008-08-23'wherename='Harry';

updategradesetproduct_name='C++Programing'wheregrade_id=5001;

updategradesetproduct_price=45wheregrade_id=5001;

updategradesetproduct_amount=47wheregrade_id=5001;

updategradesetsales_time='2009-01-13'wheregrade_id=5001;

updatecontact_recordsetcus_name='MrWhite'wherecontact_record_id=6001;

updatecontact_recordsetway='P'wherecontact_record_id=6001;

updatecontact_recordsettime='2008-10-01'wherecontact_record_id=6001;

updateservicesetcus_name='MrWhite'whereservice_id=7001;

updateservicesetcus_evaluate='A'whereservice_id=7001;

updateservicesettime='2008-10-01'whereservice_id=7001;

updateservicesettype='B'whereservice_id=7001;

updateservicesetlocation='WHU'whereservice_id=7001;

updatemoneysetmoney_sum=550wheremoney_id=8001;

updatemoneysetcustomer='MrWhite'wheremoney_id=8001;

updatemoneysettime='2008-10-10'wheremoney_id=8001;

updatemoneysetsuccess='N'wheremoney_id=8001;

updatecomplaintsettime='2009-03-25'wherecomplaint_id=9001;

updatecomplaintsetreason='rude'wherecomplaint_id=9001;

updatecomplaintsettruth='N'wherecomplaint_id=9001;

运行结果:

5.数据库的运行和维护:

数据库是运行合格后,数据库开发工作就基本完成,即可投入正式运行了。

但是,由于应用环境在不断地变化,数据库运行过程中物理存储业会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。

对数据库经常性的维护工作主要是由DBA完成的,它包括:

(1)数据库的转储和恢复

(2)数据库的安全性、完整性控制

(3)数据库性能的监督、分析和改造

(4)数据库的重组织和重构造

对于本数据库来说,主要完成数据库的完整性控制。

例如五个表中主码不能为空,对于特别说明的不能为空的属性也不能为空,还有前四个表中的对应关系要注意,它们就是用户自定义的完整性。

在账号管理中设计权限保证数据的安全操作。

6.心得和体会:

本次课程设计,总的来说做的还不错,不过一些细节方面没掌握好。

通过这次课程设计,我对MySQL有了进一步的了解和掌握,且更加巩固了我对数据库的理解与掌握,总的来说获益匪浅。

我觉得课程设计很能过锻炼我,在以后的课程设计中要特别认真的对待。

7.参考文献

《MySQL技术内幕》,Dubois,人民邮电出版社

 

本科生课程设计成绩评定表

班级:

计算机1005班姓名:

 学号:

000

序号

评分项目

满分

实得分

1

学习态度认真、遵守纪律

10

2

设计分析合理性

10

3

设计方案正确性、可行性、创造性

20

4

设计结果正确性

40

5

设计报告的规范性

10

6

设计验收

10

总得分/等级

评语:

注:

最终成绩以五级分制记。

优(90-100分)、良(80-89分)、中(70-79分)、

及格(60-69分)、60分以下为不及格

 

                      指导教师签名:

                  年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1