Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de...
-
Upload
deifilia-carranco -
Category
Documents
-
view
5 -
download
1
Transcript of Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de...
![Page 1: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/1.jpg)
Esquema de Mapeo de Base de Datos Relacionales a Objetos
Luis José Muñiz RascadoPrograma de Genómica ComputacionalCentro de Ciencias Genómicas UNAM
1
![Page 2: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/2.jpg)
Contenido
• Introducción– Cómo funciona JDBC – Propuestas de Solución– Qué es el Mapeo Objeto-Relacional?
• Qué es iBATIS?– Características de iBATIS– Pros y Contras– Cómo funciona iBATIS– Arquitectura de iBATIS– Extraer e Insertar Datos– Borrar y Actualizar
• Caso de Éxito– RegulonDB
2
![Page 3: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/3.jpg)
Introducción
3
![Page 4: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/4.jpg)
Cómo funciona JDBC
4
Solicitud SQL
Comunicación Viva conla Base de Datos mientra sacamos los datos
![Page 5: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/5.jpg)
5
Manipulación del SQL hay que concatenar cada línea
![Page 6: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/6.jpg)
6
![Page 7: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/7.jpg)
Propuestas de Solución
1. Hibernatehttp://www.hibernate.org
2. Java Persistence APIhttp://java.sun.com/javaee/technologies/persistence.jsp
3. iBATIShttp://ibatis.apache.org/
7
![Page 8: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/8.jpg)
Qué es el Mapeo Objeto-Relacional?
88
Solicitud de SQL
SQL
![Page 9: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/9.jpg)
Qué es iBATIS?
iBATIS es un framework mapeador de datos que se encuentran contenidos en base de datos y obtener
objetos a partir de los datos relacionales.
Fue desarrollado por Clinton Begin y el código fuente es administrado por la Apache Software Fundation
(http://ibatis.apache.org/).
9
![Page 10: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/10.jpg)
Características de iBATIS
1. Mapeo basado en SQL. 2. Trabaja con esquemas de base de datos
sencillos y complejos .3. Construcción de SQL dinámico o al vuelo
apartar de etiquetas de XML.4. Soporte de transacciones.5. Minima dependencia de librerías de terceros
y bajo consumo de recursos.6. Intregación con otros frameworks (Spring).
10
![Page 11: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/11.jpg)
Pros y Contras
• Pros1. Se puede utilizar cualquier tipo de sentencia SQL:
UNION, OUTER JOIN.2. Independencia de la base de datos.3. Reusabilidad de sentencias SQL y objetos de resultados.4. Mayor flexibilidad en la manipulación de SQL.
• Contras1. Tiempo en modelado de los objetos que contendrán los
resultados de SQL.2. Tiempo en configurar el ambiente para usar iBATIS.
11
![Page 12: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/12.jpg)
Cómo funciona iBATIS
12
Solicitud de ID de SQL
Solicitud SQL
![Page 13: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/13.jpg)
Arquitectura
de iBATIS
13
sql-map-config.xml
sql-map.xml
Objeto.java
ibatis.jar
log4j.jar
commons-dbcp.jar
Ibatis.java
![Page 14: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/14.jpg)
Esquema de Base de Datos(tienda)
14
![Page 15: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/15.jpg)
sql-map-config.xml<sqlMapConfig>
<transactionManager type="JDBC”>
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
<property name="JDBC.ConnectionURL"
value="jdbc:derby:/Users/luisjose/tienda"/>
<property name="JDBC.Username" value=”usuario"/>
<property name="JDBC.Password" value=”usuario"/>
</dataSource>
</transactionManager>
<!-- SqlMaps -->
<sqlMap resource=”ibatis.xml.SqlMap.xml" />
</sqlMapConfig>
15
![Page 16: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/16.jpg)
sql-map.xml
<sqlMap namespace="SqlMap"><!– SQL que busca los datos de un cliente --> <select id="busca_cliente_nombre" resultClass="ibatis.maps.Factura"> SELECT DISTINCT id_cliente AS id, nombre_cliente AS cliente, direccion_cliente AS direccion FROM nombre_cliente = #nombreCliente# </select></sqlMap>
16
![Page 17: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/17.jpg)
<sqlMap namespace="SqlMap"><!– SQL que busca los datos de un cliente --> <select id="busca_cliente_nombre"
resultClass="ibatis.maps.Factura"> SELECT DISTINCT id_cliente AS id, nombre_cliente AS cliente, direccion_cliente AS direccion FROM nombre_cliente = #nombreCliente# </select></sqlMap>
Cliente.java y SQL
17
![Page 18: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/18.jpg)
Ibatis.javaprivate static SqlMapClient sqlMap;
static {
try {
String resource = "ibatis/sql-map-config.xml";
Reader reader = Resources.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
}
catch(Exception e) {
e.printStackTrace();
}
}
public static SqlMapClient getSqlMapInstance() {
return sqlMap;
}
18
![Page 19: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/19.jpg)
19
Como Queda Organizado
![Page 20: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/20.jpg)
Extraer
Datos
1. Instanciamos la clase Ibatis que generamos.
// conexión de iBATIS
SqlMapClient sqlMap = Ibatis.getSqlMapInstance();
2. Se solicita que ejecute un identificador de un query , pero…
20
![Page 21: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/21.jpg)
Cliente cliente = sqlMap.queryForObject("busca_cliente_nombre", “luis”);
Resultado de SQL
![Page 22: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/22.jpg)
2222
List clienteList = sqlMap.queryForList("busca_cliente_nombre", “luis”);
Resultado de SQL
![Page 23: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/23.jpg)
if(!(clienteList.isEmpty())) {
for(int x = 0; x < facturaList.size(); x++ ) {
Cliente cliente = (Cliente)clienteList.get(x);
System.out.println(
cliente.getId() + “ “ +
cliente.getCliente() + “ “ +
cliente.getDireccion()
);
} // fin for
} // fin for
23
![Page 24: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/24.jpg)
Ejemplo Extracción de datos
24
![Page 25: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/25.jpg)
25
<!– SQL que inserta cliente --><insert id="insera_cliente" > INSERT INTO CLIENTE(id_cliente, nombre_cliente, direccion_cliente) VALUES( #id:Integer#, #cliente:String#, #direccion:String#) </insert>
Insertar
Datos
![Page 26: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/26.jpg)
26
Cliente cliente = new Cliente();
cliente.setCliente(“luis”);cliente.setDireccion(“dirección conocida”);cliente.setId(14);
// conexión de iBATISSqlMapClient sqlMap = Ibatis.getSqlMapInstance(); sqlMap.insert("insera_cliente", cliente);
![Page 27: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/27.jpg)
Ejemplo de Inserción de Datos
27
![Page 28: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/28.jpg)
Borrar
28
<!– SqlMap --><!– SQL que borra un usuario --><delete id="borrar_cliente"> DELETE FROM CLIENTE WHERE id_cliente = #id# </delete>
// Java// conexión de iBATIS SqlMapClient sqlMap = Ibatis.getSqlMapInstance(); sqlMap.delete("borrar_cliente”, 14);
![Page 29: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/29.jpg)
Ejemplo de Borrado de Datos
29
![Page 30: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/30.jpg)
Actualizar
30
<!– SqlMap <!– SQL que actualiza --><update id="actualiza_cliente"> UPDATE CLIENTE SET nombre_cliente = #cliente#, direccion_cliente = #direccion# WHERE id_cliente = #id# </update>
// javaCliente cliente = new Cliente();
cliente.setCliente(“luis josé”); cliente.setDireccion(“av. Central # 1, zacatepec morelos”); cliente.setId(14); // conexion a RegulonDB a travez de iBATIS SqlMapClient sqlMap = Ibatis.getSqlMapInstance(); sqlMap.update("actualiza_cliente", cliente);
![Page 31: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/31.jpg)
Ejemplo de Actualización de Datos
31
![Page 32: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/32.jpg)
Caso de Éxito:
RegulonDB, es una base de datos sobre el proceso de transcripción de la bacteria E. coli.
(http://regulondb.ccg.unam.mx/)
1.Las herramientas de RegulonDB estaban muy individualizadas.
2.Colocar un sitio espejo en Purdue University (EcoliHub, http:/www.ecolicommunity.org/).
32
![Page 33: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/33.jpg)
33
Las herramientas de RegulonDB estaban muy individualizadas.
![Page 34: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/34.jpg)
34
![Page 35: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/35.jpg)
Colocar un sitio espejo en Purdue University (EcoliHub).
35
![Page 36: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/36.jpg)
36
![Page 37: Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM ljmuniz@ccg.unam.mx.](https://reader034.fdocuments.es/reader034/viewer/2022051613/54f6bc6d4a7959274d8b4d6b/html5/thumbnails/37.jpg)
Gracias
37