SZBD: MySQL i MariaDB, PostgreSQL, SQLite, MS SQL; XAMPP i phpMyAdmin

INF.03 · teoria
autor: redakcja · 07.09.2026 · aktualizacja: 08.09.2026
Czym jest system zarządzania bazą danych, czym różnią się MySQL, PostgreSQL, SQLite i MS SQL Server, jak zainstalować XAMPP, ustawić serwer dla wielu użytkowników i obsłużyć bazę w phpMyAdmin. Lekcja 7.5 kursu INF.03.
SZBD (system za­rzą­dza­nia bazą danych, Database Management System, DBMS) to pro­gram, który prze­cho­wu­je bazy, wy­ko­nu­je po­le­ce­nia SQL i pil­nu­je, żeby wielu użyt­kow­ni­ków mogło pra­co­wać na tych samych danych naraz bez ich psucia. Sama baza to pliki na dysku, któ­rych nikt nie otwie­ra ręcz­nie: wszyst­ko idzie przez SZBD. Na eg­za­mi­nie pi­sem­nym wra­ca­ją py­ta­nia „co to jest DBMS", „które na­rzę­dzie z XAMPP służy do za­rzą­dza­nia bazą" i „co znaczy lo­kal­ny SZBD". W części prak­tycz­nej pierw­sze minuty przy kom­pu­te­rze to uru­cho­mie­nie XAMPP i wej­ście do phpMyAdmin, więc bez tego za­da­nie nie ruszy z miej­sca.

Co robi SZBD

SZBD stoi między użyt­kow­ni­kiem a pli­ka­mi bazy i bierze na siebie wszyst­ko, czego po­je­dyn­cza tabela sama nie po­tra­fi:
  • prze­cho­wu­je dane i pil­nu­je struk­tu­ry: typów kolumn, kluczy, więzów in­te­gral­no­ści,
  • wy­ko­nu­je po­le­ce­nia SQL i odsyła wynik,
  • ob­słu­gu­je wie­lo­do­stęp, czyli pracę wielu osób naraz; blo­ka­dy nie po­zwa­la­ją dwóm osobom nad­pi­sać sobie tego samego wier­sza,
  • pro­wa­dzi konta użyt­kow­ni­ków i upraw­nie­nia: kto może czytać, kto zmie­niać, kto za­kła­dać tabele,
  • wy­ko­nu­je trans­ak­cje, czyli grupy po­le­ceń wy­ko­ny­wa­ne w ca­ło­ści albo wcale,
  • robi kopie za­pa­so­we i od­twa­rza bazę z pliku,
  • za­pi­su­je dzien­nik zda­rzeń, w którym zo­sta­je ślad po błę­dach i wy­ko­na­nych ope­ra­cjach.
Po­ję­cia tabeli, re­kor­du i pola omawia lekcja czym jest baza danych, a trans­ak­cje lekcja o po­dza­py­ta­niach, wi­do­kach, in­dek­sach i trans­ak­cjach.

Jakie SZBD spo­tkasz i który do czego

Sys­te­mów jest kil­ka­na­ście, a na eg­za­mi­nie krąży zawsze ta sama garst­ka nazw.
System
Typ
Gdzie go spo­tkasz
Uwaga
MySQL
ser­we­ro­wy, port 3306
ho­stin­gi WWW, XAMPP, WordPress
naj­po­pu­lar­niej­szy w in­ter­ne­cie, wła­ści­cie­lem jest Oracle
MariaDB
ser­we­ro­wy, port 3306
XAMPP, ser­we­ry li­nuk­so­we
od­ga­łę­zie­nie MySQL, te same po­le­ce­nia; to ona siedzi dziś w XAMPP pod przy­ci­skiem MySQL
PostgreSQL
ser­we­ro­wy, port 5432
duże sys­te­my, PHP przez pg_connect
wolne opro­gra­mo­wa­nie, więcej typów danych i funk­cji
SQLite
pli­ko­wy, bez ser­we­ra
te­le­fo­ny, prze­glą­dar­ki, małe pro­gra­my
cała baza to jeden plik na dysku
Mi­cro­soft SQL Server
ser­we­ro­wy, port 1433
firmy na Win­dows, apli­ka­cje w .NET
dia­lekt T-SQL, po­le­ce­nia BACKUP DATABASE i RESTORE DATABASE
Oracle Da­ta­ba­se
ser­we­ro­wy, port 1521
banki, duże kor­po­ra­cje
roz­bu­do­wa­ny i drogi
MS Access, LibreOffice Base
pli­ko­wy, bez ser­we­ra
biuro, małe ewi­den­cje
pro­gra­my biu­ro­we z for­mu­la­rza­mi i ra­por­ta­mi
Po­dział, o który pyta test, prze­bie­ga w po­przek tej tabeli. SZBD ser­we­ro­wy pra­cu­je w ukła­dzie klient-serwer: serwer na­słu­chu­je na porcie, a pro­gra­my łączą się z nim po sieci, więc z jednej bazy ko­rzy­sta wiele kom­pu­te­rów naraz. SZBD lo­kal­ny udo­stęp­nia bazę tylko na jednym kom­pu­te­rze, często w po­sta­ci jed­ne­go pliku otwie­ra­ne­go przez pro­gram biu­ro­wy. SQLite, Access i Base są lo­kal­ne, reszta z tabeli jest ser­we­ro­wa. Osobną ro­dzi­ną są bazy NoSQL, na przy­kład MongoDB, która trzyma do­ku­men­ty za­miast wier­szy i nie ma sztyw­nych tabel. Nasz plac zabaw SQL działa na SQLite uda­ją­cym MySQL, więc po­le­ce­nia z kursu wy­ko­nasz w prze­glą­dar­ce bez in­sta­lo­wa­nia cze­go­kol­wiek.
Dobór SZBD do za­sto­so­wa­nia jest osob­nym kry­te­rium eg­za­mi­na­cyj­nym i spro­wa­dza się do kilku par:
Za­sto­so­wa­nie
Wybór
Dla­cze­go
strona WWW na ho­stin­gu
MySQL albo MariaDB
ma je każdy ho­sting, PHP łączy się z nimi jedną funk­cją
apli­ka­cja mo­bil­na, pro­gram na jednym kom­pu­te­rze
SQLite
nie ma ser­we­ra do uru­cho­mie­nia, baza jedzie razem z apli­ka­cją
duży system z roz­bu­do­wa­ny­mi za­py­ta­nia­mi
PostgreSQL
bo­gat­sze typy danych, funk­cje i me­cha­ni­zmy za­py­tań
firma na Win­dows z apli­ka­cja­mi w .NET
MS SQL Server
wpięty w system i w na­rzę­dzia Mi­cro­so­ftu
mała ewi­den­cja biu­ro­wa z for­mu­la­rza­mi
MS Access albo LibreOffice Base
gotowe for­mu­la­rze i ra­por­ty bez pro­gra­mo­wa­nia
eg­za­min INF.03
MySQL albo MariaDB z XAMPP
tak brzmi treść ar­ku­sza i tak przy­go­to­wa­ne jest sta­no­wi­sko

In­sta­la­cja SZBD: XAMPP krok po kroku

XAMPP to pakiet, który in­sta­lu­je naraz serwer WWW Apache, serwer baz danych MySQL (dziś jest to MariaDB), in­ter­pre­ter PHP, phpMyAdmin oraz Perla. In­sta­lu­je się go wtedy, gdy po­trzeb­ny jest kom­plet do stron dy­na­micz­nych; sam serwer bazy da się też po­sta­wić osobno.
Przeglądarka wysyła żądanie na port 80 do Apache, Apache uruchamia skrypt PHP, PHP łączy się z MySQL na porcie 3306 i dostaje wiersze, a gotowa strona wraca do przeglądarki
Droga żą­da­nia wy­glą­da tak: prze­glą­dar­ka (klient) wysyła żą­da­nie HTTP pod adres localhost na port 80, Apache je przyj­mu­je i uru­cha­mia skrypt PHP z ka­ta­lo­gu htdocs, skrypt łączy się z ser­we­rem MySQL na porcie 3306 jako użyt­kow­nik root, do­sta­je wier­sze, składa z nich HTML, a Apache odsyła gotową stronę. phpMyAdmin jest zwykłą apli­ka­cją PHP na tym samym Apache i tak samo roz­ma­wia z MySQL, tylko za­miast strony sklepu po­ka­zu­je listę baz i tabel.
In­sta­la­cja krok po kroku:
  • 1.
    Po­bierz in­sta­la­tor ze strony apachefriends.org w wersji dla swo­je­go sys­te­mu.
  • 2.
    Za­in­sta­luj do ka­ta­lo­gu bez spacji i pol­skich znaków w ścież­ce, stan­dar­do­wo C:\xampp.
  • 3.
    Na czas in­sta­la­cji wyłącz pro­gram an­ty­wi­ru­so­wy: to naj­częst­sza przy­czy­na in­sta­la­cji, która kończy się w po­ło­wie albo zo­sta­wia nie­dzia­ła­ją­cy serwer.
  • 4.
    Uru­chom XAMPP Con­trol Panel i na­ci­śnij Start przy Apache oraz przy MySQL. Zie­lo­ne tło nazwy i numery pro­ce­sów znaczą, że usługi dzia­ła­ją.
  • 5.
    Sprawdź w prze­glą­dar­ce adres http://localhost/, a potem http://localhost/phpmyadmin/.
Jeżeli Apache nie star­tu­je, port 80 zaj­mu­je inny pro­gram: bywa to Skype albo serwer IIS wbu­do­wa­ny w Win­dows. Jeżeli nie star­tu­je MySQL, port 3306 trzyma wcze­śniej za­in­sta­lo­wa­ny serwer bazy. Zajęty port zwal­nia się przez wy­łą­cze­nie tam­te­go pro­gra­mu albo zmie­nia w kon­fi­gu­ra­cji XAMPP, przy czym po zmia­nie portu 80 do adresu trzeba do­pi­sać numer, na przy­kład http://localhost:8080/.
Do­myśl­ne konto ad­mi­ni­stra­to­ra to root bez hasła. Ar­ku­sze CKE wprost tak opi­su­ją sta­no­wi­sko („użyt­kow­nik root bez hasła"), więc na eg­za­mi­nie nie zmie­niaj tego usta­wie­nia. Skryp­ty PHP kła­dzie się w C:\xampp\htdocs, bo tylko ten ka­ta­log Apache po­ka­zu­je pod ad­re­sem localhost.
Sam serwer bazy in­sta­lu­je się po­dob­nie: in­sta­la­tor MySQL albo MariaDB pyta o hasło użyt­kow­ni­ka root, za­kła­da usługę Win­dows star­tu­ją­cą razem z sys­te­mem i do­kła­da klien­ta kon­so­lo­we­go mysql, którym łą­czysz się po­le­ce­niem mysql -u root -p.

Kon­fi­gu­ra­cja do pracy wielu użyt­kow­ni­ków

Usta­wie­nia ser­we­ra MySQL leżą w pliku tek­sto­wym my.ini (w XAMPP jest to C:\xampp\mysql\bin\my.ini, na Li­nuk­sie my.cnf). Cztery wpisy de­cy­du­ją o pracy w sieci:
Usta­wie­nie
Znaczy
port=3306
numer portu, na którym serwer na­słu­chu­je
bind-address=127.0.0.1
serwer przyj­mu­je po­łą­cze­nia tylko z tego kom­pu­te­ra, 0.0.0.0 otwie­ra go na sieć
max_connections=151
ilu klien­tów może być po­łą­czo­nych naraz
character-set-server=utf8mb4
zestaw znaków, przy którym pol­skie litery za­pi­su­ją się po­praw­nie
Druga połowa kon­fi­gu­ra­cji to konta. Każdy użyt­kow­nik do­sta­je własne konto (CREATE USER) i upraw­nie­nia nadane po­le­ce­niem GRANT wy­łącz­nie do tej bazy i tych ope­ra­cji, któ­rych na­praw­dę po­trze­bu­je; w phpMyAdmin robi to za­kład­ka „Konta użyt­kow­ni­ków". Zasada jest prosta: root zo­sta­je kontem lo­kal­nym z hasłem (poza eg­za­mi­nem, gdzie arkusz każe zo­sta­wić hasło puste), a apli­ka­cja do­sta­je osobne konto z pra­wa­mi tylko do swojej bazy. Sze­rzej roz­wi­ja to lekcja o użyt­kow­ni­kach i upraw­nie­niach. Po każdej zmia­nie w my.ini usługę MySQL trzeba za­trzy­mać i uru­cho­mić po­now­nie, bo plik czy­ta­ny jest tylko przy star­cie.

Ak­tu­ali­za­cja SZBD

Ak­tu­ali­za­cja idzie zawsze w tej samej ko­lej­no­ści. Naj­pierw kopia za­pa­so­wa całej bazy, w MySQL na­rzę­dziem mysqldump albo eks­por­tem z phpMyAdmin (opi­su­je to lekcja o skryp­tach, im­por­cie i eks­por­cie). Potem spraw­dze­nie, co zmie­ni­ło się między wer­sja­mi, bo nowsze wy­da­nia bywają ostrzej­sze wobec sta­rych za­py­tań. Na­stęp­nie in­sta­la­cja nowej wersji: XAMPP nie ak­tu­ali­zu­je się w miej­scu, więc nowe wy­da­nie in­sta­lu­je się obok, a ka­ta­log htdocs i bazy prze­no­si się ręcz­nie, bazy przez eks­port i import. Przy sa­mo­dziel­nym MySQL albo MariaDB po pod­mia­nie plików uru­cha­mia się mysql_upgrade, które po­rząd­ku­je tabele sys­te­mo­we. Na koniec test: apli­ka­cja musi się po­łą­czyć i po­ka­zać dane.
Pu­łap­ka: ak­tu­ali­za­cja bez wcze­śniej­szej kopii za­pa­so­wej to jedyny błąd z tej listy, któ­re­go nie da się cofnąć.

phpMyAdmin

phpMyAdmin to apli­ka­cja WWW na­pi­sa­na w PHP, która ob­słu­gu­je serwer MySQL przez prze­glą­dar­kę. Za­stę­pu­je po­le­ce­nia wpi­sy­wa­ne w kon­so­li kli­ka­niem, ale robi do­kład­nie to samo: wysyła do ser­we­ra za­py­ta­nia SQL. Umie za­kła­dać i usuwać bazy oraz tabele, po­ka­zy­wać struk­tu­rę kolumn, ry­so­wać po­wią­za­nia w Pro­jek­tan­cie, wy­ko­nać do­wol­ne po­le­ce­nie w za­kład­ce SQL, wczy­ty­wać i za­pi­sy­wać pliki w za­kład­kach Import oraz Eks­port, pro­wa­dzić konta w za­kład­ce Konta użyt­kow­ni­ków, a w za­kład­ce Ope­ra­cje zmie­nić nazwę tabeli albo ją sko­pio­wać.
Za­miast niego można użyć pro­gra­mu MySQL Work­bench, DBeaver, HeidiSQL albo klien­ta kon­so­lo­we­go mysql -u root -p. Na eg­za­mi­nie i tak stoi phpMyAdmin, bo jest czę­ścią XAMPP.
Typowa droga w za­da­niu prak­tycz­nym: za­ło­że­nie nowej bazy, import pliku .sql z ma­te­ria­łów, spraw­dze­nie tabel, wy­ko­na­nie kwe­rend w za­kład­ce SQL i zrzut ekranu z wy­ni­kiem. Ko­lej­ne kroki im­por­tu i eks­por­tu opi­su­je lekcja o skryp­tach, im­por­cie i eks­por­cie.

Na eg­za­mi­nie

W teście py­ta­nia z tej lekcji są krót­kie i słow­ni­ko­we. Skrót DBMS to system za­rzą­dza­nia bazą danych, czyli SZBD. Na­rzę­dzie wbu­do­wa­ne w XAMPP do za­rzą­dza­nia bazą danych to phpMyAdmin, a nie Apache (serwer WWW) ani MySQL Work­bench (osobny pro­gram spoza pa­kie­tu). Lo­kal­ny SZBD udo­stęp­nia bazę tylko na jednym kom­pu­te­rze. Nie­zbęd­ny me­cha­nizm SZBD, o który pyta bank, to wie­lo­do­stęp­ność danych. Funk­cja pg_connect w PHP łączy z PostgreSQL, a nie z MySQL. Po­le­ce­nia BACKUP DATABASE i RESTORE DATABASE po­cho­dzą z Mi­cro­soft SQL Server.
W za­da­niu prak­tycz­nym sche­mat jest zawsze ten sam: uru­chom XAMPP Con­trol Panel, wy­star­tuj Apache i MySQL, wejdź na localhost/phpmyadmin, za­lo­guj się jako root bez hasła, załóż bazę o nazwie po­da­nej w ar­ku­szu (często egzamin) i za­im­por­tuj do niej plik z ma­te­ria­łów. Do­pie­ro potem za­czy­na się SQL. Jeżeli Apache albo MySQL nie chce wy­star­to­wać, sprawdź zajęte porty, zanim za­czniesz in­sta­lo­wać co­kol­wiek od nowa.

Ściąga

Rzecz
War­tość
SZBD (DBMS)
pro­gram za­rzą­dza­ją­cy bazami: SQL, wie­lo­do­stęp, upraw­nie­nia, kopie
ser­we­ro­wy kontra lo­kal­ny
ser­we­ro­wy pra­cu­je po sieci na porcie, lo­kal­ny tylko na jednym kom­pu­te­rze
MySQL i MariaDB
port 3306, XAMPP, ho­stin­gi WWW
PostgreSQL
port 5432, w PHP funk­cja pg_connect
MS SQL Server
port 1433, BACKUP DATABASE, RESTORE DATABASE
SQLite
jeden plik, bez ser­we­ra, te­le­fo­ny i prze­glą­dar­ki
XAMPP
Apache, MySQL (MariaDB), PHP, phpMyAdmin, Perl
adres panelu bazy
http://localhost/phpmyadmin/
konto eg­za­mi­na­cyj­ne
root bez hasła
ka­ta­log na skryp­ty PHP
C:\xampp\htdocs
plik kon­fi­gu­ra­cyj­ny MySQL
C:\xampp\mysql\bin\my.ini
usta­wie­nia dla wielu użyt­kow­ni­ków
port, bind-address, max_connections, utf8mb4
ko­lej­ność ak­tu­ali­za­cji
kopia za­pa­so­wa, spraw­dze­nie zmian, in­sta­la­cja, test
Pobierz ściągę PDF
ZAWODNIK
egzamin zawodowy INF.02 · INF.03 · INF.04
Serwer Discord
Egzaminy zawodowe IT/Matury/Studia
@yastor
© 2026 Zawodnik · by Yastor
Arkusze i zasady oceniania pochodzą z CKE. Serwis nie jest powiązany z Centralną Komisją Egzaminacyjną.