jueves, 2 de septiembre de 2010

Adaptación y Complementación de Programas






Combinar tablas
Combinamos dos tablas por un campo (o varios) de unión de la misma forma que relacionamos tablas en la ventana Relaciones arrastrando el campo de unión de una de las tablas sobre el campo de unión de la otra tabla. De hecho si añadimos a la zona de tablas relacionadas, estas aparecerán automáticamente combinadas en la zona de tablas de la ventana Diseño de Consulta.
También se combinan automáticamente tablas que tengan un campo con el mismo nombre en las dos tablas aunque no exista una relación definida entre ellas.
Cuando dos tablas están combinadas en una consulta, para cada fila de una de las tablas Access busca directamente en la otra tabla las filas que tienen el mismo valor en el campo de unión, con lo cual se emparejan sólo las filas que luego aparecen en el resultado y la consulta es más eficiente.
Cuando las tablas están combinadas aparecen en la ventana diseño de la consulta de la siguiente manera:

Las composiciones vistas hasta ahora son composiciones internas ya que todos los valores de las filas del resultado son valores que están en las tablas que se combinan.
Con una composición interna sólo se obtienen las filas que tienen al menos una fila de la otra tabla que cumpla la condición, veamos un ejemplo:
En la lista de alumnos comentada anteriormente no saldrán los alumnos que no tengan curso asignado.
Pues en los casos en que queremos que también aparezcan las filas que no tienen una fila coincidente en la otra tabla, utilizaremos la Composición externa.

La composición externa
La composición externa se utiliza cuando queremos que también aparezcan las filas que no tienen una fila coincidente en la otra tabla.
Este tipo de combinación se define de la siguiente manera:
Añadir las dos tablas a la zona de tablas de la consulta.
Combinar las dos tablas por los campos de unión:
Hacer doble clic sobre la línea que une las dos tablas
Aparece el cuadro de diálogo Propiedades de la combinación

Por defecto la combinación es interna (incluye sólo las filas donde los campos combinados (campos de unión) de ambas tablas sean iguales), si queremos definir una combinación externa deberemos seleccionar la opción 2 o la 3 según lo que queramos obtener.
  Si seleccionamos la opción 2,
la combinación aparecerá de la siguiente forma:

Si seleccionamos la opción 3
la combinación aparecerá de la siguiente forma:

El sentido de la flecha nos indica de qué tabla obtendremos todos los registros.
Las Consultas de resumen
Definición
En Access podemos definir un tipo de consultas cuyas filas resultantes son un resumen de las filas del origen de la consulta, por eso las denominamos consultas de resumen, también se conocen como consultas sumarias.
Es importante entender que las filas del resultado de una consulta de resumen tienen una naturaleza distinta a las filas de las demás tablas resultantes de consultas, ya que corresponden a varias filas de la tabla origen.
Para simplificar, veamos el caso de una consulta basada en una sola tabla, una fila de una consulta 'no resumen' corresponde a una fila de la tabla origen, contiene datos que se encuentran en una sola fila del origen, mientras que una fila de una consulta de resumen corresponde a un resumen de varias filas de la tabla origen, esta diferencia es lo que va a originar una serie de restricciones que sufren las consultas de resumen y que veremos a lo largo del tema. Por ejemplo este tipo de consulta no permite modificar los datos del origen.
En el ejemplo que viene a continuación tienes un ejemplo de consulta normal en la que se visualizan las filas de una tabla de oficinas ordenadas por región, en este caso cada fila del resultado se corresponde con una sola fila de la tabla oficinas, mientras que la segunda consulta es una consulta resumen, cada fila del resultado se corresponde con una o varias filas de la tabla oficinas.
  Una consulta de resumen se define activando la opción Totales del menú Ver, 

o bien haciendo clic sobre el iconode la barra de herramientas
En cualquiera de los dos casos se añade una fila a la cuadrícula QBE, la fila Total:
Todas las columnas que incluyamos en la cuadrícula deberán tener un valor en esa fila, ese valor le indicará a Access qué hacer con los valores contenidos en el campo escrito en la fila Campo:
Los valores que podemos indicar en la fila Total: son los que aparecen al desplegar la lista asociada a la celda como puedes ver en la imagen de la derecha:

Las funciones de agregado
Las funciones de agregado son funciones que permiten obtener un resultado basado en los valores contenidos en una columna de una tabla, son funciones que sólo se pueden utilizar en una consulta de resumen ya que obtienen un 'resumen' de los valores contenidos en las filas de la tabla. Para utilizar estas funciones podemos escribirlas directamente en la fila Campo: de la cuadrícula como veremos más adelante pero podemos utilizar una forma más cómoda que es seleccionando en la fila Total: de la cuadrícula la opción correspondiente a la función.
A continuación describiremos esas opciones.
La opción Suma calcula la suma de los valores indicados en el campo. Los datos que se suman deben ser de tipo numérico (entero, decimal, coma flotante o monetario...). El resultado será del mismo tipo aunque puede tener una precisión mayor.
La opción Promedio calcula el promedio (la media aritmética) de los valores contenidos en el campo, también se aplica a datos numéricos, y en este caso el tipo de dato del resultado puede cambiar según las necesidades del sistema para representar el valor del resultado.
La opción DesvEst calcula la desviación estándar de los valores contenidos en la columna indicada en el argumento. Si la consulta base (el origen) tiene menos de dos registros, el resultado es nulo.
La opción Var calcula la varianza de los valores contenidos en la columna indicada en el argumento. Si la consulta base (el origen) tiene menos de dos registros, el resultado es nulo.
Es interesante destacar que el valor nulo no equivale al valor 0, las funciones de resumen no consideran los valores nulos mientras que consideran el valor 0 como un valor, por lo tanto en el promedio y la desviación estándar los resultados no serán los mismos con valores 0 que con valores nulos.
Las opciones Mín y Max determinan los valores menores y mayores respectivamente de la columna. Los valores de la columna pueden ser de tipo numérico, texto o fecha. El resultado de la función tendrá el mismo tipo de dato que la columna. Si la columna es de tipo numérico Mín devuelve el valor menor contenido en la columna, si la columna es de tipo texto Mín devuelve el primer valor en orden alfabético, y si la columna es de tipo fecha, Mín devuelve la fecha más antigua y Max la fecha más posterior.
Las opciones Primero y Último se utilizan para obtener el primer y último registro del grupo sobre el que se realizan los cálculos. El orden lo determina el orden cronológico en el que se escribieron los registros. Ordenar los registros no tiene ningún efecto sobre estas opciones.
La opción Cuenta cuenta el número de valores que hay en la columna, los datos de la columna pueden ser de cualquier tipo, y la función siempre devuelve un número entero. Si la columna contiene valores nulos esos valores no se cuentan, si en la columna aparece un valor repetido, lo cuenta varias veces.
Para que cuente en número de registros hay que utilizar la función Cuenta(*) devuelve el número de filas por lo tanto contará también los valores nulos. En este caso tenemos que seleccionar la opción Expresión y escribirlo así:

 
 Ejercicios de Composición externa
  • Hacer una consulta que informe acerca de los alumnos que pertenecen a cada curso. El resultado debiera ser similar a lo que se ve en este gráfico, en donde se aprecia que existen cursos sin alumnos inscriptos. Se podría llamar alumnos x curso.

 
  













  • Hacer una consulta pero solo de los cursos que tienen alumnos inscriptos. El resultado de dicha consulta debería ser similar al de este gráfico, en donde se puede apreciar que no aparecen cursos sin alumnos. (Comparar con el gráfico anterior para apreciar diferencias). Se podría llamar alumnos x curso (con inscriptos).

  • Realizar la misma consulta anterior, pero solo de los alumnos de la banda. Se podría llamar alumnos x curso de la banda.


  • Listado de cada curso con su respectivo profesor. En esta consulta se tendría que poder apreciar aquellos cursos que todavía no tienen asignado ningún profesor. Tenga en cuenta que para realizar este ejercicio deberá primero modificar el diseño de la BD, eliminando la restricción de integridad entre las tablas materias y profesores. En el gráfico se puede apreciar por ejemplo la materia pasantía que todavía no tiene profesor.


  • Consulta de las notas de todos los alumnos en el primer cuatrimestre.


  • La misma consulta anterior, pero solo de los alumnos de 2do 4ta.

No hay comentarios:

Publicar un comentario