数据库原理与应用 课件 孟凡荣 第7-9章 数据组织与存储管理、MySQL数据库操作、数据库使用案例_第1页
数据库原理与应用 课件 孟凡荣 第7-9章 数据组织与存储管理、MySQL数据库操作、数据库使用案例_第2页
数据库原理与应用 课件 孟凡荣 第7-9章 数据组织与存储管理、MySQL数据库操作、数据库使用案例_第3页
数据库原理与应用 课件 孟凡荣 第7-9章 数据组织与存储管理、MySQL数据库操作、数据库使用案例_第4页
数据库原理与应用 课件 孟凡荣 第7-9章 数据组织与存储管理、MySQL数据库操作、数据库使用案例_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

第7章数据组织与存储管理7.1B+树7.2跳跃表7.3LSM树7.4布隆过滤器第7章数据组织与存储管理三种基本数据存储引擎?第7章数据组织与存储管理1、哈希存储引擎(高效随机查找)2、B树存储引擎(高效范围查找)3、LSM树存储引擎第7章数据组织与存储管理如果需要满足下述要求,需要怎样的数据结构:写多读少能够高速写入大量数据能够高速读取大量数据著名计算机科学家N.Wirth说过:程序=算法+数据结构HBase代码行数超过150万,仍然是算法和数据结构组成HBase的一个列族本质上就是一棵LSM树(Log-StructuredMergeTree)。该树分为内存部分和磁盘部分内存部分是一个维护有序数据集合的数据结构,可以选择平衡二叉树、红黑树、跳跃表等维护有序数据集合的结构。HBase选择了跳跃表为了避免不必要的IO耗时,HBase选择了布隆过滤器,用来快速判断key值是否存储在当前块中7.1B+树7.1B+树B+树可以定义一个m值作为预定范围,即m路(阶)B+树。一个节点的结构是:(K1,P1,K2,...Km-1,Pm),其中P为指向子节点(子树)的指针,K为索引键值。对于根节点,如果它本身不是叶子节点,则至少拥有1个关键字,即至少有2个子树除了根节点,非叶子节点至少拥有

个指针;叶子节点最少

个索引键值除了根节点,所有节点最多包含

个子树,即

个索引键值7.1B+树非叶子节点不保存数据,只保存关键字用作索引,所有数据都保存在叶子节点中。非叶子节点有若干子树指针,如果非叶子节点索引键值为k1,k2,…km,那么第一个子树索引键值判断条件为小于k1,第二个为大于等于k1而小于k2,以此类推,最后一个为大于等于km,总共可以划分出m个区间,即可以有m个分支。7.1B+树

插入键值7的情况(父节点无分裂)1.插入操作7.1B+树图中给出了一个节点的分裂情况:向树中插入键值7。首先通过查找算法定位插入的位置,在叶节点的6和9两个键值之间插入7。设当前叶节点的阶数为4,每个叶节点最多可以存放3个键值,因此需要进行节点的分裂操作,右图所示。以位置为m/2位置的键值,即6为分裂点,5和6保留在当前节点,7和9传输到新创建的节点中,同时将键值7提升至父节点中,增加指向父节点的指针和同级节点的指针。1.插入操作7.1B+树插入键值2的情况(父节点有分裂)1.插入操作7.1B+树图中给出了一个非叶节点的分裂情况:若向图中的B+树中插入键值2时,在包含(1,3,4)的叶子节点中插入该值以后,该节点超过了最大键值个数3,因此需要进行分裂。选择键值2处作为分裂点,将键值3提升至父节点,并将(1,3,4)节点分裂成两部分,1和2保留在原始节点中,3和4放在新创建的节点中。之后,由于非叶节点(5,7,11)在插入键值3后,超过了最大键值个数,需要再次进行分裂,提升键值7,创建新的根节点,树的高度由2变为3,此处因为是非叶节点分裂,所以新创建的节点(11)中不用重复保留键值7。最后,增加新节点到父节点的指针。7.1B+树删除键值2的情况(合并)2.删除操作7.1B+树删除键值9的情况(重新分配)2.删除操作思考题请自己查找B+树的构造、插入、删除、查询等操作的代码,搞懂执行过程。7.2跳跃表跳跃表(skipList)是一种能高效实现插入、删除、查找的内存数据结构,这些操作的期望复杂度都是O(logN).这种数据结构是由WilliamPugh发明的,最早出现于他在1990年发表的论文《SkipLists:AProbabilisticAlternativetoBalancedTrees》。跳跃表被广泛地使用在KV数据库中,如Redis、LevelDB、HBase都是把跳跃表作为一种维护有序数据集合的基础数据结构。7.2

跳跃表链表的复杂度是多少?O(n)7.2跳跃表每条链表都是有序的每条链表都有两个元素:正无穷大(+∞)和负无穷大(-∞),分别表示链表的头部和尾部从上至下,上层链表元素集合是下层链表元素集合的子集跳表的高度定义为水平链表的层数1.定义7.2跳跃表(1)由很多层结构组成,level是通过一定的概率随机产生的;(2)每一层都是一个有序的链表,默认是升序;(3)最底层(Level1)的链表包含所有元素;(4)如果一个元素出现在Leveli的链表中,则它在Leveli之下的

链表也都会出现;

(5)每个节点包含两个指针,一个指向同一链表中的下一个元素,一个指向下面一层的元素。2.性质7.2跳跃表以左上角元素(设为currentNode)作为起点如果发现currentNode后继节点的值小于等于待查询值,则沿着这条链表向后查询,否则,切换到当前节点的下一层链表。继续查找,直到找到待查询值为止(或者currentNode为空节点)。查找元素15的流程7.2跳跃表每两个结点会抽出一个结点作为上一级索引的结点,那第一级索引的结点个数大约就是n/2,第二级索引的结点个数大约就是n/4,第三级索引的结点个数大约就是n/8,依次类推,也就是说,那第k级索引结点的个数就是n/(2^k).假设索引有k级,最高级的索引有2个结点。通过上面的公式,我们可以得到n/(2^k)=2,从而求得k=logn-1,如果包含原始链表层,整个跳表高度是logn.如果在跳表中每一层索引需要遍历m个节点,则在跳表中查询一个数据的时间复杂度为O(m*logn).查询的时间复杂度7.2跳跃表那这个m的值是多少呢?按照前面这种索引结构,我们每一级索引都最多只需要遍历3个结点,也就是说m=3所以在跳表中查询任意数据的时间复杂度就是O(logn)也就是这些多级索引把一个单链表分成了一个个的区间段,每次索引层的查找都确定了一个小的区间段,于是就提高了效率,但是却浪费了建立索引需要的空间,这就是空间换时间的思路7.2跳跃表假设单链表的长度为n,第一级索引大概n/2个节点,第二级索引大概n/4个节点,第三级索引大概n/8个节点。依次类推直到剩下2个索引节点。于是组成了一个等比数列:n/2、n/4、n/8、.........8、4、2.这些级的索引加起来等于n-2,所以跳表的空间复杂度O(n),即长度为n单链表在每隔两个节点抽取一个索引节点时,组成的跳表需要额外n个节点来存储索引。空间复杂度7.2跳跃表如果每隔三个节点抽取一个索引节点,那么第一层索引节点数大概为n/3,第二层索引的节点数大概为n/9,依次类推假设最后一层索引节点数为1,则组成的等比数列是n/3、n/9、n/27、.......9、3、1.加起来的和为(n-1)/2,空间占用差不多减少了一半的存储。实际上索引占用空间相比原始单链表本身节点小巫见大巫了,毕竟一半节点中存储的是对象,而索引中只是id,占不了多少空间。如何降低空间复杂度7.2跳跃表1、给定一个有序的链表。

2、选择链表中最大和最小的元素,然后从其他元素中按照一定算法(随机)随即选出一些元素,将这些元素组成有序链表。这个新的链表称为一层,原链表称为其下一层。

3、为刚选出的每个元素添加一个指针域,这个指针指向下一层中值同自己相等的元素。Top指针指向该层首元素

4、重复2、3步,直到不再能选择出除最大最小元素以外的元素。跳跃表的构建7.2跳跃表第一步,需要按照查找流程找到待插入元素的前驱节点9第二步,在链表中插入节点10第三步,按照如下随机算法生成一个高度值:插入操作插入元素10的流程7.2跳跃表//p是一个(0,1)之间的常数,一般取p=1/4或1/2PublicintrandomHeight(doublep){intheight=0;while{random.nextDouble()<preturnheight+1;}random.nextDouble()返回一个大于或等于0.0且小于1.0的随机浮点数。随机函数的选择是非常有讲究的,从概率上讲,能够保证跳表的索引大小和数据大小平衡性,不至于性能的过度退化。至于随机函数的选择,见上面的代码实现过程,而且实现过程并不是重点,掌握思想即可。插入操作7.2跳跃表第四步,将待插入节点按照高度值生成一个垂直节点(这个节点的层数等于高度值),之后插入到跳跃表的

多条链表中。假设height=randomHeight(p),这里分为

两种情况:

如果height大于跳跃表的高度,则跳跃表的高度被提升为height,同时需要更新头部节点和尾部节点的指针指向。如果height小于等于跳跃表的高度,则只需要更新待插入元素前驱和后继的指针指向。插入操作7.2跳跃表7.2跳跃表7.2跳跃表删除操作7.3LSM树LSM树本质上和B+树一样,是一种磁盘数据的索引结构。和B+树不同的是,LSM树的索引对写入请求更友好。因为无论是何种写入请求,LSM树都会将写入操作理解为一次顺序写,而HDFS擅长顺序写入(HDFS不支持随机写入),因此,基于HDFS实现的HBase采用LSM树作为索引是一种合适的选择。7.3LSM树LSM树的索引结构ConcurrentSkipListMemStorehfilehfilehfilehfilehfileflushMemoryDisk7.3LSM树LSM树的索引有两部分构成:内存部分和磁盘部分。内存部分是一个SkipList(跳表),Key就是HBase中KeyValue的Key的构成(rowkey,family,Qualifier,Timestamp,Type)Data数据块Block’TypeCell(KeyValue)CellCell……BlockType:块的类型Cell:KeyValue键值对KeyLenValueLenRowLenRowCFLenCFColTimeStampKeyTypeValue7.3LSM树一般来说,LSM中存储的是多个KeyValue组成的集合,每个KeyValue都会用一个字节数组来表示。字节数组设计如下:KeyValue存储格式KeyLenValLenRowkeyLenRowkeyBytesfamilyLenfamilyBytesqualifierBytesTimestamp(8B)Type(1B)valueBytes(1B)qualifierBytes:存储Qualifier的二进制内容。注意:HBase并没有单独分配字节用来存储qualifierLen,但可以计算出来qualifierLen=keyLen-rowkeyLen-familyLen-8B-1B7.3LSM树type:表示这个keyValue操作的类型,HBase内由Put、Delete、DeleteColumn、DeleteFamily等。该字段表明了LSM树内存的不只是数据,而是每一次操作记录.Value部分直接存储在valueBytes中,所以,字节数组主要是key部分的设计。1.KeyValue存储格式keyLen(4B)valLen(4B)rowkeyLen(2B)rowkeyBytesfamilyLen(1B)familyBytesqualifierBytestimestamp(8B)type(1B)valueBytes(1B)7.3LSM树LSM树中KeyValue的Key部分,有3个字段必不可少:RowKey的二进制内容一个表示版本号的64位long值,在HBase中对应timestamp;这个版本号通常表示数据的写入先后顺序,版本号越大的数据,越优先被用户读取。Type,表示这个KeyValue的操作类型。本质上,LSM存储的并非只有数据,而是操作记录。这正是LSM(LogStructuredMerge-Tree)中log的含义。7.3LSM树LSM树的索引结构ConcurrentSkipListMemStorehfilehfilehfilehfilehfileflushMemoryDiskCompaction7.3LSM树为了避免flush操作影响写入性能,会先把当前写入的MemStore设为Snapshot,不再容许新的写入操作写入这个MemStore,另外一个内存空间作为MemStore。Snapshot的MemStore写入完毕,对应内存空间就可释放。因此,可以通过两个MemStore来实现稳定的写入性能。整个写入过程,LSM树都是append操作(磁盘顺序写入),没有seek+write(磁盘随机写入)。LSM树是一种对写入极为友好的索引结构。7.3LSM树磁盘上的数据文件随着数据的增加不断增多,对用户的读取请求,需要进行大量的多路归并操作。需要将key值相同的数据全局综合起来(Compaction),选择合适的版本返回给用户。/u010761477/article/details/898863397.3LSM树compaction(异步)操作分为两种类型:majorcompact:不宜频繁使用优点:合并之后只有一个文件,读取性能最高缺点:合并所有的文件需要很长时间,消耗大量带宽。minorcompact优点:局部的compact操作,少了IO减少文件个数,提升读取性能缺点:全局操作,无法在合并过程中完成。7.3LSM树写入操作转换为磁盘的顺序写入,极大提高了写入的效率。对读取操作不十分友好设计了异步的compaction操作,提高读取性能HBase选择LSM树这种索引结构是最合适的总结7.4布隆过滤器在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。当推荐系统推荐新闻时会从每个用户的历史记录里进行筛选,只将不在历史记录中的新闻推荐给用户。如何快速查找呢?将哈希与位图结合,即布隆过滤器7.4布隆过滤器如何高效判断元素w是否存在于集合A中?哈希表对于小数据集是比较有效的解决策略布隆过滤器由一个长度为N的0,1数组组成。首先将数组array每个元素都设置为0.对集合A中的每个元素w,做K次哈希,第i次哈希值对N取模得到一个index(i),index(i)=HASH_i(w)%N,将array数组中的array[index(i)]置为1。7.4布隆过滤器举例A={x,y,z},M=18,K

=3

初始化array=000000000000000000对元素x,HASH_0(x)%M=1,HASH_1(x)%M=5,HASH_2(x)%M=1301234567891011121314151617010001000000010000012345678910111213141516177.4布隆过滤器对元素y,HASH_0(y)%M=4,HASH_1(y)%M=11,HASH_2(y)%M=1601001100000101001001234567891011121314151617对元素z,HASH_0(z)%M=3,HASH_1(z)%M=5,HASH_2(z)%M=11010111000001010010012345678910111213141516177.4布隆过滤器若有一个元素w,K次HASH值为:HASH_0(w)%M=4,HASH_1(w)%M=13,HASH_2(w)%M=15由于布隆过滤器的第15位为0,因此可以确定w肯定不在集合A中010111000001010010012345678910111213141516177.4布隆过滤器若有一个元素t,K次HASH值为:HASH_0(t)%M=5,HASH_1(t)%M=11,HASH_2(t)%M=13布隆过滤器的各位都为1,但是不能确定t是否在A中010111000001010010012345678910111213141516177.4布隆过滤器对于任意给定的元素w,运用布隆过滤器可得到两个结论w可能存在于A中w肯定不存在于A中010111000001010010012345678910111213141516177.4布隆过滤器k为哈希函数个数,m为布隆过滤器长度,n为插入的元素个数,p为误报率。空间复杂度是O(m),时间复杂度是O(k),插入、查询的时间复杂度都是O(k)数据库原理TheTheoryofDatabaseSystem第八章MySQL数据库操作MySQL简介MySQL查询语句MySQL数据库的基本操作开发平台与MySQL的连接MySQL数据库的备份、恢复和安全本讲主要内容8.1MySQL简介8.1.1MySQL(1)MySQL是目前最流行的关系型数据库管理系统之一。(2)MySQL是最好的RDBMS应用软件之一。(3)MySQL将数据存于表中,通过外键建立关联。

(1)查询速度快,灵活性高。

(2)社区版性能卓越。

(3)软件体积小、运行速度快、开放源码。8.1.2MySQL特点

8.1MySQL简介MySQL采用的是客户机/服务器(Client/Server)体系结构:(1)一个是在数据服务器上的数据库服务程序。(对应Server端)(2)连接到数据库服务器、用于用户和服务器交互的客户机程序。(对应Client端)8.2MySQL的体系结构客户机/服务器体系结构优点:(1)服务器提供并发控制,使两个用户不能同时修改相同的记录。(2)不必在数据库所在的机器上注册。8.2MySQL的体系结构

8.3MySQL的查询语言

MySQL使用结构化查询语言(StructuredQueryLanguage,SQL)与服务器通讯。8.3.1表、列和数据类型表是数据在一个MySQL数据库中的存储机制。8.3.1表、列和数据类型3.2表中的列描述该表所表示的实体的属性,每个列都有一个名字及各自的特性。列由两部分组成:数据类型(datatype)和长度(length)。8.3.1表、列和数据类型 MySQL常用的数据类型有数值类型、字符串类型及日期类型等。函数:(1)函数(function)是存储在数据库中的代码块。(2)函数可以把计算机结果直接返回给调用的SQL。8.3.2函数和SQL语句SQL语句:(1)非过程化程序设计语言。(2)简单易学8.4MySQL数据库的安装

(1)可以官方获取安装文件。(2)推荐下载MySQL社区版服务器。(3)最新版本和历史版本各有优点。(4)注意最新版本需要python3.6支持。8.5MySQL数据库的基本操作

8.5.1数据库操作(1)登录:mysql-h-uroot-p(2)创建:createdatabase数据库名(3)显示存在数据库:showdatabases(4)删除数据库:dropdatabase数据库名创建表:创建表之前需要用“use数据库名”来选择当前操作的数据库。createtable表名(属性名数据类型[完整性约束条件],

属性名数据类型[完整性约束条件], ......

属性名数据类型[完整性约束条件]);8.5.2数据库表的操作8.5.2数据库表的操作创建表的时候创建索引:createtable表名(属性名数据类型[完整性约束条件],

属性名数据类型[完整性约束条件], ......

属性名数据类型[完整性约束条件],[unique|fulltext|spatial]index|key [别名](属性名1[(长度)][asc|desc]));8.5.2数据库表的操作【例7-1】假定需要在学生数据库(StudentDB)中创建一张学生表,要求包括学生的标识信息(id,自增),学号(code,varchar(9),主键),姓名(name,varchar(20),非空),性别(sex,varchar(2)),出生日期(birth,date),所在学院(school,school,非空),所在班级(class,varchar(10),非空),户籍所在地(location,varchar(16),非空),入学成绩(score,float,非空,默认值为0)。createtablestudent(idintnotnullauto_incrementprimarykey, codevarchar(10)notnull, namevarchar(20)notnull, sexvarchar(2), birthdate, schoolvarchar(20)notnull, classvarchar(10)notnull, locationvarchar(16)notnull, scorefloatnotnulldefault0.0, uniqueindexcodeidx(codeasc));8.5.2数据库表的操作8.5.2数据库表的操作查看表的基本定义:describe表名;查看表默认的存储引擎和字符编码:showcreatetable表名;修改表名:showcreatetable表名;修改字段的数据类型:altertable表名modify属性名数据类型;增加字段:altertable表名add属性名1数据类型[完整性约束条件][first|after属性名2];删除字段:altertable表名drop属性名;修改字段的排列位置:altertable表名modify属性名1数据类型first|after属性名2;….8.5.3数据库视图操作创建视图:CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]VIEWview_name[(column_list)]ASselect_statement[WITH[CASCADED|LOCAL]CHECKOPTION]删除视图:DROPVIEW[IFEXISTS]view_name[,view_name2]...修改视图:参考创建视图语法中的ORREPLACE关键字。查看视图:showcreateviewview_name8.5.3数据库视图操作(1)普通查询select*from表名8.5.4数据操作语言8.5.4数据操作语言(2)查询特定行select*from表名where属性=实体属性名8.5.4数据操作语言(3)查询特定列select属性名from表名where属性=实体属性名8.5.4数据操作语言(4)条件查询使用WHERE或者HAVING从句(HAVING表达的是第二条件,需要与GROUPBY从句配合使用,不能在WHERE子句中的项目使用HAVING。)算术运算符比较运算符逻辑运算符运算符说明运算符说明+加*乘-减/除运算符说明运算符说明<

小于!=或<>不等于<=小于等于>=大于等于=等于>

大于运算符说明NOT或!逻辑非OR或||逻辑或AND或&&逻辑与8.5.4数据操作语言(4)条件查询查找性别为男并且分数大于528的学生情况

8.5.4数据操作语言(5)模糊查询

对于查询条件不明确的情况下,可以使用’like’关键字对带有通配符的条件进行查询。常用的通配符查询姓名中带有“李”字的学生情况。通配符说明%包含零个或多个字符组成的任意字符串_(下划线)任意一个字符8.5.4数据操作语言(6)查询排序

使用orderby子句对查询返回的结果按一列或多列排序。orderby子句的语法格式为:ORDERBYcolumn_name[ASC|DESC][,…]

按分数升序排序8.5.4数据操作语言(7)查询分组与统计groupby关键字可以将查询结果按照某个字段或多个字段进行分组。

GROUPBY属性名[HAVING条件表达式][WITHROLLUP]GROUPBY关键字通常与集合函数一起使用。函数说明COUNT()用于统计记录的条数SUM()用于计算字段的值的总和AVG()用于计算字段的值的平均值MAX()用于查询字段的最大值MIN()用于查询字段的最小值8.5.4数据操作语言(7)查询分组与统计

统计每班学生姓名。8.5.4数据操作语言(8)多表查询

内连接(innerjoin):select*from表1[inner]join表2on表1和表2之间的连接条件在student表和class_table表中查询姓名为王静的学生情况8.5.4数据操作语言(8)多表查询

外连接:分为左连接、右连接和完全连接。左连接:select*from表1leftjoin表2on表1和表2之间的连接条件右连接:select*from表1rightjoin表2on表1和表2之间的连接条件

8.6开发平台与MySQL数据的连接

MySQL通过连接器(Connector)和API为Java、C++、.NET、PHP、Python、C等语言开发的客户端提供访问数据库提供驱动程序和访问接口。同时MySQL提供了ODBC、Java(JDBC)、Perl、Ruby等语言(连接驱动)的数据库访问实例程序。8.6开发平台与MySQL数据的连接

8.6.1Java语言访问MySQL(1)建立lib文件夹,将连接的JAR文件拷贝到lib目录下。(2)在Eclipse上右键单击工程项目名称,在菜单中选择Javabuildpath项目。(3)在弹出的界面中选择Libraries分页,点击AddJARs...按钮,将拷贝进去的JAR文件加入项目中。(4)在需要访问数据库的代码中引入MySQLforJavaConnector的类库。8.6开发平台与MySQL数据的连接

8.6.2.NET平台访问MySQL(1)创建相关工程项目。(2)添加对MySQLConnector的引用。(3)在弹出对话框中,选择“浏览”,找到MySQLConnectorforNet组件的安装位置,打开Assemblies文件夹下的v4.0或v4.5文件夹,选择MySql.Data.dll动态链接库,选择完成之后点击“确定”按钮。(4)在需要访问MySQL数据库的页面中使用“usingMySql.Data.MySqlClient;”。8.7MySQL数据库的备份与恢复

最常用的MySQL数据库备份与恢复方式:mysqldump(1)mysqldump备份mysqldump–hhostname-P端口-u用户名-p密码(–database)数据库名>文件名.sql(2)还原数据库mysql–hhostname–uusername–ppassworddatabasename<文件名.sql(3)导入数据库mysql>source/home/sa/文件名.sqlMySQL的安全性主要由系统的内部安全和网络安全两部分来决定。

保障MySQL数据库的安全性需要以下配置:(1)修改root用户口令,删除空口令

(2)删除默认数据库和数据库用户

(3)改变默认MySQL管理员帐号

(4)关于密码的管理

(5)使用独立用户运行MySQL

(6)禁止远程连接数据库8.8MySQL数据库的安全

(7)限制连接用户的数量(8)用户目录权限限制(9)命令历史记录保护(10)禁止MySQL对本地文件存取(11)MySQL服务器权限控制(12)使用Chroot方式来控制MySQL的运行目录(13)客户程序的安全性保障8.8MySQL数据库的安全

数据库原理TheTheoryofDatabaseSystem第九章数据库应用案例本章重点以煤矿采掘衔接计划管理系统为例介绍数据库的应用开发本讲主要内容9.1引言本章以煤矿采掘衔接计划管理系统和企业管理信息支撑平台为应用实例,展示基于C/S和基于B/S结构的数据库应用系统开发过程。两个项目主要从项目需求概要、数据流图、数据库设计、系统流程、功能设计等角度展开,立足于工程项目的具体业务需求,介绍基于数据库的信息管理系统开发过程。(1)煤矿生产划分为瓦斯抽放、综机配套、巷道掘进、原煤开采(回采)等工程项目。(2)以回采为龙头的各专业的高效组织和有序衔接,以及对生产区队、生产设备等资源的合理配置。9.2.1需求概要

9.2煤矿采掘衔接计划管理系统(1)顶层数据流图9.2.2数据流图(2)一层数据流图9.2.2数据流图9.2.2数据流图(3)二层数据流图(以生产区队管理为例)二层数据流图-生产区队管理(4)数据字典:数据字典是描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合。9.2.2数据流图

(1)功能设计

根据二层数据流图,对煤矿采掘衔接计划系统的业务进一步分解为功能模块图。煤矿采掘衔接计划系统的业务功能主要由两大模块组成:基础数据管理系统和计划编制管理系统。9.2.3

温馨提示

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

评论

0/150

提交评论