(no subject)
Jan. 19th, 2026 03:04 pmГибридная Графовая База Данных (ака отверточка с моторчегом для моделирования моделей)
День 1. Общие размышления и архитектура.
Нужен инструмент чтобы строить и зумить графовую модель от верхних архитектурных уровней до самых мелких деталей в 2D, послойном 2D и 3D пространствах. Также необходима интеграция с языками и средами программирования для написания логики приложений. Существующие приложения, которые это делают, не были найдены.
Для этого надо написать движок гибридной графовой базы данных и интегрировать его с объектным языком (с++, но в принципе с любым другим, в котором есть мост к с++ функциям), чтобы можно было легко передавать данные и код из объектов языка в узлы графа и обратно.
Зачем ещё это может быть нужно:
- сохранение любых данных любых семантических графов для построения модельной реальности
- автоматизированная сериализация объектов в соответствующих языках, включая указатели на другие объекты
- поддержка компиляции кода как базы данных ассетов
- автоматизация одновременной разработки софта и железа для решения какой-то прикладной задачи
- гибридность означает поддержку массовых операций и упрощённый перенос данных существующих SQL баз. То есть в обычных графовых базах надо обрабатывать каждый узел и каждый линк отдельно, обычно для этого используется специальный язык с интерпретатором. В гибридной базе используются функции стандартного языка (с++) и возможна автоматизированная трансляция SQL (в виде опциональных плагинов)
- также может быть полезна унифицированная поддержка наборов настроек приложений, чтобы все данные лежали в одном месте и с одинаковыми API доступа
Какие могут быть преимущества по сравнению с другими системами баз данных:
- отсутствие типов данных при проектировании структуры и хранении. Типы данных интерпретируются на уровне стандартного языка. Для обозначения структуры данных и поля данных достаточно имени (которое может быть автоматически импортировано из исходного кода приложения или другого источника)
- прозрачная передача данных при сериализации объектов, не требующая использовать дополнительные языки и поддерживающая автоматическую генерацию кода. Ну то есть какой-то инструмент для генерации процедур сохранения и загрузки данных объектов, которые затем можно просто вставить в логику приложения
Базовые понятия графовой базы данных:
Узел данных - структура данных как единица хранения и обработки. Например, данные студентов, преподавателей и групп студентов из классического примера базы данных.
Линк - связь между узлами данных для поддержки логики приложения. Например, линк между студентами и группой. У линка могут быть свои данные, то есть в некотом ограниченном смысле он является и узлом данных.
Блюпринт - ака тип, ака класс, ака вид - общий прототип для отдельных узлов данных и линков. Например, блюпринт "студент" содержит поля "имя" и "курс", но не содержит реального имени и номера курса, а узел данных типа "студент" содержит данные конкретного студента. Термин "блюпринт" используется чтобы избежать путаницы с типами данных языка разработки (с++), но по сути это одно и то же.
Метаданные - данные для организации общей структуры. Например, список блюпринтов.
Архитектура
Очевидно нужна поддержка функциональности для всех вышеперечисленных базовых понятий - узлов данных, линков, блюпринтов и метаданных.
Первый этап разработки должен включать хранение данных в локальных файлах, второй - удаленный доступ к данным на другом хосте через соответствующий API.
Для ускорения доступа к данным нужна индексация.
Также требуются вспомогательные структуры для операций с динамической памятью и преобразования данных фиксированных типов языка разработки приложения в данные без типа для хранения.
Система для разработки и тестирования - Linux.
День 1. Общие размышления и архитектура.
Нужен инструмент чтобы строить и зумить графовую модель от верхних архитектурных уровней до самых мелких деталей в 2D, послойном 2D и 3D пространствах. Также необходима интеграция с языками и средами программирования для написания логики приложений. Существующие приложения, которые это делают, не были найдены.
Для этого надо написать движок гибридной графовой базы данных и интегрировать его с объектным языком (с++, но в принципе с любым другим, в котором есть мост к с++ функциям), чтобы можно было легко передавать данные и код из объектов языка в узлы графа и обратно.
Зачем ещё это может быть нужно:
- сохранение любых данных любых семантических графов для построения модельной реальности
- автоматизированная сериализация объектов в соответствующих языках, включая указатели на другие объекты
- поддержка компиляции кода как базы данных ассетов
- автоматизация одновременной разработки софта и железа для решения какой-то прикладной задачи
- гибридность означает поддержку массовых операций и упрощённый перенос данных существующих SQL баз. То есть в обычных графовых базах надо обрабатывать каждый узел и каждый линк отдельно, обычно для этого используется специальный язык с интерпретатором. В гибридной базе используются функции стандартного языка (с++) и возможна автоматизированная трансляция SQL (в виде опциональных плагинов)
- также может быть полезна унифицированная поддержка наборов настроек приложений, чтобы все данные лежали в одном месте и с одинаковыми API доступа
Какие могут быть преимущества по сравнению с другими системами баз данных:
- отсутствие типов данных при проектировании структуры и хранении. Типы данных интерпретируются на уровне стандартного языка. Для обозначения структуры данных и поля данных достаточно имени (которое может быть автоматически импортировано из исходного кода приложения или другого источника)
- прозрачная передача данных при сериализации объектов, не требующая использовать дополнительные языки и поддерживающая автоматическую генерацию кода. Ну то есть какой-то инструмент для генерации процедур сохранения и загрузки данных объектов, которые затем можно просто вставить в логику приложения
Базовые понятия графовой базы данных:
Узел данных - структура данных как единица хранения и обработки. Например, данные студентов, преподавателей и групп студентов из классического примера базы данных.
Линк - связь между узлами данных для поддержки логики приложения. Например, линк между студентами и группой. У линка могут быть свои данные, то есть в некотом ограниченном смысле он является и узлом данных.
Блюпринт - ака тип, ака класс, ака вид - общий прототип для отдельных узлов данных и линков. Например, блюпринт "студент" содержит поля "имя" и "курс", но не содержит реального имени и номера курса, а узел данных типа "студент" содержит данные конкретного студента. Термин "блюпринт" используется чтобы избежать путаницы с типами данных языка разработки (с++), но по сути это одно и то же.
Метаданные - данные для организации общей структуры. Например, список блюпринтов.
Архитектура
Очевидно нужна поддержка функциональности для всех вышеперечисленных базовых понятий - узлов данных, линков, блюпринтов и метаданных.
Первый этап разработки должен включать хранение данных в локальных файлах, второй - удаленный доступ к данным на другом хосте через соответствующий API.
Для ускорения доступа к данным нужна индексация.
Также требуются вспомогательные структуры для операций с динамической памятью и преобразования данных фиксированных типов языка разработки приложения в данные без типа для хранения.
Система для разработки и тестирования - Linux.
no subject
Date: 2026-01-19 01:10 pm (UTC)no subject
Date: 2026-01-19 01:23 pm (UTC)и там унутре есть таблица юзверей и таблица их друзей, самые простые, только с никнеймами
какой SQL запрос выдаст список друзей уровня n ?
ну или уровень n детализации какой-нть карты или схемы
no subject
Date: 2026-01-19 01:47 pm (UTC)no subject
Date: 2026-01-19 02:15 pm (UTC)в SQL не сложно, а невозможно повторить n раз если n параметр
задача с неизвестным заранее n вроде поиска пути из усть-урюпинска в усть-зажопинск в SQL не решаема тоже
в коммерческих базах типа оракла есть дополнительные скриптовые языки, но их надо учить отдельно и они не совместимы промеж себя
коты как-то поддерживали SQL базу всех гражданских радиостанций хуйлостана и больше не хотят этих чесаний левого уха правой пятгой, проще новый движок написать за неделю
no subject
Date: 2026-01-19 04:39 pm (UTC)