|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
19.2.2011, 14:43 | #1 |
Član
Član od: 15.12.2009.
Poruke: 83
Zahvalnice: 3
Zahvaljeno 3 puta na 3 poruka
|
SQL baze podataka
Posto nema ni jedne teme koja se bavi konkretno bazama podataka, odlucio sam da postavim ovu, a izabrao sam bas SQL zato sto je trenutno najzastupljeniji, a i mnogi veliki programi koriste SQL server i bazu podataka.
A svi znamo da su baze podataka deo svakog kvalitetnog programa i da svako ko se ozbiljno bavi programiranjem zna i rad sa bazama podataka. Cilj ove teme je da pomogne svakome ko zeli da nauci rad sa bazama podataka, SQL. Bilo da su totalni pocetnici ili vec poseduju znanje. Predlozi, saveti, pitanja, literatura, linkovi...sve je dobrodoslo. |
Sledeći korisnik se zahvaljuje korisniku fasty na korisnoj poruci: | ||
JovanNk (21.1.2014) |
19.2.2011, 16:16 | #2 |
Banned
|
Re: SQL baze podataka
Evo ja bas juce poceo na faksu da radim SQL, i poceli smo raditi upite (zadatke) - i onako mi ..zanimljivo bilo
|
19.2.2011, 18:35 | #3 |
Član
Član od: 15.12.2009.
Poruke: 83
Zahvalnice: 3
Zahvaljeno 3 puta na 3 poruka
|
Re: SQL baze podataka
Pa eto, toliko pricamo o programiranju a retko spominjemo baze podataka...pa reko' ajd' da pokrenem malo i diskusije na tu temu...
|
19.2.2011, 19:28 | #4 | |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: SQL baze podataka
Ok. Sa pitanjima:
1. Sta znaci SQL? 2. Sta je prednost SQL-a u odnosu na druge? 3. Sta je baza podataka (u ovom kontekstu)? Citat:
|
|
19.2.2011, 20:03 | #5 |
Starosedelac
Član od: 14.3.2009.
Poruke: 1.200
Zahvalnice: 207
Zahvaljeno 276 puta na 179 poruka
|
Re: SQL baze podataka
1. Structured Query Language - u slobodnom prevodu jezik za strukturisane upite.
SQL je jezik za rad sa relacionim modelom baza podataka iliti realcionim bazama. Relacioni model je najrasprostranjeniji model danas za upravljane bazama podataka. Najprostije receno realcioni model bi predstavljao podatke organizovane u logickim skupovima i relacije(veze) izmedju njih. Pored realcionog modela koji koristi Sql postoje jos dva bitnija modela baza podataka: model objekti-veze i objektni model. Oracle kompanija (dzin) ima database jezik Oracle database koji koristi model objekti-veze. Bicu slobodan pa cu izjaviti da su dva glavna igraca u svetu baza podataka Sql i Oracle database. |
Sledeći korisnik se zahvaljuje korisniku Markonije na korisnoj poruci: | ||
Belphegor (19.2.2011) |
19.2.2011, 20:20 | #6 |
Član
Član od: 15.12.2009.
Poruke: 83
Zahvalnice: 3
Zahvaljeno 3 puta na 3 poruka
|
Re: SQL baze podataka
1. SQL znaci Structured Query Language (jezik za strukturisane upite)... Tj kompjuterski jezik koji se odnosi na rad sa bazama podataka i njihovo upravljanje (uredjivanje, kreiranje, brisanje) i pomocu koga se baze podataka povezuju sa drugim programskim jezicima.
2. Za prednosti se nadam da ce da se javi neko ko je vec vise upoznat sa SQL... Ali iz razgovora sa covekom koji se profesionalno bavi programiranjem i stvarno zna znanje, zakljucio sam da je SQL mozda trenutno jedan od laksih i najpogodnih za rad...noramalno, ko se razume njemu je mnogo lako, nama koji ucimo i nije bas toliko... 3. Uopsteno, baza podataka je organizovana zbirka podataka (uglavnom u tabelama)... A kod softwera bi trebalo da se odnosi na sistem upravljanja bazama podataka. Znaci ne samo da pruza bazu podataka vec i upravljanje istom... Baze podataka su pozeljna metoda pravljenja velikih multikorisnickih aplikacija gde je potrebna koordinacija izmedju mnogo korisnika. A evo i primera nekih osnovnih komandi: INSERT - dodaje redove u postojecu tabelu Kod:
INSERT INTO My_table (polje1, polje2, polje3) VALUES ('test', 'N', NULL); UPDATE - menja vec postojece redove u tabeli Kod:
UPDATE My_table SET polje1 = 'updated value' WHERE polje2 = 'N'; CREATE - kreira objekat (npr tabelu) u bazi podataka Kod:
CREATE TABLE My_table( polje1 INT, polje2 VARCHAR(50), polje3 DATE NOT NULL, PRIMARY KEY (my_field1, my_field2) ); DROP - brise objekat iz baze podataka Kod:
DROP TABLE My_table; Ima naravno jos dosta toga ali bilo bi previse da sada pisem sve...a i ja tek ucim SQL tako da se jos uvek upoznajem sa svim tim... |
Sledeći korisnik se zahvaljuje korisniku fasty na korisnoj poruci: | ||
Belphegor (19.2.2011) |
19.2.2011, 20:39 | #7 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: SQL baze podataka
Hvala obojici na objasnjenju.
Znaci, to mu dodje kao neki script jezik? Koji se program koristi koji pokrece ovo ili se mozda kompajlira u binarnu formu? Koji IDE se moze koristiti za SQL? Po kodu koji postovao izgleda veoma prosto, a mnogo me asocira/potseca na tabele u Excel-u. |
19.2.2011, 22:42 | #9 | |
Starosedelac
Član od: 8.4.2006.
Lokacija: Beograd
Poruke: 2.589
Zahvalnice: 916
Zahvaljeno 584 puta na 363 poruka
|
Re: SQL baze podataka
Malo ste temu krenuli od sredine, a gde je neko dizajniranje baze ... nemozes samo tako da pravis upite kad ne znas neka osnovna pravila da dizajniras pravilnu bazu podataka.
1. Structured Query Language (vise http://en.wikipedia.org/wiki/SQL) 2. Hmmm prednost, u odnosu na koje druge. Pa efikasnot, standardizacija , vise razlicitih tipova aplikacija lako se kace na jedna tip baze. 3. U ovo kontekstu to je relaciona baza, tj. podaci se grupisu u fizicke celine tj. tabele izmedju kojih postoji relacije, znaci nije to gomila nabacanih redova i sad se ti snalazi. Solidan primer ima ovde, http://www.w3schools.com/sql/sql_syntax.asp mada tu je primer koji ima samo jednu tabelu , i jedan SELECT upit koji vraca sve to iz baze , ali sustina je da se podaci izvlaciti iz vise tabela filtrirati po odredjenim pravilima, i cak po nekim jednostavnim proracunima (SUM, AVG, MIN , MAX itd.); Same baze podataka prakticno nisu nesto teske za shvatanje, cak i najtezi SQL upiti lako se shvataju, najtezi deo je mozda dizajniranje dobre baza podataka gde ce se izbeci redudansa tj. unosenje duplikata sto je i jos jedna uloga baza podataka, sprecavanje duplikata. EDIT: Citat:
Poslednja ispravka: zokocx (19.2.2011 u 22:46) Razlog: Covece kad me preteknu |
|
Sledeći korisnik se zahvaljuje korisniku zokocx na korisnoj poruci: | ||
Belphegor (19.2.2011) |
19.2.2011, 22:51 | #10 | |
V.I.P. Programiranje
|
Re: SQL baze podataka
Citat:
Kod:
SELECT * FROM ucenici WHERE razred=8 PHP kod:
Naravno, ovaj kôd radi pod uslovom da smo ranije uspostavili konekciju ka mysql serveru i da na tom serveru postoji tabela 'ucenici' sa poljima koje smo koristili (razred, ime, ...). Pozdrav, nadam se da sam ti razjasnio. @ostali, ako sam negde pogrešio, ispravite me, dugo nisam raido u PHP-u i SQL-u I da, naravno, SQL serveru možeš da pošalješ upit iz bilo kog programskog jezika koji ima biblioteke za to Postoji i besplatan lokalni SQL engine SQLite za C, koji koriste mnogi softverski paketi, na primer Visual Studio za neke unutrašnje podatke i Firefox za podatke o korisniku. |
|
Sledeći korisnik se zahvaljuje korisniku Geomaster na korisnoj poruci: | ||
Belphegor (19.2.2011) |
19.2.2011, 23:17 | #11 | ||
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: SQL baze podataka
@zokocx
Citat:
S' obzirom da ranije nisam bio upoznat oko SQL-a a mislim da su moja pitanja isla pravim redosledom, konkretno sta je to i cemu sluzi. @Geomaster Citat:
Sad lupam, pseudo (php): Kod:
SQLParser parser("Komande.sql"); $sql = parser.getSpecificCommand();// "SELECT * FROM ucenici WHERE razred=8"; $result = mysql_query($sql); // ovo će izvršiti upit i vratiti rezultat while ($row = mysql_fetch_assoc($result)) // mysql_fetch_assoc će vratiti sledeći red iz promenljive $result kao asocijativni niz { $razred = $row['razred']; // $razred će uvek biti 8 pošto je to bio zahtev koji smo poslali MySQL-u $ime = $row['ime']; |
||
19.2.2011, 23:21 | #12 | |
Član
Član od: 15.12.2009.
Poruke: 83
Zahvalnice: 3
Zahvaljeno 3 puta na 3 poruka
|
Re: SQL baze podataka
@Belphegor
Citat:
|
|
19.2.2011, 23:32 | #13 |
V.I.P. Programiranje
|
Re: SQL baze podataka
Da, po tome jeste, ali jednostavno nema tu formu skripting jezika, nije aktivan i nemaš neku slobodu, kao što mu ime kaže to je query language odnosno jezik kojim zadaješ upite bazi podataka, da li je to skripting jezik ili ne zavisi samo od terminologije.
|
20.2.2011, 0:13 | #14 |
Ad Ministrator
Član od: 19.8.2005.
Lokacija: Beograd, SK
Poruke: 7.280
Zahvalnice: 29
Zahvaljeno 3.041 puta na 1.544 poruka
|
Re: SQL baze podataka
Pa, zamisli da te neko ko nema pojma sa životom pita šta je to Internet.
Koliko bi samo imao problema samo da smisliš od čega da počneš! U ovom slučaju, morao bi da pođeš od onog "čemu sve to", tj. od pojma relacionih baza podataka. Zvuči strašno, zar ne? Ali, siguran sam da ti u stvari otprilike znaš šta su relacione baze podataka. Kao primer možeš da uzmeš gomiletinu kartona u domu zdravlja. Tu si ti neki standardizovani podaci (broj kartona, ime, prezime, adresa, ime roditelja, podaci o urođenim bolestima i alergijama i podaci o lečenju). Ti podaci su uređeni (dakle, složeni na neki način, recimo po broju kartona), na neki način su povezani (recimo, imaš jednu kartoteku za školski dispanzer, pa se deli na škole i odeljenja). Podaci su i u nekom odnosu (relaciji) jedan prema drugom, recimo, ako si u tom i tom razredu trebalo bi da si primio te i te vakcine i slično. Postoje i relacije značajne za neku vrstu sortiranja. Recimo, po broju kartona ili po razredu/godištu ili, u okviru toga, po odeljenjima. Ono što baš ne možeš da izvedeš sa papirnom bazom jesu razne vrste pretraživanja i sortiranja. Recimo, "nađi mi sve učenike drugog razreda, te i te škole, koji nisu primili tu i tu vakcinu, a alergični su na penicilin i to mi sortiraj azbučno po broju odeljenja, prezimenu i datumu poslednjeg pregleda". Zamisli sad, za razliku od papirne kartoteke, da sve to imaš na računaru. Za pregledanje ti je, naravno, zgodan prikaz kao u kartonu, ali za skladištenje baš i nije. Skladištenje baza na računaru je u obliku takozvanih tabela. Prosto rečeno, ako u jednoj tabeli nanižeš sve podatke iz jednog kartona s jednim brojem, to ti je jedan red u tabeli, a različiti podaci (broj kartona, ime, prezime...) su različita polja u toj tabeli. To ti je osnova svega. Zatim dolazi pojam RDBMS iliti sistem za upraljvanje relacionim bazama podataka (Relation Database Management System). Čovek bi rekao, kad mu se objasni onako prosto kao što sam ja tebi, da tu nema šta preterano da se "upravlja". Ali zamisli za početak samo probleme koji mogu da nastanu kada jednoj bazi na kompjuteru treba da pristupa više korisnika (ili se u sobi sa medicinskim kartonima vrzma mnogo medicinskih sestara, sudarajući se). Mora se obezbediti da ne dolazi ni do kakvog sudaranja, da se u slučaju nekog problema (recimo, pucanja veze usred nekog upisivanja ili brisanja) ne oštete podaci u bazi, da se rad što manje uspori kada mnogo korisnika pristupa istovremeno, da se baza povremeno održava, tj. da se fizički briše ono što je označeno kao obrisano i slično. Time se bavi RDBMS. Naravno, uloga mu je i da "ispunjava želje" korisnika, tj. da izvršava komande koje oni zadaju. Na kraju dolazi ono što je ovde početo "iz sredine" - sama manipulacija bazom. Ti bazu uglavnom koristiš za dve stvari: da u njoj nešto pronađeš i da to nešto prikažeš na zgodan način. Za to se koristi skript jezik koji može da se razlikuje od jednog do drugog RDBMS-a (recimo, Oracle i SQL), ali, recimo, svi koji imaju u imenu SQL koriste manje-više iste komande, a razlikuju se neke finese i naprednije mogućnosti. Jedan od poznatijih "programskih jezika", nastao davno, zove se SQL (Structured Query Language) i on je osnova za sve slične jezikekoji se danas koriste. Sastoji se iz komandi koje se engleski zovu query (čita se kveri i znači, otprilike, upit). Šta je sve moguće uraditi pretpostavljam da su ti drugi već objasnili. Specifičnost ovih komandi je u tome što se mogu zadavati iz nekih alata za pristup bazi, shella na Unix/Linux sistemima, komandne linije na Windows sistemima i slično, ali i iz raznih programskih jezika koji često imaju i neku vrstu podrške za neki od popularnih RDBMS-ova, recimo MySQL. To ti otprilike osnova o bazama podataka na računaru, a dalje ti vidi da li je u pitanju stvar koja te zanima i možeš li je nekako korisno upotrebiti. Poslednja ispravka: VojaM (20.2.2011 u 0:26) |
20.2.2011, 0:32 | #15 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: SQL baze podataka
Hvala na iscrpnom objasnjenju.
Sto se tice SQL-a imam neku "sliku" sta u stvari predstavljaju baze podataka, sama rec "relacione baze" znaci da su neki rodjaci (grubo prevedeno relatives) u pitanju, odnosno imaju neka zajednicka (common) svojstva koja se mogu sortirati/klasifikovati. Kad sam pitao "kako od sredine?" mislio sam da se odnosi na mene, posto neznam koji su osnovni postupci sa kojima se radi sa SQL-om i kako to sve funkcionise. |
20.2.2011, 0:47 | #16 |
Član
Član od: 15.12.2009.
Poruke: 83
Zahvalnice: 3
Zahvaljeno 3 puta na 3 poruka
|
Re: SQL baze podataka
Relacione baze znaci da elementu iz jedne tabele moze da odgovara jedan ili vise elemenata iz druge tabele. Dakle moze da bude odnos 1:1 ili 1:n ili n:m . Npr u jednoj tabeli imamo ime i prezime, a u drugoj imamo adresu, broj licne karte, broj telefona itd... Te veze izmedju tabela se nazivaju relacije. Tj kao sto je rekao VojaM, npr na nekom odeljenju u domu zdravlja imamo fioke koje su podeljene po brojevima kartona ili po razredima, a u fiokama kartone koji sadrze neke druge podatke... Znaci za jedno odeljenje, vise pojedinacnih fioka, koje sadrze vise pojedinacnih kartona, koji sadrze vise pojedinacnih podataka.
|
20.2.2011, 0:47 | #17 | |
V.I.P. Programiranje
|
Re: SQL baze podataka
Citat:
Vbulletin sigurno ima baze podataka iza sebe, znači drži gomilu tabela o različitim delovima foruma. Uzećemo da postoji jedna tabela posts, koja drži postove korisnika, zajedno sa id brojevima tema u kojima su postovi, id brojevima korisnika koji su ih napisali, vremenu itd. Možemo recimo da izvršimo sledeću SQL naredbu: Kod:
SELECT * FROM posts WHERE uid=8852 Ovo će nam vratiti sve moje postove (uid=8852 sam ja ). Recimo da hoćemo da vidimo u kojoj je temi moj zadnji post. To zahteva da uradimo nešto drugačiji SQL upit: Kod:
SELECT * FROM posts WHERE uid=8852 ORDER BY time DESC Sada bismo iz php-a uzeli prvi red koji će zbog opadajućeg sortiranja po vremenu sadržati moj poslednji post, i pogledati recimo polje tid u kome je smešten id thread-a u kome je dotični post. Recimo da je taj tid jednak 68413 (ova tema). E sad, taj id ništa ne znači krajnjem korisniku. Da bismo korisniku prikazali ime teme (koje za njega ima više smisla nego samo id), uradićemo drugi upit, ovaj put sa drugom tabelom: Kod:
SELECT * FROM threads WHERE tid=68413 Kao rezultat ovog trebali bismo da dobijemo jedan red (odnosno thread koji je u pitanju) i iz tog reda izvučemo, recimo, polje 'name' koje sadrži naziv teme. Onda bismo to prikazali korisniku. Tu sad vidimo relaciju između 'tid' polja u dve tabele — oni su tako povezani da iz jedne tabele možemo dobiti više informacija o nečemu. Ovo je banalan primer ali ilustruje (koliko-toliko) o čemu se tu u stvari radi |
|
20.2.2011, 1:04 | #18 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: SQL baze podataka
Ok.Ok
Al' ste navalili. Nisam valjda toliki idiot, kapiram sta su baze, nego me je interesovalo sta je SQL, veza izmedju njega i sistema koji operisu na tim bazama. |
20.2.2011, 1:07 | #19 |
V.I.P. Programiranje
|
Re: SQL baze podataka
|
20.2.2011, 1:13 | #20 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: SQL baze podataka
"Ćutanje je zlato"
Bolje da nista nisam pitao. |
Bookmarks sajtovi |
Alatke vezane za temu | |
Vrste prikaza | |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Kurs za SQL administriranje i programiranje baza podataka? | catwoman | Programiranje | 0 | 11.2.2010 12:21 |
Kako da importujem/exportujem formu iz Accessove baze podataka preko VB6? | zWest | Programiranje | 0 | 9.7.2008 0:08 |
povezivanje baze podataka sa serverom | deus[awesome] | Programiranje | 5 | 23.12.2006 2:02 |
Kako probiti sifru Access baze podataka | Vlado78 | Aplikativni softver | 1 | 4.2.2006 11:16 |