Upload
leinylson-fontinele
View
13
Download
0
Embed Size (px)
DESCRIPTION
Modelo conceitual vs modelo lógico
Citation preview
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
AA+
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çafeira, 16 de outubro de 2007
31
SHARES|
/DESIGN /DESENVOLVIMENTO /BANCO DE DADOS /MKT DIGITAL /INFRA
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 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:
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 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:
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 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:
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 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).
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 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.
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 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çafeira, 16 de outubro de 2007
31
SHARES|
leia agora
Replicação do SQL Serverpara o MySQL: Parte 05
Mauro Pichiliani em Banco de Dados
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 8/12
enviar
Comentários
O seu endereço de email não será publicado. Campos obrigatórios são marcados com *
Nome Email
Participe da discussão, lembrese 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
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 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: 1Cliente(n da identificacao,nome,endereco), 2numero[telefonico](id, serie do numero,n da identificacao,serial number ), 3telemovel(serial number, marca, sistema, cor), 4servicos(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
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 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
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 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ÇAMME 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 online.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:
13/01/2016 Modelo Conceitual vs Modelo Lógico
http://imasters.com.br/artigo/6800/bancodedados/modeloconceitualvsmodelologico/ 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 DigitalEcommerceEmail 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: