Eventbutik
En händelsebutik är en typ av databas optimerad för lagring av händelser.
Konceptuellt , i en eventbutik, lagras endast händelserna i ett underlag eller policy . Tanken bakom det är att underlaget eller policyn kan härledas från dessa händelser. Händelserna (och deras motsvarande data ) är de enda "riktiga" fakta som bör lagras i databasen. Förekomsten av alla andra objekt kan härledas från dessa händelser . Koden instansierar dessa objekt i minnet . I en händelselagerdatabas betyder detta att alla objekt som bör instansieras inte lagras i databasen. Istället instansieras dessa objekt " on the fly " i minnet av koden baserat på händelserna. Efter användning av dessa objekt (t.ex. visas i ett användargränssnitt ) tas de instansierade objekten bort från minnet.
Till exempel kan evenemangsbutikskonceptet för en databas tillämpas på försäkringar eller pensionsunderlag. I dessa policyer eller dossierer kan instansieringen av varje objekt som utgör dossiern eller policyn (personen, partner ( erna ), anställningar, etc.) härledas och kan instansieras i minnet baserat på händelserna i den verkliga världen.
En avgörande del av en händelselagerdatabas är att varje händelse har en dubbel tidslinje : Detta gör att händelselager kan korrigera fel av händelser som har lagts in i händelselagerdatabasen tidigare.
- Giltigt datum är det datum då evenemanget har blivit giltigt.
- Transaktionsdatum är det datum då händelsen läggs in i databasen.
En annan avgörande del av en händelsebutiksdatabas är att händelser som lagras inte får ändras. När de väl har lagrats ändras inte heller felaktiga händelser längre. Det enda sättet att ändra (eller bättre: korrigera) dessa händelser är att instansiera en ny händelse med de nya värdena och använda den dubbla tidslinjen. En korrigerande händelse skulle ha de nya värdena för den ursprungliga händelsen, med en händelsedata för den korrigerade händelsen, men ett annat transaktionsdatum. Denna mekanism säkerställer reproducerbarhet vid varje ögonblick i tiden, även under tidsperioden innan korrigeringen har ägt rum. Det gör det också möjligt att återskapa situationer baserat på felaktiga händelser (om så krävs).
En fördel med eventbutikskonceptet är att det är mycket lättare att hantera effekterna av tidigare daterade händelser (händelser som träder i kraft före tidigare händelser och som till och med kan ogiltigförklara dem). I vanliga databaser kan hantering av bakåtdaterade händelser för att korrigera tidigare, felaktiga händelser vara smärtsamt eftersom det ofta resulterar i att alla tidigare, felaktiga transaktioner och objekt rullas tillbaka och de nya, korrekta transaktionerna och objekten rullas upp. I en eventbutik lagras endast den nya händelsen (och dess motsvarande fakta). Koden kommer sedan att ombestämma transaktionerna och objekten baserat på de nya fakta i minnet.
En eventbutik kommer att förenkla koden genom att det inte längre behövs att rulla tillbaka felaktiga situationer och rulla upp de nya, korrekta situationerna.
Nackdelen kan vara att koden måste återinstantiera alla objekt i minnet baserat på händelserna varje gång ett serviceanrop tas emot för ett specifikt policydokument.
externa länkar
- DB-Engines Rankning av evenemangsbutiker efter popularitet, uppdaterad månadsvis