Sei sulla pagina 1di 147

Access

Tema 6: Relaciones Laborales


Bases de datos
Las bases de datos, son sistemas que
permiten almacenar un gran conjunto de
datos de forma relacionada.
Lo interesante es que permiten recuperar
la informacin en un tiempo record y que
si la informacin esta lo suficientemente
bien catalogada, se le puede interrogar
como si fuese un ser humano.
Relaciones
Es importante destacar que Access es un
Gestor de Bases de Datos relacionales, es decir
que utiliza la relacin existente entre los datos
para llevar a cabo las consultas.
Existen otros modelos tales como los
orientados a objeto y los basados en inteligencia
artificial, pero son ms complejos de utilizar y
probablemente para aplicaciones sencillas slo
se complicara la programacin
Campos
Para disear una base de datos lo primero
es saber qu datos vamos a guardar:

Nombre
Apellidos
DNI
Telefono
etc
Campos
A cada uno de estos datos le damos el
nombre de campo. Por eso diremos algo
as como haz una bsqueda por el campo
nombre.
Hay que preguntarse si definimos un solo
campo Nombre o si bien queremos dos
Nombre y Apellidos
Campos
Lo ms sencillo es uno solo: Nombre
Sin embargo Apellidos + Nombre nos
permite ordenar la base de datos por
apellidos que es ms til que por nombre.
Hay que tener claro que uso se le dar a
la base de datos y sopesar el uso de
complejidad adicional que puede ser
fundamental o engorrosa.
Tipos de datos?
Nombre
Apellidos
DNI
Fecha de nacimiento
Edad

Nombre = Fecha de nacimiento = Edad?

Tipos de datos?
Nombre: Texto (mximo 255 caracteres)
Apellidos : Texto (mximo 255 caracteres)
DNI : Texto (mximo 9 caracteres)
Fecha de nacimiento: Fecha
Edad: Nmero (entre 1 y 120)

Nombre <> Fecha de nacimiento <> Edad

Tipos de datos?
Para que complicarnos, todo tipo Texto :D
Intenta ordenar entonces:


1
10
15
20
25
5
10
20
15
1
5
25
01
05
10
15
20
25
10
20
15
01
05
25
Culpable: Se ordena primero por el primer carcter entonces 5 es mayor que 20

Tipos de datos: Numrico
Tipos de datos: Numrico
Valor Descripcin (Description) Precisin decimal
Byte
Almacena nmeros entre
0 y 255 (no admite fracciones).
Ninguna
Decimal
Almacena nmeros entre -10^38-1 y 10^38-1 (.ADP)
Almacena nmeros entre -10^28-1 y 10^28-1 (.MDB)
28
Entero
Almacena nmeros entre
-32.768 y 32.767 (no admite fracciones).
Ninguna
Entero largo
(Predeterminado) Almacena nmeros entre
-2.147.483.648 y 2.147.483.647 (no admite fracciones).
Ninguna
Single
Almacena nmeros entre
-3,402823E38 y
-1,401298E-45
para valores negativos, y entre
1,401298E-45 y 3,402823E38 para valores positivos.
7
Double
Almacena nmeros entre
-1,79769313486231E308 y
-4,94065645841247E-324
para valores negativos, y entre
4,94065645841247E-324 y
1,79769313486231E308 para valores positivos.
15
Otros datos
Texto (hasta 255 caracteres)
Fecha / Hora
Memo (Texto infinito)
Moneda (, $)
Si / No
Objeto OLE
Hipervnculo
Datos adjuntos (fichero)


Ficha completa
Clave principal?
Si te fijas Access ha creado por defecto un
campo llamado ID y le ha puesto el icono
de una llave
Ademas el campo es auto numrico, de
decir que en cada registro pone un valor
diferente de cada vez
Este campo nos ayuda a diferenciar un
registro de otro (pueden existir dos
registros con los mismos datos por error).
Clave principal: Autonumrico
Clave principal
La clave principal permite referenciar a
uno de los registros de manera univoca.
Dentro de esta clase, si hicisemos una
base de datos, podramos referenciar a
una persona en concreto con su nombre y
sus dos apellidos.
Pero en Espaa hay mas de un Fco Javier
Martnez Garca
Clave principal
De hecho hay un F.J.M.G. que ha escrito un
libro sobre economa del trabajo y
evidentemente no soy yo.
Cmo arregla este problema el Gobierno de
Espaa y no se equivoca al hacernos la
declaracin de Hacienda?
El DNI identifica de manera unvoca a cada
espaol. No solo no se repite sino que adems
una persona solo puede tener un DNI (en
teora).
Por lo tanto nuestro DNI es Clave Principal o
Primaria

Claves
La Clave Principal o Primaria no puede
repetirse.
Se especifica Clave Principal porque
existe tambin el concepto de Clave
Secundaria.
La Clave Secundaria si puede repetirse
(podra ser los Apellidos) pero es til para
crear ndices
Autonumrico
Sirve para numerar cada registro.
Registro?: Cada una de las fichas que tenemos. Si
tenemos 50 personas en nuestra base de datos con
nombre, apellidos, etc, tenemos 50 registros.
Con el autonumrico conseguimos asignar un numero
diferente a cada persona.
Es como se asigna el nmero de expediente a cada
alumno (te dan el autonumrico de la base de datos).
Si te sabes tu numero de expediente, buscar tu ficha en
el ordenador es muy fcil
Autonumrico como Clave
Qu sucede si metemos dos veces a la
misma persona en la B.D.?
Si hicisemos una lista de las personas
que tenemos, nos saldra mal la cuenta.
Podramos decirle a la B.D. que eliminase
a la persona que tiene esos datos.
Entonces eliminara los dos registros.
Con una clave autonumrica cada
registro tendra un numero diferente.


Concepto de ndice
Los sistemas Gestores de Bases de Datos
se diferencian unos de otros por la
tecnologa de ndices.
El ndice en una base de datos es anlogo
al ndice de un libro o a la tabla de
contenido que creamos en Word
Asocia un campo con la posicin en el
disco duro donde se encuentra ese
registro.
Concepto de ndice
Apellido Posicin en el disco
Martianez 5.300
Martn 1.350
Martnez 410
Martinn 2.523
Concepto de ndice
El ndice se guarda ordenado por el
campo (en este caso el apellido) y al lado
la ubicacin donde se encuentra el
registro con ese apellido.
Este ndice es un ejemplo que podra
usarse, pero en la prctica se utilizan
rboles Multicamino
Algunos sistemas de ndices son secretos.
Lista vs rboles
Valor Posicin en el disco
0 5.300
3 1.350
5 410
10 2.523
15 544
20 234
86 786
Arbol Binario
rboles vs Listas
En el ejemplo anterior localizar cualquier
dato, de media nos da la mitad de
movimientos que con cualquier lista
ordenada.
Encontrar el 10, requiere slo 1 paso en
rboles y 4 en listas ordenadas.
En el ejemplo hemos visto rboles
binarios, pero pueden ser multicamino
(logaritmo en base n)
Categoras
El campo Si / No est bien pero a veces
necesitamos ms valores.
Pensemos en nuestro ejemplo anterior.
Para integrar a Alumnos, Profesores y
P.A.S. se podra poner un campo
denominado Grupo.
Este campo Grupo, podra ser un campo
de Texto
Categoras
Grupo
PAS
Alumnado
Profesor Doctor
Profesor Asociado
Es difcil que todas las veces que
introduzcamos estas categoras, las
tecleemos exactamente igual.
A veces teclearemos PAS y otras P.A.S.

Categoras
Lo ideal sera poder elegir estas
categoras de una lista.
Access da la opcin de elegir de una lista
de valores.

Asistente
Asistente
Asistente
Bsqueda
Creando un formulario
Para ver bien los resultados que hemos
obtenido, crearemos una formulario.
Existe un asistente que nos guiar paso a
paso.

Creando un formulario
Creando un formulario
Creando un formulario
Creando un formulario
Creando un formulario
Creando un formulario
Adaptando un formulario
Viendo un formulario
Utilizando un formulario
Bsquedas en otra tabla
Hemos visto una forma sencilla de crear
una lista de valores que nos ayuda a
rellenar los datos.
Pero cuando se crea la necesidad de
distinguir la categora de una persona es
porque tiene un trato diferente para cada
categora.
Por ejemplo con el Estado Civil
Bsquedas en otra tabla
Crearemos una tabla Estado Civil que
contendr la denominacin y el descuento de
IRPF que se le hace en nmina segn ese
estado.
Es muy importante comprender que lo de
menos es si esta Casado o No (bueno para
Ana Rosa es fundamental).
Lo realmente importante es la retencin sobre
el IRPF que se le hace en nmina a esa
persona, pero esta retencin est en base a su
estado.
Tabla Estado Civil
Tabla Estado Civil
Importante: Hemos dejado que Access
introduzca la Clave como Autonumrico,
veremos en breve porqu esto es
fundamental.
Como los datos que vamos a introducir
son sencillos (solo tenemos dos campos),
podemos abrir la tabla e introducirlos
directamente, sin necesidad de crear un
formulario
Tabla Estado Civil
Vinculando las tablas
Creemos el campo
Estado Civil en la
tabla Datos
Personales y como
tipo de dato
seleccionemos
Asistente para
bsquedas
Vinculando tablas
Esta vez cuando nos pregunte el
asistente, le diremos que queremos
seleccionar los valores desde otra tabla
Recoger valores
Los valores
que
asignaremos al
campo Estado
Civil de la
tabla Datos
Personales
los sacaremos
de la nueva
tabla que
hemos creado
Estado Civil
Seleccionar Campo
Ordenar (opcional)
Ancho de la lista
Relaciones?
Estado Civil -> Nmero?
Formulario para ver resultados
Todo esta correcto
Como vemos en el formulario todo est
correcto. Sin embargo porqu Estado
Civil es tipo nmero?.
Qu son las relaciones de las que
hablaba el cuadro de dialogo que deban
realizarse?
Vamos a buscar Relaciones en el men
(lo encontramos en Herramientas de base
de datos)
Relaciones
Explicacin
Efectivamente en el campo Estado Civill
de la tabla Datos Personales, se
almacena un nmero.
Si seleccionamos Soltero, en ese campo
no se almacena Soltero (porque es un
Texto y recordemos que ese campo es
numrico).
Entonces?

Tabla Estado Civil
Cdigo de Soltero
Si
quisieramos
asociar un
cdigo
numrico con
Soltero, qu
codigo
podramos
asociar?
Cdigo de Soltero
Hay dos
nmeros:
ID
Retencin
IRPF
Retencin
IRPF se
repite para
ms de un
Estado Civil
Cdigo de Soltero
Sin embargo ID
al ser campo
Clave no puede
repetirse.
El valor 1 de ID
no puede
repetirse para
ningun otro
valor de Estado
Civil.
ID = 1 implica
Estado Civil =
Soltero
Cdigo de Soltero
Podramos
entonces
guardar el valor
1 en vez de
Soltero?
Para qu?
De momento
para ahorrar
espacio, pero
en la prctica
para algo ms
importate.
Estado Civil
Echemos un
vistazo a los
valores de la
tabla Estado
Civil
Son
polticamente
correctos?

Polticamente correcto?
Ventaja
Al hacer los cambios, ya no tengo que
modificar a cada Casado para poner
Casado/a, sino que al modificarlo en la
tabla de Estado Civil, queda modificado en
el resultado final de Datos personales.
Relaciones
Telfonos infinitos
Cuando se crea una ficha, se puede poner
un telfono de contacto.
Cuntos telfonos?
Casa
Personal (Mvil)
Trabajo (Oficina)
Fax
....
Telfonos infinitos
Podemos querer poner todos los telfonos
de contacto que queramos, incluyendo el
telfono de sus padres, amigos, esposa,
hijos.
Incluso correos electrnicos.
Cuntos campos dejamos para ello?
10 ser suficiente?
Tablas maestro - esclavo
Qu tal si creamos una tabla solo para
los contactos?



Tablas maestro - esclavo
Creamos un campo contacto de tipo texto,
donde introducir nmeros de telfono,
direcciones de correo electrnico, de
correo postal, direcciones de pginas
Web, nmeros de busca, direcciones ICQ,
Messenger, Google Talk, Skype, etc.
Ademas aadimos un campo (alumno),
para saber a que persona corresponde
cada contacto.
Tablas maestro - esclavo
Parece claro (importante) que el campo
Alumno, debe ser igual al campo ID de
datos personales.
Si Alumno (tabla Contactos) tiene el valor
1, significa que el valor Contacto
corresponde a alumno con el valor ID = 1
Es decir relacionamos la tabla Contacto
con la tabla DatosPersonales


Tablas maestro - esclavo
Uno a varios?
En la tabla contactos, el campo Alumnos
puede contener el valor 2 (que hace
referencia al alumno 2) muchsimas
veces, tantas como contactos para este
alumno tengamos.
Sin embargo slo hay un alumno 2

Uno (Alumno) a Varios (Contactos)
Viendo resultados
Los resultados pueden verse al crear un
formulario (con el asistente):

Aadiendo campos de otras tablas
Formulario y Subformulario
Resultado Maestro - Esclavo
Aumentando la complejidad
Con el ejemplo anterior, ya tenemos la
ficha de los datos personales de unos
alumnos.
Qu falta para crear un expediente
acadmico?
La relacin de asignaturas que ha cursado
con el numero de convocatorias y la nota
final.
Expediente acadmico
Con lo que sabemos hasta ahora habra
que ver las 50 posibles asignaturas que
pueden cursar y crear un campo para
cada una de ellas.
Tres campos por cada una:
Nota Final
Numero de convocatorias gastadas
Matriculado Si / No
Expediente acadmico
Crearemos tres campos por asignatura.
Cada uno con el nombre de la asignatura
abreviado un subguin y a continuacin si
est matriculado, su nota final y las
convocatorias que le quedan disponibles.
ECOTRABAJO_Nota Final
ECOTRABAJO_convocatorias
ECOTRABAJO_Matriculado

Expediente acadmico
Expediente Acadmico
Solo quedara crear los restantes 3 * 49
asignaturas (147 campos mas) para
completar nuestra base de datos.
No les parece raro?Seguro que as se
hace?Es mucho lo, no?
Existen maneras mucho mejores de hacer
esto.
De hecho una tabla hecha as no est en
forma normal.
Tabla de asignaturas
De momento vamos a crear una tabla con
la relacin de las asignaturas.

Tabla de asignaturas (Planes)
Un vistazo a las relaciones
Tabla de asignaturas
Tabla puente
Una vez tenemos las asignaturas en una
tabla necesitamos crear una tabla que
relacione un alumno con una asignatura.
Crearemos una tabla donde est reflejada
la asignatura, si est matriculado, el
nmero de convocatorias que ha gastado
y la nota final que tiene actualmente.

Tabla puente
Relaciones
Relaciones
En las relaciones es muy importante saber
en qu tabla debemos crear el campo que
va a conectar dos de ellas.
De momento aqu hemos conectado
siempre un numrico con un
autonumrico.
Como el autonumrico es siempre nico,
tenemos relaciones Uno a Varios.

Relaciones
Formulario Expediente
Segunda tabla
Formulario y subformulario
Distribucin Subformulario
Estilo
Dos formularios conectados
Formulario final
Consultas
El diseo y la introduccin de datos, debe
ser la primera fase de la vida de una
aplicacin de base de datos.
A lo largo de la vida de la aplicacin,
deben completarse datos, pero sobre todo
deben consultarse esos datos.
Si no se crean consultas e informes, el
contenido de la base de datos no servira
para nada.
Consulta
Las consultas sacan ciertos datos de las
tablas.
Muchas veces se sacan varios datos de
varias tablas simultaneamente.
Con las relaciones no hay peligro de que
esos datos queden desvinculados.
Con las consultas permiten incluso hacer
algunas operaciones sobre los datos.
Consultas
Las consultas se crean utilizando un
lenguaje muy extendido: SQL.
Structured Query Languaje
Access soporta este lenguaje, pero pone a
disposicin de los usuarios una interfaz
que permite crear consultas sin saber ni
siquiera que SQL existe.
Access traducir lo que le digamos a SQL
Creando una consulta
Ir a Crear, apartado Otros, Diseo de
Consultas.
Mostrar
Tabla
Mostrar tabla
Creando una consulta
Resultados de la consulta

Vistas
Cdigo SQL
Consultas
Una consulta es un subconjunto del total
de registros que contiene una tabla.
Una consulta puede tener todos los
campos de una tabla o pueden
visualizarse solamente los que
necesitemos
Adems se les puede cambiar de orden
para apreciarlos mejor
Consultas
Una sola consulta puede extraer datos de
ms de una tabla.
Lo ideal es que estas tablas tengan
alguna relacin ya definida.

Restringiendo resultados
Restringiendo resultados
Parmetros de restriccin
Si tuviese que hacer una consulta por
cada valor que necesitase recoger, tendra
que duplicar mi trabajo.
Lo normal es hacer una sola consulta por
ejemplo para saber quien supera un lmite
determinado de salario y poder cambiar
ese lmite cada vez que ejecuto la
consulta.
Es decir pasamos el salario por parmetro
Parametrizando consultas
Pidiendo valores para parmetros
Resultados
Ocultando campos restrictivos
Ocultando campos restrictivos
Datos de varias tablas
Resultado varias tablas
Totalizando
Haciendo cuentas
Asignaturas x alumno
Planes de estudio
Orden
Orden: Resultados
Agrupando
Agrupando: Resultados
Informes
Un informe es la mejor manera de imprimir
los resultados de una tabla o de una
consulta.
Permite aadir cabecera, nmero de
pgina, logotipo de la empresa, etc.
Para crear los informes lo ms sencillo es
utilizar el asistente.
Los informes los encontraremos en la
pestaa izquierda de Access.
Informes
Asistente para informes
Agrupando en informes
Mas agrupacin
Orden de los resultados
Opciones de resumen
Distribucin
Estilo
Fin del informe
Resultados: Planes?
Diseo y propiedades del informe
Consulta del informe

Potrebbero piacerti anche