En associativ databas är naturligare än SQL

Länge har de traditionella relationsdatabaserna med SQL-gränssnitt dominerat, trots försök med »objektdatabaser». Lazy är ett engelskt företag som försöker bryta dominansen med ny teknik baserad på objektorienterade associationer. Flaggskeppet är databasservern Sentences, men företaget säljer också konsulttjänster och tillbehör.

En associativ datamodell består - enligt Lazy - av objekt och associationer. Objekten - »entities» på engelska - har en egen existens oberoende av varandra medan associationerna beskriver hur objekten relaterar till varandra. STill exempel är personer och företag objekt som existerar oberoende av varandra, men »anställd» är en association mellan en person och ett företag. Begreppet »anställd» kan uppenbarligen inte existera utan företaget och personen.

Så långt är det inte stor skillnad jämfört med en vanlig relationsdatabas. Fördelen med en associativ databas är att den är naturligare att arbeta med.

Ta exemplet med anställda på ett utvecklingsföretag. Ett register över vilka färdigheter som exempelvis programspråk de anställda har underlättar vid löneförhandlingar och projektplanering. I en relationsdatabas behövs minst tre tabeller: en med anställda, en med färdigheter och en med vilka anställda som har vilka färdigheter.

I Sentences behövs bara två typer av objekt, personer och färdigheter samt en association »har kunskap i». Den objektorienterade konstruktionen gör att det är lätt att definiera nya undertyper som ärver grundtypens egenskaper. Så kan till exempel färdigheter ha undertyper som språk (engelska, svenska) och programmeringsspråk (C++, Java). Associationen »har kunskap i» som definierats för färdigheter finns då automatiskt tillgängliga för alla undertyper.

En annan fördel är att associationer automatisk är dubbelriktade. För att få reda på vem som kan C++ dubbelklickar man på C++ i klientprogrammet. Inget jobb med att definiera nya index eller skriva SELECT-satser krävs alltså.

Associationer behöver inte heller vara mellan objekt utan de kan länka ihop andra associationer. Med exemplet ovan kan associationen »har kunskap i » ytterligare associera »nivå av kunskap» till en graderad skala eller en kurskatalog.

Själva Sentences-servern består av Java servlets som körs på en server med Java-miljö version 1.3 eller bättre. Apache Tomcat, Microsoft IIS eller IBM Websphere ska enligt uppgift fungera. Klienten för databasmanipulation är en Java-applet och körs i antingen en webbläsare med Java 2-insticksprogram eller fristående i appletviewer.

Till Sentences får man också en databrygga för ODBC och XML för att integrera Sentences med andra produkter. För webbutveckling går det naturligtvis också att direkt anropa Sentences från Java-program, antingen Java Server Pages eller Servlets.

Notera att klienten som följer med inte är lämplig som gränssnitt för slutanvändare eftersom den saknar möjligheten att använda fördefinierade formulär som döljer den underliggande databasstrukturen. Utvecklare måste göra gränssnitten själva, i Java eller HTML. Webbformulär gjorda med Java Server Pages följer med som illustration.

Kontrollera kapacitetsgränserna

Licensmodellen är något märklig och baseras på antal frågor som servern klarar från 100 till 6 000 per minut. Det största systemet som sålts idag klarar 2 000 frågor per minut, vilket enligt Lazy ska vara nog för 40-50 intensiva användare eller 10 000 »webbsurfande» användare.

Det är också på sin plats att utfärda varningar gällande datamängder och prestanda. Jag har inte gjort ett fullständigt test och framförallt är inte databasen testad med olika datamängder eller nätverksklienter. Med risk för att vara övertydliga vill jag ändå påpeka att Sentences måste testas med verkliga datamängder och klientanrop innan ett projekt påbörjas. Dokumentationen antyder att problem uppstår vid datamängder över en halv miljon poster (objekt plus associationer).

En oslipad teknik

Dessutom är Sentences är ett nytt program skrivet i Java, vilket i sig lätt blir långsamt. Jämfört med tillverkarna av relationsdatabaser som har haft decennier på sig att trimma programmen har Lazy ny oprövad och långsam teknik. Bygg alltså inte storbankens system ovanpå Sentences!

Några andra funktioner som saknas jämfört med stora relationsdatabaser är säkerhetskopiering under drift och möjlighet till distribuerade databaser. Allt är utlovat till version 2, som ska komma »i slutet av året».

Blobbar (Binary Large Objects) som exempelvis bilder går heller inte att lagra i Sentences utan de ligger externt och refereras till med http-länkar.

Behörighetskontroll saknas helt. Det är upp till webbservern eller systemkonstruktören att implementera nödvändig användaridentifiering på något sätt.

Till sist är transaktionshanteringen ganska primitiv: Alla ändringar behandlas sekventiellt i den ordning de kommer in. En ändringsbegäran innehåller alltid både originaldata och de ändrade data; Sentences jämför originaldata mot databasen för att se om någon annan hunnit ändra data. Isåfall kastas ändringsbegäran och användaren eller tillämpningen får ett felmeddelande tillbaka.



Text : Ola Sigurdson

  (20010510)