Menu
Coddy logo textTech

Co to jest baza danych?

Baza danych to uporządkowany zbiór danych przechowywany w komputerze tak, żeby programy mogły szybko i bezpiecznie je wyszukiwać, dodawać, zmieniać i usuwać. Zarządza nią oprogramowanie nazywane systemem zarządzania bazą danych (DBMS), takie jak PostgreSQL, MySQL, SQLite albo MongoDB.

Autor: Kevin Spektor, Współzałożyciel i CTO

Aktualizacja: 24 września 2026

Kiedy logujesz się na stronie, serwis musi znaleźć twoje konto wśród milionów innych, sprawdzić hasło i wczytać ustawienia, wszystko w kilka milisekund. Nie otwiera pliku tekstowego i nie czyta go linia po linii. Wysyła do bazy danych zapytanie takie jak SELECT * FROM users WHERE email = 'ana@example.com', a baza danych przeskakuje od razu do właściwego wiersza dzięki indeksowi, podobnie jak skorowidz na końcu książki.

Jak działa baza danych

Współpracują tu dwa elementy. Baza danych to dane uporządkowane w stałej strukturze. System zarządzania bazą danych (DBMS) to program, który przechowuje te dane w plikach, dba o ich spójność i odpowiada na zapytania. PostgreSQL, MySQL i SQLite to systemy DBMS; twoja lista klientów to baza danych.

W relacyjnej bazie danych dane są przechowywane w tabelach. Każda tabela ma kolumny (imię, kraj, punkty) i wiersze (po jednym na użytkownika). Zapytanie przechodzi przez takie kroki:

  1. Twój program wysyła zapytanie, zwykle napisane w SQL (Structured Query Language).
  2. DBMS analizuje zapytanie i planuje, jak na nie odpowiedzieć: które tabele odczytać i czy indeks pozwoli pominąć większość wierszy.
  3. Odczytuje dane z dysku stronami o stałym rozmiarze (domyślnie 4096 bajtów w SQLite, 8 KB w PostgreSQL), trzymając często używane strony w pamięci.
  4. Filtruje, sortuje i łączy wiersze, a potem zwraca wynik.

Python ma wbudowane SQLite, więc możesz uruchomić prawdziwą bazę danych tutaj:

Kenji 340
Omar 340
Ana 120
users: 4 average points: 222.5

Program nigdzie nie mówi, jak szukać. Opisuje wynik, którego chce, a DBMS decyduje, jak go uzyskać. To główna różnica między zapytaniem do bazy danych a pisaniem pętli po liście.

Rodzaje baz danych

RodzajPrzechowuje dane jakoPrzykładyTypowe zastosowanie
Relacyjna (SQL)Tabele z wierszami i kolumnami, powiązane kluczamiPostgreSQL, MySQL, SQLite, Oracle, SQL ServerUżytkownicy, zamówienia, płatności: większość aplikacji
DokumentowaDokumenty podobne do JSONMongoDB, Firestore, CouchDBRekordy, których pola różnią się między sobą
Klucz-wartośćWartość wyszukiwana po jednym kluczuRedis, DynamoDBPamięć podręczna, sesje, liczniki
Kolumnowa (wide-column)Wiersze z elastycznymi kolumnami rozłożone na wiele serwerówCassandra, HBaseBardzo duża liczba zapisów
GrafowaWęzły i relacje między nimiNeo4jSieci społecznościowe, rekomendacje
Szeregów czasowychPomiary indeksowane czasemInfluxDB, TimescaleDBMetryki, odczyty z czujników
WektorowaListy liczb (embeddingi)pgvector, Pinecone, MilvusWyszukiwanie podobieństw w funkcjach AI

Bazy, które nie są relacyjne, często określa się zbiorczo jako NoSQL. Relacyjne bazy danych pozostają domyślnym wyborem w większości aplikacji, bo tabele, ograniczenia i SQL dobrze pokrywają szeroki zakres problemów. Wiele produktów łączy też rodzaje: PostgreSQL przechowuje dokumenty JSON, a pgvector dodaje do niego wyszukiwanie wektorowe.

Transakcje: wszystko albo nic

Przelew pieniędzy od Any do Bena wymaga dwóch zmian: dodania Benowi i odjęcia Anie. Jeśli program zawiesi się między nimi, pieniądze pojawią się znikąd. Transakcja grupuje zmiany tak, że zapisane zostają albo wszystkie, albo żadna. Tutaj druga zmiana łamie regułę (saldo nie może spaść poniżej zera), więc baza danych cofa też pierwszą:

transfer 30 done
{'ana': 20, 'ben': 30}
transfer 40 failed: CHECK constraint failed: balance >= 0
{'ana': 20, 'ben': 30}

Kwota 40 została Benowi dodana, a potem odebrana, więc sumy nadal się zgadzają. Relacyjne bazy danych obiecują transakcjom cztery właściwości, znane jako ACID: atomowość (wszystko albo nic), spójność (reguły takie jak CHECK zawsze obowiązują), izolacja (dwóch użytkowników wykonujących transakcje jednocześnie nie widzi nawzajem swojej niedokończonej pracy) i trwałość (zapisana zmiana przetrwa awarię albo zanik zasilania).

Baza danych a arkusz kalkulacyjny i plik

Plik tekstowy lub CSVArkusz kalkulacyjnyBaza danych
RozmiarTyle, ile program zdoła wczytać1 048 576 wierszy na arkusz w ExceluMiliardy wierszy
Wielu piszących narazNieW ograniczonym zakresieTak, dzięki blokadom i transakcjom
Znalezienie jednego rekorduOdczyt całego plikuFiltr lub wyszukiwanieWyszukiwanie w indeksie
Reguły dla danychBrakOpcjonalna walidacjaTypy, ograniczenia, klucze obce
Zadawanie pytańWłasny kodFormułySQL albo API zapytań

Arkusz kalkulacyjny to dobre narzędzie dla jednej osoby, która przegląda kilka tysięcy wierszy. Gdy dane zapisuje jednocześnie kilka programów albo użytkowników albo dane muszą spełniać reguły, właściwym narzędziem jest baza danych.

Jak bazy danych chronią dane

DBMS zapisuje każdą zmianę w dzienniku, zanim dotknie plików z danymi (dziennik zapisu z wyprzedzeniem, write-ahead log), więc po awarii może powtórzyć albo cofnąć niedokończoną pracę. PostgreSQL może przechowywać sumę kontrolną dla każdej 8-kilobajtowej strony i zgłosić błąd sumy kontrolnej, gdy psujący się dysk zwróci uszkodzone dane. Użytkownicy i uprawnienia decydują, kto może czytać albo zmieniać które tabele, a replikacja trzyma kopie na innych serwerach. Programy muszą też przekazywać dane od użytkownika jako parametry, jak symbole zastępcze ? powyżej, a nigdy przez wklejanie ich do tekstu SQL, bo właśnie tak dochodzi do ataków SQL injection.

Częste nieporozumienia

  • "SQL to baza danych." SQL to język. PostgreSQL, MySQL i SQLite to bazy danych, które go rozumieją.
  • "NoSQL oznacza zupełny brak SQL." Termin zwykle rozumie się jako "not only SQL" (nie tylko SQL), a kilka baz NoSQL ma języki zapytań podobne do SQL, na przykład CQL w Cassandrze.
  • "Baza danych to zawsze duży serwer." SQLite to pojedynczy plik, który program otwiera bezpośrednio, bez żadnego serwera. Działa w każdym telefonie z Androidem i iOS.
  • "Dane w bazie są bezpieczne na zawsze." Baza danych chroni przed awariami, a nie przed kimś, kto przez pomyłkę wykona DELETE. Kopie zapasowe nadal są potrzebne.

Co dalej

Kurs SQL uczy zapytań od pierwszego SELECT. Dokumentacja SQLite omawia kolejne kroki: czym jest SQLite, tworzenie tabeli, indeksy i ochronę przed SQL injection. Żeby zobaczyć, jak dane są rozłożone na dysku, przeczytaj co to jest bajt, a strona o sumie kontrolnej wyjaśnia, jak wykrywa się uszkodzone strony.

Najczęściej zadawane pytania

Co to jest baza danych w prostych słowach?
Baza danych to miejsce, w którym program trzyma informacje, żeby szybko je potem odnaleźć. Wyobraź sobie szafę na dokumenty z idealnym spisem: prosisz o "wszystkie zamówienia z zeszłego tygodnia" i dostajesz odpowiedź w milisekundach, nawet gdy rekordów są miliony.
Jaki jest przykład bazy danych?
Kontakty w twoim telefonie są zapisane w bazie danych: zarówno Android, jak i iOS mają wbudowane SQLite. Bank trzyma konta klientów w bazie danych takiej jak Oracle albo PostgreSQL, a Wikipedia przechowuje artykuły w MariaDB. Sklep internetowy trzyma produkty, klientów i zamówienia w powiązanych tabelach.
Jakie są cztery rodzaje baz danych?
Nie ma oficjalnej listy czterech rodzajów. Najczęściej wymienia się relacyjne bazy danych (tabele i SQL), dokumentowe bazy danych (rekordy podobne do JSON), magazyny klucz-wartość (wartość wyszukiwana po kluczu) i grafowe bazy danych (węzły i relacje). Starsze podręczniki wymieniają też hierarchiczne i sieciowe bazy danych.
Jakie jest 5 najpopularniejszych baz danych?
Oracle, MySQL, Microsoft SQL Server, PostgreSQL i MongoDB od lat zajmują pierwsze pięć miejsc w rankingu popularności DB-Engines. Wśród programistów PostgreSQL jest najczęściej używaną bazą danych w ankiecie Stack Overflow Developer Survey od 2023 roku, a SQLite jest najszerzej rozpowszechniona, bo działa w telefonach i przeglądarkach.
Czym różni się baza danych od DBMS?
Baza danych to same dane, uporządkowane w tabelach albo dokumentach. DBMS to oprogramowanie, które przechowuje te dane na dysku i odpowiada na zapytania o nie, na przykład PostgreSQL albo MySQL. Ludzie często mówią "baza danych" o jednym i drugim.
Czy muszę znać SQL, żeby korzystać z bazy danych?
W przypadku relacyjnych baz danych tak: SQL służy do tworzenia tabel i zadawania pytań o dane, a jego podstawy można opanować w kilka dni. Wiele programów korzysta z biblioteki, która pisze SQL za ciebie, ale znajomość SQL bardzo ułatwia zrozumienie, co ta biblioteka robi i dlaczego zapytanie działa wolno.
Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ