<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="id11964466">
  <name>Ejemplo de Ingeniería Inversa de Datos</name>
  <metadata>
  <md:version>1.2</md:version>
  <md:created>2008/09/10 16:17:40 GMT-5</md:created>
  <md:revised>2008/10/07 15:08:52.699 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="msicilia">
      <md:firstname>Miguel-Angel</md:firstname>
      
      <md:surname>Sicilia</md:surname>
      <md:email>msicilia@uah.es</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="msicilia">
      <md:firstname>Miguel-Angel</md:firstname>
      
      <md:surname>Sicilia</md:surname>
      <md:email>msicilia@uah.es</md:email>
    </md:maintainer>
    <md:maintainer id="veronicadlmm">
      <md:firstname>Verónica</md:firstname>
      
      <md:surname>De la Morena</md:surname>
      <md:email>veronicadlmm@hotmail.com</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>Ingeniería Inversa de Datos</md:keyword>
  </md:keywordlist>

  <md:abstract>Ejemplo de Ingeniería Inversa de Datos.</md:abstract>
</metadata>
  <content>
    <section id="id12007130">
      <name>Ejemplo de Ingeniería Inversa de Datos</name>
      <para id="id11199538">La Ingeniería Inversa de Datos se aplica sobre algún código de bases datos para obtener los modelos relacionales o sobre el modelo relacional para obtener el diagrama entidad relacional.</para>
      <para id="id11701718">Entre las distintas técnicas de Ingeniería Inversa de datos, se propone el método de Hainaut et al () para explicarla. </para>
      <para id="id9111432">El método pasa por dos fases. En la 1ª fase se realiza la extracción de estructuras y en la 2ª la conceptualización de las mismas:</para>
      <list type="enumerated" id="id12350943">
        <item>FASE I: Extracción de estructuras<list type="bulleted" id="id12159745"><item>Considerar cada fichero una posible tabla.</item><item>Considerar cada campo del fichero como un posible campo de la tabla.</item><item>Identificar las claves primarias.</item><item>Identificar claves ajenas.</item><item>“Filtrar” las tablas (por ejemplo, despreciar aquellos ficheros sin clave principal).</item><item>Detección de campos obligatorios.</item><item>Detección de asociaciones entre tablas</item></list></item>
        <item>FASE II: Conceptuación de las estructuras<list type="bulleted" id="id9930611"><item>Sustitución de constructores propios del sistema real por constructores independientes (ej: una tabla que es un elemento físico es sustituida por el concepto de entidad que es un elemento lógico).</item><item>Detección y eliminación de los constructores no semánticos del esquema lógico, paso inverso a la optimización del esquema (ej: deshacer la normalización de un SGBD relacional).</item><item>Normalización conceptual para obtener estructuras de alto nivel.</item></list></item>
      </list>
    </section>
  </content>
</document>
