{{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ý.

}} svět db technologií

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=

}}