Por que eu devo ler este artigo:Este artigo trata de técnicas de normalização de dados para implementação de um modelo de dados considerando um banco de dados relacional. Trata também da técnica de desnormalização de dados para obter ganhos de performance em bancos de dados relacionais. A normalização de dados é uma etapa importantíssima na modelagem de um banco de dados relacional que garante principalmente a eliminação de redundâncias indesejadas, enquanto a desnormalização de dados se aplica à construção de algumas redundâncias de dados que, em termos práticos, contribuirão para o ganho de performance geral do banco de dados relacional.
No momento da modelagem de dados, o processo de normalização irá evitar que dados sejam duplicados desnecessariamente gerando certas perdas de performance geral do banco de dados bem como consumo excessivo de espaço em disco para armazenamento de dados. Em contrapartida a desnormalização, apesar de apresentar o efeito colateral da redundância de informações, permite que a performance geral do banco de dados seja significativamente melhorada fazendo com que, por exemplo, menos junções entre tabelas sejam necessárias para o retorno de determinada informação.
Uma das etapas primordiais no projeto de bancos de dados é a normalização de dados. Esta técnica permite, entre outras coisas, evitar a duplicidade de informações, garantindo uma economia de espaço de armazenamento e também tornando o modelo de dados mais simples e fácil de gerenciar. Esta técnica é composta por um conjunto de regras que definem a metodologia de normalização e cada conjunto de regra forma uma camada de normalização. Basicamente, as camadas de normalização são 5 onde chamamos cada uma delas de Forma Normal, portanto teremos a 1ª, 2ª, 3ª, 4ª e 5ª Formas Normais. A aplicação de todas as formas normais é uma característica marcante em ambientes acadêmicos, mas que, na prática, podem causar problemas sérios de performance geral do banco de dados devido à necessidade de junções excessivas para se encontrar determinada informação. Para evitar este problema, algumas dicas são apresentadas nesta primeira parte do artigo e, uma abordagem mais “hard core” será apresentada na segunda parte, que é a Desnormalização de dados.
Em minhas “andanças” pela internet, encontrei dois artigos fantásticos escritos por Gavin JT Powell falando exatamente sobre normalização e desnormalização, porém de uma forma bastante informal. São dois artigos realmente interessantes que auxiliam muito no entendimento deste “bicho de sete cabeças” e me senti na obrigação de escrever este artigo, com base nestes dois, para compartilhar com o leitor estas pérolas que encontrei.
Modelos de dados para um banco de dados relacional envolvem a necessidade de remoção de duplicidades e, para atingir este objetivo, usamos um processo chamado de “normalização”. Este processo é composto por um conjunto de regras conhecidas como “formas normais” (ou simplesmente “FN”).
A normalização é aplicada a um conjunto de dados ou tabelas em um banco de dados relacional, enquanto as tabelas são utilizadas para armazenar diretamente os dados associados a ela. As tabelas podem ser relacionadas ou ligadas entre sí através de índices identificadores. Este índice identificador é usado para identificar a linha de dados da mesma forma que um índice tradicional em um livro. Veja que o índice é usado para encontrar uma determinada informação de interesse sem a necessidade de leitura de todo o livro.
Basicamente existem 5 níveis de normalização conhecidos como 1ª, 2ª, 3ª, 4ª e 5ª formas normais (ou 1FN, 2FN, 3FN, 4FN e 5FN) e cada uma das formas normais é um refinamento da forma normal anterior, ou seja, para dizermos que o modelo se encontra na 2ª forma normal, entende-se que este modelo também atende as regras da 1ª forma normal.
Quando desenhamos uma tabela considerando a performance do SGBDr (Sistema de Gerenciamento de Banco de Dados Relacional), é comum ignorar os primeiros passos da normalização e pular diretamente para a 2FN. A 3FN também é muitas vezes ignorada, a não ser que junções muitos-para-muitos (n:m), no nível da aplicação, necessitem demasiadamente de valores únicos. As 4FN e 5FN também são raramente usadas.
Vale lembrar que a normalização excessiva pode ser a causadora de perda considerável de performance tanto para ambientes de banco de dados transacionais (conhecidos como OLTP – OnLine Transational Processing, ou Processamento Transacional em Tempo Real) (ver Nota 1) quanto para ambientes de bancos de dados analíticos (conhecidos como OLAP – OnLine Analitical Processing, que significa Processamento Analítico em Tempo Real ou também como DSS – Decision Support System, que significa Sistema de Suporte a Decisão ou ainda os famosos DatawareHouse) (ver Nota 2).
Nota 1: OLTP
Online transaction processing (Processamento de transações em tempo real), ou OLTP, refere-se a uma classe de sistemas que facilitam o gerenciamento de aplicações orientadas a transações, normalmente para a entrada de dados e processamento de transações de recuperação. O termo é um pouco ambíguo, alguns entendem uma "transação" no contexto de operações de computador ou banco de dados, enquanto outros definem em termos de negócios ou transações comerciais. OLTP também tem sido utilizada para se referir ao processamento no qual o sistema responde imediatamente a pedidos do usuário.
OLTP é uma metodologia para fornecer aos usuários finais o acesso a grandes quantidades de dados em uma forma intuitiva e rápida para ajudar com as deduções com base em raciocínio investigativo.
Em aplicações de grande porte, sistemas OLTP eficientes podem depender de um sofisticado software de gerenciamento de transações e / ou táticas de otimização de banco de dados para facilitar o processamento de um grande número de atualizações simultâneas para um banco de dados orientado a OLTP.
Para ainda mais exigentes sistemas de banco de dados descentralizados, programas de intermediação de OLTP podem distribuir o processamento de transações entre vários computadores em uma rede. OLTP é muitas vezes integrado em arquitetura orientada a serviços (SOA) e Web Services.
Nota 2: OLAP
Em computação, processamento analítico em tempo real, ou OLAP, é uma abordagem para responder rapidamente consultar analíticas multidimensionais. OLAP é parte da categoria mais ampla de inteligência de negócios, que também abrange relatórios relacionais e mineração de dados.
Aplicações típicas de OLAP são relatórios de negócios para vendas, marketing, relatórios gerenciais, business process management (BPM)(processo de gerenciamento de negócio), orçamento e previsão, relatórios financeiros e áreas similares, e também para novas aplicações que estão surgindo, como os de agricultura. O termo OLAP foi criado como uma ligeira modificação do tradicional banco de dados OLTP (online Transaction Processing).
Ferramentas OLAP permitem que os usuários, de forma interativa, analisem dados multidimensionais através de múltiplas perspectivas. OLAP é composta por três operações básicas de análise: consolidação, drill down, e fatiamento. Consolidação envolve a agregação de dados que podem ser acumulados e computados em uma ou mais dimensões. Por exemplo, todos os escritórios de vendas são acumulados para o departamento de vendas ou divisão de vendas para antecipar as tendências de vendas. Em contraste, o drill down é uma técnica que permite aos usuários navegar através dos detalhes. Por exemplo, os usuários podem acessar as vendas por produtos individuais que compõem as vendas de uma região. Fatiamento é um recurso pelo qual os usuários podem tirar (cortar) um conjunto específico de dados do cubo e ver as fatias de diferentes pontos de vista.
Bancos de dados configurados para OLAP usam um modelo de dados multidimensional, permitindo consultas analíticas complexas e ad-hoc com um tempo de execução rápida.
O núcleo de qualquer sistema OLAP é um cubo OLAP (também chamado de "cubo multidimensional", ou um hipercubo). Ele consiste de fatos numéricos chamados medidas que são classificados por dimensões. Os metadados do cubo são normalmente criados a partir de um esquema de estrela ou esquema floco de neve de tabelas em um banco de dados relacional. As medidas são derivadas dos registros na tabela de fatos e dimensões são derivadas das tabelas de dimensão.
Cada medida pode ser pensada como tendo um conjunto de etiquetas, ou metadados associado a ele. A dimensão é o que descreve esses rótulos, que fornece informações sobre a medida.
Um exemplo simples seria um cubo que contém as vendas de uma loja como uma medida, e Data/Hora como uma dimensão. Cada venda tem um rótulo Data/Hora que descreve mais sobre essa venda.
Qualquer número de dimensões pode ser adicionado à estrutura, tais como loja, caixa, ou do cliente por adição de uma coluna de chave estrangeira para a tabela fato. Isto permite que um analista veja as medidas ao longo de qualquer combinação das dimensões.
Esta normalização excessiva é bastante comum em aplicações orientadas a objeto. Nesta situação, a estrutura do objeto é imposta ao banco de dados relacional. Mas vale lembrar que estruturas de orientação a objetos e a estrutura de dados relacionais são metodologias completamente distintas.
A normalização é algo muito formal e, em muitos casos não se aplica a aplicações comerciais. Pense na normalização como uma maneira poética e, principalmente, acadêmica de se pensar em termos de modelagem de dados e o motivo disso é o fato de que usar a normalização de dados de forma estrita é impraticável quando se fala em desempenho, especialmente as 3FN, 4FN e 5FN.
Oferta válida para todos os planos durante o mês de dezembro
+3 MESES
Grátis
Veja os resultado dos nossos alunos
Conquistas reais de quem está aplicando o método
<Perguntas frequentes>
Carreira
Por onde devo iniciar os estudos?
Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.
Em quanto tempo vou me tornar um programador?
O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.
Eu preciso de um diploma de faculdade para começar a atuar como programador?
Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.
Por que a programação se tornou a profissão mais promissora da atualidade?
A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.
Metodologia
Quais são os principais diferenciais da DevMedia?
Didática e Metodologia
Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios
Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno
Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação
A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.
O que eu irei aprender estudando pela DevMedia?
Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.
Quais as vantagens de aprender programação através da linguagem JavaScript?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens
A plataforma oferece certificados?
Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.
A plataforma tem suporte ao aluno, como funciona?
Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.
A DevMedia me forma como programador Full Stack?
Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!
Tem horário para as aulas?
Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.
Por que a DevMedia não usa videoaulas em sua didática?
Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.
Preciso de um computador específico para estudar na DevMedia?
Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.
Eu consigo estudar pelo celular?
Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.
A DevMedia tem aplicativo?
Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.
Preciso estar na faculdade para acompanhar os estudos na DevMedia?
Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.
Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?
Oferecemos o plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX
Adquirindo o plano, terei acesso a todo o conteúdo?
Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.
A plataforma tem planos vitalícios?
Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.
A DevMedia tem fidelidade?
Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.
Como funciona o cancelamento?
Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.
Cadastro
Como excluir meus dados da plataforma?
Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.
Compartilhe esse conteúdo com um amigo!
Faça login para ganhar recompensas.
Ou
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.