top 24 data modeling interview questions with detailed answers
Lijst met de meest gestelde vragen en antwoorden over gegevensmodellering tijdens sollicitatiegesprekken om u voor te bereiden op het aanstaande interview:
Hier ga ik enkele interviewvragen over datamodellering en gedetailleerde antwoorden delen op basis van mijn eigen ervaring tijdens interviewinteracties in een paar gerenommeerde IT-multinationals.
Onderstaande vraag-antwoorden kunnen van uw grote hulp zijn als u de kans krijgt om een interview over datamodellering onder ogen te zien of te nemen.
Meest gestelde vragen tijdens sollicitatiegesprekken over datamodellering
Laten we beginnen!
V # 1) Wat verstaat u onder gegevensmodellering?
Antwoord: Gegevensmodellering is de schematische weergave die laat zien hoe de entiteiten met elkaar verband houden. Het is de eerste stap op weg naar databaseontwerp. We creëren eerst het conceptuele model, dan het logische model en gaan tenslotte naar het fysieke model.
Over het algemeen worden de datamodellen gemaakt in de data-analyse- en ontwerpfase van de levenscyclus van softwareontwikkeling.
Q # 2) Verklaar uw begrip van verschillende datamodellen?
Antwoord: Er zijn drie soorten datamodellen: conceptueel, logisch en fysiek. Het niveau van complexiteit en detail neemt toe van conceptueel naar logisch naar een fysiek datamodel.
Het conceptuele model toont een zeer basaal hoog ontwerpniveau, terwijl het fysieke datamodel een zeer gedetailleerd beeld van het ontwerp laat zien.
- Conceptueel model zal alleen entiteitsnamen en entiteitsrelaties uitbeelden. Afbeelding 1 in het laatste deel van dit artikel toont een conceptueel model.
- Logisch model zal entiteitsnamen, entiteitsrelaties, attributen, primaire sleutels en externe sleutels in elke entiteit weergeven. Figuur 2 getoond in vraag # 4 in dit artikel toont een logisch model.
- Fysiek gegevensmodel toont primaire sleutels, externe sleutels, tabelnamen, kolomnamen en kolomgegevenstypen. In deze weergave wordt eigenlijk uitgewerkt hoe het model daadwerkelijk in de database zal worden geïmplementeerd.
Q # 3) Wil je wat licht werpen op je ervaring met datamodellering met betrekking tot projecten waaraan je tot nu toe hebt gewerkt?
Notitie: Dit was de allereerste vraag in een van mijn Data Modelling-interviews. Dus voordat je de interviewgesprek ingaat, moet je een heel duidelijk beeld hebben van hoe datamodellering past in de opdrachten waaraan je hebt gewerkt.
Antwoord: Ik heb gewerkt aan een project voor een zorgverzekeraar waar we interfaces hebben ingebouwd Computergebruik die de gegevens die uit de Facets-database worden opgehaald, transformeert en verwerkt en nuttige informatie naar leveranciers stuurt.
Notitie: Facets is een end-to-end-oplossing om alle informatie voor de gezondheidszorg te beheren. De facetdatabase in mijn project is gemaakt met SQL server 2012.
We hadden verschillende entiteiten die met elkaar waren verbonden. Deze entiteiten waren abonnee, lid, zorgverlener, claim, factuur, inschrijving, groep, geschiktheid, plan / product, commissie, capitulatie, enz.
Hieronder ziet u het conceptuele gegevensmodel dat laat zien hoe het project er op hoog niveau uitzag
Figuur 1:
Elk van de gegevensentiteiten heeft zijn eigen gegevensattributen. Bijvoorbeeld, een data-attribuut van de provider is het provider-identificatienummer, enkele data-attributen van het lidmaatschap zijn de abonnee-ID, lid-ID, een van de data-attributen van de claim zal claim-ID zijn, elk gezondheidsproduct of plan heeft een unieke product-ID en spoedig.
V # 4) Wat zijn de verschillende ontwerpschema's in datamodellering? Leg uit met devoorbeeld
Antwoord: Er zijn twee verschillende soorten schema's bij datamodellering
- Star Schema
- Sneeuwvlokschema
Nu zal ik elk van deze schema's een voor een uitleggen.
Het eenvoudigste schema is het sterschema, waarbij we een feitentabel in het midden hebben die verwijst naar meerdere dimensietabellen eromheen. Alle dimensietabellen zijn verbonden met de feitentabel. De primaire sleutel in alle dimensietabellen fungeert als een externe sleutel in de feitentabel.
De IS diagram (zie figuur 2) van dit schema lijkt op de vorm van een ster en daarom wordt dit schema een sterschema genoemd.
Figuur 2:
Het sterschema is vrij eenvoudig, flexibel en heeft een gedenormaliseerde vorm.
In een sneeuwvlokschema neemt het normalisatieniveau toe. De feitentabel blijft hier hetzelfde als in het sterschema. De dimensietabellen zijn echter genormaliseerd. Vanwege verschillende lagen van dimensietabellen ziet het eruit als een sneeuwvlok en daarom wordt het een sneeuwvlokschema genoemd.
beste schermopnamesoftware windows 10
Figuur 3:
V # 5) Welk schema heeft u in uw project gebruikt en waarom?
V # 6) Welk schema is beter - ster of sneeuwvlok?
Antwoord: (gecombineerd voor vraag 5 en 6): De keuze van een schema hangt altijd af van de projectvereisten en scenario's.
Aangezien het sterrenschema een gede-normaliseerde vorm heeft, hebt u minder joins nodig voor een query. De query is eenvoudig en werkt sneller in een sterschema. Als we naar het sneeuwvlokschema gaan, omdat het in genormaliseerde vorm is, vereist het een aantal joins in vergelijking met een sterschema, de query zal complex zijn en de uitvoering zal langzamer zijn dan het sterschema.
Een ander significant verschil tussen deze twee schema's is dat het sneeuwvlokschema geen overtollige gegevens bevat en daarom gemakkelijk te onderhouden is. Integendeel, het sterschema heeft een hoge mate van redundantie en is daarom moeilijk te handhaven.
Welke moet u nu kiezen voor uw project? Als het doel van uw project is om meer dimensie-analyse uit te voeren, moet u kiezen voor sneeuwvlokschema. Bijvoorbeeld, als je dat moet weten 'Hoeveel abonnees zijn gebonden aan een bepaald abonnement dat momenteel actief is?' - ga met het sneeuwvlokmodel.
Als het doel van uw project is om meer een metrische analyse uit te voeren, moet u een sterrenschema volgen. Bijvoorbeeld, als je dat moet weten 'Wat is het claimbedrag dat aan een bepaalde abonnee is betaald?' - ga met een sterrenschema.
In mijn project hebben we sneeuwvlok-schema gebruikt omdat we analyses moesten uitvoeren over verschillende dimensies en samenvattende rapporten voor het bedrijf moesten genereren. Een andere reden om het sneeuwvlokschema te gebruiken, was dat het minder geheugengebruik is.
Vraag 7) Wat verstaat u onder dimensie en attribuut?
Antwoord: Dimensies vertegenwoordigen kwalitatieve gegevens. Bijvoorbeeld, plan, product, klasse zijn allemaal dimensies.
Een dimensietabel bevat beschrijvende of tekstuele attributen. Bijvoorbeeld, de productcategorie en productnaam zijn de kenmerken van de productdimensie.
V # 8) Wat is een feitentabel?
Antwoord: Feiten vertegenwoordigen kwantitatieve gegevens.
Bijvoorbeeld, het netto verschuldigde bedrag is een feit. Een feitentabel bevat numerieke gegevens en externe sleutels uit gerelateerde dimensionale tabellen. Een voorbeeld van de feitentabel is te zien in figuur 2 hierboven.
V # 9) Wat zijn de verschillende soorten afmetingen die u bent tegengekomen? Leg ze allemaal in detail uit met een voorbeeld?
Antwoord: Er zijn doorgaans vijf soorten afmetingen.
a) Conforme afmetingen : Een dimensie die wordt gebruikt als onderdeel van verschillende gebieden, wordt een conforme dimensie genoemd. Het kan worden gebruikt met verschillende feitentabellen in een enkele database of via meerdere datamarts / magazijnen.
Bijvoorbeeld, als de abonneedimensie is verbonden met twee feitentabellen - facturering en claim, dan wordt de abonneedimensie behandeld als een conforme dimensie.
b) Ongewenste dimensie : Het is een dimensietabel die bestaat uit attributen die geen plaats hebben in de feitentabel of in een van de huidige dimensietabellen. Over het algemeen dit zijn eigenschappen zoals vlaggen of indicatoren.
Bijvoorbeeld, het kan een vlag voor het in aanmerking komen van een lid zijn die is ingesteld als ‘Y’ of ‘N’ of een andere indicator die is ingesteld als waar / onwaar, specifieke opmerkingen, enz. als we al dergelijke indicatorattributen in de feitentabel houden, wordt de omvang ervan groter. Zo we combineren al dergelijke attributen en plaatsen in een enkele dimensietabel, een junk-dimensie genaamd, met unieke junk-ID's met een mogelijke combinatie van alle indicatorwaarden.
c) Rollenspel dimensie : Dit zijn de afmetingen die voor meerdere doeleinden in dezelfde database worden gebruikt.
Bijvoorbeeld, een datumdimensie kan worden gebruikt voor 'Datum van claim', 'Factureringsdatum' of 'Plantermijndatum'. Zo een dergelijke dimensie zal een rollenspel-dimensie worden genoemd. De primaire sleutel van de dimensie Datum wordt gekoppeld aan meerdere externe sleutels in de feitentabel.
d) Langzaam veranderende dimensie (SCD): Deze zijn van alle afmetingen het belangrijkst. Dit zijn de dimensies waarbij attribuutwaarden in de tijd variëren. Hieronder staan de verschillende soorten SCD's
- Type-0: Dit zijn de dimensies waarbij de attribuutwaarde stabiel blijft in de tijd. Bijvoorbeeld, De DOB van de abonnee is een type-0 SCD omdat deze altijd hetzelfde zal blijven, ongeacht het tijdstip.
- Type 1: Dit zijn de dimensies waarbij de vorige waarde van het attribuut wordt vervangen door de huidige waarde. Er wordt geen geschiedenis bijgehouden in de Type-1-dimensie. Bijvoorbeeld, Het adres van de abonnee (waar het bedrijf het enige huidige adres van de abonnee moet behouden) kan een type 1-dimensie zijn.
- Type-2: Dit zijn de dimensies waar onbeperkte geschiedenis wordt bewaard. Bijvoorbeeld, Het adres van de abonnee (waar het bedrijf alle eerdere adressen van de abonnee moet bijhouden). In dit geval worden meerdere rijen voor een abonnee in de tabel ingevoegd met zijn / haar verschillende adressen. Er zullen enkele kolom (men) zijn die het huidige adres zullen identificeren. Bijvoorbeeld, ‘Startdatum’ en ‘Einddatum’. De rij waarin de waarde ‘Einddatum’ leeg is, bevat het huidige adres van de abonnee en alle andere rijen bevatten de vorige adressen van de abonnee.
- Type-3: Dit zijn het soort dimensies waar een beperkte geschiedenis wordt bewaard. En we gebruiken een extra kolom om de geschiedenis bij te houden. Bijvoorbeeld, Het adres van de abonnee (waar het bedrijf het huidige en slechts één eerder adres moet bijhouden). In dit geval kunnen we de kolom ‘adres’ opsplitsen in twee verschillende kolommen: ‘huidig adres’ en ‘vorig adres’. Dus in plaats van meerdere rijen te hebben, hebben we slechts één rij met het huidige en het vorige adres van de abonnee.
- Type-4: Bij dit type dimensie worden de historische gegevens in een aparte tabel bewaard. De hoofddimensietabel bevat alleen de huidige gegevens. Bijvoorbeeld, de hoofddimensietabel heeft slechts één rij per abonnee met het huidige adres. Alle andere eerdere adressen van de abonnee worden bewaard in de aparte historietabel. Dit type afmeting wordt nauwelijks gebruikt.
e) Gedegenereerde dimensie: Een gedegenereerde dimensie is een dimensie die geen feit is, maar in de feitentabel als primaire sleutel wordt gepresenteerd. Het heeft geen eigen maattabel. We kunnen het ook een dimensietabel met één kenmerk noemen.
Maar in plaats van het apart in een dimensietabel te bewaren en een extra join te plaatsen, plaatsen we dit attribuut direct als sleutel in de feitentabel. Omdat het geen eigen dimensietabel heeft, kan het nooit als een externe sleutel in de feitentabel fungeren.
V # 10) Geef uw idee over feitloze feiten? En waarom gebruiken we het?
Antwoord: Feiteloze feitentabel is een feitentabel die geen feitelijke maatstaf bevat. Het bevat alleen de afmetingssleutels.
Soms kunnen zich in het bedrijf bepaalde situaties voordoen waarin u een feitelijke feitentabel nodig heeft.
Bijvoorbeeld, Stel dat u een registratiesysteem voor de aanwezigheid van werknemers bijhoudt, dan kunt u een feitelijke feitentabel hebben met drie sleutels.
gratis grammaticacontrole beter dan grammatica
Employee_ID |
Afdelings-ID |
Time_ID |
U kunt zien dat de bovenstaande tabel geen enkele maat bevat. Als u de onderstaande vraag wilt beantwoorden, kunt u dit gemakkelijk doen door de bovenstaande feitentabel te gebruiken in plaats van twee afzonderlijke feitentabellen:
'Hoeveel medewerkers van een bepaalde afdeling waren er op een bepaalde dag aanwezig?'
De feitloze feitentabel biedt dus flexibiliteit in het ontwerp.
V # 11) Onderscheid maken tussen OLTP en OLAP?
Antwoord: OLTP staat voor de Online transactieverwerkingssysteem & OLAP staat voor de Online analytisch verwerkingssysteem OLTP houdt de transactiegegevens van het bedrijf bij en is over het algemeen sterk genormaliseerd. Integendeel, OLAP is bedoeld voor analyse- en rapportagedoeleinden en is in gede-normaliseerde vorm.
Dit verschil tussen OLAP en OLTP geeft u ook de mogelijkheid om het ontwerp van het schema te kiezen. Als uw systeem OLTP is, moet u het ontwerp van een sterschema volgen en als uw systeem OLAP is, moet u het sneeuwvlokschema gebruiken.
V # 12) Wat verstaat u onder datamart?
Antwoord: Datamarts zijn voor het grootste deel bedoeld voor een eenzame bedrijfstak. Ze zijn ontworpen voor de afzonderlijke afdelingen.
Bijvoorbeeld, Ik werkte vroeger voor een zorgverzekeraar met verschillende afdelingen, zoals Financiën, Rapportage, Verkoop enzovoort.
wat is een wifi-beveiligingssleutel
We hadden een datawarehouse waar de informatie van al deze afdelingen in zat en daarna hebben we maar weinig datamarts bovenop dit datawarehouse gebouwd. Deze DataMart waren specifiek voor elke afdeling. In eenvoudige bewoordingen kun je zeggen dat een DataMart een subset is van een datawarehouse.
V # 13) Wat zijn de verschillende soorten maatregelen?
Antwoord: We hebben drie soorten maatregelen, namelijk
- Niet-additieve maatregelen
- Semi- additieve maatregelen
- Aanvullende maatregelen
Niet-additieve maatregelen zijn degene waarop geen aggregatiefunctie kan worden toegepast. Bijvoorbeeld, een ratio- of een percentagekolom; een vlag of een indicatorkolom die in feite een tabel bevat met waarden zoals J / N, enz. is een niet-additieve maat.
Semi- additieve maatregelen zijn die waarboven sommige (maar niet alle) aggregatiefuncties kunnen worden toegepast. Bijvoorbeeld, tarief of rekeningsaldo.
Additieve maatregelen zijn degene waarop alle aggregatiefuncties kunnen worden toegepast. Bijvoorbeeld, eenheden gekocht.
V # 14) Wat is een surrogaatsleutel? Hoe verschilt het van een primaire sleutel?
Antwoord: Surrogate Key is een unieke ID of een door het systeem gegenereerde volgnummersleutel die als primaire sleutel kan dienen. Het kan een kolom zijn of een combinatie van kolommen. In tegenstelling tot een primaire sleutel, wordt deze niet opgehaald uit de bestaande applicatiegegevensvelden.
V # 15) Is dit waar dat alle databases in 3NF zouden moeten zijn?
Antwoord: Het is niet verplicht dat een database in 3NF staat. Echter Als het uw doel is om eenvoudig gegevens te onderhouden, minder redundantie en efficiënte toegang, dan moet u kiezen voor een gede-normaliseerde database.
V # 16) Ben je ooit het scenario van recursieve relaties tegengekomen? Zo ja, hoe ging u ermee om?
Antwoord: Een recursieve relatie treedt op in het geval dat een entiteit aan zichzelf verwant is. Ja, ik ben zo'n scenario tegengekomen.
Over het zorgdomein gesproken, het is mogelijk dat een zorgverlener (zeg maar een arts) een patiënt is tegenover een andere zorgverlener. Omdat als de dokter zelf ziek wordt en een operatie nodig heeft, zal hij naar een andere dokter moeten gaan voor de chirurgische behandeling.
Zo in dit geval is de entiteit - zorgverlener verwant aan zichzelf. Een externe sleutel van het nummer van de zorgverzekeraar moet in het (patiënt) dossier van elk lid staan.
V # 17) Noem een paar veelvoorkomende fouten die zijn opgetreden tijdens datamodellering.
Antwoord: Enkele veelgemaakte fouten die zijn aangetroffen tijdens datamodellering zijn:
- Bouw enorme datamodellen : Grote datamodellen hebben meer ontwerpfouten. Probeer uw gegevensmodel te beperken tot niet meer dan 200 tabellen.
- Gebrek aan doel : Als u niet weet waarvoor uw bedrijfsoplossing bedoeld is, kan het zijn dat u met een onjuist datamodel komt. Duidelijkheid hebben over het zakelijke doel is dus erg belangrijk om met het juiste datamodel te komen.
- Onjuist gebruik van surrogaatsleutels : Surrogaatsleutel mag niet onnodig worden gebruikt. Gebruik een surrogaatsleutel alleen als de natuurlijke sleutel niet het doel van een primaire sleutel kan dienen.
- Onnodige denormalisatie : Denormaliseer niet totdat en tenzij u een solide en duidelijke zakelijke reden heeft om dit te doen, omdat de-normalisatie overbodige gegevens creëert die moeilijk te onderhouden zijn.
V # 18) Wat is het aantal onderliggende tabellen dat kan worden gemaakt op basis van een enkele bovenliggende tabel?
Antwoord: Het aantal onderliggende tabellen dat kan worden gemaakt uit de enkele bovenliggende tabel is gelijk aan het aantal velden / kolommen in de bovenliggende tabel die geen sleutels zijn.
V # 19) Gezondheidsgegevens van werknemers worden door de zorgverlener voor zijn werkgever verborgen gehouden. Welk niveau van gegevens verbergen is dit? Conceptueel, fysiek of extern?
Antwoord: Dit is het scenario waarbij gegevens op een extern niveau worden verborgen.
V # 20) Wat is de vorm van een feitentabel en een afmetingstabel?
Antwoord: Over het algemeen heeft de feitentabel de genormaliseerde vorm en de dimensietabel de genormaliseerde vorm.
V # 21) Welke bijzonderheden zou u nodig hebben om een conceptueel model te bedenken in een gezondheidszorgdomeinproject?
Antwoord: Voor een gezondheidszorgproject zouden onderstaande details voldoende zijn om een conceptueel basismodel te ontwerpen
- Verschillende categorieën zorgplannen en producten.
- Soort abonnement (groep of individueel).
- Set van zorgverleners.
- Overzicht van claim- en factureringsproces.
V # 22) Lastige: als een unieke beperking wordt toegepast op een kolom, wordt er dan een fout gegenereerd als je probeert er twee nullen in in te voegen?
Antwoord: Nee, het genereert in dit geval geen fout omdat een null-waarde niet gelijk is aan een andere null-waarde. Er worden dus zonder fouten meer dan één null-waarde in de kolom ingevoegd.
V # 23) Kunt u een voorbeeld noemen van een subtype en een supertype entiteit?
Antwoord: Ja, laten we zeggen dat we deze verschillende entiteiten hebben: auto, auto, fiets, economy-auto, gezinsauto, sportwagen.
Hier is een voertuig een supertype-entiteit. Auto en fiets zijn de subtype-entiteiten. Bovendien zijn economy-auto's, sportwagens en gezinsauto's subtype-entiteiten van zijn super-type entiteit-auto.
Een super-type entiteit is degene die zich op een hoger niveau bevindt. Subtype-entiteiten zijn entiteiten die zijn gegroepeerd op basis van bepaalde kenmerken. Bijvoorbeeld, alle fietsen zijn tweewielers en alle auto's zijn vierwielers. En aangezien beide voertuigen zijn, is hun super-achtige entiteit ‘voertuig’.
Q # 24) Wat is de betekenis van metadata?
Antwoord: Metadata zijn data over data. Het vertelt u wat voor soort gegevens feitelijk in het systeem zijn opgeslagen, wat het doel is en voor wie ze bedoeld zijn.
Gevolgtrekking
- Praktisch begrip van de Gegevensmodellering concept en hoe het past in de door jou uitgevoerde opdrachten is hard nodig om een datamodelleringsinterview te kraken.
- De meest gestelde onderwerpen in Gegevensmodellering interview zijn - verschillende soorten datamodellen, soorten schema's, soorten dimensies en normalisatie.
- Wees ook goed voorbereid op scenario-gebaseerde vragen.
Ik zou willen voorstellen dat wanneer je een vraag aan de interviewer beantwoordt, het beter is dat je het idee aan de hand van een voorbeeld uitlegt. Dit zou aantonen dat je echt op dat gebied hebt gewerkt en dat je de kern van het concept heel goed begrijpt.
Al het beste!!