System som bygger på en underliggande databas behöver ett abstraktionslager mellan databasen och applikationen. Detta kallas för systemets datalager. Det är inte ovanligt att en stor del av programmerarnas tid går åt för att skriva programkod som hanterar datalagrets egenheter och för att transformera data mellan applikationen och datalagret. I ett objektorienterat datalager kan systemets domänmodell integreras i datalagret så att det blir betydligt enklare och mer effektivt att arbeta med. Ett objektorienterat datalager låter dessutom applikationen navigera mellan objekten i databasen som om hela objektgrafen vore tillgänglig i applikationens primärminne. Hur information hämtas, när den hämtas och precis vilken information som hämtas från databasen är transparent för applikationen. Det är också transparent när uppdateringar som görs på objekt i applikationens primärminne når den underliggande databasen. Datalagret ger garantin att alla objekt, som förändrats inom loppet av en transaktion och som är nåbara via navigering från något objekt i databasen, kommer att finnas i databasen med korrekt tillstånd då transaktionen avslutas. Ett objektorienterat datalager erbjuder således en striktare form av abstraktion än vad ett traditionellt datalager gör. Inom ramen för examensarbetet har jag utvecklat en prototyp av ett objektorienterat datalager, och i den här rapporten presenterar jag: några allmänna koncept som rör datalager i allmänhet och objektorienterade datalager i synnerhet; hur dessa koncept kan designas; samt en kort översikt av prototypen.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:liu-7942 |
Date | January 2006 |
Creators | Wikström, Mårten |
Publisher | Linköpings universitet, Institutionen för datavetenskap, Institutionen för datavetenskap |
Source Sets | DiVA Archive at Upsalla University |
Language | Swedish |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0026 seconds