database lab - telemark university collegehome.hit.no/~hansha/documents/lab/lab...

57
Database Lab Hans-Petter Halvorsen http://home.hit.no/~hansha/?lab=database 2017.03.24

Upload: dodien

Post on 25-Feb-2018

239 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

DatabaseLab

Hans-PetterHalvorsen

http://home.hit.no/~hansha/?lab=database

2017.03.24

Page 2: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

MicrosoftSQLServerDatabase

DatabaseDesign&Modelling

SQLServerManagementStudio

LabOverview

CreateTables

DatabaseManagement

WewillcreateApplicationsinLabVIEW&VisualStudiothatWriteandReaddatatotheDatabase

Page 3: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

NecessarySoftware

• ERwin (AcademicEdition,freedownloadfromInternet)• SQLServer(Express)Edition(DownloadforfreefromInternetor

MicrosoftImagine:“SQLServer2016ExpresswithServicePack1”)• LabVIEW(2016)• DAQmx DriverSoftware• LabVIEWSQLToolkit(©Hans-Petter Halvorsen)• VisualStudio(2016)

MakesuretoinstallthenecessarySoftwarebeforeyougotothelaboratory!

Software

Page 4: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Hardware

NIUSB-TC01ThermocoupleMeasurementDevice

YourPersonalComputer

Hardware

Note!Ifyoudon'thavetheTC-01deviceavailable,youmayusesomesimulatedvaluesinstead.

Page 5: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

SystemOverviewDataLogging DataMonitoring

DAQ

Database

Trigger(s)

CalculateAverage,Max,MinTemperatureDataConvertTemperaturetoCelsius/Fahrenheit

StoredProcedure(s)

Viewsand/orStoredProcedure(s)

DAQmxDriver

Page 6: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Tables

LoggingApp

MonitoringApp

Views

StoresProcedures

Triggers

TemperatureSensor

TC-01Thermocouple

TableDesign

Network

SystemOverview

Page 7: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

LabAssignmentOverview1. DesignDatabaseusingERwin.2. ImplementTables,Views,Stored

ProceduresandTriggersusingSQLServer.3. CreateaDataloggingAppusingLabVIEW.4. CreateaDataMonitoringAppusingVisual

Studio/C#.Seenextslidesfordetails...

Page 8: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

LabAssignment• Makesuretoreadthewholeassignmentbeforeyoustarttosolveanyoftheproblems.

• Ifyoumissassumptionsforsolvingsomeoftheproblems,youmaydefineproperassumptionsyourself.

• TheTasksaresomewhatlooselydefinedandmorelikeguidelines,sofeelfreetointerprettheTasksinyourownway.

• FeelfreetoExplore!– AddValuetoyourApplications!

Page 9: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

TheTeacherdonthavealltheanswers(veryfewactuallyL)!!Sometimesyoujustneedto“Google”inordertosolveyourproblems,CollaboratewithotherStudents,etc.ThatshowyouLearn!

TheteacherhavenotdonealltheTasksindetail,sohemaynothavealltheanswers!That'showitisinreallifealso!

Veryoftenitworksononecomputerbutnotonanother.Youmayhaveotherversionsofthesoftware,youmayhaveinstalleditinthewrongorder,etc...InthesecasesGoogleisyourbestfriend!

Page 10: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

MySystemisnot

Working??

YouprobablywillfindtheanswerontheInternet

Checkyourelectriccircuit,electricalcables,DAQdevice,etc.Checkifthewiresfrom/totheDAQdeviceiscorrect.AreyouusingthesameI/OChannelinyourSoftwareasthewiringsuggest?etc.

Troubleshooting&Debugging

Anotherpersonintheworldprobablyhadasimilarproblem

UsetheDebuggingToolsinyourProgrammingIDE.VisualStudio,LabVIEW,etc.havegreatDebuggingTools!Usethem!!

VisualStudio UseavailableResourcessuchasUserGuides,Datasheets,TextBooks,Tutorials,Examples,Tips&Tricks,etc.

Yourhardwaredevicemostlikelyworks,soyoudon'tneedanewdevice!StillnotworkingafterTroubleshooting&Debugging?Filloutan“EquipmentErrorForm”

“GoogleIt”!

Page 11: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

ERwin

Hans-PetterHalvorsen,M.Sc.

DatabaseModellingandDesign

Task1

Page 12: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

ERwinAcademicEdition• DatabaseModellingTool forcreatingER(EntityRelationship)diagrams

• Itsfree,butyouneedtoapplyforit- soitmaytake2-5daysbeforeyougetit!

• http://erwin.com/education/erwin-academic-program/academic-edition/

Page 13: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

DatabaseDesign– ERDiagramERDiagram(Entity-RelationshipDiagram)• UsedforDesignandModelingofDatabases.• SpecifyTablesandrelationship betweenthem(PrimaryKeysandForeignKeys)

PrimaryKey PrimaryKey ForeignKey

TableName

TableName

RelationalDatabase.InarelationaldatabaseallthetableshaveoneormorerelationwitheachotherusingPrimaryKeys(PK)andForeignKeys(FK).Note!YoucanonlyhaveonePKinatable,butyoumayhaveseveralFK’s.

ColumnNames

Example:

Theory

Page 14: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Database- “BestPractice”• Tables:Useuppercaseandsingular formintablenames– notplural,e.g.,

“STUDENT”(not“students”)• Columns:UsePascalnotation,e.g.,“StudentId”• PrimaryKey:

• Ifthetablenameis“COURSE”,namethePrimaryKeycolumn“CourseId”,etc.• “Always”useInteger andIdentity(1,1) forPrimaryKeys.UseUNIQUE

constraintforothercolumnsthatneedstobeunique,e.g.“RoomNumber”• SpecifyRequired Columns(NOTNULL)– i.e.,whichcolumnsthatneedtohave

dataornot• Standardizeonfew/theseDataTypes:int,float,varchar(x),datetime,bit• UseEnglishfortableandcolumnnames• Avoidabbreviations!(Use“RoomNumber”– not“RoomNo”,“RoomNr”,...)

Itisrecommendedthatyoufollowtheseguidelines!

Page 15: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

DatabaseSystem• CreatetheoverallSpecificationsandDesignforyourSystem

• StartbyDesigntheDatabaseTablesusingERwinandcreateaSQLScript

• ImplementtheTablesinSQLServer,e.g.,usingaSQLScriptgeneratedinERwin

• ThenCreatenecessaryViews,StoredProceduresandTriggerswithintheSQLServerManagementStudio.ItisrecommendedthatyousavetheseasSQLFiles

Page 16: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Congratulations!- YouarefinishedwiththeTask

Page 17: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

SQLServer

Hans-PetterHalvorsen,M.Sc.

DatabaseImplementationandStructuredQueryLanguage(SQL)

Task2

Page 18: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

SQLServer

DatabaseEngineandRepositoryManagementStudio

Notetheseare2separatemodulesyouneedtoinstall

AgraphicalinterfacetotheDatabaseEnginewhereyoucancreatetablesandmanipulatedata,etc.

TheDataStorage

Page 19: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

SQLServer• StartbyDesigntheDatabaseTablesusingERwinandcreateaSQLScript

• ImplementtheTablesinSQLServer,e.g.,usingaSQLScriptgeneratedinERwin

• CreatenecessaryViews,StoredProceduresandTriggerswithintheSQLServerManagementStudio.– ItisrecommendedthatyouwaittocreatethemuntilyouneedthemintheLabVIEWorC#Code

Page 20: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

MicrosoftSQLServerManagementStudio

WriteyourQueryhere

TheresultfromyourQuery

YourDatabase

YourTables

YourSQLServer

Software

2

3

4

5

1

Page 21: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

SQL– StructuredQueryLanguage

• insert into STUDENT (Name , Number, SchoolId)values ('John Smith', '100005', 1)

• select SchoolId, Name from SCHOOL

• select * from SCHOOL where SchoolId > 100

• update STUDENT set Name='John Wayne' where StudentId=2

• delete from STUDENT where SchoolId=3

QueryExamples:

Wehave4differentQueryTypes:INSERT,SELECT,UPDATEand DELETE

Theory

Page 22: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Views,StoredProceduresandTriggers• Views:Viewsarevirtualtablesforeasieraccesstodatastoredinmultipletables.

• StoredProcedures:AStoredProcedureisaprecompiledcollectionofSQLstatements.Inastoredprocedureyoucanuseifsentence,declarevariables,etc.

• Triggers:Adatabasetriggeriscodethatisautomaticallyexecutedinresponsetocertaineventsonaparticulartableinadatabase.

Page 23: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

DatabaseViews

• ADatabaseViewisa“virtual”tablethatcancontaindatafrommultipletables

• YouprobablyneedtoCreateandUseoneormoreDatabaseViewsinordertogetDatafromtheDatabase,bothintheDataLoggingAppandDataMonitoringApp

ItisrecommendedthatyouwaittocreatethemuntilyouneedthemintheLabVIEWorC#Code

Page 24: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

ViewsIF EXISTS (SELECT name

FROM sysobjectsWHERE name = 'CourseData' AND type = 'V')

DROP VIEW CourseDataGO

CREATE VIEW CourseDataAS

SELECTSCHOOL.SchoolId, SCHOOL.SchoolName, COURSE.CourseId, COURSE.CourseName,COURSE.Description

FROMSCHOOL INNER JOIN COURSE ON SCHOOL.SchoolId = COURSE.SchoolIdGO

YoucanUsetheViewasanordinarytableinQueries:

AViewisa“virtual”tablethatcancontaindatafrommultiple tables

InsidetheViewyoujointhedifferenttablestogetherusingtheJOIN operator

TheNameoftheView

CreateView:

UsingtheView:

Thispartisnotnecessary– butifyoumakeanychanges,youneedtodeletetheoldversionbeforeyoucanupdateit

select * from CourseData

1

2

Page 25: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

ViewTemplateIF EXISTS (SELECT name

FROM sysobjectsWHERE name = '<ViewName>' AND type = 'V')

DROP VIEW <ViewName>GO

CREATE VIEW <ViewName>AS

SELECT<TableName>.<ColumnName>,<TableName>.<ColumnName>,<TableName>.<ColumnName>,<TableName>.<ColumnName>,<TableName>.<ColumnName>

FROM<TableName1>INNER JOIN <TableName2> ON <TableName1>.<PrimKeyColumnName1> = <TableName2>.<PrimKeyColumnName2>GO

CopytoSQLServerManagementStudio,saveasaSQLFile(.sql)asthesamenameastheViewyouaregoingtocreate.Storeallyourfilesonyourharddrive.

Page 26: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

StoredProceduresTypicallyyouneedsomeStoredProcedures:• TheDataloggingAppshoulduseaStoredProcedureinordertosaveMeasurementDatatotheDatabase.

• TheDataloggingAppshoulduseaStoredProcedureinordertosaveConfigurationDatatotheDatabase.– LoggingInterval– Unit(CelsiusorFahrenheit)

ItisrecommendedthatyouwaittocreatethemuntilyouneedthemintheLabVIEWorC#Code

Page 27: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

StoredProceduresIFEXISTS(SELECTname

FROMsysobjectsWHEREname ='StudentGrade'AND type='P')

DROPPROCEDUREStudentGradeOG

CREATEPROCEDUREStudentGrade@Studentvarchar(50),@Coursevarchar(10),@Gradevarchar(1)

AS

DECLARE@StudentId int,@CourseId int

select@StudentId =StudentIdfromSTUDENTwhereStudentName =@Student

select@CourseId =CourseId fromCOURSEwhereCourseName =@Course

insertintoGRADE(StudentId,CourseId,Grade)values (@StudentId,@CourseId,@Grade)GO

execute StudentGrade 'John Wayne', 'SCE2006', 'B'

AStoredProcedureislikeaMethodinC#- itisapieceofcodewithSQLcommandsthatdoaspecifictask– andyoureuseit

InputArgumentsInternal/LocalVariables

ProcedureName

SQLCode(the“body”oftheStoredProcedure)

Note!Eachvariablestartswith@

CreateStoredProcedure:

UsingtheStoredProcedure:

Thispartisnotnecessary– butifyoumakeanychanges,youneedtodeletetheoldversionbeforeyoucanupdateit

1

2

Page 28: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

StoredProcedureTemplateIF EXISTS (SELECT name

FROM sysobjectsWHERE name = '<StoredProcedureName>' AND type = 'P')

DROP PROCEDURE <StoredProcedureName>GO

CREATE PROCEDURE <StoredProcedureName>@<InputVariable1> <DataType>,@<InputVariable2> <DataType>AS

DECLARE@<InternalVariable1> <DataType>,@<InternalVariable2> <DataType>

select @<InternalVariable1> = <ColumnName> from <TableName> where <ColumnName> = @<InputVariable1>

insert into <TableName> (<ColumnName1>, <ColumnName2>, ...) values (@<InternalVariable1>, @<Inputvariable1>, ...)GO

CopytoSQLServerManagementStudio,saveasaSQLFile(.sql)asthesamenameastheSPyouaregoingtocreate.Storeallyourfilesonyourharddrive.

Page 29: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

DatabaseTrigger(s)YoumayneedoneormoreTriggersthatdoe.g.thefollowing:• ConvertTemperaturetoCelsius/Fahrenheit

– E.g.,IfUnit=Celsius,theTriggershouldConvertTemperatureDatatoFahrenheit

– E.g.,IfUnit=Fahrenheit,theTriggershouldConvertTemperatureDatatoCelsius

– BothCelsiusandFahrenheitvaluesshouldprobablybestoredintheDatabaseforeasyaccesslaterinMonitoringApp

• CalculateAverage,Max,MinTemperatureData– TheTriggershouldcalculateandstoreAverage(Mean),MaxandMin

TemperatureDataintotheDatabase

YoumaywaittocreatethemuntilyouneedthemintheLabVIEWorC#Code

Page 30: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

TriggersIF EXISTS (SELECT name

FROM sysobjectsWHERE name = 'CalcAvgGrade' AND type = 'TR')

DROP TRIGGER CalgAvgGradeGO

CREATE TRIGGER CalcAvgGrade ON GRADEFOR UPDATE, INSERT, DELETEAS

DECLARE@StudentId int,@AvgGrade float

select @StudentId = StudentId from INSERTED

select @AvgGrade = AVG(Grade) from GRADE where StudentId = @StudentId

update STUDENT set TotalGrade = @AvgGrade where StudentId = @StudentId

GO

ATriggerisexecutedwhenyouinsert,updateordeletedatainaTablespecifiedintheTrigger.

InsidetheTriggeryoucanuseordinarySQLstatements,createvariables,etc.

NameoftheTrigger

SpecifywhichTabletheTriggershallworkon

Internal/LocalVariables

SQLCode(The“body”oftheTrigger)

SpecifywhatkindofoperationstheTriggershallacton

Note!“INSERTED”isatemporarilytablecontainingthelatestinserteddata,anditisveryhandytouseinsideatrigger

TriggerExample:

Thispartisnotnecessary– butifyoumakeanychanges,youneedtodeletetheoldversionbeforeyoucanupdateit

Page 31: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

TriggerTemplateIF EXISTS (SELECT name

FROM sysobjectsWHERE name = '<TriggerName>' AND type = 'TR')

DROP PROCEDURE <TriggerName>GO

CREATE TRIGGER <TriggerName>FOR UPDATE, INSERT, DELETE –-Delete the ones not neededAS

DECLARE@<InternalVariable1> <DataType>,@<InternalVariable2> <DataType>

select @Variable1 = Column1 from INSERTEDselect @Variable2 = AVG(Column2) from TABLE where Column1 = @Variable1update TABLE set Column3= @Variabl2e where Column1= @Variable1

GO

CopytoSQLServerManagementStudio,saveasaSQLFile(.sql)asthesamenameastheTriggeryouaregoingtocreate.Storeallyourfilesonyourharddrive.

Page 32: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Congratulations!- YouarefinishedwiththeTask

Page 33: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

DataloggingusingLabVIEW

Hans-PetterHalvorsen,M.Sc.Task3

Page 34: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

DataloggingusingLabVIEW

MicrosoftSQLServerDatabase

DatabaseDesign&Modelling

TC-01Thermocouple

StoredProcedure(s)DAQ

Triggers

CalculateAverage,Max,MinTemperatureData

ConvertTemperaturetoCelsius/Fahrenheit

StartbyDesignandImplementtheDatabaseTablesusingERwin

CreateStoredProcedure(s)andTriggersinSQLServer

Data

Page 35: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

LabVIEWHMIExample

TemperatureData:30

Exit

0

DataloggingApp

TheTemperatureDatafromtheTC-01DAQdeviceshouldbestoredintheDatabase.

ShowTemperatureinCelsiusorFahrenheitdependingontheConfiguration

Chart Configuration

ThisisjustaDesignSketch!FeelfreetoExplore!

TabControl

Chart

Button

Time

Page 36: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

LabVIEWHMIExample

Exit

DataloggingApp

TheTemperatureDatafromtheTC-01DAQdeviceshouldbestoredintheDatabase.

Chart Configuration

2LoggingInterval:

sec.

CelsiusUnit:

Save

TabControl

E.g.,IfUnit=Celsius,theTriggershouldConvertTemperatureDatatoFahrenheit

E.g.,IfUnit=Fahrenheit,theTriggershouldConvertTemperatureDatatoCelsius

NumericControl

ComboBox

Buttons

ThisisjustaDesignSketch!FeelfreetoExplore!

UseaStoredProcedureinordertoSaveDatatotheDatabase

Page 37: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

LabVIEWSQLToolkit

http://home.hit.no/~hansha/documents/labview/code/SQLToolkit.zip

ForEasyDatabaseCommunicationwithLabVIEW

©Hans-PetterHalvorsenDownloadforfreehere:

SoftwareSoftware

Page 38: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

LabVIEWSQLToolkitExamples

38

Example1:GetDatafromDatabaseintoLabVIEW:

Example2:WriteDatatoDatabasefromLabVIEW:

EasyAccesstoDatabaseSystemsfromLabVIEW

YourODBCConnection

2DTablewithData

1

Query

Query

2 3

1 2 3

TrytheseExamples

Page 39: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

ConnecttoDatabase• Alt1:UseODBC– SetupyourDatabaseconnectionusingaWizard(“ODBCDataSourceAdministrator”)

• Alt2:UseConnectionStringdirectly– Alt2.1:WindowsAuthentication:

DataSource=<dbserver>;InitialCatalog=<dbname>;Trusted_Connection=True

– Alt2.2:SQLServerAuthentication:DataSource=<dbserver>;InitialCatalog=<dbname>;PersistSecurityInfo=True;User ID=sa;Password=<password>

SeeExamplesonnextslides...

Page 40: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

ODBCODBC(OpenDatabaseConnectivity)isastandardizedinterface(API)foraccessingthedatabasefromaclient.Youcanusethisstandardtocommunicatewithdatabasesfromdifferentvendors,suchasOracle,SQLServer,etc.ThedesignersofODBCaimedtomakeitindependentofprogramminglanguages,databasesystems,andoperatingsystems.ControlPanel→AdministrativeTools→DataSources(ODBC)

WewillusethisODBCConnectionlaterinLabVIEWinordertoopentheDatabaseConnectionfromLabVIEW

Theory

Note!Makesuretousethe32bit versionoftheODBCTool!

Page 41: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

ODBC– StepbyStepInstructions

41

TheNameofyourSQLServer

TheNameofyourODBCConnection

UseeitherWindowsorSQLServerauthentication(Windowsissimplesttouse!)

SelecttheDatabaseyouareusing

Testyourconnectiontoseeifitsworks

Page 42: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

LabVIEWSQLToolkitExampleEasyAccesstoDatabaseSystemsfromLabVIEW

AlternativeSolution:TypeintheConnectionStringforyourDatabase

Note!Whenusingthismethod,youdontneedtocreateanODBCConnectionfirst!

YourPasswordforthesauser

YourSQLServerInstance

TypeyourDatabasehere

YourSQLQuery

Page 43: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

LabVIEWSQLToolkitExample

43

YoushoulduseaStoredProcedure

Page 44: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

LabVIEWSQLToolkitExampleIfwewanttosaveinputdatafromtheuserwecanusethe“FormatIntoString”function

executeCreateBook ‘LordoftheRings',‘J.R.R.Tolkien',Wiley',‘32-2-333-56',Fantasy'

The%s operatorwillbereplacedbythetextfromtheTextBox ontheFrontPanel.ForNumberswecanuse%d (Integer)or%f forFloating-pointNumber.

ResultingSQLQuery:

GUI/HMI

Code:2

1

3

Page 45: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Congratulations!- YouarefinishedwiththeTask

Page 46: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

DataMonitoringusingVisualStudio/C#

Hans-PetterHalvorsen,M.Sc.Task4

Page 47: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

DataMonitoringusingVisualStudio/C#

MicrosoftSQLServerDatabase

StoredProcedure(s)View(s)

YoucancreateaDesktopApplication(WinForm ApporWPFApp)oraWebApplication(WebForm App)

Page 48: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

VisualStudioHMIExample

Date&Time Value[C] Value[F]2016.03.2214:45 22 71.6

... ... ...

... ... ...

... ... ...

TemperatureData:

0

30

DataMonitoringApp

Average:

Min:

Max:

22

10

26

YoushouldgettheDatafromtheDatabase

TextBoxesLabels

DataGridView

Chart

ThisisjustaDesignSketch!FeelfreetoExplore!

TypicallyyougetDatafromtheDatabaseusingViewsand/orStoredProcedures

Time

Page 49: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

49

using System.Configuration;

...

public partial class BookList : System.Web.UI.Page{private string connectionString = ConfigurationManager.ConnectionStrings["LibraryDBConnectionString"].ConnectionString;

void Page_Load(object sender, EventArgs e){

if (!IsPostBack){

FillBookGrid();}

}

private void FillBookGrid(){

List<Book> bookList = new List<Book>();Book book = new Book();

bookList = book.GetBooks(connectionString);

gridBookList.DataSource = bookList;}

}

InthisexampletheConnectionStringtotheDatabaseisstoredinthe“App.config”file

VisualStudio/C#DatabaseExample

<connectionStrings><add name="LibraryDBConnectionString"

connectionString="Data Source=macwin8;Initial Catalog=BOOKS;Persist Security Info=True;User ID=sa;Password=xxx"

providerName="System.Data.SqlClient" /></connectionStrings>

Note!YouneedtoaddaReferenceinordertousetheConfigurationManager

Page 50: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

ConfigurationManagerNote!YouneedtoaddaReferencein

ordertousetheConfigurationManagerRight-click

Page 51: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

51

VisualStudio/C#DatabaseExampleusing System.Data.SqlClient;using System.Data.SqlTypes;using System.Data;

public class Book{

public int BookId { get; set; }public string Title { get; set; }public string Isbn { get; set; }public string PublisherName { get; set; }public string AuthorName { get; set; }public string CategoryName { get; set; }

public List<Book> GetBooks(string connectionString){

List<Book> bookList = new List<Book>();

SqlConnection con = new SqlConnection(connectionString);

string selectSQL = "select BookId, Title, Isbn, PublisherName, AuthorName, CategoryName from GetBookData";

con.Open();

SqlCommand cmd = new SqlCommand(selectSQL, con);

SqlDataReader dr = cmd.ExecuteReader();

if (dr != null){

while (dr.Read()){

Book book = new Book();

book.BookId = Convert.ToInt32(dr["BookId"]);book.Title = dr["Title"].ToString();book.Isbn = dr["ISBN"].ToString();book.PublisherName = dr["PublisherName"].ToString();book.AuthorName = dr["AuthorName"].ToString();book.CategoryName = dr["CategoryName"].ToString();

bookList.Add(book);}

}

return bookList;}

}

ThisisaDatabaseView

Page 52: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Timer

publicForm1(){InitializeComponent();

timer1.Start();}

privatevoidtimer1_Tick(objectsender,EventArgs e){…//ReadfromDB…//Formatting…//PlotData

}

TimerEvent:

Initialization:

Properties:

StructureyourCodeproperly!!DefineClassesandMethodswhichyoucanusehere

InVisualStudioyoumaywanttouseaTimerinsteadofaWhileLoopinordertoreadvaluesatspecificintervals.

YoumayspecifytheTimerIntervalinthePropertiesWindow

Selectthe“Timer”componentintheToolbox

Double-clickontheTimerobjectinordertocreatetheEvent

2

3

4

1

Page 53: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

ChartinginVisualStudiohttps://msdn.microsoft.com/en-us/library/dd489237.aspxVisualStudiohasaChartcontrolthatyoucanuseinWindowsFormsorWebapplication(ASP.NET)

http://www.i-programmer.info/programming/uiux/2756-getting-started-with-net-charts.html

using System.Windows.Forms.DataVisualization.Charting;...chart1.Series.Clear();chart1.Series.Add("My Data");chart1.Series["My Data"].ChartType=SeriesChartType.Line;...int[] x = {1, 2, 3, 4, 5, 6, 7, 8};int[] y = {20, 22, 25, 24, 28, 27, 24, 26};for (int i = 0; i < x.Length; i++){

chart1.Series["My Data"].Points.AddXY(x[i],y[i]);}

CreatingaWebApp?UsethefollowingNamespaceinstead:System.Web.UI.DataVisualization.Charting

Page 54: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Congratulations!- YouarefinishedwiththeTask

Page 55: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Tables

LoggingApp

MonitoringApp

Views

StoresProcedures

Triggers

TemperatureSensor

TC-01Thermocouple

TableDesign

Network

FinishedSolution

Page 56: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Congratulations!- Youarefinishedwithall theTasksintheAssignment!

Page 57: Database Lab - Telemark University Collegehome.hit.no/~hansha/documents/lab/Lab Work/Database/Database La… · Database Lab Hans-Petter Halvorsen ... Lab Assignment Overview 1.Design

Hans-PetterHalvorsen,M.Sc.

UniversityCollegeofSoutheastNorwaywww.usn.no

E-mail:[email protected]:http://home.hit.no/~hansha/