Uživatelské rozšíření databázových systémů – data cartridge, příklady použití.

rozšiřitelnost = možnost přidávání datových typů a programů (funkcí) zabalených do speciálního modulu

uživatelsky definované

problém: zapojení do relačního SŘDB včetně SQL

DB/2 = relační extendery

způsob uživatelského rozšíření databázového serveru Oracle

rozšíření je pouze na straně serveru

jsou integrované se serverem přes rozhraní

jsou v podobně balíků = instalují se jako celek

rozhraní, které umožňuje vytvářet cartridge jednotným způsobem

poskytuje přesně definovaný způsob, jak se serverem komunikovat

zpřístupňuje jednotlivé standardní služby, které lze v serveru rozšířit

sada standardních služeb, které poskytuje server

lze je využívat a rozšiřovat pomocí cartridge

jednotlivé služby jsou:

podpora pro uživatelské typy, kolekce, reference (REF), LOBy

vlastní způsob indexování = tzv. doménové indexování pro doménově specifická data        

podpora pro vytváření uživatelských funkcí a indexů pro vlastní sběr statistik pro CBO         

způsob uživatelského rozšíření databáze Oracle

integruje se pomocí sady rozhraní pro jednotlivé přístupy (k datům, indexům,…)

rozšíření může definovat

nové datové typy(standardní, pole, hnízděné tabulky, LOBy) a jejich funkce

nové typy indexů

proč implementovat DataCartridge

nutnost zpracování komplexních dat, která neodpovídají standardním relačním informacím

Příklady

multioborové = datové, statistické výpočty, prostorové databáze, multimédia

specializované, finanční a právní systémy

definice nových objektových typů

implementace těl typů, balíky, procedury, funkce

případné DLL knihovny s implementací v C

doménové indexy pro podporu operátorů

př. standardní cartridge: podpora indexování a vyhledávání v textech

Př. cartrige:

standardní typy pro ukládání objemných dat na serveru (až 4 GB)

BFILE = samostatný binární soubor uložený vně databáze

NCLOB = znakový typ v národní sadě

ve sloupci tabulky uložen pouze deskriptor odkazující na samotná data

Oracle nabízí balík DBMS_LOB s řadou funkcí a procedur pro standardní manipulaci s daty

provádí se po částech pomocí bufferů

není standardně indexováno, ale je možné implementovat svá vlastní rozhraní pro indexaci

Rozšíření serveru

server dovoluje psát implementace procedur v řadě jazyků

Javě

v čemkoliv s konvencí jazyka C a kompilací DLL

Příklady rozšíření

Matematické, finanční funkce

Práce s audio, video objekty v reálném čase

Textová rozšíření (různé statistiky textu)
