Tietokanta
Tietokantojen historiaa

Vuonna 1959 perustettu CODASYL-komitea määritteli tietokannan hallintajärjestelmiä, joiden ensimmäinen määrittely julkaistiin vuonna 1969.
Modernien tietokantojen edeltäjiä kehitettiin 1960-luvulla. Hierarkkinen malli toteutettiin ensimmäisenä, sen jälkeen verkkomalli ja sen jälkeen relaatiomalli.
Alan uranuurtaja oli Charles Bachman. Bachmanin artikkeli "The Programmer as Navigator" julkaistiin vuonna 1973 Communications of the ACM -lehdessä. Artikkeli johti navigaatiomallin kehittämiseen. Navigaatiomalli liitetään usein hierarkkisiin ja verkkomallin tietokantoihin.lähde?
Tietokantojen relaatiomallin ja käsittelyteorian kehitti Edgar F. Codd, jonka artikkeli "A Relational Model of Data for Large Shared Data Banks" julkaistiin vuonna 1970 Communications of the ACM -lehdessä. Codd työskenteli IBM:n tutkimuslaboratoriossa, ja hän johti ensimmäisten relaatiotietokantojen testiversioiden kehitystyötä. Vuosina 1973–1976 IBM-laboratoriossa kehitettiin relaatiotietokannan prototyyppiä nimeltä System R. IBM:n kaupallinen tietokantatuote DB2 julkaistiin 1983.
Bachmanin ja Coddin näkemyserot aikanaan olivat merkittäviä tietokantojen kehitykselle vaikka varsinaista päätöstä debatille ei syntynyt.
Olio-ohjelmoinnin yleistyttyä myös tietokantoja on kehitetty vastaamaan oliomallin asettamiin tarpeisiin. On kehitetty puhtaita oliotietokantoja, minkä lisäksi perinteisiin relaatiokantoihin on lisätty olio-ohjelmointia tukevia ominaisuuksia. Jälkimmäisistä käytetään nimeä olio-relaatiotietokannat.
NoSQL-tietokannaksi kutsuttiin aluksi Carlo Strozzin vuonna 1998 esittämää järjestelmää, jossa ei käytetty SQL-kyselykieltä. Termi yleistyi vuonna 2009 Johan Oskarssonin järjestämässä tapaamisessa, jossa keskustelun aiheena olivat ei-relaatiomallin mukaiset ohjelmistot, kuten Cassandra ja Voldemort. Relaatiomallin mukaiset tietokannat ovat suunniteltuja varmistamaan tietojen eheys, mutta NoSQL:ssä toisinaan tähdätään myöhempään eheyteen eikä välttämättä välittömään eheyteen. Relaatiomallin mukaiset tietokannat pyrkivät normalisoidun tiedon tallentamiseen, josta toistuvat tiedot on poistettu jotta tallennettavan tiedon määrä on pieni. NoSQL sallii osittain rakenteellista tai täysin rakenteetonta tietoa, jonka käsittely voi olla hitaampaa.
NoSQL-tietokantoja ovat avain-arvotietokannat, sarakkeiset tietokannat, dokumentti-orientoituneet tietokannat ja graafitietokannat. XML-tietokanta on dokumenttiorientoituneen tietokannan tyyppi. XML on hierarkinen malli eikä tiedon suhteiden kuvaus; XML on itseään kuvaava kun taas relaatiomalli ei ole; ja XML:ssä tiedolla on tietty järjestys tallennettaessa kun taas relaatiomallissa tiedoilla ei ole järjestystä ellei sitä määrätä kyselyssä.
NewSQL on tietokantaluokka, joka pyrkii yhdistämään ACID-ominaisuudet NoSQL-tietokantojen skaalautuvuuteen.
Hajautettu tietokanta on tietokanta, joka ei ole kokonaisuudessaan tallennettuna yhdessä paikassa vaan tietokoneverkon kautta toisiinsa yhdistetyillä tietokoneilla.
Tietokantojen kehityshistoriassa on todettu useita "liikehdintöjä" 1960-luvulta lähtien, mutta usein uusien sovelluksien kehitys palaa relaatiomallin mukaiseksi ja muut suuntaukset jäävät vähemmälle osuudelle.