Слышу, чувак. Я тоже живу в вашем мире. Мир, где деловые люди требуют отчетов. Комплексные отчеты. Отчеты, которые легко создаются с помощью сложных хранимых процедур. В этом мире легко думать, что база данных - король, и она управляет приложением. Эта линия мышления ведет к сложному коду TSQL базы данных, представлениям, функциям и хранимым процедурам.
Конечно, если вам действительно нужен отчет, то ответом может быть сложное SQL-выражение. Однако вы хотите знать, как вырваться из этого мира, управляемого данными, и войти в объектно-ориентированный мир.
Я думаю, что типичные учебные пособия по ОО не оправдают вас. Кого волнует, является ли собака типом животного, а немецкая овчарка - типом собаки. Это не объясняет, как вы ведете бизнес на работе. Кроме того, это только пример наследования ОО. Другие OO-шаблоны, такие как состав и внедрение зависимостей, в большинстве случаев гораздо полезнее.
Я думаю, вам следует подойти к следующему проекту или задаче - временно забыть о базе данных. Представьте, что вы живете в волшебном мире, где получение данных из базы данных не должно происходить, а запись данных в базу данных также не должна происходить. Вы живете в мире, где ваши объекты всегда заполнены правильными данными. Сначала смоделируйте свои объекты в этом абстрактном мире. После этого тогда (и только тогда) займитесь грязными деталями реализации получения и записи в базу данных. База данных существует только для сохранения ваших данных. Ваши данные живы, потому что вы уже смоделировали их, чтобы они соответствовали правилам вашего домена.
Понимание UML очень поможет в этом типе моделирования. Сначала используйте модели UML для моделирования своего домена. Затем используйте код для этих проектов. Затем обработайте их так, чтобы они соответствовали ограничениям вашей базы данных.
Эрик Эванс "Domain Driven Design" - отличная книга, которая помогает понять этот и многие другие важные вопросы. Он подчеркивает, что моделирование предметной области является критически важным элементом успешного моделирования приложения. Далее он отмечает, что объектно-ориентированное проектирование лучше подходит для моделирования предметной области, чем любая другая парадигма программирования.
Удачи. Как только вы охватите полностью смоделированный, полностью типизированный мир объектов, вам больше никогда не захочется снова анализировать другой набор данных.