Top 50 pitanja i odgovora na DB2 intervjuu (2025.)

Pripremate se za DB2 intervju? Nije stvar samo u poznavanju naredbi, već i u pokazivanju uvida u to kako baze podataka zapravo funkcioniraju. Svaki DB2 intervju otkriva dubinu rješavanja problema, prilagodljivost i tehničku oštrinu.

Mogućnosti u ovom prostoru su ogromne, od početnika koji grade svoje vještine do iskusnih profesionalaca s 5 ili čak 10 godina iskustva na osnovnoj razini. Pitanja i odgovori za DB2 intervju testiraju tehničku stručnost, vještine analiziranja i stručnost u domeni. Menadžeri, viši rukovoditelji i voditelji timova cijene kandidate koji pokazuju naprednu analizu, tehničko iskustvo i profesionalno iskustvo tijekom rada u tom području.

Na temelju uvida više od 65 tehničkih lidera, potkrijepljenih povratnim informacijama od više od 40 menadžera za zapošljavanje i stručnjaka iz različitih industrija, ovaj članak pokriva najčešća, najnaprednija i praktična područja koja su zaista važna.

Pitanja i odgovori za DB2 intervju

1) Što je DB2 i zašto je važan u poslovnim aplikacijama?

DB2 je obitelj sustava za upravljanje relacijskim bazama podataka (RDBMS) koje je razvio IBM, široko se koristi u poslovnim okruženjima za rukovanje strukturiranim i nestrukturiranim podacima. Posebno je važan na IBM mainframe računala (z/OS), gdje pokreće kritične sustave u bankarskom, osiguravajućem i vladinom sektoru. Njegove napredne značajke poput kontrole konkurentnosti, particioniranja, pohranjenih procedura i međuspremnika omogućuju DB2 skaliranje na tisuće korisnika istovremeno. Na primjer, u financijskim institucijama, DB2 se koristi za obradu milijuna transakcija dnevno uz osiguravanje ACID svojstava, što ga čini temeljem za sustave visoke dostupnosti.

👉 Besplatno preuzimanje PDF-a: Pitanja i odgovori za DB2 intervju


2) Po čemu se DB2 razlikuje od drugih relacijskih baza podataka poput Oracle or MySQL?

Dok sve relacijske baze podataka upravljaju podacima u tablicama pomoću SQL-a, DB2 se razlikuje po skalabilnosti poduzeća i podršci za platformu. MySQL, koji je lagan i često se koristi za web aplikacije, DB2 je optimiziran za mainframe računala i poslovne Linux/Unix/Windows okruženja. U usporedbi s Oracle, DB2 pruža čvršću integraciju s IBM middleware i z/OS, s jakom podrškom za paralelizam i upravljanje opterećenjem.

Faktor DB2 Oracle MySQL
Primarna upotreba Poduzeće, glavno računalo Poduzeće, međuindustrijsko Web aplikacije, Startupi
Izvođenje Optimizirano za OLTP/OLAP Snažan OLTP + klasteriranje Umjereno
licenciranje Fleksibilne razine Visoka cijena Uglavnom otvorenog koda
Podrška platformi Glavni sustav + LUW LUW LUW

3) Objasnite životni ciklus DB2 SQL naredbe od kodiranja do izvršenja.

Životni ciklus DB2 SQL naredbe uključuje više faza kako bi se osigurala ispravnost i učinkovitost. U početku je SQL naredba kodirana unutar aplikacije. Zatim prolazi kroz predkompilacija, tijekom kojeg DB2 izdvaja SQL naredbe u module zahtjeva za bazu podataka (DBRM-ove). Sljedeći korak je vezivanje proces koji validira SQL, provjerava autorizacije i stvara pristupnu putanju. Konačno, izvršenje faza koristi generirani plan pristupa za dohvaćanje ili izmjenu podataka. Na primjer, SELECT Upit prvo prolazi kroz optimizator, koji na temelju dostupnih statistika i indeksa određuje hoće li se koristiti skeniranje indeksa ili skeniranje cijele tablice.


4) Koje različite vrste tipova podataka podržava DB2?

DB2 podržava širok raspon tipova podataka za pohranu numeričkih, znakovnih i vremenskih podataka. Uobičajeni numerički tipovi uključuju SMALLINT, INTEGER, DECIMAL i FLOAT. Znakovni podaci mogu se pohraniti pomoću CHAR, VARCHAR i CLOB, dok binarni podaci koriste BLOB. Vremenski podaci podržani su putem DATE, TIME i TIMESTAMP.

Primjer:

  • INTEGER za identifikacijske iskaznice zaposlenika.
  • VARCHAR(100) za imena zaposlenika.
  • DATE za datume pridruživanja.

Ove vrste osiguravaju integritet podataka, a istovremeno omogućuju fleksibilnost među aplikacijama, te su ključne pri dizajniranju normaliziranih shema baza podataka.


5) Kako DB2 Optimizer odabire najbolji put pristupa?

DB2 Optimizer analizira SQL naredbe kako bi odredio najučinkovitiji način pristupa podacima. Uzima u obzir čimbenici kao što su dostupni indeksi, statistike u tablicama kataloga, predikati upita i sistemski resursi. Na primjer, prilikom upita tablici kupaca, optimizator može odabrati indeksno skeniranje ako postoji indeks na upitnom stupcu ili sekvencijalno skeniranje ako je potrebna većina redaka. Korištenjem algoritama temeljenih na troškovima, optimizator osigurava da je izvršavanje učinkovito čak i u složenim upitima sa spajanjima i podupitima. Zato je održavanje ažurne statistike kataloga ključno.


6) Možete li objasniti što je SQLCA i navesti njegova ključna polja?

SQL komunikacijsko područje (SQLCA) je struktura koja pruža povratne informacije nakon izvršavanja SQL-a. Automatski se ažurira nakon svake SQL operacije u ugrađenim SQL programima. Ključna polja uključuju:

  • SQLKOD: Označava uspjeh (0), upozorenje (>0) ili grešku (<0).
  • SQLERRM: Tekst poruke koji opisuje ishod.
  • SQLERRD: Dijagnostičke informacije, kao što je broj obrađenih redaka.

Na primjer, ako je UPDATE mijenja 10 redaka, SQLERRD(3) sadržavat će vrijednost 10. SQLCA je ključan za rukovanje greškama i ispravljanje pogrešaka u COBOL-u, C-u i drugim host jezicima integriranim s DB2.


7) Koja je svrha naredbi COMMIT i ROLLBACK?

Naredba COMMIT u DB2 osigurava da sve promjene napravljene transakcijom postanu trajne, dok ROLLBACK poništava nepotvrđene promjene. Ove naredbe pomažu u održavanju dosljednost podataka i provoditi ACID svojstva transakcija. Na primjer, u bankarskoj aplikaciji, ako transfer oduzme novac s jednog računa, ali ne uspije uplatiti novac na drugi, izdavanje naredbe ROLLBACK osigurava da nijedna djelomična transakcija ne ošteti podatke. Suprotno tome, nakon što obje operacije uspiju, naredba COMMIT dovršava transfer.


8) Koje različite vrste ograničenja postoje u DB2 i koje su njihove prednosti?

Ograničenja nameću pravila za održavanje integriteta podataka. DB2 podržava nekoliko vrsta:

  • Glavni ključ: Osigurava jedinstvenost i nije null.
  • Strani ključ: Nameće referencijalni integritet između tablica.
  • jedinstven: Jamči da nema dupliciranih vrijednosti u stupcu.
  • Ček: Potvrđuje da vrijednosti zadovoljavaju određene uvjete.
  • Nije Null: Sprječava nedostajuće vrijednosti.

Prednosti: Smanjuju potrebu za validacijom na razini aplikacije, poboljšavaju dosljednost i štite od unosa nevažećih podataka. Na primjer, ograničenje CHECK može osigurati da su plaće zaposlenika uvijek veće od nule.


9) Kako funkcioniraju međuspremnici u DB2?

Međuspremnik je rezervirano područje glavne memorije koje DB2 koristi za predmemoriranje tablica i stranica indeksa. Kada se izvrši upit, DB2 prvo pregledava međuspremnik kako bi smanjio ulazno/izlazne operacije fizičkog diska. Ispravno podešeni međuspremnici značajno poboljšavaju performanse. Na primjer, ako se podatkovne stranice često dostupne tablice nalaze u međuspremniku, upiti se mogu posluživati ​​iz memorije, a ne s diska. Administratori mogu stvoriti više međuspremnika (4K, 8K, 16K, 32K) i dodijeliti ih određenim tabličnim prostorima za optimalne performanse.


10) Što je indeks klasteriranja i po čemu se razlikuje od indeksa koji nije klasteriran?

Indeks klasteriranja određuje fizički redoslijed redaka u tabličnom prostoru, osiguravajući da se povezani retci pohranjuju zajedno. To poboljšava performanse za upite raspona. S druge strane, indeks bez klasteriranja ne utječe na redoslijed redaka, ali omogućuje brz pristup putem pokazivača.

Primjer:

  • Indeks klasteriranja u stupcu "datum narudžbe" osigurava da su nedavne narudžbe fizički grupirane, ubrzavajući mjesečna izvješća.
  • Neklasterirani indeks na "ID-u korisnika" omogućuje brzo pretraživanje bez reorganizacije podataka.
svojstvo ClusterIndeks Ne-ClusterIndeks
Utječe na redoslijed redaka Da Ne
Najbolji slučaj korištenja Upiti o rasponu Traženje točaka
održavanje Skuplje tijekom umetanja Jeftiniji

11) Objasnite konkurentnost u DB2 i kako zaključavanje rješava konflikte.

Istodobnost se odnosi na više korisnika ili aplikacija koje istovremeno pristupaju istim podacima. DB2 to rješava mehanizmom zaključavanja kako bi se izbjegle anomalije poput izgubljena ažuriranja, prljava čitanjai fantomska čitanjaBrave se mogu primijeniti na različitim razinama, uključujući tablica, stranicai redNa primjer, u online maloprodajnom sustavu, dva kupca koja istovremeno ažuriraju isti zapis zaliha mogu uzrokovati nekonzistentnost. DB2 zaključavanje na razini retka osigurava da se istovremeno događa samo jedno ažuriranje, čuvajući ispravnost dok istovremeno omogućuje nastavak drugih operacija na različitim retcima.


12) Što su moduli zahtjeva za bazu podataka (DBRM) i kako se koriste u povezivanju?

DBRM se generira tijekom predkompilacije aplikacijskog programa koji sadrži ugrađeni SQL. Sadrži izdvojene SQL naredbe. Tijekom postupak vezanja, DB2 provjerava ove naredbe, provjerava autorizacije i generira plan pristupa pohranjen u paketu. Na ovaj paket se kasnije poziva plan aplikacije tijekom izvršavanja. Na primjer, u COBOL-DB2 programu, SQL naredbe se prethodno kompajliraju u DBRM, koji se zatim veže u paket osiguravajući optimizirane putove upita.


13) Kako dohvaćate više redaka iz DB2 tablice u ugrađenom SQL-u?

Za dohvaćanje više redaka, DB2 koristi kursore. Kursor se deklarira za SELECT naredbu, otvara se radi utvrđivanja skupa rezultata, dohvaća redak po redak u varijable hosta i konačno zatvara. Na primjer, u COBOL programu:

EXEC SQL DECLARE C1 CURSOR FOR SELECT EMP_NAME FROM EMPLOYEE END-EXEC.
EXEC SQL OPEN C1 END-EXEC.
EXEC SQL FETCH C1 INTO :WS-NAME END-EXEC.
EXEC SQL CLOSE C1 END-EXEC.

Ovaj mehanizam pruža fleksibilnost za sekvencijalnu obradu redaka, posebno u scenarijima izvještavanja ili skupne obrade.


14) Kada i zašto treba izbjegavati SELECT * u DB2 programima?

Korištenje SELECT * dohvaća sve stupce iz tablice, što je neučinkovito i rizično. Nedostaci uključuju veće troškove ulazno/izlaznih operacija, nepotrebno dohvaćanje nekorištenih stupaca i ovisnost aplikacije o strukturi tablice. Ako se doda novi stupac, programi koji koriste SELECT * može propasti. Najbolja praksa je navesti samo obavezne stupce, na primjer:

SELECT EMP_ID, EMP_NAME FROM EMPLOYEE;

To smanjuje opterećenje prijenosa podataka i poboljšava performanse.


15) Što su DB2 paketi i koje su njihove prednosti?

Paket je kompilirani oblik SQL naredbi za jedan DBRM. Za razliku od planova, paketi omogućuju modularni razvoj. Prednosti uključuju:

  • Smanjeno opterećenje povezivanjem manjih skupova SQL naredbi.
  • Lakše izoliranje greške ako jedan modul otkaže.
  • Fleksibilnost ponovnog povezivanja paketa bez utjecaja na cijeli plan.

Primjer: U velikom bankarskom sustavu, svaki funkcionalni modul (poput upravljanja računima, obrade kredita) može imati vlastiti paket, što omogućuje programerima da ga modificiraju bez ometanja cijele aplikacije.


16) Kako funkcija EXPLAIN pomaže u podešavanju performansi DB2?

Naredba EXPLAIN pokazuje kako optimizator planira izvršiti upit, uključujući odabrane putove pristupa, metode spajanja i korištene indekse. Izlaz se pohranjuje u PLAN_TABLE. Na primjer, ako EXPLAIN otkrije potpuno skeniranje tablice gdje postoji indeks, to može ukazivati ​​na nedostajuće statistike ili nepravilnu upotrebu indeksa. Analizom izlaza EXPLAIN-a, administratori baza podataka mogu dodati indekse ili prepisati upite za bolje performanse.


17) Koje vrste brava postoje u DB2 i koje su njihove karakteristike?

DB2 nudi nekoliko vrsta zaključavanja:

  • Dijeljeno (S): Više transakcija može čitati, ali ne i mijenjati.
  • Ekskluzivno (X): Samo jedna transakcija može čitati/pisati.
  • Ažuriranje (U): Sprječava zastoje kada dijeljena brava kasnije postane ekskluzivna.
Vrsta zaključavanja Karakteristike Primjer upotrebe
Zajednička Dopušteno je više čitanja, bez ažuriranja Upiti za prijavu
Ekskluzivan Potpuna kontrola nad resursom Ažuriranje izjava
Nadopune Smanjuje zastoje tijekom istovremenih ažuriranja Online rezervacija

Zaključavanja se mogu primijeniti na razini retka, stranice ili tabličnog prostora, ovisno o zahtjevima istodobnosti.


18) Koje su prednosti i nedostaci zaključavanja na razini stranice?

Zaključavanje na razini stranice zaključava cijelu stranicu (npr. 4K) podataka umjesto jednog retka.

Prednosti:

  • Smanjuje opterećenje u usporedbi sa zaključavanjem na razini retka.
  • Učinkovito za masovne operacije.

Nedostaci:

  • Može uzrokovati sukob ako više korisnika pristupa različitim retcima na istoj stranici.
  • Povećava mogućnost eskalacije zaključavanja.

Na primjer, istovremeno ažuriranje dvaju različitih redaka na istoj stranici od strane dvaju korisnika može uzrokovati nepotrebne sukobe.


19) Kako DB2 rješava referencijalni integritet sa stranim ključevima?

DB2 provodi referencijalni integritet putem ograničenja stranog ključa, osiguravajući da zapisi podređene tablice referenciraju valjane roditeljske ključeve. Mogućnosti kao što su ON DELETE CASCADE or ON DELETE SET NULL kontrolirati što se događa kada se roditeljski zapis izbriše. Na primjer, u bazi podataka narudžbi, ako se kupac izbriše, sve njegove narudžbe mogu se ili kaskadno izbrisati ili sačuvati s NULL referencom. To sprječava osirotele zapise i održava konzistentnost u povezanim tablicama.


20) Objasnite ulogu Buffer Upravitelj u DB2.

The Buffer Upravitelj podataka (Manager) odgovoran je za premještanje podataka između virtualne memorije (međuspremnika) DB2 i fizičkog diska. Smanjuje ulazno/izlazne operacije diska keširanjem često pristupanih stranica. Kada se zatraži stranica, Buffer Upravitelj prvo provjerava međuspremnik, dohvaćajući podatke s diska samo ako ga nema. Na primjer, u sustavu koji generira dnevna financijska izvješća, Buffer Manager osigurava da su često upitani podaci lako dostupni u memoriji, značajno smanjujući vrijeme izvršavanja upita.


21) Koja je svrha Tablice kontrole resursa (RCT) u DB2?

Tablica upravljanja resursima (RCT) je DB2/CICS komponenta koja definira kojim se DB2 planovima može pristupiti putem određenih CICS transakcija. Djeluje kao most između CICS ID-ova transakcija i DB2 ID-ova autorizacije. Na primjer, kada korisnik izvrši CICS transakciju koja komunicira s DB2, RCT osigurava da se pristupa samo autoriziranim DB2 planovima. To sprječava neovlašteno izvršavanje SQL-a unutar CICS aplikacija. Mapiranjem ID-ova transakcija na planove, RCT poboljšava sigurnost i performanse u sustavima za obradu velikih online transakcija.


22) Kako se tablični prostor može premjestiti na drugi DASD volumen u DB2?

Premještanje tabličnog prostora na drugi DASD (uređaj za pohranu s izravnim pristupom) zahtijeva promjenu pridružene grupe za pohranu. Prvo, ALTER STOGROUP naredba može dodati ili ukloniti volumene. Zatim, REORGANIZACIJA TABLIČNOG PROSTORA Uslužni program se koristi za fizičko premještanje podataka na novi volumen. Za oporavak, OBNOVA TABLIČNOG PROSTORA osigurava konzistentnost podataka. Na primjer, ako produkcijskom tabličnom prostoru ponestane prostora na jednom volumenu, DBA može dodijeliti novi volumen, promijeniti grupu za pohranu i reorganizirati tablični prostor tako da se budući podaci nalaze na novom uređaju bez zastoja.


23) Objasnite razliku između DCLGEN-a i DBRM-a.

DCLGEN (Deklaracija Generator) i DBRM (Modul zahtjeva za bazu podataka) služe različitim svrhama u DB2.

  • DCLGEN: Generira knjižice s uputama za korištenje jezika hosta i naredbe DECLARE TABLE kako bi se osigurala konzistentnost programa i baze podataka.
  • DBRM: Sadrži izdvojene SQL naredbe iz programa nakon predkompilacije, korištene tijekom povezivanja.
Aspekt DCLGEN DBRM
Svrha Definicije tablice jezika hosta SQL pohrana za povezivanje
Upotreba Validacija prije kompilacije Ulaz za proces povezivanja
Primjer upotrebe Osigurava da se nazivi stupaca podudaraju Generira pristupne putove u paketima

Oba alata smanjuju pogreške, ali rade u različitim fazama razvoja aplikacije.


24) Što su korelirani podupiti i kada ih treba koristiti?

Korelirani podupit je upit ugniježđen unutar drugog upita koji referencira stupce iz vanjskog upita. Za razliku od običnih podupita, izvršava se jednom za svaki redak vanjskog upita. To ga čini korisnim kada je potrebna evaluacija redak po redak.

Primjer:

SELECT E1.EMP_ID, E1.EMP_NAME
FROM EMPLOYEE E1
WHERE E1.SALARY > (
	SELECT AVG(E2.SALARY)
	FROM EMPLOYEE E2
	WHERE E2.DEPT_ID = E1.DEPT_ID
);

Ovaj upit pronalazi zaposlenike koji zarađuju iznad prosječne plaće svog odjela. Iako su moćni, korelirani podupiti mogu biti spori i trebali bi se optimizirati indeksima.


25) Ostaju li kursori otvoreni nakon COMMIT naredbe u DB2?

Prema zadanim postavkama, kursori se zatvaraju kada se izda naredba COMMIT. Međutim, kursor deklariran s S ČEKANJEM Opcija ostaje otvorena čak i nakon COMMIT-a. Ovo je korisno za dugotrajne transakcije koje dohvaćaju velike skupove podataka u više koraka. Na primjer:

DECLARE C1 CURSOR WITH HOLD FOR SELECT * FROM EMPLOYEE;

To omogućuje nastavak dohvaćanja nakon COMMIT-a. Međutim, u CICS okruženjima, WITH HOLD nema učinka, jer pseudo-razgovorni programi zatvaraju kursore po narudžbi. Programeri moraju dizajnirati u skladu s tim kako bi spriječili neočekivana zatvaranja kursora.


26) Koje su različite vrste tabličnih prostora u DB2?

DB2 podržava više vrsta tabličnih prostora, svaki optimiziran za specifične slučajeve upotrebe:

  • Jednostavni tablični prostor: Omogućuje više tablica, ali je sada zastarjelo.
  • Segmentirani tablični prostor: Grupira podatke u segmente, idealno za više tablica.
  • Particionirani tablični prostor: Dijeli velike tablice po particijama radi skalabilnosti.
  • Univerzalni tablični prostor (UTS): Kombinira prednosti segmentiranih i particioniranih tabličnih prostora, široko korištenih u modernom DB2.

Primjer: Sustav obračuna plaća s milijunima redaka ima koristi od particioniranog tabličnog prostora, što omogućuje paralelni pristup i poboljšane performanse upita.


27) Kako DB2 rješava konflikte zaključavanja i zastoje?

Kada više transakcija zatraži nekompatibilne brave, DB2 detektira sukobe. Ako transakcije formiraju ciklus čekanja, dolazi do zastoja. DB2 to automatski rješava prekidom jedne transakcije i vraćanjem SQLCODE-a -911 ili -913. Na primjer, ako Transakcija A ažurira redak X i čeka redak Y, dok Transakcija B ažurira Y i čeka X, DB2 detektira zastoj i poništava jednu transakciju. Najbolje prakse uključuju dosljedan redoslijed pristupa, kraće transakcije i odgovarajuće razine izolacije kako bi se smanjili zastoji.


28) Što je stabilnost kursora i kako se razlikuje od ponovljivog čitanja?

Stabilnost kursora (CS) je razina izolacije u DB2 gdje se zaključavanje reda drži samo dok je kursor pozicioniran na retku. Nakon pomicanja, zaključavanje se otpušta. To omogućuje veću konkurentnost, ali riskira neponovljiva čitanja. Ponavljajuće čitanje (RR), s druge strane, drži zaključane sve kvalificirane redove do COMMIT-a, sprječavajući neponovljiva čitanja, ali smanjujući konkurentnost.

Razina izolacije Karakteristike Koristite slučaj
CS Brzo otključavanje brava, veća konkurentnost Izvještavanje s minimalnim sukobima
RR Brave se drže do COMMIT-a, konzistentna čitanja Financijske transakcije

29) Što su paketi u DB2 i kako poboljšavaju modularnost?

Paket sadrži pristupnu putanju i izvršni kod za SQL naredbe iz jednog DBRM-a. Paketi poboljšavaju modularnost omogućujući ponovno uspostavljanje pojedinačnih programa ili modula bez utjecaja na cijeli plan aplikacije. Na primjer, u bankarskom sustavu, ako se promijeni modul kredita, ponovno se uspostavlja samo njegov paket, a ostali paketi ostaju netaknuti. To smanjuje vrijeme zastoja i izbjegava ponovnu validaciju svih DBRM-ova zajedno.


30) Gdje se pohranjuje izlaz naredbe EXPLAIN i kako se interpretira?

Naredba EXPLAIN pohranjuje svoj izlaz u TABLICA_PLANA pod korisničkom shemom. Ova tablica sadrži detalje kao što su odabrani indeksi, metode spajanja, operacije sortiranja i procijenjeni troškovi. Na primjer, ako EXPLAIN prikazuje potpuno skeniranje tablice unatoč dostupnosti indeksa, to može ukazivati ​​na zastarjelu statistiku kataloga ili neučinkovite predikate upita. Interpretacijom PLAN_TABLE, DBA-ovi mogu odlučiti hoće li stvoriti nove indekse, prikupljati statistiku ili prepisati upite radi optimizacije.


31) Koja je razlika između ekskluzivnih, dijeljenih i ažuriranih zaključavanja?

  • Ekskluzivna brava (X): Samo jedna transakcija može čitati ili pisati; ostale blokira.
  • Zajednička brava (S): Više transakcija može čitati, ali ne može pisati.
  • Zaključavanje ažuriranja (U): Koristi se za sprječavanje zastoja prilikom nadogradnje s dijeljenog na ekskluzivni.

Primjer: U sustavu rezervacija aviokompanija, dijeljena brava omogućuje više agenata pregled raspoloživosti sjedala. Međutim, nakon što je sjedalo rezervirano, ekskluzivna brava osigurava da ga nijedna druga transakcija ne mijenja istovremeno. Brave za ažuriranje stupaju na snagu kada sustav predviđa prijelaz čitanja na ažuriranje.


32) Kako DB2 osigurava visoku dostupnost i oporavak od katastrofe?

DB2 podržava visoku dostupnost putem HADR (Oporavak od katastrofe visoke dostupnosti)HADR replicira podatke iz primarne baze podataka u rezervnu bazu podataka, osiguravajući minimalno vrijeme zastoja tijekom kvarova. Osim toga, DB2 nudi slanje zapisnika, klasteriranje u slučaju kvara i uslužni programi za sigurnosno kopiranje/vraćanjeNa primjer, u globalnom bankarskom sustavu, HADR osigurava da ako primarni podatkovni centar zakaže, rezervni sustav besprijekorno preuzima, minimizirajući gubitak transakcija. Čimbenici poput načina sinkronizacije (sinkroni, asinkroni) određuju kompromise između performansi i vremena oporavka.


33) Koje su prednosti i nedostaci korištenja particioniranih tabličnih prostora?

Particionirani tablični prostori dijele veliku tablicu na više particija, poboljšavajući upravljivost i performanse.

Prednosti:

  • Paralelna obrada upita.
  • Lakše sigurnosno kopiranje i oporavak.
  • Skalabilnost za milijarde redaka.

Nedostaci:

  • Složena administracija.
  • Potencijalno iskrivljenje ako je ključ particije loše odabran.

Primjer: U telekomunikacijskoj tvrtki koja pohranjuje zapise poziva, particioniranje po mjesecima osigurava da upiti i zadaci održavanja rade na upravljivim podskupovima podataka.


34) Kako DB2 rješava podešavanje performansi upita?

DB2 podešavanje uključuje analizu planova izvršavanja upita, optimizaciju indeksa i podešavanje parametara baze podataka. DB2 Optimizer igra središnju ulogu, ali DBA-ovi moraju osigurati da su statistike ažurne. Uobičajene tehnike podešavanja uključuju:

  • Stvaranje kompozitnih indeksa.
  • Prepisivanje upita s EXISTS umjesto IN.
  • Korištenje particioniranja za velike tablice.

Na primjer, upit koji skenira milijune redaka može se dramatično poboljšati dodavanjem indeksa na često filtrirane stupce. Alati poput OBJASNITI i db2advis pomoći u prepoznavanju mogućnosti optimizacije.


35) Koje su različite vrste razina izolacije u DB2?

DB2 nudi više razina izolacije kako bi uravnotežio konkurentnost i konzistentnost:

  • Ponovljivo čitanje (RR): Sprječava prljava, neponovljiva i fantomska očitavanja.
  • Stabilnost čitanja (RS): Sprječava neponovljiva čitanja, ali dopušta fantomska čitanja.
  • Stabilnost kursora (CS): Sprječava samo prljavo čitanje.
  • Nepotvrđeno čitanje (UR): Omogućuje prljavo čitanje, najveću konkurentnost.
Razina izolacije Prljavo štivo Neponovljiva čitanja Fantomska čitanja
RR Ne Ne Ne
RS Ne Ne Da
CS Ne Da Da
UR Da Da Da

36) Kada biste trebali koristiti indekse u DB2 i koji su njihovi nedostaci?

Indeksi se koriste za poboljšanje performansi upita pružanjem bržih pristupnih putova. Posebno su korisni u WHERE klauzulama, spajanjima i ORDER BY operacijama. Međutim, oni također uvode opterećenje tijekom INSERT, UPDATE i DELETE operacija, jer se indeksi moraju održavati. Na primjer, indeks na EMP_ID ubrzava pretraživanje u sustavu obračuna plaća, ali može usporiti serijsko umetanje. Prekomjerno indeksiranje treba izbjegavati jer troši dodatnu pohranu i smanjuje performanse.


37) Objasnite razliku između statičkog i dinamičkog SQL-a u DB2.

  • Statički SQL: SQL naredbe se kompiliraju i vežu prije izvođenja. Nude bolje performanse i stabilnost.
  • Dinamički SQL: Izjave se konstruiraju i pripremaju za vrijeme izvođenja, što omogućuje fleksibilnost, ali uzrokuje dodatne troškove.

Primjer:

  • Statički SQL je prikladan za OLTP sustave gdje su upiti predvidljivi.
  • Dinamički SQL je koristan u aplikacijama za izvještavanje gdje se upiti generiraju na temelju korisničkog unosa.
Aspekt Statički SQL Dinamički SQL
Izvođenje Brže sporiji
Fleksibilnost ograničen visok
Koristite slučaj Osnovne transakcije Ad-hoc izvješćivanje

38) Kako DB2 obrađuje operacije sigurnosnog kopiranja i oporavka?

DB2 pruža uslužne programe kao što su SIGURNOSNA BAZA PODATAKA i OBNOVI BAZU PODATAKA za zaštitu od gubitka podataka. Sigurnosne kopije mogu biti puni, inkrementalni, ili deltaOporavak koristi zapisnike transakcija za vraćanje baze podataka u konzistentno stanje. Na primjer, ako dođe do kvara hardvera, administrator baza podataka može vratiti najnoviju sigurnosnu kopiju i primijeniti zapisnike za oporavak svih potvrđenih transakcija. Modeli oporavka uključuju oporavak unaprijed, osiguravajući minimalan gubitak podataka. Odabir između online i offline sigurnosnih kopija ovisi o zahtjevima dostupnosti.


39) Koje su prednosti i ograničenja korištenja pohranjenih procedura u DB2?

Pohranjene procedure obuhvaćaju SQL i proceduralnu logiku unutar baze podataka.

Prednosti:

  • Poboljšane performanse (logika se odvija bliže podacima).
  • Ponovna upotreba koda i modularnost.
  • Poboljšana sigurnost kroz kontrolirani pristup.

Ograničenja:

  • Teže je otklanjati greške.
  • Problemi s prenosivošću na različitim platformama.

Primjer: Pohranjena procedura za izračun plaća smanjuje mrežni promet izvršavanjem složenih spajanja unutar DB2 baze podataka umjesto u sloju aplikacije. Međutim, ako se poslovna logika često mijenja, pohranjene procedure mogu postati teže za održavanje u usporedbi s kodom aplikacije.


40) Možete li objasniti načine rada za oporavak od katastrofe visoke dostupnosti (HADR) u DB2?

DB2 HADR podržava više načina sinkronizacije:

  • Synckronični (SINKRONIZACIJA): Nula gubitka podataka, veća latencija.
  • Blizu-Synckronični (NEARSYNC): Minimalni gubitak, umjerena latencija.
  • Asinkrono (ASINKROTNO): Veće performanse, rizik od gubitka podataka.
  • Super asinkroni (SUPERASYNC): Maksimalne performanse, najveći rizik od gubitka.
način Izvođenje Gubitak podataka Koristite slučaj
SYNC Nizak nijedan Bankarstvo
NEARSYNC Srednji minimum Osiguranje
ASYNC visok Moguć E-commerce
SUPERASINKRONIRANJE Vrlo visoko Vjerojatno analitika

Izbor ovisi o uravnoteženju performansi s prihvatljivim razinama rizika.


41) Po čemu se DB2 LUW razlikuje od DB2 na z/OS-u?

DB2 postoji u dvije glavne verzije: DB2 za Linux, UNIX, Windows (LUW) i DB2 za z/OS (mainframe računala). Iako dijele SQL standarde i arhitekturu, služe različitim okruženjima. DB2 LUW dizajniran je za distribuirane sustave i podržava moderna opterećenja poput analitike, integracije umjetne inteligencije i implementacije u oblaku. DB2 z/OS, s druge strane, optimiziran je za izuzetno velike OLTP transakcije, podržavajući tisuće istovremenih korisnika s gotovo nultim zastojem. Na primjer, multinacionalna banka može koristiti DB2 z/OS za svoju osnovnu obradu transakcija, dok DB2 LUW koristi za izvještavanje i analitička opterećenja.


42) Koji čimbenici najviše utječu na performanse DB2 upita?

Performanse DB2 upita ovise o više čimbenika, uključujući dizajn baze podataka, strategije indeksiranja, formulaciju upita i dostupnost sistemskih resursa. Loše dizajnirani indeksi, zastarjele statistike kataloga i prekomjerni spojevi mogu značajno smanjiti performanse. Osim toga, dodjela međuspremnika, sukob zaključavanja i uska grla u ulazno/izlaznim operacijama također utječu na brzinu upita. Na primjer, upit koji koristi IN na velikom skupu podataka može raditi sporije u usporedbi s onim koji koristi EXISTS, jer DB2 optimizira POSTOJI drugačije. Redovita upotreba RUNSTATS, REORGi prepisivanje upita ključni su za održavanje performansi.


43) Objasnite razliku između particioniranja tabličnog prostora i particioniranja tablice u DB2.

Iako se često brkaju, ovi koncepti se razlikuju po opsegu.

  • Particioniranje tabličnog prostora: Dijeli podatke na razini pohrane, raspoređujući dijelove tabličnog prostora na više particija.
  • Particioniranje tablice: Dijeli jednu tablicu na particije na temelju vrijednosti stupaca (npr. raspon, hash).
svojstvo Particioniranje tabličnog prostora Particioniranje tablice
Djelokrug Fizička pohrana Logička organizacija tablice
Svrha Upravljivost, skalabilnost Optimizacija upita
Primjer Dijeljenje datoteka za pohranu Podjela prodaje po godinama

Obje metode poboljšavaju skalabilnost, ali particioniranje tablice je posebno moćno za paralelne upite i rezanje particija.


44) Koje su različite vrste okidača u DB2 i njihovi slučajevi upotrebe?

DB2 podržava nekoliko vrsta okidača koji automatiziraju radnje kao odgovor na izmjene podataka:

  • PRIJE okidača: Izvršava se prije naredbi INSERT, UPDATE ili DELETE kako bi se provela poslovna pravila.
  • NAKON okidača: Izvršava se nakon modifikacija, često se koristi za reviziju.
  • UMJESTO Okidača: Odnosi se na prikaze, omogućujući izmjene prikaza preusmjeravanjem na osnovne tablice.

Primjer: Okidač BEFORE može potvrditi da su vrijednosti plaća nenegativne prije umetanja, dok okidač AFTER može zabilježiti svako brisanje u tablicu revizije. Ovi okidači poboljšavaju integritet podataka i smanjuju ovisnost o kodu aplikacije.


45) Kako DB2 rješava sigurnost i autentifikaciju?

DB2 provodi sigurnost putem autentifikacija, autorizacija i privilegijeAutentifikacija provjerava identitet korisnika, često putem operacijskog sustava, Kerberosa ili LDAP integracije. Autorizacija određuje čemu korisnik može pristupiti, a definiraju je uloge, grupe i privilegije. Privilegije mogu biti na razini objekta (tablice, prikazi) ili na razini sustava (stvaranje baza podataka). Na primjer, programer može imati SELECT privilegiju na tablici, ali nema prava INSERT. DB2 također podržava sigurnost na razini redaka i šifriranje podataka (i u mirovanju i u prijenosu). Ovaj slojeviti pristup osigurava usklađenost s sigurnosnim politikama i propisima poduzeća poput GDPR-a i HIPAA-e.


46) Koje su prednosti korištenja materijaliziranih tablica upita (MQT) u DB2?

Materijalizirane tablice upita (MQT) fizički pohranjuju rezultate upita, slično indeksiranim prikazima u drugim RDBMS-ovima.

Prednosti:

  • Smanjite vrijeme odgovora na upit prethodnim izračunavanjem rezultata.
  • Podržava prepisivanje upita, gdje DB2 automatski zamjenjuje upite ekvivalentnim MQT rezultatima.
  • Optimizirajte OLAP opterećenja s unaprijed agregiranim podacima.

Primjer: Aplikacija za izvještavanje o prodaji može stvoriti MQT koji sažima prodaju po regiji i mjesecu. Umjesto ponovnog izračunavanja ukupnih iznosa svaki put, upiti dohvaćaju rezultate iz unaprijed izgrađenog MQT-a, drastično smanjujući vrijeme izvršavanja. MQT-ovi su posebno učinkoviti u okruženjima skladištenja podataka.


47) Objasnite sigurnost na razini redaka i kako se ona može implementirati u DB2.

Sigurnost na razini redaka ograničava pristup pojedinačnim retcima u tablici na temelju korisničkih uloga ili uvjeta. DB2 to implementira pomoću dozvole za retkeAdministratori definiraju predikate koji filtriraju vidljive retke po korisniku. Na primjer:

CREATE PERMISSION emp_perm ON EMPLOYEE
FOR ROWS WHERE DEPT_ID = (SELECT DEPT_ID FROM USER_DEPARTMENTS WHERE USER_ID = SESSION_USER)
ENFORCED FOR ALL ACCESS ENABLE;

Ovdje zaposlenici vide samo retke koji pripadaju njihovom odjelu. Ovaj pristup poboljšava usklađenost osiguravajući da su osjetljivi podaci, poput kadrovske službe ili financijskih zapisa, vidljivi samo ovlaštenom osoblju.


48) Što je RUNSTATS u DB2 i zašto je važan?

RUNSTATS je uslužni program koji ažurira statistiku kataloga o tablicama i indeksima. Optimizator koristi ovu statistiku za određivanje učinkovitih putova pristupa. Bez točne statistike, DB2 može odabrati neoptimalne planove, poput izvođenja skeniranja tablice umjesto korištenja indeksa. Na primjer, nakon skupnog učitavanja milijuna redaka u tablicu prodaje, pokretanje RUNSTATS-a osigurava da optimizator prepozna novu distribuciju podataka. Redovito izvršavanje RUNSTATS-a, posebno nakon velikih promjena podataka, ključno je za dosljedne performanse upita i točne odluke optimizatora.


49) Kako optimizirati DB2 za OLAP u odnosu na OLTP opterećenja?

OLAP (analitička) i OLTP (transakcijska) opterećenja imaju različite zahtjeve.

  • Optimizacija OLTP-a: Usredotočite se na konkurentnost, indeksiranje za brzo pretraživanje, zaključavanje na razini redaka i normalizirane sheme.
  • Optimizacija OLAP-a: Naglasite velika skeniranja, agregacije, particioniranje, materijalizirane tablice upita i denormalizaciju.

Primjer:

  • OLTP sustav za bankarstvo koristi indekse na ID-ovima računa za brza ažuriranja.
  • OLAP sustav za analitiku prodaje koristi particionirane tablice po godinama i MQT-ove za prethodno agregirano izvještavanje.

Balansiranje ovih opterećenja često zahtijeva odvojene sustave ili značajke upravljanja opterećenjem unutar DB2.


50) Koje su prednosti i nedostaci izvorne XML pohrane u DB2?

DB2 podržava izvornu XML pohranu koristeći XML tip podataka, što omogućuje strukturirano pohranjivanje i ispitivanje XML dokumenata.

Prednosti:

  • Pohranjujte i šaljite upite za XML bez usitnjavanja u relacijske tablice.
  • Podrška za XQuery i SQL/XML omogućuje fleksibilno dohvaćanje podataka.
  • Idealno za aplikacije koje razmjenjuju podatke u XML-u (npr. SOA-bazirani sustavi).

Nedostaci:

  • Veći opterećenje pohrane u usporedbi s relacijskim strukturama.
  • Upiti duboko ugniježđenog XML-a mogu biti sporiji.

Primjer: Zdravstveni sustav može pohranjivati ​​​​zapise pacijenata kao XML dokumente kako bi zabilježio složene hijerarhijske strukture, ali DBA-ovi moraju pažljivo pratiti performanse i dizajnirati indekse.


🔍 Najčešća pitanja na intervjuu za DB2 s primjerima iz stvarnog svijeta i strateškim odgovorima

Evo 10 pažljivo odabranih pitanja u stilu DB2 intervjua s jakim primjerima odgovora. Ona kombiniraju elemente znanja, ponašanja i situacije kako bi odražavala što menadžeri za zapošljavanje očekuju u profesionalnim intervjuima.


1) Koje su ključne razlike između DB2 i drugih relacijskih sustava baza podataka poput Oracle ili SQL Server?

Očekivano od kandidata: Anketar želi procijeniti znanje o jedinstvenim značajkama DB2 platforme i može li je kandidat razlikovati od konkurencije.

Primjer odgovora:
„DB2 pruža visoke performanse za transakcijska i analitička opterećenja, s jakom podrškom za mainframeove i distribuirane sustave. Za razliku od SQL Servera, DB2 ima čvršću integraciju s z/OS okruženjima. U usporedbi s…“ Oracle, DB2 je često isplativiji u licenciranju i nudi značajke poput pureXML-a za izvorno rukovanje XML podacima. Ove prednosti čine DB2 posebno vrijednim za poduzeća kojima je potrebna skalabilnost i pouzdanost na kritičnim sustavima.


2) Možete li objasniti kako DB2 rješava konkurentnost i mehanizme zaključavanja?

Očekivano od kandidata: Razumijevanje izolacije transakcija i integriteta podataka u DB2.

Primjer odgovora:
„DB2 koristi višestruko granularno zaključavanje za upravljanje konkurentnošću, što znači da se zaključavanja mogu primijeniti na različitim razinama kao što su redak, stranica ili tablica. Podržava razine izolacije poput ponovljivog čitanja, stabilnosti čitanja i stabilnosti kursora kako bi uravnotežio performanse s konzistentnošću podataka. Mehanizam baze podataka također koristi eskalaciju zaključavanja kada se zatraži previše zaključavanja na preciznoj razini, pretvarajući ih u zaključavanja više razine kako bi se uštedjeli sistemski resursi.“


3) Recite mi o situaciji kada ste morali riješiti kritičan problem s performansama DB2 sustava. Kakav je bio vaš pristup?

Očekivano od kandidata: Sposobnost rješavanja problema i sustavnog rješavanja problema.

Primjer odgovora:
„U mojoj posljednjoj ulozi, iskusili smo ozbiljno usporavanje u batch poslovima. Počeo sam provjeravanjem sistemskih kataloga i snimaka monitora performansi kako bih identificirao skupe upite. Zatim sam pregledao putove pristupa pomoću EXPLAIN-a i otkrio da nedostajući indeksi uzrokuju skeniranje cijele tablice. Stvaranjem ciljanih indeksa i ažuriranjem statistike uspio sam smanjiti vrijeme izvođenja za 70 posto. To je naglasilo važnost proaktivnog praćenja i podešavanja u DB2 okruženjima.“


4) Kako biste dizajnirali DB2 bazu podataka koja podržava i OLTP i analitička opterećenja?

Očekivano od kandidata: Razumijevanje optimizacije hibridnog radnog opterećenja.

Primjer odgovora:
„Implementirao bih normaliziranu shemu za OLTP kako bih održao integritet podataka i osigurao brzu obradu transakcija. Za analitička opterećenja dizajnirao bih materijalizirane tablice upita i koristio strategije particioniranja za poboljšanje performansi upita. DB2-ova BLU Acceleration stupčasta pohrana također bi se mogla iskoristiti za brže analitičke upite. Ovaj pristup osigurava da je svaka vrsta opterećenja optimizirana bez žrtvovanja stabilnosti sustava.“


5) Možete li opisati zahtjevan projekt u kojem ste morali migrirati bazu podataka na DB2?

Očekivano od kandidata: Iskustvo sa složenim migracijama i prilagodljivošću.

Primjer odgovora:
„Na prethodnoj poziciji bio sam dio tima zaduženog za migraciju Oracle baze podataka u DB2 na z/OS-u. Izazov je uključivao prevođenje PL/SQL procedura u DB2-kompatibilan SQL PL. Također smo morali upravljati razlikama u tipovima podataka i strategijama indeksiranja. Kako bismo osigurali nesmetanu migraciju, izgradili smo testna okruženja za validaciju funkcionalnosti, optimizirali upite za DB2 i kreirali detaljne planove prelaska kako bismo smanjili vrijeme zastoja. Projekt je bio uspješan i značajno je smanjio troškove licenciranja.


6) Kako se nosite s kratkim rokovima kada se više projekata vezanih uz DB2 natječe za vašu pažnju?

Očekivano od kandidata: Vještine upravljanja vremenom i određivanja prioriteta.

Primjer odgovora:
„Prvo procjenjujem utjecaj svakog projekta na poslovanje. Na primjer, prekid proizvodnje uvijek ima prioritet nad zahtjevom za razvoj. Zatim jasno komuniciram sa zainteresiranim stranama o realnim vremenskim rokovima i koristim alate za raspoređivanje kako bih učinkovito rasporedio vrijeme. Na prethodnom poslu, ova mi je metoda pomogla u upravljanju kritičnim zadacima podešavanja baze podataka i dugoročnim projektima nadogradnje bez ugrožavanja kvalitete.“


7) Koje strategije koristite za osiguranje sigurnosti DB2 baze podataka i usklađenosti s propisima?

Očekivano od kandidata: Svijest o najboljim sigurnosnim praksama i okvirima za usklađenost.

Primjer odgovora:
„Slijedim načelo najmanjih privilegija osiguravajući da korisnici imaju samo pristup potreban za njihove uloge. Omogućujem značajke revizije u DB2 za praćenje aktivnosti korisnika i konfiguriram šifriranje i u mirovanju i u prijenosu. U industrijama sa strogim zahtjevima za usklađenost, također osiguravam da su politike usklađene sa standardima kao što su HIPAA ili PCI DSS. Redovito instaliranje zakrpa i skeniranje ranjivosti dio su moje sigurnosne prakse.“


8) Zamislite scenarij u kojem DB2 upit traje puno dulje nego što se očekivalo. Koje biste korake poduzeli da ga optimizirate?

Očekivano od kandidata: Strukturirani pristup podešavanju upita.

Primjer odgovora:
„Moj prvi korak bio bi korištenje alata DB2 EXPLAIN za razumijevanje pristupne putanje. Ako optimizator odabire neučinkovite putanje, proučio bih ažuriranje statistike tablice. Zatim bih pregledao metode indeksiranja, particioniranja i spajanja. Ako je potrebno, razmotrio bih prepisivanje upita radi pojednostavljenja logike. U jednoj situaciji, jednostavno dodavanje složenog indeksa smanjilo je vrijeme izvođenja upita s 12 minuta na manje od 30 sekundi.“


9) Kako pratite DB2 tehnologiju i trendove u industriji?

Očekivano od kandidata: Pokazuje predanost kontinuiranom učenju.

Primjer odgovora:
"Ostajem u toku prateći" IBMslužbene DB2 blogove, sudjelovanje na forumima poput IDUG-a i prisustvovanje industrijskim konferencijama. Također mi je navika recenzirati IBM Redbooks, koji pružaju duboke tehničke uvide. U svojoj prethodnoj ulozi poticao sam timske sesije razmjene znanja gdje smo raspravljali o novim značajkama DB2 i najboljim praksama. Ove su nam aktivnosti pomogle da budemo ispred izazova u pogledu performansi i sigurnosti.


10) Možete li opisati kako ste riješili neslaganje s članom tima oko odluke o dizajnu DB2?

Očekivano od kandidata: Sposobnost profesionalnog rješavanja sukoba.

Primjer odgovora:
„U svojoj ranijoj karijeri radio sam u timu u kojem je postojalo neslaganje oko toga treba li koristiti particioniranje tablica ili indeksiranje za veliku DB2 tablicu. Predložio sam da postavimo kontrolirani test performansi kako bismo izmjerili obje opcije s realnim opterećenjima. Rezultati su jasno pokazali da particioniranje nudi bolju skalabilnost za naš slučaj upotrebe. Temeljeći odluku na podacima, a ne na mišljenjima, postigli smo konsenzus i održali pozitivan radni odnos.“