Napokon su razjašnjeni neki pojmovi :)
Citat:
MarkoBalkan: jer koja je onda razlika staviti query na server i napravitii sql upit iz koda?
Kao što ti je već rečeno, razlika je u skrivanju kompleksnosti upita od aplikacije. To što si napravio VIEW na serveru čini da aplikacija ne mora da zna kako taj VIEW (odnosno SELECT ispod njega) radi. Aplikacija jednostavno poziva taj VIEW sa
Code:
SELECT ...
FROM neki_view
Da li taj view koristi 1, 5 ili 10 INNER/OUTRE JOIN-ova pri svom radu, aplikaciji nije bitno. Ona vidi samo rezultat izvršavanja.
Šta se time dobija? Modularnost, timski rad, lakša optimizacija baze,...
Ne mora nužno jedan čovek da pravi/održava i aplikaciju i bazu. Ti si bolji programer, ja sam bolji DBA.
Kada pravimo nov report samo se dogovorimo šta baza treba da isporuči programu, broj kolona, tipove podataka u kolonama, smisao samog podatka u koloni. Dalje ja pravim upit, a ti praviš report formu, formu za unos parametara izvršavanja upita. Ako sutra nije dobar font na reportu to nije moj problem, ti uzmeš report formu i izmeniš fontove. Ali ako sutra ne valja sadržaj reporta (fakture jednog kupca se prikazuju kod drugog), to više nije tvoj problem, niti išta moraš da diraš u svom programu! Na meni je da ispravim upit.
Naravno svi mi svaštarimo pa smo često i u jednoj i u drugoj ulozi. Tada nas može povesti misao: "Nije bitno gde šta radim, ionako sve radim sam!"
Pored VIEW-ova postoji i drugi (već spomenuti) način podele funkcije između programa i baze, a to je upotreba storovanih procedura. Ova dva načina ne isključuju jedan drugoga i mogu se paralelno koristiti.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming." - Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo