**Mälupõhine andmebaas** (inglise keeles *in-memory database*, lühend IMDB) on andmebaasi haldamise süsteem, mis talletab andmeid muutmälus. See on vastand andmeid välismälus säilitavatele andmebaasihaldussüsteemidele. Mälupõhised andmebaasid on ketassalvestil põhinevatest kiiremad, kuna ketta poole pöördumine on muutmällu pöördumisest aeglasem, sisemised optimeerimisalgoritmid on lihtsamad ning käideldakse vähem protsessorikäske.

Sageli kasutatakse mälupõhiseid andmebaase kriitilise reaktsiooniajaga rakendustes. Ideaalsed kandidaadid on reaalajas ärianalüüsiga, pettuste tuvastamisega või andmete voogedastamisega tegelevad rakendused. Mälupõhised andmebaasid on muutunud üha populaarsemaks, eriti andmeanalüüsi valdkonnas. IMDB kasutuselevõtt on muutunud üha teostatavamaks, kuna mitmetuumalised protsessorid suudavad adresseerida suurt hulka mälu ning muutmälu hind on ajapikku odavnenud.

Mälupõhiste andmebaaside peamine tehniline puudus on, et üldjuhul säilitatakse andmeid hävimälus ja toitekatkestuse korral andmed hävivad. Säilmälu kasutamisel suudavad mälupõhised andmebaasid käidelda täiskiirusel ja säilitada andmeid ka toitekatkestuse korral.

Mittepüsivus
------------

Mälupõhistes andmebaasides talletatakse andmeid muutmälus. Kuna enamik muutmäludest pole säilmälud, siis toite kadumisel mälus olevad andmed hävivad. Mälupõhistes andmebaasides on võimalik saavutada andmete säilimine järgnevatel viisidel:

1. hetktõmmis, millega jäädvustatakse hetkeseis andmebaasist. Üldjuhul luuakse hetktõmmiseid perioodiliselt ning enne süsteemi plaanipärast väljalülitamist. Selleks salvestatakse andmebaasi hetke mäluseis mäluseadmele ning hiljem on võimalik andmebaas taastada eelnevasse seisu. Selline lähenemine annab siiski ainult osalise püsivuse, kuna kõige uuemaid andmeid ei säilitata hetktõmmises;
2. transaktsioonide logimine, mille vahendusel logitakse andmebaasi tehtavad muudatused ketta peal olevasse faili. Juhul kui andmebaasisüsteemile tehakse taaskäivitus, siis failist on võimalik käivitada kõik päringud uuesti ning seeläbi taastada andmebaasi seis;
3. kõrge kättesaadavusega hajusandmebaaside süsteemid, mis tuginevad andmebaasi tiražeerimisel. Kui üks süsteem lülitub välja, siis asendatakse see teiste süsteemidega, milles on samad andmed;
4. säilmälu (NVRAMi) kasutamine. Tavaliselt on tegu muutmäluga, mis on toetatud akuga. Juhul kui süsteemile tehakse taaskäivitus, siis andmed jäävad alles.

Hübriidid
---------

Kuigi andmete talletamine mälus tõstab jõudlust, on tegemist kalli tehnoloogiaga. Üks viis, kuidas võimalikult odavalt mälupõhisest andmebaasist kasu saada, on talletada enimpäritud andmed muutmälus ning kõik ülejaanud kettal. Sellisel juhul on tegemist hübriidiga, kus enamik andmetest säilitatakse kettal ning ainult väike osa andmetest muutmälus. Osad süsteeemid uuendavad andmeid mälus dünaamiliselt sõltuvalt andmete kasutatavusest. Võimalik on ka kasutada puhverdamist, kus talletatakse ainult kõige viimati päritud andmed muutmälus.

Viited
------

1. 1 2  Craig S. Mullins. "How to determine if an in-memory DBMS is right for your company". Vaadatud 5.11.2018.
2. ↑  "In-memory database". Vaadatud 5.11.2018.
3. ↑  Toni McConnel. "AGIGARAM NVDIMM saves data through system failure". Vaadatud 5.11.2018.
4. 1 2  Denis Anikin. "What an in-memory database is and how it persists data efficiently". Vaadatud 29.11.2018.
5. ↑  "In-Memory Database Questions and Answers 2018". Vaadatud 29.11.2018.
6. ↑  "In-Memory Database Systems - Questions and Answers". Vaadatud 29.11.2018.
7. ↑  Andrew Brust. "Teradata enters the in-memory fray, intelligently". Vaadatud 5.11.2018.