LINUX.ORG.RU

В чем смысл графовых баз данных? (Как это работает?)

 ,


2

3

Начитался статей про сабж, глаза загорелись, нашел вот https://github.com/cayleygraph/cayley от гугла. Смотрю пример и не понимаю почему на хабре пишут что графовые бд это серебряная пуля в мире аналитики.

package main

import (
	"fmt"
	"log"

	"github.com/cayleygraph/cayley"
	"github.com/cayleygraph/cayley/quad"
)

func main() {
	store, err := cayley.NewMemoryGraph()
	if err != nil {
		log.Fatalln(err)
	}
	store.AddQuad(quad.Make("phrase of the day", "is of course", "Hello World!", nil))
	p := cayley.StartPath(store, quad.String("phrase of the day")).Out(quad.String("is of course"))
	err = p.Iterate(nil).EachValue(nil, func(value quad.Value){
		nativeValue := quad.NativeOf(value)
		fmt.Println(nativeValue)
	})
	if err != nil {
		log.Fatalln(err)
	}
}
Что здесь крутого-то? Я могу так
package main

func main() {
	var (
		x     = make(map[int][]string)
		start = "phrase of the day"
		end   = "is of course"
	)

	x[0] = []string{"phrase of the day", "is of course", "Hello World!"}

	for _, v := range x {
		if v[0] == start && v[1] == end {
			println(v[2])
		}
	}
}
Сомневаюсь что вся фишка в rdf-парсере, потому что rdf это xml. Мне кажется, здесь где-то скрыт тайный смысл. В общем, прошу гуру объяснить что к чему здесь, а то я запутался. Спасибо.

Перемещено leave из talks

★★★★

В чем смысл графовых баз данных? (Как это работает?)

http://techno.2gis.ru/lectures/7

Есть ниши в который реляционные БД причмокивают в сравнении с графовыми БД. А вот ниш, в которых причмокивали бы графовые, в сравнении с реляционными - нету

Siado ★★★★★
()
Последнее исправление: Siado (всего исправлений: 1)
Ответ на: комментарий от Siado

Нашел такой комментарий

Одна из основных тем в графовых бд - то что связи между объектами (вершинами) являются объектами уровня БД. Это значит, что при запросе в рантайме не тратится время на расчет этих связей (в то время как в rdbs, каждый join - это рантайм расчет таких связей) Как следствие, в rdbs время обработки такого запроса зависит от количества записей, а в графовых - практически нет.

Это оно?

Я представляю как искать кратчайший путь транспортировки груза в реляционной базе, а вот в графовой - нет.

dnb ★★★★
() автор топика

ты не можешь свой кусок питонового хэлловорлда запустить более чем на 1 ядре, настроить ему реплики на других серверах, кластернуть в in memory data grid на двадцать тысяч серверов

stevejobs ★★★★☆
()
Ответ на: комментарий от dnb

Я представляю как искать кратчайший путь транспортировки груза в реляционной базе, а вот в графовой - нет.

OLAP-куб + MDX: крутить многомерный «кубик-рубик» можно быстрее, чем тасовать реляционную колоду карт :)

quickquest ★★★★★
()
Ответ на: комментарий от stevejobs

ты не можешь свой кусок питонового хэлловорлда запустить более чем на 1 ядре, настроить ему реплики на других серверах, кластернуть в in memory data grid на двадцать тысяч серверов

И кроме этого реляционки очень медленные

Siado ★★★★★
()
Ответ на: комментарий от dnb

Я представляю как искать кратчайший путь транспортировки груза в реляционной базе, а вот в графовой - нет.

Вы ши не осилили теорию графов? Вообще-то, исключительно используя представление в виде произвольного графа вменяемые люди кратчайшие пути и ищут, применительно к любой задаче.

next_time ★★★★★
()
Ответ на: комментарий от Siado

С одной стороны, вроде бы, да. Но с другой, это полноценная иерархическая БД, а благодаря ссылкам и поддерживающая произвольные графы.

next_time ★★★★★
()
Ответ на: комментарий от stevejobs

ты не можешь свой кусок питонового хэлловорлда запустить более чем на 1 ядре

Python умеет в многопроцессность.

th3m3 ★★★★★
()
Ответ на: комментарий от next_time

взвешенный не отображает. По крайней мере, не всякая.

arkhnchul ★★★
()
Ответ на: комментарий от Siado

Очевидно, в сфере реляций нормализованных данных.

Shadow ★★★★★
()
Ответ на: комментарий от Siado

А вот ниш, в которых причмокивали бы графовые, в сравнении с реляционными - нету

Любая ниша, где данные не влазят на один сервер и требуется партишионинг?

redvicka
()

Забудь про СУБД вообще. Напиши простойку и не связывайся. Дело в том, что написание sql в коде для мокрых штанишек. Ты же мужык? Сделай абстракцию и выбери жизнь!

anonymous
()
Ответ на: комментарий от peregrine

Нет, в ФС помойка

А это уже проектировщика структуры конкретной БД зависит. Но таких помоек как в реляционных БД, в ФС не бывает.

и нет строгих правил

зависит от проектировщика

вместе с проверками структур на целостность

зависит от проектировщика * 2

next_time ★★★★★
()
Ответ на: комментарий от anonymous

Дело в том, что написание sql в коде для мокрых штанишек. Ты же мужык? Сделай абстракцию и выбери жизнь!

а много анон ООБД знает кроме Кашэ? что-то абстракции не зашли в народ.

system-root ★★★★★
()
Ответ на: комментарий от Siado

Я просто подумал, что у вас есть такая информация, раз позволяете себе такие заявления... Но раз нет - и вопросов нет.

yyk ★★★★★
()
Ответ на: комментарий от yyk

Тебе показали доклад из крупной компании, которая у своего ключевого продукта по объективным причинам сменила БД с реляционки на графовую.

Пищу для ума получил? Хочешь подробнее - гугл в помощь, не хочешь - флаг тебе в руки и барабан на шею.

Siado ★★★★★
()
Ответ на: комментарий от Siado

А кроме бла-бла-бла ещё что-то есть? (не у крупной компании, а у тебя)

yyk ★★★★★
()
Ответ на: комментарий от Siado

А ты попробуй, у тебя получится.

И как же это на русском называть?

redvicka
()
Ответ на: комментарий от system-root

народ он консервативный. дают говно, вот и жрет, не зная про остальное.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.