Ваши источники рекомендаций верны, когда говорят, что это модель предметной области. Во многих случаях это будет достаточно тесно выровнять вашу модель данных.
Если модель домена и данных различаются, это то, что модель данных является относительно статичной по форме (а не по содержанию), тогда как модель вашего домена добавляет конкретные ограничения и правила вашего домена. Например, в моей модели данных (база данных) я представляю артериальное давление в виде маленьких букв (систолическое и диастолическое). В моей доменной модели у меня есть объект «показания артериального давления», который содержит значения для каждого из двух показаний, а также накладывает дополнительные ограничения на диапазон допустимых значений (например, диапазон для систолического гораздо меньше чем это для smallints). Это также добавляет качественные суждения об этих значениях (АД 150/90 является «высоким»).
Добавление этих аспектов проблемной области - это то, что делает модель домена не просто моделью данных. В некоторых областях (например, в тех, которые лучше отображать с помощью полностью объектно-ориентированной модели данных и которые плохо сопоставляются с реляционной моделью), вы обнаружите, что они значительно отличаются. Тем не менее, все системы, которые я создал, имеют очень высокую степень перекрытия. Действительно, я часто вставляю достаточное количество ограничений домена в саму модель данных с помощью хранимых процедур, пользовательских типов и т. Д.