top 24 data modeling interview questions with detailed answers
Elenco delle domande e risposte dell'intervista sulla modellazione dei dati più frequenti per aiutarti a prepararti per il prossimo colloquio:
Qui condividerò alcune domande di intervista sulla modellazione dei dati e risposte dettagliate basate sulla mia esperienza durante le interazioni di interviste in alcune rinomate multinazionali IT.
Le risposte alle domande riportate di seguito possono essere di grande aiuto se hai la possibilità di affrontare o sostenere un colloquio su Data Modeling.
Domande di intervista sulla modellazione dei dati più frequenti
Iniziamo!
D # 1) Cosa intendi per Data Modeling?
Risposta: Modellazione dei dati è la rappresentazione schematica che mostra come le entità sono correlate tra loro. È il primo passo verso la progettazione del database. Creiamo prima il modello concettuale, poi il modello logico e infine passiamo al modello fisico.
In generale, i modelli di dati vengono creati nella fase di analisi e progettazione dei dati del ciclo di vita dello sviluppo del software.
Q # 2) Spiega la tua comprensione dei diversi modelli di dati?
Risposta: Esistono tre tipi di modelli di dati: concettuale, logico e fisico. Il livello di complessità e dettaglio aumenta da concettuale a logico a un modello di dati fisico.
Il modello concettuale mostra un livello elevato di progettazione di base, mentre il modello di dati fisico mostra una vista molto dettagliata del progetto.
- Modello concettuale rappresenterà solo nomi di entità e relazioni di entità. La figura 1 mostrata nella parte successiva di questo articolo descrive un modello concettuale.
- Modello logico mostrerà nomi di entità, relazioni tra entità, attributi, chiavi primarie e chiavi esterne in ciascuna entità. La figura 2 mostrata all'interno della domanda n. 4 in questo articolo descrive un modello logico.
- Modello fisico dei dati mostrerà chiavi primarie, chiavi esterne, nomi di tabelle, nomi di colonne e tipi di dati di colonne. Questa vista in realtà elabora il modo in cui il modello verrà effettivamente implementato nel database.
Q # 3) Getta un po 'di luce sulla tua esperienza nel Data Modeling rispetto ai progetti su cui hai lavorato fino ad oggi?
Nota: Questa è stata la prima domanda in una delle mie interviste di modellazione dei dati. Quindi, prima di entrare nella discussione del colloquio, dovresti avere un quadro molto chiaro di come la modellazione dei dati si adatta ai compiti su cui hai lavorato.
Risposta: Ho lavorato a un progetto per una compagnia di assicurazioni sanitarie in cui abbiamo interfacce integrate Computing che trasforma ed elabora i dati recuperati dal database Facets e invia informazioni utili ai fornitori.
Nota: Facets è una soluzione end-to-end per gestire tutte le informazioni per il settore sanitario. Il database delle faccette nel mio progetto è stato creato con SQL Server 2012.
Avevamo diverse entità collegate tra loro. Queste entità erano abbonato, membro, operatore sanitario, reclamo, fattura, iscrizione, gruppo, idoneità, piano / prodotto, commissione, capitolato, ecc.
Di seguito è riportato il modello di dati concettuale che mostra l'aspetto del progetto ad alto livello
Figura 1:
Ciascuna delle entità di dati ha i propri attributi di dati. Per esempio, un attributo dei dati del fornitore sarà il numero di identificazione del fornitore, pochi attributi dei dati dell'iscrizione saranno l'ID dell'abbonato, l'ID del membro, uno degli attributi dei dati della richiesta reclamerà l'ID, ogni prodotto o piano sanitario avrà un ID prodotto univoco e presto.
D # 4) Quali sono i diversi schemi di progettazione nella modellazione dei dati? Spiega con ilesempio?
Risposta: Esistono due diversi tipi di schemi nella modellazione dei dati
- Star Schedule
- Schema del fiocco di neve
Ora spiegherò ciascuno di questi schemi uno per uno.
Il più semplice degli schemi è lo schema a stella in cui abbiamo una tabella dei fatti al centro che fa riferimento a più tabelle delle dimensioni attorno ad essa. Tutte le tabelle delle dimensioni sono collegate alla tabella dei fatti. La chiave primaria in tutte le tabelle delle dimensioni funge da chiave esterna nella tabella dei fatti.
Il Diagramma IS (vedere la Figura 2) di questo schema assomiglia alla forma di una stella ed è per questo che questo schema è denominato schema a stella.
Figura 2:
Lo schema a stella è abbastanza semplice, flessibile ed è in forma denormalizzata.
In uno schema a fiocco di neve, il livello di normalizzazione aumenta. La tabella dei fatti qui rimane la stessa dello schema a stella. Tuttavia, le tabelle delle dimensioni vengono normalizzate. A causa di diversi livelli di tabelle delle dimensioni, sembra un fiocco di neve e quindi è denominato schema del fiocco di neve.
cos'è il port trigger e il port forwarding
Figura 3:
D # 5) Quale schema hai usato nel tuo progetto e perché?
D # 6) Quale schema è migliore: stella o fiocco di neve?
Risposta: (combinato per Q # 5 e 6): La scelta di uno schema dipende sempre dai requisiti e dagli scenari del progetto.
Poiché lo schema a stella è in forma denormalizzata, sono necessari meno join per una query. La query è semplice e viene eseguita più velocemente in uno schema a stella. Venendo allo schema del fiocco di neve, poiché è in forma normalizzata, richiederà un numero di join rispetto a uno schema a stella, la query sarà complessa e l'esecuzione sarà più lenta dello schema a stella.
Un'altra differenza significativa tra questi due schemi è che lo schema a fiocco di neve non contiene dati ridondanti e quindi è facile da mantenere. Al contrario, lo schema a stella ha un alto livello di ridondanza e quindi è difficile da mantenere.
Ora quale scegliere per il tuo progetto? Se lo scopo del tuo progetto è fare più analisi delle dimensioni, dovresti scegliere lo schema a fiocco di neve. Per esempio, se hai bisogno di scoprirlo 'Quanti abbonati sono legati a un particolare piano attualmente attivo?' - vai con il modello fiocco di neve.
Se lo scopo del tuo progetto è fare più di un'analisi delle metriche, dovresti optare per uno schema a stella. Per esempio, se hai bisogno di scoprirlo 'Qual è l'importo della richiesta pagato a un determinato abbonato?' - vai con uno schema a stella.
Nel mio progetto, abbiamo utilizzato lo schema a fiocco di neve perché dovevamo fare analisi su diverse dimensioni e generare rapporti di riepilogo per l'azienda. Un altro motivo per utilizzare lo schema a fiocco di neve è stato il minor consumo di memoria.
D # 7) Cosa intendi per dimensione e attributo?
Risposta: Le dimensioni rappresentano dati qualitativi. Per esempio, piano, prodotto, classe sono tutte dimensioni.
Una tabella delle dimensioni contiene attributi descrittivi o testuali. Per esempio, la categoria e il nome del prodotto sono gli attributi della dimensione del prodotto.
miglior software gratuito per ottimizzare le prestazioni del PC
D # 8) Che cos'è una tabella dei fatti e una tabella dei fatti?
Risposta: I fatti rappresentano dati quantitativi.
Per esempio, l'importo netto dovuto è un dato di fatto. Una tabella dei fatti contiene dati numerici e chiavi esterne da tabelle dimensionali correlate. Un esempio della tabella dei fatti può essere visto dalla Figura 2 mostrata sopra.
D # 9) Quali sono i diversi tipi di dimensioni che hai incontrato? Spiegare ciascuno di loro in dettaglio con un esempio?
Risposta: In genere sono disponibili cinque tipi di dimensioni.
a) Dimensioni conformi : Una dimensione utilizzata come parte di aree diverse viene chiamata dimensione conforme. Potrebbe essere utilizzato con diverse tabelle dei fatti in un singolo database o su numerosi data mart / magazzini.
Per esempio, se la dimensione dell'abbonato è collegata a due tabelle dei fatti: fatturazione e reclamo, la dimensione dell'abbonato verrà trattata come una dimensione conforme.
b) Dimensione spazzatura : È una tabella delle dimensioni che comprende attributi che non hanno un posto nella tabella dei fatti o in nessuna delle tabelle delle dimensioni correnti. In genere , queste sono proprietà come flag o indicatori.
Per esempio, può essere un flag di idoneità membro impostato come 'Y' o 'N' o qualsiasi altro indicatore impostato come vero / falso, commenti specifici, ecc. se manteniamo tutti questi attributi dell'indicatore nella tabella dei fatti, la sua dimensione viene aumentata. Così , combiniamo tutti questi attributi e inseriamo una singola tabella dimensionale chiamata dimensione spazzatura con ID spazzatura univoci con una possibile combinazione di tutti i valori dell'indicatore.
c) Dimensione del gioco di ruolo : Queste sono le dimensioni utilizzate per più scopi nello stesso database.
Per esempio, una dimensione data può essere utilizzata per 'Data del reclamo', 'Data di fatturazione' o 'Data del termine del piano'. Così , tale dimensione sarà chiamata dimensione del gioco di ruolo. La chiave primaria della dimensione Data verrà associata a più chiavi esterne nella tabella dei fatti.
d) Dimensione a modifica lenta (SCD): Queste sono le più importanti tra tutte le dimensioni. Queste sono le dimensioni in cui i valori degli attributi variano nel tempo. Di seguito sono riportati i vari tipi di SCD
- Tipo 0: Queste sono le dimensioni in cui il valore dell'attributo rimane stabile nel tempo. Per esempio, Il DOB dell'abbonato è un SCD di tipo 0 perché rimarrà sempre lo stesso indipendentemente dall'ora.
- Tipo 1: Queste sono le dimensioni in cui il valore precedente dell'attributo viene sostituito dal valore corrente. Nessuna cronologia viene mantenuta nella dimensione Tipo-1. Per esempio, L'indirizzo dell'abbonato (dove l'attività richiede di mantenere l'unico indirizzo corrente dell'abbonato) può essere una dimensione di tipo 1.
- Tipo 2: Queste sono le dimensioni in cui viene preservata la storia illimitata. Per esempio, Indirizzo dell'abbonato (dove l'azienda richiede di tenere un registro di tutti gli indirizzi precedenti dell'abbonato). In questo caso verranno inserite nella tabella più righe per un abbonato con i suoi diversi indirizzi. Ci saranno alcune colonne che identificheranno l'indirizzo corrente. Per esempio, 'Data di inizio' e 'Data di fine'. La riga in cui il valore 'Data di fine' sarà vuoto conterrà l'indirizzo corrente dell'abbonato e tutte le altre righe avranno gli indirizzi precedenti dell'abbonato.
- Tipo 3: Questi sono i tipi di dimensioni in cui viene preservata la storia limitata. E usiamo una colonna aggiuntiva per mantenere la cronologia. Per esempio, Indirizzo dell'abbonato (dove l'attività richiede di tenere un registro dell'indirizzo corrente e di un solo precedente). In questo caso, possiamo dissolvere la colonna 'indirizzo' in due colonne diverse: 'indirizzo corrente' e 'indirizzo precedente'. Quindi, invece di avere più righe, avremo solo una riga che mostra l'indirizzo corrente e quello precedente dell'abbonato.
- Tipo-4: In questo tipo di dimensione, i dati storici vengono conservati in una tabella separata. La tabella delle dimensioni principali contiene solo i dati correnti. Per esempio, la tabella delle dimensioni principali avrà solo una riga per abbonato con il suo indirizzo corrente. Tutti gli altri indirizzi precedenti dell'abbonato verranno conservati nella tabella cronologica separata. Questo tipo di dimensione non viene quasi mai utilizzato.
e) Dimensione degenerata: Una dimensione degenerata è una dimensione che non è un dato di fatto ma che si presenta nella tabella dei fatti come chiave primaria. Non dispone di una propria tabella delle dimensioni. Possiamo anche chiamarlo come tabella delle dimensioni di un singolo attributo.
Ma , invece di tenerlo separato in una tabella delle dimensioni e inserire un join aggiuntivo, inseriamo questo attributo nella tabella dei fatti direttamente come chiave. Poiché non dispone di una propria tabella delle dimensioni, non può mai agire come chiave esterna nella tabella dei fatti.
D # 10) Dai la tua idea riguardo ai fatti privi di fatti? E perché lo usiamo?
Risposta: La tabella dei fatti senza fatti è una tabella dei fatti che non contiene alcuna misura dei fatti. Ha solo le chiavi di dimensione in esso.
A volte, nell'azienda possono sorgere determinate situazioni in cui è necessario disporre di una tabella dei fatti priva di fatti.
Per esempio, supponendo di mantenere un sistema di registrazione delle presenze dei dipendenti, è possibile avere una tabella dei fatti priva di fatti con tre chiavi.
ID Dipendente |
Department_ID |
Time_ID |
Puoi vedere che la tabella sopra non contiene alcuna misura. Ora, se vuoi rispondere alla domanda seguente, puoi farlo facilmente utilizzando la singola tabella dei fatti senza fatti sopra invece di avere due tabelle dei fatti separate:
'Quanti dipendenti di un determinato reparto erano presenti in un determinato giorno?'
Quindi, la tabella dei fatti senza fatti offre flessibilità al design.
D # 11) Distinguere tra OLTP e OLAP?
Risposta: OLTP sta per Sistema di elaborazione delle transazioni online & OLAP sta per Sistema di elaborazione analitica online . OLTP conserva i dati transazionali dell'azienda e generalmente è altamente normalizzato. Al contrario, OLAP è a scopo di analisi e reporting ed è in forma denormalizzata.
Questa differenza tra OLAP e OLTP ti dà anche la possibilità di scegliere il design dello schema. Se il tuo sistema è OLTP, dovresti andare con il design dello schema a stella e se il tuo sistema è OLAP, dovresti andare con lo schema del fiocco di neve.
D # 12) Cosa intendi per data mart?
Risposta: I data mart sono per la maggior parte destinati a un ramo aziendale solitario. Sono progettati per i singoli reparti.
Per esempio, Ho lavorato per una compagnia di assicurazioni sanitarie che aveva diversi dipartimenti come Finanza, Reporting, Vendite e così via.
Avevamo un data warehouse che conteneva le informazioni relative a tutti questi reparti e poi abbiamo pochi data mart costruiti sopra questo data warehouse. Questi DataMart erano specifici per ogni dipartimento. In parole semplici, puoi dire che un DataMart è un sottoinsieme di un data warehouse.
D # 13) Quali sono i diversi tipi di misure?
Risposta: Abbiamo tre tipi di misure, vale a dire
- Misure non additive
- Misure semiadditive
- Misure additive
Le misure non additive sono quelle in cima alle quali non può essere applicata alcuna funzione di aggregazione. Per esempio, un rapporto o una colonna percentuale; un flag o una colonna indicatore presente nella tabella dei fatti contenente valori come Y / N, ecc. è una misura non additiva.
Le misure semiadditive sono quelle in cima alle quali possono essere applicate alcune (ma non tutte) funzioni di aggregazione. Per esempio, tasso di commissione o saldo del conto.
Le misure additive sono quelle in cima alle quali possono essere applicate tutte le funzioni di aggregazione. Per esempio, unità acquistate.
D # 14) Cos'è una chiave surrogata? In che modo è diverso da una chiave primaria?
Risposta: La chiave surrogata è un identificatore univoco o una chiave del numero di sequenza generata dal sistema che può fungere da chiave primaria. Può essere una colonna o una combinazione di colonne. A differenza di una chiave primaria, non viene prelevata dai campi dati dell'applicazione esistenti.
D # 15) È vero che tutti i database dovrebbero essere in 3NF?
Risposta: Non è obbligatorio che un database sia in 3NF. tuttavia , se il tuo scopo è la facile manutenzione dei dati, meno ridondanza e un accesso efficiente, dovresti optare per un database denormalizzato.
D # 16) Ti sei mai imbattuto nello scenario delle relazioni ricorsive? Se sì, come l'hai gestita?
Risposta: Una relazione ricorsiva si verifica nel caso in cui un'entità è correlata a se stessa. Sì, mi sono imbattuto in uno scenario del genere.
Parlando del dominio dell'assistenza sanitaria, è una possibilità che un fornitore di assistenza sanitaria (ad esempio, un medico) sia un paziente di qualsiasi altro operatore sanitario. Perché , se il medico stesso si ammala e necessita di un intervento chirurgico, dovrà visitare un altro medico per ottenere il trattamento chirurgico.
Così , in questo caso, l'ente - fornitore di assistenza sanitaria è correlato a se stesso. Una chiave straniera per il numero dell'assicurazione sanitaria dovrà essere presente nella cartella di ciascun membro (paziente).
D # 17) Elenca alcuni errori comuni riscontrati durante la modellazione dei dati?
Risposta: Alcuni errori comuni riscontrati durante la modellazione dei dati sono:
- Costruire enormi modelli di dati : I modelli di dati di grandi dimensioni sono come avere più errori di progettazione. Prova a limitare il tuo modello di dati a non più di 200 tabelle.
- Mancanza di scopo : Se non sai a cosa è destinata la tua soluzione aziendale, potresti trovare un modello di dati errato. Pertanto, avere chiarezza sullo scopo aziendale è molto importante per elaborare il giusto modello di dati.
- Uso inappropriato di chiavi surrogate : La chiave surrogata non deve essere utilizzata inutilmente. Usa la chiave surrogata solo quando la chiave naturale non può servire allo scopo di una chiave primaria.
- Denormalizzazione non necessaria : Non denormalizzare fino a quando ea meno che non si disponga di un motivo aziendale solido e chiaro per farlo, perché la denormalizzazione crea dati ridondanti che sono difficili da mantenere.
D # 18) Qual è il numero di tabelle figlie che possono essere create da una singola tabella genitore?
Risposta: Il numero di tabelle figlio che possono essere create dalla singola tabella padre è uguale al numero di campi / colonne nella tabella padre che non sono chiavi.
D # 19) I dettagli sulla salute del dipendente sono nascosti al suo datore di lavoro dal fornitore di assistenza sanitaria. Quale livello di occultamento dei dati è questo? Concettuale, fisico o esterno?
Risposta: Questo è lo scenario di un livello esterno di occultamento dei dati.
D # 20) Qual è la forma della tabella dei fatti e della tabella delle dimensioni?
Risposta: In genere, la tabella dei fatti è in forma normalizzata e la tabella delle dimensioni è in forma denormalizzata.
D # 21) Di quali particolari avresti bisogno per elaborare un modello concettuale in un progetto nel settore sanitario?
Risposta: Per un progetto sanitario, i dettagli di seguito sarebbero sufficienti per progettare un modello concettuale di base
- Diverse categorie di piani e prodotti sanitari.
- Tipo di abbonamento (di gruppo o individuale).
- Insieme di fornitori di assistenza sanitaria.
- Panoramica del processo di reclamo e fatturazione.
D # 22) Tricky one: se un vincolo univoco viene applicato a una colonna, genererà un errore se provi a inserire due valori nulli in essa?
Risposta: No, in questo caso non verrà generato alcun errore perché un valore null è diverso da un altro valore null. Quindi, più di un null verrà inserito nella colonna senza alcun errore.
cos'è un buon servizio di posta elettronica
D # 23) Puoi citare un esempio di un'entità sottotipo e super-tipo?
Risposta: Sì, supponiamo di avere queste diverse entità: veicolo, automobile, bicicletta, auto economica, auto familiare, auto sportiva.
Qui, un veicolo è un'entità super-tipo. Auto e moto sono le sue entità di sottotipo. Inoltre, le auto economiche, le auto sportive e le auto familiari sono entità di sottotipo della sua entità super-tipo: l'auto.
Un'entità di super-tipo è quella che si trova a un livello superiore. Le entità di sottotipo sono quelle raggruppate sulla base di determinate caratteristiche. Per esempio, tutte le biciclette sono a due ruote e tutte le auto sono a quattro ruote. E poiché entrambi sono veicoli, la loro entità super-tipo è 'veicolo'.
D # 24) Qual è il significato dei metadati?
Risposta: I metadati sono dati sui dati. Ti dice che tipo di dati sono effettivamente memorizzati nel sistema, qual è il loro scopo e per chi sono destinati.
Conclusione
- Comprensione pratica di Modellazione dei dati concetto e come si inserisce nei compiti da te svolti è molto necessario per decifrare un'intervista di modellazione dei dati.
- Gli argomenti più comunemente richiesti in Modellazione dei dati intervista sono: diversi tipi di modelli di dati, tipi di schemi, tipi di dimensioni e normalizzazione.
- Preparati anche per domande basate su scenari.
Suggerirei che ogni volta che rispondi a una domanda all'intervistatore, è meglio che spieghi l'idea attraverso un esempio. Ciò dimostrerebbe che hai effettivamente lavorato in quell'area e che capisci molto bene il nucleo del concetto.
Ti auguro il meglio!!