(он "ориентирован на узлы", если он вообще существует)
Начало здесь. При работе со сложным приложением, таким как база данных (даже простая база данных является сложным приложением), вы должны быть знакомы с историей домена и правильной терминологией и иметь представление об архитектуре как минимум очень высокого уровня. Вы можете начать со статьи в Википедии о базе данных . Потратил несколько дней на чтение всех статей о связанных понятиях и различных типах баз данных.
И поскольку то, что я имею в виду, не является ни реляционным, ни ориентированным на документы
Далее вы выбираете Relational или NoSQl. Если вы выбираете NoSQL, вы должны выбрать один тип NoSQL. Это чрезвычайно важно, вы не найдете никаких архитектурных документов, которые обсуждают все различные семейства баз данных. Неважно, какой вы выберете, просто выберите один и придерживайтесь его.
Язык не имеет значения ни в малейшей степени.
Да, это так (к сожалению), потому что после выбора семейства баз данных вы должны начать исследовать код из баз данных с открытым исходным кодом этого семейства. Есть несколько общих рекомендаций о том, что искать:
- Относительно небольшая кодовая база,
- Архитектурные документы или, по крайней мере, блог разработки,
- База данных, которую вы выбираете, должна быть близка к тому, что считается общей в семье, было бы сложнее учиться, если бы она была очень специализированной.
Несколько примеров, которые подходят:
Получите исходный код, скомпилируйте его и поиграйте с ним. Вам не нужно отправлять патчи или что-то еще, что нужно, просто изучите код и внесите небольшие изменения здесь и там, чтобы посмотреть, что произойдет. Это постепенный процесс, и чем больше вы играете с ним, тем легче будет понять, что делает код. Если первый выбранный вами проект кажется чрезвычайно сложным для понимания, просто переходите к следующему.
Другим отличным вариантом было бы сконцентрироваться на создании движка для MySQL, как @NB предлагает в предыдущем ответе .
Если вы дойдете до того момента, когда сможете сделать что-то полезное с помощью кодовой базы, присоединитесь к сообществу проекта, это самый простой способ найти более подробные ресурсы по рассматриваемым концепциям.
И, наконец, начать работать над вашей базой данных. Сначала вы можете просто написать чрезвычайно уменьшенный клон кода, который вы изучаете. Это не должно быть оригинально, довольно много отличных проектов начинались как клоны или вилки
Какие ресурсы / учебники / книги я могу прочитать, чтобы понять?
Есть довольно много книг:
И еще несколько сотен, плюс множество научных работ, которые вы легко можете отследить через Google. Вам нужно сначала определить, что вы хотите сделать, а затем искать книгу. Взаимодействие с сообществом авторов баз данных также поможет вам сузить список книг и, возможно, получить намного лучшие предложения, чем приведенные выше.
Удачи! Я ожидаю комментарий со ссылкой на ваш репозиторий, когда вы закончите. И если вы никогда этого не сделали, обязательно оставьте комментарий, напоминающий мне, что я все еще не закончил тот компилятор, который начал писать в 2001 году.