Aby se v databázích dalo snadno vyhledávat a rozšiřovat je, používají se různé databázové architektury, které nám toto umožní.
Relační databáze
Nejrozšířenějším typem jsou relační databáze. Data se zde ukládají v tabulkách. Jednotlivé záznamy jsou uloženy v řádcích tabulky a každý záznam odpovídá jedné entitě (například konkrétní osobě, věci apod.). Sloupce tabulky odpovídají atributům, tedy jednotlivým vlastnostem záznamů (například věk osob, cena zboží apod.). V hlavičce tabulky najdeme názvy jednotlivých atributů a někdy i jejich datové typy, tedy omezení na hodnoty, které je možné do daného pole ukládat. Příkladem datového typu je int, který značí celé číslo, nebo char[20], který značí textový řetězec z maximálně 20 znaků.
Klíče
Vyhledávání v tabulce nám zjednodušují kandidátní klíče — skupiny atributů, které jednoznačně identifikují a odliší každý záznam v tabulce. Z kandidátních klíčů se pro každou tabulku vybírá jeden primární klíč. Jedna relační databáze se obvykle skládá z většího množství tabulek, které mezi sebou můžeme propojovat pomocí primárních klíčů a vyhledávat tak odpovědi na složitější dotazy o našich datech. Primární klíč jedné tabulky použítý v jiné tabulce se v jejím kontextu nazývá cizí klíč.
Příklad klíčů v databázi e‑shopu
V tabulce person jsou kandidátní klíče všechny, které obsahují person_ID nebo email, tedy {person_ID}, {email}, {person_ID, email}, {person_ID, name}, {person_ID, surname}, {person_ID, name, surname}, {email, name}, {email, surname}, {email, name, surname}, {person_ID, email, name}, {person_ID, email, surname}, {person_ID, email, name, surname}.
V tabulce buying je jediný kandidátní klíč kombinace všech atributů, tedy {product_code, person_ID, date}. Tabulka vychází z předpokladu, že si každý zákazník může koupit daný produkt jen jednou za den. Kdybychom předpokládali, že může každý zákazník koupit produkt jen jednou za život, byl by kandidátní klíč i {product_code, person_ID}.
Jako primární klíč můžeme zvolit libovolný z kandidátních klíčů, tedy například {person_ID} pro tabulku person a {product_code, person_ID, date} pro tabulku buying. Kdybychom chtěli, mohli bychom místo toho za primární klíč zvolit pro tabulku person například {email}.
Primární klíč person_ID z tabulky person je použit i v tabulce buying, je proto v tabulce buying cizím klíčem vedoucím do tabulky person.
Další typy databází
Existují i další hojně používané typy databází. V posledních letech se rozšiřují možnosti ukládat nestrukturovaná data, například NoSQL databáze.


