12
13/01/2016 Modelo Conceitual vs Modelo Lógico http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 1/12 imasters.com.br > Portal Fóruns 7Masters Revista iMasters Consulting Cursos online Agenda Eventos: PHP Experience InterCon Developer Week POA DevCommerce A A+ Modelo Conceitual vs Modelo Lógico Amigos, uma grande falha dos desenvolvedores web é achar que basta aprender a programar. A realidade do nosso mercado é que apenas um desenvolvedor produz todo o projeto sozinho, do início ao fim. Consequentemente, são poucos os que fazem análise, modelagem do banco de dados, layout, programação, testes, etc. Logo, se o profissional sabe apenas programar, fatalmente ele fará um projeto que não seguirá normas, padrões, etc. Por que estou falando isso tudo? Porque vejo que muitos projetos são feitos com erros graves de modelagem de banco de dados. Não estou dizendo que não funcionam. Até funcionam! Mas precariamente, sem consistência e com muito mais lógica do que deveriam. Esse artigo é direcionado àqueles que desenvolvem sistemas web e que ainda não têm esses conceitos. Não tenho a pretensão de fazer desse artigo uma verdadeira apostila ou livro. O objetivo é mostrar algumas técnicas e os principais erros cometidos e tão questionados em fóruns. Iniciarei hoje mostrando algumas dicas para a transição do modelo conceitual para o modelo lógico. Modelo Conceitual vs. Modelo Lógico /DESIGN Thiago Ferreira em Acessibilidade, Banco de Dados terçafeira, 16 de outubro de 2007 31 SHARES | /DESIGN /DESENVOLVIMENTO /BANCO DE DADOS /MKT DIGITAL /INFRA

Modelo Conceitual vs Modelo Lógico

Embed Size (px)

DESCRIPTION

Modelo conceitual vs modelo lógico

Citation preview

Page 1: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 1/12

imasters.com.br > Portal Fóruns 7Masters Revista iMasters Consulting Cursos online Agenda Eventos: PHP Experience InterCon Developer Week POA DevCommerce

A­A+

Modelo Conceitual vs ModeloLógico

Amigos, uma grande falha dos desenvolvedores web é achar que

basta aprender a programar. A realidade do nosso mercado é que

apenas um desenvolvedor produz todo o projeto sozinho, do início ao fim.

Consequentemente, são poucos os que fazem análise, modelagem do

banco de dados, layout, programação, testes, etc.

Logo, se o profissional sabe apenas programar, fatalmente ele fará um

projeto que não seguirá normas, padrões, etc.

Por que estou falando isso tudo?

Porque vejo que muitos projetos são feitos com erros graves de

modelagem de banco de dados. Não estou dizendo que não funcionam.

Até funcionam! Mas precariamente, sem consistência e com muito mais

lógica do que deveriam.

Esse artigo é direcionado àqueles que desenvolvem sistemas web e que

ainda não têm esses conceitos. Não tenho a pretensão de fazer desse

artigo uma verdadeira apostila ou livro. O objetivo é mostrar algumas

técnicas e os principais erros cometidos e tão questionados em fóruns.

Iniciarei hoje mostrando algumas dicas para a transição do modelo

conceitual para o modelo lógico.

Modelo Conceitual vs. Modelo Lógico

/DESIGN   

Thiago Ferreira em Acessibilidade, Banco de Dados terça­feira, 16 de outubro de 2007

 

 

 31

SHARES|

/DESIGN /DESENVOLVIMENTO /BANCO DE DADOS /MKT DIGITAL /INFRA

Page 2: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 2/12

Modelo Conceitual vs. Modelo Lógico

Utilizaremos pequenos trechos de diagramas de contexto hipotéticos

para exercitar algumas formas de modelagem.

 

Relacionamento “um-para-um”.Contexto:

Um produto tem estoque.

Modelo conceitual:

Modelo lógico:

Explicação:

Como não nos interessa manter dados do estoque senão sua

quantidade, estoque não é uma entidade e por isso seus atributos

(quantidade) são incorporadas pela entidade produto.

Observações:

Existem variações de relacionamentos “um-para-um”, mas que não

abordarei neste momento.

 

Relacionamento “um-para-muitos”

Contexto:

Page 3: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 3/12

Contexto:

Um departamento tem nenhum ou vários funcionários, mas um

funcionário pode pertencer a somente um departamento.

Modelo conceitual:

Modelo lógico:

Explicação:

Quanto há um relacionamento “um-para-muitos”, a entidade do lado “N”

recebe como atributo a chave primária da entidade do lado “um”.

Observação:

Caso haja dependência de existência entre as entidades, ou seja, uma

entidade só possa existir se a outra existir, a chave primária da entidade

do lado “um” passa a ser chave primária (e estrangeira) da entidade do

lado “N”, juntamente com a chave primária dessa entidade. Ou seja, uma

chave primária composta, na entidade do lado “N”.

 

Relacionamento “muitos-para-muitos”Contexto:

Um aluno tem aulas de nenhuma ou várias disciplinas e uma disciplina é

cursada por nenhum ou vários alunos.

Modelo conceitual:

Page 4: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 4/12

Modelo lógico:

Explicação:

Num relacionamento “muitos-para-muitos”, é preciso criar uma tabela

intermediária que terá como chave primária composta as chaves

primárias das outras duas tabelas.

Observação:

Nessa tabela intermediária, você pode colocar atributos que identifiquem

a relação entre as entidades. Exemplo: ano e semestre que o aluno está

cursando a disciplina.

 

Auto-relacionamento “um-para-muitos”Contexto:

Um funcionário supervisiona nenhum ou vários funcionários e um

funcionário tem somente um supervisor.

Modelo conceitual:

Modelo lógico:

Page 5: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 5/12

Explicação:

A própria entidade recebe como atributo a sua própria chave primária.

 

Auto-relacionamento “muitos-para-muitos”Contexto:

Um aluno só poderá cursar a disciplina X se tiver sido aprovado nas

disciplinas A e B. E só poderá cursar a disciplina Y se tiver sido aprovado

na disciplina A.

Modelo conceitual:

Modelo lógico:

Explicação:

No contexto, podemos ver que a disciplina A é pré-requisito de X e Y. E a

disciplina B é pré-requisito para X.

Nesse caso, criamos uma tabela que armazenará os relacionamentos

entre as disciplinas. E essa tabela terá como chave primária composta a

chave primária da outra tabela (duas vezes).

Page 6: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 6/12

 

Relacionamento Generalização/EspecializaçãoContexto:

Precisamos armazenar o código de identificação, cor e capacidade de

passageiros dos veículos que possuímos.

Para os veículos terrestres, é interessante armazenarmos a quantidade de

rodas. Para os aquáticos, o tamanho em pés. Para os aéreos, a forma de

propulsão (turbina, hélice, etc).

Modelo conceitual:

Modelo Lógico:

Explicação:

Nesse caso, temos que os atributos código de identificação, cor e

capacidade de passageiros é comum para todos os tipos de veículos,

mas que temos diferenças significativas de um tipo para o outro.

Se fizéssemos somente 3 tabelas (uma para cada tipo), teríamos que

repetir os campos em comum. Em princípio, isso é errado! O correto é

colocarmos os atributos comuns numa tabela abstrata e nas tabelas mais

concretas somente os atributos inerentes a ela.

Page 7: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 7/12

Existem outros tipos de relacionamento, como agregação e ternário, mas

não são muito comuns e por isso não tratarei.

Conclusão

Modelagem de banco de dados não é uma ciência exata, assim como

outros tipos de modelagem.

Portanto, não há verdade absoluta.

Essas regras podem mudar de caso para caso. Mas é preciso que

tenhamos atenção para “quando” quebrar essas regras. Precisamos ser

muito criteriosos e fazer testes.

Acredito que esse artigo seja muito útil para muita gente. A quantidade de

erros de modelagem que vejo diariamente é espantosa e só acontecem

por falta de conhecimento destas e de outras regras de modelagem de

banco de dados.

Caso tenham dúvidas ou comentários, sugestões, críticas, etc, por favor,

postem abaixo!

Abração!

Mensagem do anunciante:

Em apoio à evangelização do WordPress, os cursos da Apiki são gratuitos para que você possa se especializar na plataformaque mais cresce no mundo. Vagas limitadas, Inscreva-se agora.

Thiago Ferreira em Acessibilidade, Banco de Dados terça­feira, 16 de outubro de 2007

 

 

 31

SHARES|

leia agora

Replicação do SQL Serverpara o MySQL: Parte 05

Mauro Pichiliani em Banco de Dados

Page 8: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 8/12

enviar

Comentários

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *

Nome E­mail

Participe da discussão, lembre­se de ser respeitoso e construtivo :)

Thiago, vc acha que o trabalho dos DBA´s pode ou estásendo ameaçado pelo frameworks ORM? Pois eles fazemtodo o mapeamento do banco, coisa que o programadorpode implementar…

Responder

emerson lopes20 de outubrode 2007 às

10:20

Emerson, o trabalho de um DBA é muito mais do que amodelagem do banco. Além disso, há certas peculiaridadesque os sistemas não “entregam prontas”, pois dependem deanálise e experiência. Eu penso que os DBAs tendem a tercada vez mais destaque num mundo sedento de informaçõesrápidas e precisas.

Responder

Thiago Ferreira20 de outubrode 2007 às

23:15

Thiago Ferreira, bom dia!

Tudo bem, gostaria de pedir um favor, tenho um trabalhopara entregar ainda hoje de modelo conceitual e lógicoreferente a um açougue, o modelo conceitual eu ja fiz só nãofiz o Lógico, será que vc poderia me dar uma forcinha? anotameu email: [email protected]

Responder

Natalia Brizzi Camandona

6 de junho de2008 às 9:24

 21 de junho de 2010 às 19:33

pode mandar que posso te ajudar cara

Thiago Ferreira, bom dia!

Tudo bem, gostaria de pedir um favor, tenho um trabalhoNatalia Brizzi Camandona

6 de junho de

Page 9: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 9/12

para entregar ainda hoje de modelo conceitual e lógicoreferente a um açougue, o modelo conceitual eu ja fiz só nãofiz o Lógico, será que vc poderia me dar uma forcinha? anotameu email: [email protected]

Responder

2008 às 9:24

É exatamente tudo que eu precisava, eu ainda tinha algumasduvidas relacionadas a modelagem de bd, inclusive hojetenho uma prova sobre a mesma.

Otimo artigo.

Responder

Bruno Nonato7 de dezembrode 2009 às

9:06

Muito bom o artigo, simples e didático!!

Responder

17 de julho de2010 às 18:12

eu estou a criar um banco de dados sobre gestao de clientese activacao de servicos de uma empresa detelecomunicacao. tem as seguintes entidades e atributos: 1­Cliente(n da identificacao,nome,endereco), 2­numero[telefonico](id, serie do numero,n da identificacao,serial number ), 3­telemovel(serial number, marca, sistema, cor), 4­servicos(nome do servico, descricao) eu acho que esta muito simples pelo titulo do trabalho,gostaria que me ajudasse nesse sentido, pfv

Responder

25 de agostode 2010 às

10:44

prezados amigos eu adorei este comentarios deste forum

Responder

13 dedezembro de2010 às 12:27

Não entendi bem a parte do reladionamento generalização,os outros estão ótimos

Responder

Andre10 de março de2011 às 14:20

Conseguimos entender melhor com a prática, mas já valeu aleitura deste artigo.

Responder

Rubens15 de março de2011 às 6:22

Page 10: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 10/12

Olha Thiago Ferreira, Obrigada pela explica, foi mehor que ado professor.

att Caroline Thayane Ferreira.

Responder

Caroline Thayane Ferreira.

5 de dezembrode 2011 às

20:10

MTO BOM ESTE ARTIGO

Responder

CREMILDO12 de abril de2012 às 11:25

olá …. muito boa a explicação……

sobre os DBAs eu concordo plenamente sobre o que vocêexpôs……. pois são profissionais altamente capacitados embanco de dados…

vlw …. foi de grande ajuda para meus estudos pra prova dehoje….!!!

Responder

Blackout16 de outubrode 2012 às

18:07

Thiago, primeiramente, temos divisões nas áreas de TI nosdias atuais, é como se você tivesse, por exemplo, falandopara um médico da área pediátrica realizar um exame quedeveria ser feito por um profissional da área oftalmológica,somente pelo fato de pertencerem à área da saúde. Cada umtem seu papel, especialidade e conhecimento para aconstrução de um sistema seguro e consistente. Odesenvolvedor não poder ser totalmente responsável porfazer todas às analises, documentações e elaborações deum sistema, esses conceitos de entidade relacional econceitual devem ser direcionados também pros analistas debanco de dados (DBA’s) juntamente com os analistas derequisitos, que depois de serem feitos essas analisesdevesse passar pros analistas de sistemas darem um aval doque possa ser realizado e por último passar prodesenvolvedor verificar se é ou não possível desenvolvercom aquelas informações levantadas e exigir um prazo parao desenvolvimento do serviço proposto, esse tipo de trabalhodeve ser feito em conjunto pelos profissionais de TI, pois a“união faz a força”, hoje o que vejo são DBA’s se achando obam bam bam e ficando somente com a responsabilidade defazerem backups, recuperar o backups e migrarem os dadosde um servidor pra outro, não fazem mais analise nenhum,pelo menos nos órgãos públicos só ficam repassandotrabalho para os terceirizados ou repassa asresponsabilidades deles para os administradores de bancode dados que seria a realização das analises deinconsistência, duplicidade do banco e performance, masmesmo assim, colocam gente sem competência nenhumpara fazer o papel de administrador que e por fim repassampara as mãos dos analistas de sistemas que por sua veztacam nas costas do desenvolvedores para avaliarem os

Roberto26 de julho de2013 às 9:42

Page 11: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 11/12

dados do banco e fazerem levantamentos e proporemsoluções para resolver a questão dos dados do banco, ouseja, no final das contas o desenvolvedor é o que faz tudopra que o sistema funcione, por isso, acho que dar conselhosou ensinamentos pra desenvolvedores não é a solução,temos que começar com os analistas, pois acho que essapalavra analista já diz tudo, eles analisam o que será feito, sepulam essa etapa, realmente o desenvolvedor não vai tertoda essa gama de conhecimento para desenvolver umsistema sozinho que atenda a todos os requisitos. FAÇAM­ME O FAVOR A TODOS OS PROFISSIONAIS DE TI,COLABOREM, DEIXEM O ORGULHO DE LADO, PAREMDE FICAR REPASSANDO O PROBLEMA OU ARESPONSABILIDADE DE UM PARA O OUTRO ECOMECEM A TRABALHAR EM EQUIPE, COMECEM APROPOR SOLUÇÕES, MELHOR MODELO PARA OTRABALHO EM EQUIPE É O USO DO XP (EXTREMEPROGRAMMING).

Responder

Meu prof usa seu artigo pra ensina bd a nos!!!mt bom mesmoele!!!

Responder

rayanne28 de agostode 2013 às

22:52

boa Tarde gostaria de saber um bom livro de Banco deDados

Responder

Jeniffer13 de setembrode 2013 às

15:19

Perfeita a explicação rapaz… Há muito procurava algo queexplicasse bem como funciona os relacionamentos emmodelos relacionais e você explicou perfeitamente…

Responder

Niltemberg21 de agostode 2014 às

12:12

Bom dia Thiago, espero que vc ainda esteja on­line.Parabéns pelo seu artigo, muito bom. Thiago gostaria de lhepedir uma ajuda pois tenho que entregar um trabalho nafaculdade e estou com algumas dúvidas, vc pode me auxiliar. Meu Email: [email protected]

Responder

Andrea Chagas

14 de agostode 2015 às

10:13

Este projeto é mantido e patrocinado pelas empresas:

Page 12: Modelo Conceitual vs Modelo Lógico

13/01/2016 Modelo Conceitual vs Modelo Lógico ­

http://imasters.com.br/artigo/6800/banco­de­dados/modelo­conceitual­vs­modelo­logico/ 12/12

Desenvolvimento

AgileAjaxAnálise de DadosCakePHPCSSFront EndHTMLJavaJavaScriptPHPPythonRuby

Design

3ds maxAcessibilidadeArquitetura deInformaçãoDesign ResponsivoGamesUsabilidadeUser Experience

Banco de dados

InterbaseMongoDBMySQLOraclePostgreSQLSQL Server

Infra e Cloud

Cloud ComputingLinuxMicrosoft AzureSegurançaSite Blindado

Marketing Digital

Conteúdo DigitalE­commerceE­mail MarketingMercadoPublicidade OnlineRedes SociaisTendências

Mobile

AndroidiPhone & iPad

Agenda

Fórum

7Masters

Cursos Online

InterCon

Revista iMasters

Sobre o iMasters Política de Privacidade Fale conosco iMasters Expert (english blog)

Hospedado por: