Baza podataka je dobro organizirana, računalno čitana najčešće relacijski povezana kolekcija podataka.
Sustavu baze podataka primarne su zadaće pohrana, integritet i interpretacija podataka.
Baze podataka pohranjuju podatke poslovanja neke organizacije i kao rezultat pohrane sadrže veliki broj podataka koje je potrebno dugoročno skladištiti.
Sve moderne baze podataka s vanjskim svijetom programom ili korisnikom ) komuniciraju pomoću SQL (Engl. Structured Query Language) jezika.
Prvu komercijalnu relacijsku bazu podataka koja koristi SQL na tržište je plasirao Oracle 1979. godine, a zvala se Oracle V2.
Korisnik (administrator baze podataka) može pristupiti preko softvera (programa) za rad sa bazama podataka.
Sustav za upravljanje bazom podataka (engl. Data Base Management System DBMS) je program za stvaranje i upravljanje bazama podataka.
DBMS korisnicima i programerima omogućuje stvaranje , preuzimanje, ažuriranje i upravljanje podacima.
Podaci u bazi su logički organizirani u skladu s nekim modelom podataka.
DBMS podržava slijedeće modele:
- Relacijski model - Zasnovan na matematičkom pojmu relacije
- Mrežni model - Baza je prikazana usmjerenim grafom
- Hijerarhijski model - Baza je prikazana jednim stablom ili skupom stabala
- Objektni model - Baza je skup trajno pohranjenih objekata koji se sastoje od svojih internih podataka i “metoda” (operacija) za rukovanje s tim podacima.
Komunikacija korisnika i DBMS a odvija se pomoću:
- Jezika za opis podataka (Data Description Language DDL).
- Služi projektantu baze ili administratoru u svrhu zapisivanja sheme ili pogleda. Tim jezikom definiramo podatke i veze među podacima
- Jezika za manipuliranje podacima (Data Manipulation Language DML).
- Služi programeru za uspostavljanje veze izmedu aplikacijskog programa i baze
- Jezik za postavljanje upita (Query Language QL).
- Služi korisniku za interaktivno pretraživanje baze
- INT - cijeli broj uobičajene veličine
- TINYINT - vrlo malen cijeli broj (raspon -128 do 127)
- SMALLINT - malen cijeli broj
- MEDIUMINT - srednje velik cijeli broj
- BIGINT - veliki cijeli broj
- FLOAT - decimalni broj s pomičnim zarezom
- DOUBLE - decimalni broj s pomičnim zarezom (dvostruka preciznost)
- DECIMAL - decimalni broj
- DATE - datum (format YYYY-MM-DD)
- DATETIME - datum i vrijeme (format YYYY-MM-DD HH:MM:SS)
- TIMESTAMP - vremenska oznaka (format YYYY-MM-DD HH:MM:SS)
- TIME - vrijeme (format HH:MM:SS)
- YEAR - godina (format YYYY ili YY)
- CHAR - niz znakova fiksne duljine (maksimalno 255)
- VARCHAR - niz znakova varijabilne duljine (također maksimalno 255)
- TEXT - tekstualni podaci
- TINYTEXT - tekstualni podaci manje veličine
- MEDIUMTEXT - tekstualni podaci srednje veličine
- LONGTEXT - veliki tekstualni podaci
- BINARY - niz bajtova fiksne duljine (do 255)
- VARBINARY - niz bajtova varijabline duljine (do 255)
- BLOB - binarni podaci (Binary Large OBject)
- TINYBLOB - binarni podaci manje veličine (do 255 bajtova)
- MEDIUMBLOB - binarni podaci srednje veličine
- LONGBLOB - veliki binarni podaci (do 4 GB)
- ENUM - enumeracija – vrijednost može biti jedna od predefiniranih vrijednosti
- SET - skup – podatak može poprimiti nijednu, jednu ili više predefiniranih vrijednosti
Najčešće korišteni tipovi podataka su INT za cijele brojeve, DOUBLE ili DECIMAL za decimalne brojeve, DATETIME za vrijeme, VARCHAR ili TEXT za znakovne nizove, te BLOB za binarne podatke.
Prilikom definicije tablice, za polja se, uz tip podatka, navodi i veličina polja. Ako se ne navede, koristi se predefinirana veličina za taj tip.
Svako polje, ako se ne definira suprotno, može poprimiti vrijednost NULL, što je posebna konstanta koja označava da polje ne sadrži podatak.
Za polja čije vrijednosti trebaju biti obavezno postavljene, potrebno je prilikom definicije navesti NOT NULL.
Također je moguće zadati predefiniranu vrijednost polja korištenjem ključne riječi DEFAULT.
Primarni ključ se postavlja navođenjem ključnih riječi PRIMARY KEY na kraju definicije polja