viernes, 15 de mayo de 2009

Pasos para el buen diseño de una base de datos (Parte 1)

Una base de datos será tan efectiva, exacta y eficiente como la buena calidad de su diseño.
Una base de datos será tan efectiva, exacta y eficiente como la buena calidad de su diseño. Y un buen diseño sólo se consigue con experiencia y capacitación. Este artículo presenta siete pasos que cualquier persona -experimentada o novata- puede seguir para crear una base de datos.
Con el objeto de facilitar la capacitación de las personas con poca experiencia en bases de datos, Microsoft Access viene provisto de un asistente que se podrá utilizar para crear distintos tipos de bases de datos. El estudio de una base creada por el asistente –como la base de datos Contact Management utilizada en el curso de Microsoft Access 2002 (XP) en GCFLearnFree.org®– es un excelente comienzo para comprender los entretelones del buen diseño de una base de datos. Cree algunas bases de datos de ejemplo con el asistente y luego estudie su diseño: tablas, campos, relaciones, formularios, consultas e informes.
1. ¿Cuál es el objetivo de su base de datos?
El primer paso para el diseño de cualquier base de datos es determinar cómo y para qué se utilizará. ¿Cuál es el propósito de la base de datos? ¿Qué información debe tener? ¿Qué información desea generar?
La base de datos Contact Management analizada en Access 2002 (XP), se utiliza para mantener una libreta de direcciones con los nombres, direcciones y números telefónicos de sus contactos. La base de datos le permite agruparlos en diferentes categorías, por ejemplo, familiares o amigos. Otra función de la base de datos es poder ingresar notas en cualquier llamada telefónica realizada a cualquier contacto. Este tipo de historial de notas de las llamadas puede ser sumamente útil en una búsqueda laboral.
2. ¿Que tablas necesita?
Una base de datos relacional tiene una o más tablas que de cierta forma se vinculan entre sí. La selección de las tablas que se incluirán en su diseño es uno de los pasos más difíciles del proceso. Antes de crear tablas en Access XP, desarrolle un esquema, realice un bosquejo de sus ideas y revise su diseño sobre el papel. Hable con las personas que utilizarán la base de datos y comprenda sus necesidades. Conozca las preguntas que deberá contestar la base de datos.
Cada tabla en la base de datos debe tener información sobre un solo tema (por ejemplo, dirección del cliente). Esta información debe ser independiente de la información contenida en otras tablas (por ejemplo, pedidos de clientes). Los datos no se deben duplicar en otras tablas (por ejemplo, defina la dirección de un cliente solamente en una tabla). Cuando seleccione las tablas que incluirá en la base de datos, recuerde lo siguiente: 1) elimine las posibles entradas duplicadas, 2) no modifique la misma información varias veces en distintas tablas y 3) tenga en cuenta que deberá poder eliminar un registro de una tabla (por ejemplo, el pedido de un cliente) y conservar la información en otra tabla (por ejemplo, dirección y número telefónico del cliente).
La base de datos Contact Management utilizada en el curso Access 2002 (XP) estudia tres tablas principales: Contacts, Contact Types y Calls.
• La tabla Contacts tiene toda la información sobre cada entrada de la libreta de direcciones.
• La tabla Contact Types tiene las definiciones de categorías (por ejemplo, familia, amigos, etc.) que se le pueden asignar a una entrada.
• La tabla Calls tiene información sobre llamadas telefónicas específicas.
En este diseño de base de datos, la fecha, hora y notas de una cierta llamada telefónica quedan registradas en la tabla Calls. Ninguno de estos campos tiene una incidencia directa en la dirección o número telefónico en la tabla Contacts. Ambas tablas tienen información sobre dos funciones bien diferenciadas.
3. ¿Que campos necesita?
Cada tabla de la base de datos tiene información sobre un tema específico. Los campos en la tabla solamente tienen cierta información o hechos sobre el tema de esa tabla. Nunca debería haber campos duplicados en una tabla.
La base de datos Contact Management tiene varios campos en cada una de las tres tablas principales, entre ellos:
• La tabla Contacts tiene información sobre el contacto, por ejemplo los campos: name, address, city, state, zip code y phone number.
• La tabla Contact Types tiene un campo que define la relación entre usted y el contacto.
• La tabla Calls tiene varios campos que definen la fecha, hora, tema y notas que corresponden a una llamada

Productos SGBD disponibles en el mercado

• VirtualWork (http://www.virtualwork.cl) Sistema de Gestión ERP Web
SGBD libres
• PostgreSQL (http://www.postgresql.org Postgresql) Licencia BSD
• MySQL Licencia Dual, depende el uso.
• Firebird basada en la versión 6 de InterBase, Initial Developer's PUBLIC LICENSE Version 1.0.
• SQLite (http://www.sqlite.org SQLite) Licencia Dominio Público
• DB2 Express-C (http://www.ibm.com/ar/businesscenter/catalogo/db2_express-c.phtml)
• Apache Derby (http://db.apache.org/derby/)
SGBD no libres
• Advantage Database
• dBase
• FileMaker
• Fox Pro
• IBM DB2 Universal Database (DB2 UDB)
• IBM Informix
• Interbase de CodeGear, filial de Borland
• MAGIC
• Microsoft Access
• Microsoft SQL Server
• NexusDB
• Open Access
• Oracle
• Paradox
• PervasiveSQL
• Progress (DBMS)
• Sybase ASE
• Sybase ASA
• Sybase IQ
• WindowBase
• Softland ERP
• Flexline
• IBM IMS Base de Datos Jerárquica
• CA-IDMS
SGBD no libres y gratuitos
• Microsoft SQL Server Compact Edition Basica
• Sybase ASE Express Edición para Linux (Edición gratuita para Linux)
• Oracle Express Edition 10 para Windows
Según Wikipedia: http://es.wikipedia.org/wiki/DBMS
DB Designer
Actualmente se en encuentra en la versión 4, y puede ser descargado gratuitamente desde su web oficial, se trata de un software visual que nos ayuda para el diseño, modelado, creación y mantenimiento de nuestras bases de datos, trabaja perfectamente con MySQL, Oracle, MSSQL y otras bases de datos ODBC y modelos XML.

Principales características de DBDesigner
• Disponible para Linux y Windows
• Modo diseño y modo Consulta
• Ingenieria inversa para las bases de datos MySQL, Oracle, MSSQL y cualquier base de datos ODBC.
• Generación de esquemas definido por el usuario
• Sincronización del modelo a la base de datos
• Soporte de índices
Tablas: unidad donde crearemos el conjunto de datos de nuestra base de datos. Estos datos estarán ordenados en columnas verticales. Aquí definiremos los campos y sus características. Más adelante veremos qué es un campo.
Consultas: aquí definiremos las preguntas que formularemos a la base de datos con el fin de extraer y presentar la información resultante de diferentes formas (pantalla, impresora...)
Formulario: elemento en forma de ficha que permite la gestión de los datos de una forma más cómoda y visiblemente más atractiva.
Informe: permite preparar los registros de la base de datos de forma personalizada para imprimirlos.
Macro: conjunto de instrucciones que se pueden almacenar para automatizar tareas repetitivas.
Módulo: programa o conjunto de instrucciones en lenguaje Visual Basic
6. Conceptos básicos de una base de datos
Campo: unidad básica de una base de datos. Un campo puede ser, por ejemplo, el nombre de una persona. Los nombres de los campos, no pueden empezar con espacios en blanco y caracteres especiales. No pueden llevar puntos, ni signos de exclamación o corchetes. Si pueden tener espacios en blanco en el medio. La descripción de un campo, permite aclarar información referida a los nombres del campo. El tipo de campo, permite especificar el tipo de información que cargaramos en dicho campo, esta puede ser:
• Texto: para introducir cadenas de caracteres hasta un máximo de 255
• Memo: para introducir un texto extenso. Hasta 65.535 caracteres
• Numérico: para introducir números
• Fecha/Hora: para introducir datos en formato fecha u hora
• Moneda: para introducir datos en formato número y con el signo monetario
• Autonumérico: en este tipo de campo, Access numera automáticamente el contenido
• Sí/No: campo lógico. Este tipo de campo es sólo si queremos un contenido del tipo Sí/No, Verdadero/Falso, etc.
• Objeto OLE: para introducir una foto, gráfico, hoja de cálculo, sonido, etc.
• Hipervínculo: podemos definir un enlace a una página Web
• 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.

Otras ventajas:

o Más eficiente gestión de almacenamiento
1. Típicamente, es necesario disponer de una o más personas que administren de la base de datos, en la misma forma en que suele ser necesario en instalaciones de cierto porte disponer de una o más personas que administren de los sistemas operativos. Esto puede llegar a incrementar los costos de operación en una empresa. Sin embargo hay que balancear este aspecto con la calidad y confiabilidad del sistema que se obtiene.
2. Si se tienen muy pocos datos que son usados por un único usuario por vez y no hay que realizar consultas complejas sobre los datos, entonces es posible que sea mejor usar una planilla de cálculo.
3. Complejidad: los SGBD son software muy complejos y las personas que vayan a usarlo deben tener conocimiento de las funcionalidades del mismo para poder aprovecharlo al máximo.
4. Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que sea un software de gran tamaño, que requiere de gran cantidad de memoria para poder correr.
5. Coste del hardware adicional: los requisitos de hardware para correr un SGBD por lo general son relativamente altos, por lo que estos equipos pueden llegar a costar gran cantidad de dinero.

lunes, 11 de mayo de 2009

Ventajas

• Proveen facilidades para la manipulación de grandes volúmenes de datos. Entre éstas:
o Simplifican la programación de chequeos de consistencia.
o Manejando las políticas de respaldo adecuadas garantizan que los cambios de la base serán siempre consistentes sin importar si hay errores en el disco, o hay muchos usuarios accediendo simultáneamente a los mismos datos, o se ejecutaron programas que no terminaron su trabajo correctamente, etc.
o Permiten realizar modificaciones en la organización de los datos con un impacto mínimo en el código de los programas.
o Permiten implementar un manejo centralizado de la seguridad de la información (acceso a usuarios autorizados), protección de información, de modificaciones, inclusiones, consulta.
• Las facilidades anteriores bajan drásticamente los tiempos de desarrollo y aumentan la calidad del sistema desarrollado si son bien explotados por los desarrolladores.
• Usualmente, proveen interfaces y lenguajes de consulta que simplifican la recuperación de los datos

Existen distintos objetivos que deben cumplir los SGBD:

• Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción.
• Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.
• Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones.
• Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
• Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada. Los SGBD proveen mecanismos para garantizar la recuperación de la base de datos hasta un estado consistente (ver Consistencia, más arriba) conocido en forma automática.
• Respaldo. Los SGBD deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder.
• Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias.
• Manejo de Transacciones. Una Transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que el estado luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos.
• Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados

Elaboración de base de datos. Tipos de software dedicados a la elaboración de datos

Definición de Bases de Datos.- Un conjunto de información almacenada en memoria auxiliar que permite acceso directo y un conjunto de programas que manipulan esos datos

Base de Datos es un conjunto exhaustivo no redundante de datos estructurados organizados independientemente de su utilización y su implementación en máquina accesibles en tiempo real y compatibles con usuarios concurrentes con necesidad de información diferente y no predicable en tiempo.

Explicar Sus Orígenes Y Antecedentes
Surgen desde mediados de los años sesenta la historia de las bases de datos, en 1970 Codd propuso el modelo relacional, este modelo es el que ha marcado la línea de investigación por muchos años, ahora se encuentran los modelos orientados a objetos.