{{zarovka| CREATE TYPE T_Student AS (
Jm CHAR(30), Adresa CHAR(40),
Zac_ studia DATE ) UNINSTANTIABLE NOT FINAL
METHOD Poc_Prednasek() RETURNS INTEGER;
|příklad ADT}} {{Zkazky|
Objektové rozšíření relačního modelu dat (2014, Pokorný) - K této otázce jsem toho upřímně zase tak moc nevěděl. Jen jsem napsal, že lze definovat vlastní typy, třídy, metody, že existují pole a reference (REF) a že je to implementováno v SQL. Pak jsem s panem Pokorným vedl diskusi, kde se vyptával na různé věci, např. chtěl vědět, jestli může existovat třída sama o sobě (ne - musí být vždy uložená v tabulce), chtěl slyšel o ID v třídách, jak jsou uložené v tabulkách, kde se definují metody (ve třídách), apod. Nějak jsem to s jeho pomocí vyplodil a celkově byl myslím spokojený.
bylo potřeba nějak zlepšit práci s BLOB/CLOB ⇒ rozšiřitelnost o nové datové typy
Oracle - cartridges
SQL Server - cartridge/ASSEMBLY
Ukotveno standardem SQL:1999: *Uživatelské Datové Typy (UDT)
Abstraktní Datové Typy (ADT) - "třídy"
možnost vytvářet vlastní strukturované datové typy zapouzdřující data a operace (např. porovnávací operace)
píšou se v SQL, C, C# ...
mohou mít dědění a polymorfismus
[UN]INSTANTIABLE - povolení/zakazani vytvareni instanci
[NOT]FINAL - povolení/zakazani dědění
????může existovat třída sama o sobě? ne pouze v tabulce
Uživatelské Datové Funkce/Procedury (UDF/UDP)
metody svázány s typem, fce ne
***Pojmenované řádkové typy
řádka je identifikována pomocí omělého klíče (OID – Object IDentificator)
Kolekce: ARRAY
LIST, BAG, SET, MULTISET (až v 2003)
**Reference - REF - umožňuje chápat data jako objekty
operátory DEREF a ->
operátor IS DANGLING (odkazovaný objekt už neexistuje)
další řešení: ORM - nevýhoda: 15-20% pomalejší
př: (N)Hibernate, Entity Framework...
{{Zdroje|1=
http://www.ksi.mff.cuni.cz/~pokorny/dj-new/DJ1-2-ORSRBD.pdf
}}