На второй схеме в БД хранятся записи, которые напрямую соотносятся с сущностями предметной области: пользователи, товары и пр. Эти сущности ты описываешь классами, а при создании объектов (экземпляров классов) ты наполняешь их конкретными данными из БД через интерфейс доступа (репозиторий).
Когда программа запрашивает объект, репозиторий:
- берёт класс (описание будущего объекта);
- берёт из БД строку с данными;
- сопоставляет имена полей класса с именами полей таблицы БД (мапит БД на класс);
- создаёт экземпляр класса;
- заполняет его поля данными из строки;
- выдаёт готовый объект запрашивающему методу.
Таким образом, классы + БД + репозиторий образуют модель (или домен) - это то что находится в центре первой схемы. Они представляют собой единое целое. Вся остальная программа не знает откуда взят объект - он просто получен через предоставленный интерфейс.
А та БД, которая показана на периферии - это внешние данные, которые не являются частью твоей модели и которые ты запрашиваешь для отработки своих сервисов. Например, цена твоего товара - это его свойство и ты хранишь её у себя, это часть твоей модели. А когда тебе надо представить цену в другой валюте, тебе нужен курс для пересчёта, который не является частью твоей модели и который ты получаешь от внешнего сервиса. Во внешнем сервисе он хранится в БД (поэтому на схеме показана БД), а получаешь ты его через предоставленный тебе интерфейс: REST API, RPC, SOAP, нарочным на конях и т.п.