Estruturas Relacionais
Para entendermos perfeitamente SQL precisamos ter um bom entendimento do paradigma relacional e como normalizar dados nessas estruturas.
O paradigma relacional modela os dados em tabelas duas dimensões, linhas e colunas. Um bom exemplo disso seria a tabela contendo todos os funcionários de uma empresa, em que cada linha seria um funcionário e cada coluna representando dados do funcionário como nome, data de nascimento, departamento e etc.
Ao observar a imagem da Tabela de funcionários, podemos perceber que a coluna IdCargo é utilizada para se relacionar com com outra tabela, da qual fica armazenado todos os cargos das empresas.
O processo de transformar dados que precisam ser registrados em tabelas relacionais é conhecido como normalização. Existem 3 níveis de normalização que devemos estar atentos ai criar tabelas em um banco de dados.
A primeira forma normal é remover dados que se repetem em uma tabela. Um exemplo disso seria uma tabela de funcionários em que existisse uma coluna de departamento. O nome de um ou mais departamentos iria se repetir com uma certa frequência. O correto seria criar uma tabela de departamentos e fazer com que a tabela funcionários apontasse para departamento. Cada linha iria apontar para outra linha da tabela departamentos.
A segunda forma normal é remover colunas que não são dependente da chave primária. Algo que não é diretamente relacionado ao funcionário, não deve ser armazenado na tabela de funcionários, e sim em outra apropriada.
A terceira forma normal remove todas as colunas interdependentes. Na tabela de funcionários não é preciso ter várias colunas para armazenar o endereço do funcionário, mas apenas uma apontando para uma tabela de endereços.
Espero que todos tenham entendido. Não gostaria de usar muito tempo em fatos tão simples, pois, acredito que todos que acessem esse blog já tenham um certo conhecimento de SQL. Mas, mesmo que estejam com dificuldades, por favor, comentem que terei o prazer em responder. Para os próximos posts, é necessário ter um certo conhecimento básico de chave primária, chave externa, colunas obrigatórias e opcionais, relação de um pra muitos, muitos pra um e muito pra muitos, coluna not null e etc.
