Exercicis

Exercici 8.1 (Redis)
Sobre la Base de Dades REDIS del Servidor de l'Institut (adreça 89.36.214.106) fer les següents operacions, tant per a guardar una sèrie de dades, com per a recuperar-les. Sempre posarem a les claus el prefix 9999x_ , on com sempre heu de substituir 9999 per les 4 últimes xifres del vostre DNI, i la x per la letra del NIF. Copia-les en un únic fitxer de text, de forma numerada. És aquest fitxer el que hauràs de pujar.
- Crea la clau 9999x_Nom amb el teu nom
- Crea la clau 9999x_Cognoms amb els teus cognoms. Una de les dues almenys, nom o cognoms, ha de constar de més d'una paraula.
- Mostra totes les claus teues, i únicament les teues.
- Dóna un temps de vida a la clau 9999x_Nom de 200 segons. Comprova el temps de vida que li queda. Posteriorment fes-la permanent.
- Crea la clau 9999x_Adreca, de tipus Hash, amb els subcamps carrer, numero i cp. No importa que les dades siguen falses. Pots fer-lo en una sentència o en més d'una.
- Afegeix a l'anterior el subcamp poblacio
- Mostra tota la informació de la teua adreça (només la informació, no les subclaus)
- Crea la clau 9999x_Moduls_ASIX o 9999x_Moduls_DAM o 9999x_Moduls_DAW, depenent del teu cicle. Ha de ser de tipus Set, amb tots els mòduls del teu cicle, que es detallen a continuació. Pots fer-lo en una o en més d'una sentència.
- ASIX: ISO, PAX, FH, GBD, LM, FOL, ASO, SXI, IAW, ASGBD, SAD, EIE, PROJ i FCT
- DAW: SI, BD, PR, LM, ED, FOL, DWEC, DWES, DAW, DIW, EIE, PROJ i FCT
- DAM: SI, BD, PR, LM, ED, FOL, AD, PMDM, DI, PSP, SGE, EIE, PROJ i FCT.
- Crea la clau 9999x_Moduls_meus, de tipus Set, amb tots els mòduls als quals estàs matriculat. Pots fer-lo en una o en més d'una sentència.
- Guarda en la clau 9999x_Moduls_altres els mòduls en els quals no estàs matriculat actualment. Ha de ser per mig d'operacions de conjunts. Pots comprovar que el resultat és correcte amb smembers
- Crea una llista amb el nom 9999x_Notes_BD amb la nota de 4 exercicis de BD. Les notes seran: 7, 9, 6, 10. Han de quedar en aquest ordre (no en ordre invers)
- Modifica la tercera nota, que passa de ser 6 a 8.
- Crea un Set Ordenat (zset) anomenat 9999x_Carrera amb els següents valors. Pots fer-lo en una o en més d'una sentència. I ves amb compte perquè els temps han de ser numèrics
Sandra 12'52 Isabel 12'25 Marta 12'10 Maria 12'07 Rosa 11'95 Bea 11'97 Balma 11'90 Anna 12'74
- Trau les participants de la carrera ordenades pel temps
- Penalitza el temps de Bea amb 2 dècimes (0'2), i torna a traure les participants ordenades (Bea ha d'haver perdut 2 posicions, passant de tercera a cinquena posició)

Exercici 8.2 (MongoDB)
Sobre la teua Base de Dades MONGODB treballarem sobre la col·lecció libro, la mateixa que hem utilitzat en els exemples. Si no la tens creada, executa les sentències del principi de la pregunta 3.4.2. Fes les següents consultes. Copia-les en un únic fitxer de text, de forma numerada. És aquest fitxer el que hauràs de pujar.
- Busca els llibres que tenen més de 500 pàgines. Visualitza el _id, el títol i el número de pàgines
- Busca els llibres de l'any 2014. Visualitza únicament títol i data
- Busca els llibres de l'editorial Planeta. Visualitza únicament títol i editorial
- Busca els llibres de l'editorial Planeta de més de 500 pàgines. Visualitza únicament títol, editorial i pàgines
- Busca els llibres que no tenen editorial. Visualitza únicament títol i editorial
- Busca els llibres que en el resum contenen la paraula caballo. Visualitza el resum per poder comprovar-ho. Han d'eixir 2 llibres, Circo máximo i Las carreras de Escorpio.
- Utilitzant la funció aggregate, trau l'editorial i la mitjana de pàgines d'aquelles editorials que tenen una mitjana de pàgines superior a 500. Eixiran 3 editorials.

Exercici 8.3 (MongoDB)
Aquest exercici l'has de realitzar sobre la teua BD de MongoDB.
title : Fight Club
writer : Chuck Palahniuk
year : 1999
actors : [
Brad Pitt
Edward Norton ]
title : Pulp Fiction
writer : Quentin Tarantino
year : 1994
actors : [
John Travolta
Uma Thurman ]
title : Inglorious Basterds
writer : Quentin Tarantino
year : 2009
actors : [
Brad Pitt
Diane Kruger
Eli Roth ]
title : The Hobbit: An Unexpected Journey
writer : J.R.R. Tolkein
year : 2012
franchise : The Hobbit
title : The Hobbit: The Desolation of Smaug
writer : J.R.R. Tolkein
year : 2013
franchise : The Hobbit
title : The Hobbit: The Battle of the Five Armies
writer : J.R.R. Tolkein
year : 2012
franchise : The Hobbit
synopsis : Bilbo y compañía se ven obligados a participar en una guerra contra una serie de combatientes y evitar que la Lonely Mountain caiga en manos de una oscuridad creciente.
title : Pee Wee Herman's Big Adventure
title : Avatar
- Inserir tots els documents anteriors. Ha de ser obligatòriament amb una única sentència, per a la qual cosa hauràs d'utilitzar variables, una per a cada document.
- Consultar tots els documents
- Obtenir els documents amb writer igual a "Quentin Tarantino"
- Obtenir els documents amb actors que incloguen a "Brad Pitt"
- Obtenir els documents amb franchise igual a "The Hobbit"
- Obtenir totes les pel·lícules dels anys 90.
- Obtenir les pel·lícules estrenades entre l'any 2000 i el 2010.
- Agregar sinopsis a "The Hobbit: An Unexpected Journey":
- "Un hobbit reacio, Bilbo Baggins, se dirige a Lonely Mountain con un enérgico grupo de enanos para reclamar su hogar en la montaña, y el oro que contiene, del dragón Smaug".
- Agregar sinopsis a "The Hobbit: The Desolation of Smaug":
- "Los enanos, junto con Bilbo Baggins y Gandalf the Grey, continúan su búsqueda para recuperar Erebor, su tierra natal, de manos de Smaug. Bilbo Baggins está en posesión de un anillo misterioso y mágico".
- Agregar un actor anomenat "Samuel L. Jackson" a la pel·lícula "Pulp Fiction"
- Trobar les pel·lícules que en la sinopsis continguen la paraula "Bilbo"
- Trobar les pel·lícules que en la sinopsis continguen la paraula "Gandalf"
- Trobar les pel·lícules que en la sinopsis continguen la paraula "Bilbo" i no la paraula "Gandalf". S'aconsella utilitzar l'operador $and
- Trobar les pel·lícules que en la sinopsis continguen la paraula "enanos" o "hobbit"
- Trobar les pel·lícules que en la sinopsis continguen les paraules "oro" i "dragón"
- Eliminar la pel·lícula "Pee Wee Herman's Big Adventure"
- Eliminar la pel·lícula "Avatar"

Exercici 8.4 (mongoDB)
Sobre la teua Base de Dades MONGODB treballarem sobre la col·lecció libro, la mateixa que hem utilitzat en els exemples. Si no la tens creada, executa les sentències del principi de la pregunta 3.4.2. Fes les següents consultes. Copia-les en un únic fitxer de text, de forma numerada. És aquest fitxer el que hauràs de pujar.
- Incrementar el preu dels llibres de l'editorial Planeta en 2€ (recordeu que per a modificar més d'un document, hem de posar com a tercer paràmetre l'opció {multi:true} )
- Crear el camp editorial amb el valor nul, per a tots aquells documents que no tinguen el camp editorial
- Fer l'operació inversa: eliminar el camp editorial per a tots aquells que el tinguen nul
- Traure l'any del llibre, a partir de la fecha (serà un camp calculat anomenat año)
- Aprofita el camp anterior per a traure els llibres estrictament anteriors a l'any 2013. Visualitza titulo, fecha i año

Exercici 8.5 (eXist)
Realitzar les expressions XPath que tornen les següents qüestions (totes elles sobre Rutes.xml):
- Traure el nom de totes les rutes.
- Traure el nom de les rutes amb un desnivell major que 600 m.
- Traure les rutes en les quals el desnivell acumulat duplica el desnivell. (Observació: quan en una condició combinem alguna operació amb una comparació, és millor posar l'operació abans de l'operador de comparació)
- Traure el nom del primer punt de cada ruta.
- Traure el nom de l'últim punt de cada ruta
- Traure els punts de la tercera ruta.
- Traure el número de punts de la tercera ruta
- Traure el nom de les rutes que tenen estrictament més de 5 punts.
- Traure la mitjana de desnivell de les rutes
- Traure les rutes en les quals hi ha alun punt més avall del paral·lel 40

Exercici 8.6 (eXist)
Fer les expressions XQuery per a aconsequir:
1. El mòdul amb el nom del professor com a atribut:
<modul professor="Joan Puig">Llenguatges de Marques</modul>
2. El nom de cada ruta amb el número de punts com a argument:
3. Cada ruta amb el nom com a atribut, la latitud mitjana dels seus punts i la longitud mitjana
4. La mitjana de punts de les rutes
6
5. Quants punts de cada ruta estan en l'hemisferi est (és a dir, longitud positiva)

Exercici 8.7 (mongoDB)(voluntari)
Intenta implementar en MongoDB part de la Base de Dades relacional implementada en els exercicis del Tema 6.3, el de les factures.
Concretament, comença per les taules CATEGORIA i ARTICLE, que les hauràs de representar com a documents de 2 col·leccions anomenades de la mateixa manera. En els documents de la col·lecció ARTICLE, el codi de categoria serà el _id, mentre que en els documents de la col·lecció ARTICLE, el codi de l'article serà el _id.
- Insereix els documents corresponents a les categories de l'exercici 6.93
- Insereix els documents corresponents als articles de l'exercici 6.94
- Fes una consulta en què apareguen tots els articles amb la seua descripció i també la descripció de la seua categoria
- Modifica l'anterior per a que apareguen només les descripcions de l'article i de la categoria
- Com que les dades del document reunit, que en aquest cas és categoria, podem utilitzar $unwind per a "desconstruir" aquest array
- Una vegada desconstruït l'array és quan podrem projectar sobre la descripció de l'article (directament) i sobre la descripció de la categoria reanomenant el camp i subcamp
- Fes una consulta on aparega la descripció de cada categoria, amb el número d'articles de cada categoria i el preu mitjà.
- Insereix els documents corresponents als clients de l'exercici 6.95. No ens importarà el codi de població
- Insereix les factures corresponents als exercicis 6.96 i 6.97. Observa que la millor manera d'introduir les línies de factura és dins de la mateixa factura, en un array.
- Fes una consulta per a traure el número de factura i el seu total
- Modifica l'anterior per a traure també el nom del client de la factura
- Trau un llistat de clients, com a mínim amb el seu nom, i dels articles que ha comprat, com a mínim amb la descripció de l'article
Llicenciat sota la Llicència Creative Commons Reconeixement SenseObraDerivada 4.0