完整版数据库客户信息管理系统毕业课程设计Word文档下载推荐.docx
- 文档编号:16786109
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:21
- 大小:1,014.76KB
完整版数据库客户信息管理系统毕业课程设计Word文档下载推荐.docx
《完整版数据库客户信息管理系统毕业课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《完整版数据库客户信息管理系统毕业课程设计Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
5.2、查询操作12
5.2.1对员工表的查询操作12
5.2.2对客户表的各种查询12
5.2.3对订单表的查询操作14
5.2.4对数据库管理员表的查询操作16
5.3、定义视图17
5.3.1定义员工表的视图17
5.3.2定义客户表的视图17
5.3.3定义订单表的视图18
5.3.4建立用户表的视图19
5.4、定义触发器20
5.5、定义存储过程22
5.5.1定义客户表上的存储过程22
5.5.2定义员工表上的存储过程23
六、设计小结24
一、需求分析
客户信息管理系统主要是公司为客户建立的档案信息,从而可以使公司很方便的对客户信息进行查找、插入、修改和删除等操作,同时通过对客户详细资料的深入分析,了解客户的爱好习性,从而从最大程度满足客户需求,提高企业竞争能力。
客户的基本信息应包括:
编号、客户名称、出生日期、电话、性别、地址、客户级别等。
(1).新增客户:
当有新客户时,向客户信息表里面添加一条新的记录。
(2).修改客户:
当有客户的信息如联系方式需要修改时,可更新客户资料。
(3).删除客户:
当客户的信息已经失效或无用时,可以删除该客户的信息。
(4).查询客户;
可以根据不同的条件查询不同客户的信息。
(5).汇总反馈:
可以进行总汇,反映每月、年的客户数量。
(1).企业员工表;
(2).客户信息表;
(3).订单表;
3、数据流程图(DFD)
4、数据字典(DD)
数据项名
数据项含义
数据类型
长度
取值范围
员工编号
唯一标识员工
char
12
数字
员工姓名
区分不同员工
varchar
25
汉字或英语
员工性别
区别男女
2
男、女
员工职位
判断员工级别
20
员工电话
跟员工联系
员工住址
联系员工
30
客户编号
唯一标识客户
客户名称
区分不同客户
40
邮政编码
了解客户现居地
8
出生日期
知道客户的年龄
datatime
客户电话
公司联系客户
客户性别
知道男女
客户地址
汉字、英语
订单编号
唯一标识商品
订单运费
运输费用
订单数量
计算每一笔成交订单
int
订单日期
商品交易日期
datetime
二、概念结构设计
概念结构的设计就是将需求分析得到的用户需求抽象为信息结构概念模型的过程,它是整个数据库设计的关键。
描述概念模型的主要工具是E-R图,它将现实世界的信息结构统一用属性、实体以及他们之间爱你的联系来描述。
根据需求分析,可看出有三个实体:
员工、客户和订单。
1、定义每个实体的属性
企业员工:
{员工编号,员工姓名,员工性别,员工职位,员工电话,员工住址}
客户:
{客户编号,客户名称,邮政编码,出生日期,客户电话,客户性别,客户地址}
订单:
{订单编号,客户编号,员工编号,运费,订单数量,订单日期}
2、E-R实体模型图
(1).企业员工实体E-R图如下:
(2).客户实体E-R图如下:
(3).订单实体E-R图如下:
三、逻辑结构设计
逻辑结构设计的任务是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。
(1)E-R图向关系模型的转换,实现将实体型和实体间的联系转换为关系模式。
把E-R图转换为关系模型如下:
员工(员工编号,员工姓名,员工性别,员工职位,联系方式,员工住址)
客户(客户编号,客户姓名,邮政编码,出生日期,客户电话,客户性别,客户地址)
订单(订单编号,员工编号,客户编号,订单运费,订单数量,订单日期)
(备注:
在以上的关系模式中,用下划线标出的是各个关系的主键,用波波线标出的是外键)
四、物理结构设计
1、对E-R图所需的实体以及联系设计需要的表
1.1.企业员工表
属性名
属性含义
EmployeeID
EmployeeName
Esex
title
Etelephone
Eaddress
1.2.客户信息表
CustomerID
CustomerName
postcode
birthday
Ctelephone
Csex
Caddress
1.3.订单表
OrderID
CustomeID
freight
Ordercount
Orderdate
1.4.设计数据库管理员表
UserID
管理员编号
UserName
管理员姓名
Userpassword
管理员密码
2、SQL语句
--建立员工基本信息表
CREATETABLEEmployees(
EmployeeIDchar(12)primarykey,
EmployeeNamevarchar(25)NOTNULL,
Esexchar
(2)CHECK(EsexIN('
男'
'
女'
)),
titlevarchar(20)NOTNULL,
Etelephonevarchar(20)NOTNULL,
Eaddressvarchar(30)NOTNULL
)
--插入5条员工基本信息记录
--建立客户基本信息表
CREATETABLECustomers(
CustomerIDchar(12)primarykey,
CustomerNamevarchar(40)NOTNULL,
postcodechar(8),
birthdaydatetimeNOTNULL,
Ctelephonevarchar(20)NOTNULL,
Csexchar
(2)CHECK(CsexIN('
)),
Caddressvarchar(40)NOTNULL,
);
--向客户基本信息表内插入5条记录
--建立订单基本信息表
CREATETABLEOrders(
OrderIDchar(12)primarykey,
CustomerIDchar(12)NOTNULL,
EmployeeIDchar(12)NOTNULL,
Freightchar(8),
Ordercountint,
Orderdatedatetime
)
--插入5条订单基本信息记录
insertintoOrdersinsertintoOrdersinsertintoOrdersinsertintoOrdersinsertintoOrders
--建立数据库管理员表
CREATETABLEUsers(
UserIDchar(12)primarykey,
UserNamechar(40),
Userpasswordchar(8)NOTNULL
--插入5条数据库管理员记录
insertintoUsersvalues('
000001'
李华'
123456'
000002'
张涛'
147258'
000003'
吴斌'
258369'
000004'
孙福'
748955'
000005'
王铭'
256654'
五、数据库实施和维护
5.1、建表插入记录结果
5.1.1员工基本信息表
5.1.2客户基本信息表
5.1.3订单基本信息表
5.1.4数据库管理员表
5.2、查询操作
5.2.1对员工表的查询操作
select*fromEmployees
查询所有的员工信息
wheretitle='
市场经理'
查询员工的基本信息
市场专员'
5.2.2对客户表的各种查询
select*fromCustomers
查询所有的客户信息
查询所有员工的住址
selectCustomerName,Caddress
fromCustomers
查询所有员工的编号及其对应的名字
selectCustomerName,CustomerID
通过电话查询客户的信息
select*
fromCustomers
5.2.3对订单表的查询操作
select*fromOrders
查询所有的订单信息
通过订单时间查询订单的详细信息
select*
fromOrders
通过员工号查询所有的订单信息
通过时间查询订单信息
whereOrderdate=
通过运费查询订单信息
wherefreight>
500
SelectEmployeeName,Etelephone,CustomerName,OrderID,Freight,Ordercount,Orderdate
FromEmployees,Orders,Customers
WhereEmployees.EmployeeID=Orders.EmployeeIDand
Orders.CustomerID=Customers.CustomerIDand
5.2.4对数据库管理员表的查询操作
select*fromUsers
查询数据库管理员的个数
selectcount(*)客户数fromUsers
修改数据库管理员的密码
5.3、定义视图
5.3.1定义员工表的视图
createviewEmployees_view
asselect*fromEmployees
命令完成后查询新建视图
select*fromEmployees_view
5.3.2定义客户表的视图
createviewCustomers_view
as
select*fromCustomers
select*fromCustomers_view
建立男客户的视图,并显示男客户的基本信息
createviewCsex_view
asselect*fromCustomers
whereCsex='
select*fromCsex_view
5.3.3定义订单表的视图
createviewOrders_viewasselect*fromOrders
select*fromOrder_view
定义运费大于900的订单的视图
createviewOrders_freight_viewasselect*fromOrders
900
select*fromOrders_freight_view
5.3.4建立用户表的视图
createviewUsers_view
asselect*fromUsers
select*fromUsers_view
5.4、定义触发器
仅允许数据库管理员可以删除Customer表中的数据
createtriggerCustomers_triggeronCustomersfordeleteas
begin
ifuser='
dbo'
commit
else
begin
print'
仅允许dbo用户可以删除Customers表中的数据!
!
'
rollbacktransaction
end
End
仅允许数据库管理员可以修改Customers表中的数据
createtriggerCustomers_trigger2onCustomersforupdateas
仅允许dbo用户可以修改Customers表中的数据!
end
在Orders上创建触发器,插入数据时要先检查Customers表和Employees表里面是否存在和Orders表同值的订单编号、员工编号与客户编号。
createtriggerOrders_triggeronOrdersforinsertas
ifexists(select*
fromOrders
whereOrderIDnotin(selectOrderIDfromOrders)or(EmployeeIDnotin
(selectEmployeeIDfromEmployees)andCustomerIDnotin(selectCustomerIDfromCustomers)))
print'
Orders表中不存在订单编号,或者Customers表中不存在客户编号和Employees表中不存在员工编号,不能插入!
!
测试:
插入一条员工编号、顾客编号不存在于相应的表中的记录
insertintoOrders
插入一条客户编号、员工编号都存在于相应的表中的记录
未插入之前的数据如下
插入之后的数据如下
由上图对比可知插入成功。
5.5、定义存储过程
5.5.1定义客户表上的存储过程
createprocedureCustomer_search(@C_IDchar(12))
whereCustomerID=@C_ID
调用该存储过程
declare@C_IDchar(12)
5.5.2定义员工表上的存储过程
createprocedureEmployee_search(@E_IDchar(12))
whereEmployeeID=@E_ID
declare@E_IDchar(12)
六、设计小结
通过这两周的课程设计,我对《数据库系统与应用》这门课程有了更深的理解和认识。
为了做好此次课程设计,我综合运用了老师上课所讲的大部分的内容,并且查阅课很多有关数据库系统设计的资料,在这过程中,我也进一步锻炼了自己的自学能力和对新事物的把控能力。
就我的课程设计而言,里面加入了大量的图表和解释性文字,对要处理的对象和系统的要求都有较明确的阐述。
在对该系统进行测试时,实现了各个表上的各种查询和修改、建立了相关视图、储存过程、触发器等,功能相对比较完善。
建立触发器之后,一些操作必须是有相关权限的人员才可以执行,对于一些不法的操作,能自动阻止,增加了系统的安全性。
不过,相比较于真正的客户信息管理系统而言,此课程设计还不太细致和完善,而且有些SQL语句也不够严谨,仍需不断地修正和改进。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 数据库 客户 信息管理 系统 毕业 课程设计