Arquivo de tag logica

porPaulo Henrique Corrêa Cardoso

Modelo Entidade Relacionamento-SQL

Fala pessoal…

Hoje vamos dar continuidade em nossa trilha do SQL, e aprender uma parte conceitual muito importante para aperfeiçoarmos nossa logica na hora de estruturar um banco de dados e ate mesmo um sistema.

Esta etapa é muito importante para testarmos nossa ideia de criação de um banco de dados, suas tabelas, colunas e relacionamentos.

Hoje vamos falar sobre o Modelo Entidade Relacionamento e sobre o Diagrama Entidade Relacionamento ou simplesmente MER e DER.

MER

O Modelo Entidade Relacionamento é uma forma lógica de pensarmos na estrutura de um banco de dados e assim definir suas Entidades(tabelas), Relacionamentos (chaves) e Atributos(campos).

Como é uma parte bem conceitual, a ideia do MER é pensarmos em nosso sistema de forma estruturada. Por exemplo, vamos imaginar que estamos montando um banco de dados de uma loja de de departamento que quer vender via e-commerce .

Entidades

Então começamos a pensar nas nossas entidades principais que não dependem de outras entidades para existir, vamos definir algumas:

  • Fornecedor
  • Produto
  • Cliente
  • Departamento

Essas entidades são conhecidas como Entidades Fortes. Elas podem existir por si só e não dependem de outras para definir sua importância.

Em seguida vamos pensar em algumas entidades que necessitam das anteriores para existir, como por exemplo:

  • Usuário
  • Pedido de Venda
  • Pedido de Compra
  • Categoria

Essas entidades são conhecidas como Entidades Fracas, pois dependem de outras entidades para existir.

Também temos algumas entidades que existem para realizar a interligação entre as entidades. Elas são chamadas de Entidades Associativas, veja:

  • Usuário do Cliente
  • Itens do Pedido de Venda
  • Itens do Pedido de Compra
  • Produtos do Fornecedor
  • Produtos da Categoria
  • Categorias do Departamento

A ideia dessas entidades é que elas não possuem uma chave primaria própria mas sim a junção de outras chaves primarias para criar seus registos únicos, como por exemplo:

Itens do Pedido de Venda -> Código do Pedido + Código do Produto .

Relacionamentos

Agora que definimos as entidades, é necessário definirmos os relacionamentos entre elas, para isso temos três formas de relacionamentos.

  • Relacionamento 1 para 1 – No relacionamento 1:1, definimos que sempre sera um registro de uma entidade vai se relacionar com apenas um registro de outra entidade. Por exemplo, um cliente pode ter apenas um usuário cadastrado para acessar o sistema.
  • Relacionamento 1 para muitos – No relacionamento 1:n, definimos que um registro de uma entidade poderá ter vários registros de outra entidade. Por exemplo, um cliente pode ter vários pedidos de venda, porem um pedido de venda não pode pertencer a vários cliente.
  • Relacionamento muitos para muitos – No relacionamento n:n, definimos ambas entidades podem ter mais de um relacionamento entre elas. Por exemplo, um pedido de venda pode ter vários produtos e um produto pode pertencer a vários pedidos de vendas.

Atributos

Agora vamos entender os atributos.

Os atributos são as características e informações que cada entidade possui. Eles podem ser de alguns tipos diferente:

  • Atributos Nominativos – são aqueles que identificam um objeto da classe, como por exemplo o CPF de um cliente, o nome do cliente, ou até mesmo o código do cliente dentro do sistema.
  • Atributos Descritivos – são aqueles que descrevem alguma informação do objeto, como por exemplo, data de nascimento do cliente, o nome do cliente também pode ser um atributo descritivo, endereço, etc…
  • Atributos Referenciais – são atributos que realizam a ligação entre entidades, como por exemplo o código do cliente dentro do pedido de venda, o código do produto dentro do pedido de venda, o código da categoria dentro do produto, etc…

Além dessa divisões também podemos classificar os atributos como simples ou compostos.

Os atributos simples são aqueles que uma única informação os define, como por exemplo a data de nascimento do cliente, ou a descrição do produto.

Já os atributos compostos são aqueles que necessitam de mais de um atributo para possuírem a informação completa, como por exemplo o endereço, que necessita do atributo logradouro + complemento + bairro + cidade + estado + CEP.

Agora que entendemos o Modelo Entidade Relacionamento, podemos ver que é muito difícil desenhar todo um banco de dados somente com o MER, e por isso temos o DER que é o Diagrama Entidade Relacionamento.

DER

O Diagrama Entidade Relacionamento é a forma gráfica de representar o MER, ele se baseia em uma representação por diagramas, onde possui um nível de abstração muito maior que o MER.

Temos algumas formas de criar o nosso DER. Dois modelos muito conhecidos são:

Notação Peter Chen

Peter Chen é um cientista da computação nascido em Taiwan e Professor de ciência da computação na Louisiana State University, conhecido como criador do modelo entidade relacionamento.[1]

Consiste em uma notação que utiliza entidades (retângulos), relacionamentos (losangos), atributos (elipses) e linhas de conexão (linhas) que indicam a cardinalidade de uma entidade em um relacionamento.

A mesma é representada como o exemplo abaixo:

Notação James Martin

James Martin foi um britânico consultor e autor sobre Tecnologia da Informação, conhecido por seu trabalho em engenharia de tecnologia da informação.

Sua notação consiste na utilização de entidades (caixas), com seus atributos representados diretamente dentro da Entidade, e os relacionamentos são feitos através de linhas que representam a cardinalidade.

Esta notação exibe as informações de uma forma mais enxuta e fácil de visualizar.

Vamos montar nosso exemplo utilizado o DER do do próprio Microsoft SQL Server.

É isso pessoal, espero que ajude muito quando precisarem a estruturar um novo banco de dados.

Até a próxima!!!

porPaulo Henrique Corrêa Cardoso

Lógica de programação, um conhecimento para a vida.

Vejo muitas pessoas que estão tentando começar trabalhar na área de análise e desenvolvimento de software, sempre com muita dificuldade em escolher a melhor linguagem de programação, ou fazendo diversos cursos de desenvolvimento, mas nunca consegue evoluir na carreira.

Se você acredita que um curso de programação, ou as vezes até mesmo a faculdade de tecnologia vai te ensinar a programar, sinto dizer que será uma decepção… Decepção que vi nos olhos de diversos colegas que fizeram faculdade comigo.

Antes de mais nada, quero te dizer que o principal conhecimento da área de programação não é a linguagem de programação que você vai utilizar…
A principal skill dessa louca profissão é uma palavrinha de 6 letras…”Lógica”.

A lógica é a base pra qualquer linguagem de programação, não importa qual seja, se você tiver o seu raciocínio lógico aguçado, você será capaz de desenvolver em qualquer linguagem de programação.

Muito além disso, a lógica aguçada vai te ajudar em todas as áreas cognitivas da sua vida.

Na minha época de faculdade, vi diversos professores tentando introduzir a programação na cabeça dos alunos, com uma linguagem chamada Portugol, que nada mais é que uma linguagem de programação em português.

Só que muitos desses alunos não conseguiam pensar de forma estruturado o suficiente para conseguirem escrever uma condições básicas para efetuar as tarefas solicitadas. Isso tudo porque faltava o principal para o desenvolvimento, que é a lógica.

O melhor caminho pra aprender a lógica computacional, no meu ponto de vista, é quebrar ao máximo uma tarefa em pequenas sub-tarefas, de forma muito detalhada e bem compreensível.

Vou usar um exemplo bem simples que tive em minhas aulas de lógica na minha época de meu curso técnico.

Como trocar um pneu de um carro.

Você esta em uma estrada e sente o que o pneu do seu veículo furou, o que fazer?

1 – Ligue a seta para encostar na via.

2 – Vire a direção, sentido ao local que você quer estacionar, de uma forma suave.

3 – Vá parando o veículo aos poucos.

4 – Quando o veículo estiver totalmente parado, puxe o freio de mão.

5 – Desligue o veículo.

6 – Saia do veículo e abra o porta-malas.

7 – Retire o triângulo de sinalização e as ferramentas do porta-malas.

8 – Posicione o triângulo de sinalização na pista, com uma boa distância do veículo.

9 – Volte até o veículo, pegue a chave de rodas e solte um parafuso de cada vez do pneu furado.

10 – Posicione o macaco no local correto para retirar o pneu…

Acho que já deu pra você ter ideia de como é, não é mesmo?
Um bom exercício para você que está começando a estudar lógica, é completar esse exemplo da forma mais detalhada possível.

Viu só, a ideia desse exercício é demonstrar cada passo, de forma estruturada.

Temos que imaginar que um computador interpreta exatamente cada comando que passamos de forma literal e não de forma abstrata.

Após fixarmos a ideia de sempre deixar as informações o mais detalhadas possíveis, começamos a empregar o conceitos de decisões.

Se e Senão

Uma das bases da lógica é o conceito de decisão. Esse conceito temos que utilizar pra tudo em nossa vida pois o mesmo nos fará pensar o que vai acontecer, cada caminho que vamos seguir e prever as possíveis situações.

Uma técnica muito boa para visualizarmos esse conceito é a utilização de fluxogramas.

Os fluxogramas, são representações de processos, através de gráficos esquemáticos, onde cada símbolo tem uma função.

Neste exemplo podemos ver a tomada de decisão para uma lâmpada que parou de funcionar.

Muito importante !!!

Antes de começarmos a desenvolver a lógica de qualquer coisa que queremos passar para um programa, ou até mesmo para algum processo que desejamos criar pra qualquer área da vida, é imprescindível entender o problema, todas as suas variáveis e condições de falha e sucesso.

Quando estiver com esse raciocino lógico bem fixado na sua cabeça, você vai perceber que a linguagem de programação vai entrar muito mais fácil no seu dia a dia!

A complexidade da lógica em um vídeo. (Para rir um pouco…)

Espero que esse conteúdo te ajude!!!
E lembre-se, a lógica antes da linguagem…
A lógica é tudo !!!

Até a próxima !!!