По вопросу 1:
Derby / JavaDB имеет два режима работы (цитируемая форма Документация JavaDB ):
Embedded
Относится к тому, что Derby запускается простым однопользовательским Java-приложением.С этой опцией Derby работает на той же виртуальной машине Java (JVM), что и приложение.Derby может быть почти невидимым для конечного пользователя, потому что он запускается и останавливается приложением и часто не требует администрирования.В документации по Derby это часто упоминается как встроенная конфигурация или встроенный режим.
Сервер (или на основе сервера)
Относится к тому, что Derby являетсязапускается приложением, которое обеспечивает многопользовательское подключение к базам данных Derby по сети.С этой опцией Derby запускается на виртуальной машине Java (JVM), на которой размещается Сервер.Приложения подключаются к Серверу из разных JVM для доступа к базе данных.Сетевой сервер Derby является частью дистрибутива программного обеспечения Derby и предоставляет этот тип инфраструктуры для Derby.Derby также хорошо работает с другими, независимо разработанными серверными приложениями.В документации по Derby это часто упоминается как конфигурация сетевого сервера или конфигурация клиент / сервер.
По моему опыту, основные различия обоих режимов заключаются в том, что во встроенном режиме база данных является частью вашего приложения.и только один пользователь может подключиться к базе данных.
В режиме сервера база данных не является частью вашего приложения, работает в другой JVM или на другом компьютере и работает в многопользовательском режиме / режиме нескольких подключений.
Что касается сравнения JavaDB и MySQL , я думаю, что это зависит от вашего приложения и функциональных требований.Быстрый поиск в Google показал это сравнение реляционных систем БД (дерби можно найти там под буквой "A" для Apache Derby).