Magyar Idegtudósok Adatbázisa a hálózaton

Ujvári Gábor, ujvari@cogpsyphy.hu

MTA Pszichológiai Intézet

Abstract

The Hungarian Neuroscientist Database is a bi-lingual (English and Hungarian) interactive database. The back-end is an Oracle 7.0 Database Server, the front-end is any Web browser. The connection between them is the WOW (Web-Oracle-Web) gateway. There are no static HTML pages in this service: all of the pages are generated by PL/SQL stored procedures. The database is public by two means: anyBODY BACKGROUND="../../img/hatter4.jpg" can search and download data and one can register himself/herself without any restrictions. Beyond the aims and technical details of this application, I mention some other ways to publish databases via the HTML protocol.

Az áttekinthetôség kedvéért az elôadás során úgy fogok tenni, mintha a Magyar Idegtudósok Adatbázisa komoly elôkészítés után, jól megfogalmazott elvek szerint épült volna föl. Elöljáróban azonban le kell szögeznem, hogy ez egyáltalán nem így van. Az ötletet egy folyóirat cikk adta, mely a World Wide Web továbbfejlesztésének lehetôségeit taglalta, megemlítve, hogy az egyik ígéretes irány a hagyományos adatbázisok HTML felületének elkészítése. A technika iránti érdeklôdéstôl hajtva találtam meg az Oracle cég ingyenes "átjáró" szoftverét, mely a cég sok helyütt használt relációs adatbázis kiszolgálójának ad Internetes felületet. Ezek után leemeltem a polcról a régóta ott porosodó Oracle 7.0 Server csomagot, és egy kihasználatlan öreg Sun munkaállomáson kísérletezgetni kezdtem. Néhány nap alatt kiderült, hogy ez a felállás akár értelmes dolgokra is használható. Az ismeretlen adatbáziskezelôvel és a képlékeny HTML specifikációval hadakozva alakult ki a Magyar Idegtudósok Adatbázisának mai, egyáltalán nem végleges formája.

A feladat megfogalmazása

Mivel az idegtudomány költséges játék, magyar művelôi a világban szétszórva dolgoznak, ráadásul állandó mozgásban vannak, szinte lehetetlen nyomon követni, hogy ki, hol és milyen témán dolgozik éppen. Hacsak nincs egy adatbázis, amely

- a világ bármely pontjáról, sokféle gépen át, speciális program nélkül elérhetô

- legalább angolul és magyarul lekérdezhetô

- "önkarbantartó", nem szükséges hozzá működtetô személyzet

Az elsô feltételnek jelenleg a World Wide Web felel meg leginkább. Az egyszerű karbantartás pedig legkönnyebben úgy biztosítható, ha azt dolgoztatjuk, akié az adat; vagyis a regisztráció, adatmódosítás, törlés ugyanúgy bármely Web böngészôvel elvégezhetô, mint a lekérdezés. Az ilyen felhasználásra alkalmas termékek közül az Oracle cég Web Oracle Web (WOW) átalakítója került elôször a kezembe, így ez lett a kísérletezés eszköze.

A WOW működése

Statikus HTML

A Web eredetileg elôre megírt, lemezen tárolt HTML formátumú lapok sokasága volt, melyek közül a HTTP démon kérésre elôhúzza és továbbítja a megfelelôt.

HTTP kérés HTML file
httpd
HTTP válasz

Dinamikus HTML

A következô lépés, hogy a HTTP démon nem csak közvetlenül a fájlokhoz fér hozzá, hanem programokat is elindíthat, a visszaküldött lapot pedig a program állítja elô. A program bármit megtehet, ami az adott operációs rendszeren lehetséges, tetszôleges nyelven íródhat. A Web szerver és a lapot elôállító program a CGI (Common Gateway Interface) szabályai szerint kommunikálnak.

HTTP kérés CGI
httpd CGI script
HTTP válasz

WOW

A WOW még eggyel tovább lép. Itt maga a Web server által elindított program csak arra szolgál, hogy meghívja a relációs adatbázist kezelô eljárásokat, melyeket az Oracle az adatbázis részeként tárol. A tárolt eljárások az SQL lekérdezô nyelv procedurális elemekkel kiegészített kiterjesztésében, a PL/SQL ben készülnek. A HTML lapok generálásához a WOW egy külön PL/SQL nyelvű rutingyűjtemény tartalmaz.

HTTP kérés CGI PL/SQL
httpd WOW tárolt eljárások adatok
HTTP válasz
HT package RDBMS

Rövid kitérô: Milyenek legyenek az elôállított lapok?

Figyelembe véve a hazai infrastruktúrát, a lapokat igyekeztem úgy tervezni, hogy

A megvalósítás technikai részletei

Az adatbázis Internetes felülete nem tartalmaz statikus lapokat: minden lapot, ami a felhasználó képernyôjén megjelenik, PL/SQL tárolt eljárások készítenek. A lapok tetejét, alját és hátterét egy egy szubrutin állítja elô. Ez a megoldás biztosítja az egységes, mégis könnyen változtatható arculatot.

Az adatbázis az ékezetes betűket a Latin-2 kódtábla szerint tárolja. A HTML változat elôállítását végzô rutinok ezt átalakítják a felhasználó által választott formára: szabványos HTML, repülô ékezet stb.

Az elôállított lapokat három fô kategóriába lehet sorolni:

1.) Kérdôívek

Ide sorolom az adatbevitelre szolgáló lapokat, a keresések kérdéseit, sôt az adatbázis nyitólapját is, ahonnan közvetlenül lehet keresni. A hosszabb kérdôíveket több képernyôre bontottam (személyes adatok, munkahely, szakmai információk stb.), így nem csak áttekinthetôbbek, hanem a letöltési idôk is lényegesen rövidebbek. A kérdôívek kitöltésekor a felhasználó válszthat, hogyan kívánja jelölni az ékezeteket. A billentyűzet átdefiniálása nem minden operációs rendszer illetve program alatt triviális, ezért lehetôség van a repülô ékezetes vagy az 123 jelölésre is. Ezeket a kérdôívet feldolgozó eljárás átalakítja a megfelelô Latin-2 kódokra.

2.) Listák

A keresések eredményeként megtalált kutatókról tartalmazzák mindazt, amit két-három sorban el lehet helyezni. Az eredmény mellett ott található a keresés kérdôíve, hogy szükség esetén könnyen módosítani lehessen a kérdést. Számítva az adatbázis bôvülésére, a listát tartalmazó lapok hossza korlátos: ha a találatok száma ezt a korlátot meghaladja, akkor a lista több lapon jelenik meg.

3.) Személyi lapok

Ezeken jelenik meg az adott kutatóról közölhetô összes információ. A könnyebb olvashatóság kedvéért, no meg a sávszélességet kímélendô, a lapon az üresen hagyott adatbázis mezôk nem jelennek meg.

Bár az idegtudományokkal jobbára felnôtt emberek foglalkoznak, indokoltnak tartottuk az adatok jelszavas védelmét. Az adatbázisba való bekerülés elsô lépése a jelszó választás. A továbbiakban az adott személy adatait csak a jelszó ismeretében lehet módosítani.

Újabb eszközök

Az utóbbi egy évben számos nagy adatbáziskezelônek megjelent az internetesített változata: Oracle Web Server 3.0, CA OpenIngres, Centura ForeSite stb. Van azonban több újonnan indult project is. Ezek közül a legígéretesebb a Postgres, mely szabad szoftver létére az egyik leggyorsabban fejlôdô termék. A robusztus relációs adatbázis elérhetô hálózaton keresztül, gazdag C és Perl nyelvű könyvtár támogatja az alkalmazásfejlesztést, sôt Kanchenjunga néven Java fejlesztôeszköz is készült hozzá.

Referenciák:

Magyar Idegtudósok Adatbázisa: http://www.cogpsyphy.hu/nsci

WWW Consortium (HTML, HTTP, CGI és egyéb specifikációk): http://www.w3.org

Oracle Corporation: http://www.oracle.com

CA Ingres: http://www.cai.com/products/ingr.htm

Centura (a Gupta utóda): http://www.centurasoft.com

Postgres 95: http://www.postgresql.org

Kanchenjunga: http://www.man.ac.uk/ ~whaley/kj/kanch.html