Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini...

15
Napredno web programiranje web programiranje

Transcript of Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini...

Page 1: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Napredno web programiranjeweb programiranje

Page 2: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Zend Technologies

Page 3: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Termini koje treba razumetiDatabaseTableColumnKeyIndexPrimary keyy yForeign keyReferential IntegritySortinggGroupingAggregate functionsTransactionEscaping

Page 4: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Tehnike koje treba savladatiCreating tablesDesigning and optimizing indicesI i   d d l i  dInserting and deleting dataSelecting data from tablesSorting result setsSorting result setsGrouping and aggregating dataUsing transactionsUsing transactionsEscaping user inputManaging dates

Page 5: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Baze podatakaModerne baze podataka (Database management systems) DBMS podrazumevaju relacioni model organizacijeBaza podataka se sastoji od tabelaBaza podataka se sastoji od tabelaU tabelama se nalaze zapisi (redovi)Svaki od redova ima koloneSvaki od redova ima koloneSvakako kolona ima tip podatakaPostoji veliki broj tipova podataka, od kojih su neki j j p p jzajednički za sve, a neki su karakteristični za neke baze podataka

Page 6: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

IndeksiIndeksi su osnovni element u kontekstu kreiranja relacionog modelaIndeks predstavlja mogućnost dodele jedinstvane vredosti Indeks predstavlja mogućnost dodele jedinstvane vredosti celom zapisu, i povezivanje sa drugim tabelamaNačin korišćenje indeksa može uticati na brzinu rada baze podatakapodatakaPreporuke:

Ukoliko se upitom dohvata sadržaj tri kolone, maksimalne f k k l dperformanse su ako te tri kolone imaju isti index

Brz upit ne mora biti optimalan, jer možda radi sa malom količinom podatakaTreba koristiti alate koje pružaju  baze podataka za praćenje serverske aktivnosti. Na taj način se može pratiti svaki upit.

Page 7: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Primarni ključPoseban tip indeksa je primarni ključPrimarni ključ nikada ne sme biti NULL i mora biti jedinstven za konkretnu tabelujedinstven za konkretnu tabeluPrimarnim ključem može se na jedinstven način izvršiti selekcija odreženog zapisaj g p

Page 8: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Strani ključStrani ključ je kolona u jednoj tabeli koja referencira kolonu u drugoj tabeliR l i i  d l j   i li  b    klj čRalacioni model je nezamisliv bez stranog ključaStrani ključ je ključan za obezbeđivanje referentialintegrity(podaci iz više tabela  koji su međusobno integrity(podaci iz više tabela, koji su međusobno povezani, su “samo održivi”)

Page 9: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Kreiranje tabele i rad sa redovima

INSERT [INTO] table_name[(column1[  column2[  column]])]

CREATE TABLE table_name(

[(column1[, column2[, column]])]VALUES(value1[, value2[, valuen]])

Column1 datatype[,Column2 datatype[,...]] DELETE [FROM] table name...]])

DELETE [FROM] table_name

DELETE FROM my tableDELETE FROM my_tableWHERE user_name = ‘Daniel’

Page 10: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

SelekcijaSelect *From my_table

l l l bSelect column_a, column_bFrom my_table

S l t  l   l bSelect column_a, column_bFrom my_tableWhere column_a > 10 and column_b <> ‘Daniel’

Select *From table1 inner join table2 on table1.id = table2.id

Select *From table1 left outer join table2 on table1.id = table2.id

Page 11: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Agregatne funkcijeSELECT *From my tableFrom my_tableGroup by column_a

Select sum(column b)Select sum(column_b)From my_tableGroup by column_a

MIN() i MAX()

Page 12: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

SortiranjeSelect *From my_tabley_Order by column_a, column_b DESC

Selekcija se vrši po koloni a u rastućem redosledu. Samo ukoliko u koloni a imaju dva ili više zapisa sa istim sadržajem  onda se unutar njih dodatno vrši istim sadržajem, onda se unutar njih dodatno vrši drugi nivo selekcije na bazi podataka u koloni b, u opadajućem redosledu.

Page 13: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

TransakcijeTransakcija je skup SQL komandi, koje se tumače kao jedinstven paket, koji se može opozvati u bilo kom trenutkuTransakcija se koristi kada se mora obezbediti da više različitih jupita mora biti realizovano, ili se poništiti uticaj dela onih upita koji su realizovani, ako nisu svi realizovani

BEGIN TRANSACTION(Your data‐altering instructions here)[COMMIT TRANSACTION | ROLLBACK TRANSACTION]

Ako se na kraju transakcije dobije COMMIT TRANSACTION sve promene upita koji su definisani će se primeniti na bazu podaka. U suprotnom izvršava se ROLLBACK TRANSACTION i sve promene U suprotnom izvršava se ROLLBACK TRANSACTION i sve promene u bazi se odbacuju.

Page 14: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Zend Technologies

Page 15: Napredno web programiranje - webdizajn.ict.edu.rs · web programiranje. Zend Technologies. Termini koje treba razumeti yDatabase yTable yColumn yKey yIndex yPrimary key yForeign key

Napredno web programiranjeweb programiranje