Термины часто заменяются взаимозаменяемо, и там явно существует значительное совпадение, но так же часто кажется, что люди видят что-то сильно подразумеваемое, говоря, что система является ORM, что не подразумевается, что она является DAL. Что это? Что, если таковые имеются, являются ключевыми моментами, которые различают эти типы систем?
Например, скажем, у меня есть код, который реализует классы базы данных, таблицы, столбца и строки, заполняя их автоматическим анализом существующей базы данных, позволяя упрощенное взаимодействие и так далее. Он понимает, применяет и использует структурные отношения между объектами базы данных, такими как внешние ключи. Все модели сущностей могут быть подклассифицированы для загрузки на них функциональных возможностей на основе таблицы.
В какой степени это DAL? В какой степени это ORM? Почему?