Base de dados gráfica

Uma base de dados gráfica, também referida como base de dados semântica, é um software concebido para armazenar, consultar e modificar gráficos de rede>/strong>. Um gráfico de rede é uma construção visual que consiste em nós e bordas. Cada nó representa uma entidade (como uma pessoa) e cada borda representa uma conexão ou relação entre dois nós. 

Bancos de dados gráficos têm estado em torno de alguma variação ao longo do tempo. Por exemplo, a family tree é um banco de dados gráfico muito simples. 

O conceito de usar bancos de dados para mapear relacionamentos digitalmente começou a ver o uso popular nos negócios por volta de 2015 quando o aumento do poder computacional, a computação em memória e os padrões acordados mudaram o conceito de acadêmicos para usos do mundo real em negócios e computação empresarial.

Bancos de dados gráficos são bem adequados para analisar interconexões, e é por isso que tem havido muito interesse em usar bancos de dados gráficos para extrair dados das mídias sociais. Os bancos de dados gráficos também são úteis para trabalhar com dados em disciplinas empresariais que envolvem relacionamentos complexos e esquemas dinâmicos, como a gestão da cadeia de fornecimento, identificando a origem de um problema de telefonia IP e criando "clientes que compraram isto também olharam para..." motores de recomendação.

O conceito por trás do gráfico de um banco de dados é freqüentemente creditado ao matemático Leonhard Euler do século 18.

A estrutura de um banco de dados gráfico

Tradicionalmente classificado como um tipo de banco de dados NoSQL, bancos de dados gráficos são às vezes referidos como lojas triplas. Isso porque esse tipo de banco de dados usa um índice especial que armazena informações sobre nós, bordas e a relação entre eles em grupos de três.

Um triplo, que também pode ser referido como uma afirmação, tem três campos principais: um assunto, um predicado e um objeto. Cada assunto, predicado ou objeto é representado por um único identificador de recurso (URI).

Como a informação é indexada

Em uma loja tripla, o primeiro campo da base de dados contém o URI para o assunto, o segundo campo contém o URI para o predicado e o terceiro campo contém um URI para o objeto.  Embora existam várias estratégias diferentes que as bases de dados gráficas podem utilizar para armazenar triplos, a maioria utiliza um índice que abreviatura os três campos primários para {?s, ?p, ?o}. 

Por exemplo, se a construção visual para um gráfico é dada da seguinte forma:

Nodes and edges

Então o índice será parecido com o seguinte:

< espaçamento de célulastable="2" cellpadding="2">

 Row

?s

?p

?o

1

:Bob

:marriedTo

:Julie

2

:Bob

:brotherOf

:Steve

3

:Bob

:listensTo

:RockMusic

4

:Julie

:listensTo

:RockMusic

5

:Julie

:sisterInLawTo

:Steve

6

:Jim

:worksFor

:IBM

How information in a graph database is queried

Each triple in a graph database only gets stored once in the index. Just like relational databases, it's a simple process to do a straight lookup query in a graph database.

  • If the query is for what information is known about Bob, the indexer programming only needs to search rows 1-3 of the database.

The real power and speed of a graph database comes from indexing combinations of triples.  Here's are a few examples:

  • If the query is for who Bob is married to, the indexer will look for the predicate :marriedTo in rows 1-3 and then retrieve the matching object.  (Bob is married to Julie.) 
  • If the query is to identify everyone who listens to the same kind of music as Bob, the indexer will first ask { :Bob :listensTo ?o } and identify :RockMusic as the object. 

Na segunda consulta, os resultados retornarão :RockMusic nas linhas 3 e 4.  O assunto na linha 3 é o próprio Bob, então quem for o assunto na linha 4 será a outra pessoa que ouve música rock. (Acontece que é Julie, esposa de Bob.) 

Tipos de bancos de dados gráficos

Histórico, bancos de dados gráficos foram divididos em duas categorias -- gráficos de propriedades que simplesmente suportam nós e bordas, e gráficos de conhecimento como o acima que pode focar no  aspectos semânticos dos dados e armazenar informações em triplos. geralmente falando,  estratégias de indexação para ambos os tipos são similares.

É esperado que com o tempo, gráficos de conhecimento e gráficos de propriedades se fundam e as distinções arquitetônicas entre esses dois tipos de bancos de dados gráficos se desvaneçam.

Utilizar casos para bases de dados de gráficos

Casos de uso corrente para bases de dados de gráficos incluem o seguinte:

  • Permitir que os analistas de dados federem conjuntos de dados sem ter que criar e executar consultas complexas que juntem combinações de tabelas, como no modelo de base de dados relacional.
  • Ajuda os desenvolvedores a criar o back end para  assistentes de voz mapeando possíveis perguntas do usuário para corrigir respostas. 
  • Identificar clusters de eventos que estão conectados de formas incomuns para detectar fraudes.
  • Examinar conexões diretas para identificar possíveis conexões indiretas para mecanismos de recomendação. 

Futuro de bancos de dados gráficos

Bancos de dados gráficos devem desempenhar um papel importante em áreas tão diversas como a aprendizagem de máquinas, análise Bayesiana, ciência de dados e inteligência artificial, bem como ajudar a gerenciar dados empresariais e intercâmbio de dados, durante a próxima década.

Um dos impactos mais significativos neste tipo de banco de dados serão as melhorias na federação de dados. Quando os gráficos de conhecimento puderem ser facilmente federados, uma base de dados será capaz de determinar que precisa de dados que não tem e recuperar automaticamente esses dados de outro gráfico de conhecimento. Com esta capacidade, é provável que a federação ajudará os desenvolvedores a criar cadeias de bloqueio que usam metadados relevantes para autenticar transações em bancos, finanças, votação e contratos inteligentes.

>i>Ver também:  gráfico social, pesquisa de gráficos