modelos de bases de datos relacionales y nosql para...

13
    Reporte Técnico GEMIS-TD-2015-02-TR-2015-07 Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento Giovanni Daián Róttoli, Marcelo Lopez-Nocera & María Florencia Pollo-Cattaneo Grupo de Estudio de Metodologías para Ingeniería en Software Universidad Tecnológica Nacional – FRBA Argentina Ingeniería en Sistemas de Información Universidad Tecnológica Nacional – FRCU Argentina 2015

Upload: others

Post on 30-May-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

    

Reporte TécnicoGEMIS­TD­2015­02­TR­2015­07

Modelos de Bases de Datos Relacionales yNoSQL para pruebas de Rendimiento

Giovanni Daián Róttoli, Marcelo Lopez­Nocera & MaríaFlorencia Pollo­Cattaneo

Grupo de Estudio de Metodologías para Ingeniería en SoftwareUniversidad Tecnológica Nacional – FRBA

Argentina

Ingeniería en Sistemas de InformaciónUniversidad Tecnológica Nacional – FRCU

Argentina

2015

Page 2: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

Índice1. INTRODUCCIÓN....................................................................................................3

2. CASOS DE PRUEBA...............................................................................................3Caso de Prueba 1......................................................................................................3Caso de Prueba 2......................................................................................................3Caso de Prueba 3......................................................................................................3

3. MODELOS RELACIONALES..............................................................................4

4. MODELOS DOCUMENTALES............................................................................6

5. MODELOS COLUMNARES..................................................................................8

6. MODELOS CLAVE-VALOR................................................................................11

Hoja 2 de 13

Page 3: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

1. Introducción

Este documento tiene como objetivo presentar los modelos de datos tanto relacionalescomo   NoSQL   utilizados   en   procesos   de   experimentación   para   la   comparación   yanálisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras de datosrelacionales.

2. Casos de Prueba

Fueron diseñados tres (3) casos de pruebas haciendo hincapié en las relacionales entreentidades de datos, a fin de realizar posteriores consultas que involucren operacionesJoin entre la mayoría de estas entidades. Esto permitiría evaluar el comportamiento delas bases de datos NoSQL al trabajar sobre estructuras con normalización de datos.

Caso de Prueba 1

El   primer   caso   de   estudio   consiste   en   un   conjunto   de   Facturas   de   compra   dedeterminados   Productos,   y   las   relaciones   de   Amistad   entre   las   Personas   quecompraron dichos Productos.Para este primer escenario, se plantea la ejecución de una consulta para determinar losamigos de aquellas personas que han comprado un determinado producto antes de unafecha determinada.

Caso de Prueba 2

Posteriormente,   se   diseña   un   segundo   caso   de   estudio,   planteado   en   el   áreahospitalaria,   para   persistir   internaciones   de   pacientes,   un   médico   encargado   delmismo, cual fue la cama y habitación que se le asigna y el encargado de enfermeríadesignado a dicha habitación.La consulta planteada en esta oportunidad es aquella para determinar los enfermeros acargo de las habitaciones en las que se encuentran internados pacientes con doctores acargo que poseen determinada especialidad, antes de una fecha determinada.

Caso de Prueba 3

El tercer y último caso de estudio plantea un escenario de registro de alumnos, lainscripción de los mismos a determinadas carreras, y la designación de profesores amaterias   de   dichas   carreras,   siendo   la   consulta   la   determinación   de   los   alumnosinscriptos   a   las   carreras   con   materias   dictadas   por   profesores   designados   bajodeterminado tipo de designación, y que posean un título determinado.

Hoja 3 de 13

Page 4: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

A continuación, en las secciones conseguentes, se muestran los modelos relacionalesy NoSQL para resolver estos casos de estudio planteados.

3. Modelos Relacionales

Para el caso de pruebas se plantea un modelo de entidades plasmado en la figura 1,consistente en 5 entidades, y relaciones entre ellas.

Se puede apreciar  en  la mencionada figura que  la entidad “Factura” posee unarelación  con   la   entidad  “Persona”,   indicando  quien   fue   el  Cliente  que   realizó   lacompra. A su vez, una Factura está compuesta por determinadas lineas de factura, quemuestran cual producto fue comprado mediante una relación con la entidad Producto.

Cada factura además, posee como dato la fecha de realización de dicha operación.A su  vez,  el  modelo   cuenta   con  una   relación  de  Amistad,  asociada   a  dos   (2)

entidades Persona.

Fig. 1. Diagrama de entidades para el caso de pruebas Nro. 1

El Caso de Pruebas Nro. 2, fue modelado utilizando siete (7) entidades de datos,como   se   observa   en   la   Figura   2.   En   primer   lugar,   se   cuenta   con   la   entidad“Internación”,  asociada  a  un “Paciente”  determinado  y a  un  “Doctor”  asignado adicha internación, poseyendo este último a su vez, una determindaa especialidad.

Por   otro   lado,   cada   internación   es   asignada   a   una   cama   en   una   habitacióndeterminada, teniendo esta última un enfermero a cargo.

Hoja 4 de 13

Page 5: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

Fig. 2. Diagrama de entidades para el caso de pruebas Nro. 2

Por último, el tercer Caso de Prueba fue modelado de manera relacional utilizandosiete   (7)   entidades,   apreciables   en   la   figura   3.     En   primer   lugar   se   modela   la“Inscripción”   de   un   “Alumno”   determinado   a   una   “Carrera”   determinada.   EstaCarrera   a   su   vez   posee   “Materias”   asociadas   a   las   cuales   se   le   “Designan”“Profesores”. Cada “Designación” es de un tipo determinado (Titular, Ayudante dePrimera, Ayudante de Segunda, etc).

Fig. 3. Diagrama de entidades para el caso de pruebas Nro. 3

Hoja 5 de 13

Page 6: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

4. Modelos Documentales

Los modelos documentales que se plantean a continuación se diseñaron en funciónde las consultas mencionadas en la sección 2 del presente documento. 

Como se observa en el Texto 1, se plantean dos Colecciones de Documentos parael caso de Pruebas Nro 1. Una para almacenar documentos correspondientes a cadaProducto, y otra para almacenar información de cada Persona. A su vez, cada personatiene documentos anidados correspondientes a cada Factura, y que a su vez posee otrodocumento anidado por cada Línea de Factura, referenciando cada una de ellas a unproducto determinado.

A su vez, cada persona posee una lista de referencias a otras personas con las quemantienen relaciones de Amistad.

Producto {'_id','nombre','precio'

}

Persona {'_id','nombre','facturas' : [{

'fecha','lineas' : [{

'cantidad''unidad''producto':#ref(Producto)

}]}],'amigos': [ #ref(Persona) ]

}

Texto 1.Modelo Documental para el Caso de Pruebas 1 [Pseudo­Json]

Para el Caso de Pruebas Nro. 2 se plantean cuatro (4) colecciones de documentos,que se pueden apreciar en el Texto 2. 

Dos   de   estas   colecciones   normalizan   los   datos   de   los   doctores,   los   pacientes,mientras que  por otro lado, una colección se dedica a almacenar documentos por cadainternación, manteniendo referencias al paciente y al médico asociado en cada caso, ya la cama  correspondiente a dicha internación.

Por otro último, una colección de documentos se encarga de mantener informaciónde las habitaciones, las camas que esta posee y el encargado de la misma.

Hoja 6 de 13

Page 7: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

Doctor {'_id','nombre','especialidad'

}

Paciente {'_id','nombre','nacimiento'

}

Internación {'_id','ingreso','alta','paciente': #ref(Paciente),'doctor': #ref (Doctor),'cama'

}

Habitación {'_id','encargado' : {

'id','nombre'

},'camas':[{

'id','internaciones' : [#ref(Internación)]

}]}

Texto 2.Modelo Documental para el Caso de Pruebas 2 [Pseudo­Json]

El tercer caso de prueba fue diseñado como una única colección de documentos“Alumno” que posee información de cada uno de ellos y un documento anidado coninformación   sobre   las   Inscripciones,   los   cuales   a   su  vez   anidan   documentos   coninformación sobre las Carreras y estos a su vez con las Materias. Estos documentosMateria anidan dentro de si Designaciones de Profesores.

Esta estructura se puede apreciar en el Texto 3.

Hoja 7 de 13

Page 8: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

Alumno {'legajo','nombre','fechaNac','inscripciones' : [ {

'desde','hasta','Carrera' : [ {

'nombre','cantidadSemestres','materias': [ {

'nombre','semestre','designaciones':[ {

'desde','hasta','tipo','profesor': {

'legajo','nombre','titulo'

}}]

}]}]

}]}

Texto 3.Modelo Documental para el Caso de Pruebas 3 [Pseudo­Json]

5. Modelos Columnares

Al igual que los modelos documentales, los modelos columnares se diseñaron enfunción de las consultas por cada caso de estudio. Estos diseños son sencillos, sinexplotar todas las características del motor de base de datos.

Los modelos estan representados como “clave”   “Conjunto de columnas”, siendo→aquello marcado con el símbolo #, valores incrementales y únicos por cada registro.

Para el Caso de Pruebas 1, se modelaron 4 tablas como se muestran en el Texto 4.En la primera de ellas se guarda la información relevante sobre las personas, mientrasque en la segunda se guarda información sobre los productos. Estas dos tablas no sonútiles para la consulta.

Posteriormente, las dos tablas siguientes, guardan información sobre cada una delas   compras   guardando   información   sobre   el   cliente   en   cuestión   y   el   productomediante   números   utilizados   posteriormente   para   una   referenciación   mediante   elcódigo del cliente, y sobre la lista de amigos de cada uno de los clientes.

Hoja 8 de 13

Page 9: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

Clave: 'Cliente:' + #Id_plienteColumnas:

Nombre

Clave: 'Producto:' + #Id_productoColumnas:

Nombre

Clave: 'Factura:' + #Id_compraColumnas:

#Id_cliente

Fecha

#Id_producto

Precio

Cantidad

Unidad

Clave: 'Amigos_de:' + #Id_personaColumnas:

List<#Id_persona>

Texto 4.Modelo Columnar para el Caso de Pruebas 1

El Caso de  Pruebas  Número 2 fue  modelado según se muestra  en  el  Texto 5,utilizando 4 tablas, siendo dos de ellas solo para mantener la información sobre elDoctor  y  el  Paciente.  Además,   se  utiliza  una  tabla  para  mantener   registro  de   lasinternaciones, con columnas que guardan datos para posterior referenciación sobre lahabitación,   el   paciente   y   el   doctor   encargado.   Una   tabla   dedicada   a   guardarinformación sobre las habitaciones, posee una lista de camas y un encargado.

El Caso de Pruebas 3 fue modelado con solo dos tablas, como se observa en elTexto   6,   siendo   una   de   ellas   para   mantener   información   de   las   inscripciones   dealumnos a las carreras,  y otra para mantener  información de las  designaciones dedocentes a las manterias.

Hoja 9 de 13

Page 10: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

Clave: 'Internación:' + #id_internaciónColumnas:

Ingreso

Alta

Cama

#id_habitación

#id_paciente

#id_doctorClave: 'Habitación:' + #id_habitaciónColumnas:

Camas = List<int>

EncargadoClave: 'Doctor:' + #id_doctorColumnas:

Nombre

EspecialidadClave: 'Paciente:' + #id_pacienteColumnas:

Nombre

Nacimiento

Texto 5.Modelo Columnar para el Caso de Pruebas 2Clave: 'Inscripcion:' + #id_inscripcionColumnas:

Legajo

Nombre

Carrera

Desde

Hasta

CantidadSemestresClave: 'Designacion:' + #id_designacionColumnas:

Materia

Carrera

Legajo

Nombre

TituloProfesor

Tipo

Desde

Hasta

Texto 6.Modelo Columnar para el Caso de Pruebas 3

Hoja 10 de 13

Page 11: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

6. Modelos Clave­Valor

Estos  modelos   estan   representados   de   forma   “clave”   ­  >   conjunto   de  valores,siendo aquellos  marcados  con el  símbolo #,  valores  únicos e incrementales,  y  loscorchetes simbolizan una lista de los elementos contenidos en su interior.

El caso de prueba número 1 fue diseñado según se muestra en el texto 7. En el diseño se aprecia un par para mantener información de cada producto, otro

para mantener información de cada persona, otro para mantener información sobre lafecha de realización de una factura y el  cliente en cuestión, otra para mantener lacantidad de cada producto comprado en cada factura, otro par para mantener una listade facturas que compraron un deteterminado producto,  y otro par clave­valor paramantener la lista de amigos de una persona.

Clave: 'Producto:' + #id_productoValor: {'nombre','precio'}

Clave: 'Persona:' + #id_personaValor: {'nombre'}

Clave: 'Factura:' + #id_facturaValor: {'fecha', #id_persona}

Clave: 'Linea:' + #id_factura + ':' + #id_productoValor: {'cantidad'}

Clave: 'Compras_de:' + #id_productoValor: [ #id_factura]

Clave: 'Amigos_de:' + #id_personaValor: [ #id_persona]

Texto 7.Modelo Clave­Valor para el Caso de Pruebas 1

El modelo correspondiente al Caso de Pruebas 2 consiste en un conjunto de paresclave­valor para: mantener la información de los doctores, guardar información sobrelos pacientes, listar los doctores que corresponden a determinada especialidad, listarlas   internaciones   supervisadas  por  un  determinado  doctor,   almacenar   informaciónsobre cada internación en cuestión, determinar a que habitación pertenece cada cama,y mantener registro de los encargados de cada habitación.

Esto se detalla en el Texto 8.

Hoja 11 de 13

Page 12: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

Clave: 'Doctor:' + #id_doctorValor: {'nombre'}

Clave: 'Paciente:' + #id_pacienteValor: {'nombre', 'nacimiento'}

Clave: 'Especialidad:' + 'nombre'Valor: [ #id_doctor ]

Clave: 'Internaciones_de_doctor:' + '#id_doctor'Valor: [ #id_internación ]

Clave: 'Internación:' + #id_internaciónValor: {'ingreso','alta',#id_paciente,#id_doctor, #id_cama}

Clave: 'Cama:' + '#id_cama'Valor: { #id_habitación }

Clave: 'Habitación:' + '#id_habitación'Valor: { 'encargado' }

Texto 8.Modelo Clave­Valor para el Caso de Pruebas 2

Por último,  para el  modelo Clave – Valor  para  el  Caso de Pruebas  tercero,  secuenta   con   pares   que   almacenan   la   lista   de   profesores   con   determinado   título,información   referente   a   cada   profesor,   lista   designaciones   de   un   determinadoprofesor,  datos de la designación en particular,   incluyendo referencia a la  materiadesignada, datos de las materias, datos sobre las carreras, lista de inscripciones a unadeterminada carrera, información sobre las inscripciones, y por último datos de losalumnos. 

Todo esto se detalla en el texto 9.

Hoja 12 de 13

Page 13: Modelos de Bases de Datos Relacionales y NoSQL para ...sistemas.frba.utn.edu.ar/grupogemis/Trabajos/... · análisis de la eficiencia de bases de datos NoSQL al trabajar con estructuras

Modelos de Bases de Datos Relacionales y NoSQL para pruebas de Rendimiento

Clave: 'Titulo:' + 'nombreTitulo'Valor: [#id_profesor]

Clave: 'Profesor:' + #id_profesorValor: {'legajo', 'nombre'}

Clave: 'Designacion_de:' + #id_profesorValor: [#id_designacion]

Clave: 'Designacion:' + #id_designacionValor: ['desde', 'hasta', 'tipo', #id_materia]

Clave: 'Materia:' + #id_materiaValor: {'nombre', 'semestre', #id_carrera}

Clave: 'Carrera:' + #id_carreraValor: {'nombre', 'cantidadSemestres'}

Clave: 'InscripcionesA:' + #id_carreraValor: [#id_inscripcion]

Clave: 'Inscripcion:' + #id_inscripcionValor: {'desde', 'hasta', #id_alumno}

Clave: 'Alumno:' + #id_alumnoValor: {'legajo', 'nombre', 'fechaNac'}

Texto 9.Modelo Clave­Valor para el Caso de Pruebas 3

Hoja 13 de 13