Database APIs Elmasri/Navathe ch 12 Padron-McCarthy/Risch ch 20 - - PowerPoint PPT Presentation

database apis
SMART_READER_LITE
LIVE PREVIEW

Database APIs Elmasri/Navathe ch 12 Padron-McCarthy/Risch ch 20 - - PowerPoint PPT Presentation

DATABASE DESIGN I - 1DL300 Spring 2013 An Introductory Course on Database Systems http://www.it.uu.se/edu/course/homepage/dbastekn/vt13/ Silvia Stefanova Uppsala Database Laboratory Department of Information Technology, Uppsala University,


slide-1
SLIDE 1

2013-02-20 1 Silvia Stefanova, UDBL - IT - UU

DATABASE DESIGN I - 1DL300

Spring 2013

An Introductory Course on Database Systems

http://www.it.uu.se/edu/course/homepage/dbastekn/vt13/ Silvia Stefanova Uppsala Database Laboratory Department of Information Technology, Uppsala University, Uppsala, Sweden

slide-2
SLIDE 2

2013-02-20 2 Silvia Stefanova, UDBL - IT - UU

Database APIs

Elmasri/Navathe ch 12 Padron-McCarthy/Risch ch 20 Silvia Stefanova

Department of Information Technology Uppsala University, Uppsala, Sweden

slide-3
SLIDE 3

2013-02-20 3 Silvia Stefanova, UDBL - IT - UU

Outline

  • 1. How to query by SQL
  • 2. Database Applications (SQL queries inside programs)
  • 3. Database APIs
  • 4. Examples of using different database APIs
  • 5. Prepared SQL query
slide-4
SLIDE 4

2013-02-20 4 Silvia Stefanova, UDBL - IT - UU

How to query by SQL ?

  • 1. Textual interface

The user types SQL into a monitor

  • 2. Graphical query interface

The user constructs SQL by Query by Example ( QBE )

  • 3. SQL application programming interfaces
  • SQL is included in an application program (in C, Java, PHP, etc. …)
  • Host language
  • Data sublanguage
slide-5
SLIDE 5

2013-02-20 5 Silvia Stefanova, UDBL - IT - UU

SQL queries inside a program

Native APIs (Application Programming Interface) in C, PHP, Python, etc.

  • Libraries of database functions and procedures
  • Dependent of the DBMS

ODBC (Open DataBase Connectivity)

  • API in C
  • Independent of the DBMS and the operating systems

JDBC (Java DataBase Connectivity)

  • API in Java
  • Independent of DBMS and operating systems

ESQL (Embedded SQL)

  • Embedded SQL in host language
slide-6
SLIDE 6

2013-02-20 6 Silvia Stefanova, UDBL - IT - UU

Requirements for the APIs?

  • 1. Connect the application program with the DBMS, i.e.

introduce sessions

  • 2. Send SQL statements to the DBMS for execution
  • 3. Fetch and manage the result of the SQL statements
  • 4. Avoid unnecessary optimization of the SQL queries

which can contribute to time delays

slide-7
SLIDE 7

2013-02-20 7 Silvia Stefanova, UDBL - IT - UU

Database API – in General

  • Connection: initialize connection with the database

connection=db_connect ("jdbc:microsoft:sqlserver://localhost;DatabaseName=person", "com.microsoft.jdbc.sqlserver.SQLServerDriver", “person”, “person”, “silvia”, “123456” );

  • Query:

result = db_query(connection, “SELECT name,tel from personalinfo”);

slide-8
SLIDE 8

2013-02-20 8 Silvia Stefanova, UDBL - IT - UU

Database API – in General

  • Fetch the result: fetches one row at a time

while( row = db_fetch(result)) != NULL { print(“Name, Telephone “, row->fields[0], row->fields[1] ); }

  • Close connection

db_close(connection)

slide-9
SLIDE 9

2013-02-20 9 Silvia Stefanova, UDBL - IT - UU

The ODBC architecture

ODBC API is independent of any one programming language, database system or operating system; it is a standard

slide-10
SLIDE 10

2013-02-20 10 Silvia Stefanova, UDBL - IT - UU

Database API – Examples

Example 1: Native API – connect to a DB stored in MySQL by PHP Example 2: ODBC – connect to a DB stored in MySQL by PHP through ODBC

slide-11
SLIDE 11

2013-02-20 11 Silvia Stefanova, UDBL - IT - UU

Advantages of ODBC

  • Standard API
  • API is independent of DBMS
  • By the same program code a user can connect to different types of DBMS

without changing it

  • Easy to connect to different data sources and DBMS
  • It is possible to communicate with several data sources of different type
slide-12
SLIDE 12

2013-02-20 12 Silvia Stefanova, UDBL - IT - UU

JDBC API

  • The JDBC API : set of Java interfaces that allow database

applications to:

  • open connections to a database
  • execute SQL statements
  • process the results
  • Main methods :
  • java.sql.DriverManager : loads the specific drivers and supports creating

new database connections

  • java.sql.Connection : represents a connection to a specific database
  • java.sql.Statement : allows the application to execute a SQL statement
  • java.sql.PreparedStatement : represents a pre-compiled SQL statement
  • java.sql.ResultSet : controls access to rows resulting from executing a

statement

slide-13
SLIDE 13

2013-02-20 13 Silvia Stefanova, UDBL - IT - UU

The JDBC architecture

JDBC API is independent of (relational) DBMS and operating system

slide-14
SLIDE 14

2013-02-20 14 Silvia Stefanova, UDBL - IT - UU

Database API – Examples

Example 3: JDBC – connect to a DB stored in MySQL by a Java application

slide-15
SLIDE 15

2013-02-20 15 Silvia Stefanova, UDBL - IT - UU

Prepared SQL query

  • Prepare an SQL query
  • The process to compile and optimize SQL query
  • Takes longer time (much longer sometimes) compared to the time for

executing the SQL query

  • Execute the same SQL query several times
  • Prepare the query (parameterized query) when it is executed for the first

time.

  • Use prepared query next time to skip compilation and optimization
slide-16
SLIDE 16

2013-02-20 16 Silvia Stefanova, UDBL - IT - UU

Database API – Examples

Example 4: JDBC – connect to a DB stored in MySQL by a Java application; use prepared SQL

slide-17
SLIDE 17

2013-02-20 17 Silvia Stefanova, UDBL - IT - UU

Summary

  • Database APIs
  • ODBC
  • JDBC
  • Prepared query