Objekty jsou pojaty jako výskyty určité třídy objektů.
Třídy mohou být popsány abstraktními datovými typy, které vymezují třídu ve smyslu operací, které mohou být realizovány na datech, jež reprezentují, spolu s vlastnostmi těchto operací. Třída je dále definována svým jménem, atributy (datovou strukturou), metodami a rozhraním prezentovaným objektům jiných tříd. Každý atribut je určen svým jménem a třídou. Některé jsou pak definovány příslušností k předdefinované třídě, mají konstantní hodnotu (tzv. literály), jiné (neliterály) slouží k odkazům na objekty jiných tříd, neboť má-li třída neliterální atributy, hodnoty jejích objektů budou systémem generovány jako identifikátory (směrníky).K principům objektově orientovaných systémů patří dědičnost, kdy dvě nebo více tříd jsou konstruovány jako subtypy určité třídy supertypu, tedy subtyp „dědí“ vlastnosti a operace existujícího supertypu a má některé specifické vlastnosti. Dalším je pak tzv. generická třída dovolující provedení algoritmu s použitím stejné základní datové struktury, ale na různých datových typech zabudovaných do struktury. Datové struktury v objektově orientované databázi jsou založeny na výše uvedených základních konstruktorech. Pokud jde o modelování vztahů, bezproblémová situace je u vztahu kardinality 1:1, neboť odkaz obsažený v objektu může směřovat jen na jeden objekt (resp. v případě využití více atributů na pevný počet objektů). Vztah kardinality 1:n lze vyjádřit pomocí agregované třídy set, kdy daný objekt může odkazovat na množinu objektů. V tomto případě ale upozorňuje například Occardi ([Occardi 1992]), že je potřeba pěti až šesti tříd k modelování jednoho vztahu. Datový model se pak stává komplexnějším, složitějším. U kardinality m:n nastávají ještě větší potíže, rozumně řešit tuto situaci lze pouze překrytím struktury cizích klíčů nad objektovou datovou strukturou jazyka.