1. INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y
ELÉCTRICA
UNIDAD CULHUACAN
INGENIERÍA EN COMPUTACIÓN.
COMPILADORES
INVESTIGACION:
“BASES DE DATOS ORIENTADAS A GRAFOS”
ALUMNO: PAEZ SANDOVAL ABRAHAM
GRUPO: 4CX43.
PROFR: DANIEL TAPIA SANCHEZ
2. INTRODUCCION
En un mundo de constantes cambios a nivel de sistemas, es necesario volver a
pensar acerca de los paradigmas que manejan la industria. Necesitamos ajustar
nuestras herramientas a las necesidades reales que tenemos hoy en día con el fin
de tener sistemas a la altura de nuestros requerimientos.
En el campo de los datos, este cambio se había detenido. Desde que en 1970 Edgar
F. Codd publicó su artículo seminal sobre bases de datos relacionales, este
paradigma ha dominado el panorama de los datos en los sistemas. Su longevidad
es debida en gran parte a que es un modelo bien fundado en bases matemáticas
que puede representarse fácilmente usando algoritmos computacionales. Gracias a
esto existe una oferta amplia de sistemas de bases de datos relacionales (RDBMS),
hecho que a su vez ha llevado a los desarrolladores a usarlos en prácticamente
todas sus aplicaciones.
Aun así, hemos llegado a un punto en que seguir usando bases de datos
relacionales para todos los casos es simplemente inviable. Existen varios problemas
con los RDBMS actuales que pueden suponer una seria limitante para la
construcción de aplicaciones. Estos problemas son en gran medida el motivo por el
que surgió el movimiento NoSQL (Not Only SQL).
El paradigma NoSQL no es un sustituto a las bases de datos relacionales, es solo
un movimiento que busca otras opciones para escenarios específicos como los que
mencionamos, “No uses sólo SQL”. Históricamente, el término fue primero usado
en los 90’s para nombrar una base de datos relacional open source. Sin embargo,
como denominador del conjunto de bases de datos alternativas al modelo relacional,
fue primero usado en 2009 por Eric Evans para nombrar una serie de conferencias
sobre este tipo de bases de datos. Aunque el término más correcto sería NoREL
(Not Only Relational), como varios han señalado, el término NoSQL ya tiene gran
aceptación. Es solo una forma de decir que no todos los problemas son clavos que
3. pueden ser atacados con un RDBMS y dentro de las alternativas que surgen para
solucionar estos inconvenientes tenemos el surgimiento de las bases de datos
orientadas a grafos.
Las Bases de Datos Orientadas a Grafos (BDOG) se caracterizan porque las
estructuras de datos para el esquema e instancia se basan en modelos de datos de
grafo. Un grafo es básicamente un conjunto de puntos (vértices) en el espacio, que
están conectados por un conjunto de líneas (aristas). Como una de las formas más
generales de modelado de datos, un grafo permite representar fácilmente
entidades, sus atributos y sus relaciones. Esto permite darle importancia no solo a
los datos, sino a las relaciones entre ellos.
Estos modelos se iniciaron en los años ochenta y a principios de los noventa, junto
con modelos orientados a objetos
Su influencia decayó poco a poco con la aparición de nuevos modelos de bases de
datos. Recientemente, la necesidad de gestionar la información a través de una
estructura de grafo y las limitaciones de las bases de datos tradicionales (en
particular el modelo relacional), para cubrir las necesidades de las aplicaciones
actuales ha llevado al desarrollo de nuevas tecnologías, y por consiguiente ha
restablecido la importancia de esta área.
4. Bases de datos orientadas a grafos
Las bases de datos basadas en grafos, abordan una de las nuevas tendencias de
negocio que podemos encontrarnos actualmente y que consiste en aprovechar las
relaciones complejas y dinámicas que existen en los datos, para generar nuevos
conocimiento y ventajas competitivas en las empresas. Si nuestro objetivo es que
queremos ser capaces de entender las relaciones de compra de nuestros clientes,
el funcionamiento de los genes dentro del ADN o los aminoácidos de las proteínas,
o como las fuerzas actúan sobre las partículas subatómicas, por poner algunos
ejemplos de naturaleza muy dispar, es necesario tener la capacidad de comprender
y analizar enormes cantidades de datos, datos que se encuentran relacionados
unos con otros siguiendo un modelo basado en grafos.
Una de las ventajas que encontramos con las bases de datos orientadas a grafos,
es que a diferencia de los modelos relacionales, la forma en la que los datos son
almacenados es muy similar a la manera en la que las personas pensamos sobre
ellos, lo que facilita su comprensión y hace de las relaciones el elemento más
importante dentro del modelo de datos. Es decir, cada elemento que forma parte del
grafo, puede ser algo tan simple como un nodo o tan complejo como un documento
o una persona, y todos ellos van a tener un conjunto de descriptores o metadatos
que los describen, algo perfectamente posible dentro del modelo relacional.
Pero si nos detenemos a mirar las relaciones se este modelo estas no pasan de
convertirse en meras restricciones (constraints) en tiempo de ejecución, una
relación de tipo 1 a N, no posee la semántica que podemos encontrar cuando
hablamos de una relación del tipo “amigo de” en un modelo basado en grafos, y por
supuesto no es igual de fácil de comprender, y aunque podamos modelar esta idea
en una base de datos relacional, lo tenemos que hacer de un modo forzado, y
utilizando mecanismos que no son los más óptimos.
5. Pero, ¿qué es un grafo?
Formalmente un grafo es una colección de vértices y aristas o de nodos y las
relaciones que los conectan. Los grafos nos sirven para modelar toda clase de
escenarios, pensemos en los ejemplos que hemos puesto al principio para hacernos
una idea de sus posibilidades.
Los grafos tienen una serie de características muy sencillas de comprender:
Están formados por nodos y relaciones
Los nodos contienen propiedades (del tipo clave-valor)
Las relaciones tienen un nombre y siempre parte de un nodo de inicio a otro
de destino.
Las relaciones también pueden tener propiedades.
Pensemos por ejemplo en Facebook, y cómo podría ser su modelo de datos
utilizando grafos para una pequeña red de amigos, y en donde la semántica de la
relación “amigo de” es fundamental para poder establecer el contexto. Esta relación
queda establecida por la flecha que une cada una de las cajas siguientes:
En el grafo anterior observamos las relaciones de Carlos-Sara y Carolina-Sara son
ambas de amigos mutuos, a pesar de que Carlos aparece como amigo de Carolina,
esta no ha aceptado la solicitud de amistad. El modelo de Facebook al que se hace
referencia es increíblemente más grande que el ejemplo anterior, pero ejemplifica
adecuadamente lo que buscamos entender en cuanto a BDOG se refiere.
6. Otro ejemplo es el del famoso “me gusta (like)” que se puede implementar en el
ejemplo que anteriormente se vio. Consideremos que Sara ha actualizado su estado
en repetidas ocasiones, lo que resulta en una relación “último” entre Sara y su última
actualización, una relación “anterior” entre una actualización y otra, y una relación
“me gusta” entre Carlos y alguna de las actualizaciones de Sara, lo cual se
representaría de la siguiente manera:
Una base de datos basada en grafos debe permitir tanto el modelado de un
escenario como el anteriormente establecido, como proporcionar las herramientas
necesarias para su consulta y análisis.
7. Fortalezas de una BDOG
Cualquier cosa puede ser modelada en una base de datos orientada a grafos debido
a que usa los grafos como estructuras de control, pero que una base de datos
orientada a grafos ofrezca una poderosa y novedosas técnicas de modelado
de datos, no es una justificación suficiente para que una técnica bien conocida,
como lo son las bases de datos tradicionales, sean sustituidas. En las bases de
datos con grafos existen ciertos casos donde el uso de datos en una aplicación
mejora el rendimiento en uno o más pedidos si se lo implementa con grafos, y cuya
latencia es menor en comparación al procesamiento por lotes tradicional. Además
de este beneficio, las bases de datos con grafos ofrecen un modelo de datos muy
flexible, y un modelo para la entrega de datos con la agilidad que necesita el
software, como son:
- Rendimiento
Una de las principales razones por las que se implementan las BDOG es su mayor
rendimiento, en comparación con las bases de datos relacionales y otras NoSQL. A
diferencia de las bases de datos relacionales, cuyos rendimientos se deterioran
en las consultas intensivas y con un procesamiento de datos muy alto; las BDOG
ofrecen un rendimiento que tiende a permanecer constante, así como un
crecimiento de los datos. Esto se debe a que las consultas se realizan de manera
gráfica, haciendo recorridos entre las relaciones (aristas) que posea la base. Como
resultado, el tiempo de ejecución de esta consulta es proporcional solo al tamaño
de la parte grafica que tenga que recorrer para satisfacerla, en lugar del tamaño
global del grafo.
- Flexibilidad
Al desarrollador de aplicaciones le interesa conectar los datos permitiendo una
estructura donde el esquema que surja del conjunto de Interés pueda crecer sin
ningún problema. Las bases de datos orientadas a grafos abordan directamente
este tema, porque su modelo de datos se expresa y se acomoda a las necesidades
8. del negocio, de tal manera que se permite mover a mayor velocidad en la resolución
problema.
Los grafos son auditivos, por lo que se pueden añadir nuevos tipos de relaciones,
nuevos nodos y sub-grafos a una estructura ya existente sin alterar las consultas y
la funcionalidad de la aplicación. Y, en general, esto tiene consecuencias positivas
para el desarrollador debido a la flexibilidad del modelo con grafos, lo que también
tiene tendencia a realizar menos migraciones para poder reducirlos gastos de
mantenimiento y el riesgo que conlleva.
- Agilidad
A medida que la aplicación vaya creciendo, también se precisa que el modelo de
datos evolucione para adaptarse a las nuevas necesidades. Las bases de datos nos
equipan para llevar a cabo el mantenimiento progresivo de los sistemas, en
particular, la naturaleza sin esquema, junto con la comprobación de las aplicaciones
y el lenguaje de consulta, damos paso para que evolucionen las aplicaciones en un
entorno controlado. Al mismo tiempo, como son libres de esquemas, las bases de
datos con grafos carecen de la clase de mecanismos que son familiares en las
bases de datos relacionales. Pero esto no es un riesgo debido a que estas se
alinean al desarrollo ágil del software, lo que permite respaldar la evolución que
tienen las aplicaciones actualmente para que se acoplen al ritmo cambiante del
entorno de negocio.
9. Conclusiones.
Primero que nada considero que todo esto surge principalmente a partir del
concepto de “Big data”, ya que debido a que en la actualidad la información que se
genera día con día necesita ser almacenada, procesada y organizada para que
cuando se requiera acceder a esta, se muestre de una manera eficiente, además
de que la cantidad de esta es cada vez es más grande. Ante esta situación es
requerida la creación de sistemas que realicen estas tareas, por ello surgen distintos
tipos de sistemas de bases de datos como el relacionales uno de los principales
modelos utilizados para hacer frente a esta necesidad, sin embargo no es una
solución perfecta ya que tiene algunas limitantes. Por ello las bases de datos
orientadas a grafos comienzan a obtener una amplia implementación en el manejo
de la información. Los motivos por los que se sobreponen a las bases de datos
relacionales son de resaltar: eficiencia, flexibilidad, agilidad, etc; todo esto debido a
que el uso de grafos permite representar fácilmente entidades, sus atributos y sus
relaciones. Además de darle importancia no solo a los datos, sino a las relaciones
entre ellos.
Bibliografía.
http://es.wikipedia.org/wiki/Base_de_datos_orientada_a_grafos
http://dspace.utalca.cl/bitstream/1950/9359/2/cornejo_diaz.pdf
http://sg.com.mx/revista/42/nosql-la-evolucion-las-bases-datos#.VBjSgdLuLRU
https://www.academia.edu/5731075/Bases_de_datos_orientadas_a_grafos_y_su_enfoque_en_el_
mundo_real
http://www.javamexico.org/blogs/ezamudio/neo4j_base_de_datos_orientada_grafos
http://santiagomarquezsolis.com/herramientas-para-big-data-neo4j-parte-1/
http://www.tesis.uchile.cl/tesis/uchile/2009/angles_r/html/index-frames.html