DbLink Ing. Jan Ptáček tel.:
Problém ► zprostředkování dat z RDB Oracle přes protokol Z39.50 ► nezávislost na datovém schématu v RDB ► zadán jako brána na plný Z39.50 server (Cosmotron)
Princip realizace ► obecný popis hierarchických struktur v RDB ► překladač mezi SQL a zadaným dialektem Z39.50
Vazby atributů ► vzájemná násobná vazba (M:N), tzn.: každý z-atribut může být vázán na více atributů v RDB každý atribut RDB může být pokrýván více z- atributy
Speciality ► metoda přepisu dotazu pro praktické zvládnutí kompatibility klientů s BATH profilem ► parametrická transformace kombinací atributů Z39.50 dotazu do frází SQL ► paramaterická definice chybových stavů pro klienty
Popis vazby lhs[table_expr]rhs=… table_exprSQL výraz tabulkové hodnoty lhs, rhsvýrazy pro hodnotu vazby Konstrukce může mít libovolnou délku, vyhodnocuje se sekvenčně zleva.
Konfigurace databází tbsources /root_table="sources„ /key="idsource„ /select="*„ { 1016, 2, 1005 = provider /map="[]idsource=idsource[licences_sources]idlicence=idlicence[licences]provider=idinstutitio n[institutions]name„ /marc="210.c„ 1016, 5 = nameDB /map="[]idsource=idsource[licences_sources]idlicence=idlicence[licences]namedb" /marc="225.a„ 1016, 4 = name /marc="200.a„ 1016, 8 = issn /marc="011.a„ 1016, 1018 = publisher /map="[]publisher=idinstutition[institutions]name„ /marc="210.c„. }.
Přepis dotazu # author Gcommon Gcommon Gcommon Gcommon Gcommon # title Gcommon Gcommon Gcommon Gcommon Gcommon
Přepis dotazu 2 # # examples, how to rewrite and further process non-matching query # ?000001=4;2=3;3=3;4=2;5=100;6=1;Gcommon ?000001=4;2=3;3=3;4=0;5=100;6=1 ******Eill_query_modifiers
Přepis dotazu 3 common: *00000R$F = '$V' *1*000R$F < '$V' *2*000R$F <= '$V' *3*000R$F = '$V' *4*000R$F >= '$V' *5*000R$F > '$V' *6*000R$F <> '$V' **0010R$F LIKE '$V%' **0020R$F LIKE '%$V' **0030R$F LIKE '%$V%' *100*000RCONTAINS($F,'$V')>0 *101**00RCONTAINS($F,'$V')>0 *102**00RCONTAINS($F,'$V')>0 *103**00RCONTAINS($F,'$V')>0 4*0000R$F = '$V'
Přepis diagnostiky pro klienta 0*OK 1*Požadavek mimo rozsah sezení 2*Chybný požadavek 3*Nepodporovaný požadavek 4*Výsledková množina neexistuje 5*Syntaktická chyba v dotazu 6*Konfliktní modifikátor relace a relační operátor 7*Nepodporovaná kombinace modifikátorů dotazu 8*Nepodporovaný atribut USE 9*Databáze neexistuje 10*Chyba autorizace 11*Chybný dotaz pro scan...
Závěry realizace DbLink ► lze požít pro libovolnou JDBC/ODBC přístupný datový zdroj ► nevyžaduje apriorní datové schéma dat ► běží na prakticky libovolné platformě (Java) ► lze rozšířit na plný Z3950server ve formě gateway (s externím datovým úložištěm) ► prozatím omezen na Zserver Cosmotron