Seminar Datenbanksysteme
|
|
- Aleesha Conley
- 8 years ago
- Views:
Transcription
1 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
2 Seminar Datenbanksysteme : The LINQ-Approach in Java 2 Abstract LINQ is a component in the.net framework that enables writing SQL-querys in the programming language itself. This approach became quite popular in.net and is seen as a big advantage over other popular programming languages like Java. The popularity of LINQ has led to a lot of research how LINQ could be implemented in Java. There exist several projects that try to implement the LINQ-Approach in Java. In this paper, there will be first a discussion what the key benefits of LINQ are. Next it presents two projects that enable some sort of LINQ-capability in Java. The frameworks will be analysed in its implementation and their capabilities. Approval Date/Signature Tutor: Date/Signature Student:
3 Seminar Datenbanksysteme : The LINQ-Approach in Java 3 Table of contents Abstract... 2 Approval Introduction to LINQ What is LINQ? The LINQ Providers LINQ Example Key benefits of LINQ Actual Implementations of LINQ for Java JaQU sbql4j Conclusion Bibliography... 16
4 Seminar Datenbanksysteme : The LINQ-Approach in Java 4 1 Introduction to LINQ 1.1 What is LINQ? LINQ is a component of the.net-framework and stands for Language Integrated Query. The syntax of LINQ is based on the commands of the SQL query language such as "select", "from" and "where". This enables writing query expression in the programming itself. LINQ offers the benefits of both compile time checking and simplified development of query expressions. LINQ provides almost all standart query operators such as Select Where SelectMany Sum / Min / Max / Average Aggregate Join / GroupJoin and many more LINQ can be used to query all sort of data structures is not limited to relational databases like MS SQL Server or MySQL. This is enabled by the LINQ providers wich are presented in the next section. 1.2 The LINQ Providers A LINQ query retrieves data from a data source. In.NET, any type implementing IEnumerable or IEnumerable<T> is a valid source of data and is known as a queryable type. We can define our own custom types implementing IEnumerable<T>, and LINQ will work on our custom types with no additional modifications. A LINQ provider can be descriped as a connector for LINQ to query data that is not inside a queryable type. With LINQ providers, it is possible to query data inside almost any database server (SQL Server, MySQL etc.), inside XML, inside XSD, inside Twitter, inside Google, etc.
5 Seminar Datenbanksysteme : The LINQ-Approach in Java LINQ Example Listing 1 is an example written in C# showing the key features of LINQ: public void printsoldoutproducts() { List<Product> products = GetProductList(); var soldoutproducts = from p in products where p.unitsinstock == 0 select p; Console.WriteLine("Sold out products:"); foreach (var product in soldoutproducts { Console.WriteLine("{0 is sold out!", product.productname); Listing 1 : A simple query in LINQ Listing 1 shows how a query is expressed with LINQ. The query filters out all products wich aren t in stock anymore. If we translate this LINQ expression in a SQL query, the query would look like this: SELECT * FROM PRODUCTS P WHERE P.UNITS_IN_STOCK = Key benefits of LINQ Listing 1 shows a typical implementation of an execution of a simple SQL query in a modern programming language. The example is written in Java. try { Statement stmt = connection.createstatement(); String sql = "SELECT * FROM PRODUCTS P WHERE P.UNITS_IN_STOCK = 0"; stmt.executeupdate(sql); catch (SQLException e) { //... Listing 2 : typical way to execute an sql query in a programming language. The code shown here is written in Java The SQL-statement is typically stored in a string variable. Then the query will be executed on the connection to the database. This implementation has the following drawbacks:
6 Seminar Datenbanksysteme : The LINQ-Approach in Java 6 We have to assure that the query will be syntactically correct. The compiler of the programming language can t detect wrong querys as they are embedded in strings. There is no way to refactor the query with a refactoring tool. For example, if we modify the relational model with a refactoring tool, the tool can t consider querys that are stored in strings and are concerned to the change of the relational model. SQL querys only work with relational databases. We can t express a query for an array in Java. In.NET and its LINQ-feature, querys are an integral part of the language. This has the following advantages: The compiler checks the syntax of queries at compile time. No syntactically wrong query will execute on a database. If the queried data structures change, the query expression will be checked if it is still valid. For example, if some tables in a database change its structure, the querys can be checked if they still work with the altered table structure. In an integrated development environment (IDE), writing querys will be simplified because the IDE can autocomplete the query and thus writing querys can be much faster. An IDE can automatically refactor a query if for example the classes involved in the query are being refactored. Mapping to domain objects is done by LINQ Possibility to debug a query in the IDE. That s not possible with a query stored in a string. The querys can be optimized by the LINQ-providers.
7 Seminar Datenbanksysteme : The LINQ-Approach in Java 7 2 Actual Implementations of LINQ for Java The popularity of LINQ has led to attempts integrating LINQ in other programming languages. Such projects exists for Java, PHP, Javascript and others. Most of the projects try to simulate LINQ with their existing language components. To really enable the feautures of LINQ in a programming language, the programming language itself has to be extended. We have seen in the LINQ example in.net at the beginning, that expressing querys is an integrated part of the programmin language itself. There are ongoing discussions in the Internet to integrate LINQ into the Java programming language[6]. By now, it seems that there are no plans to integrate LINQ in Java. At this time, no Java language request (JSR) concerning LINQ can be found. In the next sections, there will be presented two projects for the Java language wich try to simulate writing integrated querys. They work with two different approaches. The projects where analyzed by the following aspects: How a query can be expressed The actual implementation Usability of the frameworks. 2.1 JaQU JaQU is a subproject of the developer of the popular H2 database engine and stands for Java Query. In listing 3, we see how the LINQ query from the beginning example is written with JaQU: Product p = new Product(); List<Product> soldoutproducts = db.from(p).where(p.unitsinstock).is(0).select(); Listing 3 : The query from listing 1 implemented with JaQU The class Product is a model class that maps to to a table Product in a H2 database. The reference db holds a connection to the H2 database. The statement in Listing 3 stands for the following SQL query: SELECT * FROM PRODUCTS P WHERE P.UNITS_IN_STOCK = 0 Listing 4 : The sql representation of the statement in listing 3 It can be see that the query is composed with method calls. So the query isn t expressed with keywords as this can be done in C# with LINQ. A lot of the key advantages that where stated for LINQ also can be seen here. Querys are expressed in a natural and object-oriented way.
8 Seminar Datenbanksysteme : The LINQ-Approach in Java 8 The query statements are easy to write with auto completion Code can be refactored It s type save because the API is strongly based on generics. Implementation of JaQU Running the example in listing 3 results in the following steps inside the JaQU-framework: 1. Creating and mapping the table to the model class In the example in listing 3, the query is performed on a list with objects of the type Product. The class Product will be inspected to create a SQL query that creates a table with the name Person. The columns of the table are based on the fields of the class Person. Listing 5 shows the field definitions of the class Product. Listing 6 shows the resulting SQL query that creates the table Product. public class Product implements Table { // public Integer productid; public String productname; public String category; public Double unitprice; public Integer unitsinstock; Listing 5 : Field definitions of the class Products CREATE TABLE IF NOT EXISTS Product ( productid INT, productname VARCHAR, category VARCHAR(255), unitprice DOUBLE, unitsinstock INT, PRIMARY KEY(productId) ) Listing 6 : Query to create the table for the class Product The framework then stores the relation of the model classes to its corresponding tables in a internal hashmap.
9 Seminar Datenbanksysteme : The LINQ-Approach in Java 9 2. Creating the SQL query The SQL query now will be composed based on the method calls where(..).is(..).select(). The query is being constructed step by step, the result is a string holding the complete query. Listing 7 shows that the query will be constructed with strings representing parts of a SQL query. SQLStatement prepare(sqlstatement selectlist, boolean distinct) { SQLStatement stat = selectlist; String selectsql = stat.getsql(); stat.setsql(""); stat.appendsql("select "); if (distinct) { stat.appendsql("distinct "); stat.appendsql(selectsql); stat.appendsql(" FROM "); from.appendsql(stat); for (SelectTable join : joins) { join.appendsqlasjoin(stat, this); appendwhere(stat); if (groupbyexpressions!= null) { stat.appendsql(" GROUP BY "); int i = 0; for (Object obj : groupbyexpressions) { if (i++ > 0) { stat.appendsql(", "); appendsql(stat, obj); stat.appendsql(" "); if (!orderbylist.isempty()) { stat.appendsql(" ORDER BY "); int i = 0; for (OrderExpression o : orderbylist) { if (i++ > 0) { stat.appendsql(", "); o.appendsql(stat); stat.appendsql(" ");
10 Seminar Datenbanksysteme : The LINQ-Approach in Java 10 return stat; Listing 7 : Method to construct the query string The documentation of JaQU states that JaQU is testet with the H2 database but it should work with every database that supports JDBC. We can see above that JaQU translates the query expressed by the method calls into SQL querys stored in strings. That limits the use of JaQU to classic databases. Querying collections like arrays or lists isn t possible with that approach. As a conclusion we can say that JaQU just simplifies the generation of SQL querys. The code that tests the framework shows that almost all kinds of querys can be realized. Querys with joins and complex conditions are demonstrated and seem to work flawlessly.
11 Seminar Datenbanksysteme : The LINQ-Approach in Java sbql4j SBQL4J is another framework that enables to express a query in the same way like LINQ. SBQL4J basically works with a preprocessor that parses the querys and translates them into Java code. Here s our example from the beginning written for sbql4j: /** * This sample uses where to find all products that are out of stock. */ public void linq2() { List<Product> products = getproductlist(); List<Product> soldoutproducts = #{ products where unitsinstock == 0 ; System.out.println("Sold out products:"); for(product product : soldoutproducts) { System.out.printf ("%s is sold out!\n", product.productname); Listing 8 : The query from listing 1 implemented with sbql4j This code can t be compiled with a java compiler as it uses the keyword where that isn t a part of the java programming language. SBQL4J is implemented based on the theory of the so-called stacked based query language (SBQL). The conceptual architecture of SBQL involves the following elements: 1 1. integrated development environment (IDE) for preparing source SBQL programs. 2. a parser which generates a query syntax tree 3. an interpreter which recursively traverses a syntax tree producing the result of a query or of a program. To make such an expression work with sbql4j, the following steps are needed: 1. All the the code that contain integrated querys must be written in a specific file format with the ending.s4j. As we can see in the figure 1
12 Seminar Datenbanksysteme : The LINQ-Approach in Java 12 below, not even syntax highlighting works in a typical java ide like eclipse. It s obvious that either autocompletion nor check of the code by the compiler is done while writing the code in the ide. 2. After the code is written, a ant task has to be run that calls the API to perform the preprocessing of the.s4j-files and finally generates java code wich can be used in further client code.
13 Seminar Datenbanksysteme : The LINQ-Approach in Java 13 In Listing 9, we can see the generated code from Listing 8. The query was translated in a loop where every product from the productlist is analyzed of the demanded properties that originate from the where-condition in the query. public class LinqComparison_SbqlQuery1 { private List< Product> products; public LinqComparison_SbqlQuery1(List< Product> products) { this.products = products; // query='products where unitsinstock == 0' public List<Product> executequery() { List<Product> _queryresult = new ArrayList<Product>(); int _whereloopindex = 0; for (Product _whereel : products) { Boolean _equalsresult = OperatorUtils.equalsSafe (_whereel.unitsinstock, 0); if (_equalsresult) { _queryresult.add(_whereel); _whereloopindex++; return _queryresult; Listing 9 : Generated code after preprocessing through sbql4j
14 Seminar Datenbanksysteme : The LINQ-Approach in Java 14 What happens if we write a query that is syntactilly correct but has a condition on a property that doesn t exist? In listing 10, a second condition on the fictional property test is added to our integrated query. public void linq2() { List<Product> products = getproductlist(); List<Product> soldoutproducts = #{ ; products where unitsinstock == 0 and test = 0 System.out.println("Sold out products:"); for(product product : soldoutproducts) { System.out.printf ("%s is sold out!\n", product.productname); Listing 10 : query that references a field that doesn t exist After running ant, the following outputs in the console [sbql_pre] LinqComparison.s4j:152: Name test cannot be resolved [sbql_pre] where unitsinstock == 0 and test == 0 It recognizes that the field test in the model class Product doesn t exists. Querys that are syntactically wrong are also detected.
15 Seminar Datenbanksysteme : The LINQ-Approach in Java 15 3 Conclusion The popularity of LINQ is no surprise. LINQ enables the expression of queries for any data structures integrated in the language. Because LINQ is an integrated part of the language, the compiler can detect errors in querys and tools for generating and refactoring of queries can be used. This was previously not possible with querys stored in strings. The two projects SBQL4j and JaQU show how one can express querys similar to LINQ in Java. The underlying concepts, however, limit the application of the frameworks. JaQU just generates querys for classic databases and doesn t work with other datastructures. SBQL4J enables real language integrated querys. But it requires its own file format and the code must be preprocessed. The fileformat isn t supportet by java development tools so writing querys isn t that fluent like in.net. LINQ in Java only becomes real if it the java language will be extended. It remains to be seen if Sun will pick up LINQ as a language feature in Java und how it will be implemented.
16 Seminar Datenbanksysteme : The LINQ-Approach in Java 16 4 Bibliography [1] LINQ is the best option for a future Java query API йил (accessed 2010 йил 21-09). [2] Wikipedia. LINQ - Wikipedia. (accessed 2010 йил 21-10). [3] Albahari, Joseph, and Ben Albahari. LINQ Pocket Reference. O'Reilly Media, [4] JaQu. JaQu. (accessed 2010 йил 21-10). [5] sbql.pl. Stack-Based Architecture (SBA) and Stack-Based Query Language (SBQL) (accessed ). [6] stackoverflow. Discussion "LINQ for Java tool". (accessed 2010 йил 21-10).
How to Improve Database Connectivity With the Data Tools Platform. John Graham (Sybase Data Tooling) Brian Payton (IBM Information Management)
How to Improve Database Connectivity With the Data Tools Platform John Graham (Sybase Data Tooling) Brian Payton (IBM Information Management) 1 Agenda DTP Overview Creating a Driver Template Creating a
More informationAn Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
More informationFacebook Twitter YouTube Google Plus Website Email
PHP MySQL COURSE WITH OOP COURSE COVERS: PHP MySQL OBJECT ORIENTED PROGRAMMING WITH PHP SYLLABUS PHP 1. Writing PHP scripts- Writing PHP scripts, learn about PHP code structure, how to write and execute
More informationCSCI110 Exercise 4: Database - MySQL
CSCI110 Exercise 4: Database - MySQL The exercise This exercise is to be completed in the laboratory and your completed work is to be shown to the laboratory tutor. The work should be done in week-8 but
More informationSQLMutation: A tool to generate mutants of SQL database queries
SQLMutation: A tool to generate mutants of SQL database queries Javier Tuya, Mª José Suárez-Cabal, Claudio de la Riva University of Oviedo (SPAIN) {tuya cabal claudio} @ uniovi.es Abstract We present a
More informationC#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 informationIndustrial Programming
Industrial Programming Lecture 7: Database access in C# using LINQ Industrial Programming 1 ADO.NET ADO.NET provides a direct interface to a database. The interface is database-specific. ADO.NET uses a
More informationVisual Basic. murach's TRAINING & REFERENCE
TRAINING & REFERENCE murach's Visual Basic 2008 Anne Boehm lbm Mike Murach & Associates, Inc. H 1-800-221-5528 (559) 440-9071 Fax: (559) 440-0963 murachbooks@murach.com www.murach.com Contents Introduction
More informationWEB 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 informationBeginning 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 informationSkills for Employment Investment Project (SEIP)
Skills for Employment Investment Project (SEIP) Standards/ Curriculum Format for Web Application Development Using DOT Net Course Duration: Three Months 1 Course Structure and Requirements Course Title:
More information1 File Processing Systems
COMP 378 Database Systems Notes for Chapter 1 of Database System Concepts Introduction A database management system (DBMS) is a collection of data and an integrated set of programs that access that data.
More informationProgramming 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 informationDetecting (and even preventing) SQL Injection Using the Percona Toolkit and Noinject!
Detecting (and even preventing) SQL Injection Using the Percona Toolkit and Noinject! Justin Swanhart Percona Live, April 2013 INTRODUCTION 2 Introduction 3 Who am I? What do I do? Why am I here? The tools
More informationCS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014)
CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014) CSTA Website Oracle Website Oracle Contact http://csta.acm.org/curriculum/sub/k12standards.html https://academy.oracle.com/oa-web-introcs-curriculum.html
More informationA 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 informationThomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
More informationCOSC344 Database Theory and Applications. Java and SQL. Lecture 12
COSC344 Database Theory and Applications Lecture 12: Java and SQL COSC344 Lecture 12 1 Last Lecture Trigger Overview This Lecture Java & SQL Source: Lecture notes, Textbook: Chapter 12 JDBC documentation
More informationdatabase 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 informationSQL SELECT Query: Intermediate
SQL SELECT Query: Intermediate IT 4153 Advanced Database J.G. Zheng Spring 2012 Overview SQL Select Expression Alias revisit Aggregate functions - complete Table join - complete Sub-query in where Limiting
More informationChapter 9 Java and SQL. Wang Yang wyang@njnet.edu.cn
Chapter 9 Java and SQL Wang Yang wyang@njnet.edu.cn Outline Concern Data - File & IO vs. Database &SQL Database & SQL How Connect Java to SQL - Java Model for Database Java Database Connectivity (JDBC)
More information1 Introduction. 2 An Interpreter. 2.1 Handling Source Code
1 Introduction The purpose of this assignment is to write an interpreter for a small subset of the Lisp programming language. The interpreter should be able to perform simple arithmetic and comparisons
More informationDatabase Access from a Programming Language: Database Access from a Programming Language
Database Access from a Programming Language: Java s JDBC Werner Nutt Introduction to Databases Free University of Bozen-Bolzano 2 Database Access from a Programming Language Two Approaches 1. Embedding
More informationDatabase Access from a Programming Language:
Database Access from a Programming Language: Java s JDBC Werner Nutt Introduction to Databases Free University of Bozen-Bolzano 2 Database Access from a Programming Language Two Approaches 1. Embedding
More informationThe Different Types of Search and Execution Systems
Query Engine A Pattern for Performing Dynamic Searches in Information Systems Tim Wellhausen kontakt@tim-wellhausen.de http://www.tim-wellhausen.de Jan 24, 2006 Abstract: This paper presents an architecture
More informationDataDirect XQuery Technical Overview
DataDirect XQuery Technical Overview Table of Contents 1. Feature Overview... 2 2. Relational Database Support... 3 3. Performance and Scalability for Relational Data... 3 4. XML Input and Output... 4
More informationEvaluation. Copy. Evaluation Copy. Chapter 7: Using JDBC with Spring. 1) A Simpler Approach... 7-2. 2) The JdbcTemplate. Class...
Chapter 7: Using JDBC with Spring 1) A Simpler Approach... 7-2 2) The JdbcTemplate Class... 7-3 3) Exception Translation... 7-7 4) Updating with the JdbcTemplate... 7-9 5) Queries Using the JdbcTemplate...
More informationADO.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 informationIntroduction 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 informationJava Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
More informationQuerying 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 informationCourse Objectives. Database Applications. External applications. Course Objectives Interfacing. Mixing two worlds. Two approaches
Course Objectives Database Applications Design Construction SQL/PSM Embedded SQL JDBC Applications Usage Course Objectives Interfacing When the course is through, you should Know how to connect to and
More informationDBMS / 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 informationWhat is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World
COSC 304 Introduction to Systems Introduction Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca What is a database? A database is a collection of logically related data for
More informationJDBC (Java / SQL Programming) CS 377: Database Systems
JDBC (Java / SQL Programming) CS 377: Database Systems JDBC Acronym for Java Database Connection Provides capability to access a database server through a set of library functions Set of library functions
More informationChapter 13. Introduction to SQL Programming Techniques. Database Programming: Techniques and Issues. SQL Programming. Database applications
Chapter 13 SQL Programming Introduction to SQL Programming Techniques Database applications Host language Java, C/C++/C#, COBOL, or some other programming language Data sublanguage SQL SQL standards Continually
More informationReal SQL Programming 1
Real 1 We have seen only how SQL is used at the generic query interface an environment where we sit at a terminal and ask queries of a database. Reality is almost always different: conventional programs
More informationLINQ: Language Integrated Query. ST Colloquium, 2008-05-15 Tom Lokhorst
LINQ: Language Integrated Query ST Colloquium, 2008-05-15 Tom Lokhorst Brief example Brief example int[] nrs = {2, 3, 9, 1, 21, 3, 42}; Brief example int[] nrs = {2, 3, 9, 1, 21, 3, 42}; var q = from n
More informationCS346: 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 informationLanguage Interface for an XML. Constructing a Generic Natural. Database. Rohit Paravastu
Constructing a Generic Natural Language Interface for an XML Database Rohit Paravastu Motivation Ability to communicate with a database in natural language regarded as the ultimate goal for DB query interfaces
More informationIntegrating Big Data into the Computing Curricula
Integrating Big Data into the Computing Curricula Yasin Silva, Suzanne Dietrich, Jason Reed, Lisa Tsosie Arizona State University http://www.public.asu.edu/~ynsilva/ibigdata/ 1 Overview Motivation Big
More informationHow to simplify software development with high level programming languages? Pierre-Alexandre Voye - ontologiae@gmail.com
How to simplify software development with high level programming languages? Pierre-Alexandre Voye - ontologiae@gmail.com Projects structures - Both in proprietary and open source project, steps are the
More informationEclipse Web Tools Platform. Naci Dai (Eteration), WTP JST Lead
Eclipse Web Tools Platform Naci Dai (Eteration), WTP JST Lead 2007 by Naci Dai and Eteration A.S. ; made available under the EPL v1.0 Istanbul April 30, 2007 Outline WTP Organization JSF Overview and Demo
More informationNo no-argument constructor. No default constructor found
Every software developer deals with bugs. The really tough bugs aren t detected by the compiler. Nasty bugs manifest themselves only when executed at runtime. Here is a list of the top ten difficult and
More informationReal-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 informationDEVELOPMENT OF AN ANALYSIS AND REPORTING TOOL FOR ORACLE FORMS SOURCE CODES
DEVELOPMENT OF AN ANALYSIS AND REPORTING TOOL FOR ORACLE FORMS SOURCE CODES by Çağatay YILDIRIM June, 2008 İZMİR CONTENTS Page PROJECT EXAMINATION RESULT FORM...ii ACKNOWLEDGEMENTS...iii ABSTRACT... iv
More informationCHAPTER 6: TECHNOLOGY
Chapter 6: Technology CHAPTER 6: TECHNOLOGY Objectives Introduction The objectives are: Review the system architecture of Microsoft Dynamics AX 2012. Describe the options for making development changes
More informationDatabase Programming. Week 10-2. *Some of the slides in this lecture are created by Prof. Ian Horrocks from University of Oxford
Database Programming Week 10-2 *Some of the slides in this lecture are created by Prof. Ian Horrocks from University of Oxford SQL in Real Programs We have seen only how SQL is used at the generic query
More informationDIPLOMA IN WEBDEVELOPMENT
DIPLOMA IN WEBDEVELOPMENT Prerequisite skills Basic programming knowledge on C Language or Core Java is must. # Module 1 Basics and introduction to HTML Basic HTML training. Different HTML elements, tags
More informationJava the UML Way: Integrating Object-Oriented Design and Programming
Java the UML Way: Integrating Object-Oriented Design and Programming by Else Lervik and Vegard B. Havdal ISBN 0-470-84386-1 John Wiley & Sons, Ltd. Table of Contents Preface xi 1 Introduction 1 1.1 Preliminaries
More informationXML Processing and Web Services. Chapter 17
XML Processing and Web Services Chapter 17 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of http://www.funwebdev.com Web Development Objectives 1 XML Overview 2 XML Processing
More informationUsing Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms
Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms Mohammed M. Elsheh and Mick J. Ridley Abstract Automatic and dynamic generation of Web applications is the future
More informationSimWebLink.NET Remote Control and Monitoring in the Simulink
SimWebLink.NET Remote Control and Monitoring in the Simulink MARTIN SYSEL, MICHAL VACLAVSKY Department of Computer and Communication Systems Faculty of Applied Informatics Tomas Bata University in Zlín
More information09336863931 : 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 informationCS 377 Database Systems SQL Programming. Li Xiong Department of Mathematics and Computer Science Emory University
CS 377 Database Systems SQL Programming Li Xiong Department of Mathematics and Computer Science Emory University 1 A SQL Query Joke A SQL query walks into a bar and sees two tables. He walks up to them
More informationCOSC 6397 Big Data Analytics. 2 nd homework assignment Pig and Hive. Edgar Gabriel Spring 2015
COSC 6397 Big Data Analytics 2 nd homework assignment Pig and Hive Edgar Gabriel Spring 2015 2 nd Homework Rules Each student should deliver Source code (.java files) Documentation (.pdf,.doc,.tex or.txt
More informationWeb Service Facade for PHP5. Andreas Meyer, Sebastian Böttner, Stefan Marr
Web Service Facade for PHP5 Andreas Meyer, Sebastian Böttner, Stefan Marr Agenda Objectives and Status Architecture Framework Features WSD Generator PHP5 eflection API Security Aspects used approach planned
More informationCustomer Bank Account Management System Technical Specification Document
Customer Bank Account Management System Technical Specification Document Technical Specification Document Page 1 of 15 Table of Contents Contents 1 Introduction 3 2 Design Overview 4 3 Topology Diagram.6
More informationABSTRACT 1. INTRODUCTION. Kamil Bajda-Pawlikowski kbajda@cs.yale.edu
Kamil Bajda-Pawlikowski kbajda@cs.yale.edu Querying RDF data stored in DBMS: SPARQL to SQL Conversion Yale University technical report #1409 ABSTRACT This paper discusses the design and implementation
More informationDeveloping SQL and PL/SQL with JDeveloper
Seite 1 von 23 Developing SQL and PL/SQL with JDeveloper Oracle JDeveloper 10g Preview Technologies used: SQL, PL/SQL An Oracle JDeveloper Tutorial September 2003 Content This tutorial walks through the
More informationWEB 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 informationLSINF1124 Projet de programmation
LSINF1124 Projet de programmation Database Programming with Java TM Sébastien Combéfis University of Louvain (UCLouvain) Louvain School of Engineering (EPL) March 1, 2011 Introduction A database is a collection
More informationGenerating XML from Relational Tables using ORACLE. by Selim Mimaroglu Supervisor: Betty O NeilO
Generating XML from Relational Tables using ORACLE by Selim Mimaroglu Supervisor: Betty O NeilO 1 INTRODUCTION Database: : A usually large collection of data, organized specially for rapid search and retrieval
More informationMoving 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 informationCSE 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 informationFinancial Management System
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING UNIVERSITY OF NEBRASKA LINCOLN Financial Management System CSCE 156 Computer Science II Project Student 002 11/15/2013 Version 3.0 The contents of this document
More informationAbstract. Description
Project title: Bloodhound: Dynamic client-side autocompletion features for the Apache Bloodhound ticket system Name: Sifa Sensay Student e-mail: sifasensay@gmail.com Student Major: Software Engineering
More informationWhy NoSQL? Your database options in the new non- relational world. 2015 IBM Cloudant 1
Why NoSQL? Your database options in the new non- relational world 2015 IBM Cloudant 1 Table of Contents New types of apps are generating new types of data... 3 A brief history on NoSQL... 3 NoSQL s roots
More informationDatabase Migration from MySQL to RDM Server
MIGRATION GUIDE Database Migration from MySQL to RDM Server A Birdstep Technology, Inc. Raima Embedded Database Division Migration Guide Published: May, 2009 Author: Daigoro F. Toyama Senior Software Engineer
More informationDiscovering 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 informationShort 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 informationApplets, RMI, JDBC Exam Review
Applets, RMI, JDBC Exam Review Sara Sprenkle Announcements Quiz today Project 2 due tomorrow Exam on Thursday Web programming CPM and servlets vs JSPs Sara Sprenkle - CISC370 2 1 Division of Labor Java
More informationAdvanced PostgreSQL SQL Injection and Filter Bypass Techniques
Advanced PostgreSQL SQL Injection and Filter Bypass Techniques INFIGO-TD TD-200 2009-04 2009-06 06-17 Leon Juranić leon.juranic@infigo.hr INFIGO IS. All rights reserved. This document contains information
More informationJava 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 informationApplication Development
Microsoft SQL Azure: Enterprise Application Development Build enterprise-ready applications and projects with SQL Azure Jayaram Krishnaswamy PUBLISHING BIRMINGHAM - MUMBAI Preface 1 Chapter 1: Cloud Computing
More informationINFORMATION BROCHURE Certificate Course in Web Design Using PHP/MySQL
INFORMATION BROCHURE OF Certificate Course in Web Design Using PHP/MySQL National Institute of Electronics & Information Technology (An Autonomous Scientific Society of Department of Information Technology,
More informationApplication note: SQL@CHIP Connecting the IPC@CHIP to a Database
Application note: SQL@CHIP Connecting the IPC@CHIP to a Database 1. Introduction This application note describes how to connect an IPC@CHIP to a database and exchange data between those. As there are no
More informationDatabase 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 informationSpecialized Programme on Web Application Development using Open Source Tools
Specialized Programme on Web Application Development using Open Source Tools A. NAME OF INSTITUTE Centre For Development of Advanced Computing B. NAME/TITLE OF THE COURSE C. COURSE DATES WITH DURATION
More informationJapan Communication India Skill Development Center
Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 2b Java Application Software Developer: Phase1 SQL Overview 70 Introduction Database, DB Server
More informationCTutor. Tiago Aguiar tiago.afonso.aguiar@ist.utl.pt. Instituto Superior Técnico, Lisboa, Portugal November 2014
CTutor Tiago Aguiar tiago.afonso.aguiar@ist.utl.pt Instituto Superior Técnico, Lisboa, Portugal November 2014 Abstract CTutor is a program visualization tool for the programming language, C. As the name
More informationTECH TUTORIAL: EMBEDDING ANALYTICS INTO A DATABASE USING SOURCEPRO AND JMSL
TECH TUTORIAL: EMBEDDING ANALYTICS INTO A DATABASE USING SOURCEPRO AND JMSL This white paper describes how to implement embedded analytics within a database using SourcePro and the JMSL Numerical Library,
More informationScoping (Readings 7.1,7.4,7.6) Parameter passing methods (7.5) Building symbol tables (7.6)
Semantic Analysis Scoping (Readings 7.1,7.4,7.6) Static Dynamic Parameter passing methods (7.5) Building symbol tables (7.6) How to use them to find multiply-declared and undeclared variables Type checking
More information02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
More informationToad for Data Analysts, Tips n Tricks
Toad for Data Analysts, Tips n Tricks or Things Everyone Should Know about TDA Just what is Toad for Data Analysts? Toad is a brand at Quest. We have several tools that have been built explicitly for developers
More informationSQL and Java. Database Systems Lecture 19 Natasha Alechina
Database Systems Lecture 19 Natasha Alechina In this Lecture SQL in Java SQL from within other Languages SQL, Java, and JDBC For More Information Sun Java tutorial: http://java.sun.com/docs/books/tutorial/jdbc
More informationProgramming Against Hybrid Databases with Java Handling SQL and NoSQL. Brian Hughes IBM
Programming Against Hybrid Databases with Java Handling SQL and NoSQL Brian Hughes IBM 1 Acknowledgements and Disclaimers Availability. References in this presentation to IBM products, programs, or services
More informationBlack Hat Briefings USA 2004 Cameron Hotchkies cameron@0x90.org
Blind SQL Injection Automation Techniques Black Hat Briefings USA 2004 Cameron Hotchkies cameron@0x90.org What is SQL Injection? Client supplied data passed to an application without appropriate data validation
More informationJava 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
More informationSpecialized Programme on Web Application Development using Open Source Tools
Specialized Programme on Web Application Development using Open Source Tools Objective: At the end of the course, Students will be able to: Understand various open source tools(programming tools and databases)
More informationedoc Document Generation Suite
e Doc Suite is a set of Microsoft Office add-ins for Word, Excel & PowerPoint that lets you use your data in MS Office with ease. Creating simple flat tables from data sources is possible in MS Office,
More informationWeb Development using PHP (WD_PHP) Duration 1.5 months
Duration 1.5 months Our program is a practical knowledge oriented program aimed at learning the techniques of web development using PHP, HTML, CSS & JavaScript. It has some unique features which are as
More informationServices. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today.
& & 1 & 2 Lecture #7 2008 3 Terminology Structure & & Database server software referred to as Database Management Systems (DBMS) Database schemas describe database structure Data ordered in tables, rows
More informationObject Relational Database Mapping. Alex Boughton Spring 2011
+ Object Relational Database Mapping Alex Boughton Spring 2011 + Presentation Overview Overview of database management systems What is ORDM Comparison of ORDM with other DBMSs Motivation for ORDM Quick
More informationJapan Communication India Skill Development Center
Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 2a Java Application Software Developer: Phase1 SQL Overview 70 Introduction Database, DB Server
More informationHow To Let A Lecturer Know If Someone Is At A Lecture Or If They Are At A Guesthouse
Saya WebServer Mini-project report Introduction: The Saya WebServer mini-project is a multipurpose one. One use of it is when a lecturer (of the cs faculty) is at the reception desk and interested in knowing
More informationHTML5. Turn this page to see Quick Guide of CTTC
Programming SharePoint 2013 Development Courses ASP.NET SQL TECHNOLGY TRAINING GUIDE Visual Studio PHP Programming Android App Programming HTML5 Jquery Your Training Partner in Cutting Edge Technologies
More informationApplication Development for Mobile and Ubiquitous Computing
Department of Computer Science Institute for System Architecture, Chair for Computer Network Application Development for Mobile and Ubiquitous Computing igrocshop Seminar Task - Second Presentation Group
More informationLinas Virbalas Continuent, Inc.
Linas Virbalas Continuent, Inc. Heterogeneous Replication Replication between different types of DBMS / Introductions / What is Tungsten (the whole stack)? / A Word About MySQL Replication / Tungsten Replicator:
More informationSemantic Stored Procedures Programming Environment and performance analysis
Semantic Stored Procedures Programming Environment and performance analysis Marjan Efremov 1, Vladimir Zdraveski 2, Petar Ristoski 2, Dimitar Trajanov 2 1 Open Mind Solutions Skopje, bul. Kliment Ohridski
More information