You are on page 1of 23

INFORMACIONI SISTEMI I

BAZE PODATAKA
NASTAVNA TEMA: NASTAVNA JEDINICA:

Osnovni elementi
Tipovi podataka
upitnog jezika SQL
III/ III/ III/
1 2 3
REDNI BROJ ODELJENJE
ČASA: 64. :
III/
4

CILJ ČASA: TIP ČASA:


Upoznavanje učenika sa osnovnim tipovima
Obrada
podataka
NASTAVNE METODE: NASTAVNA OBLIK RADA:
SREDSTVA:
Verbalni Računar, projektor Frontalni

VREMENSKA ARTIKULACIJA
ČASA:
Uvodni deo: 10 min Glavni deo: 25 min Završni deo: 10 min
Sadržaj kolona i osnovni tipovi podataka

 Svaka kolona unutar bilo koje tabele bilo koje baze podataka mora biti homogena
(svi podaci u jednoj koloni moraju biti u skladu sa definisanim formatom).
 To znači da u svim poljima jedne kolone moraju biti podaci istog tipa.
 Osnovni tipovi podataka koji se mogu sresti unutar MySQL sistema za upravljanje
bazom podataka su:
 Numerički;
 Znakovni (tekstualni);
 Datumsko/vremenski.
Numerički tipovi podataka
 Numerički tipovi se koriste za skladištenje brojeva.
 Osnovni predstavnici ovog tipa podataka su:
 INTEGER;
 FLOAT;
 DOUBLE,
 DECIMAL;
 itd.
 Svaki od ovih tipova ima sopstvene karakteristike koje im daju određenu prednost pri
primeni u samim bazama podataka, zavisno od namene.
 Za numeričke tipove može se zadati ukupan broj cifara kojim se prikazuje broj – M.
Npr. INT(M), što znači da ti celi brojvi mogu imati maksimalno M cifara. Ako je za
neku kolonu definisano INT(3) to obuhvata sve cele brojeve od -999 do 999.
 Za tipove sa pokretnim ili nepokretnim zarezom, zadaje se i drugi parametar D i
predstavlja broj decimalnih mesta. Vrednosti tih parametara zadaju se iza deklaracije
tipa podatka; na primer:
plata DECIMAL(10, 2) ova komanda omogućava prikazivanje vrednosti sa
ukupno 10 cifara i dva decimalna mesta.
Numerički tipovi podataka

 Možete se opredeliti da ne zadate nijedan od ovih parametara, ili možete zadati


samo ukupnu širinu za prikazivanje, ili i širinu i broj decimala.
 Uz numeričke tipove podataka se takođe mogu zadati rezervisane reči UNSIGNED
i ZEROFILL.
 Rezervisana reč UNSIGNED znači da kolona može sadržati samo nule ili pozitivne
vrednosti.
 Rezervisana reč ZEROFILL znači da će se vrednosti iz kolone prikazivati s vodećim
nulama.
Tip INTEGER i varijante

 Sa ovim tipom ste se već upoznali u programiranju.


 Veoma slične osobine ima i pri korišćenju u relacionim bazama podataka.
 To je standardni tp za celo brojne vrednosti, koje se smeštaju u četiri bajta, što
daje 232 moguće vrednosti. Tip INT ima nekoliko varijanti:
 TINYINT – zauziam jedan bajt (28 mogućnosti). Rezervisane reči BIT I
BLOB su sinonimi za TINYINT.
 SMALLINT - zauzima dva bajta (216 mogućih vrednosti).
 MEDIUMINT - zauzima tri bajta (224 mogućih vrednosti).
 BIGINT - zauzima osam bajtova (264 mogućih vrednosti).
 Primeri vrednosti za tip INTEGER: 0, 245672, 12, 98, 7653830, itd.
Tip INTEGER
Brojevi u pokretnom zarezu

 Predstavljaju se pomoću osnove β (koja je uvek parna) i preciznosti p.


 Primer:
• β=10, p=4: broj 0.0578639874 se predstavlja kao 5.786×10−2
• β=10, p=4:
broj broj 564 100 000 se predstavlja kao 5.641×108
• β=10, p=4:
broj broj 564 199 999 se predstavlja kao 5.641×108
Sa zadatom preciznošću oba broja se predstavljaju isto iako je razlika izmedju ova
dva broja 99 999 (564 199 999 – 564 100 000)
Tip FLOAT
 Tip FLOAT je namenjen za rad sa brojevima sa pokretnim zarezom.
 Može predstavljati pozitivan broj u opsegu od 1.18 x 10-38 do 3.40 x 1038 i sličan
opseg negativnih brojeva.
 Odgovarajući format zadavanja ovog tipa jeste: FLOAT(M,D), gde je M ukupan
broj cifara, D broj decimalnih cifara.
 U nekim slučajevima nije potrebno navoditi dužinu i broj decimalnih mesta, jer je
default vrednost FLOAT(10,2), gde je broj decimalnih mesta 2, a ukupan broj
cifara je 10 (uključujući i decimale).
 Ako se M i D izostave vrednosti se smeštaju u skladu sa hardverskim
ograničenjima.
 Broj sa pokretnim zarezom jednostruke preciznosti je tačan do približno 7
decimalnih mesta.
 Korišćenje ovog tipa podataka može dovesti do neočekivanih problema pošto se
sva izračunavanja u MySQL-u rade sa dvostrukom preciznošću.
 Primeri: 1.00, 2.546, 233758.25, 3470672943.137576097, itd.
Tip DOUBLE

 Ovaj tip je namenjen brojevima s pokretnim zarezom dvostruke preciznost.


 Sinonimi za DOUBLE su REAL i DOUBLE PRECISION.
 Mogu predstavljati pozitivan broj u opsegu od 2.23 x 10-308 do 1.80 x 10308 i sličan
opseg negativnih brojeva.
 Definicija ovog tipa podataka se vrši na sledeći način: DOUBLE(M,D), gde je M
ukupan broj cifara, a D broj decimalnih mesta.
 Default vrednost za dužinu i broj decimalnih mesta jeste DOUBLE(16,4).
 Decimalna preciznost za ovaj tip podatka može biti od 24 do 53.
 Korisiti se 8 B.
Tip DECIMAL

 Za razliku od aproksimativnih, precizni numerički tipovi su tip INTEGER i njegove


varijante i DECIMAL.
 DECIMAL se može skratiti na DEC.
 Ovi tipovi omogućavaju čuvanje tačnih vrednosti s fiksnim zarezom i obično se
koriste za rad s novčanim vrednostima.
 DECIMAL[(M,D)]Broj sa fiksnim zarezom. M je ukupan broj cifara (preciznost), a D
je broj cifara iza decimalne tačke (the scale). Decimalna tačka i (za negativne
brojeve) znak – se ne računaju u M. Ako je D jednako nuli brojevi nemaju
decimalnu tačku i razlomljeni deo.
 Maksimalan ukupan broj cifara (M) za ovaj tip podataka je 65. Maksimalan broj
cifara iza decimalne tačke (D) za ovaj tip podataka je 30. Ako se D izostavi,
podrazumevana vrednost je 0. Ako se M izostavi, podrazumevana vrednost je 10.
 Sva osnovna izračunavanja (+, -, *, /) sa ovim tipom podataka se rade sa
preciznošću od 65 cifara.
Znakovni i tekstualni tipovi podataka.

 U okviru većine baza podataka nije dovoljno samo čuvati numeričke tipove
podataka, već je potrebno čuvati podatke koji sadrže alfanumeričke karaktere.
 MySQL podržava više znakovnih i tekstualnih tipova podataka. Osnovni tekstualni
tipovi su
 CHAR,
 VARCHAR,
 TEXT, BLOB,
 ENUM,
 SET.
 Svaki od ovih tipova ćemo zasebno opisati.
CHAR

 Tip CHAR omogućava skladištenje znakovnih vrednosti fiksne dužine.


 Maksimalna dužina podatka tipa CHAR je 255 znakova.
 Kada se podatak tipa CHAR upiše u kolonu tabele, on uvek ima dužinu koja mu je
zadata u definiciji kolone. To se postiže dopunjavanjem podataka u koloni
razmacima.
 Ti razmaci se automatski uklanjanju pri učitavanju podatka iz kolone tipa CHAR.
 Ovaj tip se definiše na sledeći način: CHAR(D), gde je D maksimalna dužina
stringa(teksta) koji me moguće uneti u kolonu (CHAR(30)).
CHAR

 Očigledno je da podaci tipa CHAR zauzimaju više prostora na disku od


ekviivalentnih znakovnih vrednosti promenljive dužine.
 Prednost im je to što se podaci brže učitavaju iz tabele čije su sve kolone fiksne
širine (tj. CHAR, numerički ili date).
 Bududući da je brzina učitavanja podataka često važnija od prostora koji oni
zauzimaju na disku, možda ćete se opredeli ti da tekstualna polja u kojima se
vrednosti ne razlikuju mnogo po dužini deklarišete kao CHAR da biste (malo)
optimizovali sistem.
 Ispred deklaracija tipa CHAR može se dodati rezervisana reč NATIONAL, što znači
da želite da ograničite sadržaj na standardni skup znakova.
 Pošto se ova opcija podrazumeva u MySQL-u, korisna je samo ako vam je
potrebna kompatibilnost između različitih platformi.
 Default vrednost je CHAR(1)
VARCHAR

 Tip VARCHAR omogućava skladištenje znakovnih nizova promenljlve dužine.


 Dužinaa podataka zadaje se između zagrada iza imena tipa, na primer, VARCHAR
(30).
 Opseg mogućih vrednosti je od 0 do 21846.
 Za razliku od tipa CHAR, tip VARCHAR nema fiksnu dužinu, tj. ukoliko se ne ispuni
cela dužina podatka koja je definisana, ona se neće popunjavati praznim
karakterima do ispunjenja dužine (kao što je slučaj kod tipa CHAR).
 Deklaracijama tipova CHAR i VARCHAR može slediti rezervisana reč BINARY što
znači da se pri poređenju znakovnih vrednosti pravi razlika između malih i velikih
slova.
 Podrazumevani način poređenja je da se ta razlika ne pravi.
Tipovi TEXT, BLOB

 Tip TEXT omogućava skladištenje tekstualnih podataka dužih od onog što može
da stane u tipove CHAR i VARCHAR.
 BLOB je skraćenica za Binary Large OBject (veliki binarni objekat). BLOB smešta
binarne podatke koji čuvaju bilo šta na primer slike, zvuk, film i slično.
 Ovi tipovi se međusobno ni po čemu ne razlikuju, jedino je BLOB namenjen
čuvanju binarnih a ne tekstualnih podataka.
 Pri poređenju podataka tipa BLOB pravi se razlika između malih i velikih slova,
dok se to ne čini pri poređenju podataka tipa TEXT. Oba tipa su promenljive
dužine i za oba postoje varijante razmh veličina:
 Tip TINYTEXT i TINYBLOB mogu sadržati najviše 255 (28-1) znakova ili
bajtova.
 Tip TEXT i BLOB može sadržati najviše 65,535 (216-1) znakova ili bajtova
(64KB).
 MEDIUMTEXT i MEDIUMBLOB – 16,772,215 (224-1) znakova ili bajtova (16
MB).
 LONGTEXT i LONGBLOB – 4,294,967,295 (232-1) znakova ili bajtova (4 GB).
Tip ENUM i SET

 Tip podataka ENUM omogućava da zadate listu mogućih vrednosti.


 Kolona tabele može sadržati jednu vrednost iz nabrojanog skupa mogućih.
 Tip podataka ENUM deklariše se na sledeći način:
Ime_kolone enum (vrednost1, vrednost2,..., vrednost n)
 Primer: pol ENUM (‘m’ , ’ž’).
 Tip SET je sličan tipu ENUM, sa tom razlikom što kolone u redovima tabele mogu
sadržati i više vrednosti iz nabrojanog skupa mogućih.
Datumski i vremenski tipovi podataka

 Svaki moderan sistem za upravljanje bazom podataka bi trebao da obezbedi rad i


manipulisanje sa datumskim i vremenskim tipovima podataka.
 Važnost ovih tipova podataka su veoma veliki za bilo koju ozbiljniju bazu.
 Jedna od najvećih primena ovog tipa podataka jeste dobijanje izveštaja u određenim
vremenskim periodima.
 Neke od mogućnosti jesu:
 Dobijanje finansijskog izveštaja za određenu godinu, kvartal, mesec, dan, itd.
 Izvođenje različitih statističkih podataka;
 Praćenje rasta količine podataka u bazi, itd.
 Neki od datumskih i vremenskih formata koje MySQL podržava jesu:
 DATE
 TIME
 DATETIME
 TIMESTAMP
 YEAR.
Tip DATE

 Tip DATE omogućava skladištenje datuma.


 MySQL očekuje da datum bude u ISO redosledu godina-mesec-dan, čime se
izbegavaju problemi usled različitih formata datuma sa obe strane Atlantika.
 Datumi se prikazuju u formatu GGGG-MM-DD.
 Većina modernih DBMS omogućava promenu formata datuma, u skladu sa
poslovnim potrebama i geografskim položajem.
 DATE može uzimati vrednosti između 1000-01-01 i 9999-12-31.
 Na primer, 30. decembar 1973. godine bi imao sledeći format:
1973-12-30
Tip TIME

 Ovaj tip omogućava skladištenje podataka koji predstavljaju vreme, koje se


prikazuje u formatu HH:MM:SS.
 Format može biti i HHH:MM:SS
 Broj sati može biti toliko veliki iz razloga zato što TIME tip ne mora biti korišćen
samo da bi prezentovao vreme dana, već se može koristiti i za merenje vremena
između,npr., neka dva događaja koja se ne nalaze u istom danu, mesecu, pa čak
ni godini.
 TIME tip podatka može uzimati vrednosti u intervalu: -838:59:59 – 838:59:59.
 Primer: 21:25:45.
DATETIME i YEAR tip

 DATETIME tip služi za kombinaciju vrednosti prethodna dva tipa.


 Koristi se u formatu YYYY:MM:DD HH:MM:SS.
 Može uzimati vrednosti u opsegu :
1000-01-01 00:00:00 - 9999-12-31 23:59:59.
 Primer: 15:30, 30. Decembar 1973. godine bi bio u sledećem formatu:
1973-12-30 15:30:00
 YEAR tip omogućava skladištenje podataka koji predstavljaju godine. Kada
deklarišete kolonu ovog tipa, može se zadati YEAR ( 2) ili YEAR ( 4) da bi se zadao
broj cifara godine. Ukoliko se izostavi širina (broj u zagradi) podrazumeva se
YEAR(4).
 YEAR (2) format predstavlja opseg godina od 1970. do 2069.
TIMESTAMP

 Ovo je koristan tip podataka za kolone tabele. Ako se u određenom redu ne zada
ta vrednost za kolonu ovog tipa, ili se zadata NULL vrednost, u kolonu se upisuje
vreme kada je red dodat ili kada je poslednji put izmenjen sadržaj reda.
 Kada se učita podatak ovog tipa, on će biti prikazan u istom formatu kao i tip
DATETIME.
 Može uzimati vrednosti od 1970-01-01 00:00:01, do 2038-01-19 03:14:07.
Predmetni profesor Elizabeta Momčilović

You might also like