Šta je novo?

PL/SQL prakticna primjena

golekago

Cenjen
Učlanjen(a)
16.04.2009
Poruke
83
Poena
159
Da li neko moze da mi malo objasni kako, gdje, u kojim aplikacijama moze da se primjeni znanje PL/SQL ili samo SQL?
Sta kada napravite neku SQL skriptu, npr u SQL Developeru, dobijete .sql fajl i sta onda? Taj fajl sam po sebi nista ne znaci. Nije mi jasno kako se konkretno to moze primjeniti u kreiranju neke aplikacije, da li dekstop ili web svejedno, kako ga implementirati? Da li mora da postoji neko okruzenje, neki framework?

Hvala
 
Svuda gde ti treba baza podataka a treba ti na mnogo mesta i mnoge aplikcije kako web tako i desktop zahtevaju upotrebu, kreiranje i odrzavanje baze podataka. SQL je jezik kojim upravljas relacionim bazama podataka a to su one najpopularnije, najpoznatija od njih MySQL (MariaDB).

Druga varijanta je da drzis gomilu excel tableta/sheetova kao neki nasi drzavni organi i da ti oni imitiraju bazu podataka ali to je krajnje neprakticno i sa rastom broja podataka koje treba cuvati i obradjivati, postaje jako sporo do tacke gde postaje nemoguce. Microsoft Access je baza podataka koja stize uz Office a zasebna relaciona baza koju prodaje Microsoft je Microsoft SQL Server. Medjutim to kosta a MySQL je slobodan softver i zato ga koristimo, ili manje popularni postgreSQL.

Napravis bazu, vremenom se puni podacija, radis nesto sa tim podacima preko SQL ili nekog drugog jezika. Eto zato to sluzi. Konkretno na nekom web sajtu spisak sa registrovanim korisnicima stoji u nekoj tabeli ili vise uvezanih tabela (sto se drugacije naziva baza podataka), izvrsene transakcije se mogu cuvati u bazi itd.

Edit: Ono PL je od proceduralno, kako se nekada radilo programiranje. Danas je popularna objektno orijentisana paradigma programiranja svuda pa i u SQL programiranju. Sutra ce to biti funkcionalno programiranje, najverovatnije.
 
Poslednja izmena:
Ja ne razumem kako si ti to učio SQL a da ne znaš gde se on primenjuje i da ne znašta o bazama podataka?

Ako si učio sam, onda moraš da promeniš pristup učenja. Ako te je učio neko drugi, onda opet moraš da promeniš pristup ali i tog ko te je učio. :)
 
Poslednja izmena:
Hvala na detaljnom odgovoru.

Pa tek sam poceo da ucim Oracle bazu. Tacnije ucim njihov framework Apex, to mi je dosta privlacnje u odnosu na Access bazu. Stim da sa Apexom imam dosta vise mogucnosti, bar ja tako mislim.

Dok ucim Apex, vidim da mi treba znaje iz PL/SQL kao i samog SQL, pa sam na Udemy uplatio kurs iz te materije.
Takodje, krenuo sam ranije sa front end web kodiranjem, pa tako mislim da mi ovo znanje oko SQL ubuduce moze samo pomoci.
Nadam se da dobro rezonujem?

Imam jos jedno pitanje. Ok, razumijem, baza je potrebna svuda, da li radio web ili neku desktop aplikaciju, uvijek ce biti potrebna neka manipulacija sa podacima sto je u stvari posao SQL-a? Da li se mogu napraviti sql upiti tako da krajnji korisnik samo klikne i dobije rezultat?
 
Lepo ti kažem, pogrešno učiš.

Ne moraš da platiš ništa, ima sasvim dovoljno literature o bazama podataka u PDF-u, što na srpskom, što na engleskom.

Moraš prvo da shvatiš šta je BP i kako ona funkcioniše.
 
Da li bi mogao onda da mi proporucis ili postavis neki link literature koja bi meni odgovarala?
 
Nezahvalno je ovako procenjivati koliko neko uopšte zna o nekoj oblasti ali evo, ako sam pogrešno procenio ne zameri. :)

Rekao bih da treba da počneš od početka. Još uvek je relacioni model najzastupljeniji, pa bih ti savetovao da počneš odatle.

Koncepti, bez neke preterane teorije koja bi te za početak samo zbunila. Napravi neku bazu, a idealno za početak je baš taj MS Access koji si hteo da zaobiđeš. Recimo, ovo će da te vodi lepo korak po korak i to kroz jedan primer, bez ulaženja u teoriju, relacije i MOV (model objekti-veze) koji po meni samo zbunjuje početnike.

Shodno tome evo jednog free priručnika sa FON-a:

http://www.vps.ns.ac.rs/Materijal/mat23550.pdf

Jeste da nije link sa FON-a ali priručnik jeste. :D

Ima raznih linkova na skoro svim fakultetima i uglavnom su ta predavanja ili vežbe dostupna. Baze podataka su nezaobilazan predmet na gotovo svim fakultetima i nije teško pronaći tu literaturu.

Takođe, ja imam ovu knjigu u svojoj ličnoj biblioteci, ali ima je i na engleskom u PDF-u, pa je potraži. Ne bih da je kačim ovde, nije baš po pravilima foruma. Preskoči onaj deo za makro-e i VBA (pošto ćeš da se kasnije baviš Oracle DB).

Access 2007: uputstvo koje vam nedostaje

Original imaš da pronađeš i za verziju Access 2013: Access 2013: The Missing Manual

Ovo što pročitaš u ovim priručnicima, a ovde nema nikakve teorije, samo primeri, kasnije možeš da primeniš na bilo koji DBMS (database management system).

Može i ovo za ECDL da ti posluži, a brzo se čita:

http://itdesk.info/hr/e-edukacija/modul-5-baze-podataka/

SQL kasnije nastavi da učiš.
 
Poslednja izmena:
Slazem se da (P)MOV (eng. ER model) zbunjuje u pocetku jer je suva teorija ali ipak nije lose probati napraviti bazu "na papiru" pa to implementirati kroz program. Recimo da proba mozda da napravi jedan jednostavniji model nekog informacionog sistema. SSA za analizu i dekompoziciju elemenata koji cine realni sistem i njegovo predstavljanje kroz dijagrame tokova podataka pa neki od tih procesa gde ima neko skladiste tj. bazu podataka da uzme i konkretno napravi par tabela u novoj bazi koje ce opisivati interakciju izmedju elemenata sistema u okviru datog procesa, recimo neka biblioteka i iznamljivanje knjiga kao proces izmedju interfejsa tj. objekata koji su u interakciji tj. postoje veze izmedju njih. Te objekte prikaze preko tabela, zaglavlja polja u okviru tih tabela poveze spoljnim kljucevima onako kako su definisane veze izmedju njih na papiru i naravno postavi jedinstvene identifikatore tih tabela tj. primarne kljuceve. Pa se malo igra sa SLQ-om kroz upite za ubacivanje novih podataka, brisanje postojecih, pravljenje izvestaja, da bi video sta od toga moze a sta ne i kojim redom da bi razumeo zasto je pravio veze na papiru izmedju objekata sistema i kako se to prebacuje u realnu bazu na racunaru. Neka lajt pseudo projektovanje IS varijanta, ne mora kao za ispit jer nije za pedantno profesorko oko.

Druga, sigurno zanimljivija varijanta je da krene u realan projekat izrade web sajta koji bi koristio neku bazu korisnika, uz koriscenje citavog dijapazona alata kroz neki WAMP/LAMP paket, sto znaci i SQL i kreiranje nove baze podataka i podizanje web servera (bez preterano komplikovanih mahinacija, osnovni lokalni server), sto jednostavniji website koji podrzava rad sa bazom uz PHP-a ili cega vec (bolje da se drzi PHP-a za pocetak) onoliko koliko mora opet bez mahinacija jer je aspekat na implemetaciji baze u realan informacioni sistem predstavljen kroz web sajt koji pruza neku uslugu.

Mislim da je bolje raditi na projektima i slomiti zube nego raditi neke izolovane zadatke koji sami po sebi nemaju puno smisla. Cak ni rad sa postojecim tabelama da bi se shvatio SQL nije idealno resenje, bolje ce se nauciti kako se napravi baza od nule i realno implementira kako se inace i koristi u praksi. Citati poglavlja, pdf knjige, raditi 5-10 izdvojenih zadataka na kraju svakog poglavlja koje je Pera Peric ekspert za pisanje knjiga osmislio, sta se time postize na kraju? Ja naucio da radim zadatke iz te i te knjige. Slicno ce mu trebati da uradi mini projekat i sigurno ce nauciti raznovrsnije i upotrebljivije znanje nego da prelazi neku namenski pisanu knjigu sa zadacima iz bilo koje oblasti. Jer projekat ako radi on je ispravan, garancija ispravnosti je to sto funkcionise, moze biti manje ili vise optimizovan ali to nije bitno za pocetnika.

Bitno je uciti a da bi covek imao volje to mora biti interesantno. Neko ce reci da se to valja preci pravilno po nekoj metodologiji kako fakultetski predmeti nalazu ali to brate smara svakog kome ne treba za upis ocene u index i sticanje diplome. Moze i krivo i naopako da se krene pa da se ispravlja vremenom, zabluda je da ce znanje ostati nakrivo nasadjeno zauvek, moze koren znanja da se iscupa vremenom, nije to biljka koja raste u zemlji pa da raste u samo jednom smeru. Bitno je da se radi jer se samo treningom kroz utrosak vremena postizu rezultati.

Edit: Imam ja udzbenik/prirucnik iz predmeta Baze podataka sa Fon ali jedan pogled na obim stranica ce te odvratiti od daljeg interesovanja za baze. A zasto je obimno? Zato sto ponavlja sve prethodno nauceno kroz druge ispite gde se pominje SSA, MOV, relacioni model, to nadogradjuje, prosiruje pa se autor siri i bavi raznim granicnim slucajevima upotrebe o cemu moze da ekspert prica satima a u knjizi to povecava obim stranica ihaha. Pa zadaci pa primeri, pa jos neke istorije, dodatne teorije i eto knjige od 600-700-800-900 strana ili koliko je vec, zaboravio sam. A realno to ces i sam da prodjes kroz projekat izrade onako ucivsi dok radis umesto da progutas 800 strana necega pa si kao naucen da nesto radis nazovi pravilno.
 
Poslednja izmena:
@ old_bookmaker
Hvala na prilozenoj literaturi. Inace, pravio sam baze u Accessu prije par godina, tako da poznajem tematiku, sam postupak, od tabela, formi, upita, izvjestaja. Nisam bas usao u pricu sa SQL bez da nisam imao nikakvu predstavu o samim bazama. Ono sto me je u tom periodu odvratilo od svega toga je da nisam znao da programiram pa tako nisam mogao da radim neke kompleksnije upite, a to je ono sto bazu cini zanimljivom, po meni. Ali svakako da ce mi ovaj pdf sa FON-a dobro doci da se podsjetim jos jednom.

@ enterthevoid
Da, slazem se da je dosta bolje odmah krenuti u vatru sa nekim live projektom ali i za to trebas da imas znanje zar ne?
Jedan konkretan primjer. Evo mozete obojica da ostavite komentar.

Treba da uradim bazu za bolnicku apoteku, unos, kolicine, kretanje lijekova po odjeljenjima, izlazi, cijene, stanje itd. Inace sam zaposlen kao administrator u toj ustanovi koja ima bazu radjenu prije 20 god. i ona se pokrece u DOSu, nemam pojma u kojem programu je onda ona pisana. Sad ta baza koju ja hocu da pravim to radim iz hobija, jer volim o tome da ucim, nisu se oni sada oslonili na mene da im ja napravim program, ali ako vremenom uspijem u tome tim bolje. :)

Zato sam se odlucio za Oracle i Apex (framework, modenran gui), samim tim i SQL.Opet sve to je vjerovatno moguce uraditi nekako drugacije. Ali dosta mi je jasnije kako stvari funckonisu pa je ostalo samo da ucim, samo. :)
 
Jedan student je prošle godine kod mog kolege radio jedan spec. rad na temu IS Apotekarske ustanove u KG-u (tako nekako, ne sećam se tačno ali se to stvaro koristi u toj ustanovi) ali nisam siguran da imam digitalnu verziju istog. Ako ga pronađem (pisani dokument) u gomili koja se nalazi kod nas u kabinetu skeniraću ti šemu, pa ti možda bude od koristi. Inače, to je javno dostupan dokument i ako bi došao u našu biblioteku mogao bi isti da uzmeš na čitanje (makar u biblioteci). Javi se na PM.

Možda ti za početak ovo pomogne: http://www.vps.ns.ac.rs/Materijal/mat11087.ppt

Za apoteku imaš baš puno primera na net-u.

Ne znam kako, nemam nikakve veze s ovom školom, ali mi na Google-u uvek njihovi linkovi prvi izađu. :D

Što se tiče razvijanja aplikacije, trebalo bi prvo malo da se podsetiš kako se to radi.

Izbor platforme i arhitekture si koliko vidim završio. Inače, ona se ne bira po tome šta se tebi sviđa i šta misliš da je tebi lakše da uradiš. :)

Sledi ti definisanje strukture baze podataka, optimizacija, korisnički interfejs, ... , testiranje i na kraju implementacija. Ono što ti trebaš da sada da shvatiš je da se SQL nalazi između BP i aplikativnog dela tvog softvera. Tu pre svega imaš (grubo rečeno) nekoliko slojeva: presentation layer, buisness logic layer i data layer.

Preširoka je ovo tematika, gledaj da ne "sagoriš" čitajući sve živo ali trebalo bi da poznaješ osnovne principe. Ovo se izučava kroz nekoliko semestara, nije vezano samo za jedan predmet.
 
Poslednja izmena:
Izbor platforme i arhitekture si koliko vidim završio. Inače, ona se ne bira po tome šta se tebi sviđa i šta misliš da je tebi lakše da uradiš. :)

Meni je ovde zanimljivo kako je cvrsto odlucio da krene sa najskupljom i najkomplikovanijom opcijom :d
 
Nazad
Vrh Dno