LINQ: Language Integrated Query. ST Colloquium, Tom Lokhorst

Size: px
Start display at page:

Download "LINQ: Language Integrated Query. ST Colloquium, 2008-05-15 Tom Lokhorst"

Transcription

1 LINQ: Language Integrated Query ST Colloquium, Tom Lokhorst

2 Brief example

3 Brief example int[] nrs = {2, 3, 9, 1, 21, 3, 42};

4 Brief example int[] nrs = {2, 3, 9, 1, 21, 3, 42}; var q = from n in nrs where n < 5 select n * n;

5 Brief example int[] nrs = {2, 3, 9, 1, 21, 3, 42}; var q = from n in nrs where n < 5 select n * n; foreach (var i in q) { Console.WriteLine(i); }

6 Brief example int[] nrs = {2, 3, 9, 1, 21, 3, 42}; var q = from n in nrs where n < 5 select n * n; LINQ foreach (var i in q) { Console.WriteLine(i); }

7 Overview The problem space LINQ in.net 3.5 Deconstructing expressions Usages of LINQ Comparisons with other stuff

8 Circles, Triangles and Rectangles

9 Circles, Triangles and Rectangles

10 Circles, Triangles and Rectangles Business software deals with lots of different types of data: Objects Tree structures (XML) Relational

11 Assignment A web server should show a list of the top 5 memory-intensive processes. Per process, show its name, and a description. There is a SQL database with descriptions for programs. The list should be in RSS format.

12 A bit of History

13 A bit of History.NET 1.0 released early 2002 CLR 1.0, C# 1.0, VB 7.0 Delegates: managed function pointers

14 A bit of History.NET 1.0 released early 2002 CLR 1.0, C# 1.0, VB 7.0 Delegates: managed function pointers.net 2.0 released late 2005 CLR 2.0, C# 2.0, VB 8.0 Generics, iterators, anonymous delegates

15 A bit of History.NET 1.0 released early 2002 CLR 1.0, C# 1.0, VB 7.0 Delegates: managed function pointers.net 2.0 released late 2005 CLR 2.0, C# 2.0, VB 8.0 Generics, iterators, anonymous delegates.net 3.5 released late 2007 CLR 2.0, C# 3.0, VB 9.0 Lambda expressions, local type inferencing, extension methods, LINQ

16 LINQ in.net 3.5 Libraries LINQ to Objects LINQ to XML LINQ to SQL Language enhancements Lambda expressions Query syntax Compiler enhancements Expression trees

17 LINQ to Objects

18 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 3.0 var q = from n in nrs where n < 5 select n * n;

19 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 3.0 IEnumerable<int> q = from n in nrs where n < 5 select n * n;

20 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 3.0 IEnumerable<int> q = nrs.where<int>(n => n < 5).Select<int, int>(n => n * n);

21 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 3.0 IEnumerable<float> q = nrs.where<int>(n => n < 5).Select<int, float>(n => n * 0.5F);

22 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 3.0 IEnumerable<float> q = Enumerable.Select<int, float>( Enumerable.Where<int>(nrs, n => n < 5), (n => n * 0.5F));

23 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 3.0 IEnumerable<float> q = Enumerable.Select<int, float>( Enumerable.Where<int>(nrs, n => n < 5), (n => n * 0.5F)); public static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func<T, bool> predicate) {... }

24 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 3.0 IEnumerable<float> q = Enumerable.Select<int, float>( Enumerable.Where<int>(nrs, n => n < 5), (n => n * 0.5F)); public static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func<T, bool> predicate) { foreach (var elem in source) if (predicate(elem)) yield return elem; }

25 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 3.0 IEnumerable<float> q = Enumerable.Select<int, float>( Enumerable.Where<int>(nrs, n => n < 5), (n => n * 0.5F));

26 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 2.0 IEnumerable<float> q = Enumerable.Select<int, float>( Enumerable.Where<int>(nrs, delegate(int n){ return n < 5; }), delegate(int n){ return n * 0.5F;} );

27 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 1.0* IEnumerable<float> q = Enumerable.Select<int, float>( Enumerable.Where<int>(nrs, new Func<int, bool>(lessthanfive)), new Func<int, float>(timeshalf) ); bool LessThanFive(int n) { return n < 5; } float TimesHalf(int n) { return n * 0.5F; }

28 Eating the sugar int[] nrs = {2, 3, 9, 1, 21, 3, 42}; C# 3.0 var q = from n in nrs where n < 5 select n * n;

29 LINQ to Objects Query comprehenssions More syntax; orderby, groupby, join Works on you data structures IEnumerable<T> Implement you own Where<T>, Select<T> More library functions

30 LINQ to XML

31 Dealing with angle brackets LINQ to XML is a replacement for the W3C Document Object Model, because: It s old It s ugly It s impractical New API, all library: System.Xml.LINQ

32 Document Object Model Imperative API Document-centric Weird data types

33 Document Object Model Imperative API Document-centric Weird data types <Company name= Microsoft > <Founders> <Person>Bill Gates</Person> </Founders> </Company>

34 Document Object Model XmlDocument doc = new XmlDocument(); XmlElement company = doc.createelement("company"); doc.appendchild(company); XmlAttribute name = doc.createattribute("name"); name.value = "Microsoft"; company.attributes.append(name); XmlElement founders = doc.createelement("founders"); company.appendchild(founders); XmlElement person = doc.createelement("person"); founders.appendchild(person); XmlText bill = doc.createtextnode("bill Gates"); person.appendchild(bill);

35 LINQ to XML Functional construction Element-centric (context free) CLR data types (collection friendly)

36 LINQ to XML Functional construction Element-centric (context free) CLR data types (collection friendly) XElement company = new XElement("Company", new XAttribute("name", "Microsoft"), new XElement("Founders", new XElement("Person", "Bill Gates") ) );

37 XML with queries

38 XML with queries string[] names = { Anders, Erik, Amanda };

39 XML with queries string[] names = { Anders, Erik, Amanda }; from n in names where n.startswith( A ) select new XElement( Person, n)

40 XML with queries string[] names = { Anders, Erik, Amanda }; XElement employees = new XElement( Employees, from n in names where n.startswith( A ) select new XElement( Person, n) );

41 XML with queries string[] names = { Anders, Erik, Amanda }; XElement employees = new XElement( Employees, from n in names where n.startswith( A ) select new XElement( Person, n) ); company.add(employees);

42 XML with queries string[] names = { Anders, Erik, Amanda }; XElement employees = new XElement( Employees, from n in names where n.startswith( A ) select new XElement( Person, n) ); company.add(employees); Console.WriteLine(company);

43 XML on the Console <Company name= Microsoft > <Founders> <Person>Bill Gates</Person> </Founders> <Employees> <Person>Anders</Person> <Person>Amanda</Person> </Employees> </Company>

44 Querying XML IEnumerable<string> persons = from p in company.descendants( Person ) select p.value;

45 Querying XML IEnumerable<string> persons = from p in company.descendants( Person ) select p.value; Bill Gates Anders Amanda

46 LINQ to SQL

47 Querying a SQL backend Use LINQ to query a relational database Strongly typed queries Remote the query to the DBMS C# must remain API/DB independent

48 LINQ to SQL Simple Object Relational Mapper Microsoft SQL Server Comes with tool to make classes out of tables in an existing database Certainly not the best ORM out there More advanced stuff: LINQ to Entities

49 LINQ to SQL example

50 LINQ to SQL example

51 LINQ to SQL example

52 LINQ to SQL example [DatabaseAttribute(Name="Northwind")] public partial class NorthwindDataContext : System.Data.LINQ.DataContext { public NorthwindDataContext() : base("data Source=.;Initial Catalog=Northwind;" + "Integrated Security=True") { } } public Table<Customer> Customers { get { return this.gettable<customer>(); } }

53 LINQ to SQL example [Table(Name="dbo.Customers")] public partial class Customer : INotifyPropertyChanging, INotifyPropertyChanged { private string _CustomerID; [Column(Storage="_CustomerID", DbType="NChar(5) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] public string CustomerID { get { return this._customerid; } set { /* Setter code removed */ } } } /* More code be here */

54 LINQ to SQL example

55 LINQ to SQL example var db = new NorthwindDataContext(); var q = from c in db.customers where c.city == London select c;

56 LINQ to SQL example var db = new NorthwindDataContext(); var q = from c in db.customers where c.city == London select c; foreach (var c in q) Console.WriteLine(c.CustomerID + + c.contactname);

57 LINQ to SQL example var db = new NorthwindDataContext(); var q = from c in db.customers where c.city == London select c; foreach (var c in q) Console.WriteLine(c.CustomerID + + c.contactname); AROUT Thomas Hardy BSBEV Victoria Ashworth CONSH Elizabeth Brown EASTC Ann Devon NORTS Simon Crowther SEVES Hari Kumar

58 LINQ to SQL example var q = db.customers.where<customer>( c => c.city == London );

59 Lambdas again

60 Lambdas again Func<int, int> f = x => (x + 1) * 2; int nr = f(20); Console.WriteLine(nr); // Prints: 42

61 Lambdas again Expression<Func<int, int>> e = x => (x + 1) * 2;

62 Lambdas again Expression<Func<int, int>> e = x => (x + 1) * 2; string str = e.nodetype + + e.parameters.count; Console.WriteLine(str); // Prints: Lambda 1

63 Lambdas again Expression<Func<int, int>> e = x => (x + 1) * 2; string str = e.nodetype + + e.parameters.count; Console.WriteLine(str); // Prints: Lambda 1 Func<int, int> f = e.compile(); Console.WriteLine(f(20)); // Prints: 42

64 Lambdas again Expression<Func<int, int>> e = x => (x + 1) * 2;

65 Lambdas again Expression<Func<int, int>> e = x => (x + 1) * 2; ParameterExpression x = Expression.Parameter(typeof(int), "x"); Expression one = Expression.Constant(1, typeof(int)); Expression two = Expression.Constant(2, typeof(int)); Expression body = Expression.Multiply(Expression.Add(x, one), two); Expression<Func<int, int>> e = Expression.Lambda<Func<int, int>>(body, x);

66 LINQ to SQL example var q = db.customers.where<customer>( c => c.city == London );

67 LINQ to SQL example var q = db.customers.where<customer>( c => c.city == London ); ParameterExpression c = Expression.Parameter(typeof(Customer), "c"); IQueryable<Customer> q = db.customers.where<customer>(expression.lambda<func<customer, bool>>( Expression.Equal( Expression.Property(c, (MethodInfo) methodof(customer.get_city)), Expression.Constant("London", typeof(string)), false, (MethodInfo) methodof(string.op_equality)), c));

68 LINQ to SQL example var q = db.customers.where<customer>( c => c.city == London ); SELECT C.* FROM Customers AS C WHERE C.City = London

69 Many more operations int x = db.customers.where<customer>( c => c.city == London ).Count(); SELECT COUNT(C.*) AS value FROM Customers AS C WHERE C.City = London

70 Many more operations int x = db.customers.where<customer>( c => c.city == London ).Take(4); SELECT TOP (4) C.* FROM Customers AS C WHERE C.City = London

71 Many more operations Restriction Projection Partitioning Join Concatinatin Ordering Grouping Set Conversion Elemement Generation Quantifiers Aggregate Where Select, SelectMany Take, Skip, TakeWhile, SkipWhile Join, GroupJoin Concat OrderBy, ThenBy, Reverse GroupBy Distinct, Union, Intersect, Except ToArray, ToList, ToDictionary, OfType, Cast First, FirstOrDefault, Last, LastOrDefault Range, Repeat, Empty Any, All, Contains Count, Sum, Min, Max, Average, Aggregate

72 Assignment

73 Assignment Solution

74 Assignment Solution new XElement("rss", new XAttribute("version", "2.0"), new XElement("channel", new XElement("title", "Top Processes"), from p in (from p in Process.GetProcesses() orderby p.virtualmemorysize descending select p).take(5) join pd in db.processdescriptions on p.processname equals pd.name into descrs from d in descrs.defaultifempty() select new XElement("item", new XElement("title", p.processname), d!= null? new XElement("description", d.description) : null) ) );

75 Assignment <rss version="2.0"> <channel> <title>top Processes</title> <item> <title>sqlservr</title> <description>sql Server</description> </item> <item> <title>sqlservr</title> <description>sql Server</description> </item> <item> <title>devenv</title> <description>visual Studio</description> </item> <item> <title>ssmsee</title> </item> <item> <title>reflector</title> </item> </channel> </rss> Solution

76 Other providers DbLinq (MySQL, PostgreSQL, Oracle) LINQ to Google LINQ to Entities Parallel LINQ DryadLINQ (Distributed execution engine)

77 Concluding... All LINQ is: Query comprehensions Libraries Expression trees Many more providers to come...

78 Questions?

79 Assignment in VB syntax Dim result = _ <rss version="2.0"> <channel>top Processes</channel> <%= From p In Process.GetProcesses() _ Order By p.virtualmemorysize Descending _ Take 5 _ Group Join pd In db.processdescriptions _ On p.processname Equals pd.name _ Into descrs = Group _ From d In descrs.defaultifempty _ Select <item> <title><%= p.processname %></title> <%= If(d IsNot Nothing, _ <description><%= d.description %></description>, _ Nothing) %> </item> %> </rss>

80 LINQ in Java // Setup a JPA entity manager... SessionFactory sessionfactory = new Configuration().configure().buildSessionFactory(); EntityManagerFactory entitymanagerfactory = new EntityManagerFactoryImpl(sessionFactory, PersistenceUnitTransactionType.RESOURCE_LOCAL, true); QueryableEntityManager entitymanager = new QueryableEntityManager(entityManagerFactory.createEntityManager()); // Select all customers in the Washington region Iterable<Customer> wacustomers = from("c").in(entitymanager.entity(customer.class)). where(eq("c.getregion()", "WA")). select("c");

81 Monadic parser combinators using C# public abstract class MiniMLParsers<TInput> : CharParsers<TInput>{ public MiniMLParsers() { Whitespace = Rep(Char(' ').OR(Char('\t').OR(Char('\n')).OR(Char('\r')))); WsChr = chr => Whitespace.AND(Char(chr)); Id = from w in Whitespace from c in Char(char.IsLetter) from cs in Rep(Char(char.IsLetterOrDigit)) select cs.aggregate(c.tostring(),(acc,ch) => acc+ch); Ident = from s in Id where s!= "let" && s!= "in" select s; LetId = from s in Id where s == "let" select s; InId = from s in Id where s == "in" select s; Term1 = (from x in Ident select (Term)new VarTerm(x)).OR( (from u1 in WsChr('(') from t in Term from u2 in WsChr(')') select t)); Term = (from u1 in WsChr('\\') from x in Ident from u2 in WsChr('.') from t in Term

82 } from cs in Rep(Char(char.IsLetterOrDigit)) select cs.aggregate(c.tostring(),(acc,ch) => acc+ch); Ident = from s in Id where s!= "let" && s!= "in" select s; LetId = from s in Id where s == "let" select s; Monadic parser InId = from s in Id where s == "in" select s; Term1 = (from x in Ident select (Term)new VarTerm(x)) combinators using C#.OR( (from u1 in WsChr('(') from t in Term from u2 in WsChr(')') select t)); Term = (from u1 in WsChr('\\') from x in Ident from u2 in WsChr('.') from t in Term select (Term)new LambdaTerm(x,t)).OR( (from letid in LetId from x in Ident from u1 in WsChr('=') from t in Term from inid in InId from c in Term select (Term)new LetTerm(x,t,c))).OR( (from t in Term1 from ts in Rep(Term1) select (Term)new AppTerm(t,ts))); All = from t in Term from u in WsChr(';') select t;

Seminar Datenbanksysteme

Seminar Datenbanksysteme University of Applied Sciences HTW Chur Master of Science in Engineering (MSE) Seminar Datenbanksysteme The LINQ-Approach in Java Student: Norman Süsstrunk Tutor: Martin Studer 18 th October 2010 Seminar

More information

Visual C# 2012 Programming

Visual C# 2012 Programming Visual C# 2012 Programming Karli Watson Jacob Vibe Hammer John D. Reid Morgan Skinner Daniel Kemper Christian Nagel WILEY John Wiley & Sons, Inc. INTRODUCTION xxxi CHAPTER 1: INTRODUCING C# 3 What Is the.net

More information

TypeScript for C# developers. Making JavaScript manageable

TypeScript for C# developers. Making JavaScript manageable TypeScript for C# developers Making JavaScript manageable Agenda What is TypeScript OO in TypeScript Closure Generics Iterators Asynchronous programming Modularisation Debugging TypeScript 2 What is TypeScript

More information

09336863931 : provid.ir

09336863931 : provid.ir provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement

More information

SQL - QUICK GUIDE. Allows users to access data in relational database management systems.

SQL - QUICK GUIDE. Allows users to access data in relational database management systems. http://www.tutorialspoint.com/sql/sql-quick-guide.htm SQL - QUICK GUIDE Copyright tutorialspoint.com What is SQL? SQL is Structured Query Language, which is a computer language for storing, manipulating

More information

DBMS / Business Intelligence, SQL Server

DBMS / Business Intelligence, SQL Server DBMS / Business Intelligence, SQL Server Orsys, with 30 years of experience, is providing high quality, independant State of the Art seminars and hands-on courses corresponding to the needs of IT professionals.

More information

HTSQL is a comprehensive navigational query language for relational databases.

HTSQL is a comprehensive navigational query language for relational databases. http://htsql.org/ HTSQL A Database Query Language HTSQL is a comprehensive navigational query language for relational databases. HTSQL is designed for data analysts and other accidental programmers who

More information

Paging, sorting, and searching using EF Code first and MVC 3. Introduction. Installing AdventureWorksLT database. Creating the MVC 3 web application

Paging, sorting, and searching using EF Code first and MVC 3. Introduction. Installing AdventureWorksLT database. Creating the MVC 3 web application Paging, sorting, and searching using EF Code first and MVC 3 Nadeem Afana's blog Download code! Introduction In this blog post, I am going to show you how to search, paginate and sort information retrieved

More information

TO HACK AN ASP.NET WEBSITE?

TO HACK AN ASP.NET WEBSITE? TO HACK AN ASP.NET WEBSITE? HARD, BUT POSSIBLE! Vladimir Kochetkov Positive Technologies A Blast From The Past: File System DOS devices and reserved names: NUL:, CON:, AUX:, PRN:, COM[1-9]:, LPT[1-9]:

More information

CSE 530A Database Management Systems. Introduction. Washington University Fall 2013

CSE 530A Database Management Systems. Introduction. Washington University Fall 2013 CSE 530A Database Management Systems Introduction Washington University Fall 2013 Overview Time: Mon/Wed 7:00-8:30 PM Location: Crow 206 Instructor: Michael Plezbert TA: Gene Lee Websites: http://classes.engineering.wustl.edu/cse530/

More information

Databases 2011 The Relational Model and SQL

Databases 2011 The Relational Model and SQL Databases 2011 Christian S. Jensen Computer Science, Aarhus University What is a Database? Main Entry: da ta base Pronunciation: \ˈdā-tə-ˌbās, ˈda- also ˈdä-\ Function: noun Date: circa 1962 : a usually

More information

Financial Data Access with SQL, Excel & VBA

Financial Data Access with SQL, Excel & VBA Computational Finance and Risk Management Financial Data Access with SQL, Excel & VBA Guy Yollin Instructor, Applied Mathematics University of Washington Guy Yollin (Copyright 2012) Data Access with SQL,

More information

ADO.NET. Industrial Programming. Structure of database access. ADO.NET Example. Lecture 7: Database access in C# using LINQ

ADO.NET. Industrial Programming. Structure of database access. ADO.NET Example. Lecture 7: Database access in C# using LINQ ADO.NET Industrial Programming Lecture 7: Database access in C# using LINQ Industrial Programming 1 ADO.NET provides a direct interface to a database. The interface is database-specific. ADO.NET uses a

More information

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln. Koln C#5.0 IN A NUTSHELL Fifth Edition Joseph Albahari and Ben Albahari O'REILLY Beijing Cambridge Farnham Sebastopol Tokyo Table of Contents Preface xi 1. Introducing C# and the.net Framework 1 Object

More information

Beginning C# 5.0. Databases. Vidya Vrat Agarwal. Second Edition

Beginning C# 5.0. Databases. Vidya Vrat Agarwal. Second Edition Beginning C# 5.0 Databases Second Edition Vidya Vrat Agarwal Contents J About the Author About the Technical Reviewer Acknowledgments Introduction xviii xix xx xxi Part I: Understanding Tools and Fundamentals

More information

Introduction to NoSQL Databases and MapReduce. Tore Risch Information Technology Uppsala University 2014-05-12

Introduction to NoSQL Databases and MapReduce. Tore Risch Information Technology Uppsala University 2014-05-12 Introduction to NoSQL Databases and MapReduce Tore Risch Information Technology Uppsala University 2014-05-12 What is a NoSQL Database? 1. A key/value store Basic index manager, no complete query language

More information

Introduction to NoSQL Databases. Tore Risch Information Technology Uppsala University 2013-03-05

Introduction to NoSQL Databases. Tore Risch Information Technology Uppsala University 2013-03-05 Introduction to NoSQL Databases Tore Risch Information Technology Uppsala University 2013-03-05 UDBL Tore Risch Uppsala University, Sweden Evolution of DBMS technology Distributed databases SQL 1960 1970

More information

A Brief Introduction to MySQL

A Brief Introduction to MySQL A Brief Introduction to MySQL by Derek Schuurman Introduction to Databases A database is a structured collection of logically related data. One common type of database is the relational database, a term

More information

Querying MongoDB without programming using FUNQL

Querying MongoDB without programming using FUNQL Querying MongoDB without programming using FUNQL FUNQL? Federated Unified Query Language What does this mean? Federated - Integrates different independent stand alone data sources into one coherent view

More information

Part I. Multiple Choice Questions (2 points each):

Part I. Multiple Choice Questions (2 points each): Part I. Multiple Choice Questions (2 points each): 1. Which of the following is NOT a key component of object oriented programming? (a) Inheritance (b) Encapsulation (c) Polymorphism (d) Parallelism ******

More information

How to Design and Create Your Own Custom Ext Rep

How to Design and Create Your Own Custom Ext Rep Combinatorial Block Designs 2009-04-15 Outline Project Intro External Representation Design Database System Deployment System Overview Conclusions 1. Since the project is a specific application in Combinatorial

More information

WEB DEVELOPMENT COURSE (PHP/ MYSQL)

WEB DEVELOPMENT COURSE (PHP/ MYSQL) WEB DEVELOPMENT COURSE (PHP/ MYSQL) COURSE COVERS: HTML 5 CSS 3 JAVASCRIPT JQUERY BOOTSTRAP 3 PHP 5.5 MYSQL SYLLABUS HTML5 Introduction to HTML Introduction to Internet HTML Basics HTML Elements HTML Attributes

More information

SQL: Programming. Introduction to Databases CompSci 316 Fall 2014

SQL: Programming. Introduction to Databases CompSci 316 Fall 2014 SQL: Programming Introduction to Databases CompSci 316 Fall 2014 2 Announcements (Tue., Oct. 7) Homework #2 due today midnight Sample solution to be posted by tomorrow evening Midterm in class this Thursday

More information

Introduction to SQL and SQL in R. LISA Short Courses Xinran Hu

Introduction to SQL and SQL in R. LISA Short Courses Xinran Hu Introduction to SQL and SQL in R LISA Short Courses Xinran Hu 1 Laboratory for Interdisciplinary Statistical Analysis LISA helps VT researchers benefit from the use of Statistics Collaboration: Visit our

More information

Intro to Web Programming. using PHP, HTTP, CSS, and Javascript Layton Smith CSE 4000

Intro to Web Programming. using PHP, HTTP, CSS, and Javascript Layton Smith CSE 4000 Intro to Web Programming using PHP, HTTP, CSS, and Javascript Layton Smith CSE 4000 Intro Types in PHP Advanced String Manipulation The foreach construct $_REQUEST environmental variable Correction on

More information

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)

More information

PHP Tutorial From beginner to master

PHP Tutorial From beginner to master PHP Tutorial From beginner to master PHP is a powerful tool for making dynamic and interactive Web pages. PHP is the widely-used, free, and efficient alternative to competitors such as Microsoft's ASP.

More information

Java EE Web Development Course Program

Java EE Web Development Course Program Java EE Web Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive types, variables, basic operators, expressions,

More information

Discovering SQL. Wiley Publishing, Inc. A HANDS-ON GUIDE FOR BEGINNERS. Alex Kriegel WILEY

Discovering SQL. Wiley Publishing, Inc. A HANDS-ON GUIDE FOR BEGINNERS. Alex Kriegel WILEY Discovering SQL A HANDS-ON GUIDE FOR BEGINNERS Alex Kriegel WILEY Wiley Publishing, Inc. INTRODUCTION xxv CHAPTER 1: DROWNING IN DATA, DYING OF THIRST FOR KNOWLEDGE 1 Data Deluge and Informational Overload

More information

Consuming and Producing Web Services with WST and JST. Christopher M. Judd. President/Consultant Judd Solutions, LLC

Consuming and Producing Web Services with WST and JST. Christopher M. Judd. President/Consultant Judd Solutions, LLC Consuming and Producing Web Services with WST and JST Christopher M. Judd President/Consultant Judd Solutions, LLC Christopher M. Judd President/Consultant of Judd Solutions Central Ohio Java User Group

More information

Chapter 9 Java and SQL. Wang Yang [email protected]

Chapter 9 Java and SQL. Wang Yang wyang@njnet.edu.cn Chapter 9 Java and SQL Wang Yang [email protected] Outline Concern Data - File & IO vs. Database &SQL Database & SQL How Connect Java to SQL - Java Model for Database Java Database Connectivity (JDBC)

More information

6. SQL/XML. 6.1 Introduction. 6.1 Introduction. 6.1 Introduction. 6.1 Introduction. XML Databases 6. SQL/XML. Creating XML documents from a database

6. SQL/XML. 6.1 Introduction. 6.1 Introduction. 6.1 Introduction. 6.1 Introduction. XML Databases 6. SQL/XML. Creating XML documents from a database XML Databases Silke Eckstein Andreas Kupfer Institut für Informationssysteme Technische Universität http://www.ifis.cs.tu-bs.de in XML XML Databases SilkeEckstein Institut fürinformationssysteme TU 2 Creating

More information

database abstraction layer database abstraction layers in PHP Lukas Smith BackendMedia [email protected]

database abstraction layer database abstraction layers in PHP Lukas Smith BackendMedia smith@backendmedia.com Lukas Smith database abstraction layers in PHP BackendMedia 1 Overview Introduction Motivation PDO extension PEAR::MDB2 Client API SQL syntax SQL concepts Result sets Error handling High level features

More information

PHP Language Binding Guide For The Connection Cloud Web Services

PHP Language Binding Guide For The Connection Cloud Web Services PHP Language Binding Guide For The Connection Cloud Web Services Table Of Contents Overview... 3 Intended Audience... 3 Prerequisites... 3 Term Definitions... 3 Introduction... 4 What s Required... 5 Language

More information

v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com

v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com Table of Contents Table of Contents................................................................ ii 1. Overview 2. Workflow...................................................................

More information

SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24. Data Federation Administration Tool Guide

SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24. Data Federation Administration Tool Guide SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24 Data Federation Administration Tool Guide Content 1 What's new in the.... 5 2 Introduction to administration

More information

XML Databases 6. SQL/XML

XML Databases 6. SQL/XML XML Databases 6. SQL/XML Silke Eckstein Andreas Kupfer Institut für Informationssysteme Technische Universität Braunschweig http://www.ifis.cs.tu-bs.de 6. SQL/XML 6.1Introduction 6.2 Publishing relational

More information

ABSTRACT 1. INTRODUCTION. Kamil Bajda-Pawlikowski [email protected]

ABSTRACT 1. INTRODUCTION. Kamil Bajda-Pawlikowski kbajda@cs.yale.edu Kamil Bajda-Pawlikowski [email protected] Querying RDF data stored in DBMS: SPARQL to SQL Conversion Yale University technical report #1409 ABSTRACT This paper discusses the design and implementation

More information

Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the.

Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the. Objectif This six-day instructor-led course provides students with the knowledge and skills to develop applications in the.net 3.5 using the C# 3.0 programming language. C# is one of the most popular programming

More information

Programming Database lectures for mathema

Programming Database lectures for mathema Programming Database lectures for mathematics students April 25, 2015 Functions Functions are defined in Postgres with CREATE FUNCTION name(parameter type,...) RETURNS result-type AS $$ function-body $$

More information

FileMaker 12. ODBC and JDBC Guide

FileMaker 12. ODBC and JDBC Guide FileMaker 12 ODBC and JDBC Guide 2004 2012 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks of FileMaker, Inc.

More information

Real-time Streaming Analysis for Hadoop and Flume. Aaron Kimball odiago, inc. OSCON Data 2011

Real-time Streaming Analysis for Hadoop and Flume. Aaron Kimball odiago, inc. OSCON Data 2011 Real-time Streaming Analysis for Hadoop and Flume Aaron Kimball odiago, inc. OSCON Data 2011 The plan Background: Flume introduction The need for online analytics Introducing FlumeBase Demo! FlumeBase

More information

Social Relationship Analysis with Data Mining

Social Relationship Analysis with Data Mining Social Relationship Analysis with Data Mining John C. Hancock Microsoft Corporation www.johnchancock.net November 2005 Abstract: The data mining algorithms in Microsoft SQL Server 2005 can be used as a

More information

Java SE 8 Programming

Java SE 8 Programming Oracle University Contact Us: 1.800.529.0165 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming

More information

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code. Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...

More information

by Mario Fusco [email protected] twitter: @mariofusco Monadic

by Mario Fusco mario.fusco@gmail.com twitter: @mariofusco Monadic by Mario Fusco [email protected] twitter: @mariofusco Monadic Imperative languages Java C# C / C++ Fortran Add abstractions Scala F# Subtract abstractions Hybrid languages Algol Lisp ML Haskell Functional

More information

SQL Server Array Library 2010-11 László Dobos, Alexander S. Szalay

SQL Server Array Library 2010-11 László Dobos, Alexander S. Szalay SQL Server Array Library 2010-11 László Dobos, Alexander S. Szalay The Johns Hopkins University, Department of Physics and Astronomy Eötvös University, Department of Physics of Complex Systems http://voservices.net/sqlarray,

More information

Visual Basic Programming. An Introduction

Visual Basic Programming. An Introduction Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides

More information

Short notes on webpage programming languages

Short notes on webpage programming languages Short notes on webpage programming languages What is HTML? HTML is a language for describing web pages. HTML stands for Hyper Text Markup Language HTML is a markup language A markup language is a set of

More information

Weaving Stored Procedures into Java at Zalando

Weaving Stored Procedures into Java at Zalando Weaving Stored Procedures into Java at Zalando Jan Mussler JUG DO April 2013 Outline Introduction Stored procedure wrapper Problems before the wrapper How it works How to use it More features including

More information

Big Data and Big Analytics

Big Data and Big Analytics Big Data and Big Analytics Introducing SciDB Open source, massively parallel DBMS and analytic platform Array data model (rather than SQL, Unstructured, XML, or triple-store) Extensible micro-kernel architecture

More information

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014 CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections

More information

Principles of Database Management Systems. Overview. Principles of Data Layout. Topic for today. "Executive Summary": here.

Principles of Database Management Systems. Overview. Principles of Data Layout. Topic for today. Executive Summary: here. Topic for today Principles of Database Management Systems Pekka Kilpeläinen (after Stanford CS245 slide originals by Hector Garcia-Molina, Jeff Ullman and Jennifer Widom) How to represent data on disk

More information

Database Design and Programming

Database Design and Programming Database Design and Programming Peter Schneider-Kamp DM 505, Spring 2012, 3 rd Quarter 1 Course Organisation Literature Database Systems: The Complete Book Evaluation Project and 1-day take-home exam,

More information

Developing an ODBC C++ Client with MySQL Database

Developing an ODBC C++ Client with MySQL Database Developing an ODBC C++ Client with MySQL Database Author: Rajinder Yadav Date: Aug 21, 2007 Web: http://devmentor.org Email: [email protected] Assumptions I am going to assume you already know how

More information

SQL injection: Not only AND 1=1. The OWASP Foundation. Bernardo Damele A. G. Penetration Tester Portcullis Computer Security Ltd

SQL injection: Not only AND 1=1. The OWASP Foundation. Bernardo Damele A. G. Penetration Tester Portcullis Computer Security Ltd SQL injection: Not only AND 1=1 Bernardo Damele A. G. Penetration Tester Portcullis Computer Security Ltd [email protected] +44 7788962949 Copyright Bernardo Damele Assumpcao Guimaraes Permission

More information

Oracle Database: SQL and PL/SQL Fundamentals

Oracle Database: SQL and PL/SQL Fundamentals Oracle University Contact Us: 1.800.529.0165 Oracle Database: SQL and PL/SQL Fundamentals Duration: 5 Days What you will learn This course is designed to deliver the fundamentals of SQL and PL/SQL along

More information

ORM2Pwn: Exploiting injections in Hibernate ORM

ORM2Pwn: Exploiting injections in Hibernate ORM ORM2Pwn: Exploiting injections in Hibernate ORM Mikhail Egorov Sergey Soldatov Short BIO - Mikhail Egorov Application Security Engineer at Odin [ http://www.odin.com ] Security researcher and bug hunter

More information

Database Query 1: SQL Basics

Database Query 1: SQL Basics Database Query 1: SQL Basics CIS 3730 Designing and Managing Data J.G. Zheng Fall 2010 1 Overview Using Structured Query Language (SQL) to get the data you want from relational databases Learning basic

More information

Jet Data Manager 2012 User Guide

Jet Data Manager 2012 User Guide Jet Data Manager 2012 User Guide Welcome This documentation provides descriptions of the concepts and features of the Jet Data Manager and how to use with them. With the Jet Data Manager you can transform

More information

How to make a good Software Requirement Specification(SRS)

How to make a good Software Requirement Specification(SRS) Information Management Software Information Management Software How to make a good Software Requirement Specification(SRS) Click to add text TGMC 2011 Phases Registration SRS Submission Project Submission

More information

A Comparison of Database Query Languages: SQL, SPARQL, CQL, DMX

A Comparison of Database Query Languages: SQL, SPARQL, CQL, DMX ISSN: 2393-8528 Contents lists available at www.ijicse.in International Journal of Innovative Computer Science & Engineering Volume 3 Issue 2; March-April-2016; Page No. 09-13 A Comparison of Database

More information

Setting Up a CLucene and PostgreSQL Federation

Setting Up a CLucene and PostgreSQL Federation Federated Desktop and File Server Search with libferris Ben Martin Abstract How to federate CLucene personal document indexes with PostgreSQL/TSearch2. The libferris project has two major goals: mounting

More information

Excel Power Tools. David Onder and Alison Joseph. NCAIR 2015 Conference

Excel Power Tools. David Onder and Alison Joseph. NCAIR 2015 Conference Excel Power Tools David Onder and Alison Joseph NCAIR 2015 Conference 10,382 students Master s Comprehensive Mountain location Residential and Distance 2 Why Pivot Tables Summarize large datasets Quickly

More information

Braindumps.C2150-810.50 questions

Braindumps.C2150-810.50 questions Braindumps.C2150-810.50 questions Number: C2150-810 Passing Score: 800 Time Limit: 120 min File Version: 5.3 http://www.gratisexam.com/ -810 IBM Security AppScan Source Edition Implementation This is the

More information

To Java SE 8, and Beyond (Plan B)

To Java SE 8, and Beyond (Plan B) 11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption

More information

CS346: Database Programming. http://warwick.ac.uk/cs346

CS346: Database Programming. http://warwick.ac.uk/cs346 CS346: Database Programming http://warwick.ac.uk/cs346 1 Database programming Issue: inclusionofdatabasestatementsinaprogram combination host language (general-purpose programming language, e.g. Java)

More information

Maksym Iaroshenko Co-Founder and Senior Software Engineer at Eltrino. Magento non-mysql implementations

Maksym Iaroshenko Co-Founder and Senior Software Engineer at Eltrino. Magento non-mysql implementations Maksym Iaroshenko Co-Founder and Senior Software Engineer at Eltrino Magento non-mysql implementations http://ice.eltrino.com/ MySQL? Magento OOB supports MySQL only Since release of Magento CE 1.6 and

More information

Moving from CS 61A Scheme to CS 61B Java

Moving from CS 61A Scheme to CS 61B Java Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you

More information

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. Exam Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) The JDK command to compile a class in the file Test.java is A) java Test.java B) java

More information

K@ A collaborative platform for knowledge management

K@ A collaborative platform for knowledge management White Paper K@ A collaborative platform for knowledge management Quinary SpA www.quinary.com via Pietrasanta 14 20141 Milano Italia t +39 02 3090 1500 f +39 02 3090 1501 Copyright 2004 Quinary SpA Index

More information

www.quilogic.com SQL/XML-IMDBg GPU boosted In-Memory Database for ultra fast data management Harald Frick CEO QuiLogic In-Memory DB Technology

www.quilogic.com SQL/XML-IMDBg GPU boosted In-Memory Database for ultra fast data management Harald Frick CEO QuiLogic In-Memory DB Technology SQL/XML-IMDBg GPU boosted In-Memory Database for ultra fast data management Harald Frick CEO QuiLogic In-Memory DB Technology The parallel revolution Future computing systems are parallel, but Programmers

More information

WEB APPLICATION DEVELOPMENT. UNIT I J2EE Platform 9

WEB APPLICATION DEVELOPMENT. UNIT I J2EE Platform 9 UNIT I J2EE Platform 9 Introduction - Enterprise Architecture Styles - J2EE Architecture - Containers - J2EE Technologies - Developing J2EE Applications - Naming and directory services - Using JNDI - JNDI

More information

Getting Started with Telerik Data Access. Contents

Getting Started with Telerik Data Access. Contents Contents Overview... 3 Product Installation... 3 Building a Domain Model... 5 Database-First (Reverse) Mapping... 5 Creating the Project... 6 Creating Entities From the Database Schema... 7 Model-First

More information

Instant SQL Programming

Instant SQL Programming Instant SQL Programming Joe Celko Wrox Press Ltd. INSTANT Table of Contents Introduction 1 What Can SQL Do for Me? 2 Who Should Use This Book? 2 How To Use This Book 3 What You Should Know 3 Conventions

More information

IVR Studio 3.0 Guide. May-2013. Knowlarity Product Team

IVR Studio 3.0 Guide. May-2013. Knowlarity Product Team IVR Studio 3.0 Guide May-2013 Knowlarity Product Team Contents IVR Studio... 4 Workstation... 4 Name & field of IVR... 4 Set CDR maintainence property... 4 Set IVR view... 4 Object properties view... 4

More information

Chair of Software Engineering. Java and C# in depth. Carlo A. Furia, Bertrand Meyer. C#: Persistence

Chair of Software Engineering. Java and C# in depth. Carlo A. Furia, Bertrand Meyer. C#: Persistence Chair of Software Engineering Carlo A. Furia, Bertrand Meyer C#: Persistence Outline C# Serialization Connecting to a RDBMS with ADO.NET LINQ (Language Integrated Queries) NoSQL Solutions for C# and Java

More information

2015, André Melancia (Andy.PT) 1

2015, André Melancia (Andy.PT) 1 2015, (Andy.PT) 1 "" 1. Requirements For this session you will need a computer with: Windows 7 Professional or higher Office 2007 Professional or higher (Outlook and Access installed) Some of the drivers

More information

Chapter 15 Functional Programming Languages

Chapter 15 Functional Programming Languages Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,

More information

CS 378 Big Data Programming. Lecture 9 Complex Writable Types

CS 378 Big Data Programming. Lecture 9 Complex Writable Types CS 378 Big Data Programming Lecture 9 Complex Writable Types Review Assignment 4 - CustomWritable QuesIons/issues? Hadoop Provided Writables We ve used several Hadoop Writable classes Text LongWritable

More information

Package sjdbc. R topics documented: February 20, 2015

Package sjdbc. R topics documented: February 20, 2015 Package sjdbc February 20, 2015 Version 1.5.0-71 Title JDBC Driver Interface Author TIBCO Software Inc. Maintainer Stephen Kaluzny Provides a database-independent JDBC interface. License

More information

Introduction to SQL for Data Scientists

Introduction to SQL for Data Scientists Introduction to SQL for Data Scientists Ben O. Smith College of Business Administration University of Nebraska at Omaha Learning Objectives By the end of this document you will learn: 1. How to perform

More information

NOSQL INTRODUCTION WITH MONGODB AND RUBY GEOFF LANE <[email protected]> @GEOFFLANE

NOSQL INTRODUCTION WITH MONGODB AND RUBY GEOFF LANE <GEOFF@ZORCHED.NET> @GEOFFLANE NOSQL INTRODUCTION WITH MONGODB AND RUBY GEOFF LANE @GEOFFLANE WHAT IS NOSQL? NON-RELATIONAL DATA STORAGE USUALLY SCHEMA-FREE ACCESS DATA WITHOUT SQL (THUS... NOSQL) WIDE-COLUMN / TABULAR

More information

SQL Server. 2012 for developers. murach's TRAINING & REFERENCE. Bryan Syverson. Mike Murach & Associates, Inc. Joel Murach

SQL Server. 2012 for developers. murach's TRAINING & REFERENCE. Bryan Syverson. Mike Murach & Associates, Inc. Joel Murach TRAINING & REFERENCE murach's SQL Server 2012 for developers Bryan Syverson Joel Murach Mike Murach & Associates, Inc. 4340 N. Knoll Ave. Fresno, CA 93722 www.murach.com [email protected] Expanded

More information

Oracle Database: SQL and PL/SQL Fundamentals NEW

Oracle Database: SQL and PL/SQL Fundamentals NEW Oracle University Contact Us: + 38516306373 Oracle Database: SQL and PL/SQL Fundamentals NEW Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals training delivers the

More information

Efficient Interval Management in Microsoft SQL Server

Efficient Interval Management in Microsoft SQL Server Efficient Interval Management in Microsoft SQL Server Itzik Ben-Gan, SolidQ Last modified: August, 0 Agenda Inefficiencies of classic interval handling Solution: RI-tree by Kriegel, Pötke and Seidl of

More information