校园小商品交易系统
课程设计报告题目:校园小商品交易系统
课程《数据库原理及应用》
班级计算机科学与技术
姓名马彪
学号 04
指导教师帅兵
计算机与信息学院
时间:2014年 12月20日至2014年12月31日
目录
摘要..........................................................错误!未定义书签。第一章需求分析...............................................错误!未定义书签。
系统目标设计.............................................错误!未定义书签。
系统需求分析 (5)
业务流程分析 (6)
数据流程分析 (7)
第二章概念模型设计...........................................错误!未定义书签。
概念 (9)
概念模型设计 (9)
第三章逻辑结构设计 (9)
逻辑模型设计和优化.......................................错误!未定义书签。
关系模型.................................................错误!未定义书签。第四章物理设计和实施.........................................错误!未定义书签。
定义数据库..............................................错误!未定义书签。1创建表................................................. 1错误!未定义书签。
创建存储过程............................................错误!未定义书签。3创建触发器..............................................错误!未定义书签。4第五章课程设计心得体会.......................................错误!未定义书签。参考文献......................................................错误!未定义书签。
摘要
校园小商品交易系统,为商家和网民搭建一个购售平台,电子商务不仅改变了企业营销方式,而且推动企业对管理理念、决策方式、业务过程等系列问题的战略性思考和变革,最为重要的是,电子商务支持并形成战略性伙伴关系和虚拟企业。在今天,信息化大潮已经不可逆转,全球经济在一体化发展。对中国企业而言,这是一个充满机遇与挑战的全新的经济时代。对人们,它改变着人的生活方式和观念。网上购物已经进入人们生活的方方面面,为了适应社会的发展,商品交易系统是很有必要的。
而在现在的高校里,对购买的服务要求越来越高,尤其是对便捷的网购更是热衷,而在网购所有环节里,其交易系统的重要性毋庸置疑。本课程设计就是模仿网购交易模式而编写的简单的校园小商品交易系统,允许学生和教师订购商品和商品发布者和根据交易情况发布商品,同时管理员可以对商品以及各用户进行管理统计。
交易系统主要分为一般用户订购商品、发布者发布商品以及管理员对用户以及商品的管理统计,本系统采用SQL Server 2000作为数据库,使用ODBC作为数据源。在实现数据库部分功能时按照要求创建了触发器、视图以及存储过程。
第一章需求分析
系统目标设计
校园小商品交易系统,为商家和网民搭建一个购售平台。
经过调研及分析,校园小商品交易系统主要完成以下功能:
包含两类用户:管理员、普通用户。
(1)向管理员提供以下功能:自身密码修改,其他用户添加删除,用户信息修改、统计。商品信息添加、修改、删除、查找、统计。
(2)向商品发布者提供以下功能:注册、登陆、注销、自身密码修改、自身信息修改。商品信息发布,自身商品信息统计。查找浏览其他商品。
(3)向一般用户提供以下功能:商品浏览、查找、获知商家联系方式,定购商品。
(4)向访客提供以下功能:商品浏览、查找、获知商家联系方式。
系统需求分析
1)基本信息的维护
商品基本信息管理:包括商品基本信息的新建、修改和删除等。商品用户信息管理:包括商品用户信息的注册、修改密码和删除等。普通用户信息管理:包括普通用户信息的添加、删除和修改密码等。
2)商品发布商品发布信息管理:商品发布信息包括商品id,名称,价格,商品编号,上架时间等。商品发布管理功能完成商品信息增加、修改等。分类查看:可以根据商品名称或者价格所在区域来查看某种商品的详细信息和卖家情况。最近更新:商品信息的变动可以显示你的商品新鲜度。已有商品:列出当前商品用户已发布的商品。
3)订购管理商品订购管理:商品的订购包含商品id与订购商品的用户名,而且每订购一次就将商品的订购次数加一。查看已订购商品:可以根据商品用户名称来查看当前用户订购商品的情况。查找商品:用户可以直接去商城找商品,然后输入商品号订购,更新订购表。
4)管理员管理普通用户信息管理:查看全部普通用户信息,对其进行修改与删除,更新表。商品用户管理:基本功能与管理普通用户一样。商品管理:
查看全部商品信息与商品所属商品用户信息,然后对商品信息进行修改与删除
业务流程分析
根据本系统需要实现的功能,设计用户之间的关系流程图如下:
图1-3-1 业务流程图
数据流程分析
数据流程图
图1-1 校园小商品交易管理系统顶层数据流图
图1-2校园小商品交易系统1层数据流图
数据字典
(1)数据流的描述
数据流编号:D001
数据流名称:发布商品
数据流来源:商品发布者
数据流去向:校园小商品交易系统
数据流编号:D002
数据流名称:浏览商品
数据流来源:访客
数据流去向:校园小商品交易系统
数据流编号:D003
数据流名称:身份验证
数据流来源:访客
数据流去向:校园小商品交易系统
数据流编号:D004
数据流名称:下单
数据流来源:一般用户
数据流去向:校园小商品交易系统
数据流编号:D005
数据流名称:获取数据
数据流来源:校园小商品交易系统数据流去向:管理员
数据流编号:D006
数据流名称:修改数据
数据流来源:管理员
数据流去向:校园小商品交易系统(2)数据存储的描述
表1-2-2 商品发布者基本信息表(商家)
表4-2-4 商品基本信息表(商品)
表4-2-5 订单基本信息表(订单)
第二章概念模型设计
概述
数据库是信息系统的基础和核心,数据库设计的质量将直接关系到系统开发的成败和优劣。在信息系统中,数据库设计是指根据业务需求、信息需求和处理需求,确定信息系统中数据库结构、数据操作和数据一致性约束的过程。
数据库设计的基本过程可分为需求分析、概念设计、逻辑设计和物理设计四个步骤。在信息系统的开发中,一般不就数据库设计专门进行需求分析,而是在系统分析的需求分析阶段一并考虑。概念设计的任务是确定数据库的结构,确定从不同用户角度看到的外模式,并把外模式集成为全局模式。逻辑设计把概念设计得到的全局模式转换成为所选择的数据库模型,并进行优化处理。
概念模型设计
根据需求分析与关系模式画出系统的E-R图如下:
图5-1 系统的总体概念模型
第三章逻辑模型设计
逻辑结构简介
逻辑结构就是把概念结构设计阶段好的基础E-R图转换与选用DBMS产品所支持的数据模型相符合的逻辑结构。
设计逻辑结构一般分为3步进行:
(1)将概念结构转换为一般的关系、网状、层次模型;
(2)将转话来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
(3)对数据模型进行优化。
关系模型
将E-R图转换为关系模型实际上就是要将实体型、实体属性和实体型间的联系转换为关系模型,这种转换一般遵守如下原则:一个实体转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。例如商品与用户之间多对多的关系就生成了订单。
逻辑模型设计与优化
根据系统的总体概念设计模型、E-R图向关系模式的转化规则和数据库的范式理论,得到系统优化后的逻辑模型,如表1~表15所示。
表1一般用户基本信息表
表2商品基本信息表
表3商品发布者基本信息表
表4订单基本信息表
第四章物理模型设计
数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。
定义数据库
SQL Server 2005数据库文件分为3中类型:主数据文件、次数据文件和日志文件。
通过SQL语言进行数据库创建,创建数据库的语句如下:
创建表
/*==============================================================*/
/* Table: users 管理员基本信息表 */
/*==============================================================*/
create table Administrator (
UserName varchar(10) not null,
UserPwd varchar(10) null,
constraint PK_ADMINISTRATOR primary key nonclustered (Adid))
/*==============================================================*/
/* Table: 订单订单表 */
/*==============================================================*/
create table Orders (
订单ID char(10) not null,
商品ID char(10) not null,
用户ID char(10) not null,
订单金额 money not null,
数量 int not null,
下单日期 datetime not null,
constraint PK_ORDERS primary key (SPid, Uid))
/*==============================================================*/
/* Table: 商家商家表 */
/*==============================================================*/
create table SJ (
商家ID char(10) not null,
商家名 char(10) null,
商家电话 char(11) null,
constraint PK_SJ primary key nonclustered (SJid))
/*==============================================================*/ /* Table: 商品商品信息表
/*==============================================================*/ create table SP (
商品ID char(10) not null,
商品名 char(10) null,
生产商 char(10) null,
价格 money null,
存货量 int null,
发布时间 datetime null,
简介 char(10) null,
constraint PK_SP primary key nonclustered (SPid))
/*==============================================================*/ /* Table: 用户 */ /*==============================================================*/ create table 用户 (
用户ID char(10) not null,
用户名 char(10) null,
用户密码 char(10) null,
地址 money null,
电话 char(11) null,
constraint PK_用户 primary key nonclustered (Uid))
创建存储过程
1. 在Users表上创建一个存储过程,用于添加一般用户。
CREATE PROCEDURE [insert——Users]
( @Uid [int],
@UName [varchar](50),
@UPassward [varchar](50),
@UMoney [money],
@UPone [varchar](11) )
AS
INSERT INTO Users
( [Uis],[UName],[UPassward],[UMoney],[UPhone])
VALUES
( @Uid,@UName,@UPassward,@UMoney,@UPhone )
2.在Users表上创建一个存储过程,用于删除一般用户。
CREATE PROCEDURE [delete_Users]
( @Uid [int])
AS DELETE Users
WHERE
( [Uid]=@Uid)
3.在视图aa_TU_U-SP上创建存储过程,用于统计用户所买商品。
CREATE PROCEDURE [aa_TU_U-SP]
(@Uid [int])
AS
Select
from U_SP
where @Uid=Uid
创建触发器
1.在Orders表中创建一个AFTER级插入触发器,当添加一条订单时,相应的将SP表格中的商品数量SPCount减少。
CREATE TRIGGER [dbo].[Orders_SP]
ON
AFTER INSERT
AS
DECLARE @SPid int,@OrCount int
Select @OrdCount= OrdCount,@SPid=SPid
from inserted
update SP set SPCount= SPCount-@OrCount
where SPid=@SPid
2.在Orders表中创建一个AFTER级插入触发器,用于当订单商品数量超过SP表商品数量时输出提示信息,阻止当前操作进行。
CREATE TRIGGER [dbo].[Orders_SP_提示]
ON [dbo].[Orders]
AFTER INSERT
AS
declare @SPid int,@OrCount int
select @SPid=SPid from inserted
if EXISTS (select SPCount from
where =@SPid and SPCount begin RAISERROR(‘对不起,该商品已售完或数量不足!’,16,1) Rollback transaction end 第五章课程设计心得体会 在这一周的课程设计中我学到了许多书本之外的东西,同时也使我对数据库系统概论这门学科有了更深一步的认识,对这学期学的知识有了全面的认识,不再像最初接触数据库时那么迷茫了。 由于以前大部分时间都在学习理论的知识,所以对使用数据库来实现项目不是很了解。而学校安排的这次课程设计使我收获颇多,从中发现了许多不足,不过动手能力得到了提高,对数据库系统的设计流程也有了进一步的了解。当然在本次课程设计中也遇到了许多的困难,比如SQL Sever2005的运用,对于解决实际问题该如何设计触发器还有就是由于没有网购经历所以对交易系统的需求分析不熟悉等。希望在以后的学习中能够对数据库系统的设计更加熟悉。 致谢 首先我要感谢学校给了我们两周宝贵的学习时间,经过这两周的课程设计,使我对数据库系统概论这门学科有了更深一步的认识,通过与指导老师的交流、通过图书馆查看相关资料,我基本熟悉了整个系统的业务流程,这对后期的开发工作至关重要,在这里感谢我的指导老师,是他教会了我整个设计过程的方法。虽然我设计的系统还存在不足的地方,可是它是我辛勤努力的结果。 经过整个课程设计期间的努力,我基本上完成了我的课题,在此感谢系里给我们提供了舒适的工作、学习环境,以及老师给予的悉心关怀与指导。此外,我的同学在我这次毕业设计中也给了我很大的帮助,我非常感谢。老师认真负责的工作态度、严谨的治学风格以及平易近人的为人,让我受益匪浅;开发的同时,和同学们之间的相互探讨也使我的知识上了一个台阶。在这段时间里,我除了完成了课程设计,更重要的是学到了兢兢业业,奋发向上的精神,这种精神是我今后人生前进道路上的一种力量。 再次感谢老师以及给过我帮助的同学。 参考文献 [1]萨师炫等.数据库系统概论(第三版).北京:高等教育出版社,2001 [2]施伯乐等.数据库技术.北京:科学出版社,2002 [3]王珊等.数据库系统原理教程.北京:清华大学出版社,1998 [4]张龙祥等.数据库原理与设计.北京:人民邮电出版社,2002 [5]陈志泊等.数据库原理及应用教程.北京:人民邮电出版社,2002 [6]徐洁磐.现代数据库系统教程.北京:北京希望电子出版社,2002 [7]周志逵等.数据库理论与新技术.北京:北京理工大学出版社,2001 [8]李建中等.数据库系统原理.北京:电子工业出版社,1998 [9]刘方鑫等.数据库原理与技术.北京:电子工业出版社,2002 [10]高阳.计算机实用软件.北京:电子工业出版社,1995 [11]韩庆兰.数据库技术.长沙:湖南科学技术出版社,2001 [12]丁宝康等.数据库实用教程.北京:清华大学出版社,2001 [13]刘云生.现代数据库技术.北京:国防工业出版社,2001 [14]W.H.Inmon著.数据仓库.王志海等译.北京:机械工业出版社,2000 [15]Abraham Silberschatz, Henry ,著.数据库系统概念.杨冬青等译.北京: 机械工业出版社,2002