数据库课程设计之图书出版管理系统开发.docx
- 文档编号:3401408
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:29
- 大小:232.36KB
数据库课程设计之图书出版管理系统开发.docx
《数据库课程设计之图书出版管理系统开发.docx》由会员分享,可在线阅读,更多相关《数据库课程设计之图书出版管理系统开发.docx(29页珍藏版)》请在冰豆网上搜索。
数据库课程设计之图书出版管理系统开发
摘要
图书出版管理系统,是一个由人、计算机等组成的能进行管理信息的收集、传递、加工、保存、维护和使用的系统。
利用信息控制企业的行为;帮助企业实现其规划目标。
在现代大中型企业纷纷利用的系统在计算机日益普及的今天。
根据出版社图书的规模日益扩增,图书类别的日益繁琐,经销商与出版社频繁交易,行业竞争也日益激烈。
面对诸多问题时,一款优秀的出版社图书管理软件是每一个从事出版社图书销售与管理的人员必备的工具。
出版社图书出版管理是一个庞大的任务,传统方式的图书管理将会造成巨大的人力和物力的浪费,因此我们需要设计一个可以使工作人员实现使用计算机管理的系统。
减轻工作量,实现图书出版管理的高效化。
为了达到这个目的我们可以通过所学习的数据库的知识来实现。
关键词数据库,出版社,图书,管理系统,设计
1课题涉及的关键技术
1.1软件的设计的理论
1.1.1软件开发方法比较
软件技术日新月异,各种开发方法层出不穷,基本上都有各自擅长的区域。
目前流行的主要有以下几种:
结构化方法、Jackson方法、面向问题的分析法、
面向对象的软件开发方法。
1.1.2结构化方法
结构化开发方法是由E.Yourdon和L.L.Constantine提出的,即所谓的SASD
方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。
Yourdon
方法是80年代使用最广泛的软件开发方法。
它首先用结构化分析(SA)对软件
进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编
程(SP)。
它给出了两类典型的软件结构(变换型和事务型),使软件开发的成功率大大提高。
1.1.3Jackson方法
Jackson方法是最典型的面向数据结构的软件开发方法,Jackson方法把问题分解为可由三种基本结构形式表示的各部分的层次结构。
三种基本的结构形式就是顺序、选择和重复。
三种数据结构可以进行组合,形成复杂的结构体系。
这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。
这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。
该方法也可与其它方法结合,用于模块的详细设计。
1.1.4面向问题的分析法
面向问题的分析法PAM(ProblemAnalysisMethod)是80年代末由日立公
司提出的一种软件开发方法。
它的基本思想是考虑到输入、输出数据结构,指导
系统的分解,在系统分析指导下逐步综合。
这一方法的具体步骤是:
从输入、输
出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步
综合处理框,直到画出整个系统的PAD图。
这一方法本质上是综合的自底向上
的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统
的输入、输出数据结构。
PAM方法的另一个优点是使用PAD图。
这是一种二维
树形结构图,是到目前为止最好的详细设计表示方法之一。
当然由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。
1.1.5原型法
产生原型化方法的原因很多,并非所有的需求都能够预先定义,反复修改是
不可避免的。
当然,采用原型化方法是因为开发工具的快速发展,例如用VB、
DELPHI等工具我们可以迅速的开发出一个可以让用户“看得见、摸得着”的系
统框架,这样,对于计算机不是很熟悉的用户就可以根据这个样板提出自己的需
求
开发原型化系统一般由以下几个阶段组成:
(1)确定用户需求
(2)开发原始模型
(3)征求用户对初始原型的改进意见
(4)修改原型。
原型化开发方法比较适合于用户需求不清、业务理论不确定、需求经常变化
的情况。
当系统规模不是很大也不太复杂时采用该方法是比较好的。
2.1有关软件及系统的技术
2.1.1Access简介
MicrosoftAccess2003关系型数据库系统是微软公司的办公自动化套装软件Office2003中的一个重要组成部分。
它具有Office软件功能强大、用户界面友好、易学易用的优点,用它来开发中小型数据库应用项目非常便捷和灵活。
Access不仅是数据库初学者的不错选择,也越来越广泛地应用于各类管理软件的开发,是目前较为流行的桌面数据库管理系统。
2.1.2C/S系统
软件的体系结构包括C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。
在客户机/服务器(Client/Server简称C/S)是一种将事务处理分开进行的网络系统,由服务器和客户机组成。
其中,服务器通常采用高性能的PC,主要负责数据的集中管理,客户机负责应用程序的管理。
C/S系统开发:
在C/S系统中,一般使用关系型数据库,C/S系统的用户交互一般使用图形界面,使用图形界面的构建进行开发,完成系统所有功能,对用户界面设计变得非常重要。
C/S系统是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的发展方向。
C/S系统的特点:
客户/服务器结构力图将两种处理模式(主机模式和文件服务器模式)的优点集于一身;它的另一种提法可以称为“协同处理”。
也就是说通过客户端和服务器端的最佳分工合作,使整个系统达到最高的效率。
客户/服务器结构的另一个主要特点是数据库服务器的平台与客户端无关。
三层客户/服务器模型,所谓三层,实际就是客户层和服务器层之间又添加了一个中间层,这个中间层一般用于实现商业或企业规则等。
客户层是面向用户服务的;数据库服务器层是面向数据服务的;而中间层是面向商业或企业规则的,这一层也称为应用服务器。
通过这种划分可以将程序代码划分成不同的逻辑组件,每个组件都可以分配给能发挥最佳性能的一台机器,中间件不一定要对应一个物理层,即中间件不一定需要一台独立的服务器,中间件是一个方案,需要相应的软件支持,应用服务器和数据库服务器可以安排在一台计算机上。
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在JAVA这样的跨平台语言出现之后,B/S结构管理软件更是方便、快捷、高效。
由于本系统是单机版的小型系统,C/S系统是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
C/S系统结构的主要特征是分布数据,分布过程,以客户为中心,异构硬件和软件。
其技术目标:
继承处理资源,降低开发资源要求,降低硬件和软件的要求,降低系统维护成本,可扩充能力强。
所以本系统采用的是C/S系统。
2.1.3数据库管理系统
数据库的各种功能和特性,并不是数据库中固有的,它是靠管理软件或支持数据库的软件——数据库管理系统(DataBaseManagementSystem,简称DBMS)提供的。
一个完备的数据库管理系统应该具备数据库的各种功能,它的任务就是对数据资源进行管理,并且使之能为多个用户共享,同时还能保证数据的安全性,可靠性,完整性,一致性,还要保证数据的高度独立性。
①数据库管理数据的优点:
数据库中的数据不是孤立的,数据与数据之间是相互关联的;数据库能够根据不同的需要按不同的方法组织数据,比如可以有顺序组织方法、索引组织方法、倒排数据组织方法等。
这样做的目的就是要最大限度地提高用户或应用程序访问数据的效率;数据库具有较小的数据冗余,可供多个用户共享;数据库具有较高的数据独立性;数据库具有安全控制机制,能够保证数据的安全、可靠;数据库允许并发地使用,能有效、及时地处理数据,并能保证数据的一致性和完整性。
②各种数据库的介绍
Access应用程序就是一种功能强大且使用方便的关系型数据库管理系统,一般也称关系型数据库管理软件。
它可运行于各种MicrosoftWindows系统环境中,由于它继承了Windows的特性,不仅易于使用,而且界面友好,如今在世界各地广泛流行。
它并不需要数据库管理者具有专业的程序设计水平,任何非专业的用户都可以用它来创建功能强大的数据库管理系统。
Oracle在数据库领域一直处于领先地位。
Oracle关系数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。
它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。
SybaseSQLServer是一个多库数据库系统。
这些数据库包括系统数据库和用户数据库。
而不论是系统数据库还是用户数据库,都建立在数据库设备上。
2.1.4数据库标准语言-SQL的使用
SQL是StructuredQueryLanguage(结构化查询语言)的缩写,可以说查询是SQL的重要组成部分,但不是全部,SQL还包括数据定义,数据操纵和数据控制功能等部分。
SQL主要具有以下特点:
SQL是一种一体化的语言,它包括了数据定义,数据查询,数据操纵和数据控制等方面的功能,它可以完成数据库活动中的全部工作。
SQL语言是一种高度非过程化的语言,它没有必要一步步地告诉计算机如何去做,而只要告诉计算机用户要做什么事情。
SQL语言非常简洁。
SQL语言可以直接以命令的方式交互使用,也可以嵌入到程序设计语言中以
程序方式使用。
SQL的操作功能是反映对数据库中数据的操作功能,包括数据的插入、更新和删除。
SQL的插入语句是INSERT,一般有两种格式,第一种格式直接插入一个元组,第二种格式是将一个查询结果插入到指定的表中。
插入一个元组的INSERT语句的格式是:
INSERTINTO<表名>[(<列名>[.列名>…])]VALUES(<表达式>[,<表达式>……])
插入一个查询结果到表,在SQL中还允许从一个关系中选择一些元组插入到另外一个关系中。
插入一个查询结果的INSERT语句的格式是:
INSERTINTO<表名>[(<列名>[,<列名>…])]
SQL的更新语句是UPDATE,格式是:
UPDATE<表名>SET<列名>=<表达式>[,<列名>=<表达式>…][[FROM<表名>]WHERE<逻辑表达式>]
SQL的删除语句是DELECT,格式是:
DELECTFROM<表名>[[FROM<表名>]WHERE<逻辑表达式>]
2需求分析
2.1系统需求概述
2.1.1需求分析定义
要开发一个应用系统需要对问题和需求进行描述——问题是什么以及系统需要什么。
需求分析(RequirementsAnalysis)是对一个产品的要求的描述。
需求阶段的主要目标是确定到底需要什么并将其记录在案,要使用一种能够将需求信息清晰的传达给客户和开发小组成员的文档格式来进行记录。
这个过程的最大难题是如何使得需求的定义没有二义性,这样才能避免因为不符合需求而带来的开发风险。
2.1.2系统业务描述
根据出版社图书的规模日益扩增,图书类别的日益繁琐,经销商与出版社频繁交易,行业竞争日益激烈。
面对诸多问题时:
一款优秀的出版社图书管理软件是每一个从事出版社图书销售与管理的必备的工具。
出版社图书出版管理是一个庞大的任务,传统方式的图书管理将会造成巨大的人力和物力的浪费,因此我们需要设计一个可以使工作人员实现使用计算机管理的系统。
减轻工作量,实现图书出版管理的高效化。
软件需求分析就是软件计划期间建立的软件可行性分析求精和四化,分析各种可能的解法,并且分配给各个软件元素。
需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是目标系统提出完整、准确、清晰、具体的要求。
信息需求:
能够新增图书记录,查询图书记录,修改和删除图书信息记录。
能够查询浏览图书的分类信息,能够查询浏览图书销售情况。
功能需求:
(1).系统管理员可以通过该应用程序对书籍全部信息进行管理;
(2).客户和系统管理员可以通过应用程序查询图书的全部信息;
(3).客户可以通过应用程序产生购书订单;
(4).系统管理员可以通过应用程序对订单信息进行管理;
(5).系统管理员可以通过应用程序对客户进行管理;
(6).内部功能需要通过SQL语言,对数据库的查询,修改,插入和删除等操作。
完整性要求:
(1).各种信息记录的完整性,信息记录内容不能为空;
(2).各种数据间相互的联系的正确性;
(3).相同的数据在不同记录中的一致性。
2.2系统功能模块
2.2.1系统功能描述
出版社业务系统涵盖了整个出版社的日常业务,如图2.1所示
系统主控界面
记
录
处
理
图书基本信息查询
图书高级信息查询
出版图书信息
出版图书分类模块
图书编号、名称、作者等信息。
增加记录、删除记录、刷新纪录。
出版图书的销售模块
图2.1出版社业务系统功能模块
2.2.2系统的数据流图
模块说明
功能
1
增加记录
用于将新的图书信息添加到图书基本信息表中
2
删除记录
用于删除图书基本信息表中的图书信息
3
刷新纪录
增加记录和删除记录完成后点次按钮更新
4
第一条
用于显示图书基本信息表中的第一条信息
5
下一条
用于显示当前信息的下一条信息
6
前一条
用于显示当前信息的前一条信息
7
最后一条
用于显示图书基本信息表中的最后一条信息
8
图书销售
用于显示出版图书的出售价格、数量等信息
9
图书分类
用于显示出版图书的类别编号
2.2.3数据字典
表2-1用户表(User)
列名
含义
长度
类型
NULL
DEFAULT
UserID
用户ID号
10
Char()
no
no
Loginname
登录名
20
Char()
no
no
Address
地址
150
Char()
yes
no
Password
密码
16
Char()
no
no
Phone
电话
16
Char()
yes
no
电子邮件
50
Char()
yes
no
Regtime
注册时间
8
Date()
no
no
表2-2图书表(Book)
列名
含义
长度
类型
NULL
DEFAULT
BookID
图书ID
10
Char()
no
no
Bookname
书名
100
Char()
no
no
Bookcategory
图书类别
10
Char()
no
no
Author
作者
50
Char()
no
no
Publish
出版社
50
Char()
no
no
Price
价格
50
Char()
no
no
Saleprice
销售价格
50
Char()
no
no
Content
内容和目录
200
Char()
no
no
Descript
图书简介
200
Char()
no
no
Regate
入库时间
8
Date()
no
no
表2-3图书分类信息表(BookCategory)
列名
含义
长度
类型
NULL
DEFAULT
CategoryID
图书分类ID
10
Char()
no
no
Categoryname
图书分类名称
50
Char()
no
no
表2-4订单详细信息表(OrderInfo)
列名
含义
长度
类型
NULL
DEFAULT
OnlyID
唯一编号
10
Char()
no
no
OrderID
订单ID
32
Char()
no
no
BookID
图书ID
10
Char()
no
no
Amount
数量
10
Char()
no
no
表2-5订单基本信息表(Order)
列名
含义
长度
类型
NULL
DEFAULT
OrderID
订单ID
32
Char()
no
no
Submittime
提交时间
8
Data()
no
no
Totalprice
总金额
50
Float()
no
no
UserID
用户ID
10
Char()
no
no
Ordercontent
订单备注
200
Char()
no
no
Isdiliver
是否发货
10
Char()
no
no
Ispay
是否付款
10
Char()
no
no
3系统设计
3.1各子系统E-R图
3.1.1用户ER图:
3.1.2图书ER图:
3.1.3产品分类ER图:
3.1.4订单基本信息ER图:
3.1.5订单详细信息ER图:
3.1.6全局E-R图
出版社图书管理ER图
3.2逻辑结构设计
3.2.1E-R图向关系关系模式转化
用户表(用户ID号,登录名,地址,密码,电话,电子邮件,注册时间)。
图书表(图书ID,书名,图书类别,作者,出版社,价格,销售价格,内容和目录,图书简介,入库时间)。
图书分类信息表(图书分类ID,图书分类名称)。
订单基本信息表(订单ID,提交时间,总金额,用户ID,订单备注,是否发货,是否付款)。
订单详细信息表(唯一编号,订单ID,图书ID,数量)。
3.3物理结构设计
3.3.1数据库存储方法分析
用户表(用户ID号,登录名,地址,密码,电话,电子邮件,注册时间),主码为ID号,符合三范式。
图书表(图书ID,书名,图书类别,作者,出版社,价格,销售价格,内容和目录,图书简介,入库时间),主码为图书ID,符合三范式。
图书分类信息表(图书分类ID,图书分类名称)主码为图书分类ID,符合三范式。
订单基本信息表(订单ID,提交时间,总金额,用户ID,订单备注,是否发货,是否付款)主码为订单ID,符合三范式。
订单详细信息表(唯一编号,订单ID,图书ID,数量)主码为唯一编号,符合三范式
3.4系统代码实现
3.4.1部分设计代码如下:
//图书出版管理系统View.cpp:
implementationoftheCMyViewclass
#include"stdafx.h"
#include"图书出版管理系统.h"
//开始声明
#include"MyDlg1.h"
#include"MyDlg2.h"
//结束声明
#include"图书出版管理系统Set.h"
#include"图书出版管理系统Doc.h"
#include"图书出版管理系统View.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
CMyView:
:
CMyView()
:
CRecordView(CMyView:
:
IDD)
{
//{{AFX_DATA_INIT(CMyView)
m_pSet=NULL;
//}}AFX_DATA_INIT
//TODO:
addconstructioncodehere
}
CMyView:
:
~CMyView()
{
}
//CMyViewmessagehandlers
//增加记录按钮代码
voidCMyView:
:
OnButtonaddnew()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->AddNew();
UpdateData(FALSE);
}
//删除记录按钮代码
voidCMyView:
:
OnButtondeldte()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->Delete();
m_pSet->MoveNext();
if(m_pSet->IsEOF())
m_pSet->MoveLast();
if(m_pSet->IsBOF())
m_pSet->SetFieldNull(NULL);
UpdateData(FALSE);
}
//刷新按钮代码
voidCMyView:
:
OnButtonupdate()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData();
m_pSet->Update();
m_pSet->Requery();
//m_pSet->CancelUpdate();
}
//第一条按钮代码
voidCMyView:
:
OnButtonfirst()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->MoveFirst();
if(m_pSet->IsBOF())
{
MessageBox("记录已经在第一条");
m_pSet->MoveNext();
UpdateData(FALSE);
return;
}
UpdateData(FALSE);
}
//下一条按钮代码
voidCMyView:
:
OnButtonnext()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_pSet->MoveNext();
if(m_pSet->IsEOF())
{
MessageBox("记录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 图书 出版 管理 系统 开发