Из каких компонентов состоит Room?

Посмотреть в Telegram: @AndroidSobes/241
Основные компоненты Room:

Database – это точка доступа к базе данных. Класс, аннотированный @Database должен удовлетворять следующим критериям:

1. Быть абстрактным и наследоваться от RoomDatabase;
2. Иметь абстрактные методы без аргументов, которые возвращают DAO-объекты;
3. Аннотация должна включать список Entity-классов, которые принадлежат этой базе данных: @Database(entities = arrayOf(Student::class, School::class)).

DAO (Data Access Object) – класс, который имеет методы для доступа к базе данных.

Entity – класс, отражающий таблицу в базе данных.

Инстанс Database-компонента создается билдером, который можно получить с помощью метода Room.databaseBuilder() или Room.inMemoryDatabaseBuilder().
Database-класс дает доступ к объектам DAO, ассоциированным с базой данных.
DAO-объекты используются для получения и сохранения объектов Entity. А Entity – для получения значений, которые хранятся в таблицах базы данных.