《数据库设计教材管理系统(共53页).doc》由会员分享,可在线阅读,更多相关《数据库设计教材管理系统(共53页).doc(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据库系统原理课程设计2011年12月 10 日目录教材管理系统设计1、系统概述开发该教材管理系统是为了更好地管理学校的各类教材,便于教材管理人员订书、领书、查询教材资料及其书款情况。使教材信息管理工作系统化、规范化、自动化,从而达到提高教材管理效率的目的。教材管理系统主要提供学生以班级为单位能从学校教材管理中心完成每学期领到所订教材的功能,其中包括班级信息、教材管理员信息、财务室信息、教师信息、教材信息、出版社信息。此系统可以让教师增加、删除和修改某一学期所定的教材信息,教材管理员可以依据教师提供的应订教材要求和出版社联系订书,还可以让出版社增加、删除和修改预定教材
2、的信息。如果信息无误,财务室根据学生交的教材费给教材管理员拨款,订书成功后,开学初可以将所定教材成功发放给学生所在班级。系统实现功能描述本系统应该实现的功能如下:1、系统管理模块:首先是对本系统的操作用户设置权限以及用户基本信息的添加、修改、删除其次是设置有系统初始化,能够在系统出现问题或者有大量错误、冗余数据时进行初始化设置,使系统恢复期初始状态;2、书费管理局模块:财务科根据学生订书情况和教材费用收缴学生订书费用,并记录相应的数据;3、教材出入库模块:教材科根据学生订书数量和教材基本信息想学生发放教材的出库管理和向书商下达供书订单并打印教材报表,便于用户直接查看;4、综合查询模块:根据用户
3、的类型和需求查询教材的库存信息,班级信息以及费用收缴信息;5、统计分析模块:录入班级信息闭和教师单位信息并设置打印报表功能供用户查看然后操作员根据订书情况统计分析学生买书的人数比例和学生不购买教材的原因分析,一次给校方提供相应的数据,便于改进学校的教材管理措施,满足学生对教材的需求;6、 帮助模块:介绍本系统的相关信息和操作指南。1、2、2、需求分析教材管理是教学管理中的组成部分,一般学校的教材管理模式是在学年制基础上以班级为单位进行处理的。院校的教材管理随着学生规模的日益增大、教材日益多样化、学生个人之间教材差异越来越大的现实面前已呈现出无法应对的局面。因此,建立一套与选课相配套的教材管理模
4、式和管理系统具有十分重要的意义和实际应用的迫切性,而且现有的条件、管理理念和技术水平已使之成为可能。(1)班级信息班级交费财务管理员修改信息删除信息登记信息领书班级信息操作流程图1. 教材管理员信息教材管理员管理教材删除信息修改信息登记信息发书 教材管理员信息操作流程图2. 财务管理员信息财务管理员拨款教材管理员登记信息删除信息修改信息购买教材 财务管理员信息操作流程图3. 教师信息教师选定教材修改人数删除人数统计人数预订教材 教师信息操作流程图4. 教材信息教材分类班级删除领取信息修改领取信息登记领取信息被领取 教材信息操作流程图整理信息联系购买商被订购分类出版教材出版社5. 出版社信息 出
5、版社信息操作流程图三、概念模型设计从课程设计选题中可以得知,我们设计的教材管理系统数据库需具备以下功能:(1)可随时查询教材库中订购的教材的种类、数量、订购班级。(2)可随时查询班级某一学期订购教材的情况。包括订购班级、教材号、教材名称、教材数量、书费等。(3)当需要时,可通过数据库中保存的出版社电话、邮编及地址等信息向有关书籍的出版社增购有关教材。(4)查询某种教材被哪些班级订购过(显示班级号、班级名称、班级人数、领书状态)。(5)查询出版某书籍的出版社的出版社名、电话、地址(6)查询各种图书借阅次数(显示书名,书号,借阅次数)。(7)查询图书所属出版社的相关信息(显示书名,书号,出版社名,
6、电话,邮编,地址)(8)查询书库中某种类书籍的书名、书号(9)查询借阅了多种图书的读者的姓名、借书证号(10)查询某书架上放置的图书的书名、书号、数量(11)查询作者投稿的出版社的出版社名、出版社电话、地址(12)查询读者投稿时间、出版社名在普通教材的管理应用中,一般的流程有以下几个:1、管理员可以对用户进行管理,如添加用户,分配用户的角色,如“普通用户” 、“用户管理员” ;删除用户信息;修改用户信息。2、每个班级将需要订购的教材费用交由财务科科,财务科再通知教材科,根据上报的教材数量找到供应商订购教材,并详细记录教材信息。3、每个班级按照缴费情况,到教材科领书,并记录领取信息。并且教材管理
7、处根据教库存信息决定是否订购书。4、校方高层管理人员可在学校教材发放完毕后根据教材科和财务科所提供的学生购书人数比例。5、当系统出现异常、人为故障时,或者在使用过程中出现了大量的冗余、错误数据时,可通过系统初始化设置使系统恢复初始状态。其系统流程图如下图所示:各院、系领取教材单领教材通知教材管理处定货单入库单出版社财务科收缴书费通知发书库存报表学校班级信息报表统计分析表2.3 教材系统的数据流图数据流程图 2.3.3 E-R图班号专业管理员号n姓名1所属院系班级财务管理员员交费1学校名称性别人数预收费用拨款n应付费用n管理员号n姓名管理使用教材管理员ISBN mm性别教材名n作者教材所属类别预
8、定11价格专业选定m来源nn教师编号出版社教师姓名出版社名商标号所在省市性别所选教材所教课程2.4 数据字典2.4.1把各数据项的描述信息按下表格式组成数据字典班级表的结构字段名数据类型说明班级名文本(索引)主键,字段大小为20入学时间日期/时间所在院系文本字段大小为20班长文本字段大小为8班长联系电话文本字段大小为20班主任文本预算科目代码,字段大小为8班主任联系电话文本预算科目代码,字段大小为20操作员文本业务金额,字段大小为8最后修改时间日期/时间书费货币所学专业文本字段大小为20班级总人数数字整型买书人数数字整型单位信息表的结构字段名数据类型说明单位名文本(索引)主键,字段大小为20负
9、责人文本字段大小为8联系电话文本字段大小为50书费货币操作员文本字段大小为8最后修改时间日期时间学生书费历史表的结构字段名数据类型说明班级名文本字段大小为20上期费用货币本次费用货币本期费用货币经办人文本字段大小为8上期数量数字整型本次数量数字整型操作员文本字段大小为8最后修改时间日期时间说明文本字段大小为50班级人数数字整型id自动编号主键,长整型 递增教材表的结构字段名数据类型说明教材名文本字段大小为50出版社文本字段大小为50作者文本字段大小为8获奖情况文本字段大小为50出版年月日期时间订书单位文本字段大小为50经办人文本字段大小为8教材数量数字整型教材单价货币使用说明文本字段大小为50
10、入库时间日期时间说明文本字段大小为50操作员文本字段大小为8最后修改时间日期时间Id自动编号主键,长整型 递增教材出入库历史表的结构字段名数据类型说明教材名文本字段大小为50出版社文本字段大小为50获奖情况文本字段大小为50出版年月日期时间经办单位文本字段大小为50经办人文本字段大小为8上期数量数字整型本次数量数字整型本期数量数字整型教材单价货币使用说明文本字段大小为50入库时间日期时间说明文本字段大小为50操作员文本字段大小为8最后修改时间日期时间id自动编号主键,长整型 递增操作用户表的结构字段名数据类型说明用户名文本主键,字段大小为8密码文本字段大小为8所在单位文本字段大小为50权限一是
11、/否管理权权限二是/否收费权权限三是/否出入库权权限四是/否查询权操作员文本字段大小为8最后修改时间日期/时间不购书原因记录字段名数据类型说明班级名文本主键所在专业文本字段大小为50太贵数字整型与专业不符数字整型没必要数字整型其他数字整型2.4.2数据库关联图第3章 总体设计3.1 软件设计流程图3.2 软件功能模块图图3.2.1 软件功能模块图对象如下:3、(1)班级班级领书过程图(2)教材管理员教材管理员的工作流程图(3)财务室(4)教师(5)教材(6)出版社处理要求及功能(1)能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括: 图书信息的录入、删除及修改。
12、 图书信息的多关键字检索查询。 图书的出借和返还。(2)能够对一定数量的读者进行相应的信息存储与管理,这其中包括: 读者信息的录入、删除及修改。 读者资料的统计与查询。(3)能够对一定数量的出版社进行相应的信息存储与管理,这其中包括: 出版社信息的录入、删除及修改。 出版社资料的统计与查询。(4)能够对一定数量的书架进行相应的信息存储与管理,这其中包括: 书架信息的录入、删除及修改。 书架资料的统计与查询。(5)能够对一定数量的作者进行相应的信息存储与管理,这其中包括: 作者信息的录入、删除及修改。 作者资料的统计与查询。(6)对查询、统计的结果能够列表显示。4、 概念模型设计根据数据对象各实
13、体的属性先设计出局部E-R图,然后设计出出总体E-R图,最后解决各局部E-R图间的冲突问题。5、数据库需要表达的信息有以下几种:设计分步E-R图如下:(1)班级信息(2)教材管理员信息(3)财务室信息(4)教师信息(5)教材信息(6)出版社信息数据字典(略)设计总E-R图如下:4、逻辑设计6、通过E/R模型到关系模型的转化,可以得到如下关系模式:(1)Class(ID,College,Depart,Major,Members,Costs)(2)TestbookManager(ID,Name,Sex)(3)FinanceManger(ID,Name,Sex,Incomes)(4)Teacher(
14、ID,TName,Sex,Classname, Testbook)(5)Testbook(ISBN,Bookname,Autuer,Type,Price,Major)(6)Publisher(ID,Pubname,Address)5、物理设计为了提高在表中搜索元组的速度,在实现时应该基于码建立索引。建立索引的表项如下:(1)Part(ID)(2)Provider(ID)(3)Customer(ID)(4)Supply(PartID, ProviderID)(5)OfferToBuy(CustomerID, PartID)(6)Business(CustomerID, ProviderID, P
15、artID)6、用SQL实现(1)建立Part表(1)CREATE TABLE Part( ID smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, Color varchar(20), Name varchar(20) NOT NULL, Weight int DEFAULT 0, Intro text);(2)建立Provider表CREATE TABLE Provider( ID smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, Name varchar(20)NOT NULL, password varc
16、har(8) NOT NULL, Address varchar(30), Tel varchar(20), Intro text);(3)建立Customer表CREATE TABLE Customer( ID smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, Name varchar(20)NOT NULL, Address varchar(30), Tel varchar(20),);(4)建立Supply表CREATE TABLE Supply( PartID smallint, ProviderID smallint, Price int,
17、Quantity int, CONSTRAINT PK_SUPPLY PRIMARY KEY CLUSTERED(PartID, ProviderID), CONSTRAINT PK_SUPPLY_PARTID FOREIGN KEY(PartID) REFERENCES Part(ID), CONSTRAINT PK_SUPPLY_PROVIDERID FOREIGN KEY(ProviderID) REFERENCES Provider(ID);(5)建立OfferToBuy表CREATE TABLE OfferToBuy( CustomerID smallint, PartID smal
18、lint, Price int, Quantity int, CONSTRAINT PK_OFFERTOBUY PRIMARY KEY CLUSTERED(PartID, ProviderID), CONSTRAINT PK_OFFERTOBUY_CUSTOMERID FOREIGN KEY(CustomerID) REFERENCES Part(ID), CONSTRAINT PK_OFFERTOBUY_PARTID FOREIGN KEY(PartID) REFERENCES Part(ID);(6)建立Business表CREATE TABLE Business( CustomerID
19、smallint, ProviderID smallint, PartID smallint, Price int, Quantity int, CONSTRAINT PK_BUSINESS PRIMARY KEY CLUSTERED(PartID, ProviderID,CustomerID), CONSTRAINT PK_BUSINESS_PROVIDERID FOREIGN KEY(ProviderID) REFERENCES Provider(ID), CONSTRAINT PK_BUSINESS_CUSTOMERID FOREIGN KEY(CustomerID) REFERENCE
20、S Customer(ID) CONSTRAINT PK_BUSINESS_PARTID FOREIGN KEY(PartID) REFERENCES Part(ID);(7)供应商操作1)注册 INSERT INTO Provider(Name,Address,Tel,Intro) VALUES(#Name, #Address, #Tel, #Intro);2)注销 DELETE Provider WHERE(ID=#ID);3)修改个人信息 UPDATE Provider SET(Name=#Name, Address=#Address, Tel=#Tel, Intro=#Intro) W
21、HERE(ID=#ID);4)增加供应项 INSERT INTO Supply(PartID,ProviderID,Price,Quantity) VALUES(#PartID, #ProviderID, #Price, #Quantity);5)删除供应项 DELETE Supply WHERE(PartID=#PartID AND ProviderID=#ProviderID);6)修改供应项 UPDATE Supply SET(Price=#Price, Quantity=#Quantity) WHERE(PartID=#PartID AND ProviderID=#ProviderID
22、);注意:系统没有提供面向供应商修改零件信息的接口,所以供应商提供的零件必须已经在零件表中存在;可以这样假设,交易所的管理员负责更新零件信息,而供应商可以向交易所申请增加某种零件的信息。事实上,顾客也可以提出这样的要求。(8)顾客操作1)注册 INSERT INTO Customer(Name,Address,Tel) VALUES(#Name, #Address, #Tel);2)注销 DELETE Customer WHERE(ID=#ID);3)修改个人信息 UPDATE Customer SET(Name=#Name, Address=#Address, Tel=#Tel) WHERE
23、(ID=#ID);4)增加需求项 INSERT INTO OfferToBuy(PartID,CustomerID,Price,Quantity) VALUES(#PartID, #CustomerID, #Price, #Quantity);5)删除需求项 DELETE OfferToBuy WHERE(PartID=#PartID AND CustomerID=#CustomerID);6)修改需求项 UPDATE OfferToBuy SET(Price=#Price, Quantity=#Quantity) WHERE(PartID=#PartID AND CustomerID=#Cu
24、stomerID );(9)交易员操作针对需求分析中提出的问题,我们提出了“协议书”的解决方案,方案说明如下:1)每个交易在达成以前都作为协议书保存在数据库中,协议书具有和交易一样的完备信息,可以在条件成熟的情况下转为一个达成的交易;2)协议书只有在供应商和顾客都签字的情况下才有效;有效的协议书由交易员签发,协议书一经签发,就生效,表明一个交易的达成,数据库中的数据将同时予以修改;3)协议书可由供应商、顾客或交易员中的任意一个人提出申请。当协议书在双方都没有签字前,协议的双方或者交易员都可以删除这个协议书;但是当协议书签字完毕后,协议书就不可删除或修改,只能由交易员进行处理;4)协议书有可能在
25、转成交易的过程中失败,因为在交易达成之前,数据库中的数据有可能因为其他交易而变化,一个协议书可能失效,这是允许的。根据以上对业务的分析,对数据库的模型作一些修改,增加协议书表,可建立其关系模式。交易关系模式及对应的SQL描述:Agreement(CustomerID,ProviderID,PartID,Price,Quantity, CustomerSign,ProviderSign)CREATE TABLE Agreement( CustomerID smallint, ProviderID smallint, PartID smallint, Price int, Quantity int
26、, CustomerSign int, ProviderSign int, CONSTRAINT PK_AGREEMENT PRIMARY KEY CLUSTERED(CustomerID,ProviderID,PartID) CONSTRAINT PK_AGREEMENT_CUSTOMERID FOREIGN KEY(CustomerID) REFERENCED Customer(ID), CONSTRAINT PK_AGREEMENT_PROVIDERID FOREIGN KEY(ProviderID) REFERENCED Provider(ID), CONSTRAINT PK_AGRE
27、EMENT_PARTID FOREIGN KEY(PartID) REFERENCED Part(ID); 对交易的操作与其他操作相比,对数据的完整性要求比较高,其中需要注意:1)要防止同一用户(供应商、顾客)的数据因两个交易而同时修改;2)需要同时对供应数据库、需求数据库、交易数据库、协议数据库作出修改,而且需要保持这些修改的原子性。很显然,这些要求正是一个事务的要求,我们可以用一个事务来完成签发一个协议的操作。可以用CREATE PROC来建立一个签发协议事务。CREATE PROC PASS_AGREEMENT provideID int, customerID int, partID
28、int,AS DECLARE TransName varchar(20) SELECT TransName=Pass_Agreement BEGIN TRANSACTION TransName DECLARE price int, quantity int SELECT price=price, quantity FROM Agreement WHERE providerID=providerID AND customerID=customerID AND partID=partID INSERT INTO Businees(ProviderID, CustomerID,PartID, Pri
29、ce, Quantity) VALUES ( providerID, customerID, partID, price, quantity )UPDATE Supply SET quantity=quantity-quantity WHERE ProviderID=providerID AND partID=partID IF( SELECT quantity FROM Supply WHERE ProviderID=providerID AND PartID=partID )0 ROLLBACK TRANSACTION TransNameDELETE FROM SupplyWHERE qu
30、antity=0UPDATE OfferToBuy SET quantity=quantity-quantity WHERE CustomerID=CustomerID AND partID=partID IF ( SELECT quantity FROM OfferToBuy WHERE CustomerID=customerID AND PartID=partID ) 0 ROLLBACK TRANSACTION TransNameDELETE FROM OfferToBuyWHERE quantity=0 COMMIT TRANSACTION TransNameGO 为了使用方便,这里定
31、义了一个存储过程,功能是完成从Agreement的一个元组到Business的一个元组的转化工作。这里考虑到了删除空的Supply和OfferToBuy项;更重要的是,这里考虑到了非法的Agreement的情况,在一段时间后,由于供应商或者顾客修改数据,Agreement可能就非法,这时就需要把这个事务废除,所以这里检查了Supply表和OfferToBuy表中的数据,确保数据仍然正确。 另外,交易员必须承担的一项任务是更新零件列表。这里在考虑顾客和供应商的时候,并没有给予他们修改两件列表的权利,所以他们必须根据数据库中已有的项更新自己的供求信息。7、查询与测试结果 使用的DBMS环境。输入测
32、试数据,并列举10个左右的查询与查询结果(略)。设计报告中要有屏幕操作截图。8、课程设计总结通过课程设计,完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步了解和掌握了数据库各方面知识,并提高了动手实践的能力。体会和收获(要具体一些)。1.1 将E-R图转换成关系模型读者、图书、书架、作者和出版社均为实体,因此它们各自转换成一个独立关系模式,实体的属性就是关系的属性,实体的码就是关系的码。由于读者与图书、图书与书架、出版社与作者之间的联系方式为m:n,所以其联系需转化为独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。而
33、图书与出版社的联系方式为n:1,所以将其之间的联系与n端实体合并。所以,具体的总体E-R图向关系模型的转化如下:读者信息(姓名,借书证号,借书人单位)图书信息(书名,书号,种类,总数量)出版社信息(出版社名,电话,邮编,地址)书架信息(书架号,书架名)作者信息(姓名,性别,电话)借阅信息(借书证号,书号,借书日期)归还信息(借书证号,书号,归还日期)放置信息(书号,书架号,数量)供应信息(书号,出版社名,数量)投稿信息(出版社名,姓名,投稿时间)(注:标有红色下划线的为主关键字,标有绿色波浪线的为外部关键字)1.2 关系模式优化1.2.1 关系规范化 1.2.2 关系完整性约束根据实体完整性、
34、参照完整性和用户定义完整性的规则,设计数据表(注:带红色下划线的为主关键字,带绿色波浪线的为外部关键字):表4.1 读者信息表列名数据类型长度可否为空索引姓名Char8not null升序借书证号Char10not null升序借书人单位Char40表4.2 图书信息表列名数据类型长度可否为空索引书名Char40not null升序书号Char10not null升序种类Char10not null总数量intnot null表4.3 借阅信息表列名数据类型长度可否为空索引借书证号Char10not null升序书号Char10not null升序借书日期Datetimenot null 升序
35、表4.4 归还信息表列名数据类型长度可否为空索引借书证号Char10not null升序书号Char10not null升序归还日期Datetimenot null升序表4.5 出版社信息表列名数据类型长度可否为空索引出版社名Char20not null升序电话Char20邮编Char10地址Char40表4.6 书架信息表列名数据类型长度可否为空索引书架号Char10not null升序书架名Char10表4.7 放置信息表列名数据类型长度可否为空索引书架号Char10not null升序书号Char10not null升序数量Int4not null表4.8 供应信息表列名数据类型长度可否
36、为空索引书号Char10not null升序出版社名Char20not null升序数量int4not null表4.9 投稿信息表列名数据类型长度可否为空索引姓名Char8not null升序出版社名Char20not null升序投稿时间 Datetimenot null升序表4.10 作者信息表列名数据类型长度可否为空索引姓名Char8not null升序性别Char10not null 联系方式Char202 数据库的实施与维护2.1 建立数据库及其对象2.1.1 创建模式创建数据库“图书管理”1、 打开企业管理器,单击目录树窗口中的sql server服务器,选择工具向导菜单命令。2
37、、 在打开的“选择向导”对话框表中双击“数据库”,展开节点,显示数据库操作向导,单击“创建数据库向导”。3、 单击确定按钮,打开创建数据库向导的欢迎对话框。4、 单击下一步按钮,打开命名数据库对话框,将对话框的“数据库名称”文本框中显示的默认数据库名称“Administrator数据库”修改为“图书管理”,数据库文件位置使用默认值。5、 单击下一步按钮,打开命名数据库文件对话框,将数据文件的初始大小修改为2。6、 单击下一步按钮,打开定义数据文件增长对话框,选中“文件增长的最大值”,并将其后的文本框的数字修改为4。7、 单击下一步按钮,打开命名事务日志文件对话框,将文件初始大小修改为2。8、
38、单击下一步按钮,打开定义日志增长对话框,选中“事务日志文件不自动增长”,不允许事务日志文件自动增长。9、 单击下一步按钮,打开完成信息对话框。10、 单击完成按钮,执行创建数据库操作。11、 单击确定按钮,有提示是否为数据库创建维护计划,单击否.至此,完成数据库创建操 作。5.1.2创建数据表1、打开查询分析器,在数据库下拉表框中选择“成图书管理”数据库。2、在查询窗口中输入下面的sql语句。 3、单击工具栏中执行按钮执行查询,完成数据表创建操作。(1)读者信息表的建立。命令如下:create table 读者信息(姓名 char(8) not null,借书证号 char(10) primary key not null,借书人单位 char(40)(2)出版社信息表的建立。命令如下:create table 出版社信息(出版社名 char(20) primary key not null,电话 char(20),邮编 char(10),地址 char(40)(3)图书信息表的建立。命令如下:create table 图书信息(书名 char(40) not null,书号 char(10) primary key not null,种类 char(10)not null,总数量 int not null) (4)借阅信息表的建立。