Você está na página 1de 53

comentrios post favorito (3)

License (GLP).
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
Anuncie | Loja | Publique | Assine | Fale conosco
Hose!a"e# $eb o% Po%&a '( )eb To!os os Di%ei&os Rese%*a!os a
DevMedia
+,-+.' essoas cu%&i%a# De*/e!ia-
Plu"0in social !o Faceboo1
Curtir Curtir
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
1 de 5 !5/"#/!"1$ 11:5!
principalmente MySQL, Oracle, MSSQL e PostgreSQL, mas obviamente no se limita apenas a
esses. !trav"s #ele po#emos mo#elar tabelas #e forma grfica, relacionamentos e m$ito
mais. %tili&an#o este po#eroso ambiente temos a gera'o #a mo#elagem, #o pro(eto, #a
implementa'o e #a man$ten'o integra#as em apenas $m ambiente.
!p)s a mo#elagem, " poss*vel nos conectarmos ao banco #e #a#os, por e+emplo, o banco #e
#a#os MySQL, para sincroni&a'o. ,om o DBDesigner tamb"m " poss*vel trabal-armos com
os #a#os #as tabelas.
Para fins #e compara'o com o$tras ferramentas o ./.esigner tem como principais
concorrentes pro#$tos como Oracle Designer, IBM Relational Rose e CA Erwin. ! #iferen'a
para o$tras vers0es " 1$e o ./.esigner tem bastante s$porte tanto no f)r$m #a ferramenta
1$anto na internet em geral #evi#o a gran#e 1$anti#a#e #e pessoas 1$e $tili&am esta
ferramenta, al"m #e ser $ma op'o livre e #ispon*vel para #iferentes sistemas operacionais.
2o entanto, o DBDesigner ( est - $m certo tempo sem receber at$ali&a'0es m$ito em
f$n'o #o #esenvolve#or principal #a ferramenta ter si#o contrata#o para trabal-ar no
3or4benc- 1$e " mais $m concorrente #o DBDesigner. 5eli&mente para m$itos 1$e $tili&am
o ./.esigner e o consi#eram entre os mel-ores o pro(eto est sen#o at$ali&a#o aos po$cos
por $m gr$po #e #esenvolve#ores 1$e po#ero em breve lan'ar $ma verso at$ali&a#a #a
ferramenta.
2o restante #o artigo veremos como po#emos instalar o ./.esigner nas plataforma 3in#o6s
e Lin$+, como " o se$ f$ncionamento e 1$ais so as s$as principais ferramentas para gerar o
mo#elo, imagens #o mo#elo e gera'o #e c)#igo SQL. Por fim, veremos como conectar e
gerar o mo#elo #iretamente n$m banco #e #a#os MySQL.
Para bai+ar o DBDesigner basta visitar o site oficial #a ferramenta no en#ere'o7
-ttp788666.fabforce.net8#o6nloa#s.p-p
2o site po#emos escol-er se 1$eremos bai+ar $ma verso para o sistema Lin$+ o$ 3in#o6s.
Para 3in#o6s basta e+ec$tar o ar1$ivo ap)s reali&ar o #o6nloa# e seg$ir os passos.
Primeiramente #evemos escol-er a ling$agem 1$e 1$eremos $sar na ferramenta, conforme
mostra a Figura 1.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
! de 5 !5/"#/!"1$ 11:5!
Figura 1. Selecionan#o a ling$agem $tili&a#a na ferramenta.
!p)s selecionar a ling$agem clicarmos em 2e+t para prosseg$ir ao pr)+imo passo. 2o
pr)+imo passo #evemos aceitar os termos, conforme mostra a Figura 2.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
de 5 !5/"#/!"1$ 11:5!
Figura 2. !ceitan#o os termos #a licen'a GPL #o ./.esigner.
!p)s aceitar os termos e clicarmos em 92e+t: #evemos selecionar on#e o aplicativo #ever
ser instala#o, conforme mostra a Figura 3.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$ de 5 !5/"#/!"1$ 11:5!
Figura 3. ;scol-en#o on#e o aplicativo #ever ser instala#o no comp$ta#or.
Seleciona#o o local #e instala'o e clica#o em 92e+t: para prosseg$ir #evemos agora
selecionar as ferramentas 1$e #ese(amos 1$e o ./.esigner instale ($ntamente com o
programa principal, conforme mostra a Figura 4.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
5 de 5 !5/"#/!"1$ 11:5!
Figura 4. Selecionan#o as ferramentas a serem instala#as pelo ./.esigner.
Seleciona#as as ferramentas e clica#o em 2e+t temos a tela para selecionar os atal-os a
serem instala#os para o ./.esigner, conforme mostra a Figura 5.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
% de 5 !5/"#/!"1$ 11:5!
Figura 5. Selecionan#o os atal-os a serem cria#os.
! <ltima op'o #a tela anterior po#e ser seleciona#a se o $s$rio 1$iser 1$e o ./.esigner
#isponibili&e a ferramenta para m<ltiplos $s$rios #e $m mesmo comp$ta#or.
Por fim, na <ltima tela apenas confirmamos a instala'o conforme as op'0es seleciona#as nos
passos anteriores, conforme mostra a Figura 6.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
& de 5 !5/"#/!"1$ 11:5!
Figura 6. ,onfirman#o a instala'o #o ./.esigner.
!p)s a tela #a Figura 7, a ferramenta ser efetivamente instala#a no comp$ta#or.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
' de 5 !5/"#/!"1$ 11:5!
Figura 7. Progresso #e instala'o #o ./.esigner.
Para Lin$+, precisamos #escompact=lo atrav"s #o coman#o7
array0
nbsp;tarzxfsDBDesigner4.0.5.4.tar.gz
!p)s isso, #evemos ir at" o #iret)rio on#e ele foi #escompacta#o atrav"s #o coman#o7
array1
nbsp;cdcaminho_do_diretorio
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
# de 5 !5/"#/!"1$ 11:5!
array2
nbsp;./DBDesigner4
O ./.esigner ser carrega#o e ( po#emos $s=lo.
O ./.esigner #eriva $m Mo#elo ,onceit$al para $m Mo#elo L)gico, para isso temos #iversas
op'0es 1$e #evem estar bem #efini#as e 1$e #evemos con-ecer7 o mo#elo conceit$al #eve
estar normali&a#o (./.esigner apenas mo#ela e no normali&a as tabelas), #eriva'o #e
relacionamentos >7> (./.esigner cria $ma c)pia #a c-ave primria #e $ma #as tabelas como
c-ave estrangeira #a o$tra tabela), #eriva'o #e relacionamentos >72 (./.esigner cria $ma
c)pia #a c-ave primria #a tabela com car#inali#a#e > como c-ave estrangeira #a tabela com
car#inali#a#e 2), #eriva'o #e relacionamentos M72 (./.esigner cria $ma terceira tabela
1$e liga as tabelas com car#inali#a#e M e 2 e nessa tabela sero $sa#as c)pias #as c-aves
primrias #as #$as tabelas, $sa#as como c-aves primrias e estrangeiras), #eriva'o #e
relacionamentos generali&a'o8especiali&a'o (./.esigner cria $ma c)pia #a c-ave primria
#a tabela generali&a#a como c-ave estrangeira #as tabelas especiali&a#as res$ltan#o n$m
relacionamento #o tipo >72) e por fim temos a #eriva'o #e relacionamentos com atrib$tos
(relacionamentos >7> o$ >72, 1$e poss$em atrib$tos, #eci#e=se como #eve ser feita a
#eriva'o #esses atrib$tos antes #e $tili&ar o ./.esigner, portanto o nosso mo#elo
conceit$al #eve apresentar relacionamentos >7> e >72 sem 1$al1$er atrib$to, por"m no
relacionamento M72 no precisamos nos preoc$par, pois o ./.esigner permite a incl$so #e
atrib$tos no relacionamento).
!ntes #e t$#o, $m Mo#elo #e $m /anco #e .a#os " $ma #escri'o #os tipos #e informa'0es
1$e esto arma&ena#as em $m banco #e #a#os. ,omo $m e+emplo, po#er*amos ter $m
mo#elo 1$e informa 1$e $m banco #e #a#os arma&ena informa'0es sobre pro#$tos e 1$e,
para ca#a pro#$to, so arma&ena#os o se$ c)#igo, pre'o e #escri'o. Po#emos verificar 1$e
o mo#elo no informa 1$ais pro#$tos esto arma&ena#os e sim o tipo #e informa'o 1$e ele
cont"m. Para #esenvolvermos esse mo#elo precisamos #e $ma ling$agem #e mo#elagem #e
#a#os 1$e po#em ser te+t$ais e grficas e, al"m #isso, po#em ter #iferentes n*veis #e
abstra'o e ob(etivos.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
1" de 5 !5/"#/!"1$ 11:5!
mo#elo conceit$al registra 1$e #a#os po#em aparecer no nosso banco #e #a#os e no como
estes #a#os esto arma&ena#os no Sistema Gerencia#or #e /anco #e .a#os (SG/.). ;ste
tipo #e mo#elagem " mais alto n*vel e #eve ser $tili&a#o para envolver os clientes, pois
tem=se como foco a1$i #isc$tirmos aspectos #o neg)cio #o cliente e no #a tecnologia.
Por fim, o Mo#elo L)gico " mais bai+o n*vel 1$e o Mo#elo ,onceit$al e leva em conta alg$mas
limita'0es al"m #e implementar rec$rsos como a#e1$a'o #e pa#ro e nomenclat$ra,
#efini'o #e c-aves primrias e estrangeiras, normali&a'o, integri#a#e referencial, entre
o$tros.
!o abrir o ./.esigner ? ser e+ibi#a a tela #a Figura 8.
Figura 8. @ela inicial #o ./.esigner.
2o centro #a tela o ./.esigner apresenta $ma pe1$ena (anela com alg$mas #icas referentes
a plataforma. Se no 1$isermos mais e+ibir essa (anela to#a ve& 1$e o ./.esigner for
inicia#o basta selecionar a op'o 9.o not s-o6 tips on start$p:.
.e forma geral, o ./.esigner apresenta na tela principal #a ferramenta a Paleta #e
5erramentas (Palete @ools) A es1$er#a conten#o as principais f$ncionali#a#es #a ferramenta
1$e e+plicaremos no #ecorrer #o artigo, a Paleta #e 2avega'o (Palete 2avigation B Cnfo)
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
11 de 5 !5/"#/!"1$ 11:5!
Paleta #e @ipos #e .a#os (Palete .atatypes) 1$e permite a vis$ali&a'o e #efini'o #e vrios
tipos #e #a#os especifica#os para os campos #as tabelas, e por fim, a Paleta #o Mo#elo
(Palete Mo#el) 1$e permite a vis$ali&a'o e #efini'o #e to#os os ob(etos #o mo#elo como
tabelas, *n#ices, rela'0es, etc.
! rea #e trabal-o em branco " on#e #evemos criar o mo#elo. Para criar o mo#elo vamos
$tili&ar a barra #e ferramentas vertical 1$e est locali&a#a A es1$er#a #a (anela. 2o entanto,
antes #e $tili&ar as ferramentas #evemos fa&er $ma pe1$ena config$ra'o no ./.esigner
para 1$e ele apresente o mo#elo na forma espera#a.
Po#emos escol-er #iferentes tipos #e nota'0es para representar o relacionamento entre as
tabelas, isso po#e ser feito in#o no men$ 9.isplay: e escol-er a op'o 92otation:, conforme
mostra a Figura 9.
Figura 9. ,onfig$ra'o o tipo #e nota'o a ser $tili&a#a na mo#elagem.
!gora ( po#emos criar as tabelas correspon#entes As enti#a#es #o nosso Mo#elo ,onceit$al.
Para isso basta clicar no boto 92e6 @able: na barra #e ferramentas A es1$er#a, conforme
mostra a Figura 10.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
1! de 5 !5/"#/!"1$ 11:5!
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
1 de 5 !5/"#/!"1$ 11:5!
!p)s selecionar o *cone #e nova tabela basta clicar em 1$al1$er parte #a rea #e trabal-o.
2a rea #e trabal-o ser apresenta#a a nota'o grfica #a tabela, conforme mostra a Figura
11.
Figura 11. @abela cria#a na rea #e trabal-o.
Para e+cl$ir a tabela, basta selecion=la na rea #e trabal-o e pressionar o boto #elete. Para
config$rarmos a tabela basta #ar $m #$plo cli1$e sobre a mesma e s$rgir a (anela 9@able
;#itor:, conforme mostra a Figura 12.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
1$ de 5 !5/"#/!"1$ 11:5!
Figura 12. ,onfig$ran#o a tabela seleciona#a no @able ;#itor.
! primeira config$ra'o 1$e #evemos fa&er " 1$anto ao nome #a tabela, para isso #evemos
$tili&ar o campo D@able 2ameD e alterar o nome pa#ro config$ra#o. 2o e+emplo #a Figura
13 config$ramos o nome #a tabela para D,LC;2@;D.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
15 de 5 !5/"#/!"1$ 11:5!
Figura 13. ,onfig$ran#o o nome #a tabela.
!p)s isso, #evemos config$rar as col$nas #a tabela. Para isso basta clicar no campo
#estaca#o abai+o #e 9,ol$mn 2ame:, conforme #estaca a Figura 14.
Figura 14. ,onfig$ran#o as col$nas #a nossa tabela.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
1% de 5 !5/"#/!"1$ 11:5!
c-ave primria #a tabela. Seg$e na Figura 15 a col$na 9i#,liente: cria#a.
Figura 15. ,onfig$ra'o #a col$na 1$e representa a c-ave=primria #a tabela.
!p)s #igitar o nome #a col$na basta #ar $m ;2@;E para 1$e ele possa ir para o pr)+imo
campo 1$e " o 9.ata @ype:. O 9.ata @ype: " $ma cai+a #rop=#o6n 1$e tem tipos #e #a#os
pr"=#efini#os. ;ntre os #iversos campos temos o 9C2@;G;E: para valores n$m"ricos inteiros,
95LO!@: para valores n$m"ricos reais, 9F!E,G!E: para caracteres #e te+to #e 1$al1$er
taman-o. O 9F!E,G!E: a($sta o campo #e forma #inHmica, por"m po#emos #efinir $m
taman-o m+imo para o 9F!E,G!E:. Para #eterminar $m taman-o m+imo temos as op'0es
9Farc-ar(IJ):, 9Farc-ar(?K): e 9Farc-ar(IKK):. ,aso se(a necessrio o$tro valor basta clicar
n$m #esses valores e e#itar o valor #entro #os parLnteses para o valor #ese(a#o.
Po#emos verificar ain#a o$tras caracter*sticas 1$e po#em ser config$ra#as ap)s o 9.ata
@ype:, so elas7 22 (2ot 2$ll), !C (!$to Cncrement), 5lags, .efa$lt Fal$e e ,omments. !
op'o D22D significa 1$e, 1$an#o seleciona#o, no " permiti#o #ei+ar a col$na va&ia. ,ol$nas
primrias sempre tero essa op'o. ! op'o D!CD significa 1$e os valores #a col$na sero
cria#os a$tomaticamente pelo banco #e #a#os. 2ormalmente $tili&amos essa op'o para
col$nas 1$e so c-ave primria. ! op'o D5lagsD " altera#a a$tomaticamente #e acor#o com
o tipo #e #a#o escol-i#o. ! op'o D.efa$lt Fal$eD " $tili&a#a 1$an#o 1$eremos #efinir $m
valor pa#ro para $ma col$na, mesmo 1$an#o nen-$m #a#o se(a config$ra#o para ela. Por
fim, a op'o D,ommentsD serve para 1$e possamos colocar comentrios sobre as col$nas
cria#as.
5inali&a#a a config$ra'o #a primeira lin-a po#emos config$rar as #emais abai+o #esta.
2a tela 9@able ;#itor: po#emos notar tamb"m a presen'a #e $ma c-ave bem na es1$er#a #a
col$na 9,ol$mn 2ame:, isto in#ica 1$e a col$na " c-ave primria, conforme mostra a Figura
16.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
1& de 5 !5/"#/!"1$ 11:5!
Figura 16. Eepresenta'o #e c-ave=primria.
Para as #emais col$nas po#emos tamb"m config$rar o$tras c-ave=primrias bastan#o clicar
bem na es1$er#a, com isso po#emos config$rar e #esconfig$rar como c-ave=primria a
col$na.
5inali&a#as as config$ra'0es #a tabela basta clicar no s*mbolo 9F:, conforme mostra a Figura
17.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
1' de 5 !5/"#/!"1$ 11:5!
Figura 17. ,onfirman#o as config$ra'0es #a tabela cria#a.
!p)s a confirma'o teremos a tela #a Figura 18 na rea #e trabal-o.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
1# de 5 !5/"#/!"1$ 11:5!
Figura 18. @abela cria#a ap)s as config$ra'0es reali&a#as.
@amb"m po#emos alterar a e+ibi'o #as tabelas na rea #e trabal-o atrav"s #o men$
9.isplay: 1$e permite config$rarmos a aparLncia #a tabela como, por e+emplo, e+ibir o$
oc$ltar e+ibi'o #a c-ave=primria, #os atrib$tos, etc.
Para salvar o trabal-o reali&a#o at" agora basta ir em D5ileD e DSave !sD, conforme mostra a
Figura 19.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
!" de 5 !5/"#/!"1$ 11:5!
Figura 19. Salvan#o o trabal-o reali&a#o.
Para criar o$tras tabelas o proce#imento " o mesmo bastan#o clicar no *cone correspon#ente
#a barra #e ferramenta e fa&er as config$ra'0es necessrias. Para fins #e e+emplifica'o
criaremos a tabela conforme mostra a Figura 20.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
!1 de 5 !5/"#/!"1$ 11:5!
Figura 20. ,onfig$ran#o a tabela ;mpresa.
!gora ( po#emos criar os relacionamentos entre as tabelas. Para isso, po#emos $tili&ar os
bot0es na barra #e ferramentas conforme mostra#o a Figura 21.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
!! de 5 !5/"#/!"1$ 11:5!
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
! de 5 !5/"#/!"1$ 11:5!
O primeiro relacionamento " #o tipo >72 representa#o pelo boto D2e6 >72 EelationD. Se
1$isermos relacionar #$as tabelas basta clicar no boto #e relacionamento e clicar na tabela
#ese(a#a e ap)s isso clicar na o$tra tabela 1$e 1$eremos relacionar.
Os o$tros bot0es po#em ser vis$ali&a#os apenas colocan#o=se o mo$se em cima e assim o
nome e tipo #o relacionamento ser apresenta#o. %m relacionamento 1$e precisamos
c-amar a aten'o " o boto D2e6 27M EelationD. 2esse tipo #e relacionamento teremos como
res$lta#o a cria'o #e $ma tabela #e relacionamento entre as #$as tabelas conforme (
-av*amos e+plica#o no inicio #o artigo. Seg$e na Figura 22 $m e+emplo #e como ficaria o
nosso banco #e #a#os se $tili&ssemos este relacionamento entre a tabela ,liente e ;mpresa.
Figura 22. %tili&an#o o relacionamento 92e6 27M Eelation:.
Po#emos verificar 1$e a tabela cria#a se c-ama 9,LC;2@;M-asM;MPE;S!:. ;sse nome po#e
ser altera#o apenas clican#o #$as ve&es na nova tabela cria#a, ap)s isso po#emos fa&er as
config$ra'0es necessrias, conforme ( fi&emos antes para as tabelas ,liente e ;mpresa.
O$tra sit$a'o interessante " 1$e o ./.esigner nos obriga a #ar $m nome para o
relacionamento. 2o e+emplo acima temos os nomes 9EelMJ>: e 9EelMJI:, para alterar
#evemos #ar $m #$plo cli1$e em cima #o nome #o relacionamento e fa&er a altera'o na tela
9Eelation ;#itor:, conforme po#emos verificar na Figura 23.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
!$ de 5 !5/"#/!"1$ 11:5!
Figura 23. ,onfig$ran#o as proprie#a#es #o relacionamento.
Q$an#o $tili&armos o relacionamento D2e6 >72 2on=C#entifying=EelationD #evemos
obrigatoriamente clicar em primeiro l$gar na tabela com car#inali#a#e > #o relacionamento e
somente #epois clicar na tabela com car#inali#a#e 2. Se no fi&ermos isso o relacionamento
ser cria#o com a car#inali#a#e inverti#a.
O$tro relacionamento 1$e precisamos tomar c$i#a#o " o D2e6 >7> 2on=C#entifying=EelationD,
pois a cria'o #o relacionamento " feita colocan#o $ma c)pia #a c-ave primria #e $ma #as
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
!5 de 5 !5/"#/!"1$ 11:5!
cria#a a c-ave estrangeira. !p)s isso, #evemos clicar na tabela 1$e ce#er a c)pia #a c-ave
primria e #epois na tabela 1$e receber a c-ave estrangeira. Q$an#o $samos esse tipo #e
relacionamento #evemos atentar para o fato 1$e o ./.esigner alg$mas ve&es atrib$i o
relacionamento como >72 e no >7> como -av*amos escol-i#o, isso ocorre pois o ./.esigner
po#e enten#er 1$e $sar $ma c-ave primria #e $ma tabela como c-ave estrangeira #e o$tra
" caracter*stica #e relacionamentos #o tipo >72. !pesar #o ./.esigner a($#ar bastante na
mo#elagem, alg$mas ve&es ele po#e atrapal-ar, como nessa sit$a'o. 2o entanto, para
resolver esse problema basta #ar $m #$plo cli1$e sobre o relacionamento e na tela DEelation
;#itorD alterar o DEelation Nin#D para 9>7> (2on=C#entifying):, conforme il$stra a Figura 24.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
!% de 5 !5/"#/!"1$ 11:5!
Figura 24. !($stan#o o tipo #o relacionamento.
!p)s finali&armos o mo#elo e salv=lo, po#emos manip$lar este mo#elo #e #iferentes formas
como7 ,riar $m ar1$ivo #e imagem #o mo#elo o$ ain#a ,riar $m Script SQL para 1$e se(a
gera#o o banco #e #a#os.
Para criar $m ar1$ivo #e imagem #o mo#elo basta ir em D5ileD, ap)s isso selecionar a op'o
D;+portD e clicar em D;+port Mo#el as Cmagen...D, conforme mostra a Figura 25.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
!& de 5 !5/"#/!"1$ 11:5!
Figura 25. ,rian#o $ma imagem #o mo#elo.
!p)s isso, #evemos escol-er $m nome para a imagem e escol-er $m #os formatos, conforme
mostra a Figura 26.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
!' de 5 !5/"#/!"1$ 11:5!
Figura 26. Salvan#o $ma imagem #o mo#elo.
Para a$+iliar no processo #e escol-a #e $m #os formatos o P2G (Portable 2et6or4 Grap-ics)
foi $m formato 1$e s$rgi$ em >OOP como $ma alternativa ao formato GC5 1$e era
#esenvolvi#o pela %nisys ap)s an$ncio #a empresa %nisys 1$e iria cobrar royalties #os
#esenvolve#ores #e soft6ares para trabal-os grficos 1$e s$portassem o formato GC5. O P2G
trabal-a com es1$ema #e I? bits #e cores, o$ se(a, >P,Q mil-0es #e cores no total. O mais
interessante " 1$e em compara'o com o$tros formatos m$ito pop$lares como o RP;G ele
tem $ma compresso mais eficiente e 1$e no proporciona per#a #e 1$ali#a#e a ca#a
salvamento. O$tro gran#e ponto #o P2G e por isso ele " to largamente $tili&a#o na internet
" 1$e o espa'o re1$eri#o para imagens nesse formato so pe1$enos, po#en#o assim termos
fig$ras #e alta #efini'o e com $m taman-o pe1$eno. !l"m #isso, o P2G oferece o rec$rso #e
transparLncia.
O o$tro formato #ispon*vel " o /MP (bitmap o$ mapeamento #e bits) 1$e " con-eci#o por ser
$m formato #e imagens mais Dp$roD. 2o /MP no temos nen-$m tipo #e compresso e por
isso temos $ma 1$ali#a#e e+celente. Por"m, por no $sar nen-$ma compresso o se$
taman-o " m$ito gran#e. Cmagens simples e pe1$enas c-egam a ter megabytes #e taman-o.
O taman-o 1$e $ma imagem /MP ter po#e ser calc$la#o atrav"s #a f)rm$la7 n<mero #e
pontos -ori&ontais + n<mero #e pontos verticais + bits #e cor 8 Q. O res$lta#o ser #a#o em
bytes. Para obtermos o taman-o em N/ basta #ivi#irmos o res$lta#o por >.JI? e para obter o
res$lta#o em M/ #ivi#imos o res$lta#o por >.J?Q.KSP. ;m Dbits #e corD, $samos I? para
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
!# de 5 !5/"#/!"1$ 11:5!
imagens com IKP cores e 1$atro para imagens com >P cores.
Para criar $m Script SQL para 1$e possamos gerar o banco #e #a#os basta e+portarmos o
ar1$ivo #iretamente para $m formato #e Script SQL 1$e po#er ser posteriormente $tili&a#o
#iretamente em $m gerencia#or #e banco #e #a#os 1$e far a cria'o #o banco #e #a#os.
Para isso, #evemos ir A op'o D5ileD, ap)s isso selecionar D;+portD e clicar na op'o DSQL
,reate ScriptD, conforme mostra a Figura 27.
Figura 27. ;+portan#o o ar1$ivo SQL para cria'o #o banco #e #a#os.
!p)s isso, ser e+ibi#a a tela 9;+port SQL Script:, conforme mostra a Figura 28.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
" de 5 !5/"#/!"1$ 11:5!
Figura 28. @ela ;+port SQL Script e+ibi#a na tela.
2essa tela temos alg$mas op'0es como a possibili#a#e #e copiar o script para a rea #e
transferLncia (op'o ,opy Script to ,lipboar#), o$ se(a, copiamos para a rea #e
transferLncia e #epois colamos em alg$m e#itor, o$ ain#a po#emos salvar o script em alg$m
ar1$ivo SQL (1$e po#e ser $sa#o no gerencia#or #e banco #e #a#os) atrav"s #o boto DSave
Script to 5ileD. @emos como e+emplo a Figura 29.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
1 de 5 !5/"#/!"1$ 11:5!
Figura 29. ;+emplo #e $m mo#elo com #$as tabelas e $m relacionamento.
%tili&an#o a op'o #e gera'o a$tomtica #o SQL temos o c)#igo #a Listagem 1 gera#o pelo
./.esigner.
Listagem 1. ;+emplo #e c)#igo SQL gera#o pelo ./.esigner #a#a a mo#elagem reali&a#a
anteriormente.
CREATE TABLE CLIENTE (
idCliente INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nome VARCHAR NULL,
PRIMARY KEY(idCliente)
);

CREATE TABLE EMPRESA (
idEmpresa INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
CLIENTE_idCliente INTEGER UNSIGNED NOT NULL,
nome VARCHAR NULL,
PRIMARY KEY(idEmpresa),
INDEX EMPRESA_FKIndex1(CLIENTE_idCliente)
);

Para compatibili&ar a mo#elagem 1$e criamos no ./.esigner com $m banco #e #a#os no "
#if*cil, apenas precisamos observar alg$ns #etal-es nas #efini'0es #os campos e na
e+porta'o #o script #e cria'o, visto 1$e os bancos #e #a#os implementam os mesmos
pa#r0es SQL.
!p)s reali&a#a a mo#elagem no ./.esigner, po#emos o$ apenas e+portar o script para
e+ec$t=lo na base #e #a#os o$ po#emos conectar a base #e #a#os instalan#o o #river O./,
o$ fa&en#o $ma cone+o #ireta 1$e o ./.esigner oferece.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
! de 5 !5/"#/!"1$ 11:5!
#e #a#os MySQL 1$e " $m #os bancos #e #a#os mais pop$lares e mais $tili&a#os. ! cone+o
com os o$tros bancos #e #a#os " m$ito semel-ante.
Primeiramente #evemos bai+ar o MySQL no site oficial #o MySQL no en#ere'o
-ttp788#ev.mys1l.com8#o6nloa#s8mys1l8.
!p)s fa&er o #o6nloa# #o MySQL po#emos e+ec$t=lo para come'ar o processo #e instala'o
conforme mostra a Figura 30.
Figura 30. ,onfig$ran#o a instala'o #o MySQL.
5eito isso, a tela presente na Figura 31 ser e+ibi#a para 1$e o $s$rio possa selecionar se
ele #ese(a instalar, at$ali&ar, remover o$ mo#ificar $m pro#$to MySQL. ,omo 1$eremos
instalar o MySQL #evemos selecionar a op'o 9!##8Mo#ify Pro#$cts an# 5eat$res:, conforme
os #etal-es apresenta#os na Figura 31.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
de 5 !5/"#/!"1$ 11:5!
Figura 31. @ela #e config$ra'o #os pro#$tos MySQL.
!p)s selecionar a op'o para instalar $m novo pro#$to MySQL seremos perg$nta#os se
aceitamos os termos #o contrato, basta selecionar 9C accept t-e license terms: e clicar em
92e+t:, conforme mostra a Figura 32.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$ de 5 !5/"#/!"1$ 11:5!
Figura 32. !ceitan#o os termos e avan'an#o no processo #e instala'o.
2o pr)+imo passo #evemos selecionar os pro#$tos 1$e 1$eremos 1$e o MySQL instale, para
o nosso caso 1$eremos apenas o banco #e #a#os por isso selecionamos apenas o 9MySQL
Server K.P.>O: e clicamos em 92e+t:m conforme mostra a Figura 33.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
5 de 5 !5/"#/!"1$ 11:5!
Figura 33. Selecionan#o o MySQL Server K.P.>O.
!p)s isso, a pr)+ima tela (presente na Figura 34) apenas cont"m alg$mas informa'0es
sobre re1$isitos a#icionais a serem instala#os. !penas clicamos em 92e+t: para avan'armos
para a instala'o #o MySQL.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
% de 5 !5/"#/!"1$ 11:5!
Figura 34. @ela #e confirma'o para o processo #e instala'o.
2a pr)+ima etapa basta confirmarmos o processo #e instala'o clican#o em 9;+ec$te:,
conforme mostra a Figura 35.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
& de 5 !5/"#/!"1$ 11:5!
Figura 35. ;+ec$tan#o a instala'o #o MySQL Server.
! imagem #a Figura 36 mostra o processo #e instala'o #o MySQL Server.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
' de 5 !5/"#/!"1$ 11:5!
Figura 36. Processan#o a instala'o #o MySQL Server.
!p)s a instala'o o MySQL Server, clicamos em 92e+t: para 1$e possamos iniciar o processo
#e config$ra'o, conforme mostra a Figura 37.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
# de 5 !5/"#/!"1$ 11:5!
Figura 37. ,onfig$ran#o o MySQL Server.
5eito isso, o MySQL solicitar alg$mas config$ra'0es como a porta. .ei+amos t$#o como
pa#ro e clicamos em 2e+t, conforme mostra a Figura 38.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$" de 5 !5/"#/!"1$ 11:5!
Figura 38. ,onfig$ran#o alg$mas op'0es #o MySQL Server.
2a pr)+ima tela config$ramos a sen-a root #o MySQL e repetimos a sen-a para confirmar.
@amb"m po#emos config$rar o$tros $s$rios 1$e possam ter acesso a base #e #a#os atrav"s
#a cai+a 9MySQL Eoot Pass6or#:, conforme mostra a Figura 39. 2o nosso caso iremos
config$rar apenas o root #efinin#o a sen-a tamb"m como root.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$1 de 5 !5/"#/!"1$ 11:5!
Figura 39. ,onfig$ran#o a sen-a #e root e $s$rios com acesso ao banco #e #a#os.
2a tela #a Figura 40 temos os <ltimos #etal-es para ser config$ra#os como7 o nome #o
servi'o no 3in#o6s, se #ese(amos 1$e o MySQL se(a inicia#o ao iniciali&ar o comp$ta#or e
#etal-es #a conta #o $s$rio.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$! de 5 !5/"#/!"1$ 11:5!
Figura 40. ,onfig$ran#o os <ltimos #etal-es #o MySQL Server.
Por fim, #evemos avan'ar para 1$e o processo #e config$ra'o se(a inicia#o e na pr)+ima
tela finali&amos a config$ra'o, conforme mostram as telas #as Figuras 41 e 42.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$ de 5 !5/"#/!"1$ 11:5!
Figura 41. Processan#o as config$ra'0es anteriores.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$$ de 5 !5/"#/!"1$ 11:5!
!gora 1$e o MySQL est em f$ncionamento po#emos criar $ma base #e #a#os no MySQL
Server. !p)s criar a base #e #a#os no MySQL po#eremos criar as tabelas a partir #o
./.esigner. Para criar a base #e #a#os, basta #igitar o coman#o abai+o no console #o
MySQL Server7
CREATE DATABASE testeBanco;
,ria#a a base #e #a#os po#emos nos conectar nela a partir #o ./.esigner in#o no men$
s$perior e selecionan#o 9.atabase: e 9,onnect to .atabase: conforme mostra a Figura 43.
Figura 43. Selecionan#o a op'o para reali&armos a cone+o com a base #e #a#os.
2a pr)+ima tela #evemos selecionar a op'o 92e6 .atabase ,onnection: para criarmos $ma
nova cone+o com o MySQL Server, conforme mostra a Figura 44.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$5 de 5 !5/"#/!"1$ 11:5!
Figura 44. ,rian#o $ma nova cone+o com o banco #e #a#os.
2a tela 9.atabase ,onnection ;#itor: config$ramos os #etal-es #a config$ra'o #o MySQL
Server, conforme mostra a Figura 45.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$% de 5 !5/"#/!"1$ 11:5!
Figura 45. ,onfig$ran#o os #etal-es #a cone+o com MySQL.
Para conectar na base #e #a#os config$ra#a acima basta selecionar a base #e #a#os na tela
9Select .atabase ,onnection: e clicar em 9,onnect:, conforme mostra a Figura 46.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$& de 5 !5/"#/!"1$ 11:5!
!p)s mo#elar a aplica'o no ./.esigner po#emos solicitar para 1$e o ./.esigner
implemente o mo#elo na base #e #a#os seleciona#a na tela anterior. Para isso basta ir ao
men$ 9.atabases: e clicar em 9.atabase Sync-ronisation:, conforme mostra a tela #a Figura
47.
Figura 47. Sincroni&an#o o mo#elo com a base #e #a#os.
Fale ressaltar 1$e o ./.esigner " $m pro(eto 1$e no recebe$ at$ali&a'0es $ltimamente e
por isso no s$porta #etermina#as vers0es #e base #e #a#os. %ma #essas base #e #a#os so
as vers0es posteriores ao MySQL ?, o$ se(a, MySQL K em #iante. Csso acontece por1$e o
MySQL fe& alg$mas altera'0es no se$ sistema #e login. Por isso se tentarmos conectar no
./.esigner e recebermos a mensagem #a Figura 48 " $m in#icio 1$e a verso #o MySQL
no " s$porta#a pelo ./.esigner.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$' de 5 !5/"#/!"1$ 11:5!
Figura 48. Problema ao conectar com a verso MySQL K o$ s$perior.
2o entanto, ain#a assim po#emos contornar essa sit$a'o atrav"s #e $m proce#imento
teoricamente simples. /asta restabelecermos a sen-a para o estilo #a verso MySQL ? para
ca#a $s$rio 1$e necessita $tili&ar o banco #e #a#os atrav"s #o ./.esigner. Portanto, para
isso #evemos $tili&ar o coman#o S;@ P!SS3OE. e a f$n'o OL.MP!SS3OE.() conforme o
coman#o abai+o7
mysql> SET PASSWORD FOR 'username'@'localhost' = OLD_PASSWORD('novasenha');
! alternativa " $sar %P.!@; e 5L%SG PECFCL;G;S conforme abai+o7
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('novasenha')
WHERE Host = 'localhost' AND User = 'username';
mysql> FLUSH PRIVILEGES;
;sse reset na sen-a " necessrio, pois o MySQL $tili&a $m protocolo #e a$tentica'o basea#o
em $ma sen-a com $m algoritmo #e -as- 1$e " incompat*vel com os clientes 1$e s$portam
at" a verso ? #o MySQL.
Mais $ma alternativa seria $tili&ar $ma conta cria#a no MySQL ?, com isso o MySQL K teria
ain#a essa conta registra#a no mo#elo antigo e aceitaria a a$tentica'o.
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
$# de 5 !5/"#/!"1$ 11:5!
O 1$e vocL ac-o$ #este postT
Gostei (K) (J)
cone+o com a base #e #a#os MySQL K, por"m esse ser $m ass$nto para as pr)+imas
vers0es #os artigos 1$e tratam sobre o ass$nto.
Referncias
Site oficial MySQL ,omm$nity, #ispon*vel em #ev.mys1l.com8#o6nloa#s8.
./.esigner ?, #ispon*vel em 666.fabforce.net8#b#esigner?8.
Hi"o% /e!ei%os
Hi"o% /e!ei%os 23i"o%o$en4"#ail-co#5 6 aluno !a Uni*e%si!a!e !o Vale !o Rio !os Sinos e# Ci7ncia !a
Co#u&a89o cu%san!o o :; se#es&%e< on!e &a#b6# &%abal3a na esquisa cien&=>ica na ?%ea !e in&eli"7ncia a%&i>icial
co# P%ocessa#en& @---A
,omentrio U @ire s$a #<vi#a
Publici!a!e
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
5" de 5 !5/"#/!"1$ 11:5!
Servi'os
Cncl$a $m comentrio
!#icionar aos 5avoritos
Marcar como li#o8assisti#o
Cncl$ir anota'o pessoal
Ferso para impresso
V/anco #e
#a#os
CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
51 de 5 !5/"#/!"1$ 11:5!
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
5! de 5 !5/"#/!"1$ 11:5!
CONTEDO REVISTAS CURSOS APIs MVP LOGIN
DBDesigner: Modelagem e Implementao de banco de dados http://www.devmedia.com.br/dbdesigner-modelagem-e-implementaca...
5 de 5 !5/"#/!"1$ 11:5!