Koje su prednosti i nedostaci pridruživanja ili podupita?

...

Upiti baze podataka dohvaćaju određene informacije iz baze podataka.

Podupit je upit unutar drugog upita. Potupit također može sadržavati drugi podupit. Za njih se kaže da su "ugniježđeni" potupiti. Spajanje je kada su dvije ili više tablica referencirane u klauzuli "Od" upita. Različiti motori baze podataka mogu različito optimizirati podupite i spojeve. Na primjer, DB2-ov optimizator će transformirati podupit u spajanje ako su ispunjeni određeni kriteriji. U nekim slučajevima, spajanje daje bolju izvedbu od podupita.

Što čini podupit

Potupit je izraz "SELECT" unutar klauzule "WHERE" ili "HAVING" vanjskog izraza "INSERT", "UPDATE", "MERGE" ili "DELETE". Potupit se također naziva "unutarnji upit" ili "unutarnji odabir". Potupit može imati klauzulu "FROM" s jednom ili više tablica i može imati opcijski klauzulu "WHERE", "GROUP BY" ili "HAVING". Uvijek je zatvoreno u zagradi.

Video dana

Prednosti i nedostaci potupita

Podupiti su korisni jer strukturiraju upit da izoliraju svaki dio iskaza, izvode istu operaciju koja bi obično zahtijevala složene spojeve i spojeve i koja je lakša čitati. Podupiti su čak bili i osnova za naziv "Structured Query Language" (SQL) zbog svoje lako čitljive strukture. Nedostatak je što ne možete mijenjati tablicu i birati iz iste tablice unutar podupita u istom SQL izrazu. Podupiti također mogu potrajati dulje za izvršenje od spajanja zbog načina na koji ih optimizator baze podataka obrađuje.

Što čini pridruživanje

Većina potupita može se prepisati kao spojevi, a većina spojeva može se prepisati kao potupita. Spoj definira dvije ili više tablica povezanim stupcem. Tablice se obično spajaju na primarnim i stranim ključevima. Na primjer, tablica zaposlenika može imati primarni ključ stupca ID-a zaposlenika, dok tablica radnog lista također ima stupac ID-a zaposlenika koji je strani ključ za tablicu zaposlenika. SQL spajanje može se napisati kao "WHERE employee.empid = timesheet.empid" ili "FROM Employee JOIN timesheet ON (employee.empid = timesheet.empid)."

Prednosti i nedostaci spojeva

Glavna prednost spajanja je što se izvršava brže. Krajnji korisnik možda neće primijetiti povećanje performansi. Međutim, budući da su stupci posebno imenovani, indeksirani i optimizirani od strane mehanizma baze podataka, vrijeme dohvaćanja gotovo uvijek će biti brže od vremena podupita. Tu su i unutarnji i vanjski spojevi, lijevi i desni spojevi, puni spojevi i križni spojevi. Nedostatak korištenja spojeva je taj što ih nije tako lako čitati kao podupite. Još jedan nedostatak je to što može biti zbunjujuće u pogledu toga koji je spoj prikladan tip spajanja za korištenje kako bi se dobio ispravan željeni skup rezultata.