SQLite – lagana baza podataka za ozbiljne projekte
Verovatno znate da se svaka aplikacija koja radi sa listama korisnika, proizvodima, porudžbinama ili bilo kojim drugim informacijama oslanja na neku vrstu baze.
Za početnike koji tek ulaze u svet SQL-a ili za developere kojima je potrebna jednostavna, brza i pouzdana baza za manji projekat, često se logično nameće SQLite. To je baza podataka koja je toliko jednostavna da ne zahteva ni server ni komplikovanu instalaciju, a opet dovoljno snažna da se koristi u milionima aplikacija širom sveta, od mobilnih telefona do browsera.
U ovom vodiču ćemo objasniti šta je SQLite, zašto je toliko popularan, kako da je instalirate i koristite, i kako da napravite svoju prvu bazu podataka – korak po korak, uz praktične primere koje možete odmah da isprobate.
Pre nego što pređemo na instalaciju i rad, hajde da najpre pojednostavimo sam koncept – da vidimo šta SQLite zapravo jeste i po čemu se razlikuje od drugih baza.
Najlakše je da ga zamislite kao jednu svesku u kojoj beležite sve važne podatke – spisak kupaca, proizvode, porudžbine ili ocene studenata. Ta sveska je u stvari jedan jedini fajl, a SQLite je alat koji vam pomaže da te podatke uredite tako da ih lako pretražujete, ažurirate ili brišete.
Za razliku od velikih sistema baza podataka, kao što su MySQL ili PostgreSQL, koji zahtevaju server i složenu konfiguraciju, SQLite ne traži ništa od toga – samo jedan fajl i nekoliko komandi koje pokrećete.
Zbog toga ga mnogi koriste za mobilne aplikacije, desktop alate, manje web projekte, prototipe ili kao lokalnu bazu dok razvijaju aplikaciju.
Šta je SQLite?
SQLite je lagana, otvorena i potpuno samostalna baza podataka koja ne zahteva server niti ikakvu dodatnu infrastrukturu. Sve što napravite – tabele, zapise, podatke, strukturu baze – čuva se u jednoj jedinoj datoteci. Taj fajl možete da prenesete na drugi računar, pošaljete kolegi ili napravite rezervnu kopiju za par sekundi, jer celokupna baza postoji kao samostalna celina.
Za razliku od drugih sistema, SQLite ne zahteva da pokrećete poseban server ili da održavate komplikovanu instalaciju. Možete da ga koristite na svom računaru bez ikakve konfiguracije, a baza će raditi jednako dobro i kada je premestite na mobilni uređaj, Raspberry Pi, ili čak unutar veće aplikacije. Upravo zbog toga se SQLite često koristi za aplikacije kojima je potrebna lokalna baza podataka, za testne projekte i prototipe, ali i za mnoge profesionalne proizvode koji svakodnevno rade na velikom broju uređaja.
Zanimljivo je da SQLite nije samo alat za početnike – koriste ga i velike kompanije kao što su Apple, Google, Adobe i Mozilla, jer im omogućava da unutar svojih softvera imaju stabilnu i brzu bazu podataka, bez potrebe za posebnim serverima. Često ćete ga naći i u operativnim sistemima, browserima i mobilnim aplikacijama koje verovatno koristite svakodnevno.
Ako bismo to uporedili sa svakodnevnim životom, MySQL ili PostgreSQL mogli bi da se zamisle kao ogromne kancelarije sa timovima ljudi, procedurama i pravilima, gde sve funkcioniše organizovano, ali je ponekad komplikovano i zahtevno.
Zašto baš SQLite?
Glavna prednost SQLite-a je to što uklanja sve prepreke koje obično prate rad sa bazama. Ako ste ikada želeli da probate SQL, ali vas je plašila pomisao na podešavanje servera, instaliranje dodatnih alata ili administraciju, SQLite je idealno rešenje – jer sve to preskače. Dovoljno je da napravite fajl i odmah krenete da unosite podatke.
Još jedna važna prednost je što je SQLite izuzetno brz i ekonomičan kada je reč o resursima. Ne opterećuje računar ili uređaj, ne traži dodatnu memoriju niti puno prostora na disku. To znači da čak i stariji računari ili slabiji uređaji (poput mobilnih telefona i malih kontrolera) mogu lako da rade sa ovom bazom.
SQLite je posebno pogodan za:
- ljude koji tek uče SQL i žele da brzo vide rezultate svojih komandi,
- prototipe i rane verzije aplikacija, gde vam je potrebno nešto što se brzo postavlja i testira,
- aplikacije koje rade lokalno, bez stalne internet konekcije (npr. mobilne aplikacije koje čuvaju podatke na telefonu),
- manje web projekte, interne alate i sisteme.
Iako nije namenjen ogromnim sistemima u kojima hiljade korisnika istovremeno upisuju podatke, SQLite se u većini scenarija pokazuje kao idealno rešenje. Njegova jednostavnost, prenosivost i pouzdanost čine ga alatom koji štedi vreme i olakšava rad, bez gubljenja funkcionalnosti koja vam je zaista potrebna.
Kako instalirati i pokrenuti SQLite?
SQLite ne traži komplikovanu instalaciju. Evo kako ga pokrećete u tri najčešća okruženja:
Windows:
- Preuzmite sqlite alate sa zvaničnog sajta.
- Raspakujte fajlove, stavite ih u folder, recimo
C:\sqlite. - Dodajte taj folder u sistemsku putanju (environment variables).
- Sada možete pokretati SQLite iz terminala komandom
sqlite3.
macOS:
Na većini Mac računara SQLite već postoji. Proverite tako što u terminalu otkucate:
sqlite3 --version
Ako nije instaliran, možete ga dodati preko Homebrew-a:
brew install sqlite
Linux (Ubuntu/Debian):
Jedna komanda i sve je gotovo:
sudo apt update
sudo apt install sqlite3
Kada završite instalaciju, bazu pravite za par sekundi:
sqlite3 mydatabase.db
Ova komanda otvara SQLite shell i kreira fajl mydatabase.db u trenutnom direktorijumu.
Za izlazak kucate:
.quit
Osnovne SQL komande koje ćete koristiti
Sve u SQLite-u radite kroz SQL komande. Evo onih koje ćete koristiti najčešće (i koje ćemo upotrebiti u praktičnom primeru):
Kreiranje tabele:
CREATE TABLE students (
id INTEGER PRIMARY KEY,
name TEXT,
grade REAL
);
Dodavanje podataka:
INSERT INTO students (name, grade)
VALUES ('Ana', 9.5), ('Marko', 8.7), ('Jelena', 9.0);
Prikaz svih podataka:
SELECT * FROM students;
Filtriranje podataka (na primer, ocene preko 9):
SELECT * FROM students WHERE grade > 9;
Ažuriranje podataka:
UPDATE students
SET grade = 9.8
WHERE name = 'Marko';
Brisanje podataka:
DELETE FROM students
WHERE name = 'Jelena';
Brisanje cele tabele (ako vam više ne treba):
DROP TABLE students;
Prošireni praktičan primer – studenti i predmeti
Da bismo prikazali kako se SQLite koristi u malo realnijim aplikacijama, napravićemo dve povezane tabele: students i subjects.
Jedan student može da sluša više predmeta, pa ćemo to povezati odnosom 1:N.
- Otvorite terminal i pokrenite SQLite:
sqlite3 school.db
- Napravite tabelu za studente:
CREATE TABLE students (
id INTEGER PRIMARY KEY,
name TEXT,
grade REAL
);
- Napravite tabelu za predmete:
CREATE TABLE subjects (
id INTEGER PRIMARY KEY,
student_id INTEGER,
subject_name TEXT,
score REAL,
FOREIGN KEY(student_id) REFERENCES students(id)
);
- Dodajte studente:
INSERT INTO students (name, grade)
VALUES ('Ana', 9.5),
('Marko', 8.7),
('Jelena', 9.0);
- Dodajte predmete koje pohađaju studenti (povezujemo preko student_id):
INSERT INTO subjects (student_id, subject_name, score)
VALUES (1, 'Matematika', 95),
(1, 'Engleski', 88),
(2, 'Matematika', 80),
(3, 'Fizika', 92);
- Prikažite sve studente i predmete koje pohađaju (koristeći JOIN):
SELECT students.name, subjects.subject_name, subjects.score
FROM students
JOIN subjects ON students.id = subjects.student_id;
- Prikažite sve predmete koje sluša Ana:
SELECT subject_name, score
FROM subjects
WHERE student_id = 1;
- Izbrišite jedan predmet (ako student više ne sluša):
DELETE FROM subjects WHERE subject_name = 'Engleski' AND student_id = 1;
- Kada završite, izađite iz SQLite-a:
.quit
Ovo pokazuje kako lako možete da napravite jednostavne relacije (povezivanja podataka) u SQLite-u, baš kao u većim bazama, ali uz minimalan napor i bez ikakvih dodatnih servera.
Saveti da sve radi glatko
- Koristite prave tipove podataka – na primer, INTEGER za ID-jeve i brojače, TEXT za imena, REAL za ocene i cene.
- Ako često pretražujete po određenoj koloni, dodajte indeks (ali nemojte previše, jer usporava unos i ažuriranje podataka).
- Redovno pravite bekap – dovoljno je da kopirate
.dbfajl. - Ako spajate SQLite sa aplikacijama (npr. u Pythonu), uvek koristite parametrizovane upite da biste izbegli sigurnosne probleme (SQL injection).
Zaključak
Ako tek ulazite u svet baza podataka ili vam treba brzo i jednostavno rešenje za manji projekat, SQLite je idealan izbor. Ne zahteva server, ne traži posebnu konfiguraciju i u svega nekoliko minuta možete da napravite funkcionalnu bazu.
Kada savladate osnove, shvatićete da SQLite nije samo alat za početnike – već i pouzdana platforma koja se koristi u realnim aplikacijama širom sveta.
