gestión de bases de datos – parte ii bases de datos …ruckhaus/materias/ci6872/clase10.pdf ·...

44
Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006 Gestión de Bases de Datos – Parte II Bases de Datos en Internet Agenda Motivación Sistemas de BD en Internet. Arquitecturas de Sistemas de BD en Internet Interfaz de conexión JDBC

Upload: dinhcong

Post on 13-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Gestión de Bases de Datos – Parte IIBases de Datos en Internet

Agenda Motivación Sistemas de BD en Internet. Arquitecturas de Sistemas de BD en Internet Interfaz de conexión JDBC

Page 2: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Motivación

La Internet y la Web hacen que sea fácil y atractivo poner toda lainformación en el cyberespacio, y la hace accesible a muchos.

La Web e Internet permiten un gran número de consultasconcurrentes a los datos de diferentes organizaciones.

– Páginas web dinámicas– Separar lógica de la aplicación de lógica de presentación.

Componentes (pueden ser distribuidos), style sheets.– Portabilidad. Independencia de la plataforma.– Personalización de acuerdo a requerimientos de usuarios– Técnicas para manejo de un índice alto de concurrencia– Seguridad

Page 3: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Motivación

•La Web es una gran Base de Datos-Se requiere de optimizadores que permitan manejar consultas amúltiples y variadas fuentes de datos (páginas Web, archivos, Bases deDatos). Problemas de carga, capacidad, calidad de la fuente.

-Se debe reconocer a una nueva fuente de datos en la red de la mismamanera como se el SO reconoce un dispositivo de hardware.

-Es necesario modelar datos de la Web. (Modelos de DatosSemiestructurados, XML) lo cual permite además el intercambio deinformación.

-Proceso de responder una consulta debe ser “acumulativo”.

-Se requiere manejar consultas imprecisas y respuestas imprecisas.Por ejemplo: “hay restaurantes italianos cercanos a mi casa?”

Page 4: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

¿Qué es un Sistema de BD enInternet?

Un Sistema de BD en el cual la información es accedida paraconsulta o actualización a través de la Internet.

¿Se puede considerar Sistema de BD en Internet:– Sistemas de BD tradicionales?– Solo BD que son accedidas a través del Web?– BD Cliente/Servidor?– BD que son accedidas a través de la Intranet?– BD que son accedidas a través de la Extranet?

Page 5: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Sistemas de BD tradicionales - centralizadas

BD

DBMS

Aplicaciones

Page 6: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Sistemas de BD tradicionales -distribuidas homogéneas

BD1 BDi BDn

DDBMS

Aplicaciones

Page 7: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

BD1 BDi BDn

DBMS1 DBMSi DBMSn

Aplicaciones

Sistemas de BD tradicionales -distribuidas heterogéneas

Page 8: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Sistemas de fuentes de datos -centralizada

Fuente deDatos

Servidor deAplicaciones

AplicacionesConsultas

Page 9: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Sistemas de fuentes de datos -heterogéneas

Fuentes deDatos

Servidor deAplicaciones

Aplicaciones

Servidor deAplicaciones

Page 10: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Arquitectura de mediadores y traductores - Sist. de fuentes de datos heterogéneas

Fuentes deDatos

Mediador

Mediador

Traductor Traductor Traductor

Aplicaciones

Page 11: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Ejemplos BD en Internet

•Publicaciones en línea: periódicos, revistas, canales tv(www.cnn.com)

–Información de la página cambia periódicamente.–Muchos usuarios concurrentes.

•Entretenimiento: carteleras culturales (www.cinex.com.ve)–Información de la página cambia periódicamente.–Ofrecen servicios como reservación o compra de boletos.–Seguridad es importante

•Comercio Electrónico: tienda (www.amazon.com)–Personalización.–Integración de múltiples fuentes de datos.–Seguridad es importante

Page 12: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Ejemplos BD en Internet

•Comparación: comparación de productos de un mismo tipo(www.bestwebbuys.com)

–Obtención de información de múltiples sitios web

•Mediciones: mediciones de clima.(www.noaa.gov)–Información de la página cambia frecuentemente

•Agentes: viajes, empleo. (www.expedia.com, www.priceline).–Comunicación con múltiples fuentes de datos.

Page 13: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

PROGRAMACLIENTE

CONSULTA SQLRESULTADOS(DATOS)

PROGRAMA SERVIDOR:DBMS,

Procedimientos, Triggers

RAM BD

Correspondenciafísica: 1 soloequipo, 2 equipos através de una redlocal, intranet ointernet.

Presentación

Lógica delaAplicación

Almacenamiento

Arquitectura de 2 capas

Page 14: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

CLIENTE 1 CLIENTE 2 CLIENTE 3CLIENTES

SERVIDORES

DBMSPROCESOSERVIDOR

1

DBMSPROCESOSERVIDOR

n

DBMSPROCESOSERVIDOR

2

BDBLOQUE

RAMCOMPARTIDO

DBMS(DAEMON)

Arquitectura tradicional multiusuario 2 capas

Page 15: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

PROGRAMACLIENTE

CONSULTA SQLRESULTADOS(DATOS)

Driver del API

RAM BD

Sistemas de BD 2capas con:

•Independencia delDBMS•Portabilidadplataforma cliente(Java)

APIs: ODBC, JDBC,NSAPI

API

Programa Servidor:DBMS

Presentación yLógica de laAplicación

Almacenamiento

Arquitectura de 2 capas

Driver del API

Page 16: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

BD

API

Driver del APISGBD

ProgramaCliente

•Independencia delDBMS

•Portabilidadplataforma cliente(Java)

•Menoracoplamiento entrecapas

•Manejo de“estado” (stateful)

Programa deAplicación

Presentación

Lógica de laAplicación

Servidor deAplicaciones

Intermediario

Almacenamiento

Arquitectura de 3 capas

Almacenamiento

Page 17: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Cliente

Servidor deAplicaciones

(Cliente)

DBMS

•El Cliente puede ser:•Browser•Applet•Aplicación

•El Servidor de Aplicaciones maneja:•Procesos que se comunican con la BD•Threads que se comunican a la BD•Páginas dinámicas (Páginas de Servidor)•Componentes no distribuidos•Componentes distribuidos•Un software que a su vez incluye uno ovarios de los anteriores

Cliente

Servidor

Cliente

Servidor

ProtocoloTCP/IP

ProtocoloTCP/IP

BD

Arquitectura de 3 capas

Page 18: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Sistemas BD 3 capas -Ventajas

•Sistemas heterogéneos.

•Clientes “delgados”

•Integración de datos

•Escalabilidad a muchos clientes

•Beneficios para el desarrollo de software

Page 19: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

En un Sistema BD Web elCliente es un Browser yel Servidor deAplicaciones trabaja enconjunto con el WebServer

Browser

Servidor deAplicaciones

Solicitud http(con parámetros)

Sistema Bases de Datos Web

WebServer

DBMS BD

Parámetros

Conexión,comandoSQL

DatosResultantes

DocumentoHTML, XML

Page 20: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Servidor de AplicacionesTipos1. Parte del Web Server (plugin): Engines para Servlets, JSP,ASP, PHP•Software separado (middle-tier, middleware)

–Un producto de la misma compañía BD: Application Server deOracle–Un producto de terceros: WebLogic

Funcionalidad•Interacción con la BD•Generación de HTML (para Sistemas BD Web)•Elementos básicos de programación (iteración, condicionales, etc.)

Page 21: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

2. Software middle-tier facilitan:

•Desarrollo de la lógica del negocio•Administración de aplicaciones•Reutilización•Integración de fuentes de datos heterogéneas•Transacciones que involucran varias fuentes de datos•Seguridad•Manejo de sesiones•Componentes distribuidos

Servidor de Aplicaciones

Page 22: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Cliente

Servidor deAplicaciones

(Cliente)

DBMS

Utilización de DBMS y BD en Internet•Los procesos, threads, páginas y componentesse comunican con la BD mediante interfaz deconexión (JDBC)•El Servidor de Aplicaciones maneja:

•Procesos que se comunican con la BD•Threads que se comunican a la BD (Servlets)•Páginas dinámicas o de servidor (JSP)•Componentes no distribuidos (Beans)•Componentes distribuidos (EJB)•Un software que a su vez incluye uno ovarios de los anteriores

La Web es una gran Base de Datos

•Es necesario modelar datos de la Web. (Modelosde Datos Semiestructurados, XML) lo cualpermite además el intercambio de información.

Cliente

Servidor

Cliente

Servidor

ProtocoloTCP/IP

ProtocoloTCP/IP

BD

Agenda de la asignatura CI6872

Page 23: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

JDBC - Metas

•API con utilización de SQL

•Aprovechar experiencia de APIs existentes (ODBC)

•Debe ser simple

Page 24: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Arquitectura JDBC

Aplicación A Aplicación B Aplicación CAPI JDBC

Driver Oracle Driver Sybase Driver MySQL

API JDBC API JDBC

DBMSMySQL

DBMSOracle

DBMSSybase

.....

.....

Page 25: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Drivers JDBC

Aplicación Java

JDBC Driver Manager

JDBC API

JDBC DriverAPI

JDBCNet

Driver

JDBC-ODBCBridge DriverODBC Driver

JDBCNativoDBMS

JDBCDriverDBMS

Page 26: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Drivers JDBC

Page 27: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Drivers JDBC

Page 28: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Tipo 1: Puente JDBC-ODBC•Util para compañías que ya tienen ODBC.•No es para aplicaciones a gran escala.•Está limitada a la funcionalidad de ODBC.•Requiere la instalación de software en el cliente.

Tipo 2: Driver paccialmente Java•Mejor desempeño que el tipo 1.•Requiere instalación en cada equipo cliente.

Tipo 3: Driver Java puro para “middleware”•Puede ser usado cuando se requieren múltiples BD y se quiere tener undriver.

Tipo 4: Driver Java puro directo-BD•Puede ser descargado dinámicamente.•Se requiere un driver diferente para cada BD.

Tipos de drivers JDBC

Page 29: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

import java.sql.*;public class puente1{ public static void main(String args[]){//Registro del driver Class.forName(“algunnombredeclasedriverjdbc");

//Crea la conexion a la BD Connection conexion = DriverManager.getConnection("jdbc:subprotocolovendedorx:maquinay:puertoz”,“login”, “psswd”) System.out.println("Creo la conexion ");

//Crea una instruccion SQL Statement stmt = conexion.createStatement();

Ejemplo

Page 30: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

//Ejecuta una expresion SQL de consulta

ResultSet rs = stmt.executeQuery("SELECT COF_NAMEFROM COFFEES"); System.out.println("Consultando Tabla COFFEES");

while (rs.next()){ String coffeeName = rs.getString("COF_NAME"); System.out.println("COFFEENAME: " + coffeeName); }

Ejemplo

Page 31: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

//Precompila una expresion SQL de consulta

PreparedStatement consultCoffees=conexion.prepareStatement("select COF_NAME FROM COFFEES "+ "WHERE PRICE > ? AND SUP_ID = ?");

System.out.println("Despues de crear elPreparedStatement");

int [] suppliers = {101, 150, 50 }; double [] prices = {7.99, 8.99, 10.99}; int len= prices.length;

for (int i = 0; i< len; i++){ consultCoffees.setDouble(1,prices[i]); consultCoffees.setInt(2,suppliers[i]); ResultSet

Ejemplo

Page 32: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

rs1=consultCoffees.executeQuery();

while (rs1.next()){ String coffeeName =rs1.getString("COF_NAME"); System.out.println("COFFEENAME: " +coffeeName); } }//Cierra la conexion conOracle.close();}}

Ejemplo

Page 33: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Clases e interfaces de JDBC

DriverManager Driver

Connection

Statement

ResultSet

DatabaseMetaData

CallableStatement

PreparedStatement

ResultSetMetaData

registers

provides

creates retrieves

providesprovides

Page 34: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

JDBC API:

Las clases a ser usadas están en el paquete java.sql y javax.sql

Pasos a seguir:– Registrar el driver.– Conectarse al manejador de BD’s.– Crear la(s) instruccion(es) que será(n) ejecutada(s).– Ejecutar la(s) instruccion(es).– Manipular el resultado.

Page 35: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Registrar el Driver

Averiguar el nombre de la clase provista por el paquete a serusado.

Localizar la clase en el directorio apropiado para que pueda sercargado.

Alternativamente se puede cargar la clase en el programausando el comando:a) Class.forName(<clase que implementa el

driver>).newInstance())

b) DriverManager.registerDriver(new <nombreDriver>() )

Page 36: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Crear la conexión

La clase DriverManager es la responsable de:– seleccionar el driver– crear una nueva conexión a la base de datos

Para activar el driver, éste debe estar registrado

El driver manager tratará de encontrar un driver entre los driversregistrados, que pueda usar el protocolo especificado en el URLde la Base de Datos.

Page 37: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Ejecutando comandos de SQL

Crear el comando antes de ejecutarlo. EL objeto connection obtenido alcrear la conexión puede ser utilizado:

Para ejecutar una acción, INSERT, UPDATE, DELETE, CREATE TABLE,DROP TABLE, o ejecutar consultas

La consulta retorna un objeto “result set”.

Se puede predefinir la consulta usando el método prepareStatement de laclase Connection.

El método prepareStatement retorna un objeto precompilado que contieneuno o más parámetros.

Page 38: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

El método setXxx(int n, Xxx x) de la clase PreparedStatement se puedeusar para asignarle al parámetro numero n el valor x del tipo Xxx

El método clearParameters() de la clase PreparedStatement se puede usarpara limpiar los valores de los parámetros.

Ejecutando comandos de SQL

Page 39: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Ejemplo Prepared Statement ytransacción

c.setAutoCommit(false)Statement statement = c.prepareStatement(“UPDATE cuenta” +“SET balance = ? + “WHERE id = ?);int i; try { for (i=0; i<cuentas.length;i++ ) {

statement.setFloat(1, cuentas[i].getBalance());statement.setInt(2, cuentas[i].getId());statement.execute();statement.clearParameters();}

c.commit(); statement.close();catch(SQLException e) {

rollback();out.println(“hay un error en la actualizacion”);}

Page 40: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Tipos de Result Sets

•La llamada a createStatement se traduce:

conn. createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)

•Los tipos para el primer parámetro son:TYPE_FORWARD_ONLY, TYPE_SCROLL_SENSITIVE,TYPE_SCROLL_INSENSITIVE

•Los tipos para el segundo parámetro son:CONCUR_READ_ONLY, CONCUR_UPDATABLE (Los result setsdeben incluir la clave primaria y ser selects de una tabla). Métodosson updateXXX, deleteRow(), moveToInsertRow(), insertRow()

Page 41: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Otros aspectos importantes JDBC

•Concurrencia

•Metadatos•Del ResultSet•De la Base de Datos•De las propiedades del driver

•Conexiones:•Una conexion por requerimiento•Una conexion por usuario•Una conexion por grupo de usuarios•Un pool de conexiones

Page 42: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

JDBC - Concurrencia

• dirty reads: Una transaccion puede ver actualizaciones “nocomprometidas” de otras transacciones. Si la otra transacciónhace rollback, se leyó “dirty data”.

• repeatable reads: siempre ve los mismos datos al repetir lamisma consulta. No ve las actualizaciones “comprometidas” dela otra transaccion.

•Phantom reads: se ven las filas fantasma generadas poractualizaciones de otras transacciones que ahora concuerdan conla condicion de la seleccion.

Page 43: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

JDBC - Concurrencia

Niveles de aislamiento de una transaccion:•TRANSACTION_NONE.

•TRANSACTION_READ_UNCOMMITTED. Permite dirty reads,nonrepeatable reads y phantom reads.

•TRANSACION_READ_COMMITTED. Solo ve las actualizacionescomprometidas. Permite nonrepeatable reads y phantom reads.

•TRANSACTION_REPEATABLE_READ. Permite repeatable reads quehayan sido comprometidos y phantom reads.

•TRANSACTION_SERIALIZABLE. Permite repeatable reads que hayansido comprometidos.

Page 44: Gestión de Bases de Datos – Parte II Bases de Datos …ruckhaus/materias/ci6872/clase10.pdf · manera como se el SO reconoce un dispositivo de hardware.-Es necesario modelar datos

Telemática CI6872 - Gestión de Bases de Datos Edna Ruckhaus – Marzo 2006

Connection Pooling

•Mecanismo mediante el cual se mantienen conexiones abiertas en un“cache” para su utilización y reutilización por diferentes partes de unaaplicación.

•Cada vez que se requiere una conexión la toma del “pool”, si el pool estávacío se puede crear una nueva conexión. Cuando no se necesita laconexión se regresa al “pool”.