第一章:需求分析
1.1用户及用户需求
图书销售管理系统的主要用户有客户,系统管理员。
①客户需求:客户是图书销售管理系统的主体,主要的需求有图书信息的查询,购买图书数量查询
②系统管理员:系统管理员在图书销售管理系统中承担承担后台的管理和维护工作,主要需求有图书库存量的添加,修改,删除;入库单表的增加,修改,删除;图书分类表的增加,修改,删除等,同时要做好图书销售管理系统数据库的导入与导出,数据库的备份,恢复等。
1.2系统数据
通过对图书销售管理系统用户需求的分析可以得出系统涉及大量的基础数据,主要包括以下数据实体及数据项
①图书分类信息:图书分类信息主要包括图书分类号,图书分类名称,其中图书分类名称不允许为空。
②供应商信息:供应商信息主要包括供应商编号,供应商名称,出版社地址,所在城市,邮政编码,联系电话,其中供应商名称,出版社地址,所在城市,邮政编码,联系电话不允许为空。
③出版社信息:出版社信息主要包括出版社编号,出版社名称,出版社地址,所在城市,邮政编码,联系电话,其中出版社名称默认为清华大学出版社,出版社地址,所在城市不允许为空。
④图书库存信息:图书库存信息包括图书编号,ISBN,图书名称,图书类号,作者,版次,出版日期,库从数量,图书单价,出版社号,其中ISBN号不允许为空,库从数量限制在0到1000,图书单价限制在0到1000。
⑤客户表信息:客户表信息包括客户编号,客户名称,性别,地址,联系电话,其中客户名称不允许为空,性别默认为男。
⑥入库单信息:入库单信息包括入库单号,图书编号,入库日期,购入数量,图书单价,供应商编号,经手人,其中购入数量限制在0到1000,图书单价限制在0到1000。
⑦销售单信息:销售单信息包括销售单号,图书编号,销售日期,销售数量,销售单价,客户编号,经手人,其中销售单价限制在0到1000。
1.3系统功能分析
图书销售管理系统功能分为基本信息管理,客户管理,销售管理三大功能。
①基本信息管理:基本信息管理主要包括供应商的管理,图书分类表管理,图书管理,入库单管理,而每一小部分又包括增加,修改,删除等。
②客户管理:图书销售管理系统中客户管理是一个重要组成部分,客户的信息可以由本人自己修改,删除,同时也可以在后台系统中检测出进行增加,修改,删除。
③销售管理: 销售管理表中主要完成销售信息的录入,增加,修改,删除。

第2章 数据库概念结构设计

2.1 系统实体和实体间的联系
图书库存表中的书可以销售给多个客户,一个客户也可以购买多本书(图书库存表和客户表是多对多联系)
图书库存表中的书可以由多个供应商提供入库,一个供应商也可以给多个图书馆提供库存量(图书库存表和供应商表是多对多联系)
图书库存表中的书由一个出版社提供,一个出版社可以给多个图书馆提供库存量(图书库存表和出版社是一对多联系)
图书库存表中的每本书属于图书分类表中某一类,图书分类表中的每个类中有多本书(图书库存表和图书分类是一对多联系)
2.2 局部E-R图
2.2.1出版社——图书(一对多)

图2-1
2.2.2书分类——图书(一对多)


图2-2
2.2.3客户——图书(多对多)

图2-3
2.2.4供应商——图书(多对多)

图2-4
2.3 全局E-R图

图2-5

第3章 数据库逻辑结构设计

3.1 将实体转化为关系模式
图书(图书编号,ISBN,图书名称,图书类号,作者,版次,出版日期,库从数量,图书单价,出版社号)
图书分类(图书分类号,图书分类名称)
供应商(供应商编号,供应商名称,出版社地址,所在城市,邮政编码,联系电话)
客户(客户编号,客户名称,性别,地址,联系电话)
出版社(出版社编号,出版社名称,出版社地址,所在城市,邮政编码,联系电话)
3.2 将联系转化为关系模式
销售( 销售单号,图书编号,销售日期,销售数量,销售单价,客户编号,经手人)
入库单(入库单号,图书编号,入库日期,购入数量,图书单价,供应商编号,经手人)
3.3 关系模式的优化
图书(图书编号,ISBN,图书名称,图书类号,作者,版次,出版日期,库从数量,图书单价,出版社号)
图书分类(图书分类号,图书分类名称)
供应商(供应商编号,供应商名称,出版社地址,所在城市,邮政编码,联系电话)
客户(客户编号,客户名称,性别,地址,联系电话)
出版社(出版社编号,出版社名称,出版社地址,所在城市,邮政编码,联系电话)
销售( 销售单号,图书编号,销售日期,销售数量,销售单价,客户编号,经手人)
入库单(入库单号,图书编号,入库日期,购入数量,图书单价,供应商编号,经手人)
第4章 数据库物理结构设计
4.1 数据表的物理结构
4.2 索引视图的设计
4.2.1索引的设计目的
索引是表或视图关联的独立的,物理的数据库结构,索引包含由表或者视图中的一列或多列生成的键,可以加快表或视图中检索行的速度。
在图书销售管理系统中,创建索引就类似与图书馆里的所有书的目录,在找书的过程中有目录查找起来就不用一本一本去找。在数据库中数据库程序使用索引可以快速检索到表中的数据,而不必扫描整个表。书中的目录是一个字词以及各字词所在的页码列表,数据库中的索引是表中的值以及各值存储位置的列表。
4.2.2视图的设计目的
视图是从一个或者几个基本表或者视图中导出来的虚拟表,是从现有的基本表中抽取若干子集组成用户的“专用表”。
在图书销售管理系统中,视图可以满足不同用户的需求,使用户可以从多角度看待同一数据(把用户感兴趣的属性列集中起来放在一个视图,将视图作为一张表来查询)等功能。
4.3 存储过程触发器的设计
4.3.1存储过程的设计目的
存储过程是一组用于完成特定功能的SQL语句集,经编译后存储在数据库中。用户听过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行存储过程。
在图书销售管理销售系统中,存储过程可以提高数据库的执行速度,减少数据库开发人员的工作量等。
4.3.2触发器的设计目的
触发器是一种特殊的存储过程,它不能被显示地调用,而是在对表进行插入记录,更新记录或者删除记录操作时被自动激活,所以触发器可以用来对表实施复杂的完整性约束。触发器可以减少人工输入数据出错的机会,提高数据的可靠性。
在图书销售管理系统中,触发器可以用来对表实施复杂的完整性约束,当触发器所保护的数据发生改变时触发器自动激活,从而防止对数据的不正确的修改。有可以在触发器中查找表等功能。
第5章 数据库的实施

5.1 创建数据库
5.1.1资源管理器创建数据库

图5-1
5.1.2 SQL语句创建数据库
create database bookmanager
on primary
(
name=bookmanager_data1,
Filename=’D:\sql server \bookmanager_data1.mdf’,
size=6,
maxsize=100,
Filegrowth=10%),
Filegroup g1
(name=bookmanager_data2,
Filename=’D:\sql server \bookmanager_data1.ndf’,
size=7,
maxsize=unlimited)
log on
(name=bookmanager_log,
Filename=’D:\sql server \bookmanager_log.ldf’)
5.2 创建数据表
5.2.1 资源管理平台创建数据表
①创建“
图5-2
②创建“供应商表”


图5-3
③创建“出版社表”

图5-4
④创建“图书库存表”

图5-5
⑤创建“客户表”

图5-6
⑥创建“入库单表”

图5-7
⑦创建“销售单表”

图5-8
5.2.2 SQL语句创建数据表
①创建“图书分类表”
use bookdb
go
create table type
(
t_id char(4) primary key
t_name varchar(30) not null
)
②创建“供应商表”
use bookdb
go
create table supplier
(
s_id char(4) primary key
s_name varchar(30) not null
s_city varchar(20) not null
s_people varchar(10) not null
s_telephone varchar(11) not null
)
③创建“出版社表”
use bookdb
go
create table press
(
p_id char(6) primary key
p_name varchar(30) default ‘清华大学出版社’
p_address varchar(60) not null
p_city varchar(30) not null
p_bianma varchar(6)
p_telephone varchar(11)
)
④创建“图书库存表”
use bookdb
go
create table repertory
(
r_id char(6) primary key
r_isbn char(20) not null
r_name varchar(60)
t_id char(4) foreign key references type(t_id)
r_writer varchar(40)
r_banci varchar(10)
r_date char(6)
r_number int
r_price decimal(5,1) check(r_price between 0 and 1000)
p_id char(6) foreign key references press(p_id)
)
⑤创建“客户表”
use bookdb
go
create table consumer(
c_id char(6) primary key
c_name varchar(200) not null
c_sex char(2) default ‘男’
c_address varchar(50)
c_telephone char(11)
)
⑥创建“入库单表”
use bookdb
go
create table entry
(
e_id char(6)
primary key(e_id,r_id)
r_id char(6) foreign key references repertory(r_id)
e_date char(6)
e_number int check(e_number between 0 and 1000)
e_price decimal(5,1)(e_price between 0 and 1000)
s_id char foreign key references supplier(s_id)
e_people varchar(10)
)
⑦创建“销售单表”
use bookdb
go
create table vendition
(
v_id char(6)
primary key(v_id,r_id)
r_id char(6) foreign key references repertory(r_id)
v_date datetime
v_number int
v_price decimal(5,1)
c_id char(6) foreign key references consumer(c_id)
v_people varchar(10)
)
5.3 创建索引
5.3.1 SQL语句创建索引
①创建图书库存表(repertory),客户表(consumer)和销售单表(vendition)的副本,完成聚集索引的创建。
select * into repertory2 from repertory
select * into consumer2 from consumer
select * into vendition2 from vendition
5.4 创建视图
5.4.1 SQL语句创建视图
①创建视图V_book,存放图书常用信息,包括图书编号,图书名称,ISBN,作者,图书单价
create view V_book(图书编号,图书名称,ISBN,作者,图书单价)
as
select r_id,r_name,r_isbn,r_writer,r_price
from repertory
第6章数据库的运行和维护

6.1 创建存储过程和触发器
6.1.1 创建存储过程
创建存储过程PD_bookpub,查询所有图书的图书名称,作者,出版社名称,执行存储过程
CREATE PROCEDURE PD1_BOOK_pub
AS
BEGIN
Select r_name 图书名称,r_writer 作者,p_name 出版社名称
From press 出版社表 p,repertory 图书库存表 b
where p.p_id=b.p_id
END
激活语句:
exec PD1_BOOK_pub
6.1.2 创建触发器
创建DDL触发器tri_book,当对图书库存表录入信息时显示更新前后表中的所有记录
Create trigger tr1_book
On repertory
For insert
As
Begin
Select * from repertory
End
激活语句:
insert into reportory
values(‘ts0008’,‘9787534262104’,‘查理九世’,‘fl04’,‘雷欧幻像’,‘一’,‘2011-11-1’,300,15,‘cb04’)
6.2 数据库备份
数据库维护工作主要用于定期对数据库进行备份。常见的备份有两种方法:一种是利用资源管理器进行备份,一种是利用SQL语句进行备份。

数据库原理及应用——图书销售系统数据库设计相关推荐

  1. 基于java网上图书销售系统的设计与实现(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 1引言  随着Internet国际互联网的发展,越来越多的企业开始建造自己的网站.基于Inter ...

  2. 基于springboot在线图书销售系统的设计与实现.docx

    随着图书行业的发展,图书的营销模式以及供应方式也产生了不同的变化.图书商品需求量以及用户需求的改变,对于图书销售行业的经营以及图书企业的管理产生了不同的影响,导致很多数据信息在处理和维护时会非常困难, ...

  3. 基于JAVA网上图书销售系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA网上图书销售系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA网上图书销售系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: 项目架构 ...

  4. java毕业设计颜如玉图书销售网站的设计与实现Mybatis+系统+数据库+调试部署

    java毕业设计颜如玉图书销售网站的设计与实现Mybatis+系统+数据库+调试部署 java毕业设计颜如玉图书销售网站的设计与实现Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B ...

  5. 计算机毕业设计Java网上图书销售系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java网上图书销售系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java网上图书销售系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  6. java毕业设计网上图书销售系统源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计网上图书销售系统源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计网上图书销售系统源码+lw文档+mybatis+系统+mysql数据库+调试 开发语言:J ...

  7. 计算机毕业设计Java网上图书销售系统演示录像(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java网上图书销售系统演示录像(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java网上图书销售系统演示录像(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目 ...

  8. java数据库图书销售系统_SQL+java数据库课程设计,图书销售管理系统

    [实例简介] SQL数据库课程设计,图书销售管理系统,报告,任务书,挺全的 [实例截图] [核心代码] 07计本2班_15号_刘思旭_图书销售管理系统 └── 07计本2班_15号_刘思旭_图书销售管 ...

  9. java计算机毕业设计图书借阅系统的设计与实现源码+系统+数据库+lw文档

    java计算机毕业设计图书借阅系统的设计与实现源码+系统+数据库+lw文档 java计算机毕业设计图书借阅系统的设计与实现源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言: ...

最新文章

  1. webstorm两个文件比对_webstorm/phpstorm配置连接ftp快速进行文件比较(上传下载/同步)操作...
  2. Notes on language modeling-COMS W4705: Natural Language Processing-学习笔记
  3. SAP UI5 Drop down list value changed
  4. Qomolangma实现篇(三):兼容层设计
  5. vue router 跳转php,vue路由:路由跳转后怎么知道切换到那个router-view中
  6. ctf web必备工具_设计人员和开发人员的必备Web工具和服务
  7. Vuex getters 基础使用
  8. vmlinux_32.lds.S
  9. 点击一下就射击的java代码_Java面向对象(6) —— 射击小游戏
  10. 江开计算机应用基础作业1答案,江苏开放大学计算机应用基础形考第二次作业答案.doc...
  11. 华为手机鸿蒙系统卡吗,华为鸿蒙系统能解决手机卡顿吗 华为鸿蒙系统会不会卡顿...
  12. maya调磨砂教程_怎么用maya调磨砂玻璃的材质?
  13. 《Xenogears》(异度装甲)隐含的原型与密码
  14. 51Talk-Level 7 Unit 1 L1
  15. 2011年09月04日
  16. Linux—虚拟机下如何查看系统是多少位的?32 or 64
  17. java combo_JAVA中的下拉框(Combo Box)概述(1) | 学步园
  18. java怎样实现换肤功能_JavaScript实现换肤功能
  19. 没有鼠标就无法对计算机进行操作,电脑鼠标不灵敏是什么原因?怎么解决?
  20. .NET WebAPI 微信网页授权的实现(一)前端篇

热门文章

  1. 实现输入月份号输出对应的英文月份
  2. 实用的CAD技巧,你也可以成为大神!
  3. PacBio HiFi测序介绍及百迈客最新下机数据公布
  4. dubbo问题:forbid consumer报错
  5. 网易云音乐实时计算平台设计及实践
  6. 计算机科学主题 一亩三分地 每日答题 题库
  7. 在ssd上win10和linux双系统,windows 10 ssd ubuntu hdd双系统
  8. java selenium一一等待超时设置
  9. 滴滴研究院副院长叶杰平 | 大规模稀疏和低秩学习
  10. 支付宝支付 62009