[教学]数据库 教材治理申报
学习目标
教材信息管理系统的需求分析
教材信息管理系统的ER图
教材信息管理系统的关系数据库模式
教材信息管理系统数据库的建立
第1章,,,,,,,,,,前言
1.1,,,,,,,,,,开发背景
学校是一所教材用书很复杂的场所,其涉及的专业课程多,教材用书种类多,数量大,传统的管理
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
存在着效率低,易出错等诸多弊端,特别是学生、教师对教材使用情况了解相对较少,信息的透明度较低,与当前高校管理中倡导的“以人为本”的管理思想存在着很大的差距。为此该校教材科开发了一套基于数据库的教材管理信息系统。该系统主要包括以下四大项项处理功能:教材出入库管理、教材查询、教材订购、教材订单查询。但是由于基于数据库的管理信息系统自身存在的管理上的不足。如学生想知道教材科是否有某本书、想了解自己教材款的使用情况,教师想要预订下学期的教材等都必须亲自去教材科。,,,,,
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层或顶层数据流图,主要是从整体上描述系统的数据流,反映系统中数据的整体流向,是设计者针对用户和开发者表达
出来的一个总体描述。
顶层数据流图(教材管理系统的整体分析及功能分析、数据流向) 学校教务科管理员
订单信息教教教订材教材材查单在材出入条信库信库库老师件息信息教材入库记录表信信查条件 息订单信息息息领用教材
教材入库信息
0查条件教材出库记录表教材出库信息学生教材在库信息领用教材教材管理系统
教材信息查条件教材在库的信息
领用教材
班级
教材信息第一层数据流图
学校教务科管理员
教教教教教教材教材材材材材教订入材在出查出在入材单库信库库条库库库信信信息信信件信信信息息查订息息息息息息条单
信件
息2341
教材出入库管理教材查询教材订购教材订单查询
领查领领订取订查条查取取单教单条件条教教信信材件件材材息息
老师学生班级订单信息
教材入库信息教材入库信息教材入库记录表
教材出库信息教材出库信息教材出库记录表
教材在库信息教材在库信息教材在库信息
教材信息教材信息教材信息
3.2.2,,,,,系统局部数据流图
全局数据流图,从整体上描述了数据流向和加工处理过程。但是一个较为复杂的系统来讲,要清楚地描述系统数据的流向和加工处理的每一个细节,仅用全局数据流图难以完成。因此需要在全局数据流图的基础上,对全局数据流图的某些局部单独放大,进一步细化,细化可以采用多级方式进行,就是分级数据流图来描述。
第二层数据流图
教材查询部分(教材查询功能的实现及数据流向)
学校教务科管理员
教教教教查材材材材条入在在查出查件库库库条库条信信信件信件息息息息
2.12.22.3
在库教材查询教材出库查询教材历史查询
教
材
出教库教材信材在息入库教材出库信息
库信
信息
教材在库信息息教材在库记录表
教材入库记录表
教材订购部分(教材订购功能的实现及数据流向)
学校教务科管理员
标订
记单订
后信单
的信息
订息
单
信
息3.23.1
教材订单生成教材订单
状态管理标
记订订后单单的信信订息单息
信订单信息息
订单查询部分(订单查询功能的实现及数据流向)
学校教务科管理员
订
单查
信询
息条
件
4.1
教材订单
订
单
信
息
订单信息
第三层数据流图
查询管理的在库查询部分的细化
学校教务科管理员教教查教教教教材教条材材教查材查材材在材查在件信材条在条在信库信条库息信件库库信件息件息信息信信息息息息
2.1.32.1.12.1.22.1.4
按班级查询按书名查询按代号查询按班级查询
教
材教在材库信信息息
教材信息教材在库信息
查询管理的出库查询部分的细化
学校教务科管理员
教教教查材材查材查条出出出条条件库库库件件信信信息息息2.2.22.2.32.2.1
按使用对象按时间查询按代号查询查询
教
材
出
库
信
息教材出库信息
查询管理的历史查询部分的细化
学校教务科管理员
教教查教教教教教教教材材条材材材材材材查出材查入在件出入在出入库条在库条库库库库库库信库信件件信信信信信信息信息息息息息息息息
2.3.32.3.12.3.2
按时间查询按书名查询按代号查询
教教教
材材材
出入在
库库库
信信信
息息息教材出库信息教材入库信息教材在库信息
教材订购管理的生成订单部分的细化
学校教务科管理员
订
单
信
息
3.1.13.1.2订单信息
录入信息生成订单
订
单
信
息
订单信息
教材订购管理的订单状态部分的细化
学校教务科管理员
修查
改询
订条
单件信
息
3.2.23.2.1修改条件
修改查询
订订单单信信息息
订单信息
3.3,,,,,,,,,,数据字典部分
数据流图表达了数据与处理的关系,数据流图作为直观的了解系统运行机理的手段,并没有具体描述各类数据的细节,只有通过数据字典进一步细化才能对系统的需求得到具体而确切的了解。数据字典用来说明数据流图中出现的所有元素的详细的定义和描述,包括数据流、加工处理、数据存储、数据的起点和终点或外部实体等。
数据字典包括的项目有:数据项、数据结构、数据流、数据存储、加工逻辑和外部实体。可使用一些符号来表示数据结构、数据流和数据存储的组成。 3.3.1,,,,,,,,,,数据流
表中数据流的描述
序号 数据流名 来源 组成
, 教材入库请求 ,,,,,,,,,,,,,,,管理教材内部识别号、入库时间、入库数量、适用对
数据 员 象
, 教材出库请求 ,,,,,,,,,,,,,,,管理教材内部编号、教材代号、出库时间、出库数量、
数据 员 使用单位、用途、经办人
, 教材信息录入 ,,,,,,,,,,,,,,,管理教材内部识别号、代号、书名、编著者、出版社、
,,,,,,,,,,请求数据 员 版次、定价、入库时间、入库数、适用对象
, 教材订购信息 ,,,,,,,,,,,,,,,管理班级课程教材选用信息、教材出版社信息
录入请求数据 员
,,,,,,,,,,,,,,,
, 在库教材信息 管理员、老师、 在库信息、书名、代号、教材总数、种类总数、
查询 学生、班级 价值总额
, 出库教材信息 管理员、老师、 出库信息、教材代号、使用对象
查询 学生、班级
, 历史教材信息 管理员、老师、 出入库的历史信息
查询 学生、班级
, 订单信息查询 ,,,,, 管理员 教材订单的到货、缺货情况 3.3.2,,,,,,,,,,数据存储,,,,, 表中数据存储的描述
序号 数据文件 文件组成 关键标识 组织
教材内部识别号、代,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,, , ,,,,,,,,,,教材信号、书名、编著者、出 全部 按代号、书名排序
息 版社、版次、定价
教材内部识别号、入库 ,,,,,,,,,,,,,,, , 教材入库信息 时间、入库数、适用对 全部 按教材内部识别号排序
象
教材内部编号、教材代 ,,,,,,,,,,,,,,, , 教材出库信息 号、出库时间、出库数 全部 课教材内部编号、教材代号排序
量、使用单位、用途、
经办人
, 教材在库信息 教材总数、种类总数、 全部 统计教材在库的信息:在库教材
价值总额 总数、种类总数、价值总额;
, 教材订购清单 班级课程教材选用信 全部 按订单编号排序
息、教材出版社信息
3.3.3,,,,,,,,,,数据项
数据项的说明
序号 数据项 数据对象说明
1 管理员姓名 1{字符}10
2 管理员编号 5{数字}5
3 班级名 1{字符}10
4 班级编号 5{数字}5
5 教师姓名 1{字符}10
6 教师编号 5{数字}5
7 学生姓名 1{字符}10
8 学生编号 5{数字}5
9 订单编号 5{数字}5
10 入库表编号 5{数字}5
11 入库时间 6{数字}6
12 入库数量 1{数字}5
13 适用对象 1{字符}10
14 出库表编号 5{数字}5
15 出库时间 6{数字}6
16 出库数量 1{数字}5
17 使用单位 1{字符}10 18 经办人 1{字符}10 19 用途 1{字符}10 18 库房 1{字符}10 19 库存数量 1{数字}5 20 库存种类总数 1{数字}5 21 库存金额总数 1{数字}10 22 教材内部编号 1{数字}5 23 教材代号 1{数字}5 24 教材名称 1{字符}10 25 著作者 1{字符}10 26 出版社 1{字符}10 27 版次 1{字符}10 28 价格 1{数字}5 29 教材使用班级 1{字符}10 30 教材使用课程 1{字符}10 31 学期 1{字符}10 英文=[‘a’…’z’|’A’…’Z’]
数字=[‘0’…’9’]
第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图基本上不存在关系的冗余状况,因此它已经是一个优化的。
订单l_no
Integerl_countIntegerl_signVariable characters (1)Identifier_1
生成0,n管理3管理员m_nameVariable characters (20)m_noInteger管理1Identifier_1包含1入库表te_noIntegeri_noIntegerte_innoIntegeri_timeTimestampte_pubVariable characters (100)i_countIntegerte_priceFloati_useVariable characters (100)instore0,n管理2班级0,n包含2c_nameVariable characters (20)c_noIntegerte_noIntegerIdentifier_1te_innoInteger出库表管理4o_noInteger领取1o_timeTimestampc_noIntegero_countIntegero_useVariable characters (100)o_workerVariable characters (20)o_wayVariable characters (100)包含30,noutstorete_noInteger学生te_innoInteger0,ns_nameVariable characters (20)s_noIntegerIdentifier_1领取2库存s_noIntegerst_noIntegerst_countInteger0,n0,n0,n0,nonstore0,n0,n教材包含4te_noIntegerte_noIntegerte_innoIntegerte_innoInteger0,nte_nameVariable characters (20)教师te_authorVariable characters (20)te_pubVariable characters (100)领取3t_nameVariable characters (20)0,nte_pnoIntegert_noIntegert_noInteger0,nte_priceFloatIdentifier_1te_classVariable characters (20)te_lessonVariable characters (20)Identifier_1
选课管理系统的全局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,,,,, 10
管理员编号 主键 m_no Integer 5
班级字段信息列表
字段名称 含义属性 类型 长度 备注
班级名 c_name Variable,,,,,characters,,,,, 10
班级编号 主键 c_no Integer 5
,,,,,
学生字段信息列表
字段名称 含义属性 类型 长度 备注
学生姓名 s_name Variable,,,,,characters,,,,, 10
学生编号 主键 s_no Integer 5
教师字段信息列表
字段名称 含义属性 类型 长度 备注
教师姓名 t_name Variable,,,,,characters,,,,, 10
教师编号 主键 t_no Integer 5
订单字段信息列表
字段名称 含义属性 类型 长度 备注
订单编号 主键 l_no Integer 5
数量 l_count Integer 5
学期 l_time Integer 10
标记是否到货 用y表示到货 l_sign Variable,,,,,characters 1
教材字段信息列表
字段名称 含义属性 类型 长度 备注
教材内部编号 主键 te_inno Integer 5 教材代号 主键 te_no Integer 5 教材名称 te_name Variable,,,,,characters 10 著作者 te_author Variable,,,,,characters 10 出版社 外键 te_pub Variable,,,,,characters 10 版次 te_pno Variable,,,,,characters 10 价格 te_price Integer,,,,, 5 教材使用班级 班级编号 te_class Variable,,,,,characters 10 教材使用课程 te_lesson Variable,,,,,characters 10
入库表字段信息列表
字段名称 含义属性 类型 长度 备注
入库表编号 主键 i_no Integer 5 入库时间 自动获取系统时间 i_time Integer 6 入库数量 i_count Integer 5 使用者 教师等实体的编号 i_use Variable,,,,,characters 10
出库表字段信息列表
字段名称 含义属性 类型 长度 备注
出库表编号 主键 o_no Integer 5 出库时间 自动获得系统时间 o_time Integer 6 出库数量 o_count Integer 5 使用者 教师等实体的编号 o_use Variable,,,,,characters,,,,, 10 经办人 管理员编号 o_worker Variable,,,,,characters,,,,, 10 用途 o_way Variable,,,,,characters 10
库存字段信息列表
字段名称 含义属性 类型 长度 备注
库房 主键 st_name Variable,,,,,characters,,,,, 10 库存数量 st_count Integer 5
第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
)
as
name,,,,,varchar(20);
begin
select,,,,,te_name,,,,,into,,,,,name,,,,,from,,,,,教材,,,,,where,,,,,te_name_value=教材.te_name;
if,,,,,SQL%ROWCOUNT!=0,,,,,then
open,,,,,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,,,,,then
dbms_output.put_line('无信息!');
end,,,,,select_kc3;
在库查询中还要求对数量、价钱等进行统计。
create,,,,,or,,,,,replace,,,,,procedure,,,,,select_kc4
(
,,,,,sel_cur,,,,,out,,,,,sys_refcursor
)
as
name,,,,,varchar(20);
begin
open,,,,,sel_cur,,,,,for
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,select,,,,,sum(st_count),count(*),s
um(st_count*te_price),,,,,from,,,,,教材,库存,,,,,where,,,,,教材.te_inno=库存.te_inno;
exception,,,,,
when,,,,,no_data_found,,,,,then
dbms_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 )
as
inno,,,,,int;
begin
select,,,,,c_no,,,,,into,,,,,inno,,,,,from,,,,,出库表,,,,,where,,,,,c_no_value=出库表.c_no;
if,,,,,SQL%ROWCOUNT!=0,,,,,then
open,,,,,sel_cur,,,,,for
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,select,,,,,*from,,,,,出库表,,,,,where,,,,,c_no_value=出库表.c_no;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,end,,,,,if;
exception,,,,,
when,,,,,no_data_found,,,,,then
dbms_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;
begin
insert,,,,,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,,,,,then
update,,,,,订单,,,,,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
)
as
time,,,,,varchar(20);
begin
select,,,,,l_time,,,,,into,,,,,time,,,,,from,,,,,订单,,,,,where,,,,,l_time_value=订单.l_time;
if,,,,,SQL%ROWCOUNT!=0,,,,,then
open,,,,,sel_cur,,,,,for
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,select,,,,,l_no,te_inno,te_no,l_sign,,,,,from,,,,,订单,,,,,where,,,,,l_time_value=订单.l_time;
end,,,,,if;
exception,,,,,
when,,,,,no_data_found,,,,,then
dbms_output.put_line('无信息!');
end,,,,,select_d;
第7章,,,,,,,,,,课程设计的收获
这次的课程设计可以说是对我们这一学期对于数据库的所有知识的一次综合练习及强化,这次课程设计不光使我对于这学期的知识有了更深刻的认识,也使我对数据库的功能、作用及实现过程有了一个整体的概念。这次的课程设计让我柔和了数据库课程的零零散散的知识,使之成为了一个整体的模式。更使我学会了如何将知识能合理顺利的运用,将书本知识化为自己所用。
在这次课程设计中,我们小组所选择的是设计一个教材管理系统,这对我们来说是一次练习我们所学知识的过程,也可以说是一个挑战的过程。虽然学了数据库一年,但是我们还是缺少经验。现在我们利用自己学到的知识设计并制作一个教材管理系统,这本身就是一个知识转化为能力的过程,所以大家积极的投入了所有的力量。
在具体的设计与实施中,我们用自己的知识将一个个任务转换为文字,感受到了一个管理系统从无到有的过程,对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻到其精髓。这次课程设计加深了我们对数据库系统设计相关知识以及SQL,,,,,Plus相关功能的理解,比如建立基本的表、视图、索引、存储过程、触发器等。这次课程设计使我比以前更加熟悉了SQL,,,,,Plus的使用,并在解决各种问题的过程中学到了很多新的知识。
在设计中我们基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
;然后设计并制作,实施过程中我们深刻的认识到认真执行管理系统软件
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的重要性;而实现数据库的主要功能就是执行查询、取回数据、插入新的记录、更新数据库中的数据、删除记录、创建新数据库、新表、设置表、存储过程的权限等。
这些方面通过这次课程设计我们都有了提高。
在这次课程设计中,我们被分配以小组为单位去完成教材管理系统的设计与制作,所以小组内的分工和相互协调很重要,大家可以相互学习,将自己的不足弥补并加强一下。这样可以很好的提高大家的综合能力和合作意识,并有效的缩短开发时间。
数据库的课程设计结束了,通过这次的学习我更好的掌握数据库各方面的知识,了解到数据库的功能是非常强大的,在整理、查询、分析数据方面是一款强有力的工具。面对目前的信息化社会,尤其是计算机方面的课程更是如此,必要的上机练习是必不可少的。之前的计算机语言、汇编语言等,都是在上机练习中得到顺利掌握。面对这学期的数据库也是如此的过程,在开始对理论知识的学习,然后进行上机练习,目的在于让我们更好的掌握其知识,熟悉数据库编程语言等。尽管在学习过程中也遇到了不少问题,但我们积极询问老师,和同学共同商讨,查询资料把问题得以解决,培养了解决问题的能力,查阅资料是很好的手段,在今后的学习过程中应该继续发扬这些能力。