This section describes the architectural components of
the various implementations.
ODBC architecture
The
ODBC implementation is a client-server architecture, with the following
major components:
- Application
- The application is responsible for interacting with the user and
for invoking ODBC API functions that submit SQL statements for processing
by a file system or a database management system.
- Driver Manager
- The Driver Manager accepts ODBC API functions from the application
and passes them to an ODBC driver for processing. It also accepts
results from the ODBC driver and passes them to the Application.
- ODBC driver
- The ODBC driver processes the ODBC API functions it receives from
the Driver Manager, interacts with the file system or database management
system to access the required data, and returns results to the ODBC
Driver Manager.
- Data source
- A data source contains the sets of data the ODBC driver accesses,
along with all the environments associated with the data. These environments
might include file access or database access software, an operating
system, and a networking platform.
To use ODBC to access an IBM® Netezza® appliance,
you need at least a two-tier client-server configuration. In a two-tier
client-server system, the data source is stored on the Netezza appliance,
which handles all database access processing. The ODBC driver, driver
manager, and application reside on the client system and use a network
connection to a Postgres process on the Netezza appliance
host, which coordinates SQL statement processing functions.
JDBC architecture
The
JDBC architecture consists of four major components:
- Java™ Application
- The application, written in the Java programming
language, is responsible for interacting with the user and for invoking
JDBC API functions. These API functions submit SQL statements for
processing by a file system or a database management system. The Java application uses interfaces,
classes, and methods defined by the Java API
to connect to and access a data source.
- Java virtual machine
- When a Java application
is compiled, the Java object
program consists of byte codes. The Java virtual
machine is responsible for converting the Java byte codes into instructions that can run
on the machine on which the application is running. The Java virtual machine functions as an intermediary
between the Java object program
and the machine on which the application is running. There is a different Java virtual machine implementation
for each platform. The Java virtual
machine makes it possible for the same Java program
to be run, without changing or recompiling, on any machine for which
a Java virtual machine is implemented.
- JDBC driver
- The JDBC driver processes the JDBC API interfaces, classes, and
methods in the Java application.
The Java application uses the
JDBC driver to interact with the file system or database management
system to access the required data. It also returns results to the Java virtual machine, which, in
turn, returns those results to the Java Application.
There is a different JDBC driver for each type of DBMS or data source
type. Netezza provides
a JDBC driver for Version 3.0 of the Oracle JDBC API specification.
The driver is a Type 4, pure Java driver
that Netezza tested
for conformance with the Oracle JDBC specifications on Windows, Linux,
and UNIX platforms. The Netezza JDBC
driver supports all NZSQL data types, includes password encryption,
and provides for connection options for host, port, and database.
Starting with Netezza appliance
Release 4.6, the JDBC driver requires Java Runtime
Environment (JRE) release 1.5 and later. If your Netezza host
runs release 7.1.0.0 or later and is configured to use SP 800-131a
cryptography support, your JDBC clients require Java Runtime Environment (JRE) release 1.7 and
later.
- Data source
- A data source contains the sets of data the JDBC driver accesses,
along with all the environments associated with the data. These environments
might include file access or database access software, an operating
system, and a networking platform.
To use JDBC to access an IBM Netezza appliance,
you need at least a two-tier client-server configuration. In a two-tier
client-server system, the data source is stored on the Netezza appliance,
which handles all database access processing. The JDBC driver, virtual
machine, and JDBC application reside on the client system and use
a network connection to a Postgres process on the Netezza appliance
host, which coordinates SQL statement processing functions.