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...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

esquemas y privilegios en función <strong>de</strong>l tipo <strong>de</strong>contenidos. En el apartado 3 <strong>de</strong>scribiremos <strong>la</strong>aproximación basada en versiones <strong>de</strong> tab<strong>la</strong>s,a<strong>de</strong>cuada para prácticas guiadas. En el apartado 4,<strong>de</strong>scribiremos los puntos más notables <strong>de</strong> unaimplementación real en PostgreSQL <strong>de</strong> <strong>la</strong>aproximación basada en versiones <strong>de</strong> tab<strong>la</strong>s.Finalmente, en el apartado 5 se comentarán <strong>la</strong>sconclusiones y trabajos futuros.2. P<strong>la</strong>nteamiento <strong>de</strong>l Esquema <strong>de</strong> Base <strong>de</strong>Datos y Permisos en función <strong>de</strong> losContenidosLos contenidos posibles <strong>de</strong> SQL interactivo en unaasignatura introductoria a <strong>la</strong>s Bases <strong>de</strong> Datos<strong>de</strong>ben <strong>de</strong> cubrir el DML por completo, y el DDL anivel <strong>de</strong> <strong>de</strong>finición <strong>de</strong> tab<strong>la</strong>s y vistas. Laexperimentación con concurrencia y con vistasactualizables también <strong>de</strong>be <strong>de</strong> estar amparada. Eneste apartado mostraremos cómo p<strong>la</strong>ntear losesquemas y privilegios <strong>de</strong> <strong>la</strong> base <strong>de</strong> datos paracada uno <strong>de</strong> estos contenidos.2.1. Las Consultas SELECTLa configuración más habitual para una prácticaguiada sobre consultas SELECT es hacer quetodos los alumnos compartan <strong>la</strong>s tab<strong>la</strong>s <strong>de</strong>lprofesor, <strong>de</strong>s<strong>de</strong> un usuario distinto <strong>de</strong> forma quelos alumnos no puedan modificar su contenido,sino que tan solo puedan consultarlo. Las tab<strong>la</strong>s<strong>de</strong>l profesor tendrían únicamente permiso <strong>de</strong>lectura para los usuarios alumnos. Los alumnospodrían acce<strong>de</strong>r perfectamente <strong>de</strong>s<strong>de</strong> un únicousuario <strong>de</strong>l sistema para facilitar el mantenimiento.Este usuario alumno no necesitaría privilegios quele permitiesen crear objetos <strong>de</strong> <strong>la</strong> base <strong>de</strong> datoscomo tab<strong>la</strong>s o vistas. En esta situación el alumnopue<strong>de</strong> experimentar consultas con <strong>la</strong>s tab<strong>la</strong>s <strong>de</strong>lprofesor:1 Sin temor a que el alumno cree algún tipo <strong>de</strong>problema por exce<strong>de</strong>rse en <strong>la</strong> ocupación <strong>de</strong>disco, pues no pue<strong>de</strong> crear tab<strong>la</strong>s, ni modificar<strong>la</strong>s <strong>de</strong>l profesor.2 Sin temor a que bloquee <strong>la</strong>s operaciones <strong>de</strong>otros compañeros, pues todos estánaccediendo en modo consulta.3 El profesor pue<strong>de</strong> cambiar <strong>la</strong> extensión <strong>de</strong> <strong>la</strong>stab<strong>la</strong>s sobre <strong>la</strong> marcha para conseguir efectosparticu<strong>la</strong>res en <strong>la</strong>s consultas (introducirvalores nulos para ver comportamientosatípicos etc …) teniendo <strong>la</strong> certeza <strong>de</strong> queesos efectos son inmediatamente visibles atodos los alumnos. Dado que los alumnos y elprofesor acce<strong>de</strong>n a los mismos datos, esconveniente que el sistema admita re<strong>la</strong>jar elcontrol <strong>de</strong> <strong>la</strong> concurrencia <strong>de</strong> forma que en <strong>la</strong>misma transacción <strong>de</strong>l alumno se puedanobtener distintas lecturas <strong>de</strong> <strong>la</strong>s tab<strong>la</strong>s <strong>de</strong>lprofesor, <strong>la</strong>s cuales pue<strong>de</strong>n ir cambiando poracción <strong>de</strong> transacciones cometidas <strong>de</strong> éste.Este nivel <strong>de</strong> concurrencia re<strong>la</strong>jado es elconocido como Read Commited en el estándarSQL/ISO[6]. Esta configuración vieneactivada por <strong>de</strong>fecto en algunos sistemascomo Oracle. Otra solución posible al mismoproblema, es que los alumnos tengan activada<strong>la</strong> opción <strong>de</strong> autocommit, habitual en casitodos los sistemas, <strong>de</strong> forma que cada una <strong>de</strong>sus consultas sea una transacción en sí misma.Des<strong>de</strong> el punto <strong>de</strong> vista estético, estep<strong>la</strong>nteamiento pue<strong>de</strong> resultar feo en sistemas comoOracle [5] que tienen un espacio <strong>de</strong> nombre <strong>de</strong>tab<strong>la</strong>s distinto para cada usuario. Esto obliga a queel alumno para referenciar a <strong>la</strong> tab<strong>la</strong> X <strong>de</strong>l usuarioprofesor, tenga que escribir profesor.X. Esteproblema pue<strong>de</strong> ocultarse <strong>de</strong>finiendo una vista 4con el mismo nombre que <strong>la</strong> tab<strong>la</strong> (X) en e<strong>la</strong>lumno (CREATE VIEW X AS SELECT *FROM Profesor.X).Des<strong>de</strong> el punto <strong>de</strong> vista funcional, el principalinconveniente <strong>de</strong> esta aproximación, es que e<strong>la</strong>lumno no pue<strong>de</strong> experimentar por si sólo,creando sus propios casos (crear sus propiastab<strong>la</strong>s, modificar <strong>la</strong> extensiones <strong>de</strong> <strong>la</strong>s tab<strong>la</strong>sexistentes) para ver cómo varían <strong>la</strong>s respuestas auna misma consulta.Esta aproximación sólo es válida para cuandoel profesor explica sin que el alumno participe, y –aparentemente- para <strong>la</strong> c<strong>la</strong>se <strong>de</strong> prácticas guiada.Nótese que si en una c<strong>la</strong>se guiada el profesor, en4 O bien un sinónimo (SYNONYM) <strong>de</strong> <strong>la</strong> tab<strong>la</strong> <strong>de</strong>lprofesor en el usuario alumno en el caso <strong>de</strong> aquellossistemas que dispongan <strong>de</strong> este tipo <strong>de</strong> objetos, como porejemplo Oracle [5].

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

Saved successfully!

Ooh no, something went wrong!