数据库可视化管理系统_第1页
数据库可视化管理系统_第2页
数据库可视化管理系统_第3页
数据库可视化管理系统_第4页
数据库可视化管理系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE1数据库可视化管理系统第一章绪论1.1研究背景与意义1.1.1研究背景零八年北京奥林匹克运动会开幕式上,有一幅巨大的LED画轴吸引了全世界观众的目光,画轴缓缓展开,将中华民族上下五千年的璀璨历史以动画的形式表现出了。全世界人民通过这种可视的形式,消除了全球各个国家因为语言文字而产生的隔阂和文化的差异,使得全世界人民都可以欣赏到我国悠久辉煌的文明,把中国展现在世界舞台。当今社会,伴随着计算机信息技术的快速发展,越来越多的信息可以被直观的获取,可视化的重要性在日常生活中体现的越来越明显。视觉,是人类获取外界信息最直接而且最重要的方式之一,可视化技术就是让人们更直观的看到信息,从而提升用户的空间想象关系。而数据作为一类抽象的信息,数据可视化技术应运而生,数据可视化技术是是一种数据处理方式,可以提高人们处理数据的效率和准确性的有效工具。说到数据可视化领域的起源,要追溯到二十世纪五十年代计算机图形学的早期。数据可视化技术的基本思想,就是将数据库中的每一个数据项作为单个元素表示,使大量的数据集构成数据图像,同时将数据的各个属性值以多维数据的形式表示出来,就可以从不同的维度观察数据,从而对数据进行更深入的观察和分析。通俗的理解就是数据可视化是用视觉形式向人们展示数据重要性的一种方法。所谓数据可视化是利用图像处理技术和计算机图形学理论,将数据转换成图形然后在屏幕上显示出来,并进行交互处理的方法、理论和技术。它涉及到多个领域,比如计算机图形学、图像处理、计算机视觉、计算机辅助设计等,现今,已经成为用于研究数据表示、数据处理、决策分析等解决一系列问题的综合技术。1.1.2

研究意义2016年当今世界,我们正处于大数据时代,每个人每天都在产生数据和分享数据,产生了庞大的数据库。而数据可视化技术更是让数据如虎添翼。这对于企业来说,做好数据库可视化管理,对于业务增长有着巨大意义。面对互联网中每天产生海量数据,想要迅速的对其进行细化分析,从而更好了解网民的兴趣,并不是一件简单的事情,在碎片化时代,用户的兴趣也在随着时间变化而递减,所以分析掌握数据一定要及时有效。面对大数据的磅礴之势,网络数据定向,该如何可以实现?而数据的可视化,允许你与数据实现互动,让你洞悉搜集数据背后的趋势,深入研究客户体验和其他数据结果,从而可以让公司发现一个又一个可能的潜在新机会。数据可视化让得企业从海量的看似无关的繁杂的数据之中预见公司接下来的商业机会,并有理有据的指导企业决策者行动,降低主观决策风险。第二章相关技术介绍数据库可视化分析系统选定使用交互数据可视化分析语言IDL研发。原因是IDL内部已经嵌入了数据可视化引擎和数据分析引擎,同时还嵌入了针对大数据的面向数组运算的快速数据运算引擎以及众多的数据分析模块(IDL提供的InternationalMathematical&StatisticalLibrary,IMSL),使得大数据量的可视化分析更加简单、灵活、方便、快捷、高效。2.1

数据库管理系统DBMS介绍数据库管理系统是数据库系统的核心,是在操作系统的基础上,位于操作系统与用户之间的数据管理软件,负责对数据库进行统一的管理和控制。数据库管理系统保证了数据的安全性和完整性,同时提供了数据的并发控制和数据恢复机制。2.2.1DBMS的功能(1)数据定义数据定义功能是指用户利用DBMS提供的DDL可以方便的定义数据库系统的对象以及对象之间的关系。具体内容主要包括:数据库、数据表、视图、索引、触发器等。DDL隶属于DBMS系统结构的语言处理层。1)能够建立、修改、删除数据库。例如:SQLServer的CREATEDATABASE、ALTERDATABASE和DROPDATABASE。2)能够建立、修改、删除数据表。例如:SQLServer的CREATETABLE、ALTERTABLE和DROPTABLE。3)能够建立、修改、删除视图。例如:SQLServer的CREATEVIEW、ALTERVIEW和DROPVIEW。4)能够建立修改、、删除索引。例如:SQLServer的CREATEINDEX、ALTERINDEX和DROPINDEX。5)能够建立、修改、删除触发器。例如:SQLServer的CREATETRIGGER、ALTERTRIGGER和DROPTRIGGER。其中2)还提供了实体完整性、参照完整性和用户定义完整性约束机制,如果再配合5)则可以定义任意更复杂的完整性约束。(2)数据操纵数据操纵功能是指用户利用DBMS提供的DML可以灵活方便的对数据库中数据表的元组数据进行插入、修改、删除、查询、表报和打印等基本操作。具体内容主要包括:数据表元组数据的插入、修改、删除和查询等。DML隶属于DBMS系统结构的语言处理层。例如:SQLServer的SELECT、INSERT、DELETE和UPDATE。(3)数据控制数据操纵功能是指用户利用DBMS提供的DCL可以方便的实现对数据库的安全性、完整性、数据并发和数据恢复等进行保护控制,以保证数据的安全、正确、完整、一致和有效。具体内容主要包括:授权访问权限、MAC控制、DAC控制、规则管理和角色管理等。DCL属于DBMS系统结构的数据存取层,而提供给用户的最终管理命令则隶属于语言处理层。例如:SQLServer的GRANT、REVOKE、CREATERULE和CREATEROLE。DDL、DML和DCL构成了DBMS的核心引擎。(4)数据存储数据存储功能是指用户利用DBMS提供的存储结构和访问方式,实现对数据库的统一组织、存储和管理,减少数据冗余,并最终实现用户对数据库文件的存储和访问,提高数据库的利用率。数据存储功能对应于DBMS的数据存储层。例如:SQLServer的数据库存储为:*.MDF、日志文件存储为:*.LDF。(5)数据接口数据接口功能是指用户利用DBMS提供的系统内部接口和外部应用程序接口API,实现DBMS内部DDL、DML、DCL功能之间的相互配合与调用,同时实现DBMS与外部软件系统的之间功能调用和数据转换和数据传输等。数据接口对应于DBMS的应用层。(6)运行管理运行管理功能是DBMS的控制中心。包括数据定义、数据操纵、数据控制和数据存贮的具体实现;对数据库的安全性、完整性、并发控制和数据恢复的控制管理;数据库的备份、重组织、性能的监视与分析等内部维护等。对数据库的所有访问操作都要在DBMS的相应控制程序的统一管理之下进行,以保护和保证数据的安全性、完整性、一致性、有效性和共享性。运行管理是对DBMS的应用层、语言处理层、数据存取层和数据存储层的整体协调管理,实现四层之间的功能转换,确保系统安全稳定的运行。2.1.2

DBMS的结构对于整个数据库系统,面向用户的应用程序需要对基于操作系统的数据库进行建立、添加、查询、修改、删除、计算、统计、报表、存储、传送等复杂的数据管理。所有这些管理操作,都需要经过介于应用程序和操作系统之间的DBMS对用户的应用请求进行语法检查、语法分析、代码优化、代码生成、完整性检查、视图管理、空间管理、设备管理、访问控制、并发控制、日志管理、恢复控制和安全性检查等。为了能够使面向用户的应用程序更高效的实施对数据库的众多复杂管理,DBMS的系统结构采用了目前通用的分层结构的管理模式。即把DBMS分成应用层、语言层、访问层和存储层四个层次,并通过结构上下层之间提供的接口及其服务实现数据管理。DBMS的四层系统结构对复杂的数据管理进行了合理有效的分类,使得DBMS的系统结构层次更加清晰、从而使得数据管理更加灵活方便,同时也更加方便了DBMS的设计、实施和维护。2.1.3DBMS的工作过程对于数据库系统,用户在利用应用程序访问数据库的数据时,应用程序、DBMS、操作系统、硬件等必须协调工作,共同完成用户的访问请求。在这个复杂的数据访问过程中,DBMS起着关键的桥梁作用。DBMS的具体工作过程如下:(1)应用程序向DBMS发出访问数据库数据的请求命令。(2)DBMS对该命令进行语法检查、优化、生成可执行代码序列,并调用应用程序对应的外模式,检查应用程序的存取权限,决定是否执行该命令。(3)如果拒绝执行,则向用户返回拒绝的相关信息,返回应用程序。(4)如果接受执行,则DBMS调用模式,根据外模式/模式映像,确定应访问数据库模式中的哪些数据。(5)DBMS调用内模式,依据模式/内模式映像,确定其访问的数据文件,选择合理优化访问方式,访问选定数据库文件中的元组数据。(6)DBMS向操作系统发出执行访问所需物理元组的命令。(7)操作系统执行访问数据的相关操作,并从外存把数据库送至内存的缓冲区。(8)DBMS根据外模式/模式映像,导出应用程序所要访问的元组数据。(9)DBMS把元组数据从内存缓冲区传送到应用程序的用户工作区(UserWorkArea,UWA)。(10)DBMS向应用程序返回访问命令执行情况的状态信息。2.1.4DBMS的设计在理解了DBMS的基本功能、系统结构和工作原理之后,DBMS本身就相当于一个功能更加丰富、管理机制更加完善、系统结构更加复杂的应用软件系统。尽管DBMS也是一个软件系统,但是DBMS作为用于开发一般通用应用软件系统的开发工具,DBMS的设计与实现与一般应用系统的设计与实现有着本质的区别。一般的应用系统是面向于无程序设计能力的最终应用用户,而DBMS是面向于开发应用系统的各类设计和管理人员,所以DBMS需要提供能够胜任和完成开发应用系统的各种功能。因此DBMS在语言处理能力(自含一个语言系统)、数据表达能力(数据类型、常量、变量、数组、结构、函数、表达式等表达能力)、应用和管理接口、系统结构、系统功能、系统性能、系统稳定性、系统完整性、系统可用性、系统实用性、系统可操作性以及系统的方便灵活性等诸多方面都有更高更严格的要求。DBMS设计的内容主要包括:系统结构设计、文件系统设计、DDL设计、DML设计、DCL设计、GUI和接口设计、系统实施、系统测试、帮助系统设计、打包与销售等。(1)系统结构设计随着DBMS的规模越来越大、系统越来越复杂,DBMS的系统结构显得越来越重要。DBMS系统结构的设计是整个系统开发过程的关键步骤。对于庞大而复杂的DBMS,如果没有为DBMS设计合理的系统结构,则要想成功设计DBMS几乎是不可能的。系统结构设计通常是一个DBMS设计成败的关键。因此系统结构设计,应该按照层次系统结构模型,首先设计系统结构的核心语言层,然后再根据应用层的需求,逐层设计访问层和存储层,最后完成应用层的查询分析和存储管理应用接口。因为DBMS需要满足各种不同应用系统的设计需求,所以必须首先抽象应用系统设计的本质的公共需求,设计出完成基本功能需求的基本语言系统,然后再根据不同应用系统的设计需要,通过依次扩展功能的方法逐步扩充和完善语言层的设计,进而逐层完成系统结构设计。例如:在抽象应用系统设计的公共需求时,对于用于数据处理的数据类型体系的设计,需要抽象出具体需要多少种数据类型,每一种数据类型的取值范围、存储方式和存储空间。即:DBVAS的数据类型、取值范围、存储方式和存储空间设计如下:字符型:'';逻辑型:0/1B;日期型:'2008-06-06';时间型:'22:22:22';单字节整型:0B;双字节整型:0;四字节整型:0L;八字节整型:0LL;四字节实型:0.0;八字节实型:0.0D;媒体型:*.mid,*.JPG,*.MP3,*.MPG等。(2)文件系统设计文件系统是用于组织和存储文件的目录结构。对于一个DBMS应该有自己的文件系统,用于管理DBMS支持的诸多文件。因此合理设计适合于DBMS的文件系统,可以提高系统的运行速度。由于操作系统已经提供了功能丰富完善的文件管理系统。所以DBMS的文件系统设计应该通过操作系统提供的应用程序接口API,充分利用操作系统的文件管理功能。文件系统设计主要包括DBMS提供和支持的文件类型、存储路径、存储结构、存取方式等。文件类型不宜太多,文件的存储路径不宜太复杂,均应该按照能够满足实际需要为标准,同时提供适当的扩展。文件的存储结构包括DBMS本身的文件存储结构和使用DBMS的DDL创建的数据库和数据表的存储结构。文件的存储结构和存取方式原则上在操作系统的基础上,充分利用操作系统的API资源,同时做适当的调整。文件的存储路径、存储结构和存取方式将直接影响文件访问的效率。例如:DBVAS的数据库系列文件类型设计为:*.DBF(数据库文件),*.DTF(数据表文件),*.IDX(索引文件),*.STS(数据库状态文件),*.DVF(视图文件)等。(3)DDL设计DDL设计是指数据库定义功能的设计。DDL应该提供功能完善丰富的数据定义功能(外模式、模式、内模式)以及模式之间的映像。具体主要包括:数据库和数据表定义、索引的定义、视图定义、数据完整性定义、数据安全性定义等,并且需要把这些定义保存到DBMS的数据字典中,以备DML和DCL使用。(4)DML设计DML设计是指数据库操纵功能的设计。DML应该提供功能完善丰富的数据操纵功能。具体主要包括:数据添加、修改、查询、删除、统计、报表等,设计人员利用DML能够方便、快捷的实现对数据库的操作。(5)DCL设计DCL设计是指数据库保护控制功能的设计。在进行DCL设计时,应该充分考虑和提供数据安全性控制、数据完整性控制、多用户环境并发控制和数据库的恢复机制等四项基本数据保护控制能力。目前数据的安全性、完整性、并发性和恢复性控制能力已经成为DBMS的基本性能指标。2.2数据库可视化分析系统(DBVAS)介绍DBVAS是指利用现有的数据可视化分析技术,在DBMS系统结构的基础上,添加数据可视化分析引擎后,使得DBMS在提供数据对象的可视化功能的同时,提供对数据对象的可视化分析能力的数据可视化分析系统。即:DBVAS是能够进行数据可视化分析的DBMS。因此,把DBVAS的系统结构分为应用层、语言层、可视层、访问层和存储层等五个层次。其中可视层主要包括数据可视化引擎和数据分析引擎。9582151295400DBOS应用层应用系统语言层访问层用户存储层可视层应用层应用系统语言层访问层用户存储层可视层DBOS应用层应用系统语言层访问层用户存储层可视层应用层应用系统语言层访问层用户存储层可视层图1DBVAS系统结构2.2.1

数据可视技术数据可视技术(DataVisualizationTechnology,DVT)是指运用计算机图形学和图像处理技术,将数据转换为图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。数据可视化涉及计算机图形学、图像处理、计算机辅助设计、计算机视觉及人机交互技术等多个领域。数据可视化引擎是指包含先进可视化技术的数据可视化功能模块。2.2.2数据可视分析技术数据可视分析技术(DataVisualAnalysisTechnology,DVAT)是指运用数据分析技术,对可视的数据对象进行复杂数据分析的理论、方法和技术。数据分析涉及基础数学、应用数学、统计、模糊集理论、粗糙集理论、遗传算法、信息论等多个领域。数据分析引擎是指包含先进数据分析技术的数据可视化分析功能模块。利用可视层提供的数据可视化分析引擎,可以方便灵活的进行数据可视化分析。第三章DBVAS的DDL设计按照DBVAS的文件系统的设计要求,DDL设计的主要内容包括:建立数据库、数据表、索引文件和视图。具体格式要求与实现方法如下:3.1建立数据库(1)建立数据库语句格式(程序名:Create_D):Create_Database,'DBFName.DBF'语句功能:建立名称为DBFName.DBF的数据库。扩展名可以省略。如省略数据库的名称,则建立默认数据库:NoName.DBF。如果建立的数据库已经存在,则提示是否覆盖。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)检测数据库是否存在(使用下述WHERE方法)。如果存在,则提示是否覆盖。3)把数据库名称添加到结构DBVAS_Status的成员数组DBVAS_DBF中,实现方法如下:DBVAS_DBF=[DBVAS_DBF,'DBFName']4)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。(2)浏览数据库语句格式(程序名:Browse_D):Browse_Database语句功能:浏览DBVAS的所有数据库。扩展名可以省略。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)使用WHERE方法显示结构DBVAS_Status的成员数组DBVAS_DBF的值。(3)删除数据库语句格式(程序名:Delete_D):Delete_Database,'DBFName.DBF'语句功能:删除名称为DBFName.DBF的数据库。扩展名可以省略。如果删除的数据库不存在,则提示。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)使用WHERE方法检测数据库是否存在。如果不存在,则提示。3)在结构DBVAS_Status的成员数组DBVAS_DBF中找到删除的数据库,并删除。实现方法是使用WHERE函数找到不被删除的数据下标,然后采用下标赋值即可。即:DeleteSuffix=WHERE(DBVAS_DBFEQ'DBFName',DeleteNo,$COMPLEMENT=UnDeleteSuffix,NCOMPLEMENT=UnDeleteNo)DBVAS_DBF=DBVAS_DBF[UnDeleteSuffix]4)在结构DBVAS_Status的成员数组DBVAS_DTF中找到与删除数据库匹配的数据表,并删除。实现方法同上。5)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。3.2建立数据表(1)建立数据表语句格式(程序名:Create_T):Create_Table,'DBFName$DTFName($Field1,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK;$……Fieldn,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK)'其中:Field1,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK的含义如下:字段,类型,宽度,是否主键,是否索引,是否外键>主键表>主键例如:建立数据库Student.DBF的数据表:Stdent$Student.DTF、Stdent$Course.DTF和Stdent$StdentCourse.DTF如下:Create_Table,'Student$Student($SNo,C,10,1,1,0;SName,C,10,0,0,0;$SSex,L,1,0,0,0;SAge,2I,2,0,0,0)'Create_Table,'Student$Course($CNo,C,10,1,1,0;CName,C,20,0,0,0;$CCredit,1I,1,0,0,0)'Create_Table,'Student$StudentCourse($SNo,C,10,1,1,1>Student$Student>SNo;$CNo,C,10,1,1,1>Student$Course>CNo;$Grade,4E,4,0,0,0)'语句功能:建立名称为DBFName$DTFName.DTF的数据表。扩展名可以省略。如省略数据表的名称,则建立默认数据表:IDLDBF$NoName.DTF。如果建立的数据表已经存在,则提示是否覆盖。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)使用WHERE方法检测数据库是否存在。如果存在,则直接使用;否则,则建立DBFName.DBF。3)使用WHERE方法检测数据表是否存在。如果存在,则提示是否覆盖。4)把数据库名称添加到结构DBVAS_Status的成员数组DBVAS_DBF中(如果已经存在,则不再添加),数据表名称添加到结构DBVAS_Status的成员数组DBVAS_DTF中,实现方法如下:DBVAS_DBF=[DBVAS_DBF,'DBFName']DBVAS_DTF=[DBVAS_DTF,'DBFName$DTFName']5)对索引属性,需要建立相应的索引文件。6)对外键,需要使用FILE_TEST判断主键表是否存在,主键是否匹配。7)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。8)使用SAVE保存数据表结构DBVAS_TableStructure到DBFName$DTFName.DTF。(2)浏览数据表语句格式(程序名:Browse_T):Browse_Table'DBFName.DBF'语句功能:浏览指定数据库的所有数据表。扩展名可以省略。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)使用WHERE方法,检索匹配的数据库。如果数据库不存在,则提示。3)检索并显示结构DBVAS_Status的成员数组DBVAS_DTF中匹配的数据表。(3)删除数据表语句格式(程序名:Delete_T):Delete_Table,'DBFName$DTFName.DTF'语句功能:删除名称为DBFName$DTFName.DBF的数据表。扩展名可以省略。如果删除的数据表不存在,则提示。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)检测数据表是否存在。如果不存在,则提示。3)使用WHERE方法检索数据库(数据表中$之前的字符串为数据库名)。4)使用WHERE方法检索与数据库匹配的数据表,并删除。5)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。(4)浏览字段语句格式(程序名:Browse_F):Browse_Field'DBFName$DTFName.DTF'语句功能:浏览指定数据表的字段信息。扩展名可以省略。实现方法:1)使用FILE_TEST检测DBFName$DTFName.DTF是否存在。如果不存在,则提示。2)使用RESTORE恢复DBFName$DTFName.DTF得到DBVAS_TableStructure。3)显示结构DBVAS_TableStructure的成员DBFName$DTFName_Structure的值。(5)添加字段语句格式(程序名:Add_F):Add_Field,'DBFName$DTFName($Field1,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK;$……Fieldn,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK)'语句功能:在DBFName$DTFName.DTF中添加字段。实现方法:1)使用FILE_TEST检测DBFName$DTFName.DTF是否存在。如果不存在,则提示。2)使用RESTORE恢复DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在结构DBVAS_TableStructure的成员DBFName$DTFName_Structure中检测字段Fieldi是否存在,如果存在,则不添加;否则添加。其它处理同Create_table。4)使用SAVE保存新结构DBVAS_TableStructure到DBFName$DTFName.DTF。(6)删除字段语句格式(程序名:Delete_F):Delete_Field,'DBFName$DTFName(Field1;Field2;…;Fieldn)'语句功能:在DBFName$DTFName.DTF中删除指定字段。实现方法:1)使用FILE_TEST检测DBFName$DTFName.DTF是否存在。如果不存在,则提示。2)使用RESTORE恢复DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在结构DBVAS_TableStructure的成员DBFName$DTFName_Structure中检测字段Fieldi是否存在,如果存在,则删除;否则提示。4)使用SAVE保存新结构DBVAS_TableStructure到DBFName$DTFName.DTF。(7)修改字段语句格式(程序名:Alter_F):Add_Field,'DBFName$DTFName($Field1,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK;$……Fieldn,Type,Width,YnPK,YnIDX,YnFK>PKTable>PK)'语句功能:在DBFName$DTFName.DTF中修改字段。实现方法:1)使用FILE_TEST检测DBFName$DTFName.DTF是否存在。如果不存在,则提示。2)使用RESTORE恢复DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在结构DBVAS_TableStructure的成员DBFName$DTFName_Structure中检测Fieldi是否存在,如果不存在,则不修改;否则先调用Delete_Field删除原同字段的字段,然后调用Add_Field添加该字段。其它处理同Create_table、Add_Field、Delete_Field。4)使用SAVE保存新结构DBVAS_TableStructure到DBFName$DTFName.DTF。3.3建立索引文件(1)建立索引文件语句格式(程序名:Create_I):Create_Index,'Field1,Field2,…,FieldnFORDBFName$DTFName.DTF'语句功能:建立名称为DBFName$DTFName__Field1__...__Fieldn.IDX的索引文件。扩展名可以省略。如果建立的索引文件已经存在,则提示是否覆盖。实现方法:1)使用FILE_TEST检测DBFName$DTFName.DTF是否存在。如果不存在,则提示。2)使用RESTORE恢复DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在结构DBVAS_TableStructure的成员DBFName$DTFName_Structure中检测Field1、…、Fieldn是否均存在,如果有一个不存在,则不建立索引;否则按照Field1、…、Fieldn重组DBFName$DTFName_Structure。4)在结构DBVAS_TableStructure的成员DBFName$DTFName_RecordData中把Field1、…、Fieldn对应的字段列取出,并重组DBFName$DTFName_RecordData。5)使用SAVE保存DBFName$DTFName_Structure和DBFName$DTFName_RecordData到索引文件DBFName$DTFName__Field1__...__Fieldn.IDX。(2)浏览索引文件语句格式(程序名:Browse_I):Browse_Index,'DBFName$DTFName.DTF'语句功能:浏览指定数据表的所有索引文件。实现方法:1)使用FILE_SEARCH检索并获取索引文件目录中,以DBFName$DTFName开头的索引文件。2)输出检索结果。3)删除索引文件语句格式(程序名:Delete_I):Delete_Index,'Field1,Field2,…,FieldnFORDBFName$DTFName.DTF'语句功能:删除指定的索引文件。如果删除的索引文件不存在,则提示。实现方法:使用FILE_SEARCH检测索引文件DBFName$DTFName__Field1__...__Fieldn.IDX,在索引文件目录中是否存在,如果存在,则删除;否则提示。3.4建立视图(1)建立视图语句格式(程序名:Create_V):Create_View,'DBFName$ViewName(TField1,TField2,…,TFieldn)',$'Browse_Record[SField1,SField2,…,SFieldn$FROMDBFName$DTFName1,…,DBFName$DTFNamen$CONDITIONConditionExpressionVAnalysisn]'语句功能:建立名称为DBFName$ViewName.DVF的视图文件。扩展名可以省略。如果建立的视图文件已经存在,则提示是否覆盖。说明:执行视图时,把第二个参数转化为Browse_Record的语句格式,然后调用Browse_Record语句。实现方法:1)使用FILE_TEST检测DBFName$DTFNamei.DTF是否存在。如果有一个数据表不存在,则提示并退出。2)使用RESTORE恢复DBFName$DTFNamei.DTF得到DBVAS_TableStructure。3)在结构DBVAS_TableStructure的成员DBFName$DTFName_Structure中检测SField1、…、SFieldn是否均存在,如果有一个不存在,则提示并退出;否则把SField1、…、SFieldn存入ViewTableField。4)把TField1、…、TFieldn存入ViewTableField。5)把n存入ViewVAnalysis。6)使用SAVE保存DBVAS_ViewInfo到视图文件DBFName$ViewName.DVF。(2)浏览视图语句格式(程序名:Browse_V):Browse_View,'DBFName.DBF'语句功能:浏览指定数据库的所有视图文件。实现方法:1)使用FILE_SEARCH检索并获取视图文件目录中,以DBFName开头的视图文件。2)输出检索结果。3)删除视图语句格式(程序名:Delete_V):Delete_View,'DBFName$DTFName.DVF'语句功能:删除指定的视图文件。如果删除的视图文件不存在,则提示。实现方法:使用FILE_SEARCH检测索引文件DBFName$DTFName.DVF,在索引文件目录中是否存在,如果存在,则删除;否则提示。第四章DBVAS的DML设计按照DBVAS的文件系统和DDL的设计要求,DML设计的主要内容包括:操纵数据库和操纵数据表。具体格式要求与实现方法如下:4.1操纵数据库(1)添加数据库语句格式(程序名:Add_D):Add_Database,'DBFName.DBF'语句功能:添加自由数据库DBFName.DBF到DBVAS系统中。扩展名可以省略。如果添加的数据库已经存在,则提示并退出。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)检测数据库是否存在。如果存在,则提示并退出。3)把数据库添加到结构DBVAS_Status的成员数组DBVAS_DBF中4)把数据库的数据表添加到结构DBVAS_Status的成员数组DBVAS_DTF中,同时还原相应的数据表文件。5)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。(2)移去数据库语句格式(程序名:Remove_D):Remove_Database,'DBFName.DBF'语句功能:从DBVAS中移去数据库DBFName.DBF,成为自由数据库。扩展名可以省略。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)打包数据表目录中所有以DBFName开头的数据表文件,并存入数据库DBFName.DBF,放入自由库的目录。同时删除相应的文件。3)使用WHERE方法在结构DBVAS_Status的成员数组DBVAS_DBF中找到并删除数据库DBFName。4)使用WHERE方法在结构DBVAS_Status的成员数组DBVAS_DTF中,找到并删除所有以DBFName开头的数据表。5)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。(3)使用数据库语句格式(程序名:Use_D):Use_Database,'DBFName.DBF'语句功能:使用名称为DBFName.DBF的数据库,使之成为当前数据库。如果数据库不存在,则提示。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)检测数据库是否存在。如果不存在,则提示。3)把结构DBVAS_Status的成员DBVAS_Current_DBF的值改为DBFName。4)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。(4)关闭数据库语句格式(程序名:Close_D):Close_Database,'DBFName.DBF'语句功能:关闭名称为DBFName.DBF的数据库,使IDLDBF.DBF成为当前数据库。如果数据库不存在,则提示并退出。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)检测数据库是否存在。如果不存在,则提示并退出。3)把结构DBVAS_Status的成员DBVAS_Current_DBF的值改为IDLDBF。4)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。4.2操纵数据表(1)移动数据表语句格式(程序名:Move_T):Move_Table,'DBFName$DTFName.DTFtoDBFName2.DBF'语句功能:把数据表DBFName$DTFName.DTF从一个数据库DBFName.DBF移动到另一个数据库DBFName2.DBF。扩展名可以省略。如果移动的数据表在DBFName2.DBF已经存在,则提示并退出。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)检测数据库DBFName2.DBF是否存在。如果存在,则检测移入数据表是否存在,如果存在,则提示并退出;如果不存在,则在结构DBVAS_Status的成员数组DBVAS_DTF中找到DBFName$DTFName,并改名为DBFName2$DTFName。同时把相应的数据表文件使用SPAWN通过调用Windows的Rename命令进行重命名。3)如果数据库DBFName2.DBF不存在,则建立该数据库并移入。实现方法是:先把DBFName2添加到结构DBVAS_Status的成员数组DBVAS_DBF中,然后在结构DBVAS_Status的成员数组DBVAS_DTF中找到DBFName$DTFName,并改名为DBFName2$DTFName。同时把相应的数据表文件使用SPAWN通过调用Windows的Rename命令进行重命名。4)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。(2)使用数据表语句格式(程序名:Use_T):Use_Table,'DBFName$DTFName.DTF'语句功能:使用名称为DBFName$DTFName.DTF的数据表,使之成为当前数据表。如果数据表不存在,则提示。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)检测数据表是否存在。如果不存在,则提示并退出。3)把结构DBVAS_Status的成员DBVAS_Current_DTF的值改为DBFName$DTFName。4)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。(3)关闭数据表语句格式(程序名:Close_T):Close_Table,'DBFName$DTFName.DTF'语句功能:关闭名称为DBFName.DBF的数据库,使IDLDBF.DBF成为当前数据库。如果数据库不存在,则提示并退出。实现方法:1)使用RESTORE恢复DBVAS_Status.STS。2)检测数据表是否存在。如果不存在,则提示并退出。3)把结构DBVAS_Status的成员DBVAS_Current_DTF的值改为IDLDBF$IDLDTF。4)使用SAVE保存新结构DBVAS_Status到DBVAS_Status.STS。(4)浏览记录语句格式(程序名:Browse_R):Browse_Record,'Field1,Field2,…,Fieldn',$'FROMDBFName$DTFName1.DTF,…,DBFName$DTFNamen.DTF',$'CONDITIONConditionExpreeion,$'VAnalysisn'语句功能:浏览指定数据表的指定字段的记录数据。扩展名可以省略。如果省略CONDITION,则按照笛卡尔集输出;如果'Field1,Field2,…,Fieldn'为空串'',则显示所有字段;如果DBFName$DTFNamei.DTF只有一个数据表,则为单表查询。说明:DBFName$DTFNamei.DTF可以是视图,如果是视图,则扩展名不能省略,用于区分数据表与视图。实现方法:1)使用FILE_TEST检测DBFName$DTFNamei.DTF是否存在。如果有一个数据表不存在,则提示并退出。2)使用RESTORE恢复DBFName$DTFNamei.DTF得到DBVAS_TableStructure。3)按照条件ConditionExpreeion,对DBVAS_TableStructure的记录数据DBFName$DTFName_RecordData进行连接。温馨提示:需要使用作者提供的函数GetTableInfo()或者GetTableInfoGUI()同时获取多个数据表的数据,然后进行相应操作。4)按照Field1,Field2,…,Fieldn从连接结果中取出相应数据,并输出。5)按照VAnalysisn的值,调用数据可视化分析引擎,进行可视化分析。6)使用SAVE命令,根据需要保存查询结果到SelectResult.Dat中。温馨提示:Browse_Record是整个DBVAS中使用率最高、也是最复杂、要求最高最严格的程序模块,如果完善实现该语句,需要花费大量的时间。希望认真编写该模块!请参考作者提供的程序Browse_RecordGUI.pro。(5)添加记录语句格式(程序名:Add_R):Add_Record,'DBFName$DTFName.DTF',$'FIELDField1,…,Fieldn',$'VALUEValue1,…,Valuen',$'FROMTABLEDBFName$DTFName2.DTF'思考题:把FROMTABLEDBFName$DTFName2.DTF改为FROMSTRUCTStructData,如何实现。即:把一个结构StructData的数据添加到数据表中。温馨提示:请参阅作者提供的Add_RecordGUI.pro中“导入”数据功能。语句功能:在DBFName$DTFName.DTF中添加记录。扩展名可以省略。实现方法:1)使用FILE_TEST检测DBFName$DTFName.DTF是否存在。如果不存在,则提示退出。2)使用RESTORE恢复DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在结构DBVAS_TableStructure的成员DBFName$DTFName_Structure中,检测字段Fieldi是否存在,如果有一个不存在,则不添加并退出;4)在结构DBVAS_TableStructure的成员DBFName$DTFName_RecordData中,按照Field1,…,Fieldn把Value1,…,Valuen添加到DBFName$DTFName_RecordData中。5)如果参数FROMTABLEDBFName$DTFName2.DTF存在,则首先验证两个数据表的结构是否匹配,如果不匹配,则提示并退出;如果匹配,则合并结构DBVAS_TableStructure的成员DBFName$DTFName_RecordData。6)使用SAVE保存新结构DBVAS_TableStructure到DBFName$DTFName.DTF。(6)删除记录语句格式(程序名:Delete_R):Delete_Record,'DBFName$DTFName.DTFFORExpressionL'语句功能:在DBFName$DTFName.DTF中删除满足条件的记录。在进行删除时,通常首先给出提示信息,然后让用户确定是否真的删除。实现方法:1)使用FILE_TEST检测DBFName$DTFName.DTF是否存在。如果不存在,则提示退出。2)使用RESTORE恢复DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在结构DBVAS_TableStructure的成员DBFName$DTFName_RecordData中检索满足条件的记录,如果存在,则删除;否则提示。4)使用SAVE保存新结构DBVAS_TableStructure到DBFName$DTFName.DTF。(7)修改记录语句格式(程序名:Alter_R):Alter_Record,,'DBFName$DTFName.DTFFORExpressionL',$'FIELDField1,…,Fieldn',$'WITHValue1,…,Valuen'语句功能:修改DBFName$DTFName.DTF中记录的值。实现方法:1)使用FILE_TEST检测DBFName$DTFName.DTF是否存在。如果不存在,则提示退出。2)使用RESTORE恢复DBFName$DTFName.DTF得到DBVAS_TableStructure。3)在结构DBVAS_TableStructure的成员DBFName$DTFName_Structure中,检测字段Fieldi是否存在,如果有一个不存在,则不添加并退出;4)在结构DBVAS_TableStructure的成员DBFName$DTFName_Reco

温馨提示

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

评论

0/150

提交评论