12.07.2015 Views

VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...

VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...

VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>de</strong> nombres diferenciados por cada usuario, y conposibilidad <strong>de</strong> actualización <strong>de</strong> vistas.3. La Aproximación Basada en Versiones<strong>de</strong> Tab<strong>la</strong>sEn el apartado anterior se ha visto que el dotara los alumnos <strong>de</strong> sus propias tab<strong>la</strong>s origina ciertosproblemas, pero que el compartir<strong>la</strong>s también. Laaproximación basada en versiones <strong>de</strong> tab<strong>la</strong>s que sepropone resuelve en buena parte el problema.Una versión <strong>de</strong> tab<strong>la</strong> T (tab<strong>la</strong> base) consiste enotra tab<strong>la</strong> T’ (tab<strong>la</strong>/versión <strong>de</strong>rivada) con <strong>la</strong> mismaestructura y restricciones que T, pero con distintaextensión [7]. Las versiones <strong>de</strong> tab<strong>la</strong>s ya soncontemp<strong>la</strong>das por algunos sistemas como Postgres[7]. En cierta forma, <strong>la</strong>s vistas son muy parecidas a<strong>la</strong>s versiones. Los cambios <strong>de</strong> extensión en <strong>la</strong> tab<strong>la</strong>base se propagan a <strong>la</strong>s vistas y versiones<strong>de</strong>rivadas. Lo que diferencia a versiones y vistas,es que los cambios en <strong>la</strong> versión no se propagan a<strong>la</strong> tab<strong>la</strong> base, a diferencia <strong>de</strong> <strong>la</strong>s vistasactualizables.Nuestra aportación consiste en <strong>la</strong> aplicación <strong>de</strong>estos conceptos para obtener un sistema <strong>de</strong>prácticas <strong>de</strong> SQL, sobre el que el profesor puedatener un cierto control sin constreñir <strong>de</strong>masiado <strong>la</strong>sposibilida<strong>de</strong>s <strong>de</strong> experimentación libre <strong>de</strong>l alumno.Para ello, <strong>la</strong>s tab<strong>la</strong>s <strong>de</strong>l profesor serán tab<strong>la</strong>s base,mientras que <strong>la</strong>s tab<strong>la</strong>s sobre <strong>la</strong>s que los alumnosexperimenten serán versiones <strong>de</strong>rivadas <strong>de</strong> <strong>la</strong>stab<strong>la</strong>s <strong>de</strong>l profesor. Los alumnos podrán consultar,pero no modificar, <strong>la</strong>s tab<strong>la</strong>s base; mientras que sípodrán modificar el estado <strong>de</strong> sus versiones.Con <strong>la</strong>s versiones <strong>de</strong> tab<strong>la</strong>s no hay problemas<strong>de</strong> bloqueos in<strong>de</strong>seados por concurrencia, puescada alumno sólo hace cambios sobre susversiones, y <strong>la</strong>s tab<strong>la</strong>s <strong>de</strong>l profesor se acce<strong>de</strong>n sóloen lectura. Sin embargo, se pue<strong>de</strong> experimentarcon concurrencia, sin más que el alumno mantengavarias sesiones simultáneas sobre el mismousuario, esto es, sobre sus propias versiones.El profesor tiene control absoluto sobre sustab<strong>la</strong>s, que no pue<strong>de</strong>n modificarse por losalumnos, pero a<strong>de</strong>más pue<strong>de</strong> introducir cambiosen <strong>la</strong>s versiones <strong>de</strong> los alumnos, como efecto <strong>de</strong> <strong>la</strong>propagación <strong>de</strong> los cambios que él haga sobre sustab<strong>la</strong>s base. Pue<strong>de</strong> introducir fi<strong>la</strong>s nuevas, cambiarcontenidos <strong>de</strong> <strong>la</strong>s fi<strong>la</strong>s <strong>de</strong> sus tab<strong>la</strong>s, o eliminar<strong>la</strong>s,y esos cambios van a propagarse a <strong>la</strong>s versionesque tengan los alumnos, con lo que el profesorpue<strong>de</strong> hacer ciertas suposiciones sobre el estado <strong>de</strong><strong>la</strong>s versiones, que le permitan, con muchaprobabilidad, saber cual va a ser <strong>de</strong> antemano <strong>la</strong>respuesta <strong>de</strong>l sistema, incluso en <strong>la</strong>s distintasversiones <strong>de</strong> los alumnos.Por tanto, <strong>la</strong> aproximación <strong>de</strong> versiones <strong>de</strong>tab<strong>la</strong>s es <strong>la</strong> más a<strong>de</strong>cuada para po<strong>de</strong>r impartirc<strong>la</strong>ses guiadas <strong>de</strong> SQL interactivo, el problema esque no cualquier sistema permite implementar<strong>la</strong>.4. Implementación GenéricaLa implementación <strong>de</strong> un sistema basado enversiones <strong>de</strong> tab<strong>la</strong>s ya viene <strong>de</strong>scrita por encima en[7]. La i<strong>de</strong>a es que por cada tab<strong>la</strong> que se versione(por ejemplo Clientes), existan dos nuevas tab<strong>la</strong>ssoporte (en nuestro caso vadd_Clientes yv<strong>de</strong>l_Clientes).La tab<strong>la</strong> vadd tiene <strong>la</strong> misma estructura que <strong>la</strong>tab<strong>la</strong> base, y contiene:• Las fi<strong>la</strong>s que se inserten por el alumno en <strong>la</strong>versión <strong>de</strong> <strong>la</strong> tab<strong>la</strong>.• Las fi<strong>la</strong>s que el alumno haya cambiado conlos valores nuevos.La tab<strong>la</strong> v<strong>de</strong>l sólo contiene un i<strong>de</strong>ntificadorque haga referencia a <strong>la</strong>s fi<strong>la</strong>s <strong>de</strong> <strong>la</strong> tab<strong>la</strong> base. Enel caso <strong>de</strong> los sistemas objeto-re<strong>la</strong>cionales, comoPostgres, dicho i<strong>de</strong>ntificador es el OID (ObjectI<strong>de</strong>ntifier). Este i<strong>de</strong>ntificador indicará:• Las referencias a fi<strong>la</strong>s que los alumnos haneliminado <strong>de</strong> <strong>la</strong> tab<strong>la</strong> base.• Las referencias a fi<strong>la</strong>s <strong>de</strong> <strong>la</strong> tab<strong>la</strong> base que losalumnos hayan cambiado.Todo ello, permite <strong>de</strong>finir <strong>la</strong> versión como unavista tal y como muestra <strong>la</strong> figura.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!