top 24 data modeling interview questions with detailed answers
Lista das perguntas e respostas mais frequentes da entrevista de modelagem de dados para ajudá-lo a se preparar para a próxima entrevista:
Aqui, vou compartilhar algumas perguntas da entrevista de Modelagem de Dados e respostas detalhadas com base em minha própria experiência durante interações de entrevista em algumas multinacionais de TI renomadas.
As perguntas e respostas abaixo podem ser de grande ajuda se você tiver a chance de enfrentar ou dar uma entrevista sobre modelagem de dados.
Perguntas mais frequentes da entrevista sobre modelagem de dados
Vamos começar!
P # 1) O que você entende por modelagem de dados?
Responda: Modelagem de Dados é a representação diagramática que mostra como as entidades estão relacionadas umas às outras. É o passo inicial para o design do banco de dados. Primeiro criamos o modelo conceitual, depois o modelo lógico e, finalmente, passamos para o modelo físico.
Geralmente, os modelos de dados são criados na fase de análise e design de dados do ciclo de vida de desenvolvimento de software.
Q # 2) Explique sua compreensão dos diferentes modelos de dados?
Responda: Existem três tipos de modelos de dados - conceituais, lógicos e físicos. O nível de complexidade e detalhes aumentam de conceitual para lógico e para um modelo de dados físico.
O modelo conceitual mostra um alto nível de design muito básico, enquanto o modelo de dados físico mostra uma visão muito detalhada do design.
- Modelo Conceitual estará apenas retratando nomes de entidades e relacionamentos de entidades. A Figura 1 mostrada na última parte deste artigo descreve um modelo conceitual.
- Modelo Lógico estará mostrando nomes de entidades, relacionamentos de entidades, atributos, chaves primárias e chaves estrangeiras em cada entidade. A Figura 2 mostrada na pergunta nº 4 neste artigo descreve um modelo lógico.
- Modelo de Dados Físicos estará mostrando chaves primárias, chaves estrangeiras, nomes de tabelas, nomes de colunas e tipos de dados de colunas. Essa visão realmente elabora como o modelo será realmente implementado no banco de dados.
Q # 3) Jogue alguma luz sobre sua experiência em modelagem de dados com relação aos projetos em que você trabalhou até agora?
Observação: Essa foi a primeira pergunta em uma de minhas entrevistas sobre modelagem de dados. Portanto, antes de entrar na discussão da entrevista, você deve ter uma imagem muito clara de como a modelagem de dados se encaixa nas atribuições nas quais trabalhou.
Responda: Eu trabalhei em um projeto para uma empresa de seguro saúde onde temos interfaces construídas Informática que transforma e processa os dados buscados no banco de dados do Facets e envia informações úteis aos fornecedores.
Observação: Facets é uma solução ponta a ponta para gerenciar todas as informações para o setor de saúde. O banco de dados de facetas em meu projeto foi criado com o SQL server 2012.
Tínhamos diferentes entidades ligadas entre si. Essas entidades eram assinante, membro, provedor de saúde, reclamação, fatura, inscrição, grupo, elegibilidade, plano / produto, comissão, captação, etc.
Abaixo está o modelo de dados conceitual mostrando como o projeto parecia em um alto nível
Figura 1:
Cada uma das entidades de dados possui seus próprios atributos de dados. Por exemplo, um atributo de dados do provedor será o número de identificação do provedor, alguns atributos de dados da associação serão ID do assinante, ID do membro, um dos atributos de dados do pedido reivindicará ID, cada produto ou plano de saúde terá um ID de produto exclusivo e em breve.
P # 4) Quais são os diferentes esquemas de design na modelagem de dados? Explique com oexemplo?
Responda: Existem dois tipos diferentes de esquemas na modelagem de dados
- Star Schedule
- Esquema de Floco de Neve
Agora, estarei explicando cada um desses esquemas um por um.
O mais simples dos esquemas é o esquema em estrela, onde temos uma tabela de fatos no centro que faz referência a várias tabelas de dimensão ao seu redor. Todas as tabelas de dimensão estão conectadas à tabela de fatos. A chave primária em todas as tabelas de dimensão atua como uma chave estrangeira na tabela de fatos.
O Diagrama IS (consulte a Figura 2) desse esquema se assemelha ao formato de uma estrela e é por isso que esse esquema é denominado esquema em estrela.
Figura 2:
O esquema em estrela é bastante simples, flexível e está na forma desnormalizada.
Em um esquema em floco de neve, o nível de normalização aumenta. A tabela de fatos aqui permanece a mesma do esquema em estrela. No entanto, as tabelas de dimensão são normalizadas. Devido a várias camadas de tabelas de dimensão, ele se parece com um floco de neve e, portanto, é denominado esquema de floco de neve.
implementação de lista de adjacência c ++
Figura 3:
P # 5) Qual esquema você usou em seu projeto e por quê?
P # 6) Qual esquema é melhor - estrela ou floco de neve?
Resposta: (Combinado para Q # 5 e 6): A escolha de um esquema sempre depende dos requisitos e cenários do projeto.
Como o esquema em estrela está na forma desnormalizada, você precisa de menos junções para uma consulta. A consulta é simples e executa mais rápido em um esquema em estrela. Chegando ao esquema em floco de neve, uma vez que está na forma normalizada, ele exigirá um número de junções em comparação com um esquema em estrela, a consulta será complexa e a execução será mais lenta do que o esquema em estrela.
Outra diferença significativa entre esses dois esquemas é que o esquema em floco de neve não contém dados redundantes e, portanto, é fácil de manter. Pelo contrário, o esquema em estrela tem um alto nível de redundância e, portanto, é difícil de manter.
Agora, qual escolher para seu projeto? Se o objetivo do seu projeto é fazer mais análise de dimensão, você deve ir para o esquema em floco de neve. Por exemplo, se você precisa descobrir isso “Quantos assinantes estão vinculados a um plano específico que está ativo atualmente?” - vá com o modelo do floco de neve.
Se o objetivo do seu projeto é fazer mais uma análise de métricas, você deve ir com um esquema estrela. Por exemplo, se você precisa descobrir isso “Qual é o valor do sinistro pago a um determinado assinante?” - vá com um esquema em estrela.
Em meu projeto, usamos o esquema em floco de neve porque tivemos que fazer análises em várias dimensões e gerar relatórios resumidos para o negócio. Outro motivo para usar o esquema em floco de neve é o menor consumo de memória.
P # 7) O que você entende por dimensão e atributo?
Responda: Dimensões representam dados qualitativos. Por exemplo, plano, produto, classe são todas dimensões.
Uma tabela de dimensões contém atributos descritivos ou textuais. Por exemplo, a categoria e o nome do produto são os atributos da dimensão do produto.
P # 8) O que é uma tabela de fatos e fatos?
Responda: Os fatos representam dados quantitativos.
Por exemplo, o valor líquido devido é um fato. Uma tabela de fatos contém dados numéricos e chaves estrangeiras de tabelas dimensionais relacionadas. Um exemplo da tabela de fatos pode ser visto na Figura 2 mostrada acima.
P # 9) Quais são os diferentes tipos de dimensões que você encontrou? Explique cada um deles em detalhes com um exemplo?
Responda: Normalmente existem cinco tipos de dimensões.
a) Dimensões conformadas : Uma dimensão que é utilizada como parte de diferentes áreas é chamada de dimensão conformada. Ele pode ser utilizado com diferentes tabelas de fatos em um único banco de dados ou em vários data marts / warehouses.
Por exemplo, se a dimensão do assinante estiver conectada a duas tabelas de fatos - faturamento e reclamação, então a dimensão do assinante será tratada como uma dimensão conformada.
b) Dimensão do lixo : É uma tabela de dimensão composta por atributos que não têm lugar na tabela de fatos ou em nenhuma das tabelas de dimensão atuais. Geralmente , essas são propriedades como sinalizadores ou indicadores.
Por exemplo, pode ser um sinalizador de elegibilidade de membro definido como 'Y' ou 'N' ou qualquer outro indicador definido como verdadeiro / falso, quaisquer comentários específicos, etc. se mantivermos todos esses atributos do indicador na tabela de fatos, então seu tamanho aumenta. Então , combinamos todos esses atributos e colocamos em uma única tabela de dimensão chamada dimensão de lixo com IDs de lixo exclusivos com uma possível combinação de todos os valores do indicador.
c) Dimensão Role-Playing : Estas são as dimensões utilizadas para diversos fins no mesmo banco de dados.
Por exemplo, uma dimensão de data pode ser usada para “Data de reclamação”, “Data de cobrança” ou “Data de vigência do plano”. Então , tal dimensão será chamada de dimensão Role-playing. A chave primária da dimensão Date será associada a várias chaves estrangeiras na tabela de fatos.
d) Dimensão de mudança lenta (SCD): Estes são os mais importantes entre todas as dimensões. Essas são as dimensões em que os valores dos atributos variam com o tempo. Abaixo estão os diversos tipos de SCDs
- Type-0: Estas são as dimensões onde o valor do atributo permanece estável com o tempo. Por exemplo, O DOB do assinante é um SCD tipo 0 porque sempre permanecerá o mesmo, independentemente da hora.
- Tipo 1: Essas são as dimensões em que o valor anterior do atributo é substituído pelo valor atual. Nenhum histórico é mantido na dimensão Tipo-1. Por exemplo, O endereço do assinante (onde a empresa exige manter o único endereço atual do assinante) pode ser uma dimensão Tipo-1.
- Tipo 2: Essas são as dimensões onde a história ilimitada é preservada. Por exemplo, Endereço do assinante (onde a empresa exige manter um registro de todos os endereços anteriores do assinante). Neste caso, múltiplas linhas para um assinante serão inseridas na tabela com seus diferentes endereços. Haverá algumas colunas que identificarão o endereço atual. Por exemplo, 'Data de início' e 'Data de término'. A linha em que o valor de 'Data de término' ficará em branco conterá o endereço atual do assinante e todas as outras linhas terão endereços anteriores do assinante.
- Tipo-3: Esse é o tipo de dimensão em que a história limitada é preservada. E usamos uma coluna adicional para manter o histórico. Por exemplo, Endereço do assinante (onde a empresa exige manter um registro do endereço atual e apenas um endereço anterior). Nesse caso, podemos dissolver a coluna 'endereço' em duas colunas diferentes - 'endereço atual' e 'endereço anterior'. Portanto, em vez de ter várias linhas, teremos apenas uma linha mostrando o endereço atual e o anterior do assinante.
- Tipo-4: Nesse tipo de dimensão, os dados históricos são preservados em uma tabela separada. A tabela de dimensão principal contém apenas os dados atuais. Por exemplo, a tabela de dimensão principal terá apenas uma linha por assinante contendo seu endereço atual. Todos os outros endereços anteriores do assinante serão mantidos na tabela de histórico separada. Este tipo de dimensão quase nunca é usado.
e) Dimensão Degenerada: Uma dimensão degenerada é uma dimensão que não é um fato, mas é apresentada na tabela de fatos como uma chave primária. Ele não possui sua própria tabela de dimensões. Também podemos chamá-lo como uma tabela de dimensão de atributo único.
Mas , em vez de mantê-lo separadamente em uma tabela de dimensão e colocar uma junção adicional, colocamos esse atributo na tabela de fatos diretamente como uma chave. Uma vez que não possui sua própria tabela de dimensão, ele nunca pode atuar como uma chave estrangeira na tabela de fatos.
P # 10) Dê a sua ideia sobre fato sem fatos? E por que o usamos?
Responda: A tabela de fatos sem fatos é uma tabela de fatos que não contém nenhuma medida de fato. Ele contém apenas as chaves de dimensão.
Às vezes, certas situações podem surgir nos negócios em que você precisa ter uma tabela de fatos sem fatos.
Por exemplo, Suponha que você esteja mantendo um sistema de registro de presença de funcionários, você pode ter uma tabela de fatos sem fatos com três chaves.
ID do Empregado |
Department_ID |
Time_ID |
Você pode ver que a tabela acima não contém nenhuma medida. Agora, se você quiser responder à pergunta abaixo, pode fazer facilmente usando a única tabela de fatos sem fatos acima, em vez de ter duas tabelas de fatos separadas:
“Quantos funcionários de um determinado departamento estavam presentes em um determinado dia?”
Portanto, a tabela de fatos sem fatos oferece flexibilidade ao design.
sites para baixar vídeos do youtube gratuitamente
Q # 11) Distinguir entre OLTP e OLAP?
Responda: OLTP significa Sistema de processamento de transações online & OLAP significa o Sistema de processamento analítico online . OLTP mantém os dados transacionais do negócio e é altamente normalizado em geral. Pelo contrário, OLAP é para fins de análise e relatório e está na forma desnormalizada.
Essa diferença entre OLAP e OLTP também fornece a maneira de escolher o design do esquema. Se seu sistema for OLTP, você deve usar o design de esquema em estrela e se seu sistema for OLAP, você deve usar o esquema em floco de neve.
P # 12) O que você entende por data mart?
Responda: Os data marts são, em sua maioria, destinados a um único ramo de negócios. Eles são projetados para os departamentos individuais.
Por exemplo, Eu costumava trabalhar para uma empresa de seguro saúde que tinha departamentos diferentes, como Finanças, Relatórios, Vendas e assim por diante.
Tínhamos um data warehouse que mantinha as informações pertencentes a todos esses departamentos e poucos data marts construídos em cima desse data warehouse. Esses DataMart eram específicos para cada departamento. Em palavras simples, você pode dizer que um DataMart é um subconjunto de um data warehouse.
P # 13) Quais são os diferentes tipos de medidas?
Responda: Temos três tipos de medidas, a saber
- Medidas não aditivas
- Medidas semi-aditivas
- Medidas aditivas
Medidas não aditivas são aquelas sobre as quais nenhuma função de agregação pode ser aplicada. Por exemplo, uma proporção ou uma coluna de porcentagem; um sinalizador ou uma coluna de indicador presente na tabela de fatos contendo valores como S / N, etc. é uma medida não aditiva.
Medidas semi-aditivas são aquelas em cima das quais algumas (mas não todas) funções de agregação podem ser aplicadas. Por exemplo, taxa de taxa ou saldo da conta.
Medidas aditivas são aquelas sobre as quais todas as funções de agregação podem ser aplicadas. Por exemplo, unidades adquiridas.
P # 14) O que é uma chave substituta? Como é diferente de uma chave primária?
Responda: Surrogate Key é um identificador exclusivo ou uma chave de número de sequência gerada pelo sistema que pode atuar como uma chave primária. Pode ser uma coluna ou uma combinação de colunas. Ao contrário de uma chave primária, ela não é obtida dos campos de dados do aplicativo existentes.
P # 15) É verdade que todos os bancos de dados devem estar em 3NF?
Responda: Não é obrigatório que um banco de dados esteja em 3NF. Contudo , se o seu objetivo é a fácil manutenção de dados, menos redundância e acesso eficiente, então você deve ir com um banco de dados desnormalizado.
Q # 16) Você já se deparou com o cenário de relacionamentos recursivos? Se sim, como você lidou com isso?
Responda: Um relacionamento recursivo ocorre no caso em que uma entidade está relacionada a si mesma. Sim, eu me deparei com esse cenário.
Falando sobre o domínio dos cuidados de saúde, é uma possibilidade que um prestador de cuidados de saúde (digamos, um médico) seja um paciente de qualquer outro prestador de cuidados de saúde. Porque , se o próprio médico adoecer e precisar de cirurgia, ele terá que consultar outro médico para fazer o tratamento cirúrgico.
Então , neste caso, a entidade - provedor de saúde é relacionada a si mesma. Uma chave estrangeira para o número do provedor de seguro saúde terá que ser apresentada no registro de cada membro (paciente).
P # 17) Liste alguns erros comuns encontrados durante a modelagem de dados.
Responda: Alguns erros comuns encontrados durante a modelagem de dados são:
- Construindo modelos de dados massivos : Modelos de dados grandes tendem a ter mais falhas de projeto. Tente restringir seu modelo de dados a não mais de 200 tabelas.
- Falta de propósito : Se você não sabe a que se destina a sua solução de negócios, pode chegar a um modelo de dados incorreto. Portanto, ter clareza sobre o objetivo do negócio é muito importante para chegar ao modelo de dados correto.
- Uso impróprio de surrogate keys : A chave substituta não deve ser usada desnecessariamente. Use a chave substituta apenas quando a chave natural não puder servir ao propósito de uma chave primária.
- Desnormalização desnecessária : Não desnormalize até e a menos que você tenha um motivo comercial sólido e claro para fazer isso, porque a desnormalização cria dados redundantes que são difíceis de manter.
Q # 18) Qual é o número de tabelas filho que podem ser criadas a partir de uma única tabela pai?
Responda: O número de tabelas filho que podem ser criadas a partir de uma única tabela pai é igual ao número de campos / colunas na tabela pai que não são chaves.
Q # 19) Os detalhes de saúde do funcionário são ocultados de seu empregador pelo provedor de saúde. Qual nível de ocultação de dados é esse? Conceitual, físico ou externo?
desenvolvimento de software de exemplos de análise de causa raiz
Responda: Este é o cenário de um nível externo de ocultação de dados.
Q # 20) Qual é a forma da tabela de fatos e da tabela de dimensões?
Responda: Geralmente, a tabela de fatos está na forma normalizada e a tabela de dimensões está na forma não normalizada.
Q # 21) Que particularidades você precisaria para chegar a um modelo conceitual em um projeto de domínio de saúde?
Responda: Para um projeto de saúde, os detalhes abaixo seriam suficientes para o requisito de projetar um modelo conceitual básico
- Diferentes categorias de planos e produtos de saúde.
- Tipo de assinatura (grupo ou individual).
- Conjunto de prestadores de cuidados de saúde.
- Visão geral do processo de reclamação e cobrança.
P # 22) Tricky: se uma restrição exclusiva for aplicada a uma coluna, ela gerará um erro se você tentar inserir dois nulos nela?
Responda: Não, ele não gerará nenhum erro neste caso, porque um valor nulo é diferente de outro valor nulo. Portanto, mais de um nulo será inserido na coluna sem nenhum erro.
P # 23) Você pode citar um exemplo de entidade de subtipo e supertipo?
Responda: Sim, digamos que temos essas entidades diferentes - veículo, carro, bicicleta, carro econômico, carro familiar, carro esporte.
Aqui, um veículo é uma entidade de supertipo. Carro e bicicleta são suas entidades de subtipo. Além disso, carros econômicos, carros esportivos e carros familiares são entidades de subtipo de seu supertipo, o carro.
Uma entidade de supertipo é aquela que está em um nível superior. Entidades de subtipos são aquelas agrupadas com base em certas características. Por exemplo, todas as bicicletas são de duas rodas e todos os carros são de quatro rodas. E uma vez que ambos são veículos, sua entidade de supertipo é 'veículo'.
P # 24) Qual é o significado dos metadados?
Responda: Metadados são dados sobre dados. Ele informa que tipo de dados está realmente armazenado no sistema, qual é sua finalidade e a quem se destina.
Conclusão
- Compreensão prática do Modelagem de Dados conceito e como ele se encaixa nas atribuições feitas por você é muito necessário para quebrar uma entrevista de modelagem de dados.
- Os tópicos mais frequentes em Modelagem de Dados entrevista são - diferentes tipos de modelos de dados, tipos de esquemas, tipos de dimensões e normalização.
- Esteja bem preparado para questões baseadas em cenários também.
Eu sugeriria que sempre que você responder a uma pergunta ao entrevistador, é melhor que você explique a ideia por meio de um exemplo. Isso mostraria que você realmente trabalhou nessa área e entende muito bem o núcleo do conceito.
Tudo de bom!!