1. Diseño de la Base de Datos Ahora hay que pensar y decidir dónde y cómo se almacenará la información que manejará el Sistema. Podemos almacenar los datos en archivos planos (TXT) o en algo más estructurado y clasificado como lo es una Base de Datos Relacional. Este curso hará más énfasis en las Bases de Datos. Visual Basic reconoce tres categorías de Bases de Datos: Bases de Datos Visual Basic. También llamadas bases de datos nativas. Estas bases de datos utilizan el mismo formato que Microsoft Access y son creadas y manipuladas directamente por el motor de base de datos Microsoft Jet. Bases de Datos externas. En esta categoría se incluyen las bases de datos con métodos de acceso secuencial indexado (ISAM), como Microsoft Foxpro, Btrieve, dBASE, y Paradox, así como cada base de datos ODBC, o como el Servidor de SQL que reside en un Servidor Remoto. Bases de datos ODBC. Son las bases de datos cliente-servidor accedidas a través de estándar ODBC. ODBC es un protocolo estándar que permite a las aplicaciones conectarse con diferentes servidores de bases de datos o ficheros externos. Los controladores ODBC que utilizan el motor de bases de datos Microsoft Jet permiten tener acceso al Servidor SQL de Microsoft y a muchas otras bases de datos externas (SQL Server, Oracle, Informix, entre otras). Nosotros vamos a dedicar el tiempo en la primera categoría, que es la Base de Dato nativa de Visual Basic como lo es Microsoft Access. La extensión de la Base de Datos Access es MDB. ¿Cómo diseñar una base de datos? En la actualidad, mucho se habla sobre las bases de datos y la forma en que pueden ayudar a una pequeña o mediana empresa a eficientar sus procesos de negocio, reducir sus costos o mejorar su toma de decisiones. Esto se debe a que una base de datos permite organizar la información para que su consulta sea más sencilla y pueda ser aprovechada como una ventaja competitiva. Por ejemplo, si usted tiene estructurada la información sobre sus clientes, le resultará más sencillo tener un reporte de sus compras durante los últimos meses o de los artículos que prefieren. Con base en esta información puede realizar una planeación más eficiente de sus compras o simplemente ajustar ciertos detalles para aprovechar mejor su inversión. Quizá para diseñar un sistema complejo, como un control de inventario, necesite la asistencia de un proveedor de soluciones tecnologicas, pero si su compañía posee un programa como Microsoft Access, el cual se incluye en la suite de Microsoft Office, usted podrá desarrollar sus propias soluciones. Microsoft Access es un programa que permite el almacenamiento, organización y búsqueda rápida de información. Como incluye asistentes y ayudas, usted no necesita ser un experto para poder usarlo. Antes de empezar a crear una solución, sin embargo, es conveniente que se familiarice con ciertos términos y conceptos que se usan constantemente en esta aplicación y se relacionan con los procesos involucrados, esto le ayudará a planear mejor los pasos que debe seguir. ¿Cómo funciona una base de datos? La complejidad de estas bases de datos depende del aspecto de negocio que traten y también de su finalidad. De tal forma que pueden ser tan sencillas como un listado con los datos de sus empleados, que se utilice principalmente como directorio e incluya el nombre, puesto, ingreso y datos personales de los mismos. O bien, puede ser un archivo que integre todas las operaciones de sus clientes, como sus datos generales, sus compras y los tipos de créditos que tienen. En Microsoft Access, es posible almacenar y clasificar la información de una sola base de datos en diversas tablas, dependiendo de las características de los datos y de tema con el que estén relacionados. Por ejemplo, su base de datos de clientes puede estar formada por una tabla con las actividades de sus compradores (sean usuarios finales o revendedores), otra con la clase de crédito que tienen (30, 60, 90 días), otra con las compras y otra más con sus datos generales (nombre de la empresa o de la persona, dirección, teléfono, etc.). Una vez que se tiene clasificada la información que desea incluir, es necesario definir las relaciones entre las tablas, es decir, indicar cómo se vinculan los datos de las mismas. Si tomamos el ejemplo anterior, en este paso debemos establecer cómo los datos de la tabla créditos debe integrar a la tabla con los datos generales de cada cliente. También puede crear formularios para ver, introducir o cambiar datos directamente en una tabla de una manera sencilla. Así mismo, mediante consultas puede obtener información que relacione los datos de diversas tablas, como crear un listado de compras por cliente. Una de sus principales ventajas es que permiten reunir y administrar, desde un solo lugar, la información que proviene de distintas fuentes. Así, al tener los datos de sus clientes en un archivo, si alguno cambia de teléfono usted únicamente tendrá que hacer los cambios en este archivo central, y el resto de los materiales que usen este documento como referencia puede ser "actualizado" en forma automática. En la siguiente sección, se describen los distintos pasos que deben llevarse a cabo en el diseño de una base de datos. y posteriormente se explican los conceptos básicos que se utilizan. Cómo diseñar su base de datos. Como en la mayoría de los procesos de negocio donde se utiliza la tecnología para obtener los mejores resultados es conveniente que usted invierta algún tiempo en el diseño. Esto significa que necesitará definir primero el "tema" de su archivo (por ejemplo, operaciones por clientes), así mismo, deberá identificar los diferentes aspectos que lo componen y la información específica de cada uno que desea incluir. También debe considerar cuál será la función de su base de datos y para qué será utilizada. Un buen diseño es la pieza clave para realizar las operaciones que necesita de una forma efectiva, precisa y eficaz. Éstos son los pasos básicos para diseñar una base de datos: 1. Determinar su finalidad. 2. Determinar las tablas que se necesitan. 3. Determinar los campos que se incluirán en las tablas. 4. Determinar las relaciones entre las tablas. 5. Agregar datos. 1. Determinar la finalidad de la base de datos. Determine el objetivo de su base de datos y la forma en que desea utilizarla. En nuestro ejemplo puede ser llevar un control de las operaciones de sus clientes. Piense detenidamente en todas las preguntas que desea que responda su base de datos. Es posible que además de conocer las compras por cliente, desee tener un reporte del estado de sus créditos. Una buena idea es realizar bocetos de los informes que requiere y analizar los materiales o reportes que utiliza actualmente. 2. Determinar las tablas que se necesitan. Determinar las tablas puede ser el paso más complicado, ya que usted necesitará identificar y clasificar cada uno de los diferentes "aspectos" que se relacionan con el objetivo general de su base de datos. En nuestro caso los aspectos relacionados pueden ser actividades, créditos, compras y datos generales. Para diseñar las tablas, considere los siguientes aspectos: La información no debe duplicarse dentro de una tabla y tampoco entre las diversas tablas que forman una base de datos. Por ejemplo, almacene la dirección y el número de teléfono de cada cliente una sola vez en una sola tabla (por ejemplo, en la tabla datos generales), en lugar de capturarlo repetidas veces en diversas tablas. Posteriormente utilice esta tabla como fuente de datos, es decir cree un vínculo a esta tabla cuando necesite hacer referencia a estos datos. Esto aumentará la eficiencia de sus sistemas y eliminará la posibilidad de que existan entradas duplicadas que contengan información inexacta. Cada tabla debe contener información sobre un solo tema. Por ejemplo, almacene los datos generales de sus clientes (dirección, teléfono, dirección electrónica) en una tabla y las compras en otra. De esta forma, podrá mantener independiente la información acerca de cada aspecto. 3. Determinar los campos que se necesitan. Una vez que ha definido las tablas que requiere, piense concretamente en la clase de datos que necesita incluir, estos son los campos. Como hemos mencionado anteriormente, la tabla de Datos generales de clientes puede incluir los campos del nombre de la compañía, la dirección, la ciudad, el país y el número de teléfono. Para realizar el diseño de los campos, tenga presentes estos puntos: Almacene información en sus partes más pequeñas (por ejemplo, Nombre y Apellidos, en lugar del Nombre completo). No incluya datos derivados ni calculados (datos que son el resultado de una operación). Asegúrese que cada campo está relacionado con el asunto concreto de la tabla. Por otro lado, es conveniente señalar que para establecer relaciones entre la información almacenada en tablas independientes (por ejemplo, para conectar a un cliente con todas sus compras), cada tabla debe contener un campo o un conjunto de campos que identifiquen de forma exclusiva cada registro individual de la tabla. Este campo es conocido como clave principal. 4. Determinar las relaciones entre las tablas. Después de dividir la información en tablas e identificar los campos de clave principal, necesita indicar a Microsoft Access la forma en que desea relacionar y vincular la información. 5. Introducir datos. Una vez que haya diseñado la estructura de su base de datos, analice sus elementos y relaciones, asimismo, intente detectar las posibles imprecisiones y cualquier duplicación de datos. Recuerde que es más sencillo cambiar el diseño de la base de datos cuando aún está en papel que cuando ya contiene toda la información. Cuando considere que su diseño cumple con sus objetivos, empiece a agregar sus datos y aproveche las múltiples ventajas que Microsoft Access puede ofrecer a su empresa. ¿Qué son las tablas? En Microsoft Access, las tablas son el elemento fundamental para almacenar datos. Una definición formal señala que una tabla es un objeto, o una entidad que se identifica a través de sus atributos o campos (columnas), y puede ser la abstracción de algo real o intangible. Cada una debe centrarse en un solo aspecto de negocio, por ejemplo, datos generales de clientes, clases de crédito de la empresa, etc. Por otro lado, una tabla es muy similar a una hoja de datos de Microsoft Excel, ya que está formada por filas y columnas. Sin embargo, en Microsoft Access, las columnas son conocidas como campos y almacenan datos con ciertas características o atributos. Por ejemplo, en una tabla de clientes, puede existir un campo para teléfonos y otro para direcciones electrónicas. Por su parte, las filas son llamadas registros y ahí es donde se agregan las direcciones o teléfonos de cada cliente. ¿Qué es la clave principal? La clave principal es un campo (también llamado atributo) cuyo valor identifica de manera única a cada registro de una tabla. Otra de sus características es que no es repetible. Cuando se establecen relaciones entre Tablas, se usan estas claves principales para hacer referencia a registros específicos de una tabla. Una clave principal se conoce como clave externa cuando es referenciada desde otra tabla. Siguiendo con nuestro ejemplo, en una tabla de datos generales de clientes puede existir un id que identifique cada registro. Este id será la clave que se utilice cuando desde otra tabla se deseen integrar estos datos. ¿Qué son las relaciones entre tablas? Como hemos mencionado, una vez creadas las diferentes tablas, necesitará indicarle a Microsoft Access cómo se debe relacionar la información. Por ejemplo, la forma en que los clientes se van a asociar a sus compras. Posteriormente esto permitirá crear consultas, formularios e informes complejos. Definir relaciones. Para definir una relación, es necesario seleccionar la opción Relaciones en el menú de Herramientas de Microsoft Access. Enseguida aparecerá una ventana como la siguiente en la cual se pueden agregar las tablas que se desea relacionar (Datos generales de clientes y compras). A continuación, deberá arrastrar el campo clave de una tabla y colocarlo en el campo clave de la otra tabla. El tipo de relación que crea Microsoft Access depende de la forma en que estén definidos los campos relacionados. Si uno de los campos relacionados es una clave principal o tiene un índice único, se crea una relación uno a varios Si ambos campos relacionados son claves principales o tienen índices únicos, se crea una relación uno a uno. Una relación varios a varios en realidad implica dos relaciones uno a varios con una tercera tabla cuya clave principal consta de dos campos: las claves externas de las otras dos tablas. Consulta. Una consulta es una pregunta sobre los datos almacenados en las tablas, o bien, una petición para realizar una acción sobre los datos. Por ejemplo, obtener totales de compras por clientes. Formulario. Un formulario es un objeto de una base de datos Microsoft Access en el que se pueden agregar instrucciones específicas para realizar acciones o para introducir, mostrar y modificar los datos de los campos de cada tabla. Cómo crear una Base de Datos con Microsoft Access 1. Al iniciar Microsoft Access le aperecerá el siguiente cuadro de dialogo: Seleccionar Base de Dato en Blanco Usted debe seleccionar la primera opción : Base de Datos en Blanco. 2. Luego introduzca el nombre que le dará a la Base de Datos y seleccione el directorio donde guardará, luego presione el botón de crear. Presione el botón de Crear 3. Después de crear la Base de Datos, le aparecerá lo siguiente: Creación de Tablas Con Microsoft Access se puede crear Tablas, Consultas, Formularios, Informes, macros y Módulos. Sin embargo nos vamos a centrar en la creación de Tablas y consultas. Creación de Tablas: Para crear una nueva tabla siga los siguientes pasos: 1. Seleccione la ficha de Tablas 2. Presione el botón de Nuevo 3. El siguiente recuadro aparecerá, seleccione de la lista Vista Diseño Seleccione Vista de Diseño 4. El paso siguiente es introducir los nombres de campos, tipos de datos y propiedades de cada uno de los campos. Y algo muy importantes es definir la llave primaria de la tabla. Nombre del campo : Digite el nombre del campo Tipos de datos: Seleccione el Tipo de Datos del campo La propiedad Tipo de datos puede tener los valores siguientes: Valor/Tipo de datos/Tamaño Texto: (Predeterminado) Texto o combinaciones de texto y números, así como números que no requieran cálculos, como los números de teléfono. Memo: Texto extenso, o combinación extensa de texto y números. Hasta 65.535 caracteres. Numérico: Datos numéricos utilizados en cálculos matemáticos. Fecha/Hora: Valores de fecha y hora para los años del 100 al 9999. 8 bytes. Moneda: Valores de moneda y datos numéricos utilizados en cálculos matemáticos en los que estén implicados datos que contengan entre uno y cuatro decimales. La precisión es de hasta 15 dígitos a la izquierda del separador decimal y hasta 4 dígitos a la derecha del mismo. 8 bytes. Autonumérico: Número secuencial (incrementado de uno a uno) único, o número aleatorio que Microsoft Access asigna cada vez que se agrega un nuevo registro a una tabla. Los campos Autonumérico no se pueden actualizar. Sí/No: Valores Sí y No, y campos que contengan uno de entre dos valores (Sí/No, Verdadero/Falso o Activado/desactivado). 1 bit. Objeto OLE Objeto (como por ejemplo una hoja de cálculo de Microsoft Excel, un documento de Microsoft Word, gráficos, sonidos u otros datos binarios) vinculado o incrustado en una tabla de Microsoft Access. Hasta 1 gigabyte (limitado por el espacio disponible en disco) Hipervínculo:Texto o combinación de texto y números almacenada como texto y utilizada como dirección de hipervínculo. Una dirección de hipervínculo puede tener hasta tres partes:textopresentación: el texto que aparece en el campo o control.dirección: ruta de acceso de un archivo (ruta UNC) o página (dirección URL).subdirección: posición dentro del archivo o página.La forma más sencilla de insertar una dirección de hipervínculo en un campo o control es hacer clic en el comando Hipervínculo del menú Insertar.Si desea más información, vea Escribir una dirección de hipervínculo en la vista Formulario o en la vista Hoja de datos. Cada una de las tres partes del tipo de datos hipervínculo puede contener hasta 2048 caracteres. Asistente para búsquedas: Crea un campo que permite elegir un valor de otra tabla o de una lista de valores mediante un cuadro de lista o un cuadro combinado. Al hacer clic en esta opción se inicia el Asistente para búsquedas, que crea un campo de búsqueda. Al salir del Asistente, Microsoft Access establece el tipo de datos basándose en los valores seleccionados en él. Tamaño igual al del campo clave principal utilizado para realizar la búsqueda (habitualmente 4 bytes). Tamaño del campo: Puede usar la propiedad Tamaño del campo para establecer el tamaño máximo de los datos almacenados en un campo de tipo Texto, Numérico o Autonumérico. Formato: Puede utilizar la propiedad Formato (Format) para personalizar la forma en que los números, las fechas, las horas y el texto se muestran e imprimen. Por ejemplo, si ha creado un cuadro de texto Precio, puede establecer su propiedad Formato (Format) a Moneda y su propiedad LugaresDecimales (DecimalPlaces) a 2 o a Auto. Si escribe 4321,678 en el control, el número se mostrará como $4.321,68. Puede utilizar uno de los formatos predefinidos o bien puede crear un formato personalizado mediante los símbolos de formato Formato Fecha/Hora La tabla siguiente muestra los valores predefinidos de la propiedad Formato (Format) para el tipo de datos Fecha/Hora. Valor/Descripción Fecha general (Predeterminado) Si el valor es sólo una fecha, no se muestra ninguna hora; si el valor es sólo una hora, no se muestra ninguna fecha. Este valor es una combinación de los valores de Fecha corta y Hora larga.Ejemplos: 3/4/93, 05:34:00 PM y 3/4/93 05:34:00 PM. Fecha larga Igual que el valor de Fecha larga del cuadro de diálogo Propiedades de Configuración regional del Panel de control de Windows.Ejemplo: Sábado, 3 de Abril de 1993. Fecha mediana Ejemplo: 3-Abr-93. Fecha corta Igual que el valor de Fecha corta del cuadro de diálogo Propiedades de Configuración regional del Panel de control de Windows.Ejemplo: 3/4/93.Atención El formato Fecha corta asume que las fechas comprendidas entre el 1/1/00 y el 31/12/29 son fechas del siglo XXI (es decir, que los años están entre el 2000 y el 2029). Las fechas comprendidas entre el 1/1/30 y el 31/12/99 se asume que son fechas del siglo XX (es decir, que los años están entre 1930 y 1999). Hora larga Igual que el valor de la ficha Hora del cuadro de diálogo Propiedades de Configuración regional del Panel de control de Windows.Ejemplo: 5:34:23 PM. Puede crear formatos de fecha y hora personalizados mediante los símbolos siguientes. Símbolo : (dos puntos) / c Descripción Separador de hora. Los separadores se establecen en el cuadro de diálogo Propiedades de Configuración regional del Panel de control de Windows. Separador de fecha. Igual que el formato predefinido Fecha general. d dd ddd dddd ddddd dddddd s ss m mm mmm mmmm t a aa aaaa h hh n nn s ss ttttt AM/PM am/pm "pm", según A/P sea a/p AMPM Día del mes en uno o dos dígitos numéricos, según sea necesario (1 a 31). Día del mes en dos dígitos numéricos (01 a 31). Tres primeras letras del día de la semana (Lun a Dom) Nombre completo del día de la semana (Lunes a Dom). Igual que el formato predefinido Hora corta. Igual que el formato predefinido Fecha larga. Día de la semana (1 a 7). Semana del año (1 a 53). Mes del año en uno o dos dígitos numéricos, según sea necesario (1 a 12). Mes del año en dos dígitos numéricos (01 a 12). Tres primeras letras del mes (Ene a Dic). Nombre completo del mes (Enero a Diciembre). Fecha mostrada como trimestre del año (1 a 4). Número de día del año (1 a 366). Dos últimos dígitos del año (01 a 99). Año completo (0100 a 9999). Hora en uno o dos dígitos, según sea necesario (0 a 23). Hora en dos dígitos (00 a 23). Minuto en uno o dos dígitos, según sea necesario (0 a 59). Minuto en dos dígitos (00 a 59). Segundo en uno o dos dígitos, según sea necesario (0 a 59). Segundo en dos dígitos (00 a 59). Igual que el formato predefinido Hora larga. Reloj de 12 horas con las letras mayúsculas "AM" o "PM", según sea apropiado. Reloj de doce horas con las letras minúsculas "am" o sea apropiado. Reloj de doce horas con la letra mayúscula "A" o "P", según apropiado. Reloj de doce horas con la letra minúscula "a" o "p", según sea apropiado. Reloj de doce horas con el designador de mañana/tarde apropiado establecido en el cuadro de diálogo Propiedades de Configuración regional del Panel de control de Windows. Los formatos personalizados se muestran según el valor especificado en el cuadro de diálogo Propiedades de Configuración regional del Panel de control de Windows. Los formatos personalizados incoherentes con los valores especificados en el cuadro de diálogo Propiedades de Configuración regional se ignoran. Nota Si desea agregar una coma u otro separador al formato personalizado, incluya el separador entre comillas de la forma siguiente: d mmm", "aaaa. A continuación se muestran ejemplos de formatos de fecha/hora personalizados. Valor dd/mm/aaaa ddd", "d mmm", "aaaa dd mmmm", "aaaa "Ésta es la semana número "ss "Hoy es "dddd Muestra 02/09/1997 Lun, 2 Jun, 1997 02 Junio, 1997 Ésta es la semana número 22 Hoy es Martes Puede utilizar un formato personalizado para mostrar "A.D." antes o "D.D." después de un año dependiendo de si se introduce un número negativo o positivo. Para ver cómo funciona este formato personalizado, cree un nuevo campo de tabla, establezca su tipo de datos a Numérico e introduzca el formato de la forma siguiente: "A.D. "#;#;#;# " D.D." Los números positivos se muestran como años con un "A.D." antes del año. Los números negativos se muestran como años con un "D.D." después del año. Lugar decimales: Puede usar la propiedad LugaresDecimales (DecimalPlaces) para especificar el número de lugares decimales que utiliza Microsoft Access para presentar números. Título: Puede usar la propiedad Título (Caption) para proporcionar información útil al usuario mediante de títulos sobre los objetos Valor Predeterminado:Puede utilizar la propiedad ValorPredeterminado (DefaultValue) para especificar un valor que se introduce automáticamente en un campo cuando se crea un nuevo registro. Por ejemplo, en la tabla Direcciones puede establecer el valor predeterminado del campo Ciudad a Nueva York. Cuando los usuarios agregan un registro a la tabla, pueden aceptar este valor o introducir el nombre de una ciudad diferente. Regla de Validación: Puede utilizar la propiedad ReglaDeValidación (ValidationRule) con el fin de especificar requisitos para los datos introducidos en un registro, un campo o un control. Cuando se introducen datos que infringen el valor de la propiedad ReglaDeValidación (ValidationRule), puede utilizar la propiedad TextoDeValidación (ValidationText) para especificar el mensaje que se mostrará al usuario. Requerido: Puede usar la propiedad Requerido (Required) para especificar si es necesario que exista un valor en un campo. Si el valor de esta propiedad es Sí, al introducir datos en un registro deberá especificar un valor en el campo en cualquier control dependiente del mismo, y además el valor no podrá ser Nulo. Por ejemplo, es posible que desee asegurarse de que el control Apellidos tenga siempre un valor en todos los registros. Cuando desee permitir el valor Nulo en un campo, no sólo deberá establecer No para la propiedad Requerido (Required), sino que, si la propiedad ReglaDeValidación (ValidationRule) tiene algún valor deberá contener explícitamente "regla_de_validación O Es Nulo". Nota La propiedad Requerido (Required) no se aplica a los campos de tipo Autonumérico. Indexado: Puede usar la propiedad Indexado para establecer un índice de un solo campo. Los índices hacen que las consultas basadas en los campos indexados sean más rápidas, y también aceleran las operaciones de ordenación y agrupación. Por ejemplo, si busca empleados basándose en un campo llamado Apellidos, puede crear un índice para este campo para hacer más rápida la búsqueda. Establecer la llave primaria de la tabla: Es obligatorio establecer la clave principal de la tabla, la clave principal es el campo o la combinación de campos que no se deben repetir ( Por ejemplo el campo id o código) Claves principales de Campo simple Si tiene un campo que contiene valores exclusivos, como números de identificación o números de pieza, puede designar ese campo como la clave principal. Si el campo seleccionado como clave principal tiene valores duplicados o Nulos, Microsoft Access no establece la clave principal. Claves principales de Campos múltiples En situaciones en las que no se puede garantizar la exclusividad de un solo campo, puede designar dos o más campos como clave principal. Para guardar la tabla selecciona el botón Guardar Luego introduzca el nombre de la tabla: Relaciones entre tablas: Una vez que se han creado todas las tablas se establecen las relaciones entre las tablas. Para establecer las relaciones entre las tablas se hace lo siguiente: 1. Ir al menú de Herramientas 2. Seleccionar Relaciones A continuación les aparecerá el siguiente recuadro con la lista de todas las tablas que se han creado. Seleccione cada una de las tablas y presione agregar. Una vez agregadas presione el botón de cerrar. Para crear una relación entre las tablas Arrastre de campo a campo, por el cual se establecerá la relación. Al arrastrar de campo a campo aparece la ventana de relaciones. Presione el botón de crear para crear la relación. Tarea : 1. Trabajo: Investigar sobre Integridad Referencial. 2. Crear la siguiente Base de Datos con el nombre de prueba: