大型数据库电子商城管理系统课程设计.docx
《大型数据库电子商城管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《大型数据库电子商城管理系统课程设计.docx(34页珍藏版)》请在冰豆网上搜索。
大型数据库电子商城管理系统课程设计
1课程设计简介
1.1课程设计的目的
将电子商城管理系统作为课程设计,目的是在学习数据库理论基础上,将所学的应用到实践中,以提高学习的质量,和提高知识的运用能力。
而本次的课程设计中。
重点是要掌握数据库的设计、数据查询的实现,并要求通过课程设计将理论向实践的转化、和对大型数据库理论的理解。
以及要求达到熟练掌握对数据库的分析和设计、数据表的建立(绘画数据流图、E-R图)。
以及利用面向对象的技术实现相应的增加数据,删除数据,修改数据,查询数据的基本功能。
1.2课程设计内容
1.2.1系统分析
可行性分析:
电子商城管理系统主要是能够方便有效地管理,客户在商城购物的商品信息,订单的管理。
主要从以下方面进行可行性分析:
(1)技术可行性:
目前,实体商城购物某些工作存在盲目性、随意性、和无效消耗,不能保证工作质量,影响商品的销售,从销售者角度考虑可能带来实际的和潜在的经济损失。
若开发成功本系统,将有助于卖家更好地预测市场,更好的开发客户及时调整经营销售策略,在激烈的市场竞争中把握主动。
因此,从长远利益考虑,本项目若能开发成功,它所带来的效益将远高于系统投入。
(2)运行可行性:
在实体店铺的业务方面,由于日常信息处理量大,耗费时间长,出错效率高,在系统投入运行后,可以实现业务中的信息集中处理、分析利用信息和信息的交流辅助市场的业务监管和重大决定。
并且可以实现实体店铺进一步向网络服务发展,为信息工作打下良好的基础。
(3)法律可行性:
该平台是是自主开发设计,因此不会构成侵权,在法律上是可行的。
通过以上的研究和分析,认为系统开发所产生的效益是巨大的,所以开发本项目是可行的、必要的。
用户需求分析:
根据对传统的商务模式的分析,同时调研了现有的一些电子商城系统后,得到“电子商城管理系统”的需求,主要包括系统功能需求和系统性能需求两方面。
1.2.2系统功能分析
电子商城管理系统的主要功能需求有:
(1)系统用户管理:
实现对商城管理用户的添加、密码的修改等操作;
(2)会员信息管理:
删除、查看会员信息;
(3)商品管理:
添加、删除、修改、查看商品;
(4)订单管理:
查看、删除、处理订单;
(5)详细订单管理:
查看、删除详细订单;
(6)商品类别的管理:
查看,添加,删除商品类别;
(7)员工信息管理:
添加、删除、修改;
1.2.3系统总体功能设计
通过对系统的需求分析,并对各个功能需求进行集中、分块、可得到电子商城管理系统的功能模块图。
功能模块图是软件工程过程中的一个重要环节,它显示了系统所要实现的各项功能。
电子商城管理系统的功能模块图如图1-1所示:
图1.1系统功能框图
1.2.4数据库的设计
用户的需求具体体现在各种信息的提供、保存、更新和查询、这就要求数据库的设计能够满足各种信息的输入和输出。
为了准确、形象、简单地描述。
该系统的数据及相关联情况,绘制出系统的E-R图,如图1-2所示:
图1.2系统E-R图
2数据结构的设计
2.1Orale简介
Oracle是最早商品化的的关系型数据库管理系统,它是世界上最大的数据库专业厂商甲骨文(Oracle)公司的核心产品,也是当前应用最广泛的、功能最强大的、具有面向对象特点、采用了客户机、服务器架构的数据库系统。
2.2数据库概念结构设计
针对一般网上购物网站进行需求分析,通过对网上购物过程的内容和数据流程分析,同时根据本电子商城管理系统的数据流程,对系统数据库进行概念结构设计。
根据数据关系模型和数据库关系模式的范式,我们创建了电子商城管理系统的数据表,本系统共有8个数据表,分别是:
Customers(会员信息表)、Types(商品类别表)、Doods(商品信息表)、Employees(员工表)、Payments(支付方式表)、Orders(订单信息表)、OrderDetails(订单详情表)、Users(用户表)。
2.2.1建立数据库的原则
数据库的前期规划(包括对基本文件的构成、数量、物理文件的分布以及存储参数的设置等)都对数据库后期的运行性能带来很大的影响,甚至直接影响数据库系统的维护成本。
因此,建立数据库时,应遵循遵循Orcale创建数据库的原则以及数据库的基本组成要素。
本系统在建立数据库时,由于表中存储信息不同,所以表中所需字段也不一样,在确定所需字段时有以下五个原则:
1.表中的主键字段,不允许重复值以及Null值,以免影响数据完整性。
2.描述不同的主题字段属于不同的表,通过定义之间的关系,可以将多个表中的字段进行组合,生成各种表单或报表。
3.不在表中存储需要经过推导或计算得到的数据。
4.收集所需要的全部信息。
应全面检查书面的表单和报表,确定所需要的数据都已包含在所设计的表中或者可以有这些表计算出来。
5.以最小的逻辑单位进行存储信息,应尽量把信息分解成较小的逻辑单位。
2.2.2建立字段的原则
在实际操作中,选择和确定数据类型时,应结合字段的自身情况并考虑一下4点:
1.字段将要用于存储什么类型的值;
2.是否要对字段进行排序或筛选;
3.是否要对字段进行分组;
4.是否要对字段执行相关的运算。
2.2.3数据库表的实体图
1.Types(商品类别表)实体图:
图2.1商品类别表实体图
2.Goods(商品信息表)实体图:
图2.2商品信息表的实体图
3.Employees(员工表)实体图:
图2.3员工表的实体图
2.2.4数据库的E-R图
图2.4数据库的E-R图
2.3数据库逻辑结构设计
数据库概念结构设计完成之后,将数据库的概念结构转换为数据库系统支持的实际数据类型,也就是数据库逻辑结构。
2.3.1数据库的表结构
表2.1Types表结构
表序号
1
表名
Types
含义
存储商品类别信息
序号
属性名称
含义
数据类型
长度
为空性
约束
1
t_ID
类别编号
Char
2
Notnull
主键
2
t_Name
类别名称
Varchar
50
Notnull
3
t_Description
类别描述
Varchar
100
Null
表2.2Goods表结构
表序号
2
表名
Goods
用途
存储商品信息
序号
属性名称
含义
数据类型
长度
为空性
约束
1
g_ID
商品编号
Char
6
Notnull
主键
2
g_Name
商品名称
Varchar
50
Notnull
3
t_ID
商品类别
Char
2
Notnull
外键
4
g_Price
商品价格
Float
Notnull
5
g_Discount
商品折扣
Float
Notnull
6
g_Number
商品数量
Short
Notnull
7
g_ProduceDate
生产日期
Date
Notnull
8
g_Image
商品图片
Varchar
100
Null
9
g_Status
商品状态
Varchar
10
Notnull
10
g_Description
商品描述
Varchar
1000
Null
表2.3Employees表结构
表序号
3
表名
Employees
含义
存储员工信息
序号
属性名称
含义
数据类型
长度
为空性
约束
1
e_ID
员工编号
Char
10
Notnull
主键
2
e_Name
员工姓名
Varchar
30
Notnull
3
e_Gender
性别
Char
2
Notnull
4
e_Birth
出生年月
Varchar
Notnull
5
e_Address
员工地址
Date
100
Null
6
e_Postcode
邮政编码
Char
6
Null
7
e_Mobile
手机号码
Varchar
11
Null
8
e_Phone
固定电话
Varchar
15
Notnull
9
e_E-mail
电子邮件
Varchar
50
Notnull
2.3.2数据库表的实现
1.创建商品类别表Types
CREATETABLETypes
(
t_IDchar
(2)PRIMARYKEYNOTNULL,--商品的分类编号
t_Namevarchar2(50)NOTNULL,--商品的分类名称
t_Descriptionvarchar2(100)NOTNULL--商品类别描述
);
2.创建商品信息表Goods
CREATETABLEGoods
(
g_IDchar(6)NOTNULLPRIMARYKEY,--商品编号
g_Namevarchar2(50)NOTNULL,--商品名称
t_IDchar
(2)NOTNULLREFERENCESTypes(t_ID),--商品分类号(外键)
g_PricefloatNOTNULL,--商品价格
g_DiscountfloatNOTNULL,--商品折扣
g_NumberintegerNOTNULL,--库存数量
g_ProduceDatedateNOTNULL,--商品生产日期
g_Imagevarchar2(100),--商品图片
g_Statusvarchar2(10)NOTNULL,--商品状态//热点//促销//推荐
g_Descriptionvarchar2(1000)--商品描述
);
3.创建员工表Employees
CREATETABLEEmployees
(
e_IDchar(10)NOTNULLPRIMARYKEY,--员工编号
e_Namevarchar2(30)NOTNULL,--员工姓名
e_Genderchar
(2)NOTNULL,--性别
e_BirthdateNOTNULL,--出生年月
e_Addressvarchar2(100)NOTNULL,--员工地址
e_Postcodechar(6)NOTNULL,--员工邮政编码
e_Mobilevarchar2(11)NOTNULL,--员工手机号码
e_Phonevarchar2(15)NOTNULL,--员工固定电话
e_Emailvarchar2(50)NOTNULL--员工电子邮箱
);
2.3.3存储过程
在创建电子商城管理系统数据库时创建的存储过程如下所示:
(1)根据商品编号获得商品名称和类别编号的存储过程
主要功能描述:
通过输入一个商品编号,到商品信息表中查询出商品的名称、类型编号,如果有数据就返回商品名称,类别编号。
没有数据就返回空值。
createorreplaceprocedureup_GetByID(gidinvarchar2,gnameoutgoods.gname%type,tidoutgoods.t_ID%type)
as
begin
selectg_name,t_IDintogname,tidfromgoodswhereg_id=:
old.g_id;
exception
whenno_data_foundthen
gname:
=null;
tid:
=null;
endup_getById;
(2)添加员工记录的存储过程
主要功能的描述:
实现添加员工记录,其中输入参数有(员工id,员工姓名,员工出生日,现住地址,邮编,手机号码,固定号码,电子邮件),通过insert语句可将其记录插入到员工表中。
createorreplaceprocedureEmployeesAdd
(e_IDinchar
e_Nameinvarchar2
e_Genderinchar
e_Birthindate
e_Addressinvarchar2
e_Postcodeinchar
e_Mobileinvarchar2
e_Phoneinvarchar2
e_Emailinvarchar2)
as
begin
insertintoEmployeesvalues(e_ID
e_Name
e_Gender
e_Birth
e_Address
e_Postcode
e_Mobile
e_Phone
e_Email);
commit;
end;
(3)修改职员记录信息的存储过程
主要功能描述:
实现更新员工记录,其中输入参数有(员工id,或员工姓名,或员工出生日,或现住地址,或邮编,或手机号码,或固定号码,或电子邮件),通过update语句可将其记录插入到员工表中。
CreateorreplaceprodecureEmployeesUpdate
(old_e_IDinchar,new_e_IDinchar
New_e_Nameinvarchar2
New_e_Genderinchar
New_e_Birthindate
New_e_Addressinvarchar2
New_e_Postcodeinchar
New_e_Mobileinvarchar2
New_e_Phoneinvarchar2
New_e_Emailinvarchar2)
As
Begin
Updateemployeessete_ID=new_e_ID,
E_Name=new_e_Name,
e_Gender=new_e_Gender,
e_Birth=new_e_Birth,
e_Address=new_e_Address,
e_Postcode=new_e_Postcode,
e_Mobile=new_e_Mobile,
e_Phone=new_e_Phone,
e_Email=new_e_Emailwheree_ID=old_e_ID;
commit;
end;
2.3.4触发器
在创建电子商城管理系统数据库时创建的触发器如下所示:
(1)TypesDelete触发器描述:
删除商品类别表中商品类别的一条记录,同时也删除该记录商品表中商品类别信息。
createorreplacetriggerTypesDelete
afterdeleteonTypesforeachrow
begin
deletefromGoodswheret_id=:
old.t_id
end;
(2)TypesUpdate触发器描述:
修改商品类别表的t_id时,字段t_id在商品表中也做相应的修改
createorreplacetriggerTypesUpdate
afterupdateonTypesforeachrow
begin
ifupdatingthen
updateGoodssett_id=:
new.t_id
wheret_id=:
old.t_id;
endif;
end;
2.3.5数据库的数据流图
1.系统顶层数据流图
图2.5顶层数据流图
2.管理员登录数据流图
图2.6管理员登录数据流图
2.4数据库物理结构设计
数据库中types表,goods表,employees表的物理结构设计如下所示:
图2.7types表物理结构
图2.8goods表物理结构
图2.9employees表物理结构
3功能模块描述
3.1系统功能层次图
图3.1系统功能层次图
3.2主要功能描述
通过对用户需求的分析,可以分析出该电子商城管理系统大致可以把前台分为三个模块:
商品查询模块、订单查询模块、订购模块。
后台分为六大模块:
系统设置模块,商品管理模块,用户管理模块,订单管理模块、系统工具模块和帮助模块。
而我们本次仅针对后台管理进行了设计与具体实现。
·总体功能需求
电子商城(后台)管理系统是针对网上商城的后台实现智能管理的现代化平台,以实现管理的方便、快捷与高效的业务需求。
·具体系统后台功能需求描述
(1).系统设置模块
实现管理者对站内的公告进行分类管理和支付方式管理功能。
(2).商品管理模块
商品管理模块具体实现对商品的类别、添加新商品、查看/修改商品、商品信息统计和信息打印进行管理。
(3).用户管理模块
用户管理模块具体实现对前台会员、后台用户、网站员工和操作日志的管理,包括相关的添加、删除、修改等操作。
(4).订单管理模块
用户管理模块具体实现订单状态查询和订单处理。
(5).系统工具模块
系统工具模块具体实现对数据库的压缩、备份和恢复操作;密码修改、数据的导入和导出以及退出系统功能。
(6).帮助模块
帮助模块具体实现目录/索引的查询以及关于我们系统的简介。
4.1系统界面设计
4.1.1系统主界面
图4.1系统主界面
4.1.2商品信息管理
输入用户名,密码后登录到系统主页面,点击商品管理,可查看详细的商品信息、本系统实现了对商品的添加、删除、修改等基本功能。
图4.2商品信息管理界面
4.1.3商品管理-添加商品信息界面
图4.3商品添加界面
4.1.4商品管理-商品类别管理
图4.4商品类别管理界面
4.1.5员工信息管理主界面
图4.4员工信息管理界面
4.1.6员工管理-添加员工信息
图4.5员工管理-添加员工信息界面
通过一个月的努力,目前该系统的程序设计已经基本结束了。
在此期间,我根据题目要求,查阅了大量关于电子商城管理系统的相关资料,切实际地按照面向对象的分析步骤,从概要设计,详细设计,数据库设计,再到编码,调试运行。
已经顺利完成各个步骤的开发工作,基本达到预期设计的要求。
通过本次大型数据库的课程设计,使我不论在理论上还是在实践上都有了一个较大幅度的提高,尤其是对数据库的详细设计阶段对综合知识的运用能力和对数据表的设计,同时也培养了自己独立分析问题、解决问题以及与组员的交通的能力。
在整个设计和开发过程中使我对面向对象开发方法在思想有了进一步深刻的了解完善需求,最大限度的满足用户所需。
本次设计中运用了大量的软件工程的思想和相关的数据知识,对大学所学的知识得以巩固和运用。
该电子商城管理系统虽然已经基本上满足要求,但是还不够完善,在以后的使用过程中可能会暴露多实际问题,有待进一步的改进,完善。
6参考文献
[1]郑阿奇,Oracle实用教程(第2版),电子工业出版社,2006年
[2]郑阿奇,Oracle实用教程,电子工业出版社,2003年
[3]陈志刚,大型数据库技术-Oracle9i高级程序设计,华南理工大学出版社,2003年
[4]赵乃真,Oracle9i从基础到应用,人民邮电出版社,2002年
[5]赵松涛,Oracle9i中文版入门与提高,人民邮电出版社,2002年
[6]Oracle数据库管理与应用实例教程,人民邮电出版社,2002年
7程序源代码
7.1商品信息管理模块主要源代码
namespaceWebShop_admin.Operation
{
publicpartialclassfrmGoodsManage:
Form
{
publicfrmGoodsManage()
{
InitializeComponent();
}
ClassDB.ClassDBdb=newClassDB.ClassDB();
DataSetds=newDataSet();
publicstaticstringgoodsid=null;
PublicClass.PublicUseclasspuc=newWebShop_admin.PublicClass.PublicUseclass();
privatevoidfrmGoodsManage_Load(objectsender,EventArgse)
{
stringstrGoods="select*fromvw_Goods";
getData(strGoods);
}
privatevoidgetData(stringsql)
{
ds=db.getDataSet(sql);
if(ds==null)
{
return;
}
else
{
dgv_Goods.DataSource=ds.Tables[0];
}
}
privatevoidtextBox1_TextChanged(objectsender,EventArgse)
{
if(this.cb_Name.Text.Length==0)
{
MessageBox.Show("请选择查询字段!
","提示");
return;
}
stringsql=null;
switch(this.cb_Name.SelectedIndex)
{
case0:
{
sql="select*fromvw_Goodswhere商品编号like'%"+this.textBox1.Text.ToString()+"%'";
}break;
case1:
{
sql="select*fromvw_Goodswhere商品名称like'%"+this.textBox1.Text.ToString()+"%'";
}break;
case2:
{
sql="select*fromvw_Goodswhere类别名称like'%"+this.textBox1.Text.ToString()+"%'";
}break;
case3:
{
sql="select*fromvw_Goodswhere商品状态like'%"+this.textBox1.Text.ToString()+"%'";
}break;
default:
return;
}
if(ds!
=null)
ds.Clear();
getData(sql);
}
privatevoidtsb_Exit_Click(objectsender,EventArgse)
{
this.Close();
}
private