Un type de données abstrait (ADT, abstract data type) est un type de données défini par l'utilisateur qui peut incorporer une plage de valeurs et des fonctions qui peuvent être exécutées sur les données. Tous les types de SGBD ne prennent pas en charge les types de données abstraits.
Par exemple, vous pouvez créer un type de données abstrait pour le calendrier grégorien qui permette de lire et écrire des chiffres romains et de convertir les dates entre les calendrier julien et grégorien.
Si votre modèle contient des types de données abstraits de type JAVA, vous pouvez les lier à des classes Java dans un MOO pour modéliser et consulter les propriétés de classe Java (voir Liaison d'un type de données abstrait à une classe Java).