Šta je baza podataka? Vodič za ljude koji grade aplikacije
Baza podataka je organizovano skladište informacija u koje aplikacija upisuje i iz kojeg čita — njeni korisnici, narudžbe, rezervacije, poruke. Za razliku od informacija koje su sačuvane samo u kartici preglednika, podaci u bazi ostaju nakon osvježavanja ili ponovnog pokretanja, a svi koji koriste aplikaciju vide iste zapise. Većina baza organizuje podatke u tabele, slično listovima u tabeli, ali uz stroga pravila koja drže podatke dosljednim.
Zašto je to važno kada gradite uz AI
Najčešće iznenađenje za ljude koji grade uz AI je aplikacija koja izgleda gotovo, ali zaboravlja sve. Dodate kupca, osvježite stranicu, a on je nestao. To obično znači da je aplikacija podatke držala u memoriji preglednika, a ne u bazi podataka.
Baza je i mjesto gdje žive mnoge vaše najvažnije odluke, bez obzira da li to znate:
- Šta bilježite. Ako ne čuvate status rezervacije, ne možete pokazati koje su otkazane.
- Kako se stvari povezuju. Da li jedan kupac može imati mnogo rezervacija, ili jedna rezervacija mnogo usluga, oblikuje cijelu aplikaciju.
- Ko šta može vidjeti. Većina grešaka u privatnosti tiče se toga koje zapise korisnik smije čitati.
Ne treba vam da sami dizajnirate bazu. Ali razumijevanje osnova omogućava da jasno opišete svoje podatke i rano uočite probleme.
Svakodnevna analogija
Zamislite dobro uređen ormar s dosijeima u maloj kancelariji.
Svaka fioka sadrži jednu vrstu stvari: jedna za klijente, jedna za termine, jedna za fakture. Unutar svake fioke, svaki dosije prati isti format, s istim popunjenim poljima. Svaki dosije ima jedinstveni referentni broj, a kada faktura pripada klijentu, dosije fakture navodi broj tog klijenta umjesto da kopira cijeli njegov fajl.
To je relaciona baza. Fioke su tabele, dosijei su redovi, polja su kolone, referentni brojevi su primarni ključevi, a bilješke koje upućuju na drugi dosije su strani ključevi. Dobar kancelarijski menadžer takođe provodi pravila — nema termina bez datuma, dva klijenta ne smiju imati isti broj — baš kao i baza.
Praktičan primjer: aplikacija za rezervacije u frizerskom salonu
Recimo da od AI-ja tražite sajt za rezervacije za frizerski salon. Razuman raspored baze imao bi četiri tabele.
usluge
| id | naziv | trajanje_minuta | cijena |
|---|---|---|---|
| 1 | Šišanje | 45 | 40.00 |
| 2 | Farbanje | 90 | 95.00 |
frizeri
| id | ime | |
|---|---|---|
| 1 | Sara | sara@example.com |
| 2 | Omar | omar@example.com |
klijenti
| id | ime | telefon | |
|---|---|---|---|
| 101 | Lena Park | lena@example.com | 555-0100 |
rezervacije
| id | klijent_id | usluga_id | frizer_id | pocinje_u | status |
|---|---|---|---|---|---|
| 5001 | 101 | 1 | 2 | 2026-10-03 14:00 | potvrđeno |
Pogledajte tabelu rezervacije. Ona ne kopira Leninu ime i broj telefona u svaku rezervaciju; čuva klijent_id = 101. Ako Lena promijeni broj telefona, promijeni se na jednom mjestu i svaka rezervacija prikazuje novi. To je osnovna ideja relacione baze: čuvajte svaku činjenicu jednom i povezujte se s njom.
Ista struktura odgovara na korisna pitanja:
- „Koji su termini slobodni kod Omara u petak?” — pogledajte Omarove rezervacije tog dana.
- „Koliko su farbanja zaradila ovog mjeseca?” — spojite rezervacije s uslugama i saberite cijene.
- „Koji klijenti nisu zakazali u posljednjih 90 dana?” — uporedite klijente s njihovom posljednjom rezervacijom.
Najvažniji pojmovi
| Pojam | Šta znači |
|---|---|
| Tabela | Zbirka jedne vrste zapisa, poput klijenata ili rezervacija. |
| Red (zapis) | Jedna stavka u tabeli — jedan klijent, jedna rezervacija. |
| Kolona (polje) | Jedan dio informacije koji svaki red ima, poput emaila ili cijene. |
| Primarni ključ | Jedinstveni ID za svaki red, obično broj ili nasumični niz. |
| Strani ključ | Kolona koja pokazuje na red u drugoj tabeli, poput klijent_id u rezervacijama. |
| Šema | Ukupan dizajn: koje tabele postoje, njihove kolone i kako su povezane. |
| Upit (query) | Zahtjev za čitanje ili promjenu podataka, poput „sve rezervacije za sutra”. |
| SQL | Structured Query Language, standardni jezik za upite nad relacionim bazama. |
| Migracija | Sačuvana, ponovljiva promjena šeme, poput dodavanja kolone. |
| Indeks | Struktura za pretragu koja ubrzava traženje po koloni, kao indeks u knjizi. |
| CRUD | Create, Read, Update, Delete — četiri osnovne stvari koje aplikacije rade s podacima. |
| Sigurnosna kopija | Kopija podataka koju možete vratiti ako nešto pođe po zlu. |
Vrste baza
| Vrsta | Kako čuva podatke | Primjeri | Dobra za |
|---|---|---|---|
| Relaciona (SQL) | Tabele s fiksnim kolonama i vezama među njima | Postgres, MySQL, SQLite | Većinu poslovnih aplikacija: rezervacije, prodavnice, CRM-ove, SaaS |
| Dokumentna (NoSQL) | Fleksibilni dokumenti sličnih JSON-u | MongoDB, Firestore | Podatke čiji se oblik mnogo razlikuje od zapisa do zapisa |
| Ključ-vrijednost | Vrijednost sačuvana pod ključem | Redis | Keširanje, kratkotrajni podaci poput sesija |
Za gotovo sve što osnivač ili mali biznis prvo gradi, relaciona baza je sigurna podrazumijevana opcija.
Gdje baza stoji u vašoj aplikaciji
Posjetioci nikada ne razgovaraju direktno s bazom. Stranica u njihovom pregledniku (frontend) traži podatke od vašeg servera (backend-a), obično preko API-ja. Server provjerava ko pita i da li smije, zatim upituje bazu i šalje natrag samo ono što ta osoba smije vidjeti.
Ovaj srednji korak je važan. Da preglednik može direktno upitati bazu s punim pristupom, svako bi mogao otvoriti alate za developere i pročitati sve.
Česte greške i pogrešna shvatanja
- Čuvanje podataka samo u pregledniku. Sačuvani podaci u pregledniku (poput localStorage) žive na jednom uređaju i u jednom pregledniku. Dobro su za zapamćen filter, ali ne za narudžbe.
- Sve u jednu tabelu. Jedna tabela „rezervacije” u koju se u svaki red kopiraju ime klijenta, telefon i cijena usluge brzo se razilazi.
- Čuvanje lozinki kao običnog teksta. Lozinke treba heširati, nikada ih ne čuvati čitljive. Pogledajte šta je autentifikacija.
- Bez pravila za podatke. Bez obaveznih polja i pravila jedinstvenosti dobićete rezervacije bez datuma i duple klijente.
- Zaboravljeno brisanje. Odlučite da li brisanje klijenta briše i njegove rezervacije, zadržava ih ili je zabranjeno.
- Korištenje produkcijskih podataka za eksperimente. Riskantne promjene prvo testirajte na sigurnom mjestu i čuvajte sigurnosne kopije.
- Tabela kao baza zauvijek. Tabele su odlične za početak, ali slabo podnose mnogo istovremenih korisnika i dozvole. Pogledajte kako pretvoriti tabelu u aplikaciju.
Šta tražiti od AI graditelja
- „Sačuvaj ovo u bazi podataka, a ne u pregledniku. Reci mi koje tabele ćeš napraviti.”
- „Prikaži šemu kao jednostavnu tabelu: svaka tabela, njene kolone i kako su povezane.”
- „Jedan klijent može imati mnogo rezervacija; svaka rezervacija ima tačno jednu uslugu i jednog frizera.”
- „Neka e-mail bude obavezan i jedinstven za klijente.”
- „Spriječi da se dvije rezervacije za istog frizera preklapaju.”
- „Samo prijavljeni vlasnik smije čitati sve rezervacije; klijenti vide samo svoje. Provjeri to na serveru.”
- „Kada obrišem uslugu, nemoj brisati prošle rezervacije — umjesto toga označi uslugu kao neaktivnu.”
Baze podataka na Mythex-u
Kada vaša aplikacija treba da sačuva podatke, Mythex projektu dodaje namjensku Postgres bazu — možete to zatražiti u chatu („sačuvaj prijave za listu čekanja u bazu”) ili koristiti naredbu /database. Podaci za konekciju se automatski prosljeđuju vašoj aplikaciji, a agent kreira tabele. Baza spava nakon pet minuta neaktivnosti i budi se pri sljedećem zahtjevu, a za objavljeno korištenje naplaćuje se vrijeme dok je bila budna, iz istog saldo kredita kao i izrada. Dostupna je na planovima Free i Pro. Dokumentacija o bazi pokriva detalje, a šabloni aplikacija nude početne tačke zasnovane na podacima.
Pitanja
Šta je baza podataka jednostavnim riječima?
Baza podataka je organizovano skladište informacija u koje aplikacija upisuje i iz kojeg čita, poput korisnika, narudžbi ili rezervacija. Za razliku od podataka koji su sačuvani samo u kartici preglednika, oni i dalje postoje nakon osvježavanja, ponovnog pokretanja ili kada neko otvori aplikaciju s drugog uređaja.
Da li je tabela u Excelu baza podataka?
Tabela može čuvati istu vrstu podataka, ali nije napravljena za aplikacije. Prava baza podataka primjenjuje pravila o tome šta svaka kolona sadrži, pouzdano povezuje tabele, podnosi mnogo ljudi koji istovremeno upisuju i kontroliše ko šta smije čitati.
Koja je razlika između SQL i NoSQL baza?
SQL (relacione) baze poput Postgres-a i MySQL-a čuvaju podatke u tabelama s definisanim kolonama i vezama među njima. NoSQL baze poput MongoDB-a čuvaju fleksibilnije dokumente. Većini poslovnih aplikacija — rezervacijama, CRM-ovima, prodavnicama — relacioni model odgovara dobro.
Treba li mojoj aplikaciji baza podataka?
Ako treba da pamti bilo šta što ljudi unesu — prijave, narudžbe, poruke, podešavanja — i da to kasnije prikaže ili pokaže nekom drugom, treba. Čisto informativni sajt bez formi koje čuvaju podatke obično ne treba.