数据库教材管理报告.doc_第1页
数据库教材管理报告.doc_第2页
数据库教材管理报告.doc_第3页
数据库教材管理报告.doc_第4页
数据库教材管理报告.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库课程设计 教材管理系统学习目标教材信息管理系统的需求分析教材信息管理系统的ER图教材信息管理系统的关系数据库模式教材信息管理系统数据库的建立第1章 前言1.1 开发背景学校是一所教材用书很复杂的场所,其涉及的专业课程多,教材用书种类多,数量大,传统的管理方法存在着效率低,易出错等诸多弊端,特别是学生、教师对教材使用情况了解相对较少,信息的透明度较低,与当前高校管理中倡导的“以人为本”的管理思想存在着很大的差距。为此该校教材科开发了一套基于数据库的教材管理信息系统。该系统主要包括以下四大项项处理功能:教材出入库管理、教材查询、教材订购、教材订单查询。但是由于基于数据库的管理信息系统自身存在的管理上的不足。如学生想知道教材科是否有某本书、想了解自己教材款的使用情况,教师想要预订下学期的教材等都必须亲自去教材科。 1.2 系统调查通过对该高校教材科的业务工作进行的调查,我们发现该教材科的业务对象主要有四类:学生、教师、班级和教材科管理员,其相应的日常业务也可以分为四类,分别是:1.2.1 学生的业务介绍教材科对于学生的业务主要是为学生入学后可到教材科的领取自己的书籍,方式是学生到教材科,提供自己的学生编号,然后领取教材。1.2.2 教师的业务介绍教师的业务主要是登记查询教师领书的信息,每学期开学,各系教师根据上学期预定的教材记录到教材科领取教材,并登记;每学期教师可以预定下学期所用教材,方式是教师在学期末到教材科,提供所需教材名称、教师个人信息等,然后教材科记录相应信息并制定相应采购计划。还可以对所需教材的进行查询等等。1.2.3 班级的业务介绍教材科对于班级的业务主要是为班级提供入学以来在教材科的购书详细资料的查询,存款详细资料的查询,剩余款项数额查询及学生对所需教材的查询等等。方式是班级管理员到教材科,提供班级的班级编号,然后教材科在原始记录中查询。1.2.4 管理员的业务介绍教材科的业务主要是采购图书,发放教材,对库存图书、学生购书信息、教师(院系)领书的信息进行管理、统计。这其中涉及到所有有关教材的各种信息、数据,这部分也是教材科最主要、核心的业务。第2章 需求分析2.1 课程设计要求按照课程设计题目的内容完成数据库的设计以及应用系统的设计在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。小组成员之间分工明确,密切合作,培养良好的团队协作精神。2.2 数据库设计需求假设,该系统至少需要保存5年的教材采购情况。学校在校大学生大概有200个班级,每个班级每学期,大概有5-8门课需要采购教材。需要经常查找的资料包括毕设的教材信息、采购情况等。需要在Oracle 10g或Oracle 11g环境下实现数据库的物理设计。规划pfile文件、数据库的表空间、日志文件、段等。根据假设的需求分析设计表、索引、锁(考虑性能)。在Oracle数据库中实现业务逻辑的实现(存储过程、函数以及触发器的设计)。规划、设计事务等。2.3 系统需求分析2.3.1 总体需求简单介绍需求分析阶段是数据库应用系统开发的最重要阶段。需求分析要求应用系统的开发人员按照系统的思想,根据收集的资料,对系统目标进行分析,对业务的信息需求、功能需求以及管理中存在的问题等进行分析,抽取本质的、整体的需求,为设计一个结构良好的数据库应用系统的逻辑模型奠定坚实的基础。2.3.2 用户总体业务构造学校教务科每学期都要购买大量的教材,以应教学学习之需。需要对教材的出入库信息、教材订购信息进行管理,并能够对教材的在库、出库、教材的历史信息、教材订单等信息进行查询。请设计合理的数据库表结构并实现该系统,用以管理教材信息。2.3.3 其它要求如安全性,系统环境要求(根据现有的设备情况进行系统运行)等,这些不是本次实验的核心内容,所以在这次实验中没有太多体现。2.3.4 系统功能设想这里的功能划分,是根据第一阶段需求调查基础上进行的初步划分。随着需求调查的深入,功能模块随着对需求了解的明确得到调整。教务管理业务的4个主要部分,可以将系统应用程序划分为对应得4个子模块:包括教材出入库管理、教材查询、教材订购、教材订单查询。根据各业务子系统所包括业务内容,还可以将各个子系统继续细化划分为更小的功能模块。划分的准则主要遵循模块的内聚性要求和模块间的低聚合性。如图所示表示一个教务管理系统功能模块结构图。教务管理系统功能模块结构图第3章 需求描述3.1 方法概述主要包括数据流图(Data Flow Diagram)和数据字典(Data Dictionary)。数据流图和数据字典是描述用户需求的重要工具以及阶段成果表达形式。它是需求分析的成果和用户交流的主要手段和依据,是后续数据库设计的前提。从数据流图中可以比较充分地了解软件的结构,所以也是软件设计的重要依据。调查了解用户的需求后,需要进一步表达用户的需求,分析和表达用户需求的方法很多,目前最常用的还是结构化分析法。该方法是基于数据流的需求分析方法,它利用了图形的方式进行表达,容易学习和运用。结构化分析法采用的是自顶向下、逐层分解的方式分析系统,即将系统的功能从宏观层面逐渐细化,达到最终的结构化分析方法主要使用以下几个工具:数据流图(Data Flow Diagram简称DFD)、数据字典(Data Dictionary简称DD)、判定表和判定树等。不同的应用环境,对数据描述的细化程度会有所不同,常常应实际情况而定。下面就使用数据流图及数据字典这两种工具来描述本例的用户需求,体现他们在实际中的应用方法。3.2 数据流图设计数据流图中使用的符号在各种书籍和资料上表达不尽相同,目前许多常用的一些流行的数据库辅助设计工具如Microsoft Visio、Sybase PowerDesigner、Oracle Designer、Rational Rose、Erwin等符号都不统一,我们这里以比较容易上手的Visio工具为例数据流图主要符号的意义:注意:数据流图命名规则之一:数据流图的中加工、处理过程一般采用动词及其短语;数据源点或终点、数据存储(数据文件或表单形式)、数据流(一项或多项数据)等一般为名词或名词短语。数据流图命名规则之二:流图中的命令所使用的语言要基本上反映实际的情况,在整个DFD中必须要唯一,尽量避免含有像加工、处理、存储这样的元名称。3.2.1 系统的全局数据流图系统的全局数据流图,在具体的设计工具中往往也称为第0层或顶层数据流图,主要是从整体上描述系统的数据流,反映系统中数据的整体流向,是设计者针对用户和开发者表达出来的一个总体描述。顶层数据流图(教材管理系统的整体分析及功能分析、数据流向)第一层数据流图3.2.2 系统局部数据流图全局数据流图,从整体上描述了数据流向和加工处理过程。但是一个较为复杂的系统来讲,要清楚地描述系统数据的流向和加工处理的每一个细节,仅用全局数据流图难以完成。因此需要在全局数据流图的基础上,对全局数据流图的某些局部单独放大,进一步细化,细化可以采用多级方式进行,就是分级数据流图来描述。第二层数据流图教材查询部分(教材查询功能的实现及数据流向)教材订购部分(教材订购功能的实现及数据流向)订单查询部分(订单查询功能的实现及数据流向)第三层数据流图查询管理的在库查询部分的细化查询管理的出库查询部分的细化查询管理的历史查询部分的细化教材订购管理的生成订单部分的细化教材订购管理的订单状态部分的细化3.3 数据字典部分数据流图表达了数据与处理的关系,数据流图作为直观的了解系统运行机理的手段,并没有具体描述各类数据的细节,只有通过数据字典进一步细化才能对系统的需求得到具体而确切的了解。数据字典用来说明数据流图中出现的所有元素的详细的定义和描述,包括数据流、加工处理、数据存储、数据的起点和终点或外部实体等。数据字典包括的项目有:数据项、数据结构、数据流、数据存储、加工逻辑和外部实体。可使用一些符号来表示数据结构、数据流和数据存储的组成。3.3.1 数据流表中数据流的描述序号数据流名来源组成教材入库请求数据 管理员教材内部识别号、入库时间、入库数量、适用对象教材出库请求数据 管理员教材内部编号、教材代号、出库时间、出库数量、使用单位、用途、经办人教材信息录入 请求数据 管理员教材内部识别号、代号、书名、编著者、出版社、版次、定价、入库时间、入库数、适用对象教材订购信息录入请求数据 管理员 班级课程教材选用信息、教材出版社信息在库教材信息查询管理员、老师、学生、班级在库信息、书名、代号、教材总数、种类总数、价值总额出库教材信息查询管理员、老师、学生、班级出库信息、教材代号、使用对象历史教材信息查询管理员、老师、学生、班级出入库的历史信息订单信息查询 管理员教材订单的到货、缺货情况3.3.2 数据存储 表中数据存储的描述序号数据文件文件组成关键标识组织 教材信息教材内部识别号、代号、书名、编著者、出版社、版次、定价 全部按代号、书名排序教材入库信息教材内部识别号、入库时间、入库数、适用对象 全部按教材内部识别号排序教材出库信息教材内部编号、教材代号、出库时间、出库数量、使用单位、用途、经办人 全部课教材内部编号、教材代号排序教材在库信息教材总数、种类总数、价值总额全部统计教材在库的信息:在库教材总数、种类总数、价值总额;教材订购清单班级课程教材选用信息、教材出版社信息全部按订单编号排序3.3.3 数据项数据项的说明序号数据项数据对象说明1管理员姓名1字符102管理员编号5数字53班级名1字符104班级编号5数字55教师姓名1字符106教师编号5数字57学生姓名1字符108学生编号5数字59订单编号5数字510入库表编号5数字511入库时间6数字612入库数量1数字513适用对象1字符1014出库表编号5数字515出库时间6数字616出库数量1数字517使用单位1字符1018经办人1字符1019用途1字符1018库房1字符1019库存数量1数字520库存种类总数1数字521库存金额总数1数字1022教材内部编号1数字523教材代号1数字524教材名称1字符1025著作者1字符1026出版社1字符1027版次1字符1028价格1数字529教材使用班级1字符1030教材使用课程1字符1031学期1字符10英文=az|AZ数字=09第4章 概念设计上述的数据流图和数据字典共同构成了对用户需求的表达,它们是系统分析员(数据库管理员)在需求调查过程中和用户反复交互得到的。建设系统实际要处理的数据基本上已经在数据流图中得到体现,整个设计过程的后续步骤提供基础和依据。概念设计就是通过对需求分析阶段所得到的信息需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型,主要的手段为ER图。在概念设计阶段,主要采用的设计手段目前还是实体联系模型(E-R Model)。绘制E-R图的关键是确定E-R图的各种结构,包括实体、属性和联系。大部分的流行建模工具(Power Designer、Oracle Designer、ERwin等)也都包含了对E-R设计手段的支持。4.1 实体要建立系统的E-R模型的描述,需进一步从数据流图和数据字典中提取系统所有的实体及其属性。这种提出实体的指导原则如下: 属性必须是不可分的数据项,即属性中不能包含其它的属性或实体 E-R图中的关联必须是实体之间的关联,属性不能和其它实体之间有关联由前面分析得到的数据流图和数据字典,可以抽象得到实体主要有9个:学生、教师、班级、管理员、订单、教材、入库表、出库表、库存。(1) 学生实体属性有:学生姓名、学生编号。(2) 教师实体属性有:教师姓名、教师编号。(3) 班级实体属性有:班级名、班级编号。(4) 管理员实体属性有:管理员姓名、管理员编号。(5) 入库表实体属性有:入库表编号、入库时间、入库数量、使用者。(6) 出库表实体属性有:出库表编号、出库时间、出库数量、使用者、用途、经办人。(7) 订单实体属性有:订单编号 、数量、学期、标记。(8) 库存实体属性有:库存编号 、数量。(9) 教材实体属性有:教材内部编号、教材代号、教材名称、著作者、出版社、版次、价格、教材使用班级、教材使用课程。4.2系统局部E-R图在需求分析阶段我们采用的是自上而下的分析方法,那么要在其基础上进一步作概念设计我们面临的是细化的分析数据流图以及数据字典,分析得到实体及其属性后,进一步可分析各实体之间的联系。管理员实体与其他实体存在管理关系一个管理员可以管理多个订单、库存等为1对多关系。班级实体与教材实体存在领取关系一个班级可以领取多种教材,一种教材可以被多个班级领取所以是多对多关系。学生实体与教材实体存在领取关系一个学生可以领取多种教材,一种教材可以被多个学生领取所以是多对多关系。教师实体与教材实体存在领取关系一个教师可以领取多种教材,一种教材可以被多个教师领取所以是多对多关系。订单实体与教材实体存在包含关系一个订单可以包含多种教材,一种教材可以被多个订单包含所以是多对多关系。入库表实体与教材实体存在包含关系一个入库表可以包含多种教材,一种教材可以被多个入库表包含所以是多对多关系。出库表实体与教材实体存在包含关系一个出库表可以包含多种教材,一种教材可以被多个出库表包含所以是多对多关系。库存实体与教材实体存在包含关系一个库存可以包含多种教材,一种教材可以被多个库存包含所以是多对多关系。4.3系统全局E-R图系统的局部E-R图,仅反映系统局部实体之间的联系,但无法反映系统在整体上实体间的相互联系。而对于一个比较复杂的应用系统来说,这些局部的E-R图往往有多人各自分析完成的,只反映局部的独立应用的状况,在系统整体的运作需要时,他们之间有可能存在重复的部分或冲突的情况,如实体的划分、实体或属性的命名不一致等,属性的具体含义(包括数据类型以及取值范围等不一致)问题,都可能造成上述提到的现象。为解决这些问题,必须理清系统在应用环境中的具体语义,进行综合统一,通过调整消除那些问题,得到系统的全局E-R图。从实际的情况以及上述的局部E-R图我们可以得知,学生实际修学某门课时必须只能对应一位老师的该门课。因此,可以使用一个聚集来表达学生参加实际授课课程的学习关系,会更加切合实际。各局部E-R存在不少的重复的实体,经过上述聚集分析和合并得到系统全局的E-R图如图8-13所示。该全局E-R图基本上不存在关系的冗余状况,因此它已经是一个优化的。选课管理系统的全局ER图第5章 逻辑设计逻辑设计就是把E-R图转换成关系模式,并对其进行优化。5.1 E-R图到关系模式的转换在概念设计阶段得到的数据模型,是独立于具体DBMS产品的信息模型。在逻辑设计阶段就是将这种模型进一步转化为某一种(某些类)DBMS产品支持的数据模型。目前大部分的流行的数据库管理系统(SQL Server、Sybase 、Oracle、DB2等)基本上都是基于关系的数据模型,包括该系统将采用的SQL Server2000数据库系统,因此,应将概念设计阶段的E-R图模型转化为关系数据模型。如下:管理员实体与其他实体存在管理关系一个管理员可以管理多个订单、库存等为1对多关系。管理员(管理员姓名、管理员编号)订单(订单编号 、数量、学期、标记)入库表(入库表编号、入库时间、入库数量、使用者)出库表(出库表编号、出库时间、出库数量、使用者、用途、经办人)库存(库房、库存数量)班级实体与教材实体存在领取关系一个班级可以领取多种教材,一种教材可以被多个班级领取所以是多对多关系。班级(班级名、班级编号)教材(教材内部编号、教材代号、教材名称、著作者、出版社、版次、价格、教材使用班级、教材使用课程)领取1(班级编号、教材代号)学生实体与教材实体存在领取关系一个学生可以领取多种教材,一种教材可以被多个学生领取所以是多对多关系。学生(学生姓名、学生编号)领取2(学生编号、教材代号)教师实体与教材实体存在领取关系一个教师可以领取多种教材,一种教材可以被多个教师领取所以是多对多关系。教师(教师姓名、教师编号)领取3(教师编号、教材代号)订单实体与教材实体存在包含关系一个订单可以包含多种教材,一种教材可以被多个订单包含所以是多对多关系。包含1(订单编号、教材代号、出版社)入库表实体与教材实体存在包含关系一个入库表可以包含多种教材,一种教材可以被多个入库表包含所以是多对多关系。包含2(入库表编号、教材代号)出库表实体与教材实体存在包含关系一个出库表可以包含多种教材,一种教材可以被多个出库表包含所以是多对多关系。包含3(出库表编号、教材代号)库存实体与教材实体存在包含关系一个库存可以包含多种教材,一种教材可以被多个库存包含所以是多对多关系。包含4(库房、教材代号)5.2 各个数据表的表结构设计由E-R模型得到关系模式并且得到适当的调整后,我们可以结合在需求表述中数据字典包含的数据项信息,得到数据库的表结构。表中各列的字段名、数据类型、数据长度和表的主键和外键;表名和字段名的命名应该由表名的英文含义的词语为主或以其缩写字母构成;同时为各个表名和字段名作出完整的中文文档说明。表结构设计如下:管理员字段信息列表字段名称含义属性类型长度备注m_name管理员姓名Variable characters 10m_no管理员编号Integer5主键班级字段信息列表字段名称含义属性类型长度备注c_name班级名Variable characters 10c_no班级编号Integer5主键 学生字段信息列表字段名称含义属性类型长度备注s_name学生姓名Variable characters 10s_no学生编号Integer5主键教师字段信息列表字段名称含义属性类型长度备注t_name教师姓名Variable characters 10t_no教师编号Integer5主键订单字段信息列表字段名称含义属性类型长度备注l_no订单编号Integer5主键l_count数量Integer5l_time学期Integer10l_sign标记是否到货Variable characters1用y表示到货教材字段信息列表字段名称含义属性类型长度备注te_inno教材内部编号Integer5主键te_no教材代号Integer5主键te_name教材名称Variable characters10te_author著作者Variable characters10te_pub出版社Variable characters10外键te_pno版次Variable characters10te_price价格Integer 5te_class教材使用班级Variable characters10班级编号te_lesson教材使用课程Variable characters10入库表字段信息列表字段名称含义属性类型长度备注i_no入库表编号Integer5主键i_time入库时间Integer6自动获取系统时间i_count入库数量Integer5i_use使用者Variable characters10教师等实体的编号出库表字段信息列表字段名称含义属性类型长度备注o_no出库表编号Integer5主键o_time出库时间Integer6自动获得系统时间o_count出库数量Integer5o_use使用者Variable characters 10教师等实体的编号o_worker经办人Variable characters 10管理员编号o_way用途Variable characters10库存字段信息列表字段名称含义属性类型长度备注st_name库房Variable characters 10主键st_count库存数量Integer5第6章 物理设计6.1各个数据表的建立(以下只给出了教材及订单表的建立)6.1.1 教材表的建立create table 教材 ( te_inno INTEGER not null, te_no INTEGER not null, te_name VARCHAR2(10), te_author VARCHAR2(10), te_pub VARCHAR2(10), te_pno INTEGER, te_price FLOAT, c_no INTEGER, te_lesson VARCHAR2(10), constraint PK_教材 primary key (te_inno,te_no), Foreign key(c_no) References 班级(c_no) );6.1.2 订单表的建立create table 订单 ( l_no INTEGER not null, te_inno INTEGER not null, te_no INTEGER not null, te_pub VARCHAR2(10), te_price FLOAT, l_count INTEGER, l_time VARCHAR2(10), l_sign VARCHAR2(10), constraint PK_订单 primary key (l_no), Foreign key(te_inno,te_no) References 教材(te_inno,te_no);6.2 教材查询的实现查询部分主要分3种查询,每种查询又分不同选项的查询,以下只给出部分主要代码,相似代码省略。6.2.1 在库查询以下为按教材姓名查询出教材表中的教材名、教材数量、教材价格总数及库存表中的库存编号。由于查询的内容包括两个表的内容,所以将两个表连接。create or replace procedure select_kc3(te_name_value in 教材.te_name%type, sel_cur out sys_refcursor)asname varchar(20);beginselect te_name into name from 教材 where te_name_value=教材.te_name;if SQL%ROWCOUNT!=0 thenopen sel_cur for select te_name,st_count,st_count*te_price from 教材,库存 where te_name_value=教材.te_name and 教材.te_inno=库存.te_inno;end if;exception when no_data_found thendbms_output.put_line(无信息!);end select_kc3;在库查询中还要求对数量、价钱等进行统计。create or replace procedure select_kc4( sel_cur out sys_refcursor)asname varchar(20);beginopen sel_cur for select sum(st_count),count(*),sum(st_count*te_price) from 教材,库存 where 教材.te_inno=库存.te_inno;exception when no_data_found thendbms_output.put_line(无信息!);end select_kc4;6.2.2 出库查询下面以按班级查询为例,将入库表与出库表连接。create or replace procedure select_ck1(c_no_value in 出库表.c_no%type, sel_cur out sys_refcursor)asinno int;beginselect c_no into inno from 出库表 where c_no_value=出库表.c_no;if SQL%ROWCOUNT!=0 thenopen sel_cur for select *from 出库表 where c_no_value=出库表.c_no; end if;exception when no_data_found thendbms_output.put_line(无信息!);end select_ck1;6.2.3 历史查询历史查询与出库查询相似从略。6.3 订单生成及查询的实现6.3.1 订单的生成create or replace procedure add_订单(b1 IN int,b2 IN int,b3 IN int,b4 IN varchar2,b5 IN float,b6 IN int,b7 IN varchar2,b8 IN varchar2)as bcount number;begininsert into 订单 values(b1,b2,b3,b4,b5,b6,b7,b8);dbms_output.put_line(成功输入订单信息);exception when no_data_found then dbms_output.put_line(无信息); when others then dbms_output.put_line(SQLERRM);end add_订单;6.3.2 订单的更新create or replace procedure update_订单(b1 IN int,b2 IN varchar2)as bcount number;begin select l_no into bcount from 订单; if b1=bcount thenupdate 订单 set l_sign=b2 where l_no=b1;dbms_output.put_line(第|b1|订单信息已经成功修改); else dbms_output.put_line(无信息); end if;exception when others then dbms_output.put_line(SQLERRM);end update_订单;6.3.3 查询订单create or replace procedure select_d(l_time_value in 订单.l_time%type, sel_cur out sys_refcursor)astime varchar(20);beginselect l_time into time from 订单 where l_time_value=订单.l_time;if SQL%ROWCOUNT!=0 thenopen sel_cur for select l_no,te_inno,te_no,l_sign from 订单 where l_t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论