DBMS jsou základem většiny databázových aplikací. Někdy jsou DBMS postaveny kolem vlastního multitaskingového jádra s integrovanou podporou sítí, i když v dnešní době jsou tyto funkce přenechány operačnímu systému.
Systém správy databází (DBMS) je obvykle automatizovaný a počítačový systém pro správu libovolného souboru kompatibilních a v ideálním případě normalizovaných dat.
Databázová aplikace je počítačový software napsaný pro správu dat určité aplikace nebo problému.
Databáze se používají od prvních dnů elektronické výpočetní techniky, ale v naprosté většině případů se jednalo o vlastní programy napsané pro přístup k vlastním databázím. Na rozdíl od moderních systémů, které lze použít pro velmi odlišné databáze a potřeby, byly tyto systémy úzce propojeny s databází s cílem získat rychlost na úkor flexibility.
S rozvojem schopností počítačů se tento kompromis stával stále zbytečnějším a vznikla řada univerzálních databázových systémů; v polovině 60. let 20. století se řada takových systémů používala komerčně. Začal růst zájem o standard a Charles Bachman, autor jednoho takového produktu, IDS, založil Database Task Group v rámci skupiny CODASYL, která byla zodpovědná za vytvoření a standardizaci jazyka COBOL. V roce 1971 předložili svůj standard, který se stal obecně známým jako přístup Codasyl, a brzy byla k dispozici řada komerčních produktů na něm založených.
Přístup Codasyl byl založen na „ručním“ procházení propojeného souboru dat, který byl vytvořen do velké sítě. Při prvním otevření databáze byl programu předán zpět odkaz na první záznam v databázi, který obsahoval také ukazatele na další části dat. Pro nalezení konkrétního záznamu musel programátor postupně procházet tyto ukazatele, dokud se nevrátil požadovaný záznam. Jednoduché dotazy typu „najdi všechny lidi ve Švédsku“ vyžadovaly, aby program prošel celý soubor dat a shromáždil odpovídající výsledky. V podstatě neexistoval žádný koncept „najít“ nebo „hledat“. Dnes to může znít jako závažné omezení, ale v době, kdy byla data nejčastěji uložena na magnetické pásce, byly takové operace stejně příliš nákladné, než aby se o nich dalo uvažovat.
Společnost IBM měla v roce 1968 také vlastní systém DBMS, známý jako IMS. IMS vznikl na základě softwaru napsaného pro program Apollo na systému System/360. IMS byl obecně podobný konceptu systému Codasyl, ale místo síťového modelu systému Codasyl používal pro svůj model navigace v datech přísnou hierarchii.
Oba koncepty se později začaly označovat jako navigační databáze kvůli způsobu přístupu k datům a Bachmanova prezentace v rámci Turingovy ceny z roku 1973 se jmenovala The Programmer as Navigator (Programátor jako navigátor). IMS je klasifikována jako hierarchická databáze. IDS a IDMS (obě databáze CODASYL), stejně jako databáze CINCOMs TOTAL jsou klasifikovány jako síťové databáze.
Edgar Codd pracoval u IBM v San Jose v Kalifornii v jedné z poboček, která se zabývala především vývojem systémů pevných disků. Nebyl spokojen s navigačním modelem přístupu Codasyl, zejména s absencí funkce „vyhledávání“, která se stávala stále užitečnější, když byla databáze uložena na disku místo na pásce. V roce 1970 napsal řadu článků, v nichž nastínil nový přístup ke konstrukci databází, který nakonec vyvrcholil v přelomové práci A Relational Model of Data for Large Shared Data Banks (Relační model dat pro velké sdílené datové banky).
V tomto článku popsal nový systém pro ukládání a práci s rozsáhlými databázemi. Namísto záznamů uložených v jakémsi propojeném seznamu záznamů ve volném tvaru, jak tomu bylo v systému Codasyl, Coddova myšlenka spočívala v použití „tabulky“ záznamů s pevnou délkou. Systém propojených seznamů by byl velmi neefektivní při ukládání „řídkých“ databází, kde by některé údaje pro jeden záznam mohly zůstat prázdné. Relační model to vyřešil rozdělením dat do řady normalizovaných tabulek, přičemž nepovinné prvky byly přesunuty mimo hlavní tabulku, kde by zabíraly místo pouze v případě potřeby.
V relačním modelu jsou související záznamy propojeny „klíčem“.
Běžným využitím databázového systému je například sledování informací o uživatelích, jejich jména, přihlašovacích údajů, různých adres a telefonních čísel. V navigačním přístupu by všechny tyto údaje byly umístěny v jediném záznamu a nepoužívané položky by se do databáze jednoduše neumisťovaly. V relačním přístupu by se data normalizovala do tabulky uživatelů, tabulky adres a tabulky telefonních čísel (například). Záznamy v těchto nepovinných tabulkách by se vytvářely pouze v případě, že by adresa nebo telefonní číslo byly skutečně poskytnuty.
Klíčem k tomuto systému je zpětné propojení informací. V relačním modelu se jako „klíč“ používal nějaký údaj, který jednoznačně definoval konkrétní záznam. Při shromažďování informací o uživateli se informace uložené ve volitelných (nebo souvisejících) tabulkách vyhledávaly pomocí tohoto klíče. Pokud je například přihlašovací jméno uživatele jedinečné, adresy a telefonní čísla tohoto uživatele by byly zaznamenány s přihlašovacím jménem jako klíčem. Toto „opětovné propojení“ souvisejících údajů zpět do jediné kolekce je něco, pro co nejsou tradiční počítačové jazyky určeny.
Stejně jako navigační přístup by vyžadoval, aby programy sbíraly záznamy ve smyčkách, relační přístup by vyžadoval smyčky pro sběr informací o každém záznamu. Coddovým řešením nutných smyček byl množinově orientovaný jazyk, což byl návrh, který později vedl ke vzniku všudypřítomného jazyka SQL. Pomocí odvětví matematiky známého jako tuple calculus ukázal, že takový systém může podporovat všechny operace běžných databází (vkládání, aktualizace atd.) a zároveň poskytovat jednoduchý systém pro vyhledávání a vracení množin dat v rámci jedné operace.
Coddův článek převzali dva lidé z Berkeley, Eugene Wong a Michael Stonebraker. Ti zahájili projekt známý jako INGRES s využitím finančních prostředků, které již byly přiděleny na projekt geografické databáze, a k tvorbě kódu využili studentské programátory. Od roku 1973 INGRES dodával první testovací produkty, které byly v roce 1979 obecně připraveny k širokému použití. Během této doby skupinou „prošla“ řada lidí – na projektu pracovalo snad až 30 lidí, vždy asi pět. INGRES se v mnoha ohledech podobal Systemu R, včetně používání „jazyka“ pro přístup k datům, známého jako QUEL – QUEL byl ve skutečnosti relační, protože vycházel z Coddova vlastního jazyka Alpha, ale od té doby byl zkorumpován tak, aby navazoval na SQL, čímž porušoval v podstatě stejné koncepty relačního modelu jako samotný SQL.
IBM sama provedla pouze jednu testovací implementaci relačního modelu, PRTV, a jednu produkční, Business System 12, obě již ukončené. Honeywell provedl MRDS pro Multics a nyní existují dvě nové implementace: Všechny ostatní implementace DBMS, které se obvykle nazývají relační, jsou ve skutečnosti DBMS SQL.
Společnost IBM začala na počátku 70. let pracovat na prototypu systému volně založeném na Coddových koncepcích pod názvem System R – bohužel byl System R koncipován jako způsob, jak dokázat, že Coddovy myšlenky jsou nerealizovatelné, a tak byl projekt předán skupině programátorů, kteří nebyli pod Coddovým dohledem, nikdy plně nepochopili jeho myšlenky a nakonec porušili několik základů relačního modelu. První „rychlá“ verze byla hotova v letech 1974/5 a poté se začalo pracovat na vícestolových systémech, v nichž bylo možné data rozdělit tak, aby všechna data pro záznam (z nichž velká část je často nepovinná) nemusela být uložena v jednom velkém „kusu“. Následné víceuživatelské verze byly testovány zákazníky v letech 1978 a 79. V té době již byl přidán standardizovaný počítačový jazyk SQL. Coddovy myšlenky se prosadily jako funkční i lepší než Codasyl a přiměly IBM k vývoji skutečné produkční verze System R, známé jako SQL/DS, a později Database 2 (DB2).
Mnozí z lidí, kteří se podíleli na systému INGRES, byli přesvědčeni o budoucím komerčním úspěchu takových systémů a založili si vlastní společnosti, aby tuto práci komercializovali, ale s rozhraním SQL. Sybase, Informix, NonStop SQL a nakonec i samotný Ingres se v 80. letech prodávaly jako odnože původního produktu INGRES. Dokonce i Microsoft SQL Server je vlastně přestavěnou verzí Sybase, a tedy i INGRES. Pouze Oracle Larryho Ellisona začal z jiného řetězce, na základě dokumentů IBM o systému R tím, že je předběhl na trhu, když byla v roce 1978 vydána první verze.
Stonebraker dále využil zkušenosti z INGRESu při vývoji nové databáze Postgres, nyní známé jako PostgreSQL. PostgreSQL je nyní jednou z nejpoužívanějších databází na světě, především pro globální kritické aplikace (registry doménových jmen .org a .info ji používají jako primární úložiště dat, stejně jako mnoho velkých společností a finančních institucí).
Ve Švédsku se Coddův článek také četl, Mimer SQL byl vyvíjen od poloviny 70. let na univerzitě v Uppsale a v roce 1984 byl tento projekt konsolidován do samostatného podniku. Počátkem 80. let Mimer zavedl zpracování transakcí pro vysokou robustnost aplikací, což je myšlenka, která byla následně implementována ve většině ostatních DBMS.
Multidimenzionální DBMS měly na trh jeden trvalý dopad: vedly přímo k vývoji objektových databázových systémů. Tyto nové systémy, založené na stejné obecné struktuře a koncepci jako multidimenzionální systémy, umožnily uživateli ukládat objekty přímo do databáze. To znamená, že programové konstrukce používané ve světě objektově orientovaného programování (OO) mohly být použity přímo v databázi, místo aby byly nejprve převedeny do jiného formátu.
K tomu by mohlo dojít z důvodu pojetí vlastnictví v multidimenzionálním systému. V programu OO bude určitý objekt obvykle obsahovat další objekty; například objekt představující Boba může obsahovat odkaz na samostatný objekt odkazující na Bobovu adresu domů. Přidáním podpory pro různé OO jazyky a polymorfismus se vícerozměrné systémy přetvořily na objektové databáze, které dodnes slouží své mezeře.
DBMS může být velmi složitý soubor softwarových programů, který řídí organizaci, ukládání a vyhledávání dat (polí, záznamů a souborů) v databázi. Základní funkce, které musí DBMS poskytovat, jsou:
DBMS přijímá požadavky na data od aplikačního programu a dává operačnímu systému pokyn k přenosu příslušných dat.
Při použití DBMS lze informační systémy mnohem snadněji měnit podle toho, jak se mění informační požadavky organizace. Do databáze lze přidávat nové kategorie dat bez narušení stávajícího systému.
Organizace mohou používat jeden druh DBMS pro každodenní zpracování transakcí a poté přesunout detaily do jiného počítače, který používá jiný DBMS vhodnější pro náhodné dotazy a analýzy. Celková rozhodnutí o návrhu systémů provádějí správci dat a systémoví analytici. Detailní návrh databáze provádějí správci databází.
Databázové servery jsou speciálně navržené počítače, na kterých jsou umístěny vlastní databáze a na kterých běží pouze DBMS a související software. Databázové servery jsou obvykle víceprocesorové počítače a pro stabilní ukládání dat se používají disková pole RAID. K jednomu nebo více serverům jsou vysokorychlostním kanálem připojeny hardwarové databázové akcelerátory, které se používají také v prostředích zpracování velkých objemů transakcí.