martes, 20 de diciembre de 2011

INGENIERÍA DIRECTA Y REVERSA

                                                        Ingeniería Inversa

La Ingeniería Inversa de Bases de Datos es el conjunto de técnicas que permite la obtención de una representación conceptual de un esquema de base de datos a partir de su codificación.
Sus aplicaciones son múltiples: Re-documentar, reconstruir y/o actualizar documentación perdida o inexistente de bases de datos, servir como pivote en un proceso de migración de datos, y ayudar en la exploración y extracción de datos en bases poco documentadas.

Ahora se comienza a realizar el análisis por el cual obtendremos el modelo conceptual de una base de datos a partir de un modelo físico.

Esta aplicación está implentada en Delphi, con un Oracle Server 8i Lite, por lo tanto los ejemplos están basados en dichos productos. De todas formas, el análisis es el mismo a seguir independientemente del lenguaje o base de datos que utilicemos.

Lo primero que se debe de hacer es obtener toda la información posible de la estructura de la base de datos (no de los datos que contiene), es decir, nombre de las tablas, atributos de las tablas, etc. Dicha información se encuentra almacenada en el catálogo de la base de datos (el cual se consulta fácilmente utilizando SQL). La información obtenida a partir del catálogo se debe almacenar en algún lado (se suele crear una serie de clases que permitan almacenar toda la información y además a dichas clases se les agrega cierta funcionalidad que permita manejar fácilmente la información almacenada en ellas).

Para realizar la obtención de todas las tablas que componen la base de datos se debe efectuar una consulta SQL. En dicha consulta se obtiene los nombres de las tablas, atributos que componen las tablas con sus características más generales (tipos de datos y si admite valores nulos).


                                              Ingeniería Directa

En un mundo ideal, las aplicaciones se reconstruyen utilizando un “motor de reingeniería” automatizado. En el motor se insertaría el programa viejo, que lo analizaría, reestructuraría y después regeneraría la forma de exhibir los mejores aspectos de la calidad del software. Después de un espacio de tiempo corto, es probable que llegue a aparecer este “motor”, pero los fabricantes de CASE han presentado herramientas que proporcionan un subconjunto limitado de estas capacidades y que se enfrentan con dominios de aplicaciones específicos. Lo que es más importante, estas herramientas de reingeniería cada vez son más sofisticadas.
La ingeniería directa no solo recupera la información de diseño a partir del software existente, también utiliza esta información para alterar o reconstruir el sistema existente con la finalidad de mejorar su calidad global. En la mayoría de los casos el software sometido a reingeniería vuelve a implementar la función del sistema existente y también añade nuevas funciones o mejoras.


lunes, 19 de diciembre de 2011

ODBC

ODBC es una interfaz de nivel de llamada que permite que las aplicaciones tengan acceso a los datos de cualquier base de datos en la que haya un controlador ODBC. La utilización de ODBC permite crear aplicaciones de base de datos con acceso a cualquier base de datos en la que el usuario final tenga un controlador ODBC. ODBC proporciona una API que permite que la aplicación sea independiente del sistema de administración de bases de datos (DBMS) de origen.

ODBC es la parte de base de datos de la Arquitectura de servicios abiertos de Microsoft Windows (WOSA), una interfaz que permite que las aplicaciones de escritorio basadas en Windows se conecten a varios entornos de computación sin tener que volver a crear la aplicación para cada plataforma.

A continuación se incluyen componentes de ODBC:

·         API de ODBC

Biblioteca de llamadas a funciones, conjunto de códigos de error y sintaxis de lenguaje de consulta estructurado (SQL) estándar para tener acceso a los datos de los DBMS.

·         Administrador de controladores ODBC

Biblioteca de vínculos dinámicos (Odbc32.dll) que carga controladores de bases de datos ODBC en nombre de una aplicación. Esta DLL es transparente a la aplicación.

·         Controladores de bases de datos ODBC

Biblioteca o bibliotecas DLL que procesan llamadas a funciones ODBC para DBMS específicos.

·         Biblioteca de cursores ODBC

Biblioteca de vínculos dinámicos (Odbccr32.dll) que se encuentra entre el Administrador de controladores ODBC y los controladores, y que controla el desplazamiento por los datos.

·         Administrador de ODBC

Herramienta utilizada para configurar un DBMS de modo que quede disponible como origen de datos de una aplicación.

Para que una aplicación sea independiente de los DBMS tiene que trabajar a través de un controlador ODBC creado específicamente para un DBMS, en lugar de trabajar directamente con el DBMS. El controlador convierte las llamadas en comandos que el DBMS correspondiente puede utilizar, con lo que se simplifica el trabajo del desarrollador, y hace que esté disponible para una amplia gama de orígenes de datos.

Las clases de base de datos admiten cualquier origen de datos para el que se tenga un controlador ODBC. Entre ellos se puede incluir, por ejemplo, una base de datos relacional, una base de datos de método de acceso secuencial indizado (ISAM), una hoja de cálculo de Microsoft Excel o un archivo de texto. Los controladores ODBC administran las conexiones al origen de datos y se utiliza SQL para seleccionar los registros de la base de datos

Configuración

Para configurar orígenes de datos ODBC de Microsoft SQL Server, utilice el Administrador de orígenes de datos ODBC. Para iniciar el Administrador de orígenes de datos ODBC, haga clic en Orígenes de datos (ODBC) en el Panel de control.

Con el Administrador de orígenes de datos ODBC, puede realizar las siguientes acciones:

·         Ver información acerca de la versión del controlador ODBC de SQL Server instalado en el sistema.

·         Agregar, cambiar y quitar orígenes de datos para el controlador ODBC de SQL Server.

El Administrador de orígenes de datos ODBC también permite crear fichas para orígenes de datos de usuario, sistema y archivo.

Los orígenes de datos de usuario son específicos de la cuenta de inicio de sesión de Microsoft Windows que está activa en el momento en que se crean. Ninguna otra cuenta de inicio de sesión puede verlos. No siempre son visibles para las aplicaciones que se ejecutan como servicios en un equipo.

Todas las cuentas de inicio de sesión de un cliente pueden ver los orígenes de datos del sistema. Siempre son visibles para las aplicaciones que se ejecutan como servicios en un equipo.

Con ODBC versión 3.0 se agregaron los orígenes de datos de archivo. Los orígenes de datos de archivo no se guardan en el registro del sistema, sino en un archivo en el equipo cliente.

Después de elegir el tipo de origen de datos, el Administrador de orígenes de datos ODBC inicia el Asistente para configuración de DSN de SQL Server, que le guiará en el proceso de agregar orígenes de datos ODBC. Seleccione las opciones que necesite para su origen de datos, como por ejemplo la base de datos que contiene las tablas pertinentes.

INTRODUCCIÓN A LAS HERRAMIENTAS CASE

                                           

                                                  Erwin Platinium

Es una herramienta para el diseño de base de datos, que Brinda productividad en su diseño, generación, y mantenimiento de aplicaciones. Desde un modelo lógico de los requerimientos de información, hasta el modelo físico perfeccionado para las características específicas de la base de datos diseñada, además Erwin permite visualizar la estructura, los elementos importantes, y optimizar el diseño de la base de datos. Genera automáticamente las tablas y miles de líneas de stored procedure y triggers para los principales tipos de base de datos.

Erwin soporta principalmente bases de datos relacionales SQL y bases de datos que incluyen Oracle, Microsoft SQL Server, Sybase. El mismo modelo puede ser usado para generar múltiples bases de datos, o convertir una aplicación de una plataforma de base de datos a otra

Es una herramienta para el diseño de base de datos, que Brinda productividad en su diseño, generación, y mantenimiento de aplicaciones. Desde un modelo lógico de los requerimientos de información, hasta el modelo físico perfeccionado para las características específicas de la base de datos diseñada, además Erwin permite visualizar la estructura, los elementos importantes, y optimizar el diseño de la base de datos. Genera automáticamente las tablas y miles de líneas de stored procedure y triggers para los principales tipos de base de datos.
Erwin hace fácil el diseño de una base de datos. Los diseñadores de bases de datos sólo apuntan y pulsan un botón para crear un gráfico del modelo E-R (Entidad _ relación) de todos sus requerimientos de datos y capturar las reglas de negocio en un modelo lógico, mostrando todas las entidades, atributos, relaciones, y llaves importantes.
La migración automática garantiza la integridad referencial de la base de datos. ERwin establece una conexión entre una base de datos diseñada y una base de datos, permitiendo transferencia entre ambas y la aplicación de ingeniería reversa. Usando esta conexión, Erwin genera automáticamente tablas, vistas, índices, reglas de integridad referencial (llaves primarias, llaves foráneas), valores por defecto y restricciones de campos y dominios.
Erwin soporta principalmente bases de datos relacionales SQL y bases de datos que incluyen Oracle, Microsoft SQL Server, Sybase. El mismo modelo puede ser usado para generar múltiples bases de datos, o convertir una aplicación de una plataforma de base de datos a otra.



Software para Aplicaciones Compatibles:
* NetDynamics
* PowerBuilder
* PROGRESS
* Visual Basic
Bases de Datos Compatibles:
* CA-Clipper * CA-OpenIngres
* DB2 for MVS * DB2 for OS/390,
* DB2 UDB * dBASE
* FoxPro * HiRDB,
* Informix * InterBase,
* Microsoft Access * Microsoft SQL Server,
* Oracle * Paradox,
* Rdb * red Brick Warehouse,
* SAS * SQL Anywhere,
* SQLBase * Sybase,
* Teradata
Sistemas Operativos Compatibles:
* Windows NT
* Windows 95
* Windows 98

Requerimientos Técnicos:
Mínimo 10 MB de espacio de disco duro, 16 MB RAM (32 MB RAM recomendado para modelos largos.)


                                                    Power Designer

Power Designer es una suite de aplicaciones de Powersoft para la construcción, diseño y modelado de datos a través de diversas aplicaciones. Es una herramienta para el análisis, diseño inteligente y construcción sólida de una base de datos y un desarrollo orientado a modelos de datos a nivel físico y conceptual.
Esta suite cuenta con los siguientes productos:
·         PowerDesigner ProcessAnalyst: Permite analizar el flujo de datos de toda la empresa, a través de los departamentos hasta el usuario final.
·         PowerDesigner DataArchitect: Provee a los diseñadores de las bases de datos una manera eficiente para la creación inteligente, depuración e ingeniería de reversa del modelado, tanto conceptual como físico de los datos.
·         PowerDesigner AppModeler: Permite el diseño y ajuste de los componentes de objetos y datos en aplicaciones de uso común como PowerBuilder, Power++, Visual Basic y Delphi, ajustando el modelo de base de datos. Junto con la aplicación de servidor PowerDynamo (incluido) se pueden publicar las bases de datos en Internet directamente del modelo de base de datos. Esta herramienta también puede generar páginas de servidor activas para Microsoft Internet Information Server.
·         PowerDesigner WarehouseArchitect: Provee un poderoso datawarehousing para el diseño e implementación de una base de datos. Cuenta con soporte para bases de datos tradicionales DBMS y bases de datos en plataformas de sistemas analíticos usando modelados dimensionales, esquemas de "estrella" y "nieve", particionamiento y agregación. También cuenta con un alto desempeño en el indexamiento de esquemas.
·         PowerDesigner MetaWorks: Permite fácilmente ver y compartir la información del modelado de datos con una definición constante de objetos. También puede comparar y mezclar dos modelos de datos paso a paso.
·         PowerDesigner Viewer: Crea reportes de los modelos físicos, conceptuales y procesos del modelado de la base de datos. También permite generar reportes para Internet en HTML. Este producto cuenta con demos directos de sitio de Sybase en Internet para su evaluación.
Además de todas estas características, PowerDesigner ofrece las posibilidades de:
·        Soporte para tipos de datos abstractos: PowerDesigner soporta la identificación de tipos de datos abstractos con ingeniería inversa de aplicaciones para Oracle.
·         Soporte para usuarios de bases de datos: Los usuarios de bases de datos pueden ser recogidos de una base de datos existente y luego almacenados en un modelo físico de datos. Ahora, es posible añadir nuevos usuarios y también asignar usuarios como propietarios y vistas.
·         Mayor selectividad en ingeniería inversa: PowerDesigner permite seleccionar no sólo las tablas que se desean cargar, sino todo tipo de objetos de la base de datos.
·         Cálculo del tamaño de las bases de datos: Puede calcular y definir el tamaño definitivo de bases de datos de nuevo diseño y construcción, incluyendo tamaños detallados de índices y tablas.


NORMALIZACIÓN IV

                                                     Casos Prácticos

Contraer esta tablaAmpliar esta tabl
Nº alumno
Tutor
Despacho-Tut
Clase1
Clase2
Clase3
1022
García
412
101-07
143-01
159-02
4123
Díaz
216
201-01
211-02
214-01


Las tablas sólo deben tener dos dimensiones. Puesto que un alumno tiene varias clases, estas clases deben aparecer en una tabla independiente. Los campos Clase1, Clase2 y Clase3 de los registros anteriores son indicativos de un problema de diseño.

Las hojas de cálculo suelen usar la tercera dimensión, pero las tablas no deberían hacerlo. Otra forma de considerar ese problema es con una relación de uno a varios y poner el lado de uno y el lado de varios en tablas distintas. En su lugar, cree otra tabla en la primera forma normal eliminando el grupo repetido (Nº clase), según se muestra a continuación:

Contrae
Nº alumno
Tutor
Despacho-Tut
Nº clase
1022
García
412
101-07
1022
García
412
143-01
1022
García
412
159-02
4123
Díaz
216
201-01
4123
Díaz
216
211-02
4123
Díaz
216
214-01


Observe los diversos valores de Nº clase para cada valor de Nº alumno en la tabla anterior. Nº clase no depende funcionalmente de Nº alumno (la clave principal), de modo que la relación no cumple la segunda forma normal.

Las dos tablas siguientes demuestran la segunda forma normal:

Alumnos:


C
Nº alumno
Tutor
Despacho-Tut
1022
García
412
4123
Díaz
216



Registro:Contraer esta tablaAmpliar esta tabla

Nº alumno
Nº clase
1022
101-07
1022
143-01
1022
159-02
4123
201-01
4123
211-02
4123
214-01



En el último ejemplo, Despacho-Tut (el número de despacho del tutor) es funcionalmente dependiente del atributo Tutor. La solución es pasar ese atributo de la tabla Alumnos a la tabla Personal, según se muestra a continuación:

Alumnos:
Contraer esta tablaAmpliar esta tabla

Nº alumno
Tutor
1022
García
4123
Díaz



Personal:Contraer esta tablaAmpliar esta tabla

Nombre
Habitación
Dept
García
412
42
Díaz
216
42