2.3.4 Estrategias de generación de claves primarias

Tamaño: px
Comenzar la demostración a partir de la página:

Download "2.3.4 Estrategias de generación de claves primarias"

Transcripción

1 2.3.4 Estrategias de generación de claves primarias

2 Estrategia 1 (1) Usar el mecanismo de generación de identificadores numéricos que proporciona la BD, en caso de que disponga de él; en otro caso, permitir integrar otra estrategia Ejemplo: Oracle y PostgreSQL proporcionan generadores de identificadores Es la estrategia que usa MiniBank

3 Estrategia 1 (2) <<Interface>> SQLAccountDAO AbstractSQLAccountDAO # AbstractSQLAccountDAO() + create(connection : Connection, accountvo : AccountVO) : AccountVO IGSQLAccountDAO + IGSQLAccountDAO() <<use>> <<Interface>> EntityIdentifierGenerator (from sql) + getnextidentifier(connection : Connection, entityname : String) : Long <<use>> EntityIdentifierGeneratorFactory (from sql) <<static>> - generatorclass : Class AbstractEntityIdentifierGenerator (from sql) - EntityIdentifierGeneratorFactory() <<static>> + getgenerator() : EntityIdentifierGenerator # AbstractEntityIdentifierGenerator() + getnextidentifier(connection : Connection, entityname : String) : Long # getquerystring(sequencename : String) : String PostgreSQLEntityIdentifierGenerator (from postgresql)

4 Estrategia 1 (y 3) Ventajas El generador de identificadores es reusable Es sencilla de implementar Suficientemente eficiente Desventajas Para insertar una nueva fila necesitamos realizar dos accesos a la BD: (1) generar el identificador y (2) insertar la fila Si la BD no proporciona generador de identificadores, es preciso implementar el método create Si proporciona columnas-contador, se debe insertar la fila sin especificar la clave (identificador) y luego leer el identificador generado En otro caso (ej.: Cloudscape), se puede usar la estrategia 3, o incluso la 2 en aplicaciones con poca carga

5 Estrategia 2 (1) Implementar EntityIdentifierGenerator en términos de la siguiente tabla entityname Account AccountOperation... nextidentifier getnextidentifier lee el valor nextidentifier de la fila correspondiente (es el valor que devuelve), le suma uno y lo almacena otra vez en la BD

6 Estrategia 2 (y 2) Problemas Número de accesos a la BD para insertar una nueva fila: 3 (2 por la generación del identificador y otro por la inserción) Si se usa SELECT FOR UPDATE para leer las filas o TRANSACTION_SERIALIZABLE con BDs con Pessimistic Locking => demasiados bloqueos Si se usa TRANSACTION_SERIALIZABLE con BDs con Optimistic Locking => con carga alta, se producirán muchas SQLExceptions Conclusión getnextidentifier podría hacer n reintentos, pero ocurrirá muchas veces y será lento Excepto para aplicaciones con poca carga, no es una estrategia válida

7 Estrategia 3: Sequence Blocks (1) Mejorar la estrategia 2 manteniendo un rango de identificadores en memoria La columna nextidentifier pasaría a llamarse lowerentityidentifier, que representaría el límite inferior de un rango de identificadores La implementación de EntityIdentifierGenerator mantendría un mapa que asocia <entiyname, <lowerentityidentifier, nextidentifier>> Inicialmente el mapa está vacío Si ((entityname está en el mapa) && (nextidentifier < lowerentityidentifier+k)) => Devolver nextidentifier e incrementarlo en una unidad En otro caso => lowerentityidentifier = Leer el valor de la columna lowerentityidentifier en la fila correspondiente (XXX) nextidentifier = lowerentityidentifier Actualizar la fila con el valor lowerentityidentifier+k Devolver nextidentifier e incrementarlo en una unidad

8 Estrategia 3: Sequence Blocks (2) El método getnextidentifier necesita ser sincronizado IdentifierGenerator debería ser un Singleton El concepto de Singleton es difuso en J2EE La máquina virtual Java garantiza que sólo hay una instancia de un Singleton por cada cargador de clases Una aplicación Java puede usar más de un cargador de clases (ej.: un contenedor de EJBs suele usar más de uno) Un contenedor de Servelts/JSP (que en teoría sólo dispone de un cargador de clases) o de EJBs podría estar replicado (cluster)=> existen otras tantas instancias de generadores de identificadores El concepto de singleton se puede implementar mediante un objeto distribuido (ej.: RMI o CORBA), pero no sería una solución eficiente El algoritmo anterior funciona aún habiendo más de una instancia del generador de identificadores Observar la línea XXX (se relee el valor de lowerentityidentifier cada vez que hay que incrementarlo en k unidades)

9 Estrategia 3: Sequence Blocks (3) Como consecuencia de lo anterior, y dado que la línea XXX y las 3 siguientes constituyen una transacción que lee un valor, lo actualiza en memoria y luego en BD Puede usarse SELECT FOR UDPATE en XXX, o Usar TRANSACTION_SERIALIZABLE para toda la transacción, haciendo n reintentos si la actualización de la fila provoca una SQLException De esta forma funciona tanto en BDs con Pessimistic Locking (que bloquean filas) como con BDs con Optimistic Locking (que generan una SQLException en caso de problemas de concurrencia) Es mejor que getnextidentifier no reciba la conexión, y en su lugar la pida En otro caso, la línea XXX y subsiguientes formarían parte de la misma transacción que la inserción de la nueva fila => la transacción es más larga y la BD mantiene filas bloquedas más tiempo

10 Estrategia 3: Sequence Blocks (y 4) Ventajas El generador de identificadores es reusable Número de accesos a la BD para insertar una nueva fila La mayor parte de las veces sólo 1 (inserción de la nueva fila) Cuando hay que leer un nuevo bloque de identificadores, 3 accesos (2 para leer y actualizar la columna lowerentityidentifier, y 1 para para insertar la nueva fila) Desventajas No se garantiza un orden de generación de identificadores La implementación es más compleja

11 Estrategia 4: UUID (1) UUID = Universally Unique IDentifier Generar la siguiente cadena de caracteres (1) (2) (3) (4) XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX (1) System.currentTimeMillis() (2) Dirección IP (3) System.identityHashCode(this) (4) Número aleatorio obtenido con java.security.securerandom NOTAS Cada campo es de 8 caracteres y está codificado en hexadecimal (2) y (3) sólo necesitan calcularse una vez

12 Estrategia 4: UUID (y 2) Ventajas La clase que implemente esta estrategia no necesita tomar ninguna precaución aunque se use en un entorno en cluster La generación de identificadores se hace en memoria Desventajas Las claves generadas son identificadores de caracteres (de 32 caracteres) => los índices que se construyan sobre estas claves no serán tan eficientes como si fuesen numéricos

13 Estrategia 4: Procedimientos almacenados (1) En esta estrategia, se implementa el método create del DAO invocando un procedimiento almacenado para insertar la fila... CallableStatement call = con.preparecall( CALL insertaccount (?,?,?) ); call.setlong(1, accoutvo.getuseridentifier().longvalue()); call.setdouble(2, accountvo.getbalance()); call.registeroutparameter(3, java.sql.types.bigint); call.execute(); accountidentifier = new Long(call.getLong(3)); return new AccountVO(accountIdentifier, accountvo.getuseridentifier(), accountvo.getbalance());

14 Estrategia 4: Procedimientos almacenados (y 2) Esta estrategia funciona tanto con BDs que proporcionan generadores de identificadores como columnas-contador Si la BD no proporciona ninguno de estos mecanismos, se puede usar un tabla como la de la estrategia 2 (ahora no sería ineficiente, dado que la lectura y actualización de la fila se hace dentro del procedimiento almacenado) Ventajas Fácil de implementar Sólo se hace un acceso a la BD Desventajas Se necesita escribir un procedimiento almacenado para cada BD, dado que la sintaxis de los procedimientos almacenados no es portable Típicamente estará dentro del script de creación de tablas

15 JDBC 3.0 permitirá Estrategia 5 (1) Devolver el identificador de una fila recién insertada Se asume que la BD puede asociar un generador de identificadores a una columna (normalmente lo permiten casi todas) Permitirá implementar el método create en el DAO de manera portable y sin usar procedimientos almacenados Ejemplo... PreparedStatement preparedstatement = con.preparedstatement( "INSERT INTO Account (usrid, balance) VALUES (?,?)", Statement.RETURN_GENERATED_KEYS); preparedstatement.setlong(1, accoutvo.getuseridentifier().longvalue()); preparedstatement.setdouble(2, accountvo.getbalance()); preparedstatement.executeupdate();

16 Estrategia 5 (y 2) Ejemplo (cont) Long accountidentifier; ResultSet resultset = preparedstatement.getgeneratedkeys(); if (resultset.next()) { accountidentifier = new Long(resultSet.getLong(1)); } else { throw... } return new AccountVO(accountIdentifier, accountvo.getuseridentifier(), accountvo.getbalance()); Ventajas Tan eficiente como la estrategia de procedimientos almacenados (1 sólo acceso) Totalmente portable Será la solución definitiva!

5.6.8 Estrategias de generación de claves primarias

5.6.8 Estrategias de generación de claves primarias 5.6.8 Estrategias de generación de claves primarias Estrategias de generación de claves primarias (1) En el apartado 2.3.4 se estudiaron varias estrategias de generación de claves primarias Usar el mecanismo

Más detalles

5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniBank con EJB

5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniBank con EJB 5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniBank con EJB Introducción La arquitectura de la capa modelo de MiniBank es igual que la de MiniPortal Paquetes nuevos en la capa modelo

Más detalles

2.2 Caso de estudio: diseño e implementación de la capa modelo de MiniBank con JDBC. Patrones usados

2.2 Caso de estudio: diseño e implementación de la capa modelo de MiniBank con JDBC. Patrones usados 2.2 Caso de estudio: diseño e implementación de la capa modelo de MiniBank con JDBC. Patrones usados Qué es MiniBank? Un sencillo ejemplo de una aplicación bancaria con los siguientes casos de uso Crear

Más detalles

JDBC. Una mini-introducci. introducción

JDBC. Una mini-introducci. introducción JDBC Una mini-introducci introducción Introducción JDBC (Java DataBase Connectivity) Protocolo para utilizar bases de datos relacionales desde Java Se basa en la utilización n de drivers que implementan

Más detalles

2.2 Caso de estudio: diseño e implementación de la capa modelo de MiniBank con JDBC. Patrones usados

2.2 Caso de estudio: diseño e implementación de la capa modelo de MiniBank con JDBC. Patrones usados 2.2 Caso de estudio: diseño e implementación de la capa modelo de MiniBank con JDBC. Patrones usados Qué es MiniBank? Un sencillo ejemplo de una aplicación bancaria con los siguientes casos de uso Crear

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión XI JDBC... 7 Conexión... 8 Fases del acceso a BBDD... 9 Establecer conexión con BBDD... 10 Crear

Más detalles

5.2 Introducción a EJB

5.2 Introducción a EJB 5.2 Introducción a EJB Java RMI como tecnología para la construcción de aplicaciones empresariales (1) Aspectos positivos Permite separar físicamente la vista y el controlador del modelo de manera sencilla

Más detalles

Laboratorio de Programación III

Laboratorio de Programación III Laboratorio de Programación III Profesor René Sandoval Ingeniero (E) Informática rene2160@gmail.com Qué es JDBC? JDBC es el acrónimo de Java DataBase Conectivity Es una especificación de un conjunto de

Más detalles

Práctica sobre compartición de instancias remotas.

Práctica sobre compartición de instancias remotas. Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta

Más detalles

Conexión JDBC. Tecnicatura Superior en Programación UTN-FRM Programación 3

Conexión JDBC. Tecnicatura Superior en Programación UTN-FRM Programación 3 Conexión JDBC La presente guía presenta las bases de la implementación de conexiones JDBC (Conector JAVA a base de datos). Los conocimientos básicos que se deben tener son: Java. Motores de Base de Datos.

Más detalles

Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Base de Datos JDBC Unidad: 1 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Indice Instalación de JDBC. Tipos de controladores. Conexión con la base

Más detalles

5.3 Diseño por capas con Servicios Web

5.3 Diseño por capas con Servicios Web 5.3 Diseño por capas con Servicios Web Diseño por capas Misma idea que en CORBA Interfaz de usuario (no WS) Capa de traducción y delegación (WS) Capa de traducción y delegación (WS) IDL Capa de lógica

Más detalles

Tema V. JDBC. Desarrollo de Aplicaciones para Internet Curso 12 13

Tema V. JDBC. Desarrollo de Aplicaciones para Internet Curso 12 13 Tema V. JDBC Desarrollo de Aplicaciones para Internet Curso 12 13 Índice 1.Introducción 2.Arquitectura 3.Consultas SQL i. Carga de Drivers ii. Conexión iii.consulta iv.resultados 4.Tipos de Datos 5.Transacciones

Más detalles

Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL

Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL ) 3 puntos) Considérese un fichero secuencial con un índice con asociación estática. El índice es primario y está organizado sobre una

Más detalles

APÉNDICE A: ACCESO A UNA BASE DE DATOS CON JDBC

APÉNDICE A: ACCESO A UNA BASE DE DATOS CON JDBC APÉNDICE A: ACCESO A UNA BASE DE DATOS CON JDBC Lo primero que hay que saber es que la manera más conveniente de acceder a una base de datos utilizando el lenguaje de programación JAVA, es a través del

Más detalles

3.2 Diseño de la Capa Modelo

3.2 Diseño de la Capa Modelo 3.2 Diseño de la Capa Modelo Objetivo Aprender un método para diseñar sistemáticamente la capa modelo de una aplicación El método se apoya en prácticas de diseño consolidadas El método es independiente

Más detalles

Aplicaciones Web (Curso 2014/2015)

Aplicaciones Web (Curso 2014/2015) Bases de Datos (III) Aplicaciones Web (Curso 2014/2015) Jesús Arias Fisteus // jaf@it.uc3m.es Bases de Datos (III) p. 1 JDBC: Acceso a bases de datos relacionales en Java Bases de Datos (III) p. 2 JDBC

Más detalles

Computación Web (Curso 2015/2016)

Computación Web (Curso 2015/2016) Bases de Datos (III) Computación Web (Curso 2015/2016) Jesús Arias Fisteus // jaf@it.uc3m.es Bases de Datos (III) p. 1 JDBC: Acceso a bases de datos relacionales en Java Bases de Datos (III) p. 2 JDBC

Más detalles

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas

Más detalles

Sentencias complementarias + Disparadores

Sentencias complementarias + Disparadores Base de Datos I Sentencias complementarias + Disparadores Objetivos: Elaborar sentencias especiales con diferentes usos y componentes. Introducción: Siempre hay tipos de consultas o transacciones especiales

Más detalles

Modelamiento y Diseño de Base de Datos

Modelamiento y Diseño de Base de Datos Modelamiento y Diseño de Base de Datos Sentencias complementarias + Disparadores Objetivos: Elaborar sentencias especiales con diferentes usos y componentes. Introducción: Siempre hay tipos de consultas

Más detalles

Acceso a bases de datos desde Java: JDBC

Acceso a bases de datos desde Java: JDBC Acceso a bases de datos desde Java: JDBC Jesús Arias Fisteus Aplicaciones Web (2016/17) Aplicaciones Web (2016/17) Acceso a bases de datos desde Java: JDBC 1 Parte I JDBC Aplicaciones Web (2016/17) Acceso

Más detalles

JDBC: Java DataBase Conectivity

JDBC: Java DataBase Conectivity JDBC: Java DataBase Conectivity Integrantes: Pablo Benaprés M. Tomás Girardi J. Roberto Vargas H. Introducción Que es? API Driver Java Interactúa a con bases de datos Ejecuta consultas Recibe resultados

Más detalles

18. Interfaces Declaración de una interfaz

18. Interfaces Declaración de una interfaz Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir

Más detalles

relacionales Arquitecturas Distribuidas 09/10

relacionales Arquitecturas Distribuidas 09/10 Tema 4. V Introducción a las Bases de Datos relacionales Arquitecturas Distribuidas 09/10 1 V. Introducción a las Bases de Datos relacionales 1. Descripción del concepto de base de datos (BD) relacional

Más detalles

CUBE, ROLLUP, GROUPING del SQL

CUBE, ROLLUP, GROUPING del SQL CUBE, ROLLUP, GROUPING del SQL Qué preguntas solucionamos con CUBE y ROLLUP? Vamos a trabajar con la siguiente tabla por no complicar los ejemplos ni el código SQL. Además una tabla como esta aunque no

Más detalles

Examen de Ficheros y bases de datos (cód. 520) Ingeniería Técnica en Informática de Gestión Convocatoria de septiembre. II Parcial

Examen de Ficheros y bases de datos (cód. 520) Ingeniería Técnica en Informática de Gestión Convocatoria de septiembre. II Parcial Examen de Ficheros y bases de datos (cód. 520) Ingeniería Técnica en Informática de Gestión Convocatoria de septiembre II Parcial 1) (2,9 puntos). a) (0,8 puntos) Constrúyase un árbol B+ mínimo con n=5

Más detalles

Tópicos Avanzados de Programación (TAP3501)

Tópicos Avanzados de Programación (TAP3501) DuocUC Tópicos Avanzados de Programación (TAP3501) Ariel Alexis Fierro Sáez afierrosaez@gmail.com Uso JDBC en Java Uso JDBC en aplicaciones java Class.forName("driver") Cargar/Registrar el driver JDBC

Más detalles

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª INTRODUCCIÓN A JAVA QUÉ ES JAVA Introducción ORGANIZACIÓN JME (Mobile / Wireless) JSE (Core / Desktop) JEE (Enterprise / Server) LA HISTORIA El comienzo Aparición de Internet Por qué el nombre JAVA DESARROLLO,

Más detalles

Java y Access. 4. En nuestra pantalla aparecerá ahora la pestaña DSN usuario seleccionada. Para crear un nuevo perfil haremos click en Agregar...

Java y Access. 4. En nuestra pantalla aparecerá ahora la pestaña DSN usuario seleccionada. Para crear un nuevo perfil haremos click en Agregar... Java y Access La capacidad para acceder a bases de datos desde Java la ofrece la API JDBC (Java DataBase Conectivity). JDBC es un estándar para manejar bases de datos en Java. ODBC es un estándar de Windows

Más detalles

SQL: Vistas, Triggers, y Procedimientos Almacenados

SQL: Vistas, Triggers, y Procedimientos Almacenados SQL: Vistas, Triggers, y Procedimientos Almacenados Dr. Gerardo Rossel Bases de Datos 1C 2018 PostgreSQL Aclaración En estas diapositivas nos basaremos principalmente en PostgreSQL. Diferentes motores

Más detalles

Experto Universitario Java Enterprise Spring

Experto Universitario Java Enterprise Spring Sesión 2: 1 Puntos a tratar Por qué usar para acceso a datos Problemas típicos de JDBC JDBC con JPA con Transaccionalidad declarativa 2 Por qué usar el acceso a datos de no nos obliga a usar su módulo

Más detalles

JAVA 5. Conexión con Bases de Datos

JAVA 5. Conexión con Bases de Datos JAVA 5. Conexión con Bases de Datos http://giig.ugr.es/ mgea/docencia/diu Ultima actualización: 2/Dic/2004 1 Conexión con Bases de Datos 1. Conexión con Base de Datos: controlador 2. Componentes gestión

Más detalles

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 Índice INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 1.1 PROGRAMA Y LENGUAJESDE PROGRAMACIÓN...12 1.1.1 EL LENGUAJE JAVA...13 1.1.2 EL JDK...15 1.1.3 LOS PROGRAMAS EN JAVA...16

Más detalles

Pruebas en PL/SQL 13/12/2013. Pruebas en PL/SQL. Grupo de Ingeniería del Software y Bases de Datos. Universidad de Sevilla diciembre 2013

Pruebas en PL/SQL 13/12/2013. Pruebas en PL/SQL. Grupo de Ingeniería del Software y Bases de Datos. Universidad de Sevilla diciembre 2013 13/12/2013 Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1. Características del 2. Problemas de la industria del 3. La necesidad de una ingeniería

Más detalles

JDBC. Francisco Javier Solans Benedí Software Developper francisco.solans@neodoo.es

JDBC. Francisco Javier Solans Benedí Software Developper francisco.solans@neodoo.es JDBC Francisco Javier Solans Benedí Software Developper francisco.solans@neodoo.es Definición Es la interfaz Java estándar para acceder a base de datos. Neodoo Microsystems S.L. 2 Configuración Para usar

Más detalles

Acceso a bases de datos desde Java: JDBC

Acceso a bases de datos desde Java: JDBC Acceso a bases de datos desde Java: JDBC Jesús Arias Fisteus Computación Web (2017/18) Computación Web (2017/18) Acceso a bases de datos desde Java: JDBC 1 Parte I JDBC Computación Web (2017/18) Acceso

Más detalles

Prácticas Ingeniería del Software 3º

Prácticas Ingeniería del Software 3º Prácticas Ingeniería del Software 3º JDBC JAVA con Bases de Datos UNIVERSIDAD DE CASTILLA-LA MANCHA ES de Informática de Ciudad Real Introducción JDBC es una especificación de un conjunto de clases y métodos

Más detalles

1. Se usará la Base de Datos llamada. 2. Borrar la tabla CtasBanc anterior y crearla: 5.1 Procedimientos y Funciones Almacenados SQL Server

1. Se usará la Base de Datos llamada. 2. Borrar la tabla CtasBanc anterior y crearla: 5.1 Procedimientos y Funciones Almacenados SQL Server SQL Server 1. Se usará la Base de Datos llamada LaConsentida. use LaConsentida 2. Borrar la tabla CtasBanc anterior y crearla: create table CtasBanc (IdCuenta int identity primary key, tipo char(10), saldo

Más detalles

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE PRÓLOGO... 13 APECTOS BÁSICOS DE JAVA... 15 1.1. LA MÁQUINA VIRTUAL JAVA... 15 1.2. EDICIONES JAVA... 16 1.3. ESTRUCTURA DE UN PROGRAMA JAVA... 16 1.4. EL MÉTODO

Más detalles

BASES DE DATOS. Ingeniería Informática. Matemáticas e Informática

BASES DE DATOS. Ingeniería Informática. Matemáticas e Informática BASES DE DATOS Ingeniería Informática Matemáticas e Informática BASES DE DATOS Acceso a Bases de datos en Java DIAPOSITIVA 1 BASES DE DATOS Contacto con Prof. Alejandro Rodríguez Email: alejandro.rg@upm.es

Más detalles

Examen de Ficheros y bases de datos ITIS Convocatoria de junio II PARCIAL

Examen de Ficheros y bases de datos ITIS Convocatoria de junio II PARCIAL Examen de Ficheros y bases de datos ITIS Convocatoria de junio II PARCIAL ) (4,3 puntos) Considérese un fichero secuencial indexado con un índice numérico (con valores entre 0 y 65.535) con duplicados

Más detalles

Acceso a BDs en Java: JDBC

Acceso a BDs en Java: JDBC Acceso a BDs en Java: JDBC Bases de Datos II 1 Introducción Para hacer una aplicación de BDs en Java se necesita disponer del driver adecuado para el SGBD. En nuestro caso necesitamos el de mysql. http://dev.mysql.com/downloads/connector/j/3.0.html

Más detalles

JAVA 7 Los fundamentos del lenguaje Java

JAVA 7 Los fundamentos del lenguaje Java Presentación 1. Historia 9 1.1 Por qué Java? 9 1.2 Objetivos del diseño de Java 10 1.3 Auge de Java 11 2. Características de Java 12 2.1 El lenguaje de programación Java 12 2.1.1 Sencillo 13 2.1.2 Orientado

Más detalles

JDBC. Aplicaciones Distribuidas

JDBC. Aplicaciones Distribuidas JDBC Aplicaciones Distribuidas Contenido Definición. Arquitectura. Driver. Conexión. Consultas. Transacciones. Pool de conexiones. Patrón DAO. 2 JDBC Java DataBase Connectivity API Java para ejecutar consultas

Más detalles

3.8 Patrón Default servant. Políticas del POA asociadas

3.8 Patrón Default servant. Políticas del POA asociadas 3.8 Patrón Default servant. Políticas del POA asociadas Introducción Cómo minimizar la cantidad de memoria que necesita un servidor para soportar un gran número de objetos? Servant por defecto => permite

Más detalles

Introducción a SQL (DDL)

Introducción a SQL (DDL) Introducción a SQL (DDL) Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2012 Introducción a SQL Objetivos de este tema

Más detalles

Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Base de Datos JDBC Unidad: 1 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Indice Repaso clase anterior Sentencias preparadas PreparedStatement

Más detalles

Value Object (1) Agrupar un conjunto de atributos procedentes de uno o varios objetos del dominio. Data Transfer Object, Replicate Object

Value Object (1) Agrupar un conjunto de atributos procedentes de uno o varios objetos del dominio. Data Transfer Object, Replicate Object 2.3.1 Value Object Value Object (1) Intención Agrupar un conjunto de atributos procedentes de uno o varios objetos del dominio También conocido como Data Transfer Object, Replicate Object Motivación En

Más detalles

Diseño de la capa de datos. Acceso a datos con JDBC

Diseño de la capa de datos. Acceso a datos con JDBC escuela técnica superior de ingeniería informática Diseño de la capa de datos. Acceso a datos con JDBC Departamento de Lenguajes y Sistemas Informáticos Ingeniería del Software II Índice Introducción JDBC

Más detalles

GUÍA DE TRABAJO N 9 - LENGUAJES C# + SQL Educación Media Fortalecida Programación de Software GRADO 11 Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8

GUÍA DE TRABAJO N 9 - LENGUAJES C# + SQL Educación Media Fortalecida Programación de Software GRADO 11 Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8 Página 1 de 8 TEMA: PROCEDIMIENTOS ALMACENADOS EN SQL SERVER OBJETIVO: Adquirir los conocimientos necesarios para desarrollar e implementar procedimientos almacenados utilizando SQL Server y lenguaje C#

Más detalles

Introducción a phpmyadmin

Introducción a phpmyadmin Introducción a phpmyadmin, ejercicio http://idesweb.es/ 1 Introducción a phpmyadmin El propósito del siguiente ejercicio es replicar, más o menos, la base de datos utilizada en los videos de introducción

Más detalles

PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN. actividad Transacciones en MySQL. como requerimiento parcial para acreditar la asignatura de

PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN. actividad Transacciones en MySQL. como requerimiento parcial para acreditar la asignatura de DEXCELENCIA UNIVERSITARIA, FORTALEZA E MEXICO I Z U C A R D E M ATA M O R O S PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN actividad Transacciones en MySQL como requerimiento parcial para acreditar

Más detalles

5.1 Procedimientos y Funciones Almacenados. 5.2 Disparadores (Triggers).

5.1 Procedimientos y Funciones Almacenados. 5.2 Disparadores (Triggers). Unidad 5 SQL Procedural 5.1 Procedimientos y Funciones. 5.2 Disparadores (Triggers). Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 MySQL 1. Se usará la Base de Datos llamada LaConsentida.

Más detalles

PROGRAMACIÓN CON ACCESO A DATOS

PROGRAMACIÓN CON ACCESO A DATOS PROGRAMACIÓN CON ACCESO A DATOS Parte 3 CARRERAS TÉCNICAS 2005 Universitario Autónomo del Sur Contenido 1. Capítulo 5: Acceso a Bases de Datos a. Introducción b. El paquete java.sql c. Consultas de selección

Más detalles

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS SILABO LENGUAJE DE PROGRAMACION ORIENTADO A WEB

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS SILABO LENGUAJE DE PROGRAMACION ORIENTADO A WEB UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS SILABO ASIGNATURA: LENGUAJE DE PROGRAMACION ORIENTADO A WEB 1. DATOS GENERALES 1.1 Departamento : Ingeniería de

Más detalles

Curso Básico de JDBC. Rodolfo Campos Madrid, Septiembre de 2012

Curso Básico de JDBC. Rodolfo Campos  Madrid, Septiembre de 2012 Curso Básico de JDBC Rodolfo Campos http://http://www.smartcamp.es/~camposer/indra/jdbc/ Madrid, Septiembre de 2012 Introducción JDBC es un conjunto de clases e interfaces Java que permiten la manipulación

Más detalles

Acceso a BD desde Java. JDBC

Acceso a BD desde Java. JDBC JDBC (Java DataBase Connectivity) es una interfaz para programar la ejecución de sentencias SQL sobre SGBDR El API JDBC facilita programar el acceso a BD sin que se tenga en cuenta a que Servidor nos dirigimos

Más detalles

Laboratorios de BASES DE DATOS. (I.T. Informática)

Laboratorios de BASES DE DATOS. (I.T. Informática) Laboratorios de BASES DE DATOS. (I.T. Informática) Gestor de bases de datos ORACLE M. Martínez, C. Hernández, C. Cuesta Dpto. de Informática (U. Valladolid) Base de datos de ejemplo EMPLEADOS (NOMBRE,

Más detalles

Tema 4. DML (Parte I)

Tema 4. DML (Parte I) Tema 4 DML (Parte I) IES Francisco Romero Vargas Departamento de Informática Tema 4. DML (I). Página 1 de 9 1. Introducción Un Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un

Más detalles

Objetivos y Temario CURSO JAVA 7

Objetivos y Temario CURSO JAVA 7 Objetivos y Temario CURSO JAVA 7 OBJETIVOS Este curso se dirige a todos aquellos informáticos que quieran desarrollar en Java. Tanto si es principiante como si ya tiene experiencia con otro lenguaje, el

Más detalles

Value Object (1) Agrupar un conjunto de atributos procedentes de uno o varios objetos del dominio

Value Object (1) Agrupar un conjunto de atributos procedentes de uno o varios objetos del dominio 2.3.1 Value Object Value Object (1) Intención Agrupar un conjunto de atributos procedentes de uno o varios objetos del dominio También conocido como Recientemente se le ha cambiado el nombre a Transfer

Más detalles

GUÍA DE TRABAJO GRADO 11. Articulación SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

GUÍA DE TRABAJO GRADO 11. Articulación SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 Página 1 de 6 Tema: PROCEDIMIENTOS ALMACENADOS SQL SERVER Objetivo: Adquirir los conocimientos necesarios para desarrollar e implementar procedimientos almacenados utilizando SQL Server y lenguaje C# I.

Más detalles

Los disparadores pueden emplearse para muchas cosas diferentes, incluyendo:

Los disparadores pueden emplearse para muchas cosas diferentes, incluyendo: Triggers en Oracle Nuestro objetivo para este artículo es intentar mostrar un breve panorama de cómo crear TRIGGERS (disparadores o gatilladores [1]) para bases de datos bajo Oracle 8, asi como describir

Más detalles

SQL SERVER APLICADO (SSA010)

SQL SERVER APLICADO (SSA010) DuocUC SQL SERVER APLICADO (SSA010) Ariel Alexis Fierro Sáez afierrosaez@gmail.com Funciones en transact-sql SQL Server proporciona funciones integradas y permite crear funciones definidas por el usuario.

Más detalles

Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez

Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción a la Recursión

Más detalles

Pruebas en PL/SQL 12/12/2012. Pruebas en PL/SQL. Grupo de Ingeniería del Software y Bases de Datos. Universidad de Sevilla diciembre 2012

Pruebas en PL/SQL 12/12/2012. Pruebas en PL/SQL. Grupo de Ingeniería del Software y Bases de Datos. Universidad de Sevilla diciembre 2012 12/12/2012 Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos 1. Características del 2. Problemas de la industria del 3. La necesidad de una ingeniería

Más detalles

Unidad IV. Aplicaciones sobre Base de Datos

Unidad IV. Aplicaciones sobre Base de Datos Clase:013 1 Unidad IV Aplicaciones sobre Base de Datos 2 Agenda PROGRAMA DE MANIPULACION DE BASE ANDROID SQLITE SQLITE OpenHelper SQLITE Database Cursor Ejemplos Agregar controles según campo Usar query

Más detalles

ARTE I BASE DE DATOS EN JAVA

ARTE I BASE DE DATOS EN JAVA RACTICA N 18 PARTEP PRACTICA ARTE I BASE DE DATOS EN JAVA I OBJETIVOS Aprender a pasar del Modelo a la Implementación Lograr que el alumno configure una base de datos en JAVA. Comprender el funcionamiento

Más detalles

5.6.3 Session Facade

5.6.3 Session Facade 5.6.3 Session Facade Session Facade (1) Intención Proporcionar una interfaz sencilla que soporta un conjunto de casos de uso relacionados Motivación La explicada en el tema 2: proporcionar una interfaz

Más detalles

El primer paso a realizar es crear la referencia JNDI para el origen de datos en el servidor local TomCat.

El primer paso a realizar es crear la referencia JNDI para el origen de datos en el servidor local TomCat. Conectar Base de Datos MySQL con JSF El primer paso a realizar es crear la referencia JNDI para el origen de datos en el servidor local TomCat. Comentar que antes, tenemos que crear la Base de Datos Wiki

Más detalles

Programación de sistemas Listas enlazadas

Programación de sistemas Listas enlazadas Programación de sistemas Listas enlazadas Departamento de Ingeniería Telemática 1 Contenidos *** Introducción a los genéricos Estructuras de datos Listas enlazadas La clase Node La clase LinkedList Ventajas

Más detalles

JAVA 8 Los fundamentos del lenguaje Java (con ejercicios prácticos corregidos)

JAVA 8 Los fundamentos del lenguaje Java (con ejercicios prácticos corregidos) Presentación 1. Historia 11 1.1 Por qué Java? 11 1.2 Objetivos del diseño de Java 12 1.3 Auge de Java 13 2. Características de Java 14 2.1 El lenguaje de programación Java 14 2.1.1 Sencillo 15 2.1.2 Orientado

Más detalles

Computación Web (Curso 2013/2014)

Computación Web (Curso 2013/2014) Bases de Datos (III) Computación Web (Curso 2013/2014) Jesús Arias Fisteus // jaf@it.uc3m.es Bases de Datos (III) p. 1 JDBC: Acceso a bases de datos relacionales en Java Bases de Datos (III) p. 2 JDBC

Más detalles

Diseño de la capa de datos. De objetos a datos

Diseño de la capa de datos. De objetos a datos escuela técnica superior de ingeniería informática Diseño de la capa de datos. De objetos a datos Departamento de Lenguajes y Sistemas Informáticos Ingeniería del Software II Índice Introducción Notación

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

Practica 7 Conexión a su base de datos. Optativa II

Practica 7 Conexión a su base de datos. Optativa II 1. Inicie sesión en su manejador de base de datos y agregue los procedimientos de almacenados mediante los cuales manejaremos las tablas agregadas en la práctica anterior. 2. Colóquese en su base de datos.

Más detalles

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 ÍNDICE Introducción... XI Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 Características y novedades de Access 2010... 1 Comienzo rápido del trabajo y seguimiento de la información...

Más detalles

Python desde Cero: Bases de Datos

Python desde Cero: Bases de Datos http://codehero.co/python-desde-cero-bases-de-datos/ Python desde Cero: Bases de Datos Hoy, vamos a aprender todo lo relacionado con el módulo MySQLdb, en otras palabras, aprenderemos a conectarnos a una

Más detalles

mayo de 2008 Persistencia

mayo de 2008 Persistencia mayo de 2008 Persistencia Mecanismos de Almacenamiento BDO: No se necesita servicios de persistencia. BDR: Se requiere un servicio de correspondencia entre objetos y relaciones. XML, archivos, BD jerárquicas,

Más detalles

Asignatura: Base de Datos FA.C.E.N.A. - UNNE Cursado 2011

Asignatura: Base de Datos FA.C.E.N.A. - UNNE Cursado 2011 Asignatura: Base de Datos FA.C.E.N.A. - UNNE Cursado 2011 http://ww.base-exa-unne.com.ar http://exa.unne.edu.ar/informatica/base_de_datos/informacion.html Tema 10: El SQL en general Profesor Esp. Juan

Más detalles

10. JDBC. 10. JDBC Introducción. java.sql

10. JDBC. 10. JDBC Introducción. java.sql 10 JDBC 287 10 JDBC Introducción javasql JDBC(Java DataBase Connectivity), consiste en un conjunto de clases e interfaces Java que permiten desarrollar aplicaciones de acceso a Bases de Datos JDBC envía

Más detalles

Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar:

Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar: Trigger Un trigger(o desencadenador) es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos. Los triggers o disparadores

Más detalles

UNIVERSIDAD DISTRITAL FRANCSICO JOSE DE CALDAS FACULTAD DE INGENIERIA INGENIERIA DE SISTEMAS PROGRAMACION AVANZADA TALLER DE CONEXIÓN A BASES DE DATOS

UNIVERSIDAD DISTRITAL FRANCSICO JOSE DE CALDAS FACULTAD DE INGENIERIA INGENIERIA DE SISTEMAS PROGRAMACION AVANZADA TALLER DE CONEXIÓN A BASES DE DATOS TALLER DE CONEXIÓN A BASES DE DATOS 1. Cree un nuevo proyecto Java Aplication 2. Descargue el respectivo driver para conectarse a una BD Derby. El driver JDBC para Derby: derbyclient.jar 3. Agregue el

Más detalles

Diseño de bases de datos

Diseño de bases de datos Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes sn. 41012 Sevilla TlfFax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es Diseño

Más detalles

Programación Orientada a Objetos II. La Plataforma JDBC

Programación Orientada a Objetos II. La Plataforma JDBC Programación Orientada a Objetos II La Plataforma JDBC Introducción a (JDBC) Java Database Connectivity El API JDBC permite acceder a cualquier tipo de datos tabulares y comúnmente se utiliza para acceder

Más detalles

NORMAS PARA LA ENTREGA DE LOS LABORATORIOS

NORMAS PARA LA ENTREGA DE LOS LABORATORIOS Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Bases de Datos I - Laboratorio # 5 - SQL 3: Conexión de Programas Java con DBMS Entrega: Sábado, 29 de Noviembre de 2014 NORMAS PARA

Más detalles

Examen de Introducción al Software (Ingeniería Informática)

Examen de Introducción al Software (Ingeniería Informática) Examen de Introducción al Software (Ingeniería Informática) Febrero 2011 Primera parte (5 puntos, 50% nota del examen) 1) Escribir en Java el siguiente algoritmo descrito en pseudocódigo, que calcula los

Más detalles

Tema 1. Introducción a MySQL. José Muñoz Jimeno Octubre 2015

Tema 1. Introducción a MySQL. José Muñoz Jimeno Octubre 2015 Tema 1. Introducción a MySQL José Muñoz Jimeno Octubre 2015 Control de cambios Versión Fecha Comentarios 1.0 21/05/2015 Primera versión para el curso Introducción a la administración de MySQL en el COITCV

Más detalles

Desarrollo de Software con

Desarrollo de Software con Desarrollo de Software con Antonio J. Vélez Q. Universidad del Valle Sede Palmira Requerimientos de Software Java 2 SE Development Kit java.sun.com/javase Java EE 5 SDK java.sun.com/javaee Netbeans (IDE)

Más detalles

Índice. iii. Objetivos... 24

Índice. iii. Objetivos... 24 Índice Objetivos... 2 1: Modelación de base de datos... 2 2: Ejemplo de un caso de negocios... 3 2.1: Requerimientos de la aplicación... 4 2.2: Características de flujo de información... 4 2.3: Diagrama

Más detalles

Esquema básico de una Tabla de Dispersión

Esquema básico de una Tabla de Dispersión 3 Tablas de Dispersión Estructura de datos para gestionar colecciones de elementos donde la búsqueda de un elemento puede hacerse en O(1) en un alto porcentaje de casos - mejora el tiempo de búsqueda en

Más detalles

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT Introducción Objetivos I-2 Objetivos del Curso I-3 Oracle11g - 12cI-5 Oracle Database 11g - 12cI-6 Oracle Application Server 11g - 12cI-7 Oracle Enterprise Manager 11g - 12cGrid Control I-8 Sistema de

Más detalles

PHP Y BASES DE DATOS. Introducción a SQL

PHP Y BASES DE DATOS. Introducción a SQL PHP Y BASES DE DATOS M.I María Luisa González Ramírez Introducción a SQL SQL es el lenguaje usado para interactuar con las base de datos. Es un lenguaje normalizado, utilizado por los diferentes motores

Más detalles

Diseño Basado en Componentes Curso 2008 / 09

Diseño Basado en Componentes Curso 2008 / 09 Ejemplo de Modelo Diseño Basado en Componentes Construcción de componentes utilizando VB.NET (Parte I) Ingeniería Informática Universidad Carlos III de Madrid Diseño Basado en Componentes Atributos miembro

Más detalles

Fundamentos de Bases de Datos. Práctica 8.

Fundamentos de Bases de Datos. Práctica 8. Fundamentos de Bases de Datos. Práctica 8. Profesor: M.I. Gerardo Avilés Rosas gar@ciencias.unam.mx Laboratorio: Carlos Augusto Escalona Navarro caen@ciencias.unam.mx 8 de octubre de 2018 Se dan a conocer

Más detalles

Programación de sistemas Árboles

Programación de sistemas Árboles Programación de sistemas Árboles Departamento de Ingeniería Telemática 1 Contenidos Concepto de árbol Terminología Implementación Casos especiales Árboles binarios de búsqueda Montículos (heaps) 2 Concepto

Más detalles