¡IMPORTANTE!
Esta parte del primer capítulo aporta unas reflexiones básicas y fundamentales para comprender
posteriormente el resto de los contenidos de este curso con la claridad necesaria. Nos hará ser
capaces de comprender lo importante que es la fase de análisis para la realización de cualquier
aplicación Access.
Los pasos secuenciales a realizar para definir correctamente una base de datos bien podrían ser
los siguientes:
à c
à ^
à
à á
!
à
à
à
à j
c
à R
à R V
à R ?
à R ¢
à á
onfeccionar un
(un esquema) en el que se representa cada una de las
tareas definidas en el paso anterior, enlazando mediante flechas que tarea depende de cual y cual
no depende de ninguna otra. (esas flechas desembocarán en relaciones cuando se tengan
definidas las tablas).
!
Una vez definidas las tareas a realizar, tenerlas enumeradas, y debidamente plasmadas en un
diagrama de bloques (es decir, un esquema de dependencias que refleje en bloques lo que se
hace cotidianamente en ese trabajo): á
#
!
lientes, proveedores, artículos,
agencias de transporte, pedidos, vendedores... Estos bloques de datos, estos archivos, estos
almacenes de información posteriormente en Access constituirán las tablas.
Para el ejemplo inicial que nos va a servir para comprender el desarrollo de aplicaciones en
Access, a saber, la
& , los
serán, para cada tarea
definida y representada en el diagrama de bloques del punto anterior, los siguientes:
'
!
! Bolsa o bloque de información homogénea y referida a un mismo tema (por
ejemplo los clientes de una empresa), y a su vez organizada en fichas (a las tradicionales
!,
en Access, se les denomina registros). ada ficha o registro contiene a su vez un conjunto de
alojados en unos espacios o lugares denominados campos.
ada
(o ficha) contiene por lo tanto, un conjunto de datos referidos a un elemento dentro
del fichero. Por ejemplo, en un fichero de clientes, cada cliente tiene su ficha o registro. ada ficha,
a su vez, contendrá mas o menos
según el nivel de control y gestión de información
deseado, y dichos campos albergarán todos los datos del cliente que son necesarios para
desarrollar las tareas propias de la actividad.
Siempre, las
de mantenimiento sobre los datos de un archivo son:
Los '
!
! dependiendo del tipo de información que contienen, su peso específico
dentro de la gestión, las tareas en las que están implicados, si sirven para actualizar a otros
archivos o no, su duración en el tiempo... Pueden ser de
básicamente:
à c
!%
ontienen la información principal para el proceso. Su duración en el
tiempo es la del propio proceso y sus datos son actualizados por los archivos de
movimiento y los maestros a su vez, actualizan a los archivos históricos. j
à c
!
%
Sus registros tienen una vida corta dentro del
proceso, porque van cambiando con el propio proceso. Actualizan a los ficheros
maestros. j
!
"# "
" "$
%
!
"
%
"
à c
! !
ontienen registros que, en su momento, pertenecieron a los
archivos maestros o de movimiento y que fueron anexados a estos archivos como datos
históricos. Archivos que contienen registros que fueron actuales pero que en vez de ser
eliminados se almacenan en este tipo de archivo como medida de seguridad y almacén
de datos históricos. j
&
& &
&
&
"
!
" Quien sabe si a fecha del año que viene necesitamos
contactar con un cliente o un proveedor que lo fue nuestro, pero que a esa fecha ya no lo
es? Su información será encontrada en los archivos históricos.
a partir de los bloques de información ya identificados como ficheros de
datos en el punto anterior. Lo que tradicionalmente han sido siempre los archivos de datos
(pequeños o grandes cajones metálicos generalmente que contienen fichas de cartulina), en
Access y en la mayoría de los programas gestores de bases de datos se denominan .
Dichas tablas, son estructuras de filas y columnas que albergan referidos a un mismo tema.
ada fila llamada ahora
contiene la información que antes estaba plasmada en una ficha
del fichero. ada columna de una tabla representa un
. En la celda de la tabla en la que
intersecta una fila con una columna tendremos un determinado campo dentro del cual
normalmente se albergará un .
En una base de datos, las estructuras básicas, los OBJETOS principales sin los cuales no pueden
existir el resto de objetos de Access tales como consultas, formularios, informes y macros, son LAS
TABLAS. Suponen el pilar fundamental en el diseño general de un sistema de base de datos
relacional (que se basa en las relaciones entre las tablas).
En el ejemplo de gestión de pedidos las tablas a definir y crear en la base de datos desde Access
serán:
!
^
c
)
lientes
Artículos
Pedidos
Proveedores
Agencias de Transporte c
Vendedores de la empresa *
Los á
son diseños para obtener por impresora (también llamados listados), que se nutren
de las informaciones que están (se encuentran) en las tablas.
A éste proceso se le reconoce también, de forma más técnica, como "%c ácá j
c)^.
Estos códigos también se llaman identificadores y suelen recibir en las definiciones de las tablas
nombres tales como:
Los códigos (este tipo de campo), son los campos que posteriormente van a permitir enlazar o
relacionar dos tablas cuya información se desea utilizar conjuntamente en un proceso o fase de la
aplicación. Generalmente aunque no siempre, se relacionan dos tablas mediante campos de
código.
Hablando en términos de Access, éstos campos deberán tener la propiedad de indexado = Sí y con
o sin duplicados según proceda. Por ejemplo, la tabla de Pedidos se relacionará con la de Artículos
(productos) mediante el código del artículo. Tanto en una tabla como en otra, deberán ser campos
indexados aunque como es lógico, en la tabla de Artículos un mismo código NO se puede repetir
(indexado Sí y SIN duplicados -puede ser y deberá ser clave principal ), mientras que en la
tabla de Pedidos podremos tener un determinado artículo pedido varias veces por lo que será
indexado Sí pero ON duplicados.
De una sentada reflexión de sobre qué informaciones nos interesa gestionar sobre cada una de las
fases o
, es decir, de cada uno de los ficheros contemplados, es decir de
, obtenemos, por ejemplo, las siguientes conclusiones que vamos a plasmar en un
modelo de documento denominado 'ácj)c"jc^ (una para la gestión de pedidos, otra para
productos, para clientes, para agencias, vendedores, proveedores...)
'
!
+
,
c% j^"áá
á
Identificador único para el pedido
'
!
Fecha en la que se realiza el pedido
'
!j
Fecha en la que se entrega el pedido al cliente
'
!j ( Fecha en la que sale el pedido del almacén
Trabajamos con diferentes empresas para
'j (
realizar los envíos de los artículos
Precio que nos cuesta mandar el envío
á
Identificador único del cliente
Nombre de la compañía o empresa que nos
(
hace el pedido.
Nombre de la persona que nos ha hecho el
pedido
pedido.
iudad a la que va a ir el pedido
"
Región a la que va a ir el pedido.
ódigo postal del lugar a dónde va el pedido.
País a la que va a ir el pedido.
á
Identificador del producto
Nombre del producto
Precio que se negocia en el momento de hacer
$
cada pedido
Número de unidades que vamos a servir al
cliente del producto.
Descuento que se aplica y que se negocia en
el momento de hacer el pedido
Identificador del empleado que recoge el
áj
pedido
j
Nombre del empleado que recoge el pedido
Para que en un pedido consten todas las informaciones que se consideran necesarias, en principio
podríamos pensar que serían necesarios tantos campos en la estructura de la tabla como los
expuestos en la relación anterior, en la Ficha de tareas. Sin embargo, gracias a que trabajamos
con c
'
!
c% j^"áá
IdProducto Identificador único del producto
NombreProducto Nombre del producto
Número de unidades que hay en una
antidadPorUnidad
caja del producto.
PrecioUnidad Precio de cada unidad del producto.
ódigo del proveedor que suministra
este producto. Este campo se
IdProvee relacionará con el código de proveedor
(IdProveedor) en la tabla de
proveedores.
'
!
'
!
Por último en nuestra empresa hay varios vendedores y deseamos asociar a cada pedido que nos
realicen, a un vendedor, sólo de este modo, podremos llevar un control de comisiones a pagar a
los vendedores, cifras acumuladas de ventas por vendedor...
'
!
'
!
¡MUY IMPORTANTE!
En resumen, aquella información, que a priori, parezca que debe pertenecer a una tabla (con lo
que tendríamos que definir campos para guardarla), si, pensando en miles de registros para esa
tabla observamos que el contenido de ciertos campos se repite muchas veces, esos campos cuya
información redunda, deberemos "sacarlos" a otra tabla aparte y codificar (asignar códigos) a esos
elementos o registros de tal forma que al final, establezcamos una relación entre esas dos tablas
mediante sus códigos.
omo ya se ha comentado es muy importante codificar los elementos que se encuentran en una
tabla. Asignar a cada uno un código.
)
Existen diferentes métodos para codificar los elementos de un archivo o,
en Access, de una tabla. Podríamos resumirlos en los siguientes:
à
onsiste en asignar a cada elemento un número
secuencial ascendente, con lo que cada uno tendría un número diferente de forma
garantizada. En Access se definiría un campo de tipo autonumérico. Este tipo de código
identifica inequívocamente a un registro o elemento, pero no es representativo, porque
no nos aporta información sobre de qué elemento se trata. ^
)*+
!,
à
Se asignan códigos, reservando rangos de
números para elementos de diferentes familias. Así por ejemplo en una tabla de
productos, los que tienen código del 1 al 100 son de camisería. Los del 101 al 200
pantalones... Es decir, se reservan abanicos de códigos para diferentes familias, tipos de
elementos. El inconveniente que tiene esta codificación es que hay que reservar los
rangos a mayores, previendo un rango lo suficientemente grande como para no
"pillarnos", es decir, si en algún momento de nuestra actividad comercializásemos mas
de 100 modelos de camisas tendríamos que replantear toda la codificación de nuevo.
Puede ser peligroso quedarse "corto" en las reservas. G ! !
-*.
!
El
campo podría definirse como numérico.
à
onsiste en asignar códigos mas o menos largos en donde por
grupos de caracteres dentro de ese código queda definida cierta información sobre el
elemento. Por ejemplo, los números de cuenta de un banco: Bajo esos 20 dígitos de un
número de cuenta, los 4 primeros definen la entidad bancaria, los 4 restantes otra
información, los 2 siguientes tal otra... -./0/1/-/-0200015155. Es una codificación muy
significativa. El campo sería definido como de texto con máscara de entrada ya que no
se va a operar matemáticamente con esos códigos.
à
&
Es igual que la de por grupos solo que aparecen partes del
código representadas con letras. supongamos una cuenta corriente () de aixa de
ataluña ( ), de Logroño (LO)... .-00015155. También este campo, sería
definido, evidentemente como de texto.
Para nuestra aplicación, cada elemento de cada tabla (cada registro) deberá poseer un código, y
en aquella tabla en la que se desee tener acceso a información de otro elemento o registro de otra
tabla (vinculada con ésta primera según nuestro diagrama de bloques) también deberá tener un
campo código que enlace o se relacione con el primero.
j
La pantalla de relaciones en Access, al final del análisis, quedará definida como la que se muestra
a continuación (no es necesario comprenderla en este punto):
Pero vamos a estudiar, paso a paso y desde el principio, cómo llegar a estas relaciones:
Para evitar las duplicaciones innecesarias de información:
Las tablas maestras de nuestra aplicación contienen la información de lientes, Productos,
Proveedores, Vendedores, Agencias...
Eliminemos, por tanto, de la tabla de Pedidos la información que ya se tiene en las tablas
maestras.
Pero será necesario, hacer constar en el registro de cada pedido, alguna información que nos
permita saber qué cliente hace ese pedido. Ninguna información mejor que ese dato que identifica
inequívocamente a cada cliente: Su código, su á
.
Habrá que anotar también la información que identifica de forma precisa al vendedor que efectúa la
venta. Ese campo será el á*
.
Habrá que anotar también, qué producto es pedido por lo que habrá que anotar tan solo el código
del artículo es decir el á
.
Esos campos comunes en ambas tablas van a ser la base de las "j cá j^.
j
Si en la tabla de pedidos, al introducir un pedido se anota el á
del cliente que formula el
pedido, como en la tabla maestra de clientes cada cliente viene identificado por su Idliente (el
nombre del campo no es necesario que coincida), el registro con ESE á
contendrá todos
los datos del cliente que hace el pedido, con lo cual se dispondrá de la información del cliente que
ha hecho cada pedido, por ejemplo para facturarle«
Una buena forma de poder tomar nota por cada pedido, de varios artículos y de diferentes
unidades pedidas para cada uno de ellos, además de NO anotar en la tabla de pedidos esa
información, sería la siguiente:
ada pedido tiene un numero de pedido definido por el campo IdPedido.
%-/
á 0-/
En una tabla aparte, por ejemplo denominada
, se introducirán, tantos
registros como líneas de detalle se deseen para cada pedido, es decir, tantos registros como
artículos pedidos para ese pedido con código IdPedido = 10 (en este ejemplo).
Por lo tanto, deberá definirse una tabla llamada Detalles de pedidos en la que se anoten las
siguientes informaciones:
Sin embargo, en la
, como un mismo pedido de la tabla de Pedidos,
puede tener varios artículos diferentes que son pedidos, podrá haber varios registros que se
correspondan con el mismo IdPedido de la tabla de Pedidos. Por lo tanto, un IdPedido en la tabla
de Detalles de pedidos sí puede tener duplicados por esta razón (con duplicados).
De igual modo, un artículo (IdProducto) también puede tener repeticiones (duplicados) en la tabla
de Detalles de pedidos ya que puede, en pedidos distintos de distintos clientes ser pedido (con
duplicados). Sin embargo, en la tabla maestra de Productos, no puede estar el mismo artículo
repetido. Sólo habrá un registro por cada artículo (sin duplicados):
Analizando las Relaciones paso a paso (Parte I).
Analizando las Relaciones paso a paso. (Parte II) La Tabla Detalles de Pedidos.
Todas las relaciones definitivas entre las tablas de nuestra aplicación quedarán como se muestra«
Nos encontramos ahora en el punto de partida para comenzar a trabajar con MS Access.
Sentadas estas bases primordiales para el correcto análisis de una aplicación Access pasamos en
el siguiente capítulo a
así como las
pertinentes entre ellas.
Posteriormente, a lo largo de éste curso, deberemos diseñar y definir una interfaz de usuario
básica, es decir, los formularios necesarios para que el usuario sea capaz de sacar el partido
preciso a la información contenida en la tablas de la forma más intuitiva y sencilla. El diseño de una
buena interfaz (pantallas intermediarias entre el usuario y los datos) constituirá la base para un
manejo sencillo de la aplicación, incluso por usuarios que, quizás no sepan nada de Access ni de
gestión de bases de datos.