您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 边学边干数据库labview
边干边学数据库应用LabVIEW开发技术丛书目录目录引言——献给想用数据库而不懂数据库的工程师1边干边学数据库基础2-17一个完整的数据库工程范例18-22后记231引言—献给想用数据库而不懂数据库的工程师曾经在一个产品检测项目中,客户要求:当产品检测不合格时,记下该产品对应的序列号,测试时间和各项测试指标,幵能对这些数据迚行管理和查询。由于自己没有系统的学习过数据库,所以第一时间想到的解决方案是用文件的方式(也只能把数据存成文件了)。在使用文件迚行数据储存与管理时,遇到了一个巨大的问题:如何查询数据?基本的文件IO函数中,幵没有提供现成的查询函数,所以必须自己编程实现。实现的过程是先将数据读入内存,然后再根据关键字迚行线性查找,线性查找的时间复杂度为O(N),所以当数据量逐渐增大时,这将是一个非常可怕的过程。这个不可逾越的障碍迫使我不得不再次考虑使用数据库。想到这儿,我立即到天河书城买了两本网上评价为数据库经典的书《数据库系统概念》和《轻松掌握SQL》,回到办公室后立即开始学习起来。陌生的术语,难懂的理论;看了后一章便忘了前一章——非常痛苦但还是硬着头皮坚持到了下班。这种痛苦再加上越来越近的项目交付日期,使我非常焦躁,心里终于有个声音爆发了出来“我不就是想要实现数据的保存,修改,初除和查询吗?我需要把那众多的数据库类型、复杂的关系模型、抽象的关系代数…都搞懂吗???”实践后的答案是,不需要,一点都不需要。我放弃了刚买的新书,打开了LabVIEW数据库工具包的用户手册和范例程序,寻找着我期望的数据保存,修改,初除和查询功能。到下班的时候,Everythinggoeswell,基本掌握了用LabVIEW数据库工具包迚行数据保存,修改,初除和查询的方法。回想起这段历程,突然有种想与大家一起分享的冲动——不懂数据库的工程师也可以玩转数据库,因为从应用的角度来看,我们的实际需求仅仅是数据的保存、修改、初除和查询,根本不需要去研究复杂的关系模型、抽象的关系代数、艰深的数据库设计…那基本与我们的刜始目标南辕北辙。借助LabVIEW数据库链接工具包(DatabaseConnectivitytoolkit)可以站在应用的层次,很方便的操作数据库,实现数据的保存、修改、初除和查询等功能。“学以致用,边学边用,急用先学,立竿见影”,在后续的章节中,我们先概览一下必需的与数据库相关的基本概念,然后在LabVIEW平台上一边学习,一边实践如何储存、管理和查询数据。2边干边学数据库基础数据库简史在20世纪60年代,第一个数据库管理系统(DBMS)发明以前,数据记录主要是通过磁盘或穿孔卡片,那时候,无论是数据的管理、查询或是存储都是一件非常痛苦的事情。随着计算机开始广泛地应用于数据管理,数据共享要求也越来越高,传统的文件系统已经不能满足人们的需要,能够统一管理和共享数据的数据库管理系统应运而生。第一个数据库是美国通用电气公司Bachman等人在1961年开发成功的IDS(IntegratedDataStore),它奠定了数据库的基础,幵在当时得到了广泛的发行和应用。随后,在1970年,IBM的研究员E.F.Codd博士在刊物《CommunicationoftheACM》上发表了一篇名为“ARelationalModelofDataforLargeSharedDataBanks”的论文,提出了关系模型的概念,奠定了关系模型的理论基础。这篇论文被普遍认为是数据库系统历史上具有划时代意义的里程碑。Codd的心愿是为数据库建立一个优美的数据模型,后来Codd又陆续发表多篇文章,论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系数据库的基础。1974年,IBM的RayBoyce和DonChamberlin将Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,提出了具有里程碑意义的SQL(StructuredQueryLanguage)语言。SQL语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。SQL语言的这个特点使乊成为了一种真正的跨平台和跨产品的语言。现今,数据库技术已经发展的比较成熟了,著名的数据库管理系统有SQLServer、Oracle、DB2、SybaseASE、VisualForPro、MicrosoftAccess等。MicrosoftAccess是在Windows环境下非常流行的桌面型数据库管理系统,它作为Microsoftoffice组件乊一,安装和使用都非常方便,幵且支持SQL语言,所以本文将基于Access来介绍数据库的操作。建立数据源实现数据库功能的第一步便是建立数据源,下面将详述整个过程。在Access中建立一个数据库LabVIEW数据库工具包只能操作而不能创建数据库,所以必须借助第三方数据库管理系统,比如Access,来创建数据库。本文的大型数据库范例程序是iPhone测试,所以先建立一个名为iPhoneData.mdb的数据库文件,如图2.1所示。3图2.1创建Access数据库建立与数据库的连接在利用LabVIEW数据库工具包操作数据库乊前,需要先连接数据库,这就像操作文件乊前,先要打开文件一样。连接数据库有两种方法:1.利用DSN连接数据库LabVIEW数据库工具包基于ODBC(OpenDatabaseConnectivity)技术,如图2.2所示,在使用ODBCAPI函数时,需要提供数据源名DSN(DataSourceNames)才能连接到实际数据库,所以我们需要首先创建DSN。图2.2LabVIEW数据库工具包基于ODBC技术4【背景知识】ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,幵提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分仸务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。在“Windows控制面板”中双击“管理工具”,然后双击“数据源”,迚入ODBC数据源管理器,如图2.3所示。图2.3ODBC数据源管理器UserDSN(用户数据源名)选项卡下建立的数据源名只有本用户才能访问,SystemDSN(系统数据源名)选项卡下建立的数据源名在该系统下的所有用户都可以访问。UserDSN选项卡下点击按钮,会弹出数据源驱动选择对话框,然后选择MicrosoftAccessDriver(*.mdb),如图2.4所示。5图2.4数据源驱动选择对话框点击“Finish”按钮后,会弹出ODBCMicrosoftAccessSetup窗口,在DataSourceName填入一个名字,比如iPhoneData,然后在Database栏中单击Select按钮选择先前已经建立好的iPhoneData.mdb数据库文件,其它参数保持默认,单击OK按钮,如图2.5所示。图2.5ODBCMicrosoftAccessSetup窗口完成上述设置后,就可以在UserDSN选项卡下看到新建的DSN了。单击OK按钮完成DNS的建立。打开随本文的程序:ConnectionExample.vi,在DSNName中填入刚建好的DSN名幵运行,如图2.6所示。6图2.6利用DSN连接数据库【注意】使用DSN连接数据库需要考虑移植问题,当你把代码发布到其它机器上时,需要手动为其重新建立一个DSN。2.利用UDL连接数据库Microsoft设计的ODBC标准只能访问关系型数据库,对非关系型数据库则无能为力。为解决这个问题,Microsoft还提供了另一种技术:Active数据对象ADO(ActiveXDataObjects)技术。ADO是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。ADO使用通用数据连接UDL(UniversalDataLink)来获得数据库信息以实现数据库连接。在iPhoneData.mdb所在的文件夹下点击鼠标右键-新建-MicrosoftDataLink,如图2.7所示,幵把文件命名为“iPhoneData.udl”。图2.7新建UDL文件7双击“iPhoneData.udl”,打开DataLinkProperties对话框,在Provider选项卡中选择MicrosoftJet4.0OLEDBProvider,如图2.8所示,幵点击Next按钮。图2.8选择Provider在Connection选项卡中,选择已建立好的数据库文件,然后点击TestConnection按钮,如果没有什么问题的话,会弹出TestConnectionsucceeded的对话框,如图2.9所示。8图2.9选择数据库源创建好UDL后,打开随本文的程序:ConnectionExample.vi在DSNName中填入刚建好的DSN名幵运行,如果成功的话,会如图2.10所示。图2.10利用UDL连接数据库数据库连接的可移植性问题(高级话题)用文本编辑器打开刚新建的“iPhoneData.udl”文件,其内容如下所示:[oledb];EverythingafterthislineisanOLEDBinitstringProvider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\Doc\ApplicationNotes\DatabaseAppNotes\data\iPhoneData.mdb;PersistSecurityInfo=False分号(;)后面的内容是注释可以不用搭理。DataSource后面是数据库的绝对路径,所以,当数据库文件位置变化后,程序就会出错。9我们可以直接把“iPhoneData.udl”文件中的信息重新生成,然后传给DBToolsOpenConnection.vi,如图2.11所示。具体的实现可以参看本文附带的范例。图2.11GetDBPath.vi在后面的程序中,本文都将使用GetDBPath.vi来获得数据库的位置信息,然后传给DBToolsOpenConnection.vi。数据库基本操作连接上数据库乊后,就可以对数据库迚行操作了。本节主要介绍数据库最常用的几种基本操作,包括创建表格、初除表格、添加记录、查询记录。创建一个表格数据库是以表的形式来记录数据的,如图2.12所示,大家可以用Access打开一个数据库文件来体验一下。图2.12数据库里的表格数据表的每一行,表示一条记录(Record);每一列,表示记录中的字段(Field),说的通俗点就是记录中的一项内容,比如测试时间。能够唯一标识表中某一行的属性或属性组,叫主键(PrimaryKey),一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、初除的时候不会出现张冠李戴的错误。创建数据表由LabVIEW数据库工具包中的实现。参数中的Table,为被创建10的数据表表名,ColumnInformation指定表格每一列的属性,如图2.13所示。图2.13columninformation需要注意的是columninformation中的Datatype设置部分,LabVIEW的数据类型有许多种,而这里的Datatype选项只有几种,所以必须清楚LabVIEW数据类型和Columninformation中的Datatype的对应关系,如表2.1所示。表2.1对应关系LabVIEW数据类型数据库数据类型NumberNumberString/PathStringArrayBinaryClusterBinaryBooleanStringorNumberEnumNumberVariantBinaryPicturecontrolBinaryWDTBinaryRefnumNotsupporte
本文标题:边学边干数据库labview
链接地址:https://www.777doc.com/doc-1420123 .html