Databázové modely a jazyky/OODB

Z ωικι.matfyz.cz
Přejít na: navigace, hledání
příklad ADT:
CREATE TYPE T_Student AS (
 Jm	CHAR(30),
 Adresa	CHAR(40),
 Zac_ studia DATE
) UNINSTANTIABLE NOT FINAL
METHOD Poc_Prednasek()
 RETURNS INTEGER;
Zážitky ze zkoušek  
  • 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...
další zdroje