top 24 data modeling interview questions with detailed answers
Lista celor mai frecvente întrebări și răspunsuri la interviu pentru modelarea datelor pentru a vă ajuta să vă pregătiți pentru următorul interviu:
Aici voi împărtăși câteva întrebări de interviuri de modelare a datelor și răspunsuri detaliate bazate pe propria experiență în timpul interacțiunilor de interviu în câteva MNC-uri IT renumite.
Mai jos, răspunsurile la întrebări vă pot fi de mare ajutor dacă aveți șansa de a vă confrunta sau de a lua un interviu cu privire la Modelarea datelor.
Cele mai frecvente întrebări de interviu pentru modelarea datelor
Să începem!
Q # 1) Ce înțelegeți prin modelarea datelor?
Răspuns: Modelarea datelor este reprezentarea schematică care arată modul în care entitățile sunt legate între ele. Este pasul inițial către proiectarea bazei de date. Mai întâi creăm modelul conceptual, apoi modelul logic și în cele din urmă trecem la modelul fizic.
În general, modelele de date sunt create în analiza datelor și faza de proiectare a ciclului de viață al dezvoltării software-ului.
Q # 2) Explicați-vă înțelegerea diferitelor modele de date?
Răspuns: Există trei tipuri de modele de date - conceptuale, logice și fizice. Nivelul de complexitate și detaliu crește de la conceptual la logic la un model de date fizice.
Modelul conceptual prezintă un nivel ridicat de bază al proiectării, în timp ce modelul de date fizice prezintă o vedere foarte detaliată a proiectării.
- Model conceptual va fi doar portretizarea numelor entității și a relațiilor entității. Figura 1 prezentată în ultima parte a acestui articol descrie un model conceptual.
- Model logic va afișa nume de entități, relații de entități, atribute, chei primare și chei străine în fiecare entitate. Figura 2 prezentată în întrebarea nr. 4 din acest articol descrie un model logic.
- Model de date fizice va afișa cheile primare, cheile străine, numele tabelelor, numele coloanelor și tipurile de date ale coloanelor. Această viziune elaborează de fapt modul în care modelul va fi implementat efectiv în baza de date.
Q # 3) Aruncați o lumină asupra experienței dvs. în modelarea datelor în ceea ce privește proiectele la care ați lucrat până în prezent?
Notă: Aceasta a fost chiar prima întrebare într-unul din interviurile mele de modelare a datelor. Deci, înainte de a intra în discuția interviului, ar trebui să aveți o imagine foarte clară a modului în care modelarea datelor se încadrează în sarcinile la care ați lucrat.
Răspuns: Am lucrat la un proiect pentru o companie furnizor de asigurări de sănătate în care avem construite interfețe Tehnica de calcul care transformă și procesează datele preluate din baza de date Facets și trimite informații utile furnizorilor.
Notă: Facets este o soluție cap la cap pentru a gestiona toate informațiile pentru industria de îngrijire a sănătății. Baza de date a fațetelor din proiectul meu a fost creată cu SQL Server 2012.
Aveam entități diferite care erau legate între ele. Aceste entități erau abonat, membru, furnizor de asistență medicală, cerere, factură, înscriere, grup, eligibilitate, plan / produs, comision, capitație etc.
Mai jos este modelul conceptual de date care arată cum arăta proiectul la nivel înalt
Figura 1:
Fiecare dintre entitățile de date are propriile sale atribute de date. De exemplu, un atribut de date al furnizorului va fi numărul de identificare al furnizorului, puține atribute de date ale calității de membru vor fi ID-ul abonatului, ID-ul de membru, unul dintre atributele de date ale revendicării va fi ID-ul revendicării, fiecare produs medical sau plan va avea un ID de produs unic și curând.
Q # 4) Care sunt diferitele scheme de proiectare din Modelarea datelor? Explicați cuexemplu?
Răspuns: Există două tipuri diferite de scheme în modelarea datelor
- Program de stele
- Schema fulgului de zăpadă
Acum, voi explica fiecare dintre aceste scheme unul câte unul.
Cea mai simplă dintre scheme este schema de stele, unde avem un tabel de fapte în centru care face referire la mai multe tabele de dimensiuni din jurul său. Toate tabelele de dimensiuni sunt conectate la tabelul de date. Cheia principală din toate tabelele de dimensiuni acționează ca o cheie străină în tabelul de date.
Diagrama IS (vezi Figura 2) din această schemă seamănă cu forma unei stele și de aceea această schemă este denumită schemă stelară.
Figura 2:
Schema stelară este destul de simplă, flexibilă și este într-o formă de-normalizată.
Într-o schemă de fulgi de zăpadă, nivelul de normalizare crește. Tabelul de informații aici rămâne același ca în schema stelelor. Cu toate acestea, tabelele de dimensiuni sunt normalizate. Datorită mai multor straturi de tabele de dimensiuni, arată ca un fulg de zăpadă și astfel este denumit schemă de fulgi de zăpadă.
întrebări de interviu despre serviciile de odihnă și săpun
Figura 3:
Q # 5) Ce schemă ați folosit în proiectul dvs. și de ce?
Q # 6) Care schemă este mai bună - stea sau fulg de zăpadă?
Răspuns: (combinat pentru Q # 5 și 6): Alegerea unei scheme depinde întotdeauna de cerințele și scenariile proiectului.
Deoarece schema stelară este într-o formă de-normalizată, aveți nevoie de mai puține îmbinări pentru o interogare. Interogarea este simplă și rulează mai rapid într-o schemă stea. Venind la schema fulgului de zăpadă, deoarece este într-o formă normalizată, va necesita un număr de îmbinări în comparație cu o schemă stea, interogarea va fi complexă și execuția va fi mai lentă decât schema stea.
O altă diferență semnificativă între aceste două scheme este că schema fulgului de zăpadă nu conține date redundante și, prin urmare, este ușor de întreținut. Dimpotrivă, schema stelară are un nivel ridicat de redundanță și, prin urmare, este dificil de întreținut.
Acum, care să alegeți pentru proiectul dvs.? Dacă scopul proiectului dvs. este de a face mai mult din analiza dimensiunilor, ar trebui să alegeți schema fulgului de zăpadă. De exemplu, dacă trebuie să afli asta „Câți abonați sunt legați de un anumit plan care este activ în prezent?” - mergeți cu modelul fulg de zăpadă.
Dacă scopul proiectului dvs. este de a face mai mult o analiză metrică, ar trebui să mergeți cu o schemă stelară. De exemplu, dacă trebuie să afli asta „Care este suma cerută pentru un anumit abonat?” - mergeți cu o schemă stelară.
În proiectul meu, am folosit schema fulgului de zăpadă pentru că a trebuit să facem analize pe mai multe dimensiuni și să generăm rapoarte rezumative pentru companie. Un alt motiv pentru utilizarea schemei fulgi de zăpadă a fost că este consumul mai mic de memorie.
Q # 7) Ce înțelegeți după dimensiune și atribut?
Răspuns: Dimensiunile reprezintă date calitative. De exemplu, planul, produsul, clasa sunt toate dimensiunile.
Un tabel de dimensiuni conține atribute descriptive sau textuale. De exemplu, categoria de produse și numele produsului sunt atributele dimensiunii produsului.
Q # 8) Ce este un tabel de fapte și fapte?
Răspuns: Faptele reprezintă date cantitative.
De exemplu, suma netă datorată este un fapt. Un tabel de date conține date numerice și chei străine din tabele dimensionale conexe. Un exemplu al tabelului de date poate fi văzut din Figura 2 prezentată mai sus.
Q # 9) Care sunt diferitele tipuri de dimensiuni pe care le-ați întâlnit? Explicați fiecare dintre ele în detaliu cu un exemplu?
Răspuns: Există de obicei cinci tipuri de dimensiuni.
a) Dimensiuni conformate : O dimensiune care este utilizată ca parte a diferitelor zone se numește dimensiune conformă. Poate fi utilizat cu diferite tabele de date într-o singură bază de date sau în numeroase date / depozite de date.
De exemplu, dacă dimensiunea de abonat este conectată la două tabele de facturi - facturare și revendicare, atunci dimensiunea de abonat ar fi tratată ca o dimensiune conformă.
b) Dimensiunea junk : Este un tabel de dimensiuni care cuprinde atribute care nu au un loc în tabelul de date sau în niciunul din tabelele de dimensiuni actuale. În general , acestea sunt proprietăți precum steaguri sau indicatori.
De exemplu, poate fi un semnalizator de eligibilitate pentru membri setat ca „Y” sau „N” sau orice alt indicator setat ca fiind adevărat / fals, orice comentarii specifice etc. dacă păstrăm toate aceste atribute ale indicatorului în tabelul de date, atunci dimensiunea acestuia crește. Asa de , combinăm toate aceste atribute și punem într-un singur tabel de dimensiuni numit dimensiune junk cu ID-uri junk unice, cu o posibilă combinație a tuturor valorilor indicatorului.
c) Dimensiunea jocului de rol : Acestea sunt dimensiunile utilizate în mai multe scopuri în aceeași bază de date.
De exemplu, o dimensiune de dată poate fi utilizată pentru „Data revendicării”, „Data facturării” sau „Data termenului planului”. Asa de , o astfel de dimensiune va fi numită o dimensiune de rol. Cheia principală a parametrului Data va fi asociată cu mai multe chei străine din tabelul de date.
d) Dimensiunea care se schimbă încet (SCD): Acestea sunt cele mai importante dintre toate dimensiunile. Acestea sunt dimensiunile în care valorile atributelor variază în funcție de timp. Mai jos sunt diferite tipuri de SCD-uri
- Tipul 0: Acestea sunt dimensiunile în care valoarea atributelor rămâne constantă în timp. De exemplu, DOB-ul abonatului este un SCD de tip 0, deoarece va rămâne întotdeauna același, indiferent de timp.
- Tipul 1: Acestea sunt dimensiunile în care valoarea anterioară a atributului este înlocuită cu valoarea curentă. Niciun istoric nu este menținut în dimensiunea de tip 1. De exemplu, Adresa abonatului (în cazul în care compania solicită să păstreze singura adresă actuală a abonatului) poate fi o dimensiune de tip 1.
- Tipul 2: Acestea sunt dimensiunile în care se păstrează istoria nelimitată. De exemplu, Adresa abonatului (în cazul în care compania solicită să țină o evidență a tuturor adreselor anterioare ale abonatului). În acest caz, mai multe rânduri pentru un abonat vor fi inserate în tabel cu adresele sale diferite. Vor exista câteva coloane care vor identifica adresa curentă. De exemplu, „Data de începere” și „Data de încheiere”. Rândul în care valoarea „Data de încheiere” va fi necompletată va conține adresa curentă a abonatului, iar toate celelalte rânduri vor avea adresele anterioare ale abonatului.
- Tipul 3: Acestea sunt tipul de dimensiuni în care se păstrează o istorie limitată. Și folosim o coloană suplimentară pentru a menține istoricul. De exemplu, Adresa abonatului (în cazul în care compania necesită păstrarea unei evidențe a actualei și a unei adrese anterioare). În acest caz, putem dizolva coloana „adresă” în două coloane diferite - „adresă curentă” și „adresă anterioară”. Deci, în loc să avem mai multe rânduri, vom avea doar un rând care să afișeze actualul, precum și adresa anterioară a abonatului.
- Tipul 4: În acest tip de dimensiune, datele istorice sunt păstrate într-un tabel separat. Tabelul principal de dimensiuni conține doar datele curente. De exemplu, tabelul principal de dimensiuni va avea doar un rând pentru fiecare abonat care își ține adresa curentă. Toate celelalte adrese anterioare ale abonatului vor fi păstrate în tabelul istoric separat. Acest tip de dimensiune este aproape niciodată folosit.
e) Dimensiune degenerată: O dimensiune degenerată este o dimensiune care nu este un fapt, dar se prezintă în tabelul de fapte ca o cheie primară. Nu are propriul tabel de dimensiuni. De asemenea, îl putem numi ca un tabel cu dimensiuni de atribut unic.
Dar , în loc să-l păstrăm separat într-un tabel de dimensiuni și să punem o unire suplimentară, punem acest atribut în tabelul de date direct ca cheie. Deoarece nu are propriul tabel de dimensiuni, nu poate acționa niciodată ca o cheie străină în tabelul de date.
Q # 10) Dă-ți ideea cu privire la un fapt lipsit de fapt? Și de ce îl folosim?
Răspuns: Tabelul de fapte factless este un tabel de fapte care nu conține nicio măsură de fapt. Are doar cheile de dimensiune în ea.
Uneori, pot apărea anumite situații în afacere, în care trebuie să aveți un tabel de fapt lipsit de fapt.
De exemplu, să presupunem că mențineți un sistem de evidență a prezenței angajaților, puteți avea un tabel de fapt care are trei chei.
Card de identitate al angajatului |
ID_departament |
Time_ID |
Puteți vedea că tabelul de mai sus nu conține nicio măsură. Acum, dacă doriți să răspundeți la întrebarea de mai jos, puteți face cu ușurință folosind tabelul de fapt unic de mai sus decât să aveți două tabele de fapt separate:
cel mai bun convertor video pentru Mac
„Câți angajați ai unui anumit departament au fost prezenți într-o anumită zi?”
Așadar, tabelul de fapte infatate oferă flexibilitate proiectării.
Q # 11) Distingeți între OLTP și OLAP?
Răspuns: OLTP înseamnă Sistem de procesare a tranzacțiilor online & OLAP reprezintă Sistem de procesare analitică online . OLTP menține datele tranzacționale ale companiei și, în general, este extrem de normalizată. Dimpotrivă, OLAP este în scopuri de analiză și raportare și este într-o formă des-normalizată.
Această diferență între OLAP și OLTP vă oferă, de asemenea, calea către alegerea proiectării schemei. Dacă sistemul dvs. este OLTP, ar trebui să mergeți cu schema de stele și dacă sistemul dvs. este OLAP, ar trebui să mergeți cu schema fulg de zăpadă.
Q # 12) Ce înțelegeți prin data mart?
Răspuns: Data marts este în cea mai mare parte destinată unei ramuri solitare de afaceri. Acestea sunt concepute pentru departamentele individuale.
De exemplu, Obișnuiam să lucrez pentru o companie care furnizează asigurări de sănătate, care avea diferite departamente, cum ar fi Finanțe, Raportare, Vânzări și așa mai departe.
Am avut un depozit de date care păstra informațiile referitoare la toate aceste departamente și apoi avem câteva marturi de date construite deasupra acestui depozit de date. Aceste DataMart erau specifice fiecărui departament. Cu cuvinte simple, puteți spune că un DataMart este un subset al unui depozit de date.
Q # 13) Care sunt diferitele tipuri de măsuri?
Răspuns: Avem trei tipuri de măsuri și anume
- Măsuri non-aditive
- Măsuri semi-aditive
- Măsuri aditive
Măsurile non-aditive sunt cele pe care nu se poate aplica nicio funcție de agregare. De exemplu, un raport sau o coloană procentuală; un indicator sau o coloană indicator prezentă în tabelul de fapt care conține valori precum Y / N etc. este o măsură non-aditivă.
Măsurile semi-aditive sunt cele pe deasupra cărora pot fi aplicate unele (dar nu toate) funcții de agregare. De exemplu, rata comisionului sau soldul contului.
Măsurile aditive sunt cele pe care se pot aplica toate funcțiile de agregare. De exemplu, unități achiziționate.
Q # 14) Ce este o cheie surogat? În ce este diferit de o cheie primară?
Răspuns: Cheia surogat este un identificator unic sau o cheie de număr de secvență generată de sistem care poate acționa ca o cheie primară. Poate fi o coloană sau o combinație de coloane. Spre deosebire de o cheie principală, aceasta nu este preluată din câmpurile de date ale aplicației existente.
Q # 15) Este adevărat că toate bazele de date ar trebui să fie în 3NF?
Răspuns: Nu este obligatoriu ca o bază de date să fie în 3NF. in orice caz , dacă scopul dvs. este menținerea ușoară a datelor, redundanță mai redusă și acces eficient, atunci ar trebui să mergeți cu o bază de date denormalizată.
Q # 16) Ați dat vreodată peste scenariul relațiilor recursive? Dacă da, cum te-ai descurcat?
Răspuns: O relație recursivă apare în cazul în care o entitate este legată de ea însăși. Da, am întâlnit un astfel de scenariu.
Vorbind despre domeniul asistenței medicale, este posibil ca un furnizor de servicii medicale (să zicem, un medic) să fie un pacient al oricărui alt furnizor de servicii medicale. pentru că , dacă însuși medicul se îmbolnăvește și are nevoie de o intervenție chirurgicală, va trebui să viziteze alt medic pentru a primi tratamentul chirurgical.
Asa de , în acest caz, entitatea - furnizorul de servicii medicale este înrudită cu ea însăși. O cheie străină a numărului furnizorului de asigurări de sănătate va trebui să fie prezentată în evidența fiecărui membru (pacient).
Î # 17) Enumerați câteva greșeli frecvente întâlnite în timpul modelării datelor?
Răspuns: Câteva greșeli frecvente întâlnite în timpul modelării datelor sunt:
- Construirea de modele masive de date : Modelele de date mari sunt ca și cum ar avea mai multe defecte de proiectare. Încercați să restricționați modelul de date la cel mult 200 de tabele.
- Lipsa scopului : Dacă nu știți că este destinată soluția dvs. de afaceri, este posibil să veniți cu un model de date incorect. Așadar, claritatea scopului afacerii este foarte importantă pentru a veni cu modelul corect de date.
- Utilizarea necorespunzătoare a cheilor surogat : Cheia surogat nu trebuie utilizată inutil. Utilizați cheia surogat numai atunci când cheia naturală nu poate îndeplini scopul unei chei primare.
- Des-normalizare inutilă : Nu vă denormalizați până și cu excepția cazului în care aveți un motiv de afaceri solid și clar pentru a face acest lucru, deoarece denormalizarea creează date redundante, care sunt dificil de întreținut.
Q # 18) Care este numărul de tabele copil care pot fi create dintr-un singur tabel părinte?
Răspuns: Numărul de tabele copil care pot fi create din tabelul părinte unic este egal cu numărul de câmpuri / coloane din tabelul părinte care nu sunt chei.
cum se creează o matrice de șiruri java
Î. # 19) Detaliile privind sănătatea angajaților sunt ascunse de angajatorul său de către furnizorul de servicii medicale. Ce nivel de ascundere a datelor este acesta? Conceptual, fizic sau extern?
Răspuns: Acesta este scenariul unui nivel extern de ascundere a datelor.
Q # 20) Care este forma tabelului de fapte și a tabelului de dimensiuni?
Răspuns: În general, tabelul de fapt este în formă normalizată, iar tabelul de dimensiuni este în formă de-normalizat.
Î. # 21) Ce informații ar trebui să aveți pentru a veni cu un model conceptual într-un proiect din domeniul sănătății?
Răspuns: Pentru un proiect de îngrijire a sănătății, detaliile de mai jos ar fi suficientă cerința de a proiecta un model conceptual de bază
- Diferite categorii de planuri și produse de îngrijire a sănătății.
- Tipul abonamentului (de grup sau individual).
- Set de furnizori de servicii medicale.
- Prezentare generală a procesului de revendicare și facturare.
Q # 22) Una dificilă: Dacă se aplică o constrângere unică unei coloane, atunci va genera o eroare dacă încercați să inserați două valori nule în ea?
Răspuns: Nu, nu va arunca nicio eroare în acest caz, deoarece o valoare nulă este inegală cu o altă valoare nulă. Deci, mai mult de un nul va fi inserat în coloană fără nicio eroare.
Q # 23) Puteți cita un exemplu de entitate subtip și supertip?
Răspuns: Da, să presupunem că avem aceste entități diferite - vehicul, mașină, bicicletă, mașină economică, mașină de familie, mașină sport.
Aici, un vehicul este o entitate de tip super. Mașina și bicicleta sunt entitățile sale sub-tip. Mai mult, mașinile economice, mașinile sport și mașinile de familie sunt entități sub-tip ale super-tipului său de entitate.
O entitate de tip super este cea care se află la un nivel superior. Entitățile sub-tip sunt cele care sunt grupate împreună pe baza anumitor caracteristici. De exemplu, toate bicicletele sunt cu două roți și toate mașinile sunt cu patru roți. Și întrucât ambele sunt vehicule, deci entitatea lor de tip super este „vehicul”.
Q # 24) Care este semnificația metadatelor?
Răspuns: Metadatele sunt date despre date. Vă spune ce fel de date sunt stocate efectiv în sistem, care este scopul și pentru cine sunt destinate.
Concluzie
- Înțelegere practică a Modelarea datelor conceptul și modul în care se încadrează în sarcinile efectuate de dvs. este foarte necesar pentru a sparge un interviu de modelare a datelor.
- Cele mai frecvente subiecte din Modelarea datelor interviu sunt - diferite tipuri de modele de date, tipuri de scheme, tipuri de dimensiuni și normalizare.
- Fii bine pregătit și pentru întrebări bazate pe scenarii.
Aș sugera că ori de câte ori răspundeți la o întrebare pentru intervievator, este mai bine să explicați ideea printr-un exemplu. Acest lucru ar arăta că ați lucrat de fapt în acea zonă și înțelegeți foarte bine nucleul conceptului.
Toate cele bune!!