Introducción a las bases de datos de grafos

¿Qué es una base de datos de gráficos?
Una base de datos de gráficos está diseñada para tratar las relaciones entre los datos como igualmente importantes para los datos en sí.

¿Por qué son importantes las bases de datos de grafos?
Debido a que los gráficos son buenos para manejar relaciones, algunas bases de datos almacenan datos en forma de gráfico.

Ejemplo
Tenemos una red social en la que están conectados cinco amigos. Estos amigos son Anay, Bhagya, Chaitanya, Dilip y Erica. Una base de datos de gráficos que almacenará su información personal puede verse así:

Ejemplo anterior pero usando un enfoque de base de datos tradicional
. Ahora usaremos una base de datos relacional para almacenar información. Es muy probable que usemos dos tablas: una para almacenar la información de cada usuario y la otra para almacenar las relaciones entre los usuarios. Así es como se ve la tabla Usuarios:

identificación primer nombre apellido Email teléfono
1 Anay Agarwal anay@ejemplo.net 555-111-5555
2 bhagya Kumar bhagya@ejemplo.net 555-222-5555
3 Chaitanya Nayak chaitanya@example.net 555-333-5555
4 Dilip jainista dilip@example.net 555-444-5555
5 Érica emmanuel erica@ejemplo.net 555-555-5555

Ahora, también necesitaremos otra tabla para capturar la amistad/relación entre usuarios/amigos. Nuestra mesa de amistad se verá así:

id_usuario amigo_id
1 2
1 3
1 4
1 5
2 1
2 3
2 4
2 5
3 1
3 2
3 4
3 5
4 1
4 2
4 3
4 5
5 1
5 2
5 3
5 4

Evitaremos profundizar en la teoría de la base de datos (clave principal y clave externa). En su lugar, suponga que la tabla de amistad usa las identificaciones de ambos amigos.

Supongamos que nuestra red social aquí tiene una función que permite a cada usuario ver la información personal de sus amigos. Entonces, si Chaitanya estuviera solicitando información, significaría que necesita información sobre Anay, Bhagya, Dilip y Erica. Abordaremos este problema de la manera tradicional (base de datos relacional). Primero debemos identificar el id de Chaitanya en la tabla de usuarios:

identificación primer nombre apellido Email teléfono
3 Chaitanya Nayak chaitanya@example.net 555-333-5555

Ahora, buscaríamos todas las tuplas en la tabla de amistad donde el ID_usuario es 3. La relación resultante sería algo como esto:

id_usuario amigo_id
3 1
3 2
3 4
3 5

Ahora, analicemos el tiempo necesario en este enfoque de base de datos relacional. Esto será aproximadamente log(N) veces donde N representa el número de tuplas en la tabla de amistad o el número de relaciones. Aquí, la base de datos mantiene las filas en el orden de las identificaciones. Entonces, en general, para el número de consultas ‘M’, tenemos una complejidad de tiempo de M*log(N)

Solo si hubiéramos utilizado un enfoque de base de datos de gráficos, la complejidad de tiempo total habría sido O (N). Porque, una vez que hemos localizado a Cindy en la base de datos, solo tenemos que dar un paso para encontrar a sus amigos. Así es como se ejecutaría nuestra consulta:

Desventajas: tenga
en cuenta que las bases de datos de gráficos no siempre son la mejor solución para una aplicación. Tendremos que evaluar las necesidades de la aplicación antes de decidir la arquitectura.

Publicación traducida automáticamente

Artículo escrito por support3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *