Ao se realizar uma modelagem para Data Warehouse, a forma n...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - errado
Para compreender a questão, é importante primeiramente entender alguns conceitos fundamentais de banco de dados e de modelagem para Data Warehouse. A normalização de dados é um processo de organização das tabelas e colunas de um banco de dados para reduzir a redundância e melhorar a integridade dos dados. As formas normais são regras que guiam esse processo.
A terceira forma normal (3FN) é alcançada quando uma tabela já está na segunda forma normal e, além disso, todos os atributos não-chave são mutualmente independentes; ou seja, não possuem dependências transitivas com relação à chave primária. Já a Boyce-Codd Normal Form (BCNF) é uma versão mais forte da terceira forma normal. Para uma tabela estar em BCNF, além de satisfazer as condições da 3FN, toda determinante deve ser uma chave candidata.
Em relação ao modelo Snowflake no contexto de Data Warehouse, ele é uma variação do modelo em estrela (Star Schema) e consiste em normalizar as dimensões, ou seja, dividir uma grande tabela de dimensão em tabelas menores e interconectadas. Isso pode levar a uma estrutura que apresenta tabelas que estão até na terceira forma normal.
No entanto, estar na 3FN não implica necessariamente estar na forma normal BCNF, pois a 3FN permite dependências transitivas enquanto a BCNF não. Portanto, é incorreto afirmar que todo modelo Snowflake na 3FN estará necessariamente também na forma normal BCNF, pois a BCNF possui um requisito adicional relacionado a chaves candidatas.
Assim, a questão aborda a compreensão de que a normalização no contexto de Data Warehouse, particularmente no modelo Snowflake, pode atingir a 3FN, mas isso não garante que estará na BCNF, evidenciando a necessidade de entender a distinção entre essas formas normais.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
No SQL Server Analysis Services (SSAS), snowflake schema descreve um modelo de dados populares para data warehouses relacionais. Semelhante ao star schema (pt-BR), o snowflake schema contém tabelas de fatos e dimensão, com a tabela de fatos armazena fatos sobre as transações comerciais e algumas colunas da tabela de fatos que contém referências de foreign key nas tabelas de dimensão. Snowflake schemata diferem dos star schemataem seu nível de normalização; as tabelas de dimensão de um esquema de snowflake schema são geralmente normalizadas ao formulário terceiro normal (3NF) ou superior. Como resultado, os dados para uma determinada dimensão são espalhados por várias tabelas, e um diagrama de banco de dados se parece com um floco de neve.
Enquanto um snowflake schema pode resultar da normalização das tabelas de dimensão, também pode ocorrer por meio da reutilização de tabela de dimensão, particularmente quando há relacionamentos entre as tabelas de dimensão. Por exemplo, um data warehouse relacional pode conter uma tabela de dimensão de clientes e uma tabela de dimensão de Geografia; qualquer das tabelas pode ser relacionada diretamente a uma tabela de fatos e o modelo resultante pode então ser um esquema em estrela. Outra alternativa seria relacionar a dimensão Geografia à dimensão do cliente, para que a tabela de dimensão de cliente contém uma referência de foreign key reference para a dimensão Geografia (um cliente reside em um local geográfico específico), e o resultado seria um esquema de floco de neve. Neste caso, as tabelas de dimensão cliente e geografia só podem ser normalizadas a segunda forma normalizada como em um esquema em estrela.
Independentemente se o snowflake schemaresulta da normalização das tabelas de dimensão ou de relacionamentos entre as tabelas de dimensão, uma vantagem de um esquema do snowflake schema é que as tabelas de dimensão são mais versáteis. Por exemplo, se uma dimensão de tempo é normalizada em várias tabelas de dimensão - uma tabela de ano, uma tabela de mês e uma tabela de data-, em seguida, é possível ter várias tabelas de fatos que armazenam dados a outro nível de granularidade com respeito ao tempo; uma tabela de fatos pode estar relacionados com a tabela de data, enquanto outro podia se relacionar a tabela de mês ou o ano. Como outro exemplo, se o depósito contém uma dimensão de cliente e uma dimensão Geografia, então a dimensão Geografia pode ser usada para descrever fatos diretamente (por exemplo, o fato ocorreu em uma geografia específica) e também pode ser usado para descrever os clientes (por exemplo, um cliente reside em um local específico).
Modelo Estrela:
É um modelo simples e eficiente, caracterizado por possuir uma única tabela de fatos e chaves simples nas tabelas de dimensões. Cada dimensão é representada por uma única tabela.
Os pontos positivos deste modelo são a eficiência, dada pelo reduzido número de junções nas pesquisas e pelas chaves simples, e a facilidade de definir hierarquias.
Os pontos negativos são o tamanho e a desnormalização das tabelas de dimensões.
Snowflake e suas Variações:
Errado
Terceira Forma Normal (ou 3FN) requer não haver dependências funcionais não-triviais de atributos que não sejam chave, em qualquer coisa exceto um superconjunto de uma chave candidata;
Forma Normal de Boyce-Codd (ou BCNF) requer que não exista nenhuma dependência funcional não-trivial de atributos em algo mais do que um superconjunto de uma chave candidata. Neste estágio, todos os atributos são dependentes de uma chave, de uma chave inteira e de nada mais que uma chave (excluindo dependências triviais, como A → A);
Eu vi dois erros: 1) todo modelo Snow Flake na 3FN estará necessariamente também na forma normal BCNF (boyce- codd) - o modelo BCNF está na 3FN, mas o inverso não acontece
2) Na 3FN forma normal BCNF não se aplica o conceito de dependência transitiva.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo