Puntos importantes

Una base de datos debe ser lógica y simple, no complicada.
En general, utilizamos formularios con el fin de agregar datos. Los datos se almacenan en las “Tablas” que a su vez estan relacionadas unas con las otras. Mediante el uso de “consultas”, podemos obtener información específica de estas “Tablas”. Estas “consultas” son utilizadas en la creación de “Reportes”.

Creando una nueva base de datos

Una nueva base de datos no es más que un nuevo contenedor organizado que mantiene todas las tablas, formularios, reportes, consultas, macros y módulos.
Haz clic en el botón “Archivo” y luego selecciona “Nuevo” de la lista desplegable.
Esto abrirá una nueva ventana. y aquí elegiremos “Base de datos en blanco”.

En el cuadro de diálogo debes introducir el nombre de la nueva base de datos.


A continuación, selecciona la carpeta donde deseas almacenar la base de datos y haz clic en el botón “Create”.

Una tarjeta de compras en un solo archivo.


Para muchos tipos de bases de datos o listas, la estructura que se muestra arriba funcionará normalmente.

Este es un ejemplo típico de una relación “uno-a-uno” (“one to one”), lo que esto significa es que sólo tienes una pieza de información del registro (como el nombre, el apellido, etc.) de cada tabla, en este caso, el cliente.

Pero, ¿qué pasaría si un cliente realiza varios pedidos u ordena varios productos?

Tendríamos que agregar una nueva columna para cada orden y artículo., y esto no es muy práctico.
Así que si queremos vincular a nuestros clientes con todas sus compras, una relación “uno a muchos” (“one-to-many”) es la solución.
De esta manera llegamos a nuestra base de datos relacional.
Conclusión: Para obtener una base de acceso sencillo, no necesitamos todo esto, ya que lo podemos hacer con Excel. (Ver imagen de arriba).

El modelo relacional para el almacenamiento de datos

El modelo relacional de almacenamiento de datos nos permite representar con facilidad y de manera efectiva conceptos complejos,  como por ejemplo las “Ventas”.
El modelo relacional para el almacenamiento de datos elimina datos redundantes, obteniendo de esta manera una base de datos más pequeña y rápida.

Cuando diseñamos una base de datos relacional, una buena práctica es escribir primero todos los datos de las distintas tablas que necesitamos y sus relaciones en un papel.

Comenzamos dibujando las “Tablas” con sus campos y su información.

Una vez que tengamos una idea aproximada sobre las tablas que debemos tener para almacenar nuestros datos, debemos centrarnos en asegurar que cada tabla tiene una “clave principal”.
Una “clave principal” es una columna (o una combinación de columnas), con un valor único para cada fila de la columna.

Por ejemplo: podrías tener a dos personas con el mismo nombre, por ejemplo: Pedro, sin embargo, estas dos personas se pueden distinguir entre si mediante la adición de una columna con una “clave principal” para cada tabla (por ejemplo, IDCliente, IDVenta, IDProducto) antes de la columna nombre.

La “clave principal” es muy importante en una base de datos relacional, ya que gracias a ella podemos establecer “relaciones” entre las tablas.
Por ejemplo, considere la relación entre la tabla clientes y la tabla ventas. En tu base de datos podrías tener un cliente con varios pedidos, por lo que las tablas deben tener  la “Relación”: “uno-a-muchos” (“one-to-many”).
Esta es la relación más evidente entre las tablas.

Lo que ahora tenemos que hacer es encontrar una solución a la tabla “muchos” para conectarse a la tabla “uno”.
Por ejemplo, podemos mostrar que cada fila (conjunto de valores) que figura en la tabla de ventas está relacionada con la tabla de clientes.

Con el fin de vincular las tablas entre sí, estas deben tener un campo en común. y este campo debe tener los mismos datos en ambas tablas.

En este ejemplo, estamos tratamos de asignar a cada venta un cliente.
Para ello hay que añadir un campo a la tabla ventas que corresponde a un campo en la tabla clientes. ¿Qué crees que debemos agregar?
La respuesta es el campo “clave principal”.
Recordemos que cada campo “clave principal” es único para poder identificar los datos en una tabla.
De esta manera, podemos agregar un campo a la tabla de ventas que haga referencia al campo IDCliente en la tabla clientes.

Así que en el récord de ventas futuro, basta con insertar el IDCliente para el cliente el cual hizo la venta. (La primera vez que reducimos los datos redundantes).

Ahora está claro cómo podemos tomar ventaja de una base de datos relacional.
Obtenemos la información sobre un cliente simplemente ingresando su IDCliente que fue asignado unicamente a dicho cliente.

De esta manera, si añadimos una venta para los clientes en la tabla de ventas, lo único que necesitamos hacer es una referencia al IDCliente de dicho récord de ventas, y así poder identificar quién hizo la compra.

Gracias a esto, tenemos mucha menos información para añadir, lo que a su vez se traduce en una base de datos de menor tamaño y más rápida comparada con nuestra lista de compras en un solo archivo.

Es importante que el campo IDCliente que añadimos a nuestra tabla de ventas no sea una “clave principal”. Esta tabla ya tiene una “clave principal”, el campo IDVentas, que es único, y que identifica cada venta.

Técnicamente, en la tabla “muchos” el campo de la “clave principal” esta relacionado a la tabla “uno” como una “clave externa”.

Su único propósito es conectar dos listas. Los valores dentro de una “clave externa” normalmente no son únicos.

No te preocupes por la forma en que debes introducir los datos cuando las tablas están conectadas entre sí o la forma en que estableces la “clave principal”. Vamos a llegar a esto más adelante.
Por el momento, trata de entender el concepto y el razonamiento detrás del diseño de una base de datos relacional.
Echa un vistazo a la tabla de abajo para ver cómo ha cambiado con las conexiones realizadas recientemente entre clientes y ventas.

Ahora volvamos hacia atrás y examinemos lo que las diferentes “relaciones” entre las tablas pueden lograr.
Por ejemplo, ¿cuál es la relación entre clientes y productos?
Cada tabla no está directamente conectada a otra tabla. La única manera de que los clientes y los productos puedan estar conectados es cuando un cliente compra un producto.

Por lo tanto, en una base de datos relacional, siempre que una tabla este conectada en forma adecuada con la tabla correcta, podemos entender cómo se relacionan y de qué manera están conectadas.
En resumen, los clientes están conectados a los productos, pero sólo por las ventas.
Entonces, ¿cómo están relacionados con los productos en venta?

Bueno, cada venta que puede contener varios artículos y la venta de un artículo puede ocurrir muchas veces.
En una base de datos relacional, no se puede (o no deberías poder) hacer una relación “muchos-a-muchos” (“many-to-many”).

Que de hecho no tendría ningún sentido hacer esto.
Lo que tenemos que hacer es ver qué artículos son comprados en cualquier compra, introduciendo los mínimos datos.
Otro campo que aparecerá, es el campo “Cantidad”, que se encuentra en la tabla de ventas.

¿Cómo podemos introducir en el precio del producto en el momento de registrar la venta? ¿Qué sucede si hay cambios de precios en el futuro?
¿Es el “precio” un atributo de la tabla “Producto”?

Lo que vemos es que debemos ser capaces de establecer un vínculo entre los campos unicos de ventas con los campos únicos de los productos de esas ventas.
Para ello necesitamos una tabla “Detalle de Ventas”.

Pero, ¿qué ponemos en la tabla “Detalle de Ventas”?
La respuesta es, nada de lo que se refleja en el lado “muchos” de la transacción.
Por ejemplo,
el campo “Fecha de Venta” en la tabla “ventas” se quedará de forma permanente, ya que cada venta sucede una sola vez.

El número de artículos adquiridos en una venta es  un aspecto muy “importante” de la venta, y debe trasladarse a la nueva tabla “Detalle de Ventas” con el nombre de campo “Cantidad”.

El campo IDCliente debe permanecer en la tabla de ventas, ya que cada compra es realizada por un solo cliente.
Veamos cómo la nueva tabla “Detalle de Ventas” influye en nuestro diagrama:

Debemos pensar también en dar a nuestra nueva tabla “Detalle de Ventas”, una “clave principal”.
Pero antes de hacerlo, vamos a ver la relación entre la tabla “venta” y la tabla “Detalle de ventas”.
Las listas se relacionan en el sentido de que cada venta puede tener uno o más artículos.
Por lo tanto, queremos que cada registro en el “Detalle de Ventas” conecte con “ventas”.
Para ello, debemos crear una “clave externa” en la tabla “Detalle de Ventas”, que estará conectada a una “clave principal” en la tabla “ventas”.
Así que añadiremos el campo IDVentas a la tabla “Detalle de las Ventas”.
¿Cuál es la conexión entre la tabla “Ventas” y la tabla “Detalle de Ventas”?
Por cada transacción de los artículos solicitados en la tabla “Detalle de Ventas”, debes crear una referencia en la tabla “Producto” para un producto único.
Es por esta razón que queremos crear una “clave externa” de “IDProducto” en la tabla “Detalle de Ventas”.
Sólo entonces podemos hacer una conexión entre dichos campos comunes.

Veamos cómo lucen los gráficos después de estos dos cambios:


Ahora que tenemos las relaciones necesarias entre las tablas que creamos, todavía tenemos que crear una “clave primaria” en la tabla “Detalle de Ventas”.
Podríamos añadir un campo adicional, por ejemplo. IDDetalleVentas, pero también podemos ver si hay una combinación de campos que podrían formar un valor único.
Bueno, como era de esperarse ;-), hay una: la combinación de IDVentas e IDProductos. Combinados, ambos campos nunca tendrán los mismos valores.
Si este fuera el caso, esto significaría que el mismo artículo aparecerá dos veces en la misma compra.

Miremos un poco nuestro diagrama:

Consejos para crear bases de datos relacionales

No hay reglas para crear bases de datos relacionales, pero a continuación te muestro algunos consejos:

  1. Verifica que toda la información que deseas utilizar se introduce antes de guardar los datos en tu base de datos
  2. Piensa en lo que la base de datos necesita reportar, los formularios de ingreso de datos y para quien esta diseñada la base de datos.
  3. Al crear tu base de datos, comienza con un modelo como el que se describió anteriormente con varias “relaciones”. Esto es muy útil para determinar la estructura de tu base de datos.
  4. También es importante saber cómo se almacenan los datos en tu base de datos independientemente de la forma en que los usuarios introducen los datos en las tablas a través de los formularios. Cuando veamos más acerca de los “formularios”, esto quedará más claro.

Al hacer un modelo, puedes empezar haciendo una lista de las “Tablas”, junto con sus propiedades y los campos que necesita. Otra manera, es guardar los campos y luego averiguar qué campo pertenece a cada tabla.

Una vez logremos esto, podemos colocar los campos en las tablas y establecer una “clave principal”. Después podemos definir las “relaciones” entre las diferentes “Tablas”.

Creando una tabla de base de datos relacional

Después de tanta teoría, es hora de empezar con la práctica.
Por lo tanto, primero abrimos Access y creamos una nueva base de datos. Para ello, hacemos clic en el botón “Nuevo”   y escogemos “Base de datos en blanco”  en la ventana de la derecha.
Elegimos el nombre Ventas para nuestra base de datos.
Lo primero que hacemos es crear la tabla de nuestros clientes.

  • Haz doble clic en “Crear tabla en vista Diseño” (Create table in Design View)

    O también puedes hacer clic en el botón “Nuevo” (“New”)  en la barra de herramientas.
    Toma en cuenta que elegiste “Tablas” en el panel de objetos (“Tables”).

    Esto abrirá la ventana “Nueva Tabla” (“New table”).
    Escogemos “Vista Diseño” (“Design View”) y hacemos click en OK

    Esto nos lleva a la “Vista Diseño” (“Design View”) de nuestra tabla.
    Una vez que hayamos introducido un nombre en el campo de texto, vemos que la ventana tiene dos partes:
  • “Vista de datos” (cuadrícula de diseño)
  • “Vista diseño” (propiedades del campo)

En la parte superior nos encontramos con todos los campos y sus tipos de datos los cuales necesitamos en nuestra tabla.
En la parte inferior, se encuentran las propiedades de cada campo.

En la parte superior de nuestra ventana, se ve una flecha gris.
Este es el selector de fila. Cuando haces clic en él, se selecciona una fila entera. deberás utilizarlo varias veces para familiarizarte con él.

El “campo Nombre” (“Field Name”) en la columna es donde introducimos los nombres de los nuevos campos en la tabla.
Los nombres que introduzcas no deben repetirse en la tabla, es decir, deben ser únicos.
Si planeas escribir código VBA más adelante (un módulo) para esta base de datos, no puedes utilizar espacios en el nombre.
El orden que utilizas para agregar nombres en los campos es de izquierda a derecha en la “vista de Datos”.

Después de asignar un campo Nombre, también debes asignar el tipo de datos para este campo.
El valor por defecto es siempre “Texto”, pero tenemos más posibilidades:
Texto, número, fecha / hora, moneda, etc…
A continuación se presentan los diferentes tipos de datos y sus descripciones:

Nombre Definición
Texto Contiene texto, o una combinación de texto, números y otra información. La longitud máxima es de 255 caracteres.
Memo Una versión más larga del campo de texto. La longitud máxima es de 65.535 caracteres.
Número Sólo puede contener datos numéricos. Es posible que desees aplicar personalizaciones en ellos. Utiles para los números de teléfono o códigos postales.
Fecha / hora Contiene una fecha u hora. Útil para las operaciones de fecha / hora.
Moneda Es igual al tipo de datos Número, pero enfocado al formato de moneda.
Auto
Asigna un número único a todos los registros de la tabla. (Es útil como un campo de clave principal).
Si / No Datos lógicos almacenados como “Si / No” o “Verdadero / Falso” o “Encendido / Apagado”.
Se utiliza cuando un campo únicamente puede tener dos posibles valores.
Objeto OLE Conecta un área a otra en una aplicación de Windows. Puedes utilizar objetos de datos de OLE para gráficos adicionales, calendarios o archivos de video / audio.
Hipervínculo Incluye una dirección de hipervínculo en la WWW.
Búsqueda Te permite configurar un campo de búsqueda, que puede contener valores de otra tabla o consulta. Útil para los cuadros combinados y cuadros de lista.

La parte inferior es la sección de “Vista Diseño” (propiedades del campo).
Se compone de dos pestañas: “General” y “Buscar” (General and Lookup). Aquí se determinan las propiedades del campo.

Vamos a discutir esto en detalle en otra lección más adelante.

Creando una clave principal en una tabla

En Access tenemos que asignar a cada tabla una “clave principal”. Una “clave principal” no es más que un campo o grupo de campos que actúa como un identificador único para cada registro de la tabla.
Los beneficios de la asignación de una “clave principal” será más evidente cuando amplifiquemos más y más nuestra base de datos.

Verás que cuando asignas una “clave principal” a una tabla, ésta automáticamente se ordenará.
Debido a que la “clave principal” le da un valor único a cada registro, nos aseguramos que nunca existirán dos registros idénticos en nuestra base de datos.
Puedes asignar una “clave principal” a un campo, seleccionando el campo y haciendo clic en el botón “clave principal”.

Verás una imagen de una llave a la izquierda del campo IDCliente la cual nos indica que tenemos la “clave principal” asignada a ese campo.

Si queremos eliminar la “clave principal”, tenemos que seleccionar en primer lugar todo el campo (resaltado en negro) y hacer clic en el botón “clave principal”.

Si deseas asignar “claves principales” a varios campos, mantén presionada la tecla “Ctrl” de tu teclado mientras seleccionas los campos y luego haz clic en el botón “clave principal”.

Increíble! Has completado Lección 2 INICIAR EL PROXIMO LECCIÓN