数据库-教材订购系统
学校教材订购系统
学校教材订购系统定义1.基本要求1.1项目目标通过本系统完成为学校教材的购销工作,包括销售和采购两个部分。
1.2系统简介系统简介本系统可细化为两个子系统:销售系统和采购系统。
销售系统的工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。
采购系统的主要工作过程为:若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。
以上的功能要求在计算机上实现。
1.3技术要求和限制条件(1)当书库中的各种书籍数量发生变化(包括领书和进书时),都应修改相关的书库记录,如库存表或进/出库表。
(2)在实现上述销售和采购的工作过程时,需考虑有关单据的合法性验证(3)系统的外部项至少包含三个:教师、学生和教材工作人员。
(4)系统的相关数据存储至少包含6个:购书表、库存表、缺书登记表、待购教材表、进/出库表。
1.4系统界面学生/教师登陆界面、书刊查询界面、书刊信息界面、领书单界面、新书入库界面、退出界面等。
1.5开发概要系统调研、具体开发、测试、维护2.资源2.1 人员本小组成员(华伟,阮运磊,张翔宇,张哲)在老师的辅导下开发完成。
2.2 硬件内存:2GM;CPU:Intel Core2 1.80GHz2.3软件MyEclipse5.5 集成开发工具,MySQL5.0.22数据库和window visio2003画图工具以及windows word文档工具。
3.进度安排随课程进度同步完成系统的开发及文档编写工作。
4.预算本项目作为学生课程设计,其所有开销包括软件,设施及开发经费都由学生自理。
学校教材购销系统需求规格说明书1引言1.1 编写目的本要求规格说明书对学校教材购销系统进行简单的分析,给出了系统的数据流图。
系统主要用户是学生,教师和教材工作人员,加深与用户间的交流,在功能与系统界面上与用户达成一致的看法,以便于开发出用户满意的系统。
学校教材订购管理系统数据库设计
河北科技师范学院数据库应用课程设计项目名称教材订购系统后台数据库的设计与实现班级计算机网络技术******班姓名******学号 0000000000完成时间 2012-3-22学校教材订购系统“学校教材订购系统”有两部分组成:销售系统和采购系统。
销售系统的工作过程为:首先由学生提交订书书、单,经教材发行人员审核是有效订书单后,登记并返给学生领书单,学生即可去书库领书。
采购系统的主要工作过程为:若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。
1. 系统需求分析与功能结构随着教育事业的不断发展,学校的规模不断扩大,学生数量及其信息量的急剧增加,学生的各种信息管理也随之展开。
为方便教师、学生领书,教材发行人员处理各种单据,以及采购人员采购需开发一个“学校教材订购系统”。
教师或学生提交购书单,经教材发行人员审核是有效购书单后,登记并返给教师或学生领书单,教师或学生即可去书库领书。
若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求界面简单明了,易于操作,数据库利于维护。
1.1数据需求分析:1.1.1基本信息的输入:需要输入订书单中要求的信息(提交人姓名、书名、书号、数量等信息)。
1.1.2采购子系统模块:需要输入缺书单中要求的信息(书名、书号、数量)。
1.1.3销售子系统输出模块:需要打印领书单(书名、书号、数量、领书人姓名)。
1.1.4采购子系统输出模块:需要打印进书通知单(书号、书名、进书日期)。
1.2功能需求分析:1.2.1销售子系统模块:提交订书单、审核订书单、登记订书记录、返回领书单、修改和维护数据库中相应的表。
1.2.2采购子系统模块:发缺书单、登记缺书记录、拟订待购书信息、发进书通知单、修改和维护数据库中相应的表。
1.3系统总体功能模块结构1.3.1销售子系统1.3.2采购子系统1.4系统流程图1.4.1销售子系统模块程序流程图:1.4.2采购子系统模块程序流程图:1.5系统数据数据流程图图2-20教材订购系统的顶层DFDF1教材存量表F2缺书登记表教材订购系统的0层DFD根据绘制出的数据流图,定义出本系统的数据词典。
基于数据库的教材征订和管理系统研究
基于数据库的教材征订和管理系统研究摘要:传统方式的教材征订和管理均是通过Excel或纸质填报等手工模式来完成,对实行二级管理模式的成人教育管理机构来说,在上报、征订和统计过程中存在诸多不便和不准确,急需一套高效且准确的管理系统,同时能根据各类征订数据进行深入统计分析,并对教材征订和科学规划做出快速科学的决策。
本文从传统征订模式中的问题分析着手,提出基于数据库的教材征订和管理系统研究来解决该问题的思路和手段,给管理者提供一定的借鉴意义。
关键词:教材征订数据分析数据库管理系统教材是提供教学用的资料,包括课本、印刷的讲义等。
我们此处主要是指课堂内外教师和学生使用的所有教学材料,比如上课用的教学课本、辅导材料、习题册等。
当然教师自己编写的补充材料也可作为教学材料,其中未装订成册或正式出版的书本,我们平常称为讲义。
教材的主要编目信息包括:国际标准书号(International Standard Book Number)简称ISBN或书号,作者,出版社,出版时间,版次,定价,印张等。
在学校征订教材过程中还涉及到学院(部)、班级、人数等更多的相关信息的录入。
成人高等教育的教材征订在传统方式中通过Excel或纸质填报来完成,在每批次征订过程中,作为学校主管部门的成人教育学院都得花较长的时间去校对征订版本、信息和征订数量等,然后再将每张电子表格或纸质表格合并归类,再分别报给相应出版社后算是基本完成这一批次的征订。
在这种模式下,各学院(部)上报和成人教育学院报订的数据准确率还不能得到足够的保证,只要出现差错,就影响到教学秩序的顺利开展。
本文就围绕这一难题进行探讨并提出解决方案,以供参考。
1 传统模式征订中需要解决的困惑在计算机已普及的今天,高度手工的传统征订模式,已明显不能适应当前的发展需要,在征订过程中出现的各种差错,对高校管理者而言也是不能容忍的。
对我校而言,有20多个学院,每个学院又有不同的办学品种,再加上年级、班级,也是要有几百个征订的项目,有时还会分老生和新生等前后几个批次征订,征订的难度比较大,更何况还要将出版社来的教材及时按学院、年级、班级发放到相应学院(部)。
数据库系统课程设计(图书网购管理系统)
数据库系统课程设计--------图书网购网站管理系统一、课程设计题目 (3)1.1 图书网购网站管理系统: (3)1.2 课程设计的任务与要求 (3)1.2.1 目的与任务: (3)1.2.2 实验基本要求: (3)1.2.3 开发环境说明: (3)二、功能需求分析及模块设计 (4)2.1 总模块列表: (4)三、数据库概念设计 (5)3.1 实体E—R图 (5)3.2 整体E—R图如图所示: (7)四、数据库逻辑设计 (8)4.1 关系数据库模型简述 (8)4.2数据库设计 (8)五、系统开发 (9)5.1 数据库建立 (9)5.2 系统DAO方法(用户存放对数据库操作的所有方法) (14)5.2.1 接口类(manage.java): (14)5.2.2方法实现类(DAO.java): (16)5.2.3 控制层方法 (22)5.2.4系统表示层代码: (51)六、总结: (84)一、课程设计题目1.1 图书网购网站管理系统:一家书店可以为店中现有的图书增加网上销售的渠道。
与现在流行的当当网,卓越原理基本相同。
会员通过提交订单,卖家便可根据订单配货发送。
卖家可以在随时通过该网站管理系统对会员信息,订单信息,图书信息进行管理。
1.2 课程设计的任务与要求1.2.1 目的与任务:1.常务数据库设计和实现的基本过程2.常务数据库模式设计、分析和实现的方法3.了解数据库应用网站开发的一般过程1.2.2 实验基本要求:(1)学习相关的预备知识(2)按照数据库设计与实现过程完成数据库的设计,网站的开发,上级调试运行(3)写出课程设计报告1.2.3 开发环境说明:处理器:Intel Pentium 4 3.06以上内存:256以上操作系统:windows 2000/XP/win7开发软件:Myeclipse 8.5数据库:Mysql二、功能需求分析及模块设计2.1 总模块列表:三、数据库概念设计3.1 实体E—R图本实例根据上面的需求分析,设计规划出的实体有:用户实体、管理员实体、图书实体、订单实体、订单详情实体、图书类别实体。
学校教材订购系统需求分析说明书
学校教材订购系统软件需求规格说明书目录1.引言 (2)1.1 编写目的 (2)1.2 项目背景 (2)2.目标系统概述 (2)2.1 目标 (2)2.2 用户的特点 (2)2.3 假定和约束 (2)3.需求规定 (2)3.1 软件功能的规定 (2)3.1.1 系统功能 (2)3.1.2 数据流图 (3)3.1.3 数据字典 (5)3.1.4 E-R图 (7)3.2 对性能的规定 (7)3.2.1 精度 (7)3.2.2 时间特性要求 (7)3.2.3 可靠性 (7)3.2.4 灵活性 (7)3.2.5 数据管理能力要求 (8)3.2.6 故障处理要求 (8)3.2.7 其他专门要求 (8)4.运行环境规定 (8)4.1 设备 (8)4.2 支持软件 (8)4.3 接口 (8)4.4 控制 (8)1.引言1.1 编写目的随着生活节奏的加快和网络的发展,教师、学生对教材的订购越来越重视,希望获取教材的过程简单,方便,快速。
因而,做一个好的学校教材订购系统是十分重要的。
在本小组成员对系统进行了全面细致的分析后明确了该系统“做什么”,编写这份说明书的目的是将小组分析结果条理清晰的展示出来,它说明了本产品实现的各种功能以及各种功能的适用范围。
使小组成员充分认识本系统的情况,方便以后更好的开展具体工作。
本说明书主要提交给老师,小组成员和其他同学参考,以达到最终满足用户的要求,让用户满意。
1.2 项目背景项目名称:学校教材订购系统用户:学校教务科,教师,学生2.目标系统概述2.1 目标本系统可细化为两个子系统:销售系统和采购系统。
销售系统的工作过程为:首先由教师或学生提交购书单,经教材科发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。
若是脱销教材则生成缺书单。
采购系统的主要工作过程为:汇总缺书单,发采购单给书库采购人员;一旦新书入库后,即发到货通知。
2.2 用户的特点本软件的最终用户可分为操作人员、维护人员。
学校教材订购系统_需求分析
需求分析报告1.引言1.1 编写目的随着生活节奏的加快和网络的发展,教师、学生对教材的订购越来越重视,希望获取教材的过程简单,方便,快速。
因而,做一个好的学校教材订购系统是十分重要的。
在本小组成员对系统进行了全面细致的分析后明确了该系统“做什么”,编写这份说明书的目的是将小组分析结果条理清晰的展示出来,它说明了本产品实现的各种功能以及各种功能的适用范围。
使小组成员充分认识本系统的情况,方便以后更好的开展具体工作。
本说明书主要提交给老师,小组成员和其他同学参考,以达到最终满足用户的要求,让用户满意。
1.2 项目背景项目名称:学校教材订购系统项目提出者:XX(老师)项目开发者:XXX 用户:学校教务科,教师,学生运行环境:计算机开发平台:Eclipse、MySQL、JDK 1.61.3 定义Eclipse:适合快速开发的Java的开源IDE。
Java:一种面向对象的程序设计语言,具有面向对象、简单性、可移植性、稳定性、安全性等特点。
它最大的优势是不受平台限制,如.NET,VB,VC,C++只能在Windows环境中运行而Java却可以在任何平台中运行。
MySQL:高性能的开源的数据库。
1.4 参考资料1.《软件工程导论》(第四版) 张海藩,清华大学出版社,20032.《实用软件工程》(第二版) 郑人杰等,清华大学出版社,19974.《Java语言程序设计》马皓等,清华大学出版社,20063.《Eclipse使用教程》林峰等,东南大学出版社,20084.《MySQL使用手册》2.目标系统概述2.1 目标本系统可细化为两个子系统:销售系统和采购系统。
销售系统的工作过程为:首先由教师或学生提交购书单,经教材科发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。
若是脱销教材则生成缺书单。
采购系统的主要工作过程为:汇总缺书单,发采购单给书库采购人员;一旦新书入库后,即发到货通知。
学校教材订购系统概要方案说明书
学校教材订购系统概要设计说明书1引言1.1编写目的概要设计说明书编制的目的是:说明对程序系统系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。
1.2背景所建议开发的系统的名称:学校教材订购系统本工程的任务提出者:开始者:用户:学校教材管理部门和全校师生实现该软件的计算机网络:***工程与其他软件,系统的关系:本工程采用客户机/服务器原理,客户端的程序是建立在Windows 98 系统上以JAVA以及MySql数据库等为开发软件的应用程序。
1.3定义数据流图:数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。
系统的流程图:系统流程图是描绘物理系统的传统工具。
它的基本思想是用图形符号以黑盒子的形式描绘系统里的每个部件<程序,文件,数据库,表格,人工过程等)。
库存表:存放库中存在得书籍数据。
出库表:存放已销售的书籍的数据。
进库表:存放入库书籍的数据。
购书表:存放提交的购书信息。
缺书登记表:存放缺少的书籍的信息。
待购教材表:存放待购书籍信息。
1.4参考资料《实用软件工程》,张海藩著,清华大学出版社。
《软件工程》第二版,李代平等著,清华大学出版社。
《软件工程》第六版,Roger S.Pressman著,机械工业出版社。
《软件工程课程实验指导书》,安徽工程科技学院计算机科学与工程系。
2总体设计2.1需求规定本系统在向学生售书时主要输入学生学号、班级代号、购书数量、购书书名信息,然后打印领书单返回给学生领取书籍。
本系统在查询数据库时主要输入需要查询的相关信息,包括图书编号、图书书名、出版社信息、图书特色等信息方便操作人员把握图书信息。
教材订购系统的功能可以划分为如下几个部分:1)系统帐户管理:主要是对系统用户进行管理,包括登陆、退出、操作记录等。
2)订购管理:查询订购书、订购书籍、删除订购书籍、查询领书单。
数据库课程设计--教材购销管理系统
数据库课程设计--教材购销管理系统第一部分:引言欢迎阅读本篇文章,本文将介绍一个数据库课程设计的内容,即教材购销管理系统。
该系统旨在解决教育机构在购买和销售教材过程中可能面临的问题,提高教材管理的效率和准确性。
第二部分:系统概述教材购销管理系统是一个基于数据库的软件系统,旨在帮助教育机构管理教材的采购和销售。
该系统涉及多个模块,包括教材信息管理、库存管理、供应商管理、销售管理和统计报表等。
第三部分:教材信息管理教材信息管理是系统的核心模块之一,它主要负责记录和管理教材的相关信息。
教材信息包括教材名称、作者、出版社、版本号、销售价格等。
通过该模块,用户可以方便地查询和浏览教材的详细信息,同时也可以进行教材的新增、修改和删除操作。
第四部分:库存管理库存管理模块主要用于记录和管理教材的库存情况。
系统通过实时记录进货和销售的信息,自动计算库存数量,并提供库存报警功能。
当库存数量低于设定的阈值时,系统会及时提醒用户进行补货操作,以保证教材的供应。
第五部分:供应商管理供应商管理模块用于管理教材供应商的信息和合作关系。
系统提供了供应商信息的录入、编辑和删除功能,同时也可以记录供应商的联系方式和质量评价等。
通过该模块,用户可以随时查看供应商的相关信息,并选择合作伙伴进行教材采购。
第六部分:销售管理销售管理模块负责记录和管理教材的销售情况。
系统通过实时记录销售订单的信息,自动生成销售报表并计算销售额和销售量等指标。
该模块还提供了销售订单的查询、修改和删除功能,使用户能够更好地掌握教材的销售情况。
第七部分:统计报表统计报表模块用于生成各类统计分析报表,帮助用户更好地了解教材的销售状况和库存情况。
系统可以根据用户需求生成销售额、销售量、库存量等统计数据,并以图表的形式直观展示。
用户可以根据报表的结果进行决策和调整。
第八部分:总结通过本文的介绍,我们了解了教材购销管理系统的设计和功能。
该系统通过合理的数据库设计和各个模块的协调配合,可以帮助教育机构实现教材的高效管理。
学校教材订购系统详细设计
学校教材订购系统详细设计说明书1引言1.1 编写目的在学校教材订购系统需求分析中已明确了系统的主要功能,解决了系统“做什么”的问题,在概要设计阶段,我们对设计方案进行了概述。
在这个阶段,我们需要确定如何具体的实现所要求的系统,因此要详细设计系统的各个模块。
主要工作有:作出软件模块层次结构图,描述所有模块清单,从而在编码阶段可以把这个描述直接翻译成具体的程序语言书写的程序;设计数据库;设计页面。
1.2 背景a. 待开发的软件系统的名称:学校教材定购系统b.本系统是河北大学内部的一个教材订购系统,实现教材的销售和采购。
c.本项目由学校教材管理部门提出1.3 定义1.3.1专门术语库存表:存放库中存在得书籍数据。
出库表:存放已销售的书籍的数据。
入库表:存放入库书籍的数据。
购书表:存放提交的购书信息。
缺书登记表:存放缺少的书籍的信息。
待购教材表:存放待购书籍信息。
1.3.2 缩写系统:若未特别指出,系统指本“学校教材定购系统”。
1.4 参考资料《软件工程导论》—第五版清华大学出版社张海藩编著2程序系统的结构模块结构图略3程序描述3.1销售子系统模块具体描述销售系统的工作过程为:首先由教师或学生提交购书单,经教材科发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。
需要输入购书单中要求的信息(提交人姓名、书名、书号、数量、身份识别码)。
输出项目需要打印领书单(书名、书号、数量、领书人姓名),发票(书名、书号、开票人姓名、交易金额、交易日期)。
流程逻辑分析:由订书人员提交购书单后,经过审核,通过后提交成功,由工作人员开出发票,同时登记购书记录并审核无误后,发领书单,最后更新相应表项,如出库表,库存表,并进行审核修改。
接口:各模块过程之间采用函数调用、参数传递、返回值的方式进行消息传递。
具体参数的结构将在下面数据结构设计的内容中说明。
接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在模块之间传递。
数据库教材订购系统
《数据库原理》课程设计报告题目:姓名:学号:专业班级:指导老师:年月日摘要/*(300字左右,宋体,五号)课程设计内容摘要主要是对撰写过程中实践、实验、研究的内容、方法和得到的主要结果的完整概括。
关键词: /*(3 – 5个,各个词之间用“;”分割,宋体,五号,黑色)*/目录第1章引言 (3)1.1 项目背景 (3)1.2 项目定义 (3)1.3 开发环境 (3)第2章需求分析 (4)2.1 需求分析的目标与任务 (4)2.1.1 信息需求 (4)2.1.2 处理需求 (4)2.1.3 安全性和完整性要求 (4)2.2 需求分析阶段成果 (4)2.2.1 学校教材订书系统的业务流程图 (5)2.2.2 学校教材订书系统系统的功能模块图: (6)2.2.3 学校教材订书系统系统的数据字典 (6)第3章概念设计 (13)3.1 概念设计的目标与任务 (13)3.2 阶段结果 (13)3.2.1 属性与实体 (14)3.2.2 各子系统与分E-R图 (15)3.2.3 合并各分E-R图,得到总E-R图 (16)第4章逻辑设计 (17)4.1 逻辑设计的任务和目标 (17)4.2 阶段结果 (17)4.2.1 将E-R图转换为关系模型 (17)4.2.2 模型优化 (17)4.2.3 数据库模式定义 (18)4.2.4 用户子模式定义 (20)第5章物理设计 (21)5.1 物理设计阶段的目标与任务 (21)5.2 阶段结果: (21)5.2.1 存取方法设计 (21)5.2.2 存储结构的设计 (21)5.2.3 评价物理结构 (22)第6章数据库实施阶段 (23)6.1 建立数据库、数据表、视图、索引 (23)6.1.1 建立数据库 (23)6.1.2 建立数据表 (23)6.1.3 建立视图 (23)6.1.4 建立索引 (24)6.2 数据入库 (25)第7章系统调试和测试 (26)第8章设计心得 (27)第9章存在的问题及建议 (28)第10章参考文献 (29)第11章附录 (30)第1章引言1.1项目背景学校每年都会采购和发放各种教材,但目前这些工作基本都由人工操作完成。
学校教材订购系统设计
Eclipse:适合快速开发的Java的开源IDE。
Java:一种面向对象的程序设计语言,具有面向对象、简单性、可移植性、稳定性、安全性等特点。它最大的优势是不受平台限制,如.NET,VB,C++只能在Windows环境中运行而Java却可以在任何平台中运行。
Sql Server 2008:高性能的数据库。
并可对管理员的登录信息采用SHA加密技术。
4、物理设计
(1)将静态表与动态表分开存放
(2)将备份数据与现行数据进行分开存放
对于“学院表”,“专业表”,“学生表”,“老师表”这几个表,在整个系统运行过程中几乎没有更新,而更多是是查询,所以考虑在这几个表常用列上加索引,而具体的索引加入时该的实现可考虑由应用程序控制。
1.5.2系统数据流程图
1、教材订购系统
2、销售系统和采购系统
3.教材订购系统完整的数据流图
1.5.3功能介绍
销售系统的主要工作是:学院教材订购负责人根据教师提供的信息向系统输入教学用书表,在这之后,凡需要订购教材的学生可以通过学号密码登录系统输入订购教材的书名,数量等信息,提交购书单。经教材科发行人员审核是有效购书单后,登记并返给学生领书单,学生即可去教材发放人员处领书。若是脱销教材则生成缺书单。
高峰值:开学期间1000次/天
数据流名:入库单
别名:无
简述:新书入库清单
来源:书库采购人员
去向:库存表
组成:编号+数量
数据流量:1000次/周
高峰值:开学期间1000次/天
数据流名:进书通知
简述:详细的描述了进书的信息
组成:编号(数据库自动生成)+[书名+出版社+价格+数量]+采购日期+购数量
数据库-教材订购系统
《数据库原理》课程设计报告《数据库原理》课程设计报告题目:姓名:学号:专业班级:指导老师:年月日摘要/* ( 300字左右,宋体,五号)课程设计内容摘要主要是对撰写过程中实践、实验、研究的内容、方法和得到的主要结果的完整概括。
关键词 :/* ( 3 – 5 个,各个词之间用“;”分割,宋体,五号,黑色)*/目录第 1 章引言 (3)1.1 项目背景 (3)1.2 项目定义 (3)1.3 开发环境 (3)第 2 章需求分析 (4)2.1 需求分析的目标与任务 (4)2.1.1 信息需求 (4)2.1.2 处理需求 (4)2.1.3 安全性和完整性要求 (4)2.2 需求分析阶段成果 (4)2.2.1 学校教材订书系统的业务流程图 (5)2.2.2 学校教材订书系统系统的功能模块图: (6)2.2.3 学校教材订书系统系统的数据字典 (6)第 3 章概念设计 (13)3.1 概念设计的目标与任务 (13)3.2 阶段结果 (13)3.2.1 属性与实体 (14)3.2.2 各子系统与分E-R 图 (15)3.2.3 合并各分 E-R 图,得到总 E-R 图 (16)第 4 章逻辑设计 (17)4.1 逻辑设计的任务和目标 (17)4.2 阶段结果 (17)4.2.1 将 E-R 图转换为关系模型 (17)4.2.2 模型优化 (17)4.2.3 数据库模式定义 (18)4.2.4 用户子模式定义 (20)第 5 章物理设计 (21)5.1 物理设计阶段的目标与任务 (21)5.2 阶段结果: (21)5.2.1 存取方法设计 (21)5.2.2 存储结构的设计 (21)5.2.3 评价物理结构 (22)第 6 章数据库实施阶段 (23)6.1 建立数据库、数据表、视图、索引 (23)6.1.1 建立数据库 (23)6.1.2 建立数据表 (23)6.1.3 建立视图 (23)6.1.4 建立索引 (24)6.2 数据入库 (25)第 7 章系统调试和测试 (26)第 8 章设计心得 (27)第 9 章存在的问题及建议 (28)第 10 章参考文献 (29)第 11 章附录 (30)第1章引言1.1 项目背景学校每年都会采购和发放各种教材,但目前这些工作基本都由人工操作完成。
学校教材订购系统 数据库设计
数据库设计1 引言1.1预期的读者学校教材发行人员、书库采购人员、教职工等。
学校教材订购系统采用的是当前流行的中小企业级数据库MySQL ,使用的版本是5.1.40。
设计的数据库全局数据库名为 textbook ,开发用的表空间名为 textbook 。
1.2目的和作用将业务分析,系统设计中对信息的描述进一步分析并加以总计,抽象出数据库表。
对数据表做进一步分析,确定表之间的关系并最终形成数据库物理模型,以便开发人员建立物理数据库。
2数据库设计2.1概念结构设计概念设计以反映现实世界中的实体、属性和它们之间的关系等的原始数据形式。
图1是系统E - R 图。
教师和学生提交购书单审核教材发行人员领书书库脱销教材缺书单领书单返给开发票和登记书库采购人员属于发放进书通知单领取发给入库教材nnn1n1n11采购11m1111mppm1mmn图12.2逻辑结构设计数据库的逻辑结构设计是将各局部的E - R 图进行分解、合并后重新组织起来形成数据库全局逻辑结构,最后生成5张数据库表:arrival_book :新书通知表,可以进行教材入库统计和生成新书通知,和textbook 表是多对 一关联。
book_order:订单表,和textbook表是多对一关联。
book_receipt:领书单表,由已付款订单生成,和book_order表是一对一关联。
lack_book:缺书通知表,和textbook表是多对一关联。
textbook:教材数据表,包括教材的一些基本信息。
arrival_book属性名含义数据类型可否为空完整性约束id 入库单编号int(11) 否PRIMARY KEY textbookId 入库教材编号int(11) 否FOREIGN KEY amount 入库教材数量int(11) 否arrivalDate 入库日期varchar(20) 否book_order属性名含义数据类型可否为空完整性约束id 采购单编号int(11) 否PRIMARY KEY textbookId 采购教材编号int(11) 否FOREIGN KEY purchaser 采购人varchar(20) 否amount 采购教材数量int(11) 否orderDate 采购日期varchar(20) 否book_receipt属性名含义数据类型可否为空完整性约束id 领书单编号int(11) 否PRIMARY KEY bookOrderId 采购单编号int(11) 否FOREIGN KEY receiptNo 发票编号char(12) 否UNIQUE KEY paid 付款decimal(10,2) 否lack_book属性名含义数据类型可否为空完整性约束id 缺书编号int(11) 否PRIMARY KEY textbookId 缺书教材编号int(11) 否FOREIGN KEY amount 缺书数量int(11) 否lackDate 缺书日期varchar(20) 否textbook属性名含义数据类型可否为空完整性约束id 教材编号int(11) 否PRIMARY KEY title 教材名称varchar(40) 否tb_desc 教材描述varchar(400) 否price 教材价格decimal(10,2) 否amount 教材数量int(11) 否2.3物理结构设计信息存储结构的设计在系统的设计中至关重要,要考虑到数据冗余、系统执行效率、信息控制以及维护等方面的要求。
数据库平台 教材订购系统
package caoguimei;import java.awt.event.*;import javax.swing.*;public class baseManagerFrame extends JFrame implements ActionListener {// 系统管理员界面private static final long serialVersionUID = 1L;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btns = new JButton("出版社信息管理");JButton btnc = new JButton("书籍信息管理");JButton btnClose = new JButton("退出管理系统");JLabel l = new JLabel("基本档案管理员");@SuppressWarnings("deprecation")baseManagerFrame() {// 构造方法super("教材订购系统");setSize(205, 300);add("North", p1);add("Center", p2);p1.add(l);p2.add(btns);p2.add(btnc);p2.add(btnClose);btns.addActionListener(this);btnc.addActionListener(this);btnClose.addActionListener(this);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);show();}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "出版社信息管理")new CustomerManager("出版社信息管理").display();if (e.getActionCommand() == "书籍信息管理") {new ProductManager("书籍信息管理").display();}if (e.getActionCommand() == "订单信息管理") {new OrderManager("订单信息管理").display();}if (e.getActionCommand() == "退出管理系统") {System.exit(0);}}}package caoguimei;import java.awt.event.*;import javax.swing.*;publicclass businessManFrame extends JFrame implements ActionListener {// 教材订购员界面privatestaticfinallong serialVersionUID = 1L;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btnsc = new JButton("订单信息管理");JButton btng = new JButton("发书管理");JButton btnu = new JButton("签收管理");JButton btnClose = new JButton("退出管理系统");JLabel l = new JLabel("书籍订购员");@SuppressWarnings("deprecation")businessManFrame() {// 构造方法super("教材订购系统");setSize(205, 300);add("North", p1);add("Center", p2);p1.add(l);p2.add(btnsc);p2.add(btng);p2.add(btnu);p2.add(btnClose);btnsc.addActionListener(this);btng.addActionListener(this);btnu.addActionListener(this);btnClose.addActionListener(this);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);show();}publicvoid actionPerformed(ActionEvent e) {if (e.getActionCommand() == "订单信息管理") {new OrderManager("订单信息管理").display();}if (e.getActionCommand() == "发书管理") {new sendManager("发书管理").display();}if (e.getActionCommand() == "签收管理") {new ReceiveManager("签收管理").display();}if (e.getActionCommand() == "退出管理系统") {System.exit(0);}}}package caoguimei;publicclass Control {publicstaticvoid main(String[] args) {new DLFrame();}}package caoguimei;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class CustomerAdd extends JFrame implements ActionListener {// 用于出版社信息管理中增加或修改某条记录的界面private static final long serialVersionUID = 1L;JLabel l1 = new JLabel("出版社名称:");JLabel l2 = new JLabel("单位地址:");JLabel l3 = new JLabel("联系电话:");JLabel l4 = new JLabel("地址:");JLabel l5 = new JLabel("开户银行:");JLabel l6 = new JLabel("银行账号:");JTextField t1 = new JTextField(10);JTextField t2 = new JTextField(10);JTextField t3 = new JTextField(10);JTextField t4 = new JTextField(10);JTextField t5 = new JTextField(10);JTextField t6 = new JTextField(10);JButton btnOK = new JButton("确定");JButton btnCancel = new JButton("取消");JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;boolean isNewsm = true;// 用于判断是否显示出版社信息管理的界面@SuppressWarnings("deprecation")public CustomerAdd() {// 构造方法this.setTitle("增加");this.setBounds(300, 300, 225, 350);p.setLayout(new FlowLayout(FlowLayout.LEFT));p.add(l1);p.add(t1);p.add(l2);p.add(t2);p.add(l3);p.add(t3);p.add(l4);p.add(t4);p.add(l5);p.add(t5);p.add(l6);p.add(t6);p.add(btnOK);p.add(btnCancel);this.add(p);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();}public void connDB() {// 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:59414; DatabaseName=教材订购系统","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void insertst() {// 插入记录String x = null;String y = null;String z = null;String a = null;String b = null;String c = null;x = t1.getText();y = t2.getText();z = t3.getText();a = t4.getText();b = t5.getText();c = t6.getText();if (this.getTitle() == "修改") {// 如果是修改记录,先删除再增加try {this.connDB();@SuppressWarnings("unused")int rs1 = stmt.executeUpdate("delete from 出版社信息where 出版社名称='"+ x + "'");} catch (SQLException e1) {e1.printStackTrace();}}String str = "insert into 出版社信息values('" + x + "','" + y + "','" + z+ "','" + a + "','" + b + "','" + c + "')";this.connDB();// 连接数据库try {stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + "成功!", "提示",RMATION_MESSAGE, new ImageIcon("menu4.gif"));this.setVisible(false);} catch (SQLException e1) {JOptionPane.showMessageDialog(null, "出版社名称已存在!");t1.setText("");}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "确定") {this.insertst();if (isNewsm) {new CustomerManager("出版社信息管理").display();}isNewsm = true;}if (e.getActionCommand() == "取消") {this.setVisible(false);new CustomerManager("出版社信息管理").display();}}}package caoguimei;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;public class CustomerManager extends JFrame implements ActionListener {// 出版社信息管理private static final long serialVersionUID = 1L;JPanel p = new JPanel();JButton btnAdd = new JButton("增加");JButton btnDelete = new JButton("删除");JButton btnAlter = new JButton("修改");JButton btnSearch = new JButton("查询");JButton btnDisplay = new JButton("显示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();;JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object[][] playerInfo;CustomerSelect sst;String mxh = null;boolean bstd = false;CustomerManager(String title) {// 构造方法super(title);add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB(); // 连接数据库this.setBounds(300, 300, 600, 450);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);this.setResizable(false);show();}CustomerManager(CustomerSelect sst, String title) {// 构造方法super(title);this.sst = sst;bstd = true;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(300, 300, 600, 450);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);this.setResizable(false);show();}public void display() {// 显示所有出版社的基本信息int i = 0;int j = 0;List<String> al = new ArrayList<String>();try {rs = stmt.executeQuery("select * from 出版社信息");while (rs.next()) {// 找出表中的记录数赋给ial.add(rs.getString("出版社名称"));al.add(rs.getString("单位地址"));al.add(rs.getString("联系电话"));al.add(rs.getString("地址"));al.add(rs.getString("开户银行"));al.add(rs.getString("银行账号"));i++;}} catch (SQLException e) {e.printStackTrace();}playerInfo = new Object[i][6];String[] columnNames = { "出版社名称", "单位地址", "联系电话", "地址", "开户银行", "银行账号" };// "发票抬头",// "所在区域",try {rs = stmt.executeQuery("select * from 出版社信息order by 出版社名称");while (rs.next()) {playerInfo[j][0] = rs.getString("出版社名称");playerInfo[j][1] = rs.getString("单位地址");playerInfo[j][2] = rs.getString("联系电话");playerInfo[j][3] = rs.getString("地址");playerInfo[j][4] = rs.getString("开户银行");playerInfo[j][5] = rs.getString("银行账号");j++;}} catch (SQLException e) {e.printStackTrace();}sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:59414; DatabaseName=教材订购系统","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭数据库连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void delete() {// 删除某个出版社的基本信息String xh = null;String xm = null;@SuppressWarnings("unused")// /就是在后面没有使用的情况下也不会报错String xn = null;@SuppressWarnings("unused")String xp = null;@SuppressWarnings("unused")String xr = null;String xs = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {// 判断要删除的信息是否被选中JOptionPane.showMessageDialog(null, "请选择要删除的记录!");} else {if (!bstd) {// 判断选择的是不是查询后的结果int j1 = 0;try {rs = stmt.executeQuery("select * from 出版社信息");while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应xh = rs.getString("出版社名称");xm = rs.getString("单位地址");xn = rs.getString("联系电话");xp = rs.getString("地址");xr = rs.getString("开户银行");xs = rs.getString("银行账号");// xb = rs.getString("发票抬头");// yx = rs.getString("所在区域");j1++;}} catch (SQLException e) {e.printStackTrace();}int i1 = 0;try {@SuppressWarnings("unused")int rs1 = stmt.executeUpdate("delete from 出版社信息where 出版社名称='"+ xh + "'"); // 删除数据库中当前被选中的记录JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new CustomerManager("出版社信息管理").display();} catch (SQLException e) {e.printStackTrace();}} else {try {@SuppressWarnings("unused")int rs1 = stmt.executeUpdate("delete from 出版社信息where 出版社名称='"+ xh + "'");JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new CustomerManager("出版社信息管理").display();} catch (SQLException e) {e.printStackTrace();}}}}public void update() {// 修改某个出版社的基本信息String xh = null;String xm = null;String xn = null;String xp = null;String xr = null;String xs = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {JOptionPane.showMessageDialog(null, "请选择要修改的记录!");} else {int j1 = 0;try {if (!bstd) {// 判断选择的是不是查询后的结果rs = stmt.executeQuery("select * from 出版社信息");} else {rs = stmt.executeQuery("select * from 出版社信息where 出版社名称='"+ xh + "'");}while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应xh = rs.getString("出版社名称");xm = rs.getString("单位地址");xn = rs.getString("联系电话");xp = rs.getString("地址");xr = rs.getString("开户银行");xs = rs.getString("银行账号");j1++;}} catch (SQLException e) {e.printStackTrace();}CustomerAdd cadd = new CustomerAdd();cadd.setTitle("修改");cadd.t1.setText(xh);cadd.t2.setText(xm);cadd.t3.setText(xn);cadd.t4.setText(xp);cadd.t5.setText(xr);cadd.t6.setText(xs);cadd.t1.setEnabled(false);this.dispose();}}public void select() {// 显示某个查询的结果String mx;mx = sst.x;playerInfo = new Object[1][6];String[] columnNames = { "出版社名称", "单位地址", "联系电话", "地址", "开户银行", "银行账号" };// ,// "发票抬头",// "所在区域"try {rs = stmt.executeQuery("select * from 出版社信息where 地址='" + mx + "'");while (rs.next()) {playerInfo[0][0] = rs.getString("出版社名称");playerInfo[0][1] = rs.getString("单位地址");playerInfo[0][2] = rs.getString("联系电话");playerInfo[0][3] = rs.getString("地址");playerInfo[0][4] = rs.getString("开户银行");playerInfo[0][5] = rs.getString("银行账号");}} catch (SQLException e) {e.printStackTrace();}if (playerInfo[0][1] == null) {this.dispose();JOptionPane.showMessageDialog(null, "出版社地址不存在");new CustomerManager("出版社信息管理").display();} else {sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "增加") {new CustomerAdd();this.dispose();}if (e.getActionCommand() == "删除") {this.delete();}if (e.getActionCommand() == "修改") {this.update();}if (e.getActionCommand() == "查询") {sst = new CustomerSelect();this.dispose();}if (e.getActionCommand() == "显示") {this.dispose();new CustomerManager("出版社信息管理").display();}}}package caoguimei;import java.awt.event.*;import javax.swing.*;public class CustomerSelect extends JFrame implements ActionListener {// 用于出版社信息管理中查询时输入所在区域的界面private static final long serialVersionUID = 1L;JLabel ltitle = new JLabel("地址:");JTextField t1 = new JTextField(8);JButton btnOK = new JButton("确定");JPanel p = new JPanel();String x = null;@SuppressWarnings("deprecation")public CustomerSelect() { // 构造方法p.add(ltitle);p.add(t1);p.add(btnOK);add(p);this.setBounds(450, 420, 300, 240);btnOK.addActionListener(this);this.setResizable(false);this.show();}public void actionPerformed(ActionEvent e) {x = t1.getText();// 取得当前输入地址的值if (x.equals("")) {// 判断是否输入了值JOptionPane.showMessageDialog(null, "所在地址不能为空,请重新输入!");} else {this.dispose();new CustomerManager(this, "出版社信息管理").select();}}}package caoguimei;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class DLFrame extends JFrame implements ActionListener, ItemListener {// 登录界面private static final long serialVersionUID = 1L;JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel("用户:");JTextField txtUser = new JTextField();JLabel password = new JLabel("密码:"); JPasswordField txtPwd = new JPasswordField(6); JLabel role = new JLabel("角色:");JComboBox<String> cbrole = new JComboBox<String>(); JButton btnLogin = new JButton("登录");JButton btncz = new JButton("重置");JButton btnCancel = new JButton("取消");JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;@SuppressWarnings("deprecation")public DLFrame() {// 构造方法super("教材订购系统");p1 = new JPanel();p2 = new JPanel();p3 = new JPanel();cbrole.addItem("系统管理员");cbrole.addItem("基本档案管理员");cbrole.addItem("书籍订购员");image = new ImageIcon("picture\\st.jpg");imageLabel = new JLabel(image);p1.add(imageLabel); // /添加图片的位置this.setLayout(new FlowLayout());this.setBounds(150, 150, 450, 450);p2.setLayout(new GridLayout(4, 2));p2.add(userName);p2.add(txtUser);p2.add(password);p2.add(txtPwd);p2.add(role);p2.add(cbrole);p3.add(btnLogin);p3.add(btncz);p3.add(btnCancel);this.add(p1);this.add(p2);this.add(p3);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.show();btnLogin.addActionListener(this);cbrole.addItemListener(this);btncz.addActionListener(this);btnCancel.addActionListener(this);}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:59414; DatabaseName=教材订购系统","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void itemStateChanged(ItemEvent e) {if (e.getStateChange() == ItemEvent.SELECTED) {JComboBox<?> jcb = (JComboBox<?>) e.getSource();qxian = jcb.getSelectedIndex();}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e) {Object source = e.getSource();String un = null;String pw = null;boolean success = false;// 用于判断是否登录成功if (source == btnLogin) {if (txtUser.getText().equals("") || txtPwd.getPassword().equals("")) {// 判断是否输入了用户名和密码JOptionPane.showMessageDialog(null, "登录名和密码不能为空!");} else {this.connDB();try {rs = stmt.executeQuery("select * from unpw where qx="+ qxian);while (rs.next()) {un = rs.getString("un").trim();pw = rs.getString("pw").trim();if (txtUser.getText().equals(un)) {if (txtPwd.getText().equals(pw)) {actionCode = OK;this.setVisible(false);if (qxian == 0) {new sysManagerFrame();// 进入系统管理员界面}if (qxian == 1) {new baseManagerFrame();// 进入基本档案管理员界面}if (qxian == 2) {new businessManFrame();// 进入教材订购员界面}success = true;break;} else {JOptionPane.showMessageDialog(null, "密码错误!");txtPwd.setText("");success = true;}}}if (!success) {JOptionPane.showMessageDialog(null, "登录名错误!");txtUser.setText("");txtPwd.setText("");}} catch (SQLException e1) {e1.printStackTrace();}}} else if (source == btncz) {txtUser.setText("");txtPwd.setText("");} else if (source == btnCancel) {System.exit(0);}}}package caoguimei;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class OrderAdd extends JFrame implements ActionListener {// 用于订单信息管理中增加或修改某条记录的界面private static final long serialVersionUID = 1L;JLabel l1 = new JLabel("学院名称: ");JLabel l2 = new JLabel("联系人: ");JLabel l3 = new JLabel("联系电话: ");JLabel l4 = new JLabel("发货地址: ");JLabel l5 = new JLabel("最后到货期限:");JLabel l6 = new JLabel("书籍名称: ");JLabel l7 = new JLabel("所属类: ");JLabel l8 = new JLabel("数量: ");JLabel l9 = new JLabel("书籍要求: ");JTextField t1 = new JTextField(10);JTextField t2 = new JTextField(10);JTextField t3 = new JTextField(10);JTextField t4 = new JTextField(10);JTextField t5 = new JTextField(10);JTextField t6 = new JTextField(10);JTextField t7 = new JTextField(10);JTextField t8 = new JTextField(10);JTextField t9 = new JTextField(10);JButton btnOK = new JButton("确定");JButton btnCancel = new JButton("取消");JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;boolean isNewsm = true;// 用于判断是否显示订单信息管理的界面public OrderAdd() {// 构造方法this.setTitle("增加");this.setBounds(250, 250, 220, 600);p.setLayout(new FlowLayout(FlowLayout.LEFT));p.add(l1);p.add(t1);p.add(l2);p.add(t2);p.add(l3);p.add(t3);p.add(l4);p.add(t4);p.add(l5);p.add(t5);p.add(l6);p.add(t6);p.add(l7);p.add(t7);p.add(l8);p.add(t8);p.add(l9);p.add(t9);p.add(btnOK);p.add(btnCancel);this.add(p);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:59414; DatabaseName=教材订购系统","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void insertst() {// 插入记录String x = null;String y = null;String z = null;String a = null;String b = null;String c = null;String d = null;String e = null;String f = null;x = t1.getText();y = t2.getText();z = t3.getText();a = t4.getText();b = t5.getText();c = t6.getText();d = t7.getText();e = t8.getText();f = t9.getText();if (this.getTitle() == "修改") {// 如果是修改记录,先删除再增加try {this.connDB();int rs1 = stmt.executeUpdate("delete from 订单信息 where 学院名称='"+ x + "'");} catch (SQLException e1) {e1.printStackTrace();}}String str = "insert into 订单信息 values('" + x + "','" + y + "','" + z + "','" + a + "','" + b + "','" + c + "','" + d + "','" + e+ "','" + f + "')";this.connDB();// 连接数据库try {stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + "成功!", "提示",RMATION_MESSAGE, new ImageIcon("menu4.gif"));this.setVisible(false);} catch (SQLException e1) {JOptionPane.showMessageDialog(null, "学院名称已存在!");t1.setText("");}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "确定") {this.insertst();if (isNewsm) {new OrderManager("订单信息管理").display();}isNewsm = true;}if (e.getActionCommand() == "取消") {this.setVisible(false);new OrderManager("订单信息管理").display();}}}package caoguimei;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;public class OrderManager extends JFrame implements ActionListener {// 订单信息管理private static final long serialVersionUID = 1L;JPanel p = new JPanel();JButton btnAdd = new JButton("增加");JButton btnDelete = new JButton("删除");JButton btnAlter = new JButton("修改");JButton btnSearch = new JButton("查询");JButton btnDisplay = new JButton("显示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();;JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object[][] playerInfo;OrderSelect ost;String x = null;String y = null;String z = null;String a = null;String b = null;String c = null;String d = null;int e = 0;String f = null;boolean bstd = false;OrderManager(String title) {// 构造方法super(title);add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(300, 300, 600, 400);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);this.setResizable(false);show();}OrderManager(OrderSelect ost, String title) {// 构造方法super(title);this.ost = ost;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(300, 300, 600, 400);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);this.setResizable(false);show();}public void display() {// 显示所有订单信息int i = 0;int j = 0;List<Comparable> al = new ArrayList<Comparable>();try {rs = stmt.executeQuery("select * from 订单信息");while (rs.next()) {// 找出表中的记录数赋给ial.add(rs.getString("学院名称"));al.add(rs.getString("联系人"));al.add(rs.getString("联系电话"));al.add(rs.getString("发货地址"));al.add(rs.getString("最后到货期限"));al.add(rs.getString("书籍名称"));al.add(rs.getString("所属类"));al.add(rs.getInt("数量"));al.add(rs.getString("书籍要求"));i++;}} catch (SQLException e) {e.printStackTrace();}playerInfo = new Object[i][9];String[] columnNames = { "学院名称", "联系人", "联系电话", "发货地址", "最后到货期限","书籍名称", "所属类", "数量", "书籍要求" };try {rs = stmt.executeQuery("select * from 订单信息 order by 学院名称");while (rs.next()) {playerInfo[j][0] = rs.getString("学院名称");playerInfo[j][1] = rs.getString("联系人");playerInfo[j][2] = rs.getString("联系电话");playerInfo[j][3] = rs.getString("发货地址");playerInfo[j][4] = rs.getString("最后到货期限");playerInfo[j][5] = rs.getString("书籍名称");playerInfo[j][6] = rs.getString("所属类");playerInfo[j][7] = rs.getInt("数量");playerInfo[j][8] = rs.getString("书籍要求");j++;。
(完整版)教材订购系统
——学校教材订购系统
院系:
专业班级:
报告人:
指导教师:
实验地点: 教6-404
完成起止日期:12.18-12.30
学号
姓名
角色
成绩
组长
完成工作
结合三人讨论的草稿画出系统的顶层图、0 层图、结构图、Usecase 图、E-R图、顺序图和整个系统的类图。对Word部分编写包括:编码、测试、总结和参考文献。
4.3.2筛选候选对象 在外部实体中, 销售系统和采购系统同属于教材订购系统, 登录系统和信息 管理系统只是作为外部执行者参与创建和维护师生信息和教材信息。师生 、发 行人员、采购人员、表单都有明确的属性和操作,显然应该成为最终的对象。考 虑到表单又可分为购书单,领书单,缺书单、进书单、进/出库表等,因此增加 这些对象。综合上述分析,最终得到教材订购系统包含以下类:师生、教材发行 人员、教材采购人员、购书单,领书单,缺书单、进书单、进/出库表。
书目信息:书目信息的增加、删除、修改、查询。 用户管理:用户信息的增加、删除、修改、查询。 供应商管理:供应商信息的增加、删除、修改、查询。
采购管理,也称进货管理,负责处理从供应商采购图书的相关事务,完成图 书采购和采购查询。
图书采购:从供应商那里采收新书,或是补充旧书库存。 采购查询:查询历史采购记录。
4.1
经过前期的分析, 对需要开发的系统已经有了一个清楚的把握, 对系统的总 体结构也有了充分的了解。 该阶段要做的工作: 在需求分析的基础上对待开发的 系统各部分模块将要实现的功能进行详细的分析, 同时确定各个模块功能之间的 逻辑结构, 确定系统与用户间的交互方式、 操作顺序和交互界面的组成, 最后对 数据库进行设计。
《学校教材订购系统》.
LULIANG UNIVERSITY 软件工程课程设计题目:学校教材订购系统系别:计算机科学与技术系专业年级:2014级专升本14xx班姓名:xxx学号: 2014xxxxxx2015年10月28日目录第一章项目计划书 (3)第二章可行性研究分析 (4)第三章需求规格说明书 (5)第四章系统概要设计 (7)第五章系统详细设计说明书 (8)第六章系统测试说明书 (16)第七章项目结项总结 (20)第一章项目计划书1.1项目设计目的设计本项目的目的是根据对软件工程设计的学习,对学校教材订购人员需求进行了全面细致的分析,深入描述《学校教材订购系统》软件的功能和性能与界面,确定该软件设计的限制和定义软件的其他有效性需求。
为了明确项目开发的目标和要求,明确任务进度,熟悉项目开发的基本流程和规范要求。
1.2项目简介销售系统的主要工作过程为:首先由教师及学生提交购书单,经教材发行人员审核是有效购书单后,开发票,登记并返还给教师和学生领书单,教师和学生即可去书库领书。
采购系统的主要工作过程为:若是脱销教材,则登记缺书单给书库采购人员,一旦新书入库后,即发进书通知给教材发行人员。
1.3项目开发环境开发地点:吕梁学院新校区电教楼三层系统环境:Windows xp开发人员:袁琳娜1.4项目所需文档《项目开发计划书》、《项目需求分析规格说明书》、《系统概要设计》、《系统详细设计规格说明书》、《系统测试说明书》、《用户手册》、《会议记录》、《项目结项总结》。
1.5项目工作内容进度安排a)前期工作:完成项目可行性分析研究报告,制定开发计划,重点是完成项目的需求分析,总体设计,详细设计。
b)中期工作:编码实现需求功能,完成项目初步设计规格说明书和项目详细设计规格说明书。
c)后期工作:项目测试,维护。
第二章可行性研究分析2.1编写目的对学校教材订购系统进行可行性分析。
2.2可行性研究的前提a)功能:实现学校教材订购的最基本功能,进库和出库都有非常详细的记录,对所需书的名称和数量也有非常详细的记录,并且能发出提示信息。
数据库-教材购销管理系统
数据库课程设计1.要求:1)需求分析。
2)数据库设计。
2.1概念结构设计(E-R图)2.2逻辑结构设计(E-R模型转换为关系模式,指明所满足的范式并给出理由)。
2.3物理结构设计3)数据库实现。
(录入数据,每个表应不少于8条数据)4)数据库运行。
(不少于20条sql语句,其中包括查询、更新、删除、插入、授权、创建触发器等sql语句)教材购销管理系统1.需求分析教材购销管理系统:教材购销管理系统是帮助管理人员、教材销售和库存的管理软件。
该教材购销管理系统软件目前已有比较完善的管理与使用功能,该项目的用户是学校,开发本系统是为了教材购销管理系统更完善,为了教材购销对商品库存和销售的管理更方便,为了减轻工作人员的工作负担,以现代化的创新思维模式去工作。
系统的功能要求:销售子系统(1)审查有效性学生将购书单交给教材科秘书,秘书通过查阅各班学生用书表、售书登记表检查是否允许该生买书。
(2)开发票如果允许学生买书,教材科会计将按购书单查阅教材存量表,如果有书且数量够,则开交款发票,否则,将购书单中无法购买的书的信息写入缺书登记表,以备以后补售教材。
(3)登记并开领书单教材科出纳员根据发票上的总金额收取现金,并进行售书登记,同时开领书单,学生将领书单交给保管员,领书。
(4)补售教材采购部门进书后,教材科秘书根据进书通知和缺书登记表给没买到教材的学生发补售通知单。
采购子系统(1)教材入库采购员采购教材后,将进书单交给秘书,秘书修改教材库存和待购量。
(2)统计秘书每月按书号和出版社统计缺书,形成待购教材表和缺书单,供采购员采购时使用。
2系统设计2.1 概念结构设计E-R图是分为两部分实体和属性,每个实体可以有多个属性,这些属性用来表示实体的性质。
不同实体之间可以用关系进行连接,表明各个实体之间的内在联系。
实体和实体之间的关系有一对一的关系(1:1),一对多的关系(1:N)和多对多的关系(N:M)。
各个实体分E-R图如下图所示实体:教材,学生,购书单,教材库图1-1教材E-R图图1-3购书单E-R图图1-4教材库E-R图图1-2出版社E-R 图总体E-R 图及各个实体之间的关系如下图所示图2-1 教材购销管理E-R 图2.2 逻辑结构设计 E-R 图向关系模型的转换关系模型的逻辑结构是一组关系模式的集合。
教材订购系统
教材订购系统随着时代的进步,网络的应用已经相当普及,人们也认识到网络信息量大,传播方便快捷等特点,网上银行、网上商店、网上查分都应运而生。
需求促进了技术的发展,而在这其中,ASP技术则因为可以进行复杂的数据库操作、很强的交互性以及方便用户控制管理且简便易学而备受青睐,成为当前相当热门的网络开发技术。
ACCESS是一个真正的多用户,多线程的ACCESS数据库服务器。
是一个客户机/服务器结构的实现,它由一个服务器守护程序ACCESS和不同的客户程序和库组成。
由于其源码的开放性及稳定性,且与网站流行编程语言PHP的完美结合,很多站点都利用其作为后端数据库,获得了广泛应用。
本文首先介绍了ASP技术的工作原理、工作过程及其运行环境和ASP文件的编程特点,以及如何较好地配置ASP的需求环境,既使大家对ASP有更好的了解,同时也有利于更好地使用ASP技术。
其次,介绍了ACCESS数据库,包括ACCESS数据库数据类型和数据表,对ACCESS数据库数据操作的核心概念,即数据的添加、删除、修改和查询进行了简单的介绍。
关键词:ASP技术,ACCESS数据库,教材征订系统第一章引言在不断信息化的今天,网络已经成为人们生活不可缺少的一部分,它的出现使人能够很快的知道世界上发生的事.也可以为人们做很多的事, 所以各个领域、各个阶层都引进了计算机网络来为他们的企事业单位提高办事效益这是最平常最普遍不过的事.当然是由应用软件来实现这些功能的.因此利用ASP来开发本系统来体现他的网络性.开发本系统的目的是为了更好的对学校的教材进行管理,开发工具为:ASP+ACCESS数据库(网络版),实现的功能:用于学校的教学计划、教材征订。
可以制定所开设的课程,制定教学计划,制定教材计划,对教材进行需求统计,教材入库,出库管理。
可查询每个系的开课课程,所用教材,所需教材数量,对书库进行各种类型盘点,维护整个书籍库存。
并对书库的入库,出库的书籍进行实时跟踪,实现书籍的出入库落实到人。
校外培训学校教材订购系统数据库设计
学校教材订购系统数据库设计报告目录0. 文档介绍 (4)0.1 文档目的与范围 (4)0.2 读者对象 (4)0.3 参考文献 (4)0.4 术语与缩写解释 (4)1. 数据库环境说明 (5)2. 数据库的命名规则 (5)3. 逻辑设计 (5)4. 物理设计 (5)4.0 表汇总 (6)4.1.1用户登陆表(U SERLOGIN) (7)5. 安全性设计 (16)5.1 防止用户直接操作数据库的方法 (16)5.2 用户账号密码的加密方法 (16)5.3 角色与权限 (16)6. 优化方法 (16)7. 数据库管理与维护说明 (17)0. 文档介绍0.1 文档目的与范围0.2 读者对象0.3 参考文献提示:列出本文档的所有参考文献(可以是非正式出版物),格式如下:[标识符] 作者,文献名称,出版单位(或归属单位),日期例如:[AAA]作者,《立项建议书》,机构名称,日期[SPP-PROC-SD] SEPG,系统设计规范,机构名称,日期0.4 术语与缩写解释1. 数据库环境说明提示:(1)说明所采用的数据库系统,设计工具,编程工具等(2)详细配置2. 数据库的命名规则提示:(1)完整并且清楚的说明本数据库的命名规则。
(2)如果本数据库的命名规则与机构的标准不完全一致的话,请做出解释。
3. 逻辑设计提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。
如果采用面向对象方法(OOAD),这里实体相当于类(class)。
4. 物理设计提示:(1)主要是设计表结构。
一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。
逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。
(2)对表结构进行规范化处理(第三范式)。
4.0 表汇总4.1.1用户登陆表(Userlogin)4.3.1入库表(Bookbuyed)4.4.1信息发布表(Messagepub)4.5. 4.缺书登记表(Bookneeded)4.5.5待购教材表(Bookwanted)5. 安全性设计提示:提高软件系统的安全性应当从“管理”和“设计”两方面着手。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理》课程设计报告题目:姓名:学号:专业班级:指导老师:年月日摘要/*(300字左右,宋体,五号)课程设计内容摘要主要是对撰写过程中实践、实验、研究的内容、方法和得到的主要结果的完整概括。
关键词: /*(3 – 5个,各个词之间用“;”分割,宋体,五号,黑色)*/目录第1章引言 (4)1.1 项目背景 (4)1.2 项目定义 (4)1.3 开发环境 (4)第2章需求分析 (5)2.1 需求分析的目标与任务 (5)2.1.1 信息需求 (5)2.1.2 处理需求 (5)2.1.3 安全性和完整性要求 (5)2.2 需求分析阶段成果 (6)2.2.1 学校教材订书系统的业务流程图 (6)2.2.2 学校教材订书系统系统的功能模块图: (7)2.2.3 学校教材订书系统系统的数据字典 (7)第3章概念设计 (19)3.1 概念设计的目标与任务 (19)3.2 阶段结果 (19)3.2.1 属性与实体 (20)3.2.2 各子系统与分E-R图 (21)3.2.3 合并各分E-R图,得到总E-R图 (22)第4章逻辑设计 (23)4.1 逻辑设计的任务和目标 (23)4.2 阶段结果 (23)4.2.1 将E-R图转换为关系模型 (23)4.2.2 模型优化 (24)4.2.3 数据库模式定义 (24)4.2.4 用户子模式定义 (28)第5章物理设计 (30)5.1 物理设计阶段的目标与任务 (30)5.2 阶段结果: (30)5.2.1 存取方法设计 (30)5.2.2 存储结构的设计 (31)5.2.3 评价物理结构 (31)第6章数据库实施阶段 (32)6.1 建立数据库、数据表、视图、索引 (32)6.1.1 建立数据库 (32)6.1.2 建立数据表 (32)6.1.3 建立视图 (33)6.1.4 建立索引 (33)-6.2 数据入库 (35)第7章系统调试和测试 (36)第8章设计心得 (37)第9章存在的问题及建议 (38)第10章参考文献 (39)第11章附录 (40)第1章引言1.1 项目背景学校每年都会采购和发放各种教材,但目前这些工作基本都由人工操作完成。
但是为了配合老师上课的需要,教材发放的速度必须很快。
因此,在教材发放的过程中,极易造成教材的损失。
并且由于都是手工管理的方式,极易造成一些单据的损失。
所以为了提高管理效率以及人力、物力的节省,利用计算机及设计教材订购系统就不失为一种好方法。
1.2 项目定义主要是针对大学生教材订购。
完成学生对哪些教材需要数据的录入,以及对学生购书单数据和发货单数据的存储。
1.3 开发环境运行环境:Mysql以及java程序数据库:MYSQL第2章需求分析2.1 需求分析的目标与任务2.1.1信息需求用户需要输入自己想要的书籍以及数量。
需要存储的是购书数量,购书者,采购者,采购数量。
以及发货者和发货数量。
2.1.2处理需求用户需要完成什么处理功能,对处理的响应时间有什么要求。
给出功能模块图,画在需求分析阶段成果中。
2.1.3安全性和完整性要求1)安全性要求安全性可先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性。
2)完整性要求系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外键,使用check 约束,或者通过使用触发器和级联更新。
2.2需求分析阶段成果2.2.1XX系统的业务流程图2.2.2XX系统的功能模块图:2.2.3XX系统的数据字典(a)数据项:数据项是不可再分的数据单位,即数据的最小组成单位。
例:表1.1 数据项列表数据项编号数据项名数据项含义与其它数据项的关系存储结构DI-1S_ID学号VARCHA数据项编号数据项名数据项含义与其它数据项的关系存储结构R(10)DI-2S_NAME学生姓名VARCHAR(20)DI-3TELEPHONE 电话号码VARCHAR(2)DI-4TYPE所在系VARCHAR(20)DI-5T_ID老师职工号VARCHAR(10)DI-6 T_NAME老师姓名VARCHAR(20)DI-7BOOK_ID书籍编号VARCHAR(10)DI-8BOOK_NAME 书籍名VARCHAR(30)DI-9BOOK_PUBDATE 出版日期DATETIME号的关系DI-10BOOK_WRITER 作者VARCHAR(10)DI-11BOOK_PUB出版社VARCHAR(30)DI-12WORKER_ID 工作人员编号VARCHAR(10)DI-13WORKER_NAME 工作人员姓名VARCHAR(10)DI-14BUYBOOK_NUMBER购书数量INTDI-15BUYBOOKDATE 购书日期DATETIMEDI-16IACKBOOK_NUMBER缺书数量INTDI-17LAKEBOOK_DATE 提交缺书单日期DATETIMEDI-18INBOOK_D进书日期DATETI号的关系ATE ME DI-19INBOOK_NUMBER进书数量INT DI-20TAKEBOOK_NUBER领书数量INTDI-21TAKEBOOK_DATE 领书日期DATETIMEDI-22SENDBOOK_DATE 发货日期DATETIMEDI-23SENDBOOK_NUMBER发货数量INT(b)数据结构:数据结构反映了数据之间的组合关系。
一个数据结构可以由若干个数据项组成,也可以由若干个数据项和数据结构混合组成。
例:表1.2 数据结构列表数据结构编号数据结构名数据结构含义组成DS-1STUENTINFOR学生信息S_ID,S_NAME,TELEPHONE, TYPEDS-2BOOKINFOR书籍信息BOOK_ID, BOOK_NAME, BOOK_PUBDATE,BOOK_WRITER, BOOK_PUBDS-3BOOKBUYINFOR 购书单信息BOOK_NAME,BUYBOOK_NUMBER,BUYBOOKDATEDs-4LACKBOOKIN 缺书单信息BOOK_NAME,IACKBOOK_NUMBER,LAKEBOOK_DATEDs-5 PUBPEOINF发行人员信息WORKER_NAME, WORKER_ID, TELEPHONE Ds-6 SENDINF 发货单信息BOOK_NAME, SENDBOOK_DATE, T_NAME,SENDBOOK_NUMBERDs-7BOOKWORKER书库工作人员信息WORKER_NAME, WORKER_ID, TELEPHONE Ds-8PURCHAR采购人员信息WORKER_NAME, WORKER_ID, TELEPHONE数据结构编号数据结构名数据结构含义组成Ds-9TAKEBOOKINF 领书单信息BOOK_NAME,TAKEBOOK_NUBER,TAKEBOOK_DATEDs-10INBOOKINF进书单信息BOOK_NAME,INBOOK_NUMBER,INBOOK_DATEDFD流程图学校教材订购数据流程图(c)数据流:数据流是数据结构在系统内传输的路径。
数据流编号名称简述来源去向组成A1购书单教师递交的购书单教师购书单审核模块BOOK_NAME,IACKBOOK_NUMBERA2领书单系统生成的领书单生成领单和生成领书单数据处理模块书库发货人员BOOK_NAM,TAKEBOOK_NUBER,TAKEBOOK_DATEA3发货单系统生成的发货单生成发货单数据和发货单的处理模块教材发行人员和教师BOOK_NAME, SENDBOOK_DATE,T_NAME, SENDBOOK_NUMBERA4缺书单系统生成的缺书单生成缺书单数据和缺书单处采购人员BOOK_NAME,IACKBOOK_NUMBER理模块A5进货单系统生成的进货单生成进货单数据和进货单的处理模块教材发行人员WORKER_NAME,WORKER_ID,TELEPHONEA5书籍信息教材发行人员管理教材发行人员修改库存和书籍信息处理模块BOOK_ID,BOOK_NAME,BOOK_PUBDATE, BOOK_WRITER,BOOK_PUB(d)数据存储:数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。
它可以是手工文档或手工凭单,也可以是计算机文档。
数据存储编号名称简述组成D1购书表存放购书数据的表格BOOK_NAME,BUYBOOK_NUMBER, BUYBOOKDATED2领书表存放所要领书数据的表格BOOK_NAME,TAKEBOOK_NUBER,TAKEBOOK_DATED3发货表存放要发放书籍信息的表格BOOK_NAME, SENDBOOK_DATE, T_NAME, SENDBOOK_NUMBERD4缺书表存放缺的书籍信息的表格BOOK_NAME,IACKBOOK_NUMBERD5进货表存放要进书籍信息的表格BOOK_NAME,INBOOK_NUMBER,INBOOK_DATE(e)处理过程:处理过程的具体处理逻辑一般用判定表或判定树来描述。
数据字典中只需要描述该处理过程的说明性信息。
处理逻辑编号名称输入数据流处理输出数据流B1审核购书单购书单对购书单进行处理看看有没有缺书审核后的购书单B2生成领书单数据购书单数据通过查看购书单领书单和领书单和领书单数据,生成领书单和领书单数据数据B3生成发货单数据和发货单领书单数据通过领书单数据给仓库,从而产生发货单数据和发货单发货单和发货单数据B4与库存进行比较,从而生成缺书单数据和缺书单审核后的购书单购书单与库存进行比较,缺少某些书,从而形成缺书吧单和缺书数据缺书单和缺书单数据B5生成进货单数据和进货单缺书单数据通过缺书单数据可知缺少哪些书,从而产生要进哪些货进书单和进书单数据B6修改库存和书籍信息书籍信息通过进书单、领书单和发货单,知道少了哪些书和进了哪些书,进行库存的修改概念设计2.3 概念设计的目标与任务(1)设计分E-R图…;(2)生成初步E-R图…;(3)生成基本E-R图…;(4)生成全局E-R图…;实体与属性间的两条准则:○1作为“属性”,不能再具有需要描述的性质。
○2“属性”不能与其他实体具有联系。
抽象出实体与属性,画出各子系统的分E-R图。
然后采用逐步集成的方式将各分E-R图合并,消除不必要的冗余和冲突后就生成了基本E-R图3.5。
2.4 阶段结果2.4.1属性与实体2.4.2各子系统与分E-R图销售子系统订购子系统2.4.3合并各分E-R图,得到总E-R图第3章逻辑设计3.1 逻辑设计的任务和目标以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。