书店销售系统数据库分析与设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浙江时滋挣院
东方学院
实验(实训)报告
项目名称书店销售系统数据库分析与设计___________ 所属课程名称数据库原理及应用____________________
项目类型设计、综合型 _____________________
实验(实训)日期2014.5—2014.6 ________________
班级12信息1班___________________________
学号1220400103 1220400105 1220400110
1220400122 1220400125 1220400127
1220400139 1220400143
姓名李珺茹关E章章徐莹莹
巫日峥冯星傅媛
徐斌林良泽
分工表
1需求分析(郑章章、李珺茹)
书店的部门组成、各部门的业务说明、基本信息管理安全性要求与完整性要求
2.概念结构设计(徐斌、林良泽)
3逻辑结构设计(徐莹莹)
E-R图向关系模型的转换、数据模型的优化
4. 物理结构设计(巫日峥)
数据库物理设计原理、相关表的物理结构
5. 数据库实施(冯星)
数据库建立代码、初始数据的输入、视图的建立、触发器的建立
6、数据库的试运行(傅媛)
7、数据库的维护
目录
1.3概述 ................................................................ 3. 1.4可行性分析 .......................................................... 3. 1、需求分析 1.2各部门的业务说明 ................................................. 4. 1.3基本信息管理 ..................................................... 5. 1.4安全性要求与完整性要求 .......................................... 5
2.概念结构设计 .......................................................... 6. 3逻辑结构设计() .................................................... 1.0
3.1 E-R 图向关系模型的转换 ......................................... 10 3.2数据模型的优化 ................................................. 1.1 4. 物理结构设计 . (11)
4.1数据库物理设计原理 ............................................. 1.1 4.2相关表的物理结构 ............................................... 12 5. 数据库实施 . (15)
5.1数据库建立代码 ................................................. 15 5.2初始数据的输入 .................................................. 17 5.3视图的建立 ...................................................... 20 5.4触发器的建立 .................................................... 21 6、数据库的试运行 22 7、 .......................................................... 数据库的维护 23 、结论及体会 (23)
一、设计目的及要求
1.1、 目的
在科学飞速发展的今天,人们的视野越来越广,数据量急剧增加。

过去人们 把数据存放在文件柜里,现在人们借助计算机和数据库技术科学地保存和管理大 量的复杂数据,以便能方便而充分地利用这些宝贵的信息资源。

、设计目的及要求 .............................................................................................. 3.
1.1、目的 ........................................................................................................... 3. 1.2、 背景 .......................................................................................................... 3. 、课程设计内容说明 ........................................................................................... 4. .4 1.1书店的部门组成 ................................................................................... 4.
本系统的设计目标就是要为中小型书店提供一套运行稳定、安全可靠、操作简便的管理系统。

帮助书店销售业务处理日常工作业务,规范管理各项工作和操作流程。

从根本上改变以前那种旧的管理模式,真正提高管理和服务的水平。

1.2、背景
随着社会信息量的迅速增长,计算机处理的数据量不断增加,在我国,管理信息系统是计算机应用最广泛的领域之一。

随着我国经济建设突飞猛进,管理科学化与管理手段的现代化已经提到非常重要的地位,企、事业单位为了提高自身
的管理水平和竞争能力,纷纷投入人力物力,开发适合本单位需求的管理信息系统。

中国的信息化沿着企业信息化和政府信息化这两根链条正在飞速的发展,在
全国的各级教育单位中,都在进行管理方式的改革,由以前的人工管理方式在向现在的人工加计算机技术的过渡中,在现在的这种模式中可以很大的提高工作人员的工作效率,提高了正确性。

1.3概述
这次所选的设计题目是书店销售管理系统。

数据库环境选择SQL server 2005中文版。

1.4可行性分析
管理上可行性
书店管理其实是不能说是简单,但是很琐碎。

每天的销售还有最后的书本数量的核对会耗费大量的人力和时间。

而进行计算机信息技术上的自动化管理不仅提高了管理的准确性而且省时省力。

经济上可行性
只要这个书店管理系统就好,不需要额外的支出
技术上可行性
在大学我们已经学习了有关数据库,c语言等一系列计算机技术,在相对宽裕的时间内是可以编写出程序的。

二、课程设计内容说明
1、需求分析
1.1书店的部门组成
对于书店来说,目的是销售图书,所以包含销售部门;同时为书店进书的部
门称为进货部门。

1.2各部门的业务说明
1.2.1销售部门
对图书销售情况进行结算,对客户资源进行管理。

女口,对某一段时间的图书销售情况进行统计;对订书的顾客信息进行记录,统计等。

因此,需要销售人员,图书,购书实体:顾客,以及联系:销售,购买。

1.2.2进货部门
记录图书供应商的信息,以便获得最新的图书进货信息。

通过供应商,为书店购进新的图书。

需要实体供货商,联系:进货。

1.3基本信息管理
1.3.1该模块实现图书情况的分类,包括书号,书名,作者,售价等。

便利店员查找书籍,为顾客提供更好的建议。

1.3.2销售情况管理
该模块对每本出售的书本进行统计,记录每本书售出的日期,购买人,经办人和销售的金额。

在这里店员可以很方便的加入销售记录,修改记录。

便于每天书店清账。

而且
在这里总金额的计算公式是事先设定好的,这样避免了人为的计算错误。

1.3.3销售、进货、书本信息管理
销售、进货和书本库存三者结合起来管理整个书店的图书数量。

库存实现对
书店剩余书本的管理,知道什么书还剩几本。

而进货清楚让人知道进了什么书,售价是什么还有哪个供应商提供的。

而且在这里总金额的计算公式是事先设定好的,这样避免了人为的计算错误。

1.3.4书店会员管理
实现系统相关会员信息的注册及身份,同时也提供对应会员的资料更新。

该模块还可以收集会员相关的消费额度,提供不同的折扣力度。

1.3.5书店职员管理
实现书店职员的相关的管理,收集每个员工的相关信息,更好的了解员工还有实现不同职位不同的工资管理。

1.4安全性要求与完整性要求
安全性要求:
系统应设置访问用户都预先约定好一个计算过程或者函数,鉴别用户身份时,系统提供一个随机数,用户根据自己预先约定的计算过程或者函数进行计算,
系统根据用户计算结果是否正确进一步鉴别用户身份;
系统应对不同的访问级别,限制访问用户可查询和处理数据的类别和内容;系统应对不同用户设置不同的权限,区分不同的用户,如区分会员,职员。

完整性要求:
各种信息记录的完整性,信息记录内容不为空,主码值唯一;
列值非空,列值唯一,列值满足一个布尔表达式;
用户的操作违背了完整性约束条件时,采取一定的动作,如拒绝执行该操作; 各种数据间相互联系的正确性;
相同的数据在不同的记录中的一致性。

2.概念结构设计
部分E-R图
图2.1书本基本信息E-R图
图22供应商信息E-R图
图2.3职工信息E-R图
图2.4会员信息E-R 图
图2.5销售信息E-R 图
年龄
入会时间
姓名
累计消费
电话
会员信 息
会员号
供货商代号
总价
书价
进货
数量
进货单号
工号
书口P
时间
书名
图2.6进货信息E-R图
总体E-R图
3逻辑结构设计
3.1 E-R图向关系模型的转换
逻辑设计的目的是把概念设计阶段设计的全局E-R模式转换层与选用的具体机器上DBMS锁支持的数据模型相符合的逻辑结构。

逻辑设计的步骤主要步
骤有以下五步:
(1)初始模式的形成
(2

自模式设计
(3)应用程序设计梗概
(4)模式评价
(5

修正模式
E-R图向关系模型转换,首先要进行数据的规范化。

所谓规范化是指在一个数据结构中没有重复出现的项组。

规范化是在关系数据库中减少数据冗余的过程。

3.1.1实体
书本(书号,书名,作者,价格,出版社,出版日期,类别,库存数量)
属于BCNF 供应商(供应商代号,供应商名字,联系人,电话,地址)属于BCNF
员工(工号,ID,姓名,电话,住址,职位,性别,年龄)属于BCNF
会员(会员号,姓名,年龄,电话,累积消费,折扣力度,入会时间,性别)
属于BCNF 3.1.2关系
进货(书号时间,供应商代号,工号,书名,进货单号,金额,数量,总价)
属于BCNF
销售(书号,销售单号,书价,购买者,工号,折扣,时间,数量)
属于3NF
3.2数据模型的优化
关系模式会员号,姓名,书名,供应商号,职工号不存在非主属性对主
属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是销售关系模式、进货关系模式、库存信息关系模式中存在着一些数据冗余,现将四个关系模型进行合并,消除冗余,优化为:
进货(书号,时间,供应商代号,工号,书名,进货单号,金额,数量)
4.物理结构设计
4.1数据库物理设计原理
数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库系统确定合理的存储结构和存取方法。

所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数
据库的操作具有尽可能高的速度。

主要体现在后者。

4.1.1建立索引:
根据本系统的特点,采用B+树索引存取方法建立索引
对图书,会员,职员,供应商,进货,销售和库存建立索引
①对图书,会员,职员,销售建立组合索引
②对进货,销售,图书建立组合索引
③对图书,供应商,进货建立组合索引
对其进行的操作:
①查找
查找以典型的方式进行,类似于二叉查找树。

起始于根节点,自顶向下遍历树,选择其分离值在要查找值的任意一边的子指针。

在节点内部典型的使用二乩查找来确定这个位置。

②插入
节点要处于违规状态,它必须包含在可接受范围之外数目的元素。

首先,
查找要插入其中的节点的位置。

接着把值插入这个节点中。

如果没有节点处于
违规状态则处理结束。

如果某个节点有过多元素,则把它分裂为两个节点,每个都有最小数目的元素。

在树上递归向上继续这个处理直到到达根节点,如果根
节点被分裂,则建立一个新根节点。

为了使它工作,元素的最小和最大数目典型的必须选择为使最小数不大于最大数的一半。

③删除
首先,查找要删除的值。

接着从包含它的节点中删除这个值。

如果没有节
点处于违规状态则处理结束。

如果节点处于违规状态则有两种可能情况:它的兄弟节点,就是同一个父节点的子节点,可以把一个或多个它的子节点转移到当前节点,而把它返回为合法状态。

如果是这样,在更改父节点和两个兄弟节点的分离值之后处理结束。

它的兄弟节点由于处在低边界上而没有额外的子节点。

在这种情况下把两个兄弟节点合并到一个单一的节点中,而且我们递归到父节点上,因为它被删除了一个子节点。

持续这个处理直到当前节点是合法状态或者到达根节点,在其上根节点的子节点被合并而且合并后的节点成为新的根节点。

4.1.2存储结构
确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。

将日志文件和数据库对象(表、索引等)分别放在不同的磁盘,可以改进系统的性能,提高系统的安全性。

所以,系统应将日志文件和数据文件存放在不同磁盘上。

4.2相关表的物理结构
电话
不允许
表4.4会员物理结构
5•数据库实施
5.1数据库建立代码
5.1.1数据库的创建(sql语句代码)
create database bookstroe
use bookstroe
5.1.2表的创建
书本信息关系表的创建
create table 书本
(
书号char (5) not null primary key
书名varchar ( 30 )not null ,
作者char ( 10 ),
价格decimal (5,2)5
岀版社varchar (6)not n ull ,
岀版日期smalldatetime
类别char(5)not null,
库存数量int check(库存数量>=0),
)
供应商信息关系表的创建
create table 供应商
供应商代号varchar (6) not null primary key 供应商名字varchar (20) not null,
联系人char (10 ) not null, 电话
varchar ( 13) not n ull, 地址
varchar (30),
员工信息关系表的创建
create table 员工
(
工号varchar (6) not null 姓名Char ( 10 ) not null, 性别varchar (2) not null
年龄varchar ( 12), primary key ,
check (性别='男'or 性别='女'),
进货信息关系表的创建
create table 进货 (
进货单号 char (6) not null primary key
供应商代号 varchar ( 6) not
null,
职位 char (5) not n
ull,
电话 varchar (13) not null ID varchar (18) not
null,
住址 varchar (30) 5
会员信息关系表的创建
create table
会员
(
会员号 varchar
(6) primary
姓名 char ( 10 ) not
null.
key not n ull,
性别 varchar ( 2) not null check (性别='男'or 性别='女'), 年龄 varchar ( 12),
入会时间 datetime not n ull,
折扣 char (5) not null check (折扣 in ( '0.90'
,'0.80'
,'0.70')),
累计消费 decimal (5,2), 电话 varchar (12 ) not
null,
销售信息关系表的创建
create table 销售
(
销售单号char 书号 char ( 5) 会
员号varchar 折
扣 decimal 书价
decimal
(6)
not not n ull primary
key ,
null
(6),
(5, 2)
(5, 2) not n ull check not n ull,
(折扣 in ( '1' , '0.90' , '0.80' , '0.70'
)),
工号 varchar 时间 datetime int
销售数量
销售总价 as
foreig n foreig n foreig n )
key key (6) not null , not n ull,
check (销售数量>=1), 折扣
*销售数量*书价, (会员
号)references (书号)references
key (工号)references
会员(会员
号), 书本(书
号), )
书号
char (5)
not null,
书名varchar(30)not n ull,
书价decimal(5, 2)not n ull,
时间smalldatetime n ot n ull,
进货数量int check(进货数量>
=1),
工号varchar (6) not null,
总价as书价*进货数量,
foreign key (书号)references 书本(书号),
foreign key (供应商代号)references 供应商(供应商代号),
foreign key (工号)references 员工(工号),
)
5.1.3各个表的关系图
图5.1.3数据库关系图
5.2初始数据的输入
数据库以及表创建之后,要输入一些实际的数据。

一下是一些数据输入的代码
向供应商表输入数据
insert into 供应商values ( '01'
insert into 供应商values ( '02'
,'a1',‘ 张三',‘上海',‘12345')
,'a2','李四’,’杭州’,’54321')
a AiC&uirr<A
□zl
匸工(柑匚
olrns)

Ltt
一柯
!=年*
a

it
LJn-r-lr~lr-l

L

* (AJ CoLmej [*\
■ ■ ■、!■
・・鹽
GKR6CUULNOF^LRZ...k£tro@ - dbo.^M 应商 GKR6匚UULMORgLRZ j” - dbe.View_l* < 供痂商代号 供应商容宇 联系入_ 电话 地址
01
al
张三
上海
12345 02
李四
54321
NULL
Ml
521输入数据后的供应商表
向书本信息表输入数据
in sert into 书本 values ('11021' ,'光荣日’ ,'韩寒
,'20.00' ,'01' , '2001.06.13' ,
'小说')
in sert into 书本 values ('11022'
,'一个人的好天气 ','青山七惠
,'18.00'
,'01' , '2001.07.15'
,
'小说')
作音

岀魁
出版日期 类别
11021 頫日
20.00
D1 2001-064300;..,小询
11022

青山七惠 15.00
01
2001-07-15 Kt.小识 37
\lUl
/JUi
Am
Atii
At/2
fJUL
522输入数据后的书本信息表
向员工信息表输入数据
insert into 员工 values ('001',‘ 钱小五','女','25',‘ 店员
员工 values ( '003','王小二','男','21','店长 ,'310000000000000021' ,'杭州')
§艰贰U ULH0耶LRZ”屈7 g 页丄
^Lyuerylsql - J^imstrawr i :;jr
工号
tsi

电话
ID
住业

劇五
交 25
08753227
3:ot»]ooeocoi..
C03

21
08/221
3:como 如
杭州
WLL

AUI
AUZ
5.2.3输入数据后的员工信息表
向会员信息表输入数据
insert into
会员 values ( 'no43','王菲','女
','19' , '2010.02.03' , '0.90'
, '103.3'
, '88733226'
)
insert into
会员 values ( 'no98','刘朵朵','女
','20'
, '2011.12.03'
, '0.80'
, '403.3'
, '88733228'
)
,‘88733227' ,‘310000000000000000'
杭州’)
insert into ','88733221'
吉员号性名性别____ 入会甘间折扌匚电话
王菲女19
2010-02-03
00^...O.K103.M
687132J
6
门朵朵30301112^300
:,..C.8O即 3.30
E8 73
3228
524输入数据后的会员信息表向进货关系表输入数据
in sert ,'20.00'into 进货values
,'2011.12.12'
('b1',
,'50'
'01' , '11021',
,'001')
'光荣日
in sert into进货values('b2' ,'02' , '11022','一个人的好天气
,'18.00','201112.13','40','001')
I号
I310]蟻日20.M2D 11-12-P
M:..,500011030.01 b20211022IB.OO20114243 嗽

40C01720.00 AU£她3NULL HULL NHL
5.2.5输入数据后的进货关系表
向销售关系表输入数据
insert in to销售values('s1','11021' , 'no98','0.80','20.0','003'5
'2013.01.12','2')
insert in to销售values('s2' , '11022','no43','0.90','18.0','003'
'2013.01.12' ,3 )

iffl nrfS o.eo血0血etn
s!11022诫 5.901&0003Bmi-EWt.. J临a®
ii^iai■A IT r 1 ■ R 1AS r/■■*1■ I. ■ r Bir r H11 JT r a M ■ J
427输入数据后的销售关系表
5.3视图的建立
1•这个视图是总结了销售情况,当销售输入数据时视图会把卖出的书的数量加起来,那么要看某天的某本书的销售量就很方便了。

代码:
create view 销售情况
as select 时间,书号,sum (销售数量)销售数量,sum(销售总价)销售总价
from 销售
group by书号,时间:RfrCUULNOH8LRZ,..troc - dbo.^gl^况GKR6CLULNOR8LS7….r oksVoe - dbo,^= GK
时间书号梢售敎重涓害总们
2013451-12 00:00:00.fl00110?1212,0000
12013-01-12110223^s.eooa
NULL AUZ NULL NULL
5.3.1销售情况视图
2•在销售情况视图的基础上建立了书本数量的视图,当销售输入数据时视图里的销售数量会动态的改变。

代码:
create view 书本数量
as select 书本.书名,进货.进货数量,销售.销售数量,书本.库存数量
from 书本,进货,销售
where 书本.书号=进货.书号and进货.书号=销售.书号
书宕稍售數韋库存裁星
»uE3s|502
一吓人的好天气337
NULL
5.3.2书本数量视图
5.4触发器的建立
1 •输入的员工年龄不可以小于16岁
create trigger tr_员工_in sert on 员工
for in sert as
declare @年龄varchar(12)
select @年龄=年龄
from in serted
if @年龄<16
beg in
raiserror(员工年龄应该大于',16,1)
rollback tran sact ion
end
表-Jiv-raZ* 表▼ d%•会员L^^-PC-thu -力冈严摘萼▼ X ■03 ' J苏打'* ' 310DOCOOODODO00021'「徐汇・,109376,,'职员、「坤j Z
j消息
用息軌叫级别旳状态二,过理第E行
员工年斟应该人于"
消息品朋,级别如状态丄,翳L行
事务在触发器中结東.牡泌理已中止*
5.3.1输入数据触发触发器后
2•当向进货信息中输入新的书本信息,那么在库存中自动加入该书的书号还有
数量。

create trigger kuc un
on进货
after in sert
as beg in in sert into
书本(书号,库存数量)
select书号,进货数量
from in serted
end
* 干7 -和杆炉|警4予・打■ 平egfiir##"利厂尹 -话- 肝小百匕忖卒- 朋”理只
Insert iDt4 进^ valHB I •吞计\ '3*# *01* r r20.0*r 'QOl1, *3013*01»02\ '10^
-i就
L行受影响】
i行毋字堆])
532进货表岀入数据后
6、数据库的试运行
当数据装入数据库以后,进入数据库的试运行阶段,数据库的试运行也称为联合调试。

数据库的试运行对于系统设计的性能检测和评价是十分重要的,该阶段重点执行对数据库的各种操作,实际测量系统的各种性能,检测是否达到设计要求。

通过该阶段的运行与测试,可以检验数据库系统设计是否合理,运行是否安全、高效。

7、数据库的维护
数据库系统投入正式运行,意味着数据库的设计与开发阶段的基本结束,运行与维护阶段的开始。


据库的运行和维护是个长期的工作,是数据库设计工作的延续和提高。

三、结论及体会
通过这次的数据库验证体系课,学到了很多实际应用的东西。

平时只是一味的学习理论知识,很少能
有亲手实践做系统的时间,这次的课教会了我们怎样去着手做一个系统,怎样团队合作,怎样去一步一步构
建一个系统等等。

通过这次做书店销售管理系统,我们知道了在传统模式下利用人工进行图书销售信息管理,存在着
较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。

诸如这些情况,令书店管理者对图书的信息管理带来了很大困难,严重影响了书店的经营效率。

随着科学
技术的不断提高,计算机科学日渐成熟,使用先进的计算机技术来代替传统的人工模式,来实现信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人
类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用
计算机对图书销售信息进行管理,具有着手工管理所无法比拟的优点•例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。

这些优点能够极大地提高图书销售信息管理的效率。

我们也发现了很多问题,很多是我们眼高手低,总以为会了,但是实际行动时才
知道欠缺许多东西。

当然这次做系统学会了很多,相信对我们以后的学习甚至是工作都有用处。

希望今后能有更多的机会去做系统,去亲手实际。

当然了我们还要继续学习,学习是没有终点的。

相关文档
最新文档