Access Tema 6: Relaciones Laborales. Bases de datos Las bases de datos, son sistemas que permiten...

Post on 20-Apr-2015

5 views 0 download

Transcript of Access Tema 6: Relaciones Laborales. Bases de datos Las bases de datos, son sistemas que permiten...

AccessAccess

Tema 6: Relaciones LaboralesTema 6: Relaciones Laborales

Bases de datosBases de datos

Las bases de datos, son sistemas que Las bases de datos, son sistemas que permiten almacenar un gran conjunto de permiten almacenar un gran conjunto de datos de forma relacionada.datos de forma relacionada.

Lo interesante es que permiten recuperar Lo interesante es que permiten recuperar la información en un tiempo record y que la información en un tiempo record y que si la información esta lo suficientemente si la información esta lo suficientemente bien catalogada, se le puede interrogar bien catalogada, se le puede interrogar como si fuese un ser humano.como si fuese un ser humano.

RelacionesRelaciones

Es importante destacar que Access es un Es importante destacar que Access es un Gestor de Bases de Datos relacionales, es decir Gestor de Bases de Datos relacionales, es decir que utiliza la relación existente entre los datos que utiliza la relación existente entre los datos para llevar a cabo las consultas.para llevar a cabo las consultas.

Existen otros modelos tales como los Existen otros modelos tales como los orientados a objeto y los basados en inteligencia orientados a objeto y los basados en inteligencia artificial, pero son más complejos de utilizar y artificial, pero son más complejos de utilizar y probablemente para aplicaciones sencillas sólo probablemente para aplicaciones sencillas sólo se complicaría la programaciónse complicaría la programación

CamposCampos

Para diseñar una base de datos lo primero Para diseñar una base de datos lo primero es saber qué datos vamos a guardar:es saber qué datos vamos a guardar:

NombreNombre ApellidosApellidos DNIDNI TelefonoTelefono etcetc

CamposCampos

A cada uno de estos datos le damos el A cada uno de estos datos le damos el nombre de campo. Por eso diremos algo nombre de campo. Por eso diremos algo así como “haz una búsqueda por el campo así como “haz una búsqueda por el campo nombre”.nombre”.

Hay que preguntarse si definimos un solo Hay que preguntarse si definimos un solo campo “Nombre” o si bien queremos dos campo “Nombre” o si bien queremos dos “Nombre” y “Apellidos”“Nombre” y “Apellidos”

CamposCampos

Lo más sencillo es uno solo: NombreLo más sencillo es uno solo: Nombre Sin embargo Apellidos + Nombre nos Sin embargo Apellidos + Nombre nos

permite ordenar la base de datos por permite ordenar la base de datos por apellidos que es más útil que por nombre.apellidos que es más útil que por nombre.

Hay que tener claro que uso se le dará a Hay que tener claro que uso se le dará a la base de datos y sopesar el uso de la base de datos y sopesar el uso de complejidad adicional que puede ser complejidad adicional que puede ser fundamental o engorrosa.fundamental o engorrosa.

¿Tipos de datos?¿Tipos de datos?

NombreNombre ApellidosApellidos DNIDNI Fecha de nacimientoFecha de nacimiento EdadEdad

¿Nombre = Fecha de nacimiento = Edad?¿Nombre = Fecha de nacimiento = Edad?

¿Tipos de datos?¿Tipos de datos?

Nombre: Texto (máximo 255 caracteres)Nombre: Texto (máximo 255 caracteres) Apellidos : Texto (máximo 255 caracteres)Apellidos : Texto (máximo 255 caracteres) DNI : Texto (máximo 9 caracteres)DNI : Texto (máximo 9 caracteres) Fecha de nacimiento: FechaFecha de nacimiento: Fecha Edad: Número (entre 1 y 120) Edad: Número (entre 1 y 120)

Nombre <> Fecha de nacimiento <> EdadNombre <> Fecha de nacimiento <> Edad

¿Tipos de datos?¿Tipos de datos?

Para que complicarnos, todo tipo Texto :DPara que complicarnos, todo tipo Texto :D Intenta ordenar entonces:Intenta ordenar entonces:

11

1010

1515

2020

2525

55

1010

2020

1515

11

55

2525

0101

0505

1010

1515

2020

2525

1010

2020

1515

0101

0505

2525

Culpable: Se ordena primero por el primer carácter entonces 5 es mayor que 20

Tipos de datos: NuméricoTipos de datos: Numérico

Tipos de datos: NuméricoTipos de datos: NuméricoValorValor Descripción (Description)Descripción (Description) Precisión decimalPrecisión decimal

ByteByte Almacena números entreAlmacena números entre0 y 255 (no admite fracciones).0 y 255 (no admite fracciones). NingunaNinguna

DecimalDecimal Almacena números entre -10^38-1 y 10^38-1 (.ADP)Almacena números entre -10^38-1 y 10^38-1 (.ADP)Almacena números entre -10^28-1 y 10^28-1 (.MDB)Almacena números entre -10^28-1 y 10^28-1 (.MDB) 2828

EnteroEntero Almacena números entreAlmacena números entre-32.768 y 32.767 (no admite fracciones).-32.768 y 32.767 (no admite fracciones). NingunaNinguna

Entero largoEntero largo (Predeterminado) Almacena números entre(Predeterminado) Almacena números entre-2.147.483.648 y 2.147.483.647 (no admite fracciones).-2.147.483.648 y 2.147.483.647 (no admite fracciones). NingunaNinguna

SingleSingle

Almacena números entreAlmacena números entre-3,402823E38 y-3,402823E38 y-1,401298E-45-1,401298E-45para valores negativos, y entrepara valores negativos, y entre1,401298E-45 y 3,402823E38 para valores positivos.1,401298E-45 y 3,402823E38 para valores positivos.

77

DoubleDouble

Almacena números entreAlmacena números entre-1,79769313486231E308 y-1,79769313486231E308 y-4,94065645841247E-324 -4,94065645841247E-324 para valores negativos, y entre para valores negativos, y entre 4,94065645841247E-324 y 4,94065645841247E-324 y 1,79769313486231E308 para valores positivos.1,79769313486231E308 para valores positivos.

1515

Otros datosOtros datos

Texto (hasta 255 caracteres)Texto (hasta 255 caracteres) Fecha / HoraFecha / Hora Memo (Texto infinito)Memo (Texto infinito) Moneda (€, $)Moneda (€, $) Si / NoSi / No Objeto OLEObjeto OLE HipervínculoHipervínculo Datos adjuntos (fichero)Datos adjuntos (fichero)

Ficha completaFicha completa

¿Clave principal?¿Clave principal?

Si te fijas Access ha creado por defecto un Si te fijas Access ha creado por defecto un campo llamado ID y le ha puesto el icono campo llamado ID y le ha puesto el icono de una llavede una llave

Ademas el campo es auto numérico, de Ademas el campo es auto numérico, de decir que en cada registro pone un valor decir que en cada registro pone un valor diferente de cada vezdiferente de cada vez

Este campo nos ayuda a diferenciar un Este campo nos ayuda a diferenciar un registro de otro (pueden existir dos registro de otro (pueden existir dos registros con los mismos datos por error).registros con los mismos datos por error).

Clave principal: AutonuméricoClave principal: Autonumérico

Clave principalClave principal

La clave principal permite referenciar a La clave principal permite referenciar a uno de los registros de manera univoca.uno de los registros de manera univoca.

Dentro de esta clase, si hiciésemos una Dentro de esta clase, si hiciésemos una base de datos, podríamos referenciar a base de datos, podríamos referenciar a una persona en concreto con su nombre y una persona en concreto con su nombre y sus dos apellidos.sus dos apellidos.

Pero en España hay mas de un Fco Javier Pero en España hay mas de un Fco Javier Martínez GarcíaMartínez García

Clave principalClave principal De hecho hay un F.J.M.G. que ha escrito un De hecho hay un F.J.M.G. que ha escrito un

libro sobre economía del trabajo y libro sobre economía del trabajo y evidentemente no soy yo.evidentemente no soy yo.

¿Cómo arregla este problema el Gobierno de ¿Cómo arregla este problema el Gobierno de España y no se equivoca al hacernos la España y no se equivoca al hacernos la declaración de Hacienda?declaración de Hacienda?

El DNI identifica de manera unívoca a cada El DNI identifica de manera unívoca a cada español. No solo no se repite sino que además español. No solo no se repite sino que además una persona solo puede tener un DNI (en una persona solo puede tener un DNI (en teoría).teoría).

Por lo tanto nuestro DNI es Clave Principal o Por lo tanto nuestro DNI es Clave Principal o PrimariaPrimaria

ClavesClaves

La Clave Principal o Primaria no puede La Clave Principal o Primaria no puede repetirse.repetirse.

Se especifica Clave Principal porque Se especifica Clave Principal porque existe también el concepto de Clave existe también el concepto de Clave Secundaria.Secundaria.

La Clave Secundaria si puede repetirse La Clave Secundaria si puede repetirse (podría ser los Apellidos) pero es útil para (podría ser los Apellidos) pero es útil para crear índicescrear índices

AutonuméricoAutonumérico Sirve para numerar cada registro.Sirve para numerar cada registro. ¿Registro?: Cada una de las fichas que tenemos. Si ¿Registro?: Cada una de las fichas que tenemos. Si

tenemos 50 personas en nuestra base de datos con tenemos 50 personas en nuestra base de datos con nombre, apellidos, etc, tenemos 50 registros.nombre, apellidos, etc, tenemos 50 registros.

Con el autonumérico conseguimos asignar un numero Con el autonumérico conseguimos asignar un numero diferente a cada persona.diferente a cada persona.

Es como se asigna el número de expediente a cada Es como se asigna el número de expediente a cada alumno (te dan el autonumérico de la base de datos).alumno (te dan el autonumérico de la base de datos).

Si te sabes tu numero de expediente, buscar tu ficha en Si te sabes tu numero de expediente, buscar tu ficha en el ordenador es muy fácilel ordenador es muy fácil

Autonumérico como ClaveAutonumérico como Clave

¿Qué sucede si metemos dos veces a la ¿Qué sucede si metemos dos veces a la misma persona en la B.D.?misma persona en la B.D.?

Si hiciésemos una lista de las personas Si hiciésemos una lista de las personas que tenemos, nos saldría mal la cuenta.que tenemos, nos saldría mal la cuenta.

Podríamos decirle a la B.D. que eliminase Podríamos decirle a la B.D. que eliminase a la persona que tiene esos datos.a la persona que tiene esos datos.

Entonces eliminaría los dos registros.Entonces eliminaría los dos registros. Con una clave autonumérica cada Con una clave autonumérica cada

registro tendría un numero diferente.registro tendría un numero diferente.

Concepto de índiceConcepto de índice

Los sistemas Gestores de Bases de Datos Los sistemas Gestores de Bases de Datos se diferencian unos de otros por la se diferencian unos de otros por la tecnología de índices.tecnología de índices.

El índice en una base de datos es análogo El índice en una base de datos es análogo al índice de un libro o a la tabla de al índice de un libro o a la tabla de contenido que creamos en Wordcontenido que creamos en Word

Asocia un campo con la posición en el Asocia un campo con la posición en el disco duro donde se encuentra ese disco duro donde se encuentra ese registro.registro.

Concepto de índiceConcepto de índice

ApellidoApellido Posición en el discoPosición en el disco

MartianezMartianez 5.3005.300

MartínMartín 1.3501.350

MartínezMartínez 410410

MartinónMartinón 2.5232.523

Concepto de índiceConcepto de índice

El índice se guarda ordenado por el El índice se guarda ordenado por el campo (en este caso el apellido) y al lado campo (en este caso el apellido) y al lado la ubicación donde se encuentra el la ubicación donde se encuentra el registro con ese apellido.registro con ese apellido.

Este índice es un ejemplo que podría Este índice es un ejemplo que podría usarse, pero en la práctica se utilizan usarse, pero en la práctica se utilizan Árboles MulticaminoÁrboles Multicamino

Algunos sistemas de índices son secretos.Algunos sistemas de índices son secretos.

Lista vs ÁrbolesLista vs Árboles

ValorValor Posición en el discoPosición en el disco

00 5.3005.300

33 1.3501.350

55 410410

1010 2.5232.523

1515 544544

2020 234234

8686 786786

Arbol BinarioArbol Binario

Árboles vs ListasÁrboles vs Listas

En el ejemplo anterior localizar cualquier En el ejemplo anterior localizar cualquier dato, de media nos da la mitad de dato, de media nos da la mitad de movimientos que con cualquier lista movimientos que con cualquier lista ordenada.ordenada.

Encontrar el 10, requiere sólo 1 paso en Encontrar el 10, requiere sólo 1 paso en árboles y 4 en listas ordenadas.árboles y 4 en listas ordenadas.

En el ejemplo hemos visto árboles En el ejemplo hemos visto árboles binarios, pero pueden ser multicamino binarios, pero pueden ser multicamino (logaritmo en base n)(logaritmo en base n)

CategoríasCategorías

El campo Si / No está bien pero a veces El campo Si / No está bien pero a veces necesitamos más valores.necesitamos más valores.

Pensemos en nuestro ejemplo anterior.Pensemos en nuestro ejemplo anterior. Para integrar a Alumnos, Profesores y Para integrar a Alumnos, Profesores y

P.A.S. se podría poner un campo P.A.S. se podría poner un campo denominado Grupo.denominado Grupo.

Este campo Grupo, podría ser un campo Este campo Grupo, podría ser un campo de Textode Texto

CategoríasCategorías

GrupoGrupo PASPAS AlumnadoAlumnado Profesor DoctorProfesor Doctor Profesor AsociadoProfesor Asociado

Es difícil que todas las veces que Es difícil que todas las veces que introduzcamos estas categorías, las introduzcamos estas categorías, las tecleemos exactamente igual.tecleemos exactamente igual.

A veces teclearemos PAS y otras P.A.S.A veces teclearemos PAS y otras P.A.S.

CategoríasCategorías

Lo ideal sería poder elegir estas Lo ideal sería poder elegir estas categorías de una lista.categorías de una lista.

Access da la opción de elegir de una lista Access da la opción de elegir de una lista de valores.de valores.

AsistenteAsistente

AsistenteAsistente

AsistenteAsistente

BúsquedaBúsqueda

Creando un formularioCreando un formulario

Para ver bien los resultados que hemos Para ver bien los resultados que hemos obtenido, crearemos una formulario.obtenido, crearemos una formulario.

Existe un asistente que nos guiará paso a Existe un asistente que nos guiará paso a paso.paso.

Creando un formularioCreando un formulario

Creando un formularioCreando un formulario

Creando un formularioCreando un formulario

Creando un formularioCreando un formulario

Creando un formularioCreando un formulario

Creando un formularioCreando un formulario

Adaptando un formularioAdaptando un formulario

Viendo un formularioViendo un formulario

Utilizando un formularioUtilizando un formulario

Búsquedas en otra tablaBúsquedas en otra tabla

Hemos visto una forma sencilla de crear Hemos visto una forma sencilla de crear una lista de valores que nos ayuda a una lista de valores que nos ayuda a rellenar los datos.rellenar los datos.

Pero cuando se crea la necesidad de Pero cuando se crea la necesidad de distinguir la categoría de una persona es distinguir la categoría de una persona es porque tiene un trato diferente para cada porque tiene un trato diferente para cada categoría.categoría.

Por ejemplo con el Estado CivilPor ejemplo con el Estado Civil

Búsquedas en otra tablaBúsquedas en otra tabla

Crearemos una tabla Estado Civil que contendrá Crearemos una tabla Estado Civil que contendrá la denominación y el descuento de IRPF que se le la denominación y el descuento de IRPF que se le hace en nómina según ese estado.hace en nómina según ese estado.

Es muy importante comprender que lo de menos Es muy importante comprender que lo de menos es si esta Casado o No (bueno para “Ana Rosa” es si esta Casado o No (bueno para “Ana Rosa” es fundamental).es fundamental).

Lo realmente importante es la retención sobre el Lo realmente importante es la retención sobre el IRPF que se le hace en nómina a esa persona, IRPF que se le hace en nómina a esa persona, pero esta retención está en base a su estado.pero esta retención está en base a su estado.

Tabla Estado CivilTabla Estado Civil

Tabla Estado CivilTabla Estado Civil

Importante:Importante: Hemos dejado que Access Hemos dejado que Access introduzca la Clave como Autonumérico, introduzca la Clave como Autonumérico, veremos en breve porqué esto es veremos en breve porqué esto es fundamental.fundamental.

Como los datos que vamos a introducir Como los datos que vamos a introducir son sencillos (solo tenemos dos campos), son sencillos (solo tenemos dos campos), podemos abrir la tabla e introducirlos podemos abrir la tabla e introducirlos directamente, sin necesidad de crear un directamente, sin necesidad de crear un formularioformulario

Tabla Estado CivilTabla Estado Civil

Vinculando las tablasVinculando las tablas

Creemos el campo Creemos el campo Estado Civil en la Estado Civil en la tabla Datos tabla Datos Personales y como Personales y como tipo de dato tipo de dato seleccionemos seleccionemos “Asistente para “Asistente para búsquedas”búsquedas”

Vinculando tablasVinculando tablas

Esta vez cuando nos pregunte el Esta vez cuando nos pregunte el asistente, le diremos que queremos asistente, le diremos que queremos seleccionar los valores desde otra tablaseleccionar los valores desde otra tabla

Recoger valoresRecoger valores

Los valores Los valores que que asignaremos al asignaremos al campo “Estado campo “Estado Civil” de la Civil” de la tabla “Datos tabla “Datos Personales” Personales” los sacaremos los sacaremos de la nueva de la nueva tabla que tabla que hemos creado hemos creado “Estado Civil”“Estado Civil”

Seleccionar CampoSeleccionar Campo

Ordenar (opcional)Ordenar (opcional)

Ancho de la listaAncho de la lista

¿Relaciones?¿Relaciones?

¿Estado Civil -> Número?¿Estado Civil -> Número?

Formulario para ver resultadosFormulario para ver resultados

Todo esta correctoTodo esta correcto

Como vemos en el formulario todo está Como vemos en el formulario todo está correcto. Sin embargo ¿porqué Estado correcto. Sin embargo ¿porqué Estado Civil es tipo número?.Civil es tipo número?.

¿Qué son las relaciones de las que ¿Qué son las relaciones de las que hablaba el cuadro de dialogo que debían hablaba el cuadro de dialogo que debían realizarse?realizarse?

Vamos a buscar Relaciones en el menú Vamos a buscar Relaciones en el menú (lo encontramos en Herramientas de base (lo encontramos en Herramientas de base de datos)de datos)

RelacionesRelaciones

ExplicaciónExplicación

Efectivamente en el campo Estado Civill Efectivamente en el campo Estado Civill de la tabla Datos Personales, se de la tabla Datos Personales, se almacena un número.almacena un número.

Si seleccionamos “Soltero”, en ese campo Si seleccionamos “Soltero”, en ese campo no se almacena “Soltero” (porque es un no se almacena “Soltero” (porque es un Texto y recordemos que ese campo es Texto y recordemos que ese campo es numérico).numérico).

¿Entonces?¿Entonces?

Tabla Estado CivilTabla Estado Civil

Código de SolteroCódigo de Soltero

Si Si quisieramos quisieramos asociar un asociar un código código numérico con numérico con Soltero, ¿qué Soltero, ¿qué codigo codigo podríamos podríamos asociar?asociar?

Código de SolteroCódigo de Soltero

Hay dos Hay dos números:números: IDID Retención Retención

IRPFIRPF Retención Retención

IRPF se IRPF se repite para repite para más de un más de un Estado CivilEstado Civil

Código de SolteroCódigo de Soltero Sin embargo ID Sin embargo ID

al ser campo al ser campo Clave no puede Clave no puede repetirse.repetirse.

El valor 1 de ID El valor 1 de ID no puede no puede repetirse para repetirse para ningun otro ningun otro valor de Estado valor de Estado Civil.Civil.

ID = 1 implica ID = 1 implica Estado Civil = Estado Civil = SolteroSoltero

Código de SolteroCódigo de Soltero ¿Podríamos ¿Podríamos

entonces entonces guardar el valor guardar el valor 1 en vez de 1 en vez de Soltero?Soltero?

¿Para qué?¿Para qué? De momento De momento

para ahorrar para ahorrar espacio, pero espacio, pero en la práctica en la práctica para algo más para algo más importate.importate.

Estado CivilEstado Civil Echemos un Echemos un

vistazo a los vistazo a los valores de la valores de la tabla Estado tabla Estado CivilCivil

¿Son ¿Son políticamente políticamente correctos?correctos?

¿Políticamente correcto?¿Políticamente correcto?

VentajaVentaja

Al hacer los cambios, ya no tengo que Al hacer los cambios, ya no tengo que modificar a cada Casado para poner modificar a cada Casado para poner Casado/a, sino que al modificarlo en la Casado/a, sino que al modificarlo en la tabla de Estado Civil, queda modificado en tabla de Estado Civil, queda modificado en el resultado final de Datos personales.el resultado final de Datos personales.

RelacionesRelaciones

Teléfonos infinitosTeléfonos infinitos

Cuando se crea una ficha, se puede poner Cuando se crea una ficha, se puede poner un teléfono de contacto.un teléfono de contacto.

¿Cuántos teléfonos?¿Cuántos teléfonos? CasaCasa Personal (Móvil)Personal (Móvil) Trabajo (Oficina)Trabajo (Oficina) FaxFax ........

Teléfonos infinitosTeléfonos infinitos

Podemos querer poner todos los teléfonos Podemos querer poner todos los teléfonos de contacto que queramos, incluyendo el de contacto que queramos, incluyendo el teléfono de sus padres, amigos, esposa, teléfono de sus padres, amigos, esposa, hijos.hijos.

Incluso correos electrónicos.Incluso correos electrónicos. ¿Cuántos campos dejamos para ello?¿Cuántos campos dejamos para ello? ¿10 será suficiente?¿10 será suficiente?

Tablas maestro - esclavoTablas maestro - esclavo

¿Qué tal si creamos una tabla solo para ¿Qué tal si creamos una tabla solo para los contactos?los contactos?

Tablas maestro - esclavoTablas maestro - esclavo

Creamos un campo contacto de tipo texto, Creamos un campo contacto de tipo texto, donde introducir números de teléfono, donde introducir números de teléfono, direcciones de correo electrónico, de direcciones de correo electrónico, de correo postal, direcciones de páginas correo postal, direcciones de páginas Web, números de busca, direcciones ICQ, Web, números de busca, direcciones ICQ, Messenger, Google Talk, Skype, etc.Messenger, Google Talk, Skype, etc.

Ademas añadimos un campo (alumno), Ademas añadimos un campo (alumno), para saber a que persona corresponde para saber a que persona corresponde cada contacto.cada contacto.

Tablas maestro - esclavoTablas maestro - esclavo

Parece claro (importante) que el campo Parece claro (importante) que el campo Alumno, debe ser igual al campo ID de Alumno, debe ser igual al campo ID de datos personales.datos personales.

Si Alumno (tabla Contactos) tiene el valor Si Alumno (tabla Contactos) tiene el valor 1, significa que el valor Contacto 1, significa que el valor Contacto corresponde a alumno con el valor ID = 1corresponde a alumno con el valor ID = 1

Es decir relacionamos la tabla Contacto Es decir relacionamos la tabla Contacto con la tabla DatosPersonalescon la tabla DatosPersonales

Tablas maestro - esclavoTablas maestro - esclavo

¿Uno a varios?¿Uno a varios?

En la tabla contactos, el campo Alumnos En la tabla contactos, el campo Alumnos puede contener el valor 2 (que hace puede contener el valor 2 (que hace referencia al alumno 2) muchísimas referencia al alumno 2) muchísimas veces, tantas como contactos para este veces, tantas como contactos para este alumno tengamos.alumno tengamos.

Sin embargo sólo hay un alumno 2Sin embargo sólo hay un alumno 2

Uno (Alumno) a Varios (Contactos)Uno (Alumno) a Varios (Contactos)

Viendo resultadosViendo resultados

Los resultados pueden verse al crear un Los resultados pueden verse al crear un formulario (con el asistente):formulario (con el asistente):

Añadiendo campos de otras tablasAñadiendo campos de otras tablas

Formulario y SubformularioFormulario y Subformulario

Resultado Maestro - EsclavoResultado Maestro - Esclavo

Aumentando la complejidadAumentando la complejidad

Con el ejemplo anterior, ya tenemos la Con el ejemplo anterior, ya tenemos la ficha de los datos personales de unos ficha de los datos personales de unos alumnos.alumnos.

¿Qué falta para crear un expediente ¿Qué falta para crear un expediente académico?académico?

La relación de asignaturas que ha cursado La relación de asignaturas que ha cursado con el numero de convocatorias y la nota con el numero de convocatorias y la nota final.final.

Expediente académicoExpediente académico

Con lo que sabemos hasta ahora habría Con lo que sabemos hasta ahora habría que ver las 50 posibles asignaturas que que ver las 50 posibles asignaturas que pueden cursar y crear un campo para pueden cursar y crear un campo para cada una de ellas. cada una de ellas.

Tres campos por cada una:Tres campos por cada una: Nota FinalNota Final Numero de convocatorias gastadasNumero de convocatorias gastadas Matriculado Si / NoMatriculado Si / No

Expediente académicoExpediente académico

Crearemos tres campos por asignatura.Crearemos tres campos por asignatura. Cada uno con el nombre de la asignatura Cada uno con el nombre de la asignatura

abreviado un subguión y a continuación si abreviado un subguión y a continuación si está matriculado, su nota final y las está matriculado, su nota final y las convocatorias que le quedan disponibles.convocatorias que le quedan disponibles. ECOTRABAJO_Nota FinalECOTRABAJO_Nota Final ECOTRABAJO_convocatoriasECOTRABAJO_convocatorias ECOTRABAJO_MatriculadoECOTRABAJO_Matriculado

Expediente académicoExpediente académico

Expediente AcadémicoExpediente Académico

Solo quedaría crear los restantes 3 * 49 Solo quedaría crear los restantes 3 * 49 asignaturas (147 campos mas) para asignaturas (147 campos mas) para completar nuestra base de datos.completar nuestra base de datos.

¿No les parece raro?¿Seguro que así se ¿No les parece raro?¿Seguro que así se hace?¿Es mucho lío, no?hace?¿Es mucho lío, no?

Existen maneras mucho mejores de hacer Existen maneras mucho mejores de hacer esto.esto.

De hecho una tabla hecha así no está en De hecho una tabla hecha así no está en forma normal.forma normal.

Tabla de asignaturasTabla de asignaturas

De momento vamos a crear una tabla con De momento vamos a crear una tabla con la relación de las asignaturas.la relación de las asignaturas.

Tabla de asignaturas (Planes)Tabla de asignaturas (Planes)

Un vistazo a las relacionesUn vistazo a las relaciones

Tabla de asignaturasTabla de asignaturas

Tabla puenteTabla puente

Una vez tenemos las asignaturas en una Una vez tenemos las asignaturas en una tabla necesitamos crear una tabla que tabla necesitamos crear una tabla que relacione un alumno con una asignatura.relacione un alumno con una asignatura.

Crearemos una tabla donde esté reflejada Crearemos una tabla donde esté reflejada la asignatura, si está matriculado, el la asignatura, si está matriculado, el número de convocatorias que ha gastado número de convocatorias que ha gastado y la nota final que tiene actualmente.y la nota final que tiene actualmente.

Tabla puenteTabla puente

RelacionesRelaciones

RelacionesRelaciones

En las relaciones es muy importante saber En las relaciones es muy importante saber en qué tabla debemos crear el campo que en qué tabla debemos crear el campo que va a conectar dos de ellas.va a conectar dos de ellas.

De momento aquí hemos conectado De momento aquí hemos conectado siempre un numérico con un siempre un numérico con un autonumérico.autonumérico.

Como el autonumérico es siempre único, Como el autonumérico es siempre único, tenemos relaciones Uno a Varios.tenemos relaciones Uno a Varios.

RelacionesRelaciones

Formulario ExpedienteFormulario Expediente

Segunda tablaSegunda tabla

Formulario y subformularioFormulario y subformulario

Distribución SubformularioDistribución Subformulario

EstiloEstilo

Dos formularios conectadosDos formularios conectados

Formulario finalFormulario final

ConsultasConsultas

El diseño y la introducción de datos, debe El diseño y la introducción de datos, debe ser la primera fase de la vida de una ser la primera fase de la vida de una aplicación de base de datos.aplicación de base de datos.

A lo largo de la vida de la aplicación, A lo largo de la vida de la aplicación, deben completarse datos, pero sobre todo deben completarse datos, pero sobre todo deben consultarse esos datos.deben consultarse esos datos.

Si no se crean consultas e informes, el Si no se crean consultas e informes, el contenido de la base de datos no serviría contenido de la base de datos no serviría para nada.para nada.

ConsultaConsulta

Las consultas sacan ciertos datos de las Las consultas sacan ciertos datos de las tablas.tablas.

Muchas veces se sacan varios datos de Muchas veces se sacan varios datos de varias tablas simultaneamente.varias tablas simultaneamente.

Con las relaciones no hay peligro de que Con las relaciones no hay peligro de que esos datos queden desvinculados.esos datos queden desvinculados.

Con las consultas permiten incluso hacer Con las consultas permiten incluso hacer algunas operaciones sobre los datos.algunas operaciones sobre los datos.

ConsultasConsultas

Las consultas se crean utilizando un Las consultas se crean utilizando un lenguaje muy extendido: SQL.lenguaje muy extendido: SQL.

Structured Query LanguajeStructured Query Languaje Access soporta este lenguaje, pero pone a Access soporta este lenguaje, pero pone a

disposición de los usuarios una interfaz disposición de los usuarios una interfaz que permite crear consultas sin saber ni que permite crear consultas sin saber ni siquiera que SQL existe.siquiera que SQL existe.

Access traducirá lo que le digamos a SQLAccess traducirá lo que le digamos a SQL

Creando una consultaCreando una consulta

Ir a Crear, apartado Otros, Diseño de Ir a Crear, apartado Otros, Diseño de Consultas.Consultas.

MostrarTabla

Mostrar tablaMostrar tabla

Creando una consultaCreando una consulta

Resultados de la consultaResultados de la consulta

VistasVistas

Código SQLCódigo SQL

ConsultasConsultas

Una consulta es un subconjunto del total Una consulta es un subconjunto del total de registros que contiene una tabla.de registros que contiene una tabla.

Una consulta puede tener todos los Una consulta puede tener todos los campos de una tabla o pueden campos de una tabla o pueden visualizarse solamente los que visualizarse solamente los que necesitemosnecesitemos

Además se les puede cambiar de orden Además se les puede cambiar de orden para apreciarlos mejorpara apreciarlos mejor

ConsultasConsultas

Una sola consulta puede extraer datos de Una sola consulta puede extraer datos de más de una tabla. más de una tabla.

Lo ideal es que estas tablas tengan Lo ideal es que estas tablas tengan alguna relación ya definida.alguna relación ya definida.

Restringiendo resultadosRestringiendo resultados

Restringiendo resultadosRestringiendo resultados

Parámetros de restricciónParámetros de restricción

Si tuviese que hacer una consulta por Si tuviese que hacer una consulta por cada valor que necesitase recoger, tendría cada valor que necesitase recoger, tendría que duplicar mi trabajo.que duplicar mi trabajo.

Lo normal es hacer una sola consulta por Lo normal es hacer una sola consulta por ejemplo para saber quien supera un límite ejemplo para saber quien supera un límite determinado de salario y poder cambiar determinado de salario y poder cambiar ese límite cada vez que ejecuto la ese límite cada vez que ejecuto la consulta.consulta.

Es decir pasamos el salario por parámetroEs decir pasamos el salario por parámetro

Parametrizando consultasParametrizando consultas

Pidiendo valores para parámetrosPidiendo valores para parámetros

ResultadosResultados

Ocultando campos restrictivosOcultando campos restrictivos

Ocultando campos restrictivosOcultando campos restrictivos

Datos de varias tablasDatos de varias tablas

Resultado – varias tablasResultado – varias tablas

TotalizandoTotalizando

Haciendo cuentasHaciendo cuentas

Asignaturas x alumnoAsignaturas x alumno

Planes de estudioPlanes de estudio

OrdenOrden

Orden: ResultadosOrden: Resultados

AgrupandoAgrupando

Agrupando: ResultadosAgrupando: Resultados

InformesInformes

Un informe es la mejor manera de imprimir Un informe es la mejor manera de imprimir los resultados de una tabla o de una los resultados de una tabla o de una consulta.consulta.

Permite añadir cabecera, número de Permite añadir cabecera, número de página, logotipo de la empresa, etc.página, logotipo de la empresa, etc.

Para crear los informes lo más sencillo es Para crear los informes lo más sencillo es utilizar el asistente.utilizar el asistente.

Los informes los encontraremos en la Los informes los encontraremos en la pestaña izquierda de Access.pestaña izquierda de Access.

InformesInformes

Asistente para informesAsistente para informes

Agrupando en informesAgrupando en informes

Mas agrupaciónMas agrupación

Orden de los resultadosOrden de los resultados

Opciones de resumenOpciones de resumen

DistribuciónDistribución

EstiloEstilo

Fin del informeFin del informe

Resultados: ¿Planes?Resultados: ¿Planes?

Diseño y propiedades del informeDiseño y propiedades del informe

Consulta del informeConsulta del informe