资源描述
课程设计报告
院(系):电气与信息工程学院 专业班级:计科
学生姓名: 学 号:
设计地点(单位)______第一实验楼__ _______ _ _
设计题目:___校园小商品交易系统设计__________________
完毕日期: 6月 28日
指引教师评语:
____________________________________
______________________________________________________________________________________________________________________________________________________
成绩(五级记分制):______ __________
指引教师(签字):________ ________
重庆科技学院
课程设计任务书
设计题目:校园小商品交易系统设计
学生姓名
课程名称
数据库原理课程设计
专业班级
计科-01,计科-02
地 点
起止时间
.6.24-.6.28
设计内容及规定
内容:
学生依照本课程设计指引书中题目,进行设计。
(1)顾客管理:包括三类顾客:管理员、商品发布者、普通顾客、访客。
(2)向管理员提供如下功能:自身密码修改,其她顾客添加删除,顾客信息修改、记录。商品信息添加、修改、删除、查找、记录。
(3)向商品发布者提供如下功能:注册、登陆、注销、自身密码修改、自身信息修改。商品信息发布,自身商品信息记录。查找浏览其她商品。
(4)向普通顾客提供如下功能:商品浏览、查找、获知商家联系方式,定购商品。
(5)向访客提供如下功能:商品浏览、查找、获知商家联系方式。
规定:
按照数据库系统开发环节进行数据库概念构造设计、逻辑构造设计、物理构造设计,使学生掌握数据库应用软件开发流程,SQL语句使用和存储过程使用。
设计
参数
至少5个表构造;5个存储过程;5个触发器;5个视图、2处使用事务解决、3处使用游标过程
报告格式规范
进度
规定
19.1 授课 阅读分析任务书 制定设计筹划
19.2 -3 需求分析 概念构造设计
19.4 -5 概念构造设计 准备文挡
20.1-3 逻辑构造设计 物理构造设计
20.4-5 写文挡 答辩 交设计报告书
参照资料
1.雷亮等《数据库原理课程设计》指引书
2.王珊、萨师煊.《数据库系统概述》(第四版) .北京:高等教诲出版社.。
3.C.J.Date著.孟小峰、王珊等译.《数据库系统导论》(第8版) .北京:机械工业出版社.。
4.陈根才等. 数据库课程设计.浙江.浙江大学出版社.
其他
阐明
1.本表应在每次实行前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。3.一题多名学生共用,在设计内容、参数、规定等方面应有所区别。
教研室主任: 指引教师: 06 月 15 日
摘要
在校园里,对小商品购买交易越来越多。本课程设计就是模仿网购交易模式而编写简朴校园小商品交易系统。包括三类顾客:管理员、商品发布者、普通顾客,为商家和网民搭建一种购售平台,电子商务不但变化了公司营销方式,并且推动公司对管理理念、决策方式、业务过程等系列问题战略性思考和变革,最为重要是,电子商务支持并形成战略性伙伴关系和虚拟公司。容许顾客和访客订购商品以及商品发布者依照交易状况发布商品,同步管理员可以对商品以及各顾客进行管理记录。网上购物已经进入人们生活方方面面,为了适应社会发展,商品交易系统是很有必要。
校园小商品交易系统重要分为普通顾客订购商品、发布者发布商品以及管理员对顾客以及商品管理记录,本系统采用SQL Server 作为数据库。在实现数据库某些功能时按照规定创立了触发器、视图以及存储过程。
核心词:校园小商品交易系统 SQLServer 触发器 视图 存储过程
目录
摘要 I
1 需求分析 1
1.1 系统目的设计 1
1.2 系统功能分析 1
1.3 功能模块分析 2
1.4 系统全局数据流图 3
1.5 数据字典 3
2 概念构造设计 7
2.1 构成系统实体型 7
2.2 小商品管理系统E-R图 7
3 逻辑构造设计 9
3.1逻辑构造简介 9
3.2 关系模型 9
4物理模型设计 11
4.1定义数据库 11
4.2 创立表 11
4.3 创立存储过程 14
4.4 创立触发器 17
总结 19
道谢 20
参照文献 21
1 需求分析
1.1 系统目的设计
校园小商品交易系统,实行网上购商品和商家发布商品,为商家和购物者搭建了一种较好平台。
1.2 系统功能分析
(1)顾客管理:包括三类顾客:管理员、商品发布者、普通顾客、访客。
(2)向管理员提供如下功能:自身密码修改,其她顾客添加删除,顾客信息修改、记录。商品信息添加、修改、删除、查找、记录。
(3)向商品发布者提供如下功能:注册、登陆、注销、自身密码修改、自身信息修改。商品信息发布,自身商品信息记录。查找浏览其她商品。
(4)向普通顾客提供如下功能:商品浏览、查找、获知商家联系方式,定购商品。
(5)向访客提供如下功能:商品浏览、查找、获知商家联系方式。
1.3 功能模块分析
依照系统功能基本规定,可对整个系统划分为几种模块
图1.3.1 功能模块分析
1.4 系统全局数据流图
系统全局数据流图,也称第一层数据流图,是从整体上描述系统数据流,反映系统数据整体流向,给设计者、开发者和顾客一种总体描述。
管理员
登录密码
订单管理
商家管理
商品管理
商品发布管理
数据库
图1.2 数据流图
1.5 数据字典
表 1.1管理员基本信息表
Name
Data Type
账户
Varchar(10)
管理员密码
Varchar(20)
表 1.2普通顾客基本信息表
Name
Data Type
顾客ID
Varchar(20)
顾客名
Varchar(30)
顾客密码
Varchar(20)
表1.3商品发布者基本信息表
Name
Data Type
商家ID
Varchar(20)
商家名
Varchar(30)
电话
Varchar(11)
表 1.4商品基本信息表
Name
Data Type
商品编号
Varchar(20)
商品名
Varchar(50)
生产商
Varchar(30)
商品价格
Varchar(10)
库存量
integer
表1.5商品信息发布表
Name
Data Type
商品编号
Varchar(10)
产品名
Varchar(50)
商家ID
Varchar(20)
商品数量
integer
价格
Varchar(100)
表1.6商品订单表
Name
Data Type
订单编号
Varchar(10)
顾客ID
Varchar(20)
订单金额
Varchar(100)
订单数量
integer
商品编号
Varchar(10)
2 概念构造设计
2.1 构成系统实体型
由校园小商品交易系统数据流图和数据字典,抽取出系统个6重要实体,涉及:管理员基本信息表、普通顾客基本信息表、商品发布者基本信息表、商品基本信息表、商品订单基本信息表、商品发布表。
管理员实体型属性: 账户 管理员密码
普通顾客实体型属性: 顾客ID 顾客名 顾客密码
商品发布者实体型属性:商家ID 商家名 电话
商品信息实体型属性:商品编号 商品名 生产商 商品价格 库存量
订单实体型属性: 订单编号 商品编号 顾客ID 订单金额 订单数量
商品信息发布实体型属性:商品编号 产品名 商家ID 商品数量 价格
2.2 工资管理系统E-R图
图2.1 工资管理系统E-R图
3 逻辑构造设计
3.1逻辑构造简介
逻辑构造设计就是把概念构造设计阶段设计好基本E-R图转换为与选用DBMS产品所支持数据模型相符合逻辑构造。
设计逻辑构造普通分为3步进行:
(1) 将概念构造转换为普通关系、网状、层次模型;
(2) 将转换来关系、网状、层次模型向特定DBMS支持下数据模型转换;
(3) 对数据模型进行优化。
3.2 关系模型
将E-R图转换为关系模型事实上就是要奖实体型、实体属性和实体型之间联系转换为关系模式,这种转换普通遵循如下原则:一种实体型转换为一种关系模式,一种多对多关系可以转化为一种关系模式,而一对多关系可以融合在其她有关关系模式中。例如:
(1) 商家与商品信息发布之间是一对多关系,因此将商品顾客和商品信息发布以及属于关系设计成如下关系模式:
商品发布者实体型属性:商家ID 商家名 电话
商品信息发布实体型属性:商品编号 产品名 商家ID 商品数量 价格
4物理模型设计
数据库物理设计是将逻辑设计影射到存储介质上,运用可用硬件和软件功能尽量快地对数据进行物理访问和维护。
4.1定义数据库
SQL Server 数据库文献分为3中类型:主数据文献、次数据文献和日记文献。
通过SQL语言进行数据库创立,创立数据库语句如下:
create database xiangsuhong
4.2 创立表
---------管理员基本信息表
create table 管理员
(
账号 varchar(20) primary key ,
管理员密码 varchar(20)
);
---------普通顾客基本信息
create table 顾客
(
顾客ID varchar(20) primary key,
顾客名 varchar(30),
顾客密码 varchar(20)
);
----------商品发布者基本信息
create table 商家
(
商家ID varchar(20) primary key,
商家名 varchar(30),
电话 varchar(11)
);
------------商品基本信息
create table 商品
(
商品编号 varchar(10) primary key,
商品名 varchar(30),
生产商 varchar(30),
商品价格 varchar(100),
库存量 integer
);
------------商品订单基本信息
create table 订单
(
订单编号 varchar(10),
商品编号 varchar(10),
顾客ID varchar(20),
订单金额 varchar(100),
订单数量 integer,
primary key(商品编号,顾客ID)
);
------------商品发布基本信息
create table 发布
(
商品编号 varchar(10),
产品 varchar(30),
商家ID varchar(20),
商品数量 integer,
价格 varchar(100)
primary key(商品编号,商家ID)
);
4.3 创立存储过程
在奖惩登记表中创立更新奖惩存储过程:
USE [salary]
GO
CREATE PROCEDURE [update_奖惩登记表_1]
(@Record_ID_1 [bigint],
@Record_ID_2 [bigint],
@Worker_ID_3 [varchar](15),
@Worker_Name_4 [varchar](8),
@Record_date_5 [datetime],
@Record_type_6 [varchar](2),
@Record_content_7 [varchar](30),
@Record_reason_8 [varchar](30),
@Allow_unit_9 [varchar](20))
AS UPDATE [salary].[dbo].[奖惩登记表]
SET [Record_ID] = @Record_ID_2,
[Worker_ID] = @Worker_ID_3,
[Worker_Name] = @Worker_Name_4,
[Record_date] = @Record_date_5,
[Record_type] = @Record_type_6,
[Record_content] = @Record_content_7,
[Record_reason] = @Record_reason_8,
[Allow_unit] = @Allow_unit_9
WHERE
( [Record_ID] = @Record_ID_1)
在员工基本信息表上创立一种插入员工信息存储过程:
USE [salary]
GO
CREATE PROCEDURE [insert_员工基本信息表_2]
(@Worker_ID_1 [varchar](15),
@Archives_ID_2 [varchar](10),
@Worker_Name_3 [varchar](8),
@Department_Name_4 [varchar](10),
@Sex_5 [varchar](2),
@Birthday_6 [datetime],
@Native_Place_7 [varchar](25),
@School_Age_8 [varchar](4),
@Major_9 [varchar](15),
@Graduate_Sch_10 [varchar](10),
@Come_Time_11 [datetime],
@Link_Phone_12 [varchar](11),
@Address_13 [varchar](20),
@Remark_14 [varchar](200))
AS INSERT INTO [salary].[dbo].[员工基本信息表]
( [Worker_ID],
[Archives_ID],
[Worker_Name],
[Department_Name],
[Sex],
[Birthday],
[Native_Place],
[School_Age],
[Major],
[Graduate_Sch],
[Come_Time],
[Link_Phone],
[Address],
[Remark])
VALUES
( @Worker_ID_1,
@Archives_ID_2,
@Worker_Name_3,
@Department_Name_4,
@Sex_5,
@Birthday_6,
@Native_Place_7,
@School_Age_8,
@Major_9,
@Graduate_Sch_10,
@Come_Time_11,
@Link_Phone_12,
@Address_13,
@Remark_14)
在顾客账号表上建立一种删除顾客账号存储过程:
USE [salary]
GO
CREATE PROCEDURE [delete_顾客账号表_1]
(@User_Name_1 [varchar])
AS DELETE [salary].[dbo].[顾客账号表]
WHERE
( [User_Name] = @User_Name_1)
4.4 创立触发器
定义一种BEFORE行级触发器,为工资信息表Wage_info定义完整性规则“总经理基本工资不得低于6000元,如果低于6000元,刚自动改为6000元”。
CREATE TRIGGER Insert_or Update_Wage
BEFORE INSERT OR UPDATE ON Wage_info
FOR EACH ROW
AS BEGIN
IF(new.Duty='总经理') AND (new.Base_Wage<6000))
THEN new.Base_Wage=6000;
END IF;
END;
定义一种AFTER行级触发器,当顾客账号表User_table顾客发生变化后就自动在顾客变化表User_change中增长一条相应记录。
CREATE TABLE User_change
( User_Name varchar(30) PRIMARY KEY,
User_pwd varchar(30),
Power_level varchar(8),
);
CREATE TRIGGER Insert_User
AFTER INSERT ON User_table
FOR EACH ROW
AS BEGIN
INSERT INTO User_change
VALUES( new.User_Name,new.User_pwd,new.Power_level)
END;
CREATE TRIGGER Update_User
AFTER UPDATE ON User_table
FOR EACH ROW
AS BEGIN
IF (new.User<>old.User)THEN INSERT INTO User_change
VALUES(new.User_Name,new.User_pwd,new.Power_level)
END IF;
END;
总结
在这两周课程设计中我学到了许多课本之外东西,动手能力得到了提高,对数据库系统设计流程有了进一步理解。固然在本次课程设计中也遇到了许多困难,例如SQL Sever200和PowerDesigner之间联合运用,数据流图绘制尚有就是对工资管理系统需求分析不熟悉等。但愿在后来学习中可以对数据库系统设计更加熟悉。
道谢
一方面我要感谢学校给了咱们两周宝贵学习时间,通过这两周课程设计,使我对数据库系统概论这门学科有了更深一步结识,也不在像最初接触数据库那么迷茫了,通过近两周课程设计,使我对这学期学知识有了全面结识。由于此前大某些时间都在学习理论知识,因此对项目不是很理解。而学校提供这次课程设计机会使我收获颇多,从中也发现了许多局限性,让我找到了后来学习方向。在这次程序设计过程中,也浮现了不少问题,但在教师和同窗耐心协助下,问题都得到理解决,正是有了你们协助,我才干顺利地完毕学籍管理系统设计。在此,我感谢协助过我所有同窗,并向协助过我所有教师说一声:“谢谢”。
参照文献
[1] 孙建伶,林怀忠. 数据库原理与应用. 北京:高等教诲出版社 .5
[2] 梁方明. SQL Server . 北京:但愿电子出版社 .7
[3] 王珊,萨师煊. 数据库系统概论(第四版). 北京:高等教诲出版社 .5
[4] 李树有. 数据库应用系统开发与实例. 北京:人民邮电出版社 .9
[5] 孟彩霞. 数据库系统原理与应用(本科). 北京:人民邮电出版社 .3
[6] 陶宏才. 数据库原理及设计. 北京:清华大学出版社 .4
展开阅读全文