Uživatelské rozšíření databázových systémů – data cartridge, příklady použití.
Thursday, May 30, 2013
8:21 AM
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é
typy = UDT
funkce = UDF
problém: zapojení do relačního SŘDB včetně SQL
DB/2 = relační extendery
Informix = DataBlades
Sybase = Component Integration Layer
Oracle = cartridges
Oracle Extensibility Framework
Data cartridge
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
[link]
Extensibility interface
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
Database and extensibility services
sada standardních služeb, které poskytuje server
lze je využívat a rozšiřovat pomocí cartridge
jednotlivé služby jsou:
Extensible type system
podpora pro uživatelské typy, kolekce, reference (REF), LOBy
ExtensibleServer execution environment
podpora vlastních procedur a funkcí
Extensible Indexing    
vlastní způsob indexování = tzv. doménové indexování pro doménově specifická data        
Extensible Optimiser  
podpora pro vytváření uživatelských funkcí a indexů pro vlastní sběr statistik pro CBO         
Pracuje na principu tzv. cartridge
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
nutnost snadné manipulace s takovými daty
Příklady
multioborové = datové, statistické výpočty, prostorové databáze, multimédia
specializované, finanční a právní systémy
typická struktura cartridge
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:
LOB - Large Objects
standardní typy pro ukládání objemných dat na serveru (až 4 GB)
typy
BFILE = samostatný binární soubor uložený vně databáze
CLOB = znakový typ
NCLOB = znakový typ v národní sadě
Oracle - Define CLOB and NCLOB datatypes - June 27, 2009 at 11:00 AM
Define CLOB and NCLOB datatypes.  
Both CLOB and NCLOB are used to store huge character data in the database. 
CLOBs store single-byte character set data.
NCLOBs store fixes-length multi-byte character set data.
Both these datatypes participate fully in transactions. 
From <[link]> 
ve sloupci tabulky uložen pouze deskriptor odkazující na samotná data
hodnoty pro xLOB slupce = NULL, EMPTY_CLOB(), EMPTY_BLOB(), EMPTY_NCLOB()
manipulace
Oracle nabízí balík DBMS_LOB s řadou funkcí a procedur pro standardní manipulaci s daty
provádí se po částech pomocí bufferů
indexace
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ů
nativním PL/SQL
Javě
v čemkoliv s konvencí jazyka C a kompilací DLL
[link]
Příklady rozšíření
Matematické, finanční funkce
Práce s audio, video objekty v reálném čase
GIS a prostorové objekty
Textová rozšíření (různé statistiky textu)
Cartridge Oracle Text (z nadpisu jeji prednasky, takze to bylo asi dulezite)
Oracle Text and Ultra Search
Oracle Text brings search engine-like full text search capabilities to the Oracle Database. Ultra Search provides a ready-to-use application, while Oracle Text provides a foundation for building your own search applications. Search regular columns, text inside various kinds of binary-format documents, and text, tags, and attributes inside XML documents.
From <[link]> 
From <[link]> 