Объясните кратко, что это такое, является ли он самодостаточным или же используется с какими-то frameworks / libraries в связке?
GraphQL это язык запросов, как sql. Фишка GraphQL в том что форма запроса (какие поля включить в ответ, сколько данных выслать и все без join-ов) влияет на форму ответа.
Так же как и с mysql может быть несколько реализаций серверов, которые отдают данные по GraphQL запросу.
Запросы к этим серверам могут слать как другие приложения так и веб браузеры.
На практике чтобы использовать GraphQL нужен сервер, на сервере нужно описать какой формы данные и откуда их брать. Это самая сложная часть. Нужен клиент, который формирует запросы. Например для джаваскрипта это https://www.apollographql.com/docs/react/
Это все зависимости. Клиент может быть написан хоть на java хоть на js, хоть на Android.
GraphQL хорош для
- описания api (вместо REST) ибо предоставляет большую гибкость в том какие и как спросить данные.
- систем которые запрашивают разные клиенты (например веб приложение, андроид, ios приложение все для одного сервиса). Ибо форма и количество данных разные для разных клиентов, и задолбаешься описывать REST API для них. А источник правды для всех клиентов все равно один.
- фронтенд серверов, которые забирают и показывают данные из системы. Как слой представления данных.
Он используется как СУБД ?
Как слой между СУБД и клиентом. Позади за GraphQL должна стоять какя-то субд.