Page 70 - Ingeniantes Semestral 721 Interactivo
P. 70

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

Como se observa en la Figura 7, se le asigna un nú-              se unen con otra [13]. Para esto, un ciclo en Python
mero a cada tabla de la BD ya que, esto facilita la              construye los productos cartesianos requeridos, re-
búsqueda con el algoritmo DFS. Sin embargo, es im-               gresando un array de relaciones válidas para ejecutar
portante mencionar que el algoritmo DFS funciona                 la consulta que permitirá extraer la información solici-
correctamente tanto con el diccionario de la Figura 5            tada.
como con el diccionario de la Figura 6.                          Siguiendo esta metodología, cualquier sistema de in-
Una vez obtenido el grafo numérico, se seleccionan               formación puede utilizar cualquier BDR, aun cuando
las tablas de la consulta construida por el usuario              se desconozca a priori la estructura de ésta, para de-
desde la vista del sistema web a priori y se aplica              terminar las relaciones entre sus tablas y con esto
el algoritmo DFS siempre y cuando exista más de                  poder realizar consultas dinámicas.
una tabla, ya que el algoritmo requiere de dos nodos             RESULTADOS
como mínimo para buscar y regresar un camino.                    Los resultados obtenidos fueron evaluados mediante
Aplicación del algoritmo DFS                                     la implementación del enfoque y del algoritmo plan-
Para verificar si existe algún camino por el cual se             teado anteriormente en un sistema web de apoyo a
pueda relacionar la información, el algoritmo DFS toma           la toma de decisiones para la comercialización de
como valores de entrada los siguientes parámetros:               plantas ornamentales, siguiendo la metodología mos-
1) el grafo con etiquetas numéricas equivalente a la             trada anteriormente. Para su comprensión, conside-
base de datos; 2) el nodo inicial (por el cual empezará          re el ejemplo en donde el usuario requiere conocer
la búsqueda) y el nodo final o de destino. Esto se lo-           el nombre del cliente y el nombre del producto que
gra en Python implementando una función que recibe               compró. Para esto, el usuario construye una consulta
3 parámetros importantes, un grafo, un punto inicial y           en el sistema web arrastrando los parámetros nom-
uno final (véase Figura 8). El algoritmo siempre toma            bre de cliente y nombre del producto a una tabla en
dos tablas del array de tablas que utiliza la consulta y         la vista del sistema web. Por consiguiente, la Figura 9
les asigna un punto inicial y un punto final. No importa         ilustra el grafo equivalente de la BDR.
el orden y no tienen un peso, solamente importa obte-
ner si existe relación entre esas dos tablas.

Figura 8. Algoritmo DFS para encontrar el camino entre dos pun-
tos. Fuente [12].

Como se observa en la Figura 8, se utiliza el algoritmo          Figura 9. Tablas seleccionadas en la consulta.
DFS para verificar la existencia de camino entre un
punto inicial y un punto final, regresando un camino (si         Como se puede observar en la Figura 9, las tablas
es que existe), el cual consiste en una serie de núme-           en rojo son las tablas requeridas para obtener infor-
ros del recorrido del nodo inicial hasta el nodo final.          mación y las tablas en verde son las tablas que se
Generación de productos cartesianos para la con-                 encuentran en el camino entre éstas. Debido a que la
sulta                                                            tabla Clientes y la tabla Productos no están relaciona-
Una vez obtenidos los caminos válidos, el algoritmo              das entre sí, se debe verificar si existe algún camino
DFS selecciona la ruta más corta con lo que se deter-            por el cual se pueda relacionar la información. Para
minarán las relaciones entre las tablas involucradas             esto se utiliza el algoritmo DFS, el cual recibe el dic-
de la consulta final, considerando el esquema de la              cionario de la Figura 7 y las tablas necesarias para la
BD obtenido con la consulta mostrada en la Figura 4.             consulta.
Posteriormente, se crean los productos cartesianos               El algoritmo DFS realiza un ciclo para encontrar los
correspondientes a cada tabla. En SQL un producto                caminos y al final validar las relaciones; por lo cual, en
cartesiano o unión cruzada es la unión de informa-
ción de dos tablas donde las columnas de una tabla

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