Database Lab – Tips & Tricks

68 downloads 177 Views 5MB Size Report
hep://www.microsoft.com/en-‐us/download/details.aspx?id=29062. In this Assignment you need the following Software: SQL Toolkit makes it easy to access ...
Hans-­‐Pe2er  Halvorsen,  Telemark  University  College,  2013.04.08  

Database  Lab  –  Tips  &  Tricks   Design  and  Implement  a  System  for  Logging  and  PresentaSon  of  Weather  Data  

Weather  Sta,on  

Apps  for  Manipula,on     and  Presenta,on    of  Weather  Data  

Logging  Weather  Data  

Database  

Note!  The  Assignment  is  located  here:  

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

Table  of  Contents  

1. Introduc,on   2. Database  Systems   3. Database  Design  -­‐  Visio   4. SQL  Server   5. LabVIEW   2  

1.  IntroducSon  

3  

System  Overview   Server  

Client  

Visio  2012  

Database  

LabVIEW  2012  

(Windows  Server)  

(Windows  7/8)  

SQL  Server  2012   Note!  Normally  the  Database  is  installed  on  a   separate  Server,  but  for  simplicity,  we  install  the  SQL   Server  on  our  local  computer  

4  

SoXware   In  this  Assignment  you  need  the  following  SoRware:  

•  •  •  • 

MicrosoR  Visio  2010  (Visio  2013  is  not  recommended!)   MicrosoR  SQL  Server  2012  (Express)   LabVIEW  2012   SQL  Toolkit  

MicrosoX  Visio  2010  and  MicrosoR  SQL  Server  2012  are  free  to  use  as  they  are  included  in   the  MicrosoX  DreamSpark  Premium  SubscripSon  available  for  students  at  Telemark   University  College.     In  our  assignment  it  is  recommended  to  use  the  MicrosoX  SQL  Server  2012  Express  version   which  is  free  of  charge  and  can  be  downloaded  here:   hZp://www.microsoR.com/en-­‐us/download/details.aspx?id=29062     SQL  Toolkit  makes  it  easy  to  access  Database  Systems  from  LabVIEW.  The  Toolkit  is   created  by  Hans-­‐PeZer  Halvorsen  and  is  free  of  charge  from  my  web  site.   5  

Task  Overview   •  •  •  •  •  •  • 

Database  Design  in  MS  Visio   Create  Database  and  Tables  in  MS  SQL  Server   SQL    Queries  (Structured  Query  Language)   Create  &  Use  a  Database  Views   Create  &  Use  a  Database  Stored  Procedures   Create  &  Use  a  Database  Triggers   Create  Applica,ons  in  LabVIEW  that  communicates   with  the  Database  created  

See  the  Assignment  for  detailed  Task  DescripSons:  

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

Tutorials,  etc.   •  Structured  Query  Language   •  Database  CommunicaSon  in  LabVIEW   →  Use  these  Tutorials  to  get  a  beZer   understanding  of  the  topics  involved  in  the   assignment   •  Example  Code   →  The  Example  Code  help  you  solve  the   assignment!   You  find  Tutorials,  Example  Code  and  Addi,onal  Resources  here:  

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

7  

Hardware   We  will  use  a  NI  USB-­‐TC01  Thermocouple  Measurement  Device  in  order   to  log  Temperature  Data  into  the  Database  

8  

NI  USB-­‐TC01  Thermocouple   Measurement  Device  using  LabVIEW   The  USB-­‐TC01  Device  works  similar  as  the  USB-­‐6008  DAQ  device,  i.e.,  you  use   the  DAQ  Assistant  

9  

Temperature  SimulaSon   If  you  don’t  have  a  TC01  device,  you  can  create  a  simple  “Temperature  Simulator”  instead.   Example  of  such  as  Simulator:   While  Loop  

While  Loop  

Case  Structure  

Case  Structure  

A  simple  SubVI  that  simulates  a  Temperature   value  using  a  Random  Generator  

In  this  way  you  can  easily  switch   between  the  real  Temperature   sensor  (TC01)  and  the  Simulator       10  

2.  Database   Systems   11  

Database  Systems   A  Database  is  a  structured  way  to  store  lots  of   informa,on.    The  informa,on  is  stored  in  different   tables.   -­‐  “Everything”  today  is  stored  in  databases!     Examples:   •  Bank/Account  systems     •  Informa,on  in  Web  pages  such  as  Facebook,   Wikipedia,  YouTube,  etc.   •  Fronter,  TimeEdit,  etc.   •  …  lots  of  other  examples!   12  

Database  Management  Systems  (DBMS)   •  MicrosoX  SQL  Server  

–  Enterprise,  Developer  versions,  etc.  (Professional  use)   –  Express  version  is  free  of  charge  

•  Oracle   •  MySQL  (owned  by  Oracle,  but  previously  owned  by  Sun   Microsystems)  -­‐  MySQL  can  be  used  free  of  charge  (open   source  license),  Web  sites  that  use  MySQL:  YouTube,   Wikipedia,  Facebook   •  MicrosoR  Access   •  IBM  DB2   •  Sybase   •  etc.   We  will  use  SQL  server  because  it  is  very  popular  in  the  industry  today,  and  we  can  use  it  for   free  via  the    MicrosoX  DreamSpark  Premium  SubscripSon  –  which  is  available  for  the   students  and  staff  at  Telemark  University  College,  or  use  the  Express  version  which  is  available   for  free  for  everybody.   13  

MicrosoX  SQL  Server   SQL  Server  consists  of  a  Database  Engine  and  a  Management  Studio.  The  Database  Engine  has  no  graphical  interface  -­‐  it   is  just  a  service  running  in  the  background  of  your  computer  (preferable  on  the  server).  The  Management  Studio  is   graphical  tool  for  configuring  and  viewing  the  informa,on  in  the  database.  It  can  be  installed  on  the  server  or  on  the   client  (or  both).  

Note!  You  need  to  install  both   on  your  local  computer!  

The  newest  version  of  MicrosoR  SQL   Server  is  “SQL  Server  2012”  

14  

3.  Database   Design  -­‐  Visio   15  

MicrosoX  Visio   Tools  for  Design  and  Modeling  Database  Systems:   •  ERwin  (very  good!  –  But  expensive!  ~$5000)   Note!  “CA  ERwin  Data  Modeler  Community  Edi,on”  is  a  free  edi,on  that  contains  a  subset  of  the   standard  product   •  Toad  Data  Modeler   •  MS  Visio   •  …  lots  of  other  tools   →  We  will  use  MS  Visio  because  it  has  everything  we  need  and  it   is  a  very  popular  part  of  the  MS  Office  package  (and  you  probably   already  have  it  installed).  We  can  also  use  it  for  free  via  the     MicrosoX  DreamSpark  Premium  SubscripSon  available  for  the   students  and  staff  at  Telemark  University  College   16  

Database  Design  –  ER  Diagram   ER  Diagram  (En,ty-­‐Rela,onship  Diagram)     •  Used  for  Design  and  Modeling  of  Databases.   •  Specify  Tables  and  relaSonship  between  them  (Primary  Keys  and   Foreign  Keys)   Table  Name   Example:   Table  Name  

Column   Names   Primary  Key  

Primary  Key   Foreign  Key  

Rela,onal  Database.  In  a  rela,onal  database  all  the  tables  have  one  or  more  rela,on  with  each  other  using  Primary  Keys   17   (PK)  and  Foreign  Keys  (FK).  Note!  You  can  only  have  one  PK  in  a  table,  but  you  may  have  several  FK’s.  

Database  Design  –  ER  Diagram  Example  I   Table  Name  

Table  Name  

PK  

PK   FK  

This  example  stores  all   informa,on  about  the   students  grade,  etc.  in  the   database   PK-­‐FK  RelaSonship   Table  Name  

Table  Name   PK   FK  

Table  Name   PK  

FK   FK  

PK   FK  

PK-­‐FK  RelaSonships   Table  Name   PK   FK  

Table  Name   PK  

FK   FK  

PK  –  Primary  Key,  FK  –  Foreign  Key  

Table  Name   PK   FK   FK  

18  

Database  Design  –  ER  Diagram  Example  II   Library     Management     System  

19  

Database  Design  –  MicrosoX  Visio   We  will  use  Visio  to   Design  our  Database  

1 2

Select  the  proper  Template  

3

20  

Table  Name  

Visio  -­‐  Example  

Primary  Key  (PK)  

Foreign  Key  (FK)  

Use  the  “Rela,onship”  Tool    in  order  to  create   Primary  Key  –  Foreign  Key  Rela,onship  between   two  tables  (lines  with  arrows)  

Use  the  “En,ty”  Tool    in  order  to  create  Tables  

21  

Database  -­‐  “Best  PracSce”   •  Tables:  Use  upper  case  and  singular  form  in  table   names  –  not  plural,  e.g.,  “STUDENT”  (not  students)   •  Columns:  Use  Pascal  nota,on,  e.g.,  “StudentId”   •  Primary  Key:     •  If  the  table  name  is  “COURSE”,  name  the  Primary   Key  column  “CourseId”,  etc.   •  “Always”  use  Integer  and  Iden,ty(1,1)  for  Primary   Keys   •  Specify  Required  Columns  (NOT  NULL)  –  i.e.,  which   columns  that  need  to  have  data  or  not   •  Standardize  on  these  Data  Types:  int,  float,   varchar(x),  date2me,  bit   It  is  recommended  that  you  follow  these  guidelines!  

22  

4.  SQL  Server  

23  

MicrosoX  SQL  Server  –  Create  a  New  Database   2

1

Name  you  database,  e.g.,   WEATHER_SYSTEM  

24  

MicrosoX  SQL  Server   3 Your  SQL  Server  

4

1 2

Write  your  Query  here  

Your  Database  

Your   Tables  

5

The  result  from  your  Query  

25  

MicrosoX  SQL  Server   Do  you  get  an  error   when  trying  to   change  your  tables?  

Make  sure  to  uncheck   this  op,on!  

26  

SQL  –  Structured  Query  language   A  Database  Computer  Language  designed  for  Managing  Data  in   Rela,onal  Database  Management  Systems  (RDBMS)   Query  Examples:   •  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 We  have  4  different    Query  Types:  INSERT,  SELECT,  UPDATE  and  DELETE   27  

Create  Tables  using  SQL   if not exists (select * from dbo.sysobjects where id = object_id(N'[SCHOOL]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

CREATE TABLE [SCHOOL] ( [SchoolId] [int] IDENTITY(1, 1) NOT NULL PRIMARY KEY, [SchoolName] [varchar](50) NOT NULL UNIQUE, [Description] [varchar](1000) NULL, [Address] [varchar](50) NULL, [Phone] [varchar](50) NULL, [PostCode] [varchar](50) NULL, [PostAddress] [varchar](50) NULL, ) GO if not exists (select * from dbo.sysobjects where id = object_id(N'[CLASS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

CREATE TABLE [CLASS] ( [ClassId] [int] IDENTITY(1, 1) NOT NULL PRIMARY KEY, [SchoolId] [int] NOT NULL FOREIGN KEY REFERENCES [SCHOOL] ([SchoolId]), [ClassName] [varchar](50) NOT NULL, [Description] [varchar](1000) NULL, ) GO

28  

Create  Tables  using  the  Designer  Tools   in  SQL  Server   Even  if  you  can  do  “everything”  using  the  SQL  language,  it  is  some,mes  easier  to  do   something  in  the  designer  tools  in  the  Management  Studio  in  SQL  Server.   Instead  of  crea,ng  a  script  you  may  as  well  easily  use  the  designer  for  crea,ng  tables,   constraints,  inser,ng  data,  etc.  

1

Select  “New  Table  …”:  

2 Next,  the  table  designer  pops  up  where  you   can  add  columns,  data  types,  etc.  

In  this  designer  we  may  also  specify  constraints,  such  as   primary  keys,  unique,  foreign  keys,  etc.      

29  

Create  Tables  with  the  “Database  Diagram”   2

1

You  may  select   exis,ng  tables  or   create  new  Tables  

Create  New  Table   3

5

4

Enter  Columns,  select  Data  Types,     Primary  Keys,  etc.  

30  

Get  Data  from  mulSple  tables  in  a   single  Query  using  Joins   Example:  

select   SchoolName,     CourseName   from   You  link  Primary  Keys  and  Foreign  Keys  together   SCHOOL     inner  join  COURSE  on  SCHOOL.SchoolId  =  COURSE.SchoolId    

31  

Create  View:  

CreaSng  Views  using  SQL  

IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CourseData' AND type = 'V') DROP VIEW CourseData GO CREATE VIEW CourseData AS SELECT SCHOOL.SchoolId, SCHOOL.SchoolName, COURSE.CourseId, COURSE.CourseName, COURSE.Description FROM SCHOOL INNER JOIN COURSE ON SCHOOL.SchoolId = COURSE.SchoolId GO

Using  the  View:   select * from CourseData

A  View  is  a  “virtual”  table  that   can  contain  data  from  mul,ple   tables   This  part  is  not  necessary  –  but  if  you  make  any   changes,  you  need  to  delete  the  old  version   before  you  can  update  it  

The  Name  of  the  View   Inside  the  View  you  join  the   different  tables  together  using   the  JOIN  operator   You  can  Use  the  View  as  an   ordinary  table  in  Queries  :  

32  

CreaSng  Views  using  the  Editor   3

Graphical  Interface  where  you  can  select  columns  you  need   1

2

4 Add  necessary  tables   Save  the  View  

33  

Create  Stored  Procedure:  

Stored  Procedure  

IF  EXISTS  (SELECT  name            FROM      sysobjects            WHERE    name  =  'StudentGrade'            AND        type  =  'P')    DROP  PROCEDURE  StudentGrade   OG    

CREATE  PROCEDURE  StudentGrade   @Student  varchar(50),   @Course  varchar(10),   @Grade  varchar(1)       AS     DECLARE   @StudentId  int,   @CourseId  int     select  StudentId  from  STUDENT  where  StudentName  =  @Student     select  CourseId  from  COURSE  where  CourseName  =  @Course     insert  into  GRADE  (StudentId,  CourseId,  Grade)     values  (@StudentId,  @CourseId,  @Grade)   GO  

A  Stored  Procedure  is  like  Method  in  C#   -­‐  it  is  a  piece  of    code  with  SQL   commands  that  do  a  specific    task  –  and   you  reuse  it   This  part  is  not  necessary  –  but  if  you  make  any   changes,  you  need  to  delete  the  old  version   before  you  can  update  it  

Procedure  Name   Input  Arguments   Internal/Local    Variables   Note!  Each  variable  starts  with  @  

SQL  Code  (the  “body”  of  the   Stored  Procedure)  

Using  the  Stored  Procedure:   execute StudentGrade 'John Wayne', 'SCE2006', 'B'

34  

Trigger   A  Trigger  is  executed  when  you  insert,  update  or  delete  data  in  a  Table  specified  in   the  Trigger.  

This  part  is  not  necessary  –  but  if  you  make  any   changes,  you  need  to  delete  the  old  version   before  you  can  update  it  

Create  the  Trigger:   IF EXISTS (SELECT name FROM sysobjects WHERE name = 'CalcAvgGrade' AND type = 'TR') DROP TRIGGER CalgAvgGrade GO

Name  of  the  Trigger  

Specify  which  Table  the   Trigger  shall  work  on   Specify  what  kind  of  opera,ons  the  Trigger   shall  act  on  

CREATE TRIGGER CalcAvgGrade ON GRADE FOR UPDATE, INSERT, DELETE AS DECLARE @StudentId int, @AvgGrade float

Inside  the   Trigger  you  can   use  ordinary  SQL   statements,   create  variables,   etc.  

Internal/Local    Variables  

select @StudentId = StudentId from INSERTED select @AvgGrade = AVG(Grade) from GRADE where StudentId = @StudentId update STUDENT set TotalGrade = @AvgGrade where StudentId = @StudentId

SQL  Code     (The  “body”   of  the  Trigger)  

GO

Note!  “INSERTED”  is  a  temporarily  table  containing  the  latest  inserted  data,  and  it  is  very   handy  to  use  inside  a  trigger  

35  

5.  LabVIEW  

36  

Weather  System  in  LabVIEW  

GUI/HMI  Example:  

App  #1   Logg  data  from  TC-­‐01  Device  and   save  the  data  into  the  database   Code  Example:  

37  

1

DAQ  Assistant  for  NI  USB-­‐TC01  

2 Acquire  Signals  »  Analog  Input  »  Temperature  »  Thermocouple  

4

3

Use  default  Proper,es  

Select  Physical  Channel  ai0  

5 Click  OK  to  Finish   38  

Weather  System  in  LabVIEW   Present  weather  data  from  the   database  “con,nuously”  

App  #2  

GUI/HMI  Example:  

39  

Weather  System  in  LabVIEW  

App  #3  

Manage  Weather  Parameters   (Create  New,  Edit  exis,ng  or   Delete  exis,ng  Parameters)     GUI/HMI  Example  

GUI/HMI  Example  

40  

ODBC   ODBC  (Open  Database  Connec,vity)  is  a  standardized  interface  (API)  for  accessing  the   database  from  a  client.  You  can  use  this  standard  to  communicate  with  databases   from  different  vendors,  such  as  Oracle,  SQL  Server,  etc.  The  designers  of  ODBC  aimed   to  make  it  independent  of  programming  languages,  database  systems,  and  opera,ng   systems.     Control  Panel  →  Administra,ve  Tools  →  Data  Sources  (ODBC)   We  will  use  this  ODBC  Connec,on   later  in  LabVIEW  in  order  to  open   the  Database  Connec,on  from   LabVIEW  

41  

ODBC  –  Step  by  Step  InstrucSons   The  Name  of  your   ODBC  Connec,on  

The  Name  of  your   SQL  Server  

Select  the   Database  you  are   using  for  the   Library   Use  either   Windows  or  SQL   Server   authen,ca,on   (Windows  is   simplest  to  use!)    

Test  your   connec,on  to  see   if  its  works  

42  

SQL  Server  Configura,on  Manager  

Make  sure  to  Enable  these  Protocols!   If  not  the  Database  Communica,on   from  LabVIEW  will  not  work  properly!  

43  

MicrosoX  Excel  -­‐  Example  

2

1

3

Select  your  ODBC  connec,on  

Select  Tables  and  Columns  

5

4

Finally,  the  data  from  the   database  is  in  the  Excel   sheet     44  

LabVIEW  SQL  Toolkit   Easy  Access  to  Database  Systems  from  LabVIEW   Example  1:  Get  Data  from  Database  into  LabVIEW:   1

2  

3

Your  ODBC   Connec,on   Example  2:  Write  Data  to  Database  from  LabVIEW:  

1

2

3 45  

LabVIEW  SQL  Toolkit   1  

GUI/HMI  

If  we  want  to  save  input  data  from  the  user   we  can  use  the  “Format  Into  String”  func,on   The  %s  operator  will  be  replaced  by  the  text   from  the  TextBox  on  the  Front  Panel.  For   Numbers  we  can  use  %d  (Integer)  or  %f  for   Floa,ng-­‐point  Number.   2

Code:  

3 Resul,ng  SQL  Query:   execute  CreateBook  ‘Lord  of  the  Rings',  ‘J.R.R.  Tolkien',  Wiley',  ‘32-­‐2-­‐333-­‐56',  Fantasy'   46  

The  following  Window  (SubVI)   Pops  up  when  clicking  the  “Add   Book”  BuZon  

LabVIEW  Example   This  example  shows  is  a  Library   Management  System,  but  a  system  for   manipula,ng  Weather  Parameters  will   work  the  same  way  

Menu  Ring  

Mul,column  Listbox   1

Show  the  Books  available  in  the  Database   using  a  View  

2 Add  more  Books  

3 Insert  the  Book   informa,on  in  the   Database  using  a  Stored   Procedure  

4 Update  the  List  with  the   latest  informa,on  from   the  Database  

47  

LabVIEW  Block  Diagram  –  State  Machine   Download  the  Example  Code  and  use  the  following  Example:    

ShiR  Register  

Error  Handling  using  an   Error  Clusters  and  ShiR   Register  

When  you  click  on  the  different   BuZons,  etc.,  the  code  inside  the   Event  Structure  will  be   automa,cally  executed  

The  Programming  Technique  shown  above  is  called  a  State  Machine  and  it  is  recommended  that  you  use  this  method!  

48  

Grading/Submission  -­‐  Checklist   Submission  in  Fronter  (one  .ZIP  File  –  Not  .RAR!!!!!!)   The  Report  in  PDF  format  is  included  in  the  ZIP  File   The  LabVIEW  Code  is  included  in  the  ZIP  File   The  ER  diagram  in  Visio  is  included  in  the  ZIP  File   The  SQL  Code/SQL  Scripts  (Views,  Triggers,  Stored   Procedure,  etc.)  are  included  in  the  ZIP  File   A  Printed  Copy  of  the  Report  is  in  the  Mail  Box  outside  my  Office   Note!  The  Database  Lab  counts  25%  of  the  final  grade  in  the  course  

49  

Hans-­‐Pe2er  Halvorsen,  M.Sc.   Telemark  University  College   Faculty  of  Technology   Department  of  Electrical  Engineering,  InformaSon  Technology  and  CyberneScs  

    E-­‐mail:  [email protected]   Blog:  h2p://home.hit.no/~hansha/    

50