System zarządzania bazami danych (DBMS) to zbiór programów umożliwiających użytkownikom dostęp do bazy danych, manipulowanie danymi, raportowanie/reprezentację danych. Pomaga także kontrolować dostęp do bazy danych. Systemy zarządzania bazami danych nie są nową koncepcją i jako takie zostały po raz pierwszy wprowadzone w 1960 roku. Zintegrowany magazyn danych (IDS) Charlesa Bachmena jest uważany za pierwszy DBMS w historii.
Z czasem technologie baz danych ewoluowały, a wykorzystanie i oczekiwane funkcjonalności baz danych znacznie wzrosły. Istnieją 4 główne typy DBMS. Hierarchiczny – ten typ DBMS wykorzystuje relację „rodzic-dziecko” do przechowywania danych. Ten rodzaj DBMS jest obecnie rzadko używany. Jego struktura jest jak drzewo z węzłami reprezentującymi rekordy i gałęziami reprezentującymi pola. Rejestr systemu Windows używany w systemie Windows XP jest przykładem hierarchicznej bazy danych.
Ustawienia konfiguracji są przechowywane jako struktury drzewiaste z węzłami.
Sieć DBMS – ten typ DBMS obsługuje wiele relacji. Zwykle skutkuje to złożonymi strukturami baz danych. Serwer RDM to przykład systemu zarządzania bazą danych, który implementuje model sieci.
Relacyjny system DBMS – ten typ DBMS definiuje relacje z bazą danych w postaci tabel, zwanych również relacjami. W przeciwieństwie do sieciowego DBMS, RDBMS nie obsługuje wielu relacji. Relacyjne systemy DBMS zwykle mają predefiniowane typy danych, które mogą obsługiwać. Jest to najpopularniejszy typ DBMS na rynku. Przykłady systemów zarządzania relacyjnymi bazami danych obejmują bazy danych MySQL czy Microsoft SQL Server.
Relacja obiektowa DBMS – ten typ obsługuje przechowywanie nowych typów danych. Dane do przechowywania są przedstawione w postaci obiektów. Obiekty, które mają być przechowywane w bazie danych, mają atrybuty i metody, które definiują, co zrobić z danymi.
SQL oznacza Structured Query Language i służy do komunikacji z bazą danych. Według ANSI (American National Standards Institute) jest standardowym językiem dla systemów zarządzania relacyjnymi bazami danych. Instrukcje SQL służą do wykonywania zadań, takich jak aktualizacja danych w bazie danych lub pobieranie danych z bazy danych.
Niektóre popularne systemy zarządzania relacyjnymi bazami danych, które używają SQL to: Oracle, Access, Microsoft SQL Server, itp. Chociaż większość systemów baz danych używa SQL, większość z nich ma również swoje własne dodatkowe zastrzeżone rozszerzenia, które są zwykle używane tylko w ich systemie. Jednak standardowe polecenia bazy danych SQL, takie jak „Wybierz”, „Wstaw”, „Aktualizuj”, „Usuń” czy „Utwórz”, można wykorzystać do wykonania prawie wszystkiego, co trzeba zrobić z bazą danych. Relacyjny system baz danych zawiera jeden lub więcej obiektów zwanych tabelami. Dane lub informacje dotyczące bazy danych są przechowywane w tych tabelach.
Tabele są jednoznacznie identyfikowane według ich nazw i składają się z kolumn i wierszy. Kolumny zawierają nazwę kolumny, typ danych i inne atrybuty kolumny. Wiersze zawierają rekordy lub dane dla kolumn.
SQL (relacyjne) bazy danych mają dojrzały model przechowywania danych i zarządzania. Ma to kluczowe znaczenie dla użytkowników korporacyjnych. Obsługują też pojęcie widoków, które umożliwiają użytkownikom wyświetlanie wyłącznie danych, do wyświetlania których mają uprawnienia.
Dane, do których nie mają uprawnień, są ukrywane przed nimi
NoSQL to nadchodząca kategoria systemów zarządzania bazami danych. Jego główną cechą jest nieprzestrzeganie koncepcji relacyjnych baz danych. NOSQL oznacza „nie tylko SQL”. Koncepcja baz danych NoSQL wzrosła dzięki internetowym gigantom, takim jak Google czy Facebook, którzy zajmują się gigantycznymi wolumenami danych.
Gdy używa się bowiem relacyjnej bazy danych dla dużych woluminów danych, system zaczyna działać powoli w zakresie czasu odpowiedzi. Aby przezwyciężyć ten problem, można by oczywiście „zwiększyć skalę” systemów poprzez modernizację naszego istniejącego sprzętu.
Alternatywą dla powyższego problemu było rozłożenie obciążenia bazy danych na wiele hostów w miarę wzrostu obciążenia. Baza danych NOSQL to nierelacyjne bazy danych, które skalują się lepiej niż relacyjne bazy danych i są zaprojektowane z myślą o aplikacjach internetowych. Bazy danych NOSQL są rodzajem wysoce wyspecjalizowanych systemów i mają specjalne zastosowanie i ograniczenia. NOSQL nadaje się bardziej dla tych, którzy obsługują ogromne ilości danych. Zdecydowana większość korzysta z relacyjnych baz danych i powiązanych narzędzi.