Page 69 - Ingeniantes Semestral 721 Interactivo
P. 69

Revista Ingeniantes 2020 Año 7 No. 2 Vol. 1

A continuación, se describe paso a paso la metodo-
logía llevada a cabo para la determinación de relacio-
nes e ilustrada en la Figura 2 y 3.
Extracción de información de la BD
Independientemente del lenguaje que se utilice es ne-
cesario, después de establecer conexión con la base
de datos, realizar una consulta SQL a la BD para ex-
traer la información interna (tablas y relaciones) como
se ilustra en la Figura 4, debido a que se desconoce a
priori la estructura de ésta.

                                                                  Figura 5. Representación de una base de datos en grafo.

Figura 4. Consulta SQL para extracción de tablas y relaciones de  El grafo de la BDR de la Figura 5, quedaría represen-
una base de datos.                                                tado mediante una lista de adyacencia en Python utili-
                                                                  zando diccionarios como se ilustra en la Figura 6.

Como se observa en la Figura 4, se crea una consulta
SQL que será de utilidad para determinar el esquema
ER de la BD, donde se selecciona información como:
nombres de tablas y columnas, llaves, referencias a
tablas y columnas asociadas.

Creación de diccionarios equivalentes a la BDR                    Figura 6. Representación de grafo en diccionario Python.
Como ya se mencionó en la sección anterior, es ne-
cesario conocer la información interna de la BD, y a              El diccionario presentado en la Figura 6, representa
partir de ésta, crear una representación de la BDR                los nombres de las tablas y sus relaciones. Al final, se
mediante un grafo, el cual es conjunto de nodos uni-              traslada este diccionario a un diccionario represen-
dos por aristas que permiten representar relaciones               tando sus claves y valores con etiquetas numéricas
entre sí. El grafo es requerido por el algoritmo DFS              en vez de nombres de tablas, como se muestra en la
para buscar la ruta (relación) entre dos nodos (tablas)           Figura 7.
del grafo representando la BDR.
La representación del grafo se puede lograr a tra-                Figura 7. Representación de grafo con etiquetas numéricas en
vés de diversas estrategias; sin embargo, una de las              diccionario Python.
estrategias más utilizadas son las listas de adyacen-
cia. En una lista de adyacencia se mantiene una lista
maestra de todos los vértices (nodos) y cada vértice
en el grafo mantiene una lista de los otros vértices
a los que está conectado, permitiendo encontrar fá-
cilmente todos los enlaces (aristas) que están direc-
tamente conectados a un vértice particular, es decir
las relaciones existentes entre éstos [11]. Por lo tanto,
se implementó una lista de adyacencia utilizando un
diccionario de Python, en donde la llave representa el
nodo y el valor es un arreglo que hace referencia a los
otros nodos a los que está conectado. Para compren-
der este proceso considere una BDR conformada por
5 tablas: pedidos, clientes, detallePedido, vendedores
y productos (véase Figura 5).

                                                                  65
   64   65   66   67   68   69   70   71   72   73   74