数据库系统概论课程设计教材购销管理系统目录1.设计时间 (3)2.设计目的 (3)3.设计任务 (3)4.设计内容 (3)4.1.需求分析 (3)4.2.概念结构设计 (5)4.3.逻辑设计 (8)4.4.数据库表空间和表结构设计 (8)4.5.数据库的实施 (10)4.6.创建其它数据库对象 (13)5.总结与展望 (14)参考文献 (15)1.设计时间2.设计目的本项目的任务是教材购销管理系统软件开发,用户是学校。
教材购销管理系统:教材购销管理系统是帮助管理人员、教材销售和库存的管理软件。
制定、采购、入库、发放、记账、结算等一系列工作所组成,该工作各院校都设有专门机构负责该项工作,通常是教材科。
3.设计任务现今教材购销管理的烦琐给具有强烈时间观念的行政人员带来了诸多不便,为了对教材销售和管理教材库存方便,因此开发了本软件。
该教材购销管理系统软件目前已有比较完善的管理与使用功能,研制教材购销管理系统软件是为了满足对教材购销和库存管理的方便,以现代化的创新思维模式去工作。
4.设计内容4.1. 需求分析需求分析表为了查询教材购销的全部信息。
4-2销售管理子系统4-.3采购管理子系统4.2. 概念结构设计4.-1代购教材E-R图:图14-2学生E-R图:图2 4-3教材存量E-R图:图3 4-4教材一览表E-R图:图44-5缺书单E-R图图5 4-6缺书登记E-R图图6 4-7售书登记E-R图图74-8.综合E-R图教材购销管理综合ER图图84.3. 逻辑设计教材一览表(书号,书名,出版社,地址,电话,单价,数量)各班学生用书表(班级,书号,书名,数量)售书登记表(学号,姓名,书号,数量)缺书登记表(学号,姓名,书号,数量)待购教材表(书号,数量)缺书单(书号,数量,出版社,地址,电话)4.4. 数据库表空间和表结构设计表4-1 学生用书表student_book字段名称中文名称长度类型是否为空主关键字sbno 书号10 Char t() no Y sbname 书名30 Char() no no sbnmber 数量30 Char() no no sbclass 班级10 char() no no表4-2 售书登记表BUYBOOK_BB字段名称中文名称长度类型是否为空主关键字bno 学号10 char() no Ybname 姓名10 char() no nobno 书号10 char() no no bnumber 数量30 char() no no表4-3缺书登记表stack room_sr字段名称中文名称长度类型是否为空主关键字sno 学号20 Char() no Y sname 姓名8 Char() no nosno 书号8 Char() no no snumber 数量8 Char() no no表4-4 教材存表book_list列名含义长度类型是否为空主关键字lno 书号8 Char() no Y lnumber 数量8 Char() no nolprice 单价8 Float() no no表4-5 教材一览表publish字段名称中文名称长度类型是否为主关键字pno 书号8 Char() no Y ppublisher 出版社8 Char() no no Pphone 电话8 Char() no no padd 地址8 Char() no no pname 书名8 Char() no表4-6 代购教材表instead字段名称中文名称长度类型是否为空主关键字ino 书号8 Char() no Y inumber 数量8 Char() no no表4-.7 缺书单lost_book字段名称中文名称长度类型是否为空主关键字lbno 书号8 Char() no Y lbpublisher 出版社8 Char() no no lbphone 电话8 Char() no no lbadd 地址8 Char() no no lbname 书名8 Char() no4.5. 数据库的实施例行事务需求1.学生买书查询买书信息,2.采购新书采购部门进书后,教材科秘书根据进书通知和缺书登记表给没买到教材的学生发补售通知单。
查询事务需求1.查询学生的买书情况根据学生学号查询买书信息2.查询是否有满足学生要的书查询某种书的数量查询某一书何时会到货3.报表需求缺书登记表:学号、姓名、书号、数量教材存量表:书号、单价、数量待购教材表:书号、数量缺书单:书号、数量、出版社、地址、电话教材一览表:书号、书名、出版社、地址、电话各班学生用书表:班级、书号、书名、数量SELECT distinct sclass,BNO,BNAME,BBamountFROM STUDENT, BUYBOOK_BBWHERE BUYBOOK_BB.bbno=STUDENGT.no售书登记表:学号、姓名、书号、数量SELECT sno,sname,Bno,BBamountFROM STUDENT, BUYBOOK_BBWHERE BUYBOOK_BB.bbno=STUDENGT.no缺书登记表:学号、姓名、书号、数量SELECT sno,sname,Bno,BBamountFROM STUDENT, BUYBOOK_BBWHERE BUYBOOK_BB.bbno=STUDENGT.no andBUYBOOK_BB.bbno=stack room,bnoAnd BUYBOOK.bbamount >stackroom.sramount教材存量表:书号、单价、数量SELECT bno, BPRICE,sramountFROM book, stackroomWHERE BOOK. bno=stackroom.no待购教材表:书号、数量SELECT sno,sname,Bno,BBamountFROM STUDENT, BUYBOOK_BBWHERE BUYBOOK_BB.bbno=STUDENGT.no and BUYBOOK_BB.bbno=stack room,bnoAnd BUYBOOK.bbamount >stackroom.sramount缺书单:书号、数量、出版社、地址、电话SELECT bno, BBamount, Ppublisher,BBamount,,Pphone FROM STUDENT, BUYBOOK_BBWHERE BUYBOOK_BB.bbno=STUDENGT.no and BUYBOOK_BB.bbno=stack room,bnoAnd BUYBOOK.bbamount >stackroom.sramount(12)教材一览表:书号、书名、出版社、、电话SELECT bno,bname, Ppublisher, padd,PphoneFROM BOOK,publishWHERE BOOK。
bno= publish.Pno4.6. 创建其它数据库对象4.6.1、视图某种商品的销售量和库存量的视图GREATE VIEW COMMODITY (CNO,CNAME,MARKET,LIST)ASSELECT RESERVR .CNO,RESERVR .CNAME,SUM(QUANTITY),LIST FROM RESERVR ,BILLGROUP BY O4.6.2、触发器定义一个触发器,当商品库存表中,供货商为空时,自动改为”本店制作”。
CREATE TRIGGER UDLISTBEFORE UPDATE OR TNSERT ON RESERVRFOR EACH ROWAS BEGINIF PROFESSINAL IS NULL THENPROFESSINAL:=’本店制作’;END IF;END;4.6.3、存储过程利用存储过程来实现,当某商品卖出时,它的商品库存量相应的减少.CREATE PROCEDURE SELL ( BCNO CHAR, QLIST INT)AS DECLAREBEGINSELECT TISTFROM RESERVEWHERE BCNO =O;IF LIST IS NULL THENROLLBACK;RETURN;END IF;IF LIST<QUANTITY THENROLLBACK;RETURN;END IF;UPDATE RESERVESET LIST=LIST-QLISTWHERE BCNO=O;COMMIT;END;5.总结与展望在这次设计过程中,我学到的不仅是知识,还学会了做什么事情要耐心、细心。
在设计时,总会有一些错误出现,如:没有确定好哪个是主码,编写的时候学“;”或者是属性发生冲突等。
这些都是自己的不认真而产生的。
通过此次编程,我对数据库相关知识的连接有了不少的认识,是一次很好的锻炼机会。
但是我必须承认我自己的能力和知识还是不够深入,今后我的学习还是很漫长的。
但我会吸取这次的经验和问题,争取在以后的设计中不断改进,不断完善。
参考文献[1] 数据库系统概论(第四版)王珊萨师煊高等教育出版社。
[2] Nelson M,Mattons.SOL3-新的SQL标准,新一代对象关系数据库.IBM数据库通用技术,1999。
[3]周立柱,冯建华,孟小峰.SQL Server数据库原理[M],清华大学出版社,2004.5。
[4]SQL Server 2000数据库及应用[M]人凤, 曾建华, 高等教育出版社2004.5。