Date post: | 11-Jan-2017 |
Category: |
Technology |
Upload: | cjava-peru |
View: | 143 times |
Download: | 0 times |
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Del modelo relacional a JSON con Node.jsDan McGhanOracle Developer AdvocateJavaScript y HTML58 de marzo de 2016
Aguarde un momento por favor. La sesión comenzaráen breve en el horario señalado en el programa. Muchas gracias.
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Declaración relativa a la norma de Safe HarborEl objetivo de esta presentación es señalar la dirección general de nuestros productos. Se ofrece solo con fines informativos y no podrá incorporarse en ningún contrato. No constituye un compromiso de proporcionar materiales, código ni funcionalidades de ningún tipo, y no debería servir de fundamento para la toma de decisiones de compra. El desarrollo, lanzamiento y cronograma de cualquiera de las características o funcionalidades descritas para los productos de Oracle quedan a criterio exclusivo de Oracle.
3
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Temario
Modelo relacional vs. JSON
Node.js y node-oracledb
Conversión de datos relacionales a JSON
1
2
3
4
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Temario
Modelo relacional vs. JSON
Node.js y node-oracledb
Conversión de datos relacionales a JSON
1
2
3
5
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Modelo relacional• Basado en las matemáticas: Teoría de conjuntos y relacional
• La normalización se usa para– eliminar datos redundantes– evitar anomalías relativas a la inserción, actualización y eliminación– maximizar la flexibilidad, evitar el rediseño de bases de datos
ConceptoImplementación de
~ RDBMS
Relación Tabla
Tupla Fila
6
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id Proyecto TareaFecha de
finalización programada
Estado Asignada Ubicación Presup.
1 Sitio web principal Migración a Oracle JET 08/03/2016 Completa Dan McGhan y Shakeeb Rahman Brooklyn y Reston 15.000
2 Sitio web principal Pruebas de QA 21/05/2016 Pendiente Steven Feuerstein Chicago 10.000
3 Actualización de bases de datos
Actualización de DEV a 12c 15/04/2016 Abierta Gerald Venzel San Francisco 12.000
4 Actualización de bases de datos Pruebas de regresión 22/04/2016 Pendiente Chris Jones Perth 3000
Tareas
7
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
TareasId Proyecto Tarea
Fecha de finalización programada
Estado Asignada Ubicación Presup.
1 Sitio web principal Migración a Oracle JET 08/03/2016 Completa Dan McGhan y Shakeeb Rahman Brooklyn y Reston 15.000
2 Sitio web principal Pruebas de QA 21/05/2016 Pendiente Steven Feuerstein Chicago 10.000
3 Actualización de bases de datos
Actualización de DEV a 12c 15/04/2016 Abierta Gerald Venzel San Francisco 12.000
4 Actualización de bases de datos Pruebas de regresión 22/04/2016 Pendiente Chris Jones Perth 3000
8
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
TareasId Proyecto Tarea
Fecha de finalización programada
Estado Asignada Ubicación Presup.
1 Sitio web principal Migración a Oracle JET 08/03/2016 Completa Dan McGhan y Shakeeb Rahman Brooklyn y Reston 15.000
2 Sitio web principal Pruebas de QA 21/05/2016 Pendiente Steven Feuerstein Chicago 10.000
3 Actualización de bases de datos
Actualización de DEV a 12c 15/04/2016 Abierta Gerald Venzel San Francisco 12.000
4 Actualización de bases de datos Pruebas de regresión 22/04/2016 Pendiente Chris Jones Perth 3000
9
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id Proyecto TareaFecha de
finalización programada
Estado Asignada Ubicación Presup.
1 Sitio web principal Migración a Oracle JET 08/03/2016 Completa Dan McGhan y Shakeeb Rahman Brooklyn y Reston 15.000
2 Sitio web principal Pruebas de QA 21/05/2016 Pendiente Steven Feuerstein Chicago 10.000
3 Actualización de bases de datos
Actualización de DEV a 12c 15/04/2016 Abierta Gerald Venzel San Francisco 12.000
4 Actualización de bases de datos Pruebas de regresión 22/04/2016 Pendiente Chris Jones Perth 3000
Tareas
Tareas
10
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Tareas
Tareas Proyectos
Id Proyecto TareaFecha de
finalización programada
Estado Asignada Ubicación Presup.
1 Sitio web principal Migración a Oracle JET 08/03/2016 Completa Dan McGhan y Shakeeb Rahman Brooklyn y Reston 15.000
2 Sitio web principal Pruebas de QA 21/05/2016 Pendiente Steven Feuerstein Chicago 10.000
3 Actualización de bases de datos
Actualización de DEV a 12c 15/04/2016 Abierta Gerald Venzel San Francisco 12.000
4 Actualización de bases de datos Pruebas de regresión 22/04/2016 Pendiente Chris Jones Perth 3000
11
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id Proyecto TareaFecha de
finalización programada
Estado Asignada Ubicación Presup.
1 Sitio web principal Migración a Oracle JET 08/03/2016 Completa Dan McGhan y Shakeeb Rahman Brooklyn y Reston 15.000
2 Sitio web principal Pruebas de QA 21/05/2016 Pendiente Steven Feuerstein Chicago 10.000
3 Actualización de bases de datos
Actualización de DEV a 12c 15/04/2016 Abierta Gerald Venzel San Francisco 12.000
4 Actualización de bases de datos Pruebas de regresión 22/04/2016 Pendiente Chris Jones Perth 3000
Tareas
Tareas Proyectos Personas
12
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id NombreFecha de
finalización programada
Estado
1 Migración a Oracle JET 08/03/2016 Completa
2 Pruebas de QA 21/05/2016 Pendiente
3 Actualización de DEV a 12c 15/04/2016 Abierta
4 Pruebas de regresión 22/04/2016 Pendiente
Tareas
Proyectos
Id Nombre Presup.
1 Sitio web principal 15.000
2 Actualización de bases de datos 12.000
Personas
Id Nombre Ubicación
1 Dan McGhan Brooklyn
2 Shakeeb Rahman Reston
3 Steven Feuerstein Chicago
4 Gerald Venzel San Francisco
5 Chris Jones Perth
13
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id NombreFecha de
finalización programada
Estado
1 Migración a Oracle JET 08/03/2016 Completa
2 Pruebas de QA 21/05/2016 Pendiente
3 Actualización de DEV a 12c 15/04/2016 Abierta
4 Pruebas de regresión 22/04/2016 Pendiente
Tareas
Proyectos
Id Nombre Presup.
1 Sitio web principal 15.000
2 Actualización de bases de datos 12.000
Id de proyecto
Id de persona 1
Id de persona 2
Personas
Id Nombre Ubicación
1 Dan McGhan Brooklyn
2 Shakeeb Rahman Reston
3 Steven Feuerstein Chicago
4 Gerald Venzel San Francisco
5 Chris Jones Perth
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id NombreFecha de
finalización programada
Estado
1 Migración a Oracle JET 08/03/2016 Completa
2 Pruebas de QA 21/05/2016 Pendiente
3 Actualización de DEV a 12c 15/04/2016 Abierta
4 Pruebas de regresión 22/04/2016 Pendiente
Tareas
Proyectos
Personas
Id Nombre Presup.
1 Sitio web principal 15.000
2 Actualización de bases de datos 12.000
Id Nombre Ubicación
1 Dan McGhan Brooklyn
2 Shakeeb Rahman Reston
3 Steven Feuerstein Chicago
4 Gerald Venzel San Francisco
5 Chris Jones Perth
Id de proyecto
Id de persona 1
Id de persona 2
1
1
2
2
15
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id NombreFecha de
finalización programada
Estado
1 Migración a Oracle JET 08/03/2016 Completa
2 Pruebas de QA 21/05/2016 Pendiente
3 Actualización de DEV a 12c 15/04/2016 Abierta
4 Pruebas de regresión 22/04/2016 Pendiente
Tareas
Proyectos
Personas
Id Nombre Presup.
1 Sitio web principal 15.000
2 Actualización de bases de datos 12.000
Id Nombre Ubicación
1 Dan McGhan Brooklyn
2 Shakeeb Rahman Reston
3 Steven Feuerstein Chicago
4 Gerald Venzel San Francisco
5 Chris Jones Perth
Id de proyecto
Id de persona 1
Id de persona 2
1 1 2
1 3
2 4
2 5
16
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id NombreFecha de
finalización programada
Estado
1 Migración a Oracle JET 08/03/2016 Completa
2 Pruebas de QA 21/05/2016 Pendiente
3 Actualización de DEV a 12c 15/04/2016 Abierta
4 Pruebas de regresión 22/04/2016 Pendiente
Tareas
Proyectos
Personas
Id Nombre Presup.
1 Sitio web principal 15.000
2 Actualización de bases de datos 12.000
Id Nombre Ubicación
1 Dan McGhan Brooklyn
2 Shakeeb Rahman Reston
3 Steven Feuerstein Chicago
4 Gerald Venzel San Francisco
5 Chris Jones Perth
Id de proyecto
1
1
2
2
Búsqueda de tareas por persona
Id de persona Id de tarea
1 1
2 1
3 2
4 3
5 4
17
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id Nombre
Fecha de finalizaci
ón program
ada
Estado
1 Migración a Oracle JET 08/03/2016 Completa
2 Pruebas de QA 21/05/2016 Pendiente
3 Actualización de DEV a 12c 15/04/2016 Abierta
4 Pruebas de regresión 22/04/2016 Pendiente
Tareas
Proyectos
Personas
Id Nombre Presup.
1 Sitio web principal 15.000
2 Actualización de bases de datos 12.000
Id Nombre Ubicación
1 Dan McGhan Brooklyn
2 Shakeeb Rahman Reston
3 Steven Feuerstein Chicago
4 Gerald Venzel San Francisco
5 Chris Jones Perth
Id de proyecto
1
1
2
2
Búsqueda de tareas por persona
Id de persona Id de tarea
1 1
2 1
3 2
4 3
5 4Normalización
18
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id NombreFecha de
finalización programada
Estado
1 Migración a Oracle JET 08/03/2016 Completa
2 Pruebas de QA 21/05/2016 Pendiente
3 Actualización de DEV a 12c 15/04/2016 Abierta
4 Pruebas de regresión 22/04/2016 Pendiente
Tareas
Proyectos
Personas
Id Nombre Presup.
1 Sitio web principal 15.000
2 Actualización de bases de datos 12.000
Id Nombre Ubicación
1 Dan McGhan Brooklyn
2 Shakeeb Rahman Reston
3 Steven Feuerstein Chicago
4 Gerald Venzel San Francisco
5 Chris Jones Perth
Id de proyecto
1
1
2
2
Búsqueda de tareas por persona
Id de persona Id de tarea
1 1
2 1
3 2
4 3
5 4
19
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
select t.id, t.nombre, t.f_final, t.estadofrom tareas t
Id NombreFecha de
finalización programada
Estado
1 Migración a Oracle JET 08/03/2016 Completa
2 Pruebas de QA 21/05/2016 Pendiente
3 Actualización de DEV a 12c 15/04/2016 Abierta
4 Pruebas de regresión 22/04/2016 Pendiente
SQL
20
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
select t.id, p.nombre proyecto, t.nombre tarea, t.f_final, t.estado, p.presupfrom tareas tjoin proyectos p on t.proyecto_id = p.id
Id Proyecto TareaFecha de
finalización programada
Estado Presup.
1 Sitio web principal Migración a Oracle JET 08/03/2016 Completa 15.000
2 Sitio web principal Pruebas de QA 21/05/2016 Pendiente 10.000
3 Actualización de bases de datos
Actualización de DEV a 12c 15/04/2016 Abierta 12.000
4 Actualización de bases de datos Pruebas de regresión 22/04/2016 Pendiente 3000
SQL
21
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
SQLselect t.id, p.nombre proyecto, t.nombre tarea, t.f_final, t.estado,listagg(pp.nombre, ' & ') within group (order by pp.nombre) asignada,listagg(pp.ubicacion, ' & ') within group (order by pp.nombre) ubicacion,p.presupfrom tareas tjoin proyectos p on t.proyecto_id = p.idjoin persona_tarea_lookup ptl on t.id = ptl.tarea_idjoin personas pp on ptl.persona_id = pp.idgroup by t.id, p.nombre, t.nombre, t.f_final, t.estado, p.presup
Id Proyecto TareaFecha de
finalización programada
Estado Asignada Ubicación Presup.
1 Sitio web principal Migración a Oracle JET 08/03/2016 Completa Dan McGhan y Shakeeb Rahman Brooklyn y Reston 15.000
2 Sitio web principal Pruebas de QA 21/05/2016 Pendiente Steven Feuerstein Chicago 10.000
3 Actualización de bases de datos
Actualización de DEV a 12c 15/04/2016 Abierta Gerald Venzel San Francisco 12.000
4 Actualización de bases de datos Pruebas de regresión 22/04/2016 Pendiente Chris Jones Perth 3000
22
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Cómo se siente un desarrolladorde soluciones front-end
23
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Reseña de JSON• Se basa en 2 estructuras (pueden ser recursivas)
• Los objetos están formados por pares de clave y valor• Los tipos de valores posibles son los siguientes
objeto: {} matriz: []
estructura: objeto o matriz
Booleano: verdadero o falsoalfanumérico: "prueba" numérico: 100
sin valor: nulo
24
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Id Proyecto TareaFecha de
finalización programada
Estado Asignada Ubicación Presup.
1 Sitio web principal Migración a Oracle JET 08/03/2016 Completa Dan McGhan y Shakeeb Rahman Brooklyn y Reston 15.000
2 Sitio web principal Pruebas de QA 21/05/2016 Pendiente Steven Feuerstein Chicago 10.000
3 Actualización de bases de datos
Actualización de DEV a 12c 15/04/2016 Abierta Gerald Venzel San Francisco 12.000
4 Actualización de bases de datos Pruebas de regresión 22/04/2016 Pendiente Chris Jones Perth 3000
Tareas
25
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
[{"id": 1,"proyecto": "Sitio web principal","tarea": "Migración a Oracle JET",“fecha de finalización programada":
"08/03/2016","estado": "Completa","asignada": "Dan McGhan y Shakeeb Rahman","ubicación": "Brooklyn y Reston","presup": 15000
},...]
Tareas JSONal estilo
26
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
var tareas;
tareas = JSON.parse(insert JSON here);
tareas.forEach(function(tarea) {doSomethingAwesome(tarea);
});
JSON .parse()
27
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Temario
Modelo relacional vs. JSON
Node.js y node-oracledb
Conversión de datos relacionales a JSON
1
2
3
28
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
¿Qué es Node.js?• Una plataforma de desarrollo de JavaScript
– Basada en el motor de JavaScript V8 de Google– Permite que los desarrolladores usen JavaScript en el servidor
• Grandioso para crear sitios web– Conecta sistemas diferentes
• Tiene módulos incorporados para– Comunicación HTTP(s)– Acceso al sistema de archivos– Cifrado y compresión– Mucho más
29
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
¿Qué es NPM?• Node Package Manager
– Se usa para instalar y gestionar dependencias– Como yum/apt para Node.js
• Hoy hay alrededor de 240.000 paquetes disponibles– Servidores web, servidores proxy– Controladores de bases de datos– Generación de documentos– Casi cualquier cosa...
30
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Servidor web sencillo
Node.js
HTTP(S)/REST
Navegador web
31
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
var express = require('express');var app = express();
app.use('/', function(req, res) {res.end('Hello World!');
});
app.listen(3000, function() {console.log('Listening at http://localhost:3000/');
});
Express
32
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Servidor web sencillo
Node.jsNavegador web
http://localhost:3000/
Hello World!
33
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Arquitectura
Navegador web
Node.jsOracle
HTTP(S)/REST SQL*Net
34
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Reseña de la ///clase de controladores para Oracle/Node.js Parámetros de configuración
Pool de conexiones
Ejecución de SQL y PL/SQLCompatibilidad con variables de enlaceRecuperación de filas como objetos o matrices de JavaScript Conversión de tipos de JavaScript y Oracle
Gestión de transacciones
Objetos ResultSet desplazablesy actualizables
Compatibilidad con objetos LOB de Oraclemediante flujosde Node.js
Oracledb
Pool
Conexión
ResultSet Lob
35
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Reseña de la ///clase de controladores para Oracle/Node.jsParámetros de configuración
Pool de conexiones
Ejecución de SQL y PL/SQLCompatibilidad con variables de enlaceRecuperación de filas como objetos o matrices de JavaScript Conversión de tipos de JavaScript y Oracle
Gestión de transacciones
Objetos ResultSet desplazablesy actualizables
Compatibilidad con objetos LOB de Oraclemediante flujosde Node.js
Oracledb
Pool
Conexión
ResultSet Lob
36
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Reseña de la ///clase de controladores para Oracle/Node.jsParámetros de configuración
Pool de conexiones
Ejecución de SQL y PL/SQLCompatibilidad con variables de enlaceRecuperación de filas como objetos o matrices de JavaScript Conversión de tipos de JavaScript y Oracle
Gestión de transacciones
Objetos ResultSet desplazablesy actualizables
Compatibilidad con objetos LOB de Oraclemediante flujosde Node.js
Oracledb
Pool
Conexión
ResultSet Lob
37
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Reseña de la ///clase de controladores para Oracle/Node.jsParámetros de configuración
Pool de conexiones
Ejecución de SQL y PL/SQLCompatibilidad con variables de enlaceRecuperación de filas como objetoso matrices de JavaScript Conversión de tipos de JavaScript y Oracle
Gestión de transacciones
Objetos ResultSet desplazablesy actualizables
Compatibilidad con objetos LOB de Oraclemediante flujosde Node.js
Oracledb
Pool
Conexión
ResultSet Lob
38
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Reseña de la ///clase de controladores para Oracle/Node.jsParámetros de configuración
Pool de conexiones
Ejecución de SQL y PL/SQLCompatibilidad con variables de enlaceRecuperación de filas como objetoso matrices de JavaScript Conversión de tipos de JavaScript y Oracle
Gestión de transacciones
Objetos ResultSet desplazablesy actualizables
Compatibilidad con objetos LOB de Oraclemediante flujosde Node.js
Oracledb
Pool
Conexión
ResultSet Lob
39
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Reseña de la ///clase de controladores para Oracle/Node.jsParámetros de configuración
Pool de conexiones
Ejecución de SQL y PL/SQLCompatibilidad con variables de enlaceRecuperación de filas como objetoso matrices de JavaScript Conversión de tipos de JavaScript y Oracle
Gestión de transacciones
Objetos ResultSet desplazablesy actualizables
Compatibilidad con objetos LOB de Oraclemediante flujosde Node.js
Oracledb
Pool
Conexión
ResultSet Lob
40
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Reseña de la ///clase de controladores para Oracle/Node.jsParámetros de configuración
Pool de conexiones
Ejecución de SQL y PL/SQLCompatibilidad con variables de enlaceRecuperación de filas como objetoso matrices de JavaScript Conversión de tipos de JavaScript y Oracle
Gestión de transacciones
Objetos ResultSet desplazablesy actualizables
Compatibilidad con objetos LOB de Oraclemediante flujosde Node.js
Oracledb
Pool
Conexión
ResultSet Lob
41
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
var express = require('express');var app = express();var oracledb = require('oracledb');
app.get('/api/empleados', function(req, res, next) {oracledb.getConnection(
{user: 'hr', password: 'oracle', connectString: 'localhost/XE'},function(err, connection) {connection.execute('select * from empleados',{},//no bindsfunction(err, results) {res.send(results.rows);
});
});
});
node-oracledb
42
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
var express = require('express');var app = express();var oracledb = require('oracledb');
app.get('/api/empleados', function(req, res, next) {oracledb.getConnection(
{user: 'hr', password: 'oracle', connectString: 'localhost/XE'},function(err, connection) {connection.execute('select * from empleados',{},//no bindsfunction(err, results) {res.send(results.rows);
});
});
});
node-oracledb
43
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
var express = require('express');var app = express();var oracledb = require('oracledb');
app.get('/api/empleados', function(req, res, next) {oracledb.getConnection(
{user: 'hr', password: 'oracle', connectString: 'localhost/XE'},function(err, connection) {connection.execute('select * from empleados',{},//no bindsfunction(err, results) {res.send(results.rows);
});
});
});
node-oracledb
44
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
var express = require('express');var app = express();var oracledb = require('oracledb');
app.get('/api/empleados', function(req, res, next) {oracledb.getConnection(
{user: 'hr', password: 'oracle', connectString: 'localhost/XE'},function(err, connection) {
connection.execute('select * from empleados',{},//no bindsfunction(err, results) {res.send(results.rows);
});
});
});
node-oracledb
45
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
var express = require('express');var app = express();var oracledb = require('oracledb');
app.get('/api/empleados', function(req, res, next) {oracledb.getConnection(
{user: 'hr', password: 'oracle', connectString: 'localhost/XE'},function(err, connection) {
connection.execute('select * from empleados',{},//no bindsfunction(err, results) {
res.send(results.rows);}
);}
);});
node-oracledb
46
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
var express = require('express');var app = express();var oracledb = require('oracledb');
app.get('/api/empleados', function(req, res, next) {oracledb.getConnection(
{user: 'hr', password: 'oracle', connectString: 'localhost/XE'},function(err, connection) {connection.execute('select * from empleados',{},//no bindsfunction(err, results) {res.send(results.rows);
});
});
});
node-oracledb
47
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Temario
Modelo relacional vs. JSON
Node.js y node-oracledb
Conversión de datos relacionales a JSON
1
2
3
48
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Esquema de RRHH
49
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Desde empleados hacia abajo
50
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Desde departamentos hacia abajo
51
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Código JSON resultante
52
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Cómo usar Node.js para crear código JSON – toma 1• La estructura del código será similar a la de la solución PL/SQL• Se usará el controlador node-oracledb para ejecutar las consultas• Los resultados del controlador se usarán para construir un objeto JS• El objeto final se serializará y devolverá
53
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Cómo usar Node.js para crear código JSON – toma 2• Se modificará la solución anterior para emplear un pool de conexiones• ¡Y listo!
54
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Cómo usar Node.js para crear código JSON – toma 3• Ahora vamos a sumar los datos del lado del cliente• El sistema RDBMS lo va a hacer por nosotros• Reduce las consultas de 7 a 3
55
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Cómo usar Node.js para crear código JSON – toma 4• Node.js permite ejecutar consultas en paralelo
– Requiere conexiones individuales del pool
56
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Resumen• Para numerosas aplicaciones, el modelo relacional es la mejor manera de
almacenar datos– Pero son muchos quienes preferirán tener los datos en formato JSON
• Node.js puede usarse para generar fácilmente código JSON a partir de bases de datos relacionales– Es recomendable que los desarrolladores dediquen tiempo a aprender sobre bases de
datos para maximizar el rendimiento
• Próximos pasos– Obtenga más información sobre el controlador Node.js para Oracle Database
57
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Preguntas y respuestas
Copyright © 2016 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Siga aprendiendo con las capacitaciones de Oracle University
• Capacitación práctica presencial o en línea a cargo de instructores de trayectoria de todo el mundo
• Nuevos servicios de aprendizaje con suscripción para brindarle acceso a la capacitación en todo momento
• Programas de certificación para validar sus competencias
education.oracle.com
59
Copyright © 2015 Oracle y/o sus compañías afiliadas. Todos los derechos reservados. | 60