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.
Žádné komentáře:
Okomentovat