Bases de Datos Práctica de NoSQL Base de Datos Práctica NoSQL 1. Conceptuales a) Describa brevemente limitaciones de las base de datos relacionales y con qué características las base de datos NoSql mitigan este problema. b) Describa los cuatro tipos de base de datos NoSql. c) ¿Qué es un espacio de nombres o bucket en una base de datos Key-Value? d) ¿De ejemplos de uso de TTL (time to live) en una base Key-Value? e) Compare Key-Value con Document Database, de ventajas y desventajas de una u otra. f) Discuta ventajas y desventajas de que una Document Database sea schemaless. g) ¿En qué casos puede ser conveniente denormalizar? h) Compara las Column family databases con otros tipos de bases de datos NoSQL. 2. Definir las funciones Map y Reduce para las operaciones del algebra relacional: selección, proyección, resta y junta 3. Diseñar algoritmos MapReduce que toman como entrada un archivo de enteros muy grande y produce como resultado: a) El entero más grande b) El promedio de todos los números c) El mismo conjunto de números pero cada uno apareciendo solo una vez d) La cantidad de números distintos 4. Dada la siguiente relación: Alumno(NroLU, Nombre, Apellido, FechaIngreso, FechaNacimiento, Calle, Numero, Ciudad, Provincia, País) se pide realizar la estructura para : Key Value Databases, Document Databases y Column Oriented Databases 5. Dado el siguiente documento JSON que representa la estructura de una Document Database defina consultas para las cuales la estructura es apropiada y consultas para las cuales no es apropiada { "bookstore": { "book": [ { "title": { "_lang": "en", "__text": "Everyday Italian" }, "author": "Giada De Laurentiis", "year": "2005", "price": "30.00", "_category": "COOKING" }, { "title": { "_lang": "en", "__text": "Harry Potter" }, "author": "J K. Rowling", "year": "2005", "price": "29.99", "_category": "CHILDREN" }, { Página 2 de 7 Base de Datos Práctica NoSQL "title": { "_lang": "en", "__text": "XQuery Kick Start" }, "author": [ "James McGovern", "Per Bothner", "Kurt Cagle", "James Linn", "Vaidyanathan Nagarajan" ], "year": "2003", "price": "49.99", "_category": "WEB" }, { "title": { "_lang": "en", "__text": "Learning XML" }, "author": "Erik T. Ray", "year": "2003", "price": "39.95", "_category": "WEB" } ] } } 6. Dado el siguiente documento JSON, definir un esquema para soportar esos datos en un modelo para Column Databases. { "person": { "name": "Lindsay Bassett", "heightInInches": 66, "head": { "hair": { "color": "light blond", "length": "short", "style": "A-line" }, "eyes": "green" } } } 7. Dado el siguiente ejemplo sobre editoriales libros { titulo: "MongoDB: The Definitive Guide", autor: [ "Kristina Chodorow", "Mike Dirolf" ], fecha_pub: ISODate("2010-09-24"), paginas: 216, Página 3 de 7 Base de Datos Práctica NoSQL idioma: "English", editorial: { nombre: "O'Reilly Media", fundada: 1980, ubicacion: "CA" } } { titulo: "50 Tips and Tricks for MongoDB Developer", autor: "Kristina Chodorow", fecha_pub: ISODate("2011-05-06"), paginas: 68, idioma: "English", editorial: { nombre: "O'Reilly Media", fundada: 1980, ubicacion: "CA" } } a) modificar los documentos para que no se repitan los datos de las editoriales 8. Una instituto educativo está desarrollando una aplicación para realizar encuestas on-line. a) Definir un esquema JSON para almacenar una encuesta con múltiples respuestas. b) Expandir el esquema del ejercicio anterior si se quiere guardar el resultado de las elecciones que cada alumno hizo al realizar la encuesta. Analice las opciones disponibles y discuta sus pro y sus contra 9. Se desea guardar la información de llamadas telefónicas para poder procesarlas posteriormente. Cada llamada tiene: el abonado origen, el abonado destino, el momento de inicio y de fin de la llamada y por último el estado de la llamada: 'A' activa, 'I' inactiva que dice si la comunicación se debe facturar o no Cada abonado tiene datos particulares: el número, el nombre y el domicilio completo. Las consultas a realizar son: listado de llamadas de un abonado en particular, conocer si entre dos abonados hubo una llamada en algún rango de tiempo. a) Realice los esquemas para: Key Value Databases, Document Databases y Column Oriented Databases 10. Realizar un esquema para el ejercicio 7 adecuado a Column Oriented Databases 11. “El Sopapo” La Cooperativa de Payasos “El Sopapo” coordina las actuaciones de sus payasos integrantes. Las payasos tienen sus propias actuaciones (pueden tener más de una). Cada actuación pertenece a un único payaso y se pone en escena en un circo. De acuerdo al convenio que firmó la cooperativa con la Asociación de Circos Criollos, las actuaciones son exclusivas para cada circo, pero en cada circo puede haber más de una actuación, aún correspondiendo a distintos payasos. Cada actuación tiene un nombre y un precio de entrada. a) Realice un modelo de entidad relación y los esquemas para: Key Value Databases, Document Databases y Column Oriented Databases Página 4 de 7 Base de Datos Práctica NoSQL 12. Dado el siguiente MER realizar por lo menos 3 diferentes esquemas para Document Databases 13. Dado el siguiente MER realizar los esquemas para : Key Value, Databases, Document Databases y Column Oriented Databases Base de Datos Práctica NoSQL 14. Dado el siguiente MER realizar los esquemas para : Key Value, Databases, Document Databases y Column Oriented Databases Base de Datos Práctica NoSQL 15. Dado el siguiente MER sobre un sitio WEB de libros realizar los esquemas para Databases, Document Databases y Column Oriented Databases