Ing. Leonel Vinicio Morales Díaz
Transcripción
Ing. Leonel Vinicio Morales Díaz
Ing. Leonel Vinicio Morales Díaz Manual de Bases de Datos Tabla de Contenidos Introducción....................................................................................................................................................................... 3 Información y datos .......................................................................................................................................................... 4 Conjuntos de datos y bases de datos.............................................................................................................................. 4 Manejadores de Bases de Datos .................................................................................................................................. 5 Aplicaciones de Bases de Datos .................................................................................................................................. 6 Sistemas de Bases de Datos.......................................................................................................................................... 6 Algo de terminología .................................................................................................................................................... 7 Microsoft® Excel y sus posibilidades............................................................................................................................. 7 Los DBMS y las bases de datos ....................................................................................................................................... 8 Dominios de datos ........................................................................................................................................................ 8 Integridad de los datos ............................................................................................................................................... 10 Consistencia de la información ................................................................................................................................. 11 Eficiencia del acceso.................................................................................................................................................... 11 Diagramas Entidad-Relación......................................................................................................................................... 12 Minería de datos.............................................................................................................................................................. 12 Bases de datos en Internet.............................................................................................................................................. 13 Usabilidad de los sistemas de bases de datos ............................................................................................................. 14 Diseño centrado en el usuario ................................................................................................................................... 14 Observaciones finales ..................................................................................................................................................... 15 Página 2 de 15 Manual de Bases de Datos Introducción El conocimiento de las bases de datos no está ampliamente difundido a pesar de que su utilización es casi universal y omnipresente. Cualquier persona que use teléfonos celulares mantiene una pequeña base de datos de contactos y mensajes almacenada en su dispositivo. Si se dispone de una agenda electrónica entonces también se tienen bases de datos de tareas por realizar y citas por acudir. Las empresas utilizan computadoras para almacenar las grandes cantidades de información que acumulan, sin embargo, no siempre se dan cuenta que están trabajando en el ámbito de las bases de datos. Casi cualquier desarrollo informático o construcción de nuevos sistemas se basa en recopilación de información y almacenamiento en una base de datos. Es por ello que conocer los conceptos relativos a estas tecnologías y saber qué esperar al momento de iniciar un proyecto informático es particularmente relevante. En este documento se presenta a las bases de datos como conjuntos de datos sobre entidades similares. Es decir que para considerar un conjunto de datos como base de datos basta con que los datos se refieran a entidades (una o más) similares. Un conjunto de datos algunos sobre un perro, otros sobre un gato y otros más sobre una gallina, no se considerarían una base de datos de perros, gatos o gallinas. Habría que verlos como datos sobre animales (buscando la similitud entre las entidades) para considerar al conjunto una base de datos. Algunos autores las definen como conjuntos de datos almacenados con una estructura lógica. Esta definición tiene el defecto de requerir que exista una estructura lógica como requisito para considerar una base de datos, lo cual deja fuera a aquellas cuya estructura no responda a la lógica de quien las analiza. De hecho, actualmente se manejan diferentes tipo de bases de datos, de acuerdo a su estructura, organización y forma de acceso: bases de datos orientadas a objetos, semiestructuradas, archivos planos, data warehouses, etc. Otros asumen la existencia de la base de datos en un computador, en un sistema informático o manipulada mediante un software específico, lo que deja fuera a bases de datos almacenadas en soportes no electrónicos como libros, tarjetas, etc. Sin embargo es importante reconocer el avance que las bases de datos han experimentado con el auge de las computadoras y los manejadores de bases de datos más modernos (ver apartado “Manejadores de Bases de Datos”) como SQL Server de Microsoft®, Oracle®, Sybase, MySQL, Informix, entre otros. En este documento se ha tratado de dar mayor énfasis a los conceptos centrales de bases de datos antes que a un manejador particular para evitar el error tan difundido de considerar como “verdaderas” bases de datos solo a aquellas en las que se usa un manejador “profesional” como los mencionados. Muchos de los beneficios de la tecnología e investigación sobre bases de datos se ha hecho llegar al público gracias a su implementación en manejadores más populares como Microsoft® Access, Fox, SQL Anywhere, FileMaker, etc., que no siempre se consideran “verdaderas” bases de datos entre los profesionales de la informática. Sin embargo se explica cómo estos conceptos son aplicables en bases de datos concretas construidas como tablas en Microsoft® Excel y Microsoft® Access, ya que, como se dijo anteriormente, es en estos paquetes donde las técnicas de bases de datos se encuentran más a la mano. Página 3 de 15 Manual de Bases de Datos Información y datos A pesar de que se dice que estamos en la era de la información y de la tecnología, algunos conceptos relacionados usualmente se utilizan indistintamente, por ejemplo se habla de información y de datos como términos equivalentes. Aunque puede abordarse su desambiguación desde diversos puntos de vista, por ejemplo desde el punto de vista filosófico, el psicológico-cognoscitivo, el estadístico, etc., en el contexto de las ciencias de la computación y de la informática, que es el que nos interesa en este documento, hablamos de datos como valores concretos de variables: el monto total de las ventas del mes de febrero, el número de cédula de una persona, el número de placa de un automóvil, pueden considerarse variables y sus valores concretos: Q.50,874.45, K-11 31,254, PVCB849 son datos. La información se considera un conjunto de datos que se refieren a una entidad concreta. Así, hablaríamos de una porción de la información de una empresa concreta si dijéramos que su nombre es “Almacén La Victoria”, el monto total de sus ventas en el mes de febrero fue de Q.50,874.45, la cédula de vecindad de su gerente es K-11 31,254 y entre sus activos cuenta con un pick-up cuyo número de placa es P-VCB849. Los datos se consideran información cuando existe un objeto, una cosa, a la que llamamos entidad, a la que se refieren y que les confiere unidad y sentido. Cuando en la actualidad se habla entonces de que nos encontramos en la era de la información, se hace referencia al alto grado de tecnificación con que se cuenta para la captura, procesamiento, análisis, presentación, acceso y movimiento de la información. Sin embargo, una de las grandes paradojas de la era de la información es que el hecho de que la información esté disponible en grandes cantidades no ha redundado en que las personas estén mejor informadas. Por ello también se habla de conocimiento como la internalización cognoscitiva de la información en una persona, es decir, la información solo se transforma en verdadero conocimiento cuando una persona la adquiera y la adiciona a su propio saber. Como es imposible que una sola persona pueda utilizar eficientemente las grandes cantidades de información que existen a su alcance son necesarias herramientas que apoyen este proceso. Entre ellas están las computadoras, pero actualmente no es posible decir que son las únicas. Los teléfonos celulares, los asistentes personales digitales, los televisores y hasta las consolas de juego, pueden considerarse como formas de herramientas informáticas. La convergencia de medios es un proceso moderno por el que diversas tecnologías de manejo de información están confluyendo hasta llegar a conceptualizar dispositivos que agrupen todas las funciones de las herramientas informáticas en uno solo. En el futuro próximo, es posible que este tipo de dispositivos integren sistemas informáticos (computadoras), entretenimiento (televisión, música, juegos) y comunicaciones (telefonía e Internet) en un solo aparato. Conjuntos de datos y bases de datos Las grandes cantidades de información y datos que la tecnología moderna permite manipular han dado cabida a nuevas formas de trabajo centradas específicamente en el manejo y administración de la información. Se trata de los trabajadores de la información cuya función es utilizar inteligentemente el conocimiento que los sistemas pueden proveer. Un trabajador de la información mantiene volúmenes importantes de información almacenada, usualmente en medios electrónicos, tiene acceso a redes informáticas que le proveen nueva información y es capaz de generar nueva información por sus acciones e interacciones con el medio. Normalmente el trabajador de la información tiene a su disposición grandes conjuntos de datos, cuya naturaleza es muy variada. Por ejemplo: casi cualquier persona que dispone de una computadora almacena en ella un número significativo de documentos (de Microsoft® Word u otro similar). Estos documentos forman un conjunto particular de datos ya que todos tienen nombre, fecha de creación, autor, fecha de última Página 4 de 15 Manual de Bases de Datos modificación, contenido, y se encuentran almacenados en un directorio (fólder o carpeta) particular. Podría decirse que son entidades similares. Por otra parte, es muy probable que mantenga un listado de contactos, clientes, amigos, colaboradores, etc., con datos importantes sobre ellos como su nombre, fecha de cumpleaños, números telefónicos, dirección, saldos de cuenta, etc. Los contactos son otro conjunto particular de datos, en el que nuevamente encontramos que lo que les da unidad y estructura es que se trata de entidades similares. Un conjunto más lo constituyen los mensajes electrónicos (emails) que la persona envía a sus contactos. Cada mensaje tiene una fecha de envío, lista de personas a quienes va destinado, título o encabezado del mensaje, cuerpo del mensaje y documentos adjuntos. Como primera aproximación es posible decir que las bases de datos son conjuntos de datos sobre entidades similares, aunque esta aproximación no refleja toda la riqueza de posibilidades y características que hacen eficientes y accesibles los datos en una base de datos. Esto se debe a que existen diferentes enfoques de bases de datos que producen estructuras y estrategias de acceso diferentes (materializados en productos comerciales distintos) y por ello no se puede hacer una definición que sea general y al mismo tiempo que exprese todas las ventajas que los productos comerciales ofrecen, ya que las de unos son diferentes a las de otros. Sin embargo, es importante notar varios hechos. Primero: que aunque los conjuntos de datos que constituyen las bases de datos se manejan más eficientemente en una computadora, esto no quiere decir que solo puedan existir como bases de datos en sistemas electrónicos. Uno de los ejemplos más comunes de esto son los libros de contabilidad que constituyen bases de datos sobre operaciones contables (las operaciones y cuentas contables son las entidades), también los sistemas de kárdex donde se suelen llevar en tarjetas información sobre contactos, productos, saldos, etc. Los ficheros de libros que manejan algunas bibliotecas, todavía en tarjetas de cartón, también son bases de datos. Segundo: que el hecho de que los datos existan en una computadora no necesariamente significa que podremos aprovecharlos mejor, ya que se necesita una estructura, un orden y unas herramientas que permitan explotar todas las posibilidades de trabajo de las bases de datos. Manejadores de Bases de Datos Desde el punto de vista de la informática se hace la distinción entre bases de datos y manejadores de bases de datos (DBMS: data base management systems o sistemas manejadores de bases de datos). Las bases de datos son el almacén de información mientras que los manejadores son programas de software que permiten organizar y manipular mejor los datos de la base de datos. Con los manejadores – DBMS – se pueden construir consultas y reportes sobre la base de datos, facilitar el ingreso de nuevos datos, validar la información, etc. Los DBMS usualmente son productos comerciales especializados. Uno de los más populares actualmente es Microsoft® SQL Server que se utiliza tanto en sistemas avanzados que manejan grandes volúmenes de datos como en aplicaciones de mediana y pequeña empresa. Ilustración 1: Los manejadores de bases de datos son la forma más popular de construir y administrar las bases de datos. Esto no significa que los DBMS sean necesariamente onerosos. De hecho pueden casi siempre encontrarse versiones gratuitas o de desarrollo de la mayoría de productos comerciales y pueden encontrarse bajo la Página 5 de 15 Manual de Bases de Datos modalidad de Open Source, como MySQL que es bastante popular sobre todo en aplicaciones de Internet que utilizan Linux. Otros DBMS de gran éxito comercial incluyen: Oracle, Sybase, Microsoft® Access, RDB, FileMaker, etc. Cada DBMS particular ofrece ventajas específicas y funciona mejor en circunstancias determinadas. No es una buena estrategia descartar un DBMS solo por cuestiones de precio o popularidad. Al escoger uno particular hay multitud de factores que deben tomarse en cuenta, siendo quizás el más importante la aplicación concreta en la que será utilizado, es decir, el conjunto de entidades cuyos datos va a manejar, el ambiente en el que se usará y las posibilidades de crecimiento de la base de datos concreta. Aplicaciones de Bases de Datos Como los conceptos y técnicas de bases de datos adecuados para manejar de forma eficiente los datos de una institución particular no necesariamente están en el personal que utiliza la información, se construyen programas (también llamados aplicaciones o software) que permiten acceder fácilmente a ella, sin tener que conocer los detalles de cómo se almacena la información, cómo se organiza, estructura o representa en la computadora. Estos programas se conocen como Aplicaciones de Bases de Datos. Utilizando un DBMS y una plataforma de desarrollo como Visual Basic, Java, Php, etc., se puede construir una aplicación de bases de datos, específica para un conjunto de entidades particulares y en el contexto de una organización o empresa cuyo personal tiene necesidades bien identificadas. Usualmente se requiere de personal especializado para construir la aplicación, pero también existen DBMS orientados a facilitar la construcción de las aplicaciones por usuarios no especializados. Muchas empresas parten de la utilización de aplicaciones de bases de datos construidas por su mismo personal para luego de un tiempo, pasar a la contratación del desarrollo de una aplicación profesional. Esta estrategia tiene varias ventajas: se identifican mejor las necesidades (se sabe qué información es la que se maneja, los datos necesarios, etc.), se conocen ejemplos concretos de los datos que se manejarán (se conocen los valores típicos), se identifican carencias sentidas (reportes que se necesitan pero no se dispone de ellos, datos que no se capturan, etc.) Sin embargo, cuando la aplicación ya está construida, se tiene la gran ventaja de que la atención de los usuarios, si la aplicación es de calidad, puede centrarse en la utilización de la información y no en los detalles de cómo se almacena. Al desarrollar una aplicación de bases de datos es necesario atender a aspectos de seguridad: quién debe tener acceso a qué datos, quién puede solo ingresar, quién puede cambiar o eliminar datos, etc.; aspectos de usabilidad: quiénes serán los usuarios, cuál es el lenguaje que hablan, cómo hacen su trabajo y cómo usan las computadoras, etc.; aspectos de redes: dónde se almacenará la información (servidor o servidores de bases de datos), qué canales de comunicación se usarán entre equipos y dispositivos, etc.; aspectos de mantenimiento y soporte: cuáles son los procedimientos de copia de respaldo, el procedimiento de recuperación de fallos, etc. En este contexto, un ejemplo de aplicación de base de datos es la Bitácora de Registros que se lleva institucionalmente en CONRED, ya que pueden analizarse todos los aspectos mencionados: el manejador de bases de datos utilizado, el lenguaje de programación en que se construyó, los aspectos de seguridad, usabilidad, redes y de mantenimiento y soporte en esta aplicación, etc. Sistemas de Bases de Datos Un sistema de bases de datos es aquel que integra los equipos (hardware) con los DBMS, aplicaciones y datos (software) y con las personas que los alimentan, administran y utilizan. El sistema aplica restricciones de seguridad y de validez de la información conocidos como las reglas del negocio. Las reglas del negocio especifican los datos que pueden ingresarse al sistema, quienes tienen acceso cuáles datos y cómo se garantiza que los procesos internos se realizan correctamente. Página 6 de 15 Manual de Bases de Datos Por ejemplo, una empresa puede tener la política de que un ejecutivo solo puede administrar hasta 5 cuentas de clientes diferentes. Las primeras 5 cuentas de clientes ingresadas al sistema serán datos válidos. La sexta, aunque cumpla con todas las características para ser información válida de un cliente, no podrá ser considerada adecuada para el sistema si se asigna al mismo ejecutivo. Es evidente que un sistema de bases de datos solo puede existir sobre la base de una plataforma de equipos informáticos (computadoras) pero eso no quiere decir que todos sus procesos sean electrónicos. De hecho es bastante usual que documentos impresos, que se llenan a mano incluso, formen parte del mecanismo de ingreso de datos al sistema. Las bases de datos por sí solas, no requieren necesariamente de equipos de cómputo para existir, sin embargo, cuando se desean utilizar DBMS y aplicaciones de bases de datos, para conformar un sistema de bases de datos entonces se requiere de equipos de cómputo. Volviendo al ejemplo de la Bitácora de Registros de CONRED, en este contexto diríamos que se trata de un sistema de bases de datos cuando integra los equipos concretos en los que existe (en oficinas centrales y sedes regionales) con el software: Lotus Notes, Windows y otros; con las personas que los operan, ingresan datos, en cabinas, jefes de servicio, etc. Este sistema pudo haber iniciado como un registro en papel, o en hojas electrónicas de Excel, luego haber sido sistematizado profesionalmente. En el futuro puede ampliarse para incorporar otras bases de datos como voluntarios, contactos en municipalidades y consejos de desarrollo, historiales de desastres, fotografías, videos, etc. Algo de terminología El enfoque más popular (por mucho) de las bases de datos en la actualidad es el modelo relacional, basado en los estudios y teorías de Edgar Frank Codd y aunque no puede decirse que existan productos comerciales que cumplan estrictamente con todos los postulados del Dr. Codd, ha sucedido que una buena parte de los términos utilizados en la actualidad se derivan de sus planteamientos y su uso está ampliamente extendidos entre todos los DBMS, al punto que muchos gustan llamarse RDBMS por Relational Data Base Management Systems. Se usa Tabla para referirse al almacén de datos para una entidad concreta. Campo, y en menor medida Atributo, para identificar una variable de entre las que componen los datos de una entidad. Registro para la información de una entidad concreta, es decir, para el conjunto de valores de variables – campos – que especifican una entidad particular. Reporte para un listado especial de datos compuesto a partir de campos de varias tablas y que puede imprimirse. Microsoft® Excel y sus posibilidades Microsoft® Excel es una popular aplicación de hojas electrónicas, que permite el ingreso de datos en una cuadrícula donde las columnas se identifican por letras y las filas por números. Con el paso de los años, a través de nuevas versiones, se ha ido haciendo más sofisticado en sus funciones de graficación, dibujo, manejo de tablas dinámicas, programación, etc. Usualmente no se le asocia con bases de datos, sin embargo dispone de multitud de herramientas y funciones que son de mucha utilidad cuando se maneja información organizada como una base de datos. En general cualquier tabla de datos en Excel se puede considerar una base de datos. En este contexto la tabla de datos representa información de entidades, cada una ocupando un renglón en la tabla cuyas casillas son datos (valores concretos) que identifican al elemento individual de la entidad. Por ejemplo: una lista de películas puede construirse como una tabla con columnas para nombre, género, idioma, año de lanzamiento, etc. Cada fila en la tabla representa una película y los valores en cada casilla representan los datos de la película. Página 7 de 15 Manual de Bases de Datos Ilustración 2, Microsoft Excel permite manejar tablas como bases de datos con funciones útiles. Una base de datos construida de esta forma puede aprovecharse de diferentes formas en Excel. Por ejemplo, pueden ordenarse los datos en base a una o más columnas o campos, puede generarse un formulario automático para ingreso y búsqueda de datos, puede aplicársele el filtro automático para obtener un listado de películas cuyo género sea acción, etc. La flexibilidad de Excel como hoja electrónica permite componer reportes bastante vistosos en base a los datos almacenados, efectuar operaciones y cálculos, graficar, etc. Usando convenientemente las hojas que componen un libro de Excel, se pueden almacenar tablas diferentes, una en cada hoja y luego relacionarlas para obtener información nueva. Los DBMS y las bases de datos A pesar de que Microsoft® Excel puede resultar una excelente herramienta para bases de datos se ve limitado cuando se analizan requerimientos más avanzados de las bases de datos. Estos requerimientos pueden cubrirse mejor si se utiliza un DBMS en lugar de Excel u otro software no específico para bases de datos. En bases de datos es necesario poder definir dominios de datos, asegurar la integridad y consistencia de los datos y contar con un eficiente acceso a toda la información almacenada. Cada uno de estos requerimientos se explica en las secciones siguientes. Algunas de las limitaciones más serias de Excel y otros programas de archivo de datos aparecen cuando se necesita utilizar la información por varios usuarios en simultáneo o en localizaciones apartadas (diferentes oficinas por ejemplo). Los DBMS están pensados para proveer acceso simultáneo y distribuido a los datos, garantizando que si varios usuarios intentan modificar la misma información al mismo tiempo, se observe un mecanismo que garantice la integridad y consistencia de los mismos. Dominios de datos Frecuentemente en bases de datos, es necesario asegurar que los valores de un campo específico tengan ciertas propiedades. Por ejemplo, si se trata del precio al público de un producto entonces es deseable que nunca sea negativo, si se están ingresando valores de cédula de vecindad para personas es deseable que no se permitan valores más allá de U-22 (cédulas emitidas en Jutiapa) y en este caso también sería conveniente permitir solo letras y números en combinaciones válidas, una cédula que inicie con A-20 sería inválida. Se habla entonces del dominio de un campo: los valores válidos y permisibles para ese campo particular y también se le conoce (aunque no significan exactamente lo mismo) como tipo de dato. Existen dominios preestablecidos y que se usan sin mayor protocolo en los DBMS: Página 8 de 15 Manual de Bases de Datos Enteros Números sin decimales ni fracciones, positivos o negativos. Reales Cualquier número, con decimales o sin ellos, positivo o negativo. Booleano Permite solo dos valores: falso o verdadero, que se pueden interpretar también como sí y no, 0 y 1, presente y ausente, encendido y apagado, etc. Caracter Una letra, un símbolo, un dígito o un espacio. Cadena de Una secuencia de caracteres. caracteres Fecha Valores de fechas (en algunos casos incluye la hora) en el formato habitual según el país. Byte Un número entre 0 y 255. Otros dominios o tipos de datos pueden estar incluidos como parte del DBMS, por ejemplo: Memo, que representa una cantidad ilimitada de texto; Entero largo, con el que pueden almacenarse números enteros de muy alto valor; etc., pero en ciertos casos puede ser necesario proveer un dominio particular y este debe especificarse según lo permita el DBMS. Este es el caso de los números de registro en las cédulas, la profesión de una persona en una tabla de contactos, el género de una película, la edad de una persona, etc. Estos dominios específicos también pueden especificarse descriptivamente. Para los ejemplos presentados sería: Registro de Cédula Desde el A-1 hasta el U-22 Profesión Ingeniero, arquitecto, abogado, notario, psicólogo,... Género de Película Acción, drama, comedia, infantil,... Edad Número entero entre 0 y 130 Como puede verse estas especificaciones de dominios en ocasiones pueden hacerse descriptivamente (el caso del registro de cédula y la edad) pero en otras es necesario enumerar todas las posibilidades (el resto de casos) y también puede ser necesario establecer otras condiciones. Por ejemplo: la fecha de defunción de una persona no puede ser menor ni igual a la fecha de nacimiento, si el sexo es masculino entonces el sexo del cónyuge debe ser femenino, el precio de un producto no puede ser menor al costo, etc. Algunas de estas restricciones de dominio se derivan de las reglas o políticas de la institución que construye la base de datos. Algunos DBMS dan mayor libertad para especificar las restricciones de dominio de los datos, en otros esta posibilidad es limitada. En el caso de Microsoft® Excel, tomándolo como DBMS, es posible especificar restricciones de dominio pero no es muy práctico hacerlo de manera intensiva, por lo que no es algo que a la larga resulte plenamente confiable. Basta que se olvide establecer la restricción en un punto de la hoja electrónica para que se pierda consistencia, sin mencionar que los usuarios pueden fácilmente equivocar la celda donde ingresan los datos y entonces las restricciones pierden sentido. En los DBMS más avanzados las restricciones de dominio son fundamentales y están bastante desarrolladas. Es posible por ejemplo establecer reglas como que el número de clientes que atiende un ejecutivo (campo calculado) nunca puede ser cero ni nulo y que tampoco puede exceder de 5 y que los clientes que atiende deben residir o tener oficina en la misma ciudad donde vive el ejecutivo, aunque esto implique consultar diferentes tablas para verificar cada restricción. Existe un valor especial de dominio que es el valor nulo. Nulo indica que el dato no se conoce, al punto que no puede hacerse ninguna afirmación de él. Esto es importante porque algunas bases de datos pueden almacenar valores nulos para indicar que no se conoce nada sobre el dato y por ello, en algunos casos se puede exigir que un valor nunca sea nulo, por ejemplo en el caso del nombre de una persona, ya que si no se conoce el nombre de la persona entonces es mejor no guardar sus datos. Página 9 de 15 Manual de Bases de Datos Cuando se crea un nuevo registro sus campos están vacíos, si se requiere ingresar teléfonos y una persona no tiene teléfono se puede dejar en blanco o escribir “no tiene”, si al preguntarle la edad prefiere no contestar entonces el valor puede ser nulo, si al ingresar datos en el campo comentarios no se desea escribir nada entonces puede ponerse un espacio. En todos estos casos el valor es diferente y se interpreta de forma diferente. Integridad de los datos Entre los campos de una tabla se escogen aquellos que combinados identifican unívocamente a cada registro y se denominan la llave del registro. La identificación de la llave ayuda a diferenciar los registros entre sí y a evitar que se presenten controversias sobre cuál de dos registros es el correcto en caso de que sean muy parecidos. Si las llaves no fueran correctamente identificadas podrían presentarse casos de ambigüedades que restarían valor a la base de datos. Por ejemplo: supongamos que se construye una tabla para una base de datos de activos fijos. Cada registro de un activo está compuesto por los siguientes campos: Nombre del activo Nombre del activo Descripción Descripción y datos importantes del activo Valor en libros Valor según registro en cuenta contable Cuenta contable Cuenta contable en la que se registró el ingreso del activo Cuenta de depreciación Cuenta contable con la que se registran las depreciaciones del activo Para elegir el conjunto de campos que conformarán la llave se utilizan diferentes criterios: si se repetirá el valor de un campo para dos activos diferentes, si al tomar dos campos la combinación de valores será única, qué posibilidades hay de que el campo cambie de valor en el futuro, entre otras. Puede ser que se identifiquen diferentes campos o combinaciones que pueden ser la llave. A estas diferentes posibilidades se les llama llaves candidatas. Entre las llaves candidatas se elige la mejor opción. En el ejemplo el <Nombre del activo> puede ser una llave candidata siempre que exista seguridad de que dos activos diferentes nunca tendrán el mismo nombre. También la <Cuenta contable> puede ser una llave candidata si a cada activo fijo se le asigna una cuenta única. Incluso el campo <Cuenta de depreciación> podría ser una llave candidata. Por otra parte <Valor en libros> no es una buena candidata ya que se espera que su valor cambie con el tiempo y existe la posibilidad de que dos activos tengan el mismo valor. Tampoco <Descripción> es una candidata ya que es razonable esperar que puedan darse descripciones iguales para dos activos distintos y no solo por eso, también se espera que la llave identifique al activo no solo en el sistema sino en la mente de las personas que lo utilizan, por lo que la descripción no sería adecuada ya que usualmente se escriben descripciones amplias y detalladas, o en el extremo opuesto, no se escriben, lo cual dejaría a la llave sin valor (nula) y esto la descalifica como identificador del activo. La combinación <Cuenta contable> con <Cuenta de depreciación> podría ser una llave candidata si al juntarlas producen una combinación única, pero eso depende de las políticas de manejo de contabilidad que utilice la institución. Si no se encuentra un conjunto de campos para identificar unívocamente a las entidades puede ser necesario agregar un código. Sin embargo esto es un último recurso y si es necesario utilizarlo debe darse prioridad a los códigos que ya existen. Por ejemplo: en una tabla de datos de personas, si es necesario utilizar un código es mejor utilizar el NIT (en Guatemala) que se espera sea único para cada persona. Para solventar la dificultad de que algunas personas no tienen NIT podría usarse una combinación de NIT y número de cédula, o NIT y nombre. Esto porque estos códigos pre-existentes son más accesibles en la mente de las personas y no hay razón para obligar a nadie a memorizar nuevos códigos si basta con los existentes. Página 10 de 15 Manual de Bases de Datos El uso desconsiderado de los códigos produce problemas no solo de facilidad de uso de un sistema sino también de eficacia en el manejo de la información. Cuando se ha elegido una llave entre las llaves candidatas usualmente se le llama llave primaria. Si en una base de datos se ha identificado correctamente la llave primaria entonces se ha dado un paso importante para lograr la integridad de los datos, que consiste en poder asegurar que cada dato almacenado corresponde unívocamente a una sola entidad concreta. Cuando una base de datos no es íntegra se producen problemas como que aparecen dos o más registros que parecen corresponder a la misma entidad (al mismo activo fijo por ejemplo) y se dan problemas importantes (podrían estarse aplicando incorrectamente las depreciaciones o inflándose los activos). Consistencia de la información Una base de datos es consistente cuando sin importar cómo se consulten los datos los resultados obtenidos son iguales. No sería consistente si por ejemplo, preguntando por el total de ventas del mes de febrero se obtienen resultados diferentes por registros diferentes. Suelen encontrarse inconsistencias cuando se almacena el mismo dato en dos lugares diferentes de la base de datos. Si cada venta se almacena en la tabla facturas (al emitir la factura) y también como una descarga de inventario, eventualmente estos dos registros pueden llegar a ser inconsistentes por errores en el ingreso o por fallos en considerar ambos registros al momento de ingresar la información. Los DMBS comerciales proveen métodos probados para evitar la inconsistencia, de hecho estos métodos (triggers y constraints entre otros) son una de las principales razones por las que se prefiere un DMBS a una base de datos construida manualmente. El principio sobre el que descansa la consistencia es el de que todo dato, sea almacenado o calculado, debe provenir de una única fuente original. Eficiencia del acceso En el modelo relacional de bases de datos se especifica un procedimiento que garantiza la eficiencia tanto en el almacenamiento de los datos como en su recuperación. Se trata de la normalización. La normalización consiste en tomar cada una de las tablas de la base de datos y transformarlas primero a la primera forma normal, luego a la segunda forma normal, y por último a la tercera forma normal. Aunque existen otras formas normales adicionales, usualmente es suficiente con llegar a la tercera forma normal para obtener accesos y almacenamientos eficientes. El proceso de normalización genera nuevas tablas que pasan a formar parte de la base de datos. Es importantísimo dejar claro que el proceso de normalización es transparente para el usuario, es decir, lo realiza alguien con la formación técnica adecuada y en todo caso, puede ser simplemente conveniente para el usuario conocer los resultados. Para más información sobre el proceso de normalización puede referirse a la bibliografía adjunta a este manual. Cuando una base de datos está construida eficientemente es posible utilizarla para su fin primordial: obtener información. La información que se puede obtener de una base de datos se especifica por medio de preguntas (queries o query en inglés). De hecho se dice que las preguntas se le hacen a la base de datos. Supóngase que se tiene una base de datos que almacena información de desastres naturales ocurridos, por municipio y por fecha. Si la base de datos es eficiente podrá contestarnos consistentemente a preguntas como ¿Cuándo ocurrió el último sismo en la región de Quetzaltenango? ¿Cuándo se ha inundado el valle de la capital? ¿Cuál es la lista de deslizamientos ocurridos en los últimos 10 años? Página 11 de 15 Manual de Bases de Datos Diagramas Entidad-Relación Una forma de presentar el diseño y la estructura de una base de datos es el diagrama entidad-relación o ER. Toda entidad en una base de datos se relaciona con el resto de entidades de alguna forma, directa o indirectamente, estas relaciones pueden identificarse en el ER y así hacer visible el almacenamiento y los métodos de acceso a los datos. Por ejemplo: una base de datos almacena información sobre municipios del país, sus alcaldes y las capacitaciones en las que han participado. Cada municipio es una entidad, cada alcalde también lo es y aunque las capacitaciones no pueden considerarse estrictamente entidades, ya que solo existen cuando alguien las ha recibido, también se toman como tales, pero por su naturaleza algunos las llaman entidades débiles. Las relaciones existentes entre estas entidades pueden especificarse por una tabla: Municipios Municipios • Un alcalde ejerce en un municipio, y en uno solo, a la vez. • Las capacitaciones se dan a los alcaldes no a los municipios, pero los alcaldes ejercen en un municipio, por lo que hay una relación indirecta Alcaldes Capacitaciones Alcaldes Capacitaciones • El municipio tiene un alcalde que ejerce por uno o más periodos. • El municipio tiene un alcalde que recibe capacitaciones. • En el tiempo el municipio puede haber tenido varios alcaldes. • El municipio no recibe capacitaciones por lo que la relación es indirecta. • El alcalde recibe capacitaciones. Puede recibir varias. • Las capacitaciones se imparten a los alcaldes. • Cada capacitación concreta se da a varios alcaldes. Un ER que especifica estas relaciones las simplifica a su multiplicidad que es el número de registros que pueden esperarse que existan en una tabla por cada registro en la tabla relacionada. Municipio 1 municipio 1 municipio 1 alcalde Muchos alcaldes 1 alcalde Muchas capacitaciones Alcalde Muchos alcaldes 1 capacitación Capacitación Ilustración 3, Diagrama Entidad-Relación para una base de datos de municipios, alcaldes y capacitaciones recibidas por alcalde. Observe que las relaciones entre las entidades se han simplificado para especificar solamente la multiplicidad. Minería de datos La minería de datos es una técnica moderna aplicable a bases de datos con cantidades importantes de información almacenada, que busca encontrar nuevas perspectivas y responder a preguntas más complejas que las que usualmente se le hacen a la base de datos. Página 12 de 15 Manual de Bases de Datos Utiliza técnicas de estadística y análisis transaccional y de tendencias para encontrar enfoques nuevos en la información. La minería de datos no puede aplicarse en bases de datos nuevas o con poca información porque los resultados no necesariamente reflejarían tendencias sino ocurrencias particulares que sería peligroso generalizar. Luego de varios años de uso de una base de datos pueden empezarse a plantear análisis que provean estas nuevas perspectivas. Lo difícil es que no necesariamente se conoce qué dato es el que se está buscando, en ocasiones ni siquiera qué pregunta es la que se desea responder. En una base de datos sobre desastres naturales con información almacenada de varias décadas, podrían buscarse ciclos de desastres, poblaciones con mayor riesgo y factores de riesgo nuevos, entre otros. Bases de datos en Internet Con el desarrollo de la red global muchísimas empresas están ofreciendo servicios basados en bases de datos accesibles públicamente mediante páginas interactivas (páginas web) que pueden ser consultadas de forma gratuita o mediante pago. Ilustración 4, Búsqueda de fotografías de Atitlán en la base de datos de Flickr. Muchos de los servicios más populares son en realidad bases de datos a pesar de que no se presentan de esa forma. El correo electrónico (email) por ejemplo, puede conceptualizarse como una base de datos de mensajes, destinatarios, contraseñas, archivos adjuntos, etc. Pero no solo el almacenamiento de datos tradicionales basados en texto, ha sido puesto en línea, también es posible encontrar bases de datos de fotografías, videos, películas, artículos científicos y académicos, revistas, etc. Lo interesante es que estos otros tipos de información requieren un tratamiento especial. Por ejemplo, bases de datos de fotografías como Flickr (www.flickr.com) o Picasa (www.picasa.com) permiten a sus usuarios realizar búsquedas de fotografías específicas o relativas a un tema. Es posible localizar de esa forma fotografías del lago de Atitlán aún sin conocer quién pudo haberlas tomado o en qué circunstancias las tomó. Como las computadoras no son tan inteligentes como para interpretar el contenido de una fotografía e identificar en ellas el lago de Atitlán, es necesario agregar a cada imagen una serie de descriptores (tags) o palabras clave, que indican a qué se refiere. Esta técnica también se aplica a documentos o videos que se encuentran en formatos especiales. Sin los tags los buscadores dependen únicamente de la descripción, que puede resultar ambigua, ya que una fotografía podría estar descrita como “carretera hacia el lago de Atitlán” y por lo tanto no tratarse de una foto del lago propiamente. Si además falta la descripción entonces el sistema debe depender exclusivamente del nombre del archivo y este puede resultar todavía menos específico. Página 13 de 15 Manual de Bases de Datos Usabilidad de los sistemas de bases de datos Aunque muchas personas consideran que usabilidad es lo mismo que facilidad de uso, existen características de los productos, y del software, que los hacen ser más o menos usables aunque no necesariamente más o menos fáciles de usar. Algunos autores hablan de 5 cualidades que debe tener un producto para considerarse usable: eficacia, eficiencia, facilidad de aprendizaje, tolerancia al error y estimulante para trabajar. Estas 5 características pueden también evaluarse en los sistemas de bases de datos para saber si se trata de productos usables. La eficacia implica que se puede hacer todo lo que se necesita hacer y que se obtienen los resultados esperados. Esto significa que deben poder obtenerse todos los reportes, informes y datos que se necesitan. Se debe poder ingresar toda la información pertinente y que cuando esta información se ha ingresado los resultados son congruentes con ella. Hay fallos de eficacia cuando determinados datos no se han tomado en cuenta para el diseño del sistema y no pueden ser ni siquiera ingresados o ingresados de una forma adecuada. Esto sucede por ejemplo, cuando a falta de un mejor lugar para ingresar un dato particular, se termina ingresándolo en una sección general de comentarios, donde luego no es fácil de consultar. También cuando, teniendo ya la información ingresada, los reportes obtenidos son incongruentes o contradictorios con esta información. La eficiencia tiene que ver con que las operaciones que se hacen en el sistema se hagan con la menor cantidad de recursos físicos y tiempo. Si un resultado se obtiene solo tras un proceso largo, tedioso y lento, entonces existen problemas de eficiencia. La facilidad de aprendizaje se consigue cuando el sistema habla el mismo idioma que el usuario, utiliza estándares conocidos, es intuitivo en sus operaciones, es consistente en funciones similares – lo que se hace o se presenta de una forma en un lugar no se hace o se presenta diferente en otro – y se utilizan restricciones físicas, lógicas y culturales que guían al usuario para realizar las tareas bien desde la primera vez. Si el sistema permite al usuario recuperarse de un error cometido, mediante opciones de “deshacer” por ejemplo, o mejor aún, evita que se cometan errores, entonces se trata de un sistema tolerante al error. Para lograrlo hay varios principios que deben observarse: se debe informar al usuario en todo momento del estado del sistema, de forma que se identifique claramente si la situación actual implica algún peligro; se debe recurrir poco a la memoria del usuario y más a la intuitividad de la interfaz para la operatoria del sistema – son poco usables los sistemas en los que el usuario se ve obligado a memorizar grandes cantidades de comandos y procedimientos – entre otros. Y por último, el sistema debe ser estimulante de usar y de trabajar con él. Esto no significa solo que debe ser estéticamente agradable, sino que si las operaciones se realizan de forma expedita y sin complicaciones entonces el usuario siente que ha podido trabajar bien y que ha tenido una sesión productiva. Esto mejora el ambiente de trabajo y la satisfacción personal de trabajar. Diseño centrado en el usuario La metodología de diseño de sistemas que ha probado producir los mejores resultados en cuanto a usabilidad es el diseño centrado en el usuario. En ella se invita a los usuarios a ser miembros activos del diseño de los sistemas, a proveer todas las opiniones que consideren convenientes y a probar los prototipos del sistema desde el mismo momento en que están disponibles. Los prototipos juegan un papel esencial. Es muy diferente el desarrollo de un sistema cuando se conoce desde el principio cómo se ha pensado que sea su operación – en un prototipo – que cuando esta se conoce solo hasta que el sistema está casi terminado y es muy difícil cambiar cosas. Si se hacen prototipos desde el inicio cualquier inconveniente se identifica y se cambia antes de que se haya invertido demasiado trabajo en él y sea más difícil desecharlo. Página 14 de 15 Manual de Bases de Datos Observaciones finales La tecnología de bases de datos puede proveer información importante de forma eficiente. Sin embargo los sistemas completos de bases de datos también dependen de los usuarios en diversas circunstancias para garantizar que cumplan su papel. Desde el modesto ingreso de datos, hasta las operaciones de mantenimiento y realización de copias de respaldo, requieren asumir de forma responsable el papel de trabajadores de la información, concientes de que los datos que se manejan son importantes e incluso vitales para muchas otras personas. Página 15 de 15