Postagens do Blog

domingo, 23 de agosto de 2020

BANCO DE DADOS, NORMALIZAÇÃO COM QUALIDADE DE DADOS

Para ter-se uma base de dados que sirva de pesquisa e os dados utilizados para efetuar o planejamento estratégico e tomada de decisões para atingir os objetivos estratégicos, a mesma deve ter uma qualidade que garanta a integridade, confidencialidade e disponibilidade dos dados, os quais devem estar armazenados sem redundâncias e validados para que tenha-se confiança nas tomadas de decisões corporativas.

DADO: Elemento que serve de base para a resolução de um problema.

DADO: É o novo petróleo.

DADO: É um ativo. É essencial para os negócios de uma organização, e necessita adequadamente ser protegido.

Governança de dados: É o gerenciamento geral de disponibilidade de dados, relevância, usabilidade, integridade e segurança em uma empresa. É um elo com o DPO e todas as áreas internas da corporação.

Normalização é um processo pelo qual aplicam-se regras em todas as tabelas do banco de dados com o objetivo de evitar redundância de dados, levando a falhas em um projeto de desenvolvimento de sistemas e ou aplicativos.

Para começar a efetuar as 3 Formas Normais, relacione os atributos em uma lista:

ID_FUNC

NOME_FUNC

ENDERECO

E-mails

ID_CURSO

DESCRICAO_CURSO

NUM_PEDIDO,

Depois dê um nome a esta tabela: FUNCIONARIOS.

VALIDAÇÃO DOS DADOS

ID_FUNC: Normalmente é o CPF, a validação é feita com o site da Receita Federal validando o CPF com o NOME_FUNC.

ENDEREÇO: Validar se o endereço é existente pelo site dos correios.

E-mails: Manda um código para o celular para confirmar o e-mail.

ID_CURSO: Valida o curso com códigos já existentes, CURSO e DESCRICAO_CURSO.

NUM_PEDIDO: No pedido tem que ter o CPF (ID_FUNC).

Agora vamos às 3 Formas Normais:

Existem 3 formas normais mais conhecidas:

  • 1FN – 1ª Forma Normal: todos os atributos de uma tabela devem ser atômicos, ou seja, a tabela não deve conter grupos repetidos e nem atributos com mais de um valor. Para deixar nesta forma normal, é preciso identificar a chave primária da tabela, identificar as colunas que têm dados repetidos e removê-las. Na sequência criar uma tabela com a chave primária para armazenar o dado repetido e, por fim, criar uma relação entre a tabela principal e a tabela secundária. Por exemplo, considere a tabela FUNCIONARIOS a seguir.

    FUNCIONARIOS = {ID_FUNC+ NOME_FUNC + ENDERECO + E-mail + ID_CURSO + DESCRICAO_CURSO + NUM_PEDIDO}

    ID_FUNC é a chave primária da tabela FUNCIONARIOS.

    Ela contém a chave primária ID_FUNC e os atributos E-mail e ENDERECO é um atributo que pode ter para uma mesma pessoa, vários e-mails e endereços. e, portanto, a tabela não está na 1FN. Para deixá-la na 1FN, vamos criar uma tabela chamada E_MAIL que conterá ID_ FUNC como chave estrangeira de FUNCIONARIOS e E-mails e ENDERECO como o valor multivalorado que será armazenado.

    FUNCIONARIOS = {ID_FUNC+ NOME_FUNC + ID_CURSO + DESCRICAO_CURSO + NUM_PEDIDO}

    E_MAIL = {ID_FUNC E_mail + ENDERECO}

A tabela FUNCIONARIOS tem um relacionamento com a tabela E_MAIL através de ID_FUNC.

  • 2FN – 2ª Forma Normal: Antes de mais nada, para estar na 2FN é preciso estar na 1FN. Todos os atributos não chaves da tabela devem depender unicamente da chave primária (não podendo depender apenas de parte dela). Para deixar na segunda forma normal, identifica-se as colunas que não são funcionalmente dependentes da chave primária da tabela e, em seguida, remover essa coluna da tabela principal e criar uma tabela com esses dados. Considere a tabela FUNCIONARIOS, que está na 1FN, verifica-se os atributos não chaves deve depender unicamente da chave primária, e verifica-se que ID_CURSO e DESCRICAO_CURSO, não dependem de ID_FUNC.

    O atributo DESCRICAO_CURSO depende apenas da chave primária ID_CURSO. Dessa forma, a tabela não está na 2FN. Para tanto, cria-se uma nova tabela chamada CURSO_FUNC que tem como chave primária ID_CURSO e atributo DESCRICAO_CURSO retirando, assim, o atributo DESCRICAO_CURSO da tabela FUNCIONARIOS.

    FUNCIONARIOS = {ID_FUNCID_CURSO + NOME_FUNC + NUM_PEDIDO}

    E_MAIL = {ID_FUNC + E_mail + ENDERECO}

    CURSO_FUNC = {ID_CURSO+ DESCRICAO_CURSO}

A tabela FUNCIONARIOS tem um relacionamento com a tabela E_MAIL através de ID_FUNC, com a tabela CURSO_FUNC através de ID_CURSO.

  • 3FN – 3ª Forma Normal: Para estar na 3FN, é preciso estar na 2FN. Além disso, os atributos não chave de uma tabela devem ser mutuamente independentes e dependentes unicamente e exclusivamente da chave primária (um atributo B é funcionalmente dependente de A se, e somente se, para cada valor de A só existe um valor de B). Para atingir essa forma normal, é preciso identificar as colunas que são funcionalmente dependentes das outras colunas não chave e extraí-las para outra tabela. Verifica-se que eu posso ter vários NUM_PEDIDO para um funcionário. Logo fica ,assim a Normalização com as 3 Formas Normais:

    FUNCIONARIOS = {ID_FUNCID_CURSO + NUM_PEDIDO + NOME_FUNC}

    E_MAIL = {ID_FUNC + E_mail  + ENDERECO}

    CURSO_FUNC = {ID_CURSO+ DESCRICAO_CURSO}

    PEDIDO = {NUM_PEDIDO, DATA_PEDIDO}

    Obs.: O NUM_PEDIDO poderia ter sido resolvido na 2FN.

    ObsII: Normalmente Pedidos tem atributos NUM_PEDIDO e DATA_PEDIDO, logo para ajustar as tabelas, pode-se criar um atributo, no caso, DATA PEDIDO.

    ObsIII: Se precisar Somar valores, não precisa criar campos para acumular valores, gere relatórios.

A tabela FUNCIONARIOS tem um relacionamento com a tabela E_MAIL através de ID_FUNC, com a tabela CURSO_FUNC através de ID_CURSO, com a tabela PEDIDO através de NUM_PEDIDO.

Pronto as Tabelas, faça o DER, Diagrama Entidade Relacionamento

Pronto o DER, Utilize uma ferramenta, o Workbench para gerar o modelo IDF1x e gerar na sequência o Script do banco de dados, para gerar as Tabelas no MySQL.

Pode ser feito a geração de tabelas por Script utilizando outras ferramentas, utilizando outros gerenciadores de bancos de dados. 



Grato,
Jefferson Daminelli Garcia

Nenhum comentário:

Postar um comentário

Postagem em Destaque

Maquina Virtual

  O QUE É UMA MÁQUINA VIRTUAL Uma máquina virtual , conhecida como guest, é criada dentro de um ambiente de processamento, chamado host. ...

Postagens Mais Visitadas

Últimas Postagens