Java and RDBMS. Married with issues. Database constraints
|
|
- Hector Ramsey
- 8 years ago
- Views:
Transcription
1 Java and RDBMS Married with issues Database constraints
2 Speaker Jeroen van Schagen
3 Situation Java Application store retrieve JDBC Relational Database
4 JDBC Java Database Connectivity Data Access API ( java.sql, javax.sql ) JDK 1.1 (1997) Relational Database Many implementations
5 Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES ( Jan ) ; statement.executeupdate(sql);
6 Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES ( Jan ) ; statement.executeupdate(sql);
7 Database Maintain data User Name can only have up to 3 characters name : varchar(3) NOT-NULL, UNIQUE Name is required Name can only occur once
8 Constraint types Not null Check Length Unique key Primary key Type Foreign key
9 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES ( Jan ) ; statement.executeupdate(sql); What happens? Assuming the user table is empty
10 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES ( Jan ) ; statement.executeupdate(sql); 1 row updated
11 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES ( Jan ) ; statement.executeupdate(sql); statement.executeupdate(sql); What will happens? happen?
12 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES ( Jan ) ; statement.executeupdate(sql); statement.executeupdate(sql); SQLIntegrityConstraint What will happen? ViolationException
13 executeupdate(sql) INSERT return 1 Inserted 1 Applicatio n executeupdate(sql) JDBC INSERT Database throw Unique violation SQLIntegrityConstraint ViolationException
14 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES ( Jan ) ; statement.executeupdate(sql); statement.executeupdate(sql);
15 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES ( Jan ) ; try { statement.executeupdate(sql); statement.executeupdate(sql); } catch (SQLIntegrityConstraintViolationException e) { throw new RuntimeException( Name already exists ); }
16 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES (NULL) ; statement.executeupdate(sql); What happens?
17 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES (NULL) ; statement.executeupdate(sql); SQLIntegrityConstraint ViolationException
18 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES (NULL) ; try { statement.executeupdate(sql); } catch (SQLIntegrityConstraintViolationException e) { throw new RuntimeException( Name is required ); throw new RuntimeException( Name already exists ); }
19 Unique key violation SQLIntegrityConstraint ViolationException Not null violation
20 Unique key violation SQLIntegrityConstraint ViolationException Not null violation Which was violated?
21 SQLException + getsqlstate() : int + getmessage() : String SQLIntegrityConstraint ViolationException
22 SQLException + getsqlstate() : int + getmessage() : String SQLIntegrityConstraint ViolationException
23 State Name Integrity constraint Restrict violation Not null violation Foreign key violation Unique violation Check violation
24 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES (NULL) ; try { statement.executeupdate(sql); } catch (SQLIntegrityConstraintViolationException e) { if (e.getsqlstate() == 23502) { throw new RuntimeException( Name is required ); } else if (e.getsqlstate() == 23505) { throw new RuntimeException( Name already exists ); } }
25 User name : varchar(3) NOT-NULL, UNIQUE Connection connection = ; Statement statement = connection.createstatement(); String sql = INSERT INTO user (name) VALUES (NULL) ; try { statement.executeupdate(sql); } catch (SQLIntegrityConstraintViolationException e) { if (e.getsqlstate() == 23502) { throw new RuntimeException( Name is required ); } else if (e.getsqlstate() == 23505) { throw new RuntimeException( Name already exists ); } } Complicated Boilerplate Assumptions
26 Multiple not-null values User name : varchar(3) NOT-NULL, UNIQUE varchar(30) NOT-NULL, UNIQUE
27 Multiple not-null values Multiple unique values User Which was violated? name : varchar(3) NOT-NULL, UNIQUE varchar(30) NOT-NULL, UNIQUE uk_user_name uk_user_
28 SQLException + getsqlstate() : int + getmessage() : String SQLIntegrityConstraint ViolationException
29 Vendor messages Oracle ORA-00001: unique constraint (GOTO.UK_USER_NAME) violated\n They are all different MySQL Duplicate entry 'Jan' for key 'uk_user_name' HSQL integrity constraint violation: unique constraint or index violation; UK_USER_NAME table: USER PostgreSQL ERROR: duplicate key value violates unique constraint \"uk_user_name\" Detail: Key (name)=(jan) already exists. H2 Unique index or primary key violation: "UK_USER_NAME_INDEX_1 ON GOTO.USER(NAME)"; SQL statement:\ninsert into user (name) values (?) [ ]
30 Vendor messages Oracle ORA-00001: unique constraint (GOTO.UK_USER_NAME) violated\n The info is there MySQL Duplicate entry 'Jan' for key 'uk_user_name' HSQL integrity constraint violation: unique constraint or index violation; UK_USER_NAME table: USER PostgreSQL ERROR: duplicate key value violates unique constraint \"uk_user_name\" Detail: Key (name)=(jan) already exists. H2 Unique index or primary key violation: "UK_USER_NAME_INDEX_1 ON GOTO.USER(NAME)"; SQL statement:\ninsert into user (name) values (?) [ ]
31 Extract violation info Message Just too difficult Pattern matching Vendor specific Focus on application logic
32 Concrete exception classes UniqueKeyViolationException NotNullViolationException JDBC needs a better exception API ( for integrity constraints ) Access to constraint info getcolumnname() getconstraintname()
33 Workaround
34 Prevent violations
35 Prevent violations Data integrity checks in application layer.
36 Prevent not-null if (user.getname() == null) { throw new RuntimeException( Name is required ); }
37 Javax validation public class User private String name; } No SQL exception Conveys Less database interaction
38 Less interaction throw new RuntimeException Applicatio n Database
39 Duplication Application User Database private String name name : varchar(3) NOT-NULL, UNIQUE
40 Duplication Application User Database private String name name : varchar(3) NOT-NULL, UNIQUE Kept in sync Unexpected SQL exceptions
41 Prevent unique violation Complicated Depends on other rows
42 id name NULL Testable in isolation
43 id name Jan
44 id name Jan Requires data users id name Piet Jan Henk
45 No SQL exceptions if (countuserswithname(user.getname()) > 0) { throw new RuntimeException( Name already exists ); } private int countuserswithname(string name) { return jdbctemplate.queryforobject( SELECT COUNT(1) FROM user where name =?, name, Long.class); } Extra query Not atomic
46 Problem: Not atomic Thread 1 COUNT WHERE name = Jan return 0 Applicatio n Thread 2 Thread 1 INSERT (name) VALUES ( Jan ) INSERTED 1 INSERT (name) VALUES ( Jan ) Unique key violation Database Uncaught Unexpected Decision on old data
47 Recap Lack proper solution Not null No SQL exceptions Duplication Error prone Unique key No SQL exceptions Extra query Error prone
48 Solution Java Repository Bridge - JaRB
49 Databases are good at maintaining integrity; let them!
50 Prevent exception Testable in isolation Catch exception Not null Type Length Unique key Foreign key Primary key Check
51 Prevent exception Validation Not null Type Length
52 public class private String name; private String ; } User name : varchar(3) NOT-NULL, UNIQUE varchar(100) Retrieve constraints Database as only truth No duplication
53 validate(new User( Henk )); 1. Loop over properties 3. Check name Henk on metadata name = Henk = null Application 2. Get metadata user.name varchar(3) not null Determine column name (Hibernate) Database
54 Name cannot be longer than 3 characters validate(new User( Henk )); 1. Loop over properties 3. Check name Henk on metadata name = Henk = null Application 2. Get metadata user.name varchar(3) not null Database
55 validate(new User( Henk )); validate(new User(null)); 1. Loop over properties name = null = null 3. Check null name on metadata Application 2. Get metadata user.name varchar(3) not null Database
56 Name cannot be null validate(new User( Henk )); validate(new User(null)); 1. Loop over properties name = null = null 3. Check null name on metadata Application 2. Get metadata user.name varchar(3) not null Database
57 validate(new User( Henk )); validate(new User(null)); validate(new User( Jan )); 1. Loop over properties 3. Check name Jan on metadata name = Jan = null Application 2. Get metadata user.name varchar(3) not null Database
58 validate(new User( Henk )); validate(new User(null)); validate(new User( Jan )); 1. Loop over properties 3. Check name Jan on metadata name = Jan = null Application 2. Get metadata user.name varchar(3) not null Database
59 validate(new User( Henk )); validate(new User(null)); validate(new User( Jan )); 1. Loop over properties name = Jan = null 3. Check null on metadata Application 2. Get metadata user. varchar(100) Database
60 validate(new User( Henk )); validate(new User(null)); validate(new User( Jan )); 1. Loop over properties name = Jan = null 3. Check null on metadata Application 2. Get metadata user. varchar(100) Database
61 validate(new User( Henk )); validate(new User(null)); validate(new User( Jan )); 1. Loop over properties name = Jan = null 3. Check null on metadata Application 2. Get metadata user. varchar(100) Database
62 public abstract class BaseEntity { public class User extends BaseEntity { private String name; private String ; }
63 JDBC Custom schema public class User { private String name; private String ; }
64 Catch exception Exception translation Unique key Foreign key Primary key Check
65 Translate the JDBC exception into a proper constraint exception
66 Existing translators
67 Hibernate Object Relation Mapping Extracts constraint name from message
68 Hibernate Access to constraint name ConstraintViolationException getconstraintname() Heavy for plain JDBC Hardcoded names
69 Hardcoded names try { // Insert user } catch (ConstraintViolationException e) { if (e.getconstraintname() == uk_user_name ) { // Handle error } } Too technical Focus on domain
70 Spring Dependency Injection Templates JDBC DAO
71 Spring JDBC JdbcTemplate SQLExceptionTranslator Error codes Register own classes No constraint name
72 Spring Consistent hierarchy Extensible DataAccessException DataIntegrityViolationException
73 Spring DAO ORM (e.g. Hibernate) PersistenceExceptionTranslator Proxy
74 UserRepository Spring$Proxy ConstraintViolation Exception JPASystemException PersistenceExceptionTranslator
75 Hierarchy DataAccessException JPASystemException cause ConstraintViolationException getconstraintname() No constraint name Weaker API
76 Weaker API Unsafe cast try { userrepository.save(user); } catch (JPASystemException e) { ConstraintViolationException ce = (ConstraintViolationException) e.getcause(); if (ce.getconstraintname() == uk_user_name ) { // Handle error } } Why isn t this easier?
77 Recap Best of both worlds Hibernate Spring JaRB Constraint name Hierarchy Extensible
78 JaRB Concrete and domain specific exceptions. Map each constraint to a custom exception.
79 try { userrepository.save(new User( Jan )); } catch (UserNameAlreadyExistsException e) { error( User name already exists. ); }
80 try { userrepository.save(new User( Jan )); } catch (UserNameAlreadyExistsException e) { error( User name already exists. ); } catch (User AlreadyExistsException e) { error( User already exists. ); }
81 Translator SQLIntegrity ConstraintException UserNameAlready ExistsException
82 Resolver Extract all information from exception SQLIntegrity ConstraintException ERROR: duplicate key value violates unique constraint \"uk_user_name\" Detail: Key (name)=(jan) already exists.
83 Resolver Extract all information from exception SQLIntegrity ConstraintException ERROR: duplicate key value violates unique constraint \"uk_user_name\" Detail: Key (name)=(jan) already exists. Constraint name Pattern matching Column name Value Vendor specific Version specific
84 Resolvers Pattern matching (default) PostgreSQL Oracle MySQL HSQL H2 Hibernate: constraint name only
85 Factory Create a concrete exception
86 Default factory InvalidTypeException LengthExceededViolationExceptio n CheckFailedException NotNullViolationException PrimaryKeyViolationException ForeignKeyViolationException UniqueKeyViolationException
87 DatabaseConstraintViolationException Constraint info InvalidTypeException LengthExceededViolationExceptio n CheckFailedException NotNullViolationException PrimaryKeyViolationException ForeignKeyViolationException UniqueKeyViolationException UserNameAlreadyExistsException
88 Custom uk_user_name ) public class UserNameAlreadyExistsException extends UniqueKeyViolationException { } Scanned from class path Registered on constraint
89 Custom exceptions uk_user_name UserNameAlreadyExistsException uk_user_ UniqueKeyViolationException
90 Injectable uk_user_name ) public class UserNameAlreadyExistsException extends UniqueKeyViolationException { UserNameAlreadyExistsException( ) { } } Throwable (cause) DatabaseConstraintViolation ExceptionFactory
91 Less concrete try { userrepository.save(new User( Jan )); } catch (UniqueKeyViolationException e) { error( User name already exists. ); }
92 How?
93 Enable in = org.myproject ) <jarb:enable-constraints base-package= org.myproject /> Enable exception translation Resolve database vendor Register custom exceptions Enable database validation
94 Get source Maven central <dependency> <groupid>org.jarbframework</groupid> <artifactid>jarb-constraints</artifactid> <version>2.1.0</version> </dependency> Github
95 Questions?
Chapter 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 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 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 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 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 informationSpring Data JDBC Extensions Reference Documentation
Reference Documentation ThomasRisberg Copyright 2008-2015The original authors Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee
More informationGeodatabase Programming with SQL
DevSummit DC February 11, 2015 Washington, DC Geodatabase Programming with SQL Craig Gillgrass Assumptions Basic knowledge of SQL and relational databases Basic knowledge of the Geodatabase We ll hold
More informationWeaving 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 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 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 informationSupplement IV.D: Tutorial for MS Access. For Introduction to Java Programming By Y. Daniel Liang
Supplement IV.D: Tutorial for MS Access For Introduction to Java Programming By Y. Daniel Liang This supplement covers the following topics: Creating Databases and Executing SQL Creating ODBC Data Source
More informationDatabase Management System Choices. Introduction To Database Systems CSE 373 Spring 2013
Database Management System Choices Introduction To Database Systems CSE 373 Spring 2013 Outline Introduction PostgreSQL MySQL Microsoft SQL Server Choosing A DBMS NoSQL Introduction There a lot of options
More informationCS/CE 2336 Computer Science II
CS/CE 2336 Computer Science II UT D Session 23 Database Programming with Java Adapted from D. Liang s Introduction to Java Programming, 8 th Ed. and other sources 2 Database Recap Application Users Application
More informationPackage 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 informationHibernate Validator. Olivier Devoisin Kevin Gallardo. Université Pierre et Marie Curie. 9 Decembre 2014
Hibernate Validator Conception et Developpement d application d Entreprise à Large echelle Olivier Devoisin Kevin Gallardo Université Pierre et Marie Curie 9 Decembre 2014 Devoisin - Gallardo (UPMC) Hibernate
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 informationObject Oriented Design with UML and Java. PART XVIII: Database Technology
Object Oriented Design with UML and Java PART XVIII: Database Technology Copyright David Leberknight & Ron LeMaster. Version 2 What is a Database? Computerized record-keeping system. Collection of stored
More informationOBJECTS AND DATABASES. CS121: Introduction to Relational Database Systems Fall 2015 Lecture 21
OBJECTS AND DATABASES CS121: Introduction to Relational Database Systems Fall 2015 Lecture 21 Relational Model and 1NF 2 Relational model specifies that all attribute domains must be atomic A database
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 informationSpagoBI exo Tomcat Installation Manual
SpagoBI exo Tomcat Installation Manual Authors Luca Fiscato Andrea Zoppello Davide Serbetto Review Grazia Cazzin SpagoBI exo Tomcat Installation Manual ver 1.3 May, 18 th 2006 pag. 1 of 8 Index 1 VERSION...3
More informationTable of contents. Reverse-engineers a database to Grails domain classes.
Table of contents Reverse-engineers a database to Grails domain classes. 1 Database Reverse Engineering Plugin - Reference Documentation Authors: Burt Beckwith Version: 0.5.1 Table of Contents 1 Introduction
More informationTutorial for Spring DAO with JDBC
Overview Tutorial for Spring DAO with JDBC Prepared by: Nigusse Duguma This tutorial demonstrates how to work with data access objects in the spring framework. It implements the Spring Data Access Object
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 informationSQL DATA DEFINITION: KEY CONSTRAINTS. CS121: Introduction to Relational Database Systems Fall 2015 Lecture 7
SQL DATA DEFINITION: KEY CONSTRAINTS CS121: Introduction to Relational Database Systems Fall 2015 Lecture 7 Data Definition 2 Covered most of SQL data manipulation operations Continue exploration of SQL
More informationHistory of SQL. Relational Database Languages. Tuple relational calculus ALPHA (Codd, 1970s) QUEL (based on ALPHA) Datalog (rule-based, like PROLOG)
Relational Database Languages Tuple relational calculus ALPHA (Codd, 1970s) QUEL (based on ALPHA) Datalog (rule-based, like PROLOG) Domain relational calculus QBE (used in Access) History of SQL Standards:
More informationThe JAVA Way: JDBC and SQLJ
The JAVA Way: JDBC and SQLJ David Toman School of Computer Science University of Waterloo Introduction to Databases CS348 David Toman (University of Waterloo) JDBC/SQLJ 1 / 21 The JAVA way to Access RDBMS
More informationThe release notes provide details of enhancements and features in Cloudera ODBC Driver for Impala 2.5.30, as well as the version history.
Cloudera ODBC Driver for Impala 2.5.30 The release notes provide details of enhancements and features in Cloudera ODBC Driver for Impala 2.5.30, as well as the version history. The following are highlights
More informationJSR-303 Bean Validation
JSR-303 Bean Validation Emmanuel Bernard JBoss, by Red Hat http://in.relation.to/bloggers/emmanuel Copyright 2007-2010 Emmanuel Bernard and Red Hat Inc. Enable declarative validation in your applications
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 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 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 informationD61830GC30. MySQL for Developers. Summary. Introduction. Prerequisites. At Course completion After completing this course, students will be able to:
D61830GC30 for Developers Summary Duration Vendor Audience 5 Days Oracle Database Administrators, Developers, Web Administrators Level Technology Professional Oracle 5.6 Delivery Method Instructor-led
More informationModule Title: : Cloud Application Development
CORK INSTITUTE OF TECHNOLOGY INSTITIÚID TEICNEOLAÍOCHTA CHORCAÍ Semester 2 Examinations 2013/14 Module Title: : Cloud Application Development Module Code: SOFT 8022 School: Science and Informatics Programme
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 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 informationNick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.
TAKING CONTROL OF YOUR DATABASE DEVELOPMENT Nick Ashley While language-oriented toolsets become more advanced the range of development and deployment tools for databases remains primitive. How often is
More informationA basic create statement for a simple student table would look like the following.
Creating Tables A basic create statement for a simple student table would look like the following. create table Student (SID varchar(10), FirstName varchar(30), LastName varchar(30), EmailAddress varchar(30));
More informationData Hierarchy. Traditional File based Approach. Hierarchy of Data for a Computer-Based File
Management Information Systems Data and Knowledge Management Dr. Shankar Sundaresan (Adapted from Introduction to IS, Rainer and Turban) LEARNING OBJECTIVES Recognize the importance of data, issues involved
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 informationEasy-Cassandra User Guide
Easy-Cassandra User Guide Document version: 005 1 Summary About Easy-Cassandra...5 Features...5 Java Objects Supported...5 About Versions...6 Version: 1.1.0...6 Version: 1.0.9...6 Version: 1.0.8...6 Version:
More informationJava and Databases. COMP514 Distributed Information Systems. Java Database Connectivity. Standards and utilities. Java and Databases
Java and Databases COMP514 Distributed Information Systems Java Database Connectivity One of the problems in writing Java, C, C++,, applications is that the programming languages cannot provide persistence
More informationExtracting META information from Interbase/Firebird SQL (INFORMATION_SCHEMA)
13 November 2007 22:30 Extracting META information from Interbase/Firebird SQL (INFORMATION_SCHEMA) By: http://www.alberton.info/firebird_sql_meta_info.html The SQL 2003 Standard introduced a new schema
More informationDatabase Design Patterns. Winter 2006-2007 Lecture 24
Database Design Patterns Winter 2006-2007 Lecture 24 Trees and Hierarchies Many schemas need to represent trees or hierarchies of some sort Common way of representing trees: An adjacency list model Each
More informationDatabase 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 informationSupplement IV.C: Tutorial for Oracle. For Introduction to Java Programming By Y. Daniel Liang
Supplement IV.C: Tutorial for Oracle For Introduction to Java Programming By Y. Daniel Liang This supplement covers the following topics: Connecting and Using Oracle Creating User Accounts Accessing Oracle
More informationUnified access to all your data points. with Apache MetaModel
Unified access to all your data points with Apache MetaModel Who am I? Kasper Sørensen, dad, geek, guitarist @kaspersor Long-time developer and PMC member of: Founder also of another nice open source project:
More informationHow To Create A Table In Sql 2.5.2.2 (Ahem)
Database Systems Unit 5 Database Implementation: SQL Data Definition Language Learning Goals In this unit you will learn how to transfer a logical data model into a physical database, how to extend or
More informationEMBL-EBI. Database Replication - Distribution
Database Replication - Distribution Relational public databases EBI s mission to provide freely accessible information on the public domain Data formats and technologies, should not contradict to this
More informationf...-. I enterprise Amazon SimpIeDB Developer Guide Scale your application's database on the cloud using Amazon SimpIeDB Prabhakar Chaganti Rich Helms
Amazon SimpIeDB Developer Guide Scale your application's database on the cloud using Amazon SimpIeDB Prabhakar Chaganti Rich Helms f...-. I enterprise 1 3 1 1 I ; i,acaessiouci' cxperhs;;- diotiilea PUBLISHING
More informationMySQL for Beginners Ed 3
Oracle University Contact Us: 1.800.529.0165 MySQL for Beginners Ed 3 Duration: 4 Days What you will learn The MySQL for Beginners course helps you learn about the world's most popular open source database.
More informationComparing the Effectiveness of Penetration Testing and Static Code Analysis
Comparing the Effectiveness of Penetration Testing and Static Code Analysis Detection of SQL Injection Vulnerabilities in Web Services PRDC 2009 Nuno Antunes, nmsa@dei.uc.pt, mvieira@dei.uc.pt University
More informationChapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification
Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 5 Outline More Complex SQL Retrieval Queries
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 informationApache Sqoop. A Data Transfer Tool for Hadoop
Apache Sqoop A Data Transfer Tool for Hadoop Arvind Prabhakar, Cloudera Inc. Sept 21, 2011 What is Sqoop? Allows easy import and export of data from structured data stores: o Relational Database o Enterprise
More informationInterfacing Fedora with Microsoft SQL Server
Interfacing Fedora with Microsoft SQL Server David Handy - Developer Wayne Simpson - Software Architect/Engineer Technology Enhancement and Software Services Idaho National Laboratory 1 - Introduction
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 informationQ&A for Zend Framework Database Access
Q&A for Zend Framework Database Access Questions about Zend_Db component Q: Where can I find the slides to review the whole presentation after we end here? A: The recording of this webinar, and also the
More informationA SQL Injection : Internal Investigation of Injection, Detection and Prevention of SQL Injection Attacks
A SQL Injection : Internal Investigation of Injection, Detection and Prevention of SQL Injection Attacks Abhay K. Kolhe Faculty, Dept. Of Computer Engineering MPSTME, NMIMS Mumbai, India Pratik Adhikari
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 informationTemplate based relation database creator for mining industry
IT 12 031 Examensarbete 30 hp Juni 2012 Template based relation database creator for mining industry Jan Carlsson Institutionen för informationsteknologi Department of Information Technology Abstract
More informationGetting 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 informationSharding with postgres_fdw
Sharding with postgres_fdw Postgres Open 2013 Chicago Stephen Frost sfrost@snowman.net Resonate, Inc. Digital Media PostgreSQL Hadoop techjobs@resonateinsights.com http://www.resonateinsights.com Stephen
More informationOracle Database 10g Express
Oracle Database 10g Express This tutorial prepares the Oracle Database 10g Express Edition Developer to perform common development and administrative tasks of Oracle Database 10g Express Edition. Objectives
More informationSecurity Test s i t ng Eileen Donlon CMSC 737 Spring 2008
Security Testing Eileen Donlon CMSC 737 Spring 2008 Testing for Security Functional tests Testing that role based security functions correctly Vulnerability scanning and penetration tests Testing whether
More informationUsing Temporary Tables to Improve Performance for SQL Data Services
Using Temporary Tables to Improve Performance for SQL Data Services 2014- Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying,
More informationPhysical Design. Meeting the needs of the users is the gold standard against which we measure our success in creating a database.
Physical Design Physical Database Design (Defined): Process of producing a description of the implementation of the database on secondary storage; it describes the base relations, file organizations, and
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 informationSimba Apache Cassandra ODBC Driver
Simba Apache Cassandra ODBC Driver with SQL Connector 2.2.0 Released 2015-11-13 These release notes provide details of enhancements, features, and known issues in Simba Apache Cassandra ODBC Driver with
More information1. Introduction... 1 1.1. What is Slice?... 1 1.2. Background... 1 1.3. Why Slice?... 1 1.4. Purpose of this Document... 1 1.5. Intended Audience...
Slice Documentation Slice Documentation 1. Introduction... 1 1.1. What is Slice?... 1 1.2. Background... 1 1.3. Why Slice?... 1 1.4. Purpose of this Document... 1 1.5. Intended Audience... 1 2. Features
More informationEnabling development teams to move fast. PostgreSQL at Zalando
Enabling development teams to move fast PostgreSQL at Zalando About us Valentine Gogichashvili Database Engineer @Zalando twitter: @valgog google+: +valgog email: valentine.gogichashvili@zalando.de About
More informationOracle to MySQL Migration
to Migration Stored Procedures, Packages, Triggers, Scripts and Applications White Paper March 2009, Ispirer Systems Ltd. Copyright 1999-2012. Ispirer Systems Ltd. All Rights Reserved. 1 Introduction The
More informationPerformance Evaluation of Java Object Relational Mapping Tools
Performance Evaluation of Java Object Relational Mapping Tools Jayasree Dasari Student(M.Tech), CSE, Gokul Institue of Technology and Science, Visakhapatnam, India. Abstract: In the modern era of enterprise
More informationIntroduction to Triggers using SQL
Introduction to Triggers using SQL Kristian Torp Department of Computer Science Aalborg University www.cs.aau.dk/ torp torp@cs.aau.dk November 24, 2011 daisy.aau.dk Kristian Torp (Aalborg University) Introduction
More informationObject Relational Mapping for Database Integration
Object Relational Mapping for Database Integration Erico Neves, Ms.C. (enevesita@yahoo.com.br) State University of Amazonas UEA Laurindo Campos, Ph.D. (lcampos@inpa.gov.br) National Institute of Research
More informationHow 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 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 informationCSCE 156H/RAIK 184H Assignment 4 - Project Phase III Database Design
CSCE 156H/RAIK 184H Assignment 4 - Project Phase III Database Design Dr. Chris Bourke Spring 2016 1 Introduction In the previous phase of this project, you built an application framework that modeled the
More informationNormal Form vs. Non-First Normal Form
Normal Form vs. Non-First Normal Form Kristian Torp Department of Computer Science Aalborg Univeristy www.cs.aau.dk/ torp torp@cs.aau.dk September 1, 2009 daisy.aau.dk Kristian Torp (Aalborg University)
More informationSelf-test Database application programming with JDBC
Self-test Database application programming with JDBC Document: e1216test.fm 18/04/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION TO THE SELF-TEST
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 informationDatabase 10g Edition: All possible 10g features, either bundled or available at additional cost.
Concepts Oracle Corporation offers a wide variety of products. The Oracle Database 10g, the product this exam focuses on, is the centerpiece of the Oracle product set. The "g" in "10g" stands for the Grid
More informationEDI Process Specification
EDI Batch Process CONTENTS 1 Purpose...3 1.1 Use Case EDI service...3 1.2 Use Case EDI Daily Reporting...3 1.3 Use Case EDI Service Monitoring Process...3 2 EDI Process Design High Level...4 2.1 EDI Batch
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 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 informationDatabase programming made easier Master thesis of Roland Balk
Database programming made easier Master thesis of Roland Balk rolandbalk@upcmail.nl, 4-1-2016 University of Twente, Formal Methods & Tools group Supervised by: L. Wevers Msc, prof. dr. M. Huisman and dr.
More informationUltraQuest Cloud Server. White Paper Version 1.0
Version 1.0 Disclaimer and Trademarks Select Business Solutions, Inc. 2015. All Rights Reserved. Information in this document is subject to change without notice and does not represent a commitment on
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 information- Eliminating redundant data - Ensuring data dependencies makes sense. ie:- data is stored logically
Normalization of databases Database normalization is a technique of organizing the data in the database. Normalization is a systematic approach of decomposing tables to eliminate data redundancy and undesirable
More informationCSE 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 informationDatabase Management Systems. Rebecca Koskela DataONE University of New Mexico
Database Management Systems Rebecca Koskela DataONE University of New Mexico Databases and the Data Life Cycle Plan Analyze Collect Integrate Assure Discover Describe Preserve 2 Database CollecIon of data
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 informationTalend for Data Integration guide
Talend for Data Integration guide Table of Contents Introduction...2 About the author...2 Download, install and run...2 The first project...3 Set up a new project...3 Create a new Job...4 Execute the job...7
More informationBasic Unix/Linux 1. Software Testing Interview Prep
Basic Unix/Linux 1 Programming Fundamentals and Concepts 2 1. What is the difference between web application and client server application? Client server application is designed typically to work in a
More informationDeveloping Web Applications for Microsoft SQL Server Databases - What you need to know
Developing Web Applications for Microsoft SQL Server Databases - What you need to know ATEC2008 Conference Session Description Alpha Five s web components simplify working with SQL databases, but what
More informationLecture 6. SQL, Logical DB Design
Lecture 6 SQL, Logical DB Design Relational Query Languages A major strength of the relational model: supports simple, powerful querying of data. Queries can be written intuitively, and the DBMS is responsible
More informationPhysical Database Design Process. Physical Database Design Process. Major Inputs to Physical Database. Components of Physical Database Design
Physical Database Design Process Physical Database Design Process The last stage of the database design process. A process of mapping the logical database structure developed in previous stages into internal
More informationNew Features... 1 Installation... 3 Upgrade Changes... 3 Fixed Limitations... 4 Known Limitations... 5 Informatica Global Customer Support...
Informatica Corporation B2B Data Exchange Version 9.5.0 Release Notes June 2012 Copyright (c) 2006-2012 Informatica Corporation. All rights reserved. Contents New Features... 1 Installation... 3 Upgrade
More informationChapter 30 Exporting Inventory Management System Data
Chapter 30 Exporting Inventory Management System Data This chapter is intended for users who are familiar with Relational Database Management Systems (RDBMS) and the Structured Query Language (SQL), who
More information