En key value database er en type af en non relationel database som bruger en simple key og value til at gemme data. En key value datase gemmer data som en collection af key-value pairs hvor en key fungere som en unik identifier. Key og values kan være mange ting, som f.eks simple objekter til komplekse objekter. En key value database er højt skalerebart.
eksempler på key value database i virkeligheden kan f.eks være en telefonbog hvor navn er en key og værdien er et telefonnummer.
Nøglen / Key
Nøglen i en key value pair SKAL være unik. Det er denne unikke identifier som giver dig adagang til værdien associeret med nøglen.
I teorien kan nøglen være hvad som helst. Men den kan være afhængig af DBMS (Database Management System) som kan have nogle restriktationer på hvad der kan være en nøgle.
For performance grunde skal nøglen ikke være så stor (i mb) da dette kan give nogle performance issues.
The value / Værdien
Værdien i en key-value store kan være alt fra text, til et tal, til markup kode som html, eller php eller et billede osv.
Værdien kan også være en liste af informationer, eller endnu en key value indkapslet i et objekt.
Nogle DBMS tillader dig at specificere en data type for værdien. Et eksempel kan være at man specificere at værdien skal være en integer.
Nogle af de ting en Key-value database kan blive brugt til er f.eks.:
- General Web/Computers
- User profiles (f.eks som facebook en brugerprofil)
- Article/blog comments
- Emails
- Ecommerce
- Shopping cart contents
- Product categories
- Product details
- Product reviews
- Networking Data maintenance
- Telecom directories
- Internet Protocol (IP) forwarding tables
- Data deduplication
Key value databases kan også gemme hele hjemmesider, ved at bruge URL som en key og selve siden som en value
Nogle fordele:
- Ret hurtigt
- Meget skalerbart
- simple model – let forståeligt
Nogle ulemper:
- Mange datastrukturer (objekter) er svært at modelere som key value pairs
- Svært at gennemgå hele databasen altså fast read and write but not optimized for look up