В чем разница между реляционной и нереляционной БД

«В чем разница между реляционной и нереляционной БД» — вопрос из категории Базы данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Реляционные БД (SQL) хранят данные в таблицах с жесткой схемой, используют связи между таблицами (JOIN) и поддерживают ACID-транзакции. Пример: SQLite, PostgreSQL.

Нереляционные БД (NoSQL) — документные (MongoDB), ключ-значение (Redis), графовые и др. Гибкая схема, горизонтальное масштабирование, но без гарантий ACID (чаще BASE).

Пример SQLite:

db.execSQL("CREATE TABLE Users (id INTEGER PRIMARY KEY, name TEXT)")

Пример Room (ORM для SQLite):

@Dao
interface UserDao {
    @Query("SELECT * FROM Users")
    fun getAll(): List<User>
}

Пример Firebase (NoSQL):

val db = Firebase.firestore
db.collection("users").get()

Выбор зависит от структуры данных и требований к масштабируемости/целостности.