Eine Klasse repräsentiert einen Entity-Typ zusammen mit einer Struktur- und Verhaltensbeschreibung, welche ggf. an Unterklassen vererbt werden können. Binäre Beziehungen können durch mengenwertige Attribute modelliert werden:
class Studenten { attribute long Matrnr; attribute String Name; relationship set <Vorlesungen> hoert inverse Vorlesungen::Hoerer } class Professoren { attribute long PersNr; attribute String Name; relationship set <Vorlesungen> liest inverse Vorlesungen::gelesenVon } class Vorlesungen { attribute long VorlNr; attribute String Titel; relationship Professoren gelesenVon inverse Professoren::liest relationship set <Studenten> Hoerer inverse Studenten::hoert }Beispiel-Query: Welche Studenten besuchen Vorlesungen von Sokrates ?
select s.Name from s in AlleStudenten, v in s.hoert where v.gelesenVon.Name = "Sokrates"