Сложности согласования типов между языками программирования и базами данных традиционно считаются ключевой причиной потери соответствия.
И в языках программирования, и в базах данных имеется поддержка примитивных типов и структур данных. Хотя детали отображения разных представлений данных могут вызывать неприятные проблемы, на концептуальном уровне модели данных в языке программирования и в базе данных являются совместимыми. Это не является удивительным при имеющейся универсальности методов структуризации данных. Хотя данные и типы совместимы, имеются существенные проблемы при статической типизации запросов и составных программ.
class Employee { class Department { String name; String name; float salary; Set<Employee> employees; Department department; Employee manager; } }
Рис. 1. Пример схемы базы данных, определяемой на основе классов