Você está na página 1de 31

0

Modelagem de
Dados
em Microsoft
Access 95
1
I DEOLGI CA PRODUTI VI DADE EMPRESARI AL E I NFORMTI CA
Modelagem de Dados
em Microsoft Access 95
Ideolgica Produtividade Empresarial Informtica
R. Iguatemi, 5, 9! Andar
"elefone #$%%& ''()(%$( * +a, #$%%& '5()(59
GEEK BRASIL htt!""###$gee%&rasil$com$&r
'(dice
A(al)tico
I(trod*+,o - modelagem de dados 1
Por que Projetar? 2
Problemas Resultantes de um Projeto Pobre 2
Introduo ao Projeto de Banco de Dados 3
Modelo Domnio/Ca!e "
# Processo de $ormali%ao &
.m M/todo de 0ro1eto de Ba(co de Dados 2
0ro1eto do Modelo do Ba(co de Dados 9
ii
Introduo modelagem de
dados
Aprenda os conceitos bsicos de
normalizao
-m pro.eto de /anco de dados 0 uma mat0ria comple,a, n1o
importando como algumas pessoas ac2em 3ue se.a fcil. Esta sess1o
apenas arran2a a superf4cie, mas com um /elo arran21o.
-m /anco de dados pro.etado de forma conveniente 0 um modelo de
uma empresa, ou de alguma outra 5coisa6 no mundo real. 7omo seu
modelo f4sico, em contrapartida, um modelo de dados permite a voc8
fa9er perguntas so/re os fatos 3ue comp:em os o/.etivos a serem
alcan;ados. Estas s1o as perguntas 3ue precisam de respostas e 3ue
determinar1o 3uais fatores precisar1o serem arma9enados no modelo
de dados.
<o modelo relacional, os dados s1o organi9ados em ta/elas 3ue
possuem as seguintes caracter4sticas=
"odo registro tem o mesmo n>mero de fatos?
"odo campo cont0m o mesmo tipo de fato em cada um dos registros?
@ apenas um ingresso para cada fato?
Dois registros nunca s1o e,atamente os mesmos?
A ordem dos registros e campos n1o 0 importante.
Ao Anal desta leitura, voc8 ter a compreens1o /sica dos pro/lemas
resultantes de um pro.eto po/re de /anco de dados, estar familiari9ado
com o Modelo Dom4nioB72ave, compreender o processo para se
pro.etar um /anco de dados relacional, e sa/er so/re as ferramentas
usadas no Microsoft Access para suportar integridade coagindo num
/anco de dados.
3a)t*lo
1
Por que Projetar?
-m pro.eto preciso 0 crucial para a opera;1o de um sistema de
informa;:es seguro e eAciente. A tecnologia dos microcomputadores 0
atualmente t1o avan;ada 3ue o impacto de um pro.eto po/re pode n1o
se mostrar t1o cedo 3uanto no passado? todavia, 3uando os pro/lemas
aparecerem, eles ser1o severos.
-m pro.eto de um /anco de dados tem 3ue fa9er com 3ue o camin2o
dos dados se.a arma9enado e mostrar como os dados ser1o relatados.
Cs processos do pro.eto s1o desenvolvidos depois de voc8 determinar
e,atamente 3uais informa;:es precisam ser arma9enadas e como elas
ser1o recuperadas.
Duanto mais cuidadoso seu pro.eto, tanto mel2or o /anco de dados
f4sico se identiAcar com as necessidades do usurio. <o processo de
desenvolvimento de um sistema completo, voc8 precisa considerar as
necessidades do usurio de vrios pontos de vista.
Problemas Resultantes de um Projeto Pobre
Diversos pro/lemas podem se manifestar como resultado de um /anco
de dados mal pro.etado=
C /anco de dados eBou aplica;1o n1o podem funcionar
ade3uadamente.
Cs dados podem n1o ser conAveis ou ser1o ine,atos.
A performance pode ser degradada.
A Ee,i/ilidade poder ser perdida.
A se;1o seguinte e,plica so/re alguns dos pro/lemas mais comuns
resultantes de um pro.eto de /anco de dados po/re. Cs pro/lemas
podem ser agrupados so/ duas categorias= dados redundantes e
modiAca;:es anFmalas.
Introduo ao Projeto de Banco de Dados
7onsidere a ta/ela seguinte 3ue arma9ena dados so/re produtos e
fornecedores. Esta aparentemente inofensiva ta/ela cont0m muitos
pro/lemas potenciais.
IDProdut
o
Descrio Fornecedor Endereo Cidade Regio Pas
34 Sasquatch Ale Bg!oot Bre"eres 34## $ %th A&enue'
Sute ()#
Bend *R +SA
(, Schogg Scho-olade .el S/0"aren
1mb.
2ergartenstra0e 3 Berln 1erman4
5% Scottsh 6ongbreads S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
4( Snga7orean >red
=ee
6e-a 2radng 4,) Serangoon 6oo7' Snga7ore Snga7ore
(# Sr Rodne4;s
=armalade
S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
() Sr Rodne4;s Scones S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
5) Sro7 d;?rable >or@ts d;?rables )4% rue Ahasseur Ste$
.4acnthe
Bu?bec Aanada
45 S7egesld 64ngb4sld 64ngb4sld >s-eba--en
)#
64ngb4 Denmar-
33 Steele4e Stout Bg!oot Bre"eres 34## $ %
th
A&enue Sute
()#
Bend *R +SA
Gupon2amos 3ue voc8 dese.e adicionar outro registro
3, 6umberman;s 6ager Bg!oot Bre"eres 34## $ %th A&enue Sute
()#
Bend *R +SA
C espa;o em disco 0 perdido por duplica;1o dos dados so/re o
fornecedor. "oda ve9 3ue um novo produto 0 registrado para um
fornecedor em particular, todos os dados so/re este fornecedor tem de
ser repetidos. Imagine o pro/lema se diversos fornecedores fornecem
centenas de produtos cada um.
Modifica+4es A(5malas
C 3ue acontece se o fornecedor Higfoot HreIeries se muda para
PortlandJ Duantos campos ter1o de ser modiAcados para se assegurar
3ue o novo endere;o foi registradoJ
IDProdut
o
Descrio Fornecedor Endereo Cidade Regio Pas
34 Sasquatch Ale Bigfoot Breweries 3400 - 8th Avenue Suite
210
Bend OR SA
(, Schogg Scho-olade .el S/0"aren
1mb.
2ergartenstra0e 3 Berln 1erman4
5% Scottsh 6ongbreads S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
4( Snga7orean >red 6e-a 2radng 4,) Serangoon 6oo7' Snga7ore Snga7or
=ee e
3! "u#$er#an%s "ager Bigfoot Breweries 3400 - 8th Avenue Suite
210
Bend OR SA
(# Sr Rodne4;s
=armalade
S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
() Sr Rodne4;s Scones S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
5) Sro7 d;?rable >or@ts d;?rables )4% rue Ahasseur Ste$
.4acnthe
Bu?bec Aanada
45 S7egesld 64ngb4sld 64ngb4sld >s-eba--en )# 64ngb4 Denmar-
3& Steele'e Stout Bigfoot Breweries 3400 - 8th Avenue Suite
210
Bend OR SA
<ovamente, imagine o 3ue pode resultar da modiAca;1o de centenas de
campos de dados para apenas um fornecedor. Duando modiAca;:es s1o
feitas, elas dever1o a/ranger todas as cpias dos dados. Pense a
respeito da confus1o 3ue resulta de modiAcar apenas um su/grupo de
um dado duplicado.
E6cl*s4es A(5malas
Gupon2amos 3ue voc8 n1o tra/al2ou por muito tempo com o produto K
e decidiu eliminar esta lin2a de dados de sua ta/elaJ
IDProdut
o
Descrio Fornecedor Endereo Cidade Regio Pas
34 Sasquatch Ale Bg!oot Bre"eres 34## $ %th A&enue
Sute ()#
Bend *R +SA
(, Schogg Scho-olade .el S/0"aren
1mb.
2ergartenstra0e 3 Berln 1erman4
5% Scottsh 6ongbreads S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
42 Singa(orean )ried
*ee
"e+a ,rading 4!1 Serangoon "oo(- Singa(ore Singa(or
e
(# Sr Rodne4;s
=armalade
S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
() Sr Rodne4;s Scones S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
5) Sro7 d;?rable >or@ts d;?rables )4% rue Ahasseur Ste$
.4acnthe
Bu?bec Aanada
45 S7egesld 64ngb4sld 64ngb4sld >s-eba--en
)#
64ngb4 Denmar-
33 Steele4e Stout Bg!oot Bre"eres 34## $ %th A&enue Sute
()#
Bend *R +SA
Agora, o/servando os dados restantes, onde est o endere;o do
fornecedor LeMa "radingJ
IDProdut
o
Descrio Fornecedor Endereo Cidade Regio Pas
34 Sasquatch Ale Bg!oot Bre"eres 34## $ %th A&enue Sute
()#
Bend *R +SA
(, Schogg Scho-olade .el S/0"aren
1mb.
2ergartenstra0e 3 Berln 1erman
4
5% Scottsh 6ongbreads S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
(# Sr Rodne4;s
=armalade
S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
() Sr Rodne4;s Scones S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
5) Sro7 d;?rable >or@ts d;?rables )4% rue Ahasseur Ste$
.4acnthe
Bu?bec Aanada
45 S7egesld 64ngb4sld 64ngb4sld >s-eba--en
)#
64ngb4 Denmar
-
33 Steele4e Stout Bg!oot Bre"eres 34## $ %th A&enue Sute
()#
Bend *R +SA
-ma e,clus1o anFmala fa9 com 3ue percamos mais informa;:es do 3ue
o necessrio. <s perdemos dados so/re mais de um assunto a cada
e,clus1o.
I(ser+,o A(5mala
Agora voc8 precisa adicionar um novo fornecedor, GtarGtrucM, mas voc8
ainda n1o tem encomendado nen2um produto deste fornecedor. C 3ue
voc8 adicionarJ
IDProdut
o
Descrio Fornecedor Endereo Cidade Regio Pas
34 Sasquatch Ale Bg!oot Bre"eres 34## $ %th A&enue Sute
()#
Bend *R +SA
(, Schogg Scho-olade .el S/0"aren
1mb.
2ergartenstra0e 3 Berln 1erman4
5% Scottsh 6ongbreads S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
4( Snga7orean >red =ee 6e-a 2radng 4,) Serangoon 6oo7' Snga7ore Snga7ore
(# Sr Rodne4;s
=armalade
S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
() Sr Rodne4;s Scones S7ecalt4 Bscuts'
6td8
(9 :ng;s <a4 =anchester +:
5) Sro7 d;?rable >or@ts d;?rables )4% rue Ahasseur Ste$
.4acnthe
Bu?bec Aanada
45 S7egesld 64ngb4sld 64ngb4sld >s-eba--en
)#
64ngb4 Denmar-
33 Steele4e Stout Bg!oot Bre"eres 34## $ %
th
A&enue Sute
()#
Bend *R +SA
??? ?????? StarStruc-' Inc8 )#) =ar7osa Seattle <A +SA
Esta situa;1o 0 c2amada de inser;1o anFmala. <1o podemos adicionar
um dado so/re um assunto at0 3ue ns ten2amos dados adicionais
so/re outro assunto.
=odelo DomCnoDAha&e
"eorias relacionais t8m classiAcado os es3uemas de /anco de dados 3ue
t8m inconsist8ncias, /aseando)se nas anomalias a 3ual eles s1o
suscet4veis . Noc8 pode ter encontrado discuss:es so/re diferentes
formas. -ma das >nicas normali9a;:es foi propostas por R. +agin, em
%9'%, e 0 usada como a /ase desta apresenta;1o. +agin apurou 3ue se
as ta/elas em seu /anco de dados est1o no Modelo Dom4nioB72ave,
ent1o eles est1o livres de modiAca;:es anormais .
Para compreender este modelo a4 est1o 3uatro termos 3ue devem ser
compreendidos= depend8ncia, c2ave, dom4nio e restri;1o .
Dee(d7(cia
-ma depend8ncia 0 uma rela;1o 3ue pode e,istir entre duas colunas .
Dados os valores da primeira coluna , voc8 estar apto para determinar
o valor de uma outra. Namos usar a ta/ela dos e,emplos anteriores.
Dados o n>mero do produto, ns estaremos capa9es de determinar as
descri;:es dos produtos. Esta 0 uma depend8ncia= descri;:es s1o
depend8ncias nos n>meros dos produtos. Dados um nome de
fornecedor, seremos ns capa9es de determinar a descri;1o do produtoJ
<1o necessariamente . <o caso do Hig+oot HreIeries, este fornecedor
tem um n>mero de produtos associados a ele. Portanto , nas ta/elas
acima, descri;1o n1o 0 uma depend8ncia de fornecedores.
Para detectar uma depend8ncia, pergunte a si mesmo o seguinte=
<esta ta/ela, pode o valor de uma coluna determinar "CDCG CG
NALCREG PCGGONEIG de outra colunaJ
IDProduto determna Descro? SI=
>ornecedor
determna Endereo? SI=
>ornecedor determna IDProduto? FG*
3ha8e
A maior parte das ta/elas deve ter uma coluna ou uma com/ina;1o de
colunas 3ue unicamente identiA3ue uma lin2a de dados. -ma coluna 0
c2ave se todas as outras colunas numa lin2a de dados s1o dependentes
dela.
A primeira ol2ada, pode parecer 3ue a coluna IDProduto em nosso
e,emplo unicamente identiAca uma lin2a de dados. Mas IDProduto (K
identiAca o fornecedor como Hig+oot HreIeries, 3ue tam/0m fa9 parte
dos n>meros (5 e (P. Portanto, a coluna IDProduto n1o 0 uma c2ave.
<esta ta/ela, ns temos uma c2ave comple,a, derivada de IDProduto,
Descri;1o, e +ornecedor.
Dom)(io
-m dom4nio 0 o con.unto de valores 3ue uma coluna pode ter. "oda
coluna tem um dom4nio 3ue tem, por sua ve9, as propriedades lgicas e
f4sicas.
Descrio Fsica. A parte f4sica do dom4nio 0 o tipo de informa;1o
so/re cada coluna. Em nosso e,emplo, +ornecedor 0 deAnido como
"EQ"C K$. A partir desta deAni;1o, a descri;1o f4sica do dom4nio 0
o con.unto de valores de dados de "EQ"C com K$ caracteres ou
menos. Gimilarmente, a descri;1o f4sica para o dom4nio de
IDProduto 0 e,pressa como I<"EIRC. Isto resulta em dados com
nove n>meros ou menos.
Descrio L!ica. A parte lgica do dom4nio 0 o con.unto de
informa;:es associadas com os fatos. Cs endere;os dos
fornecedores n1o est1o no mesmo dom4nio dos endere;os dos
clientes, apesar deles terem a mesma propriedade f4sica de "EQ"C
R$.
7onsidere o valor P%K E. K%st Place. Este 0 um valor no dom4nio de
endere;os de fornecedoresJ Para estar neste dom4nio ele precisa ter
menos de R$ caracteres e ser um endere;o de fornecedor.
Restri+,o
-ma restri;1o 0 uma limita;1o de algum tipo nos valores da ta/ela.
-ma depend8ncia 0 um tipo de restri;1o. EspeciAcar 3ue a Descri;1o 0
dependente de IDProduto 0 uma restri;1o. 72aves s1o um tipo de
restri;1o. Duando uma coluna 0 uma c2ave, signiAca 3ue todas as
outras colunas na ta/ela s1o dependentes dela. Lem/re)se 3ue uma
c2ave pode ser uma com/ina;1o de colunas.
-m dom4nio 0 outro tipo de restri;1o. Duando deAnimos as
propriedades lgica e f4sica de uma coluna, ns restringimos os dados
3ue ela poder arma9enar.
Restri;1o 0 um termo geral. E,istem muitas maneiras de restringir os
dados numa ta/ela. A/ai,o est1o alguns e,emplos=
EspeciAcar 3ue as datas dever1o ser formatadas como
DDBMMBAA.
IDProduto precisa iniciar a partir do n>mero %$$.
+ornecedores precisam ser "EQ"C com K$ caracteres ou
menos.
"a,a "otal precisa ser MCEDA com valores entre S%,$$ e
S9.999.999,99.
* Processo de FormalHao
<ormali9ar o /anco de dados garante 3ue a estrutura permitir as
mudan;as a serem feitas sem 3ue ocorram conse3T8ncias inesperadas.
C papel da normali9a;1o 0 manter estvel, e com dados conAveis, o
/anco de dados, atrav0s de um /om pro.eto.
C o/.etivo de um /om pro.eto de /anco de dados 0 assegurar 3ue todas
as restri;:es se.am conse3T8ncias lgicas das restri;:es de dom4nio e
c2ave.
"a/elas, como pargrafos, devem ter um s tema. A ta/ela nos
e,emplos de anomalias teve dois temas=
Informa;:es so/re os produtos.
Informa;:es so/re os fornecedores dos produtos.
A maneira de administrar esta informa;1o mais eAcientemente 0 dividir
a ta/ela em duas= uma ta/ela de produtos e uma ta/ela de
fornecedores.
.rodutos
IDProdu
to
Descrio Fornecedor
34 Sasquatch Ale Bg!oot Bre"eres
(, Schogg Scho-olade .el S/0"aren 1mb. I Ao8 :1
5% Scottsh 6ongbreads S7ecalt4 Bscuts' 6td8
4( Snga7orean .o--en >red =ee 6e-a 2radng
(# Sr Rodne4;s =armalade S7ecalt4 Bscuts' 6td8
() Sr Rodne4;s Scones S7ecalt4 Bscuts' 6td8
5) Sro7 d;?rable >or@ts d;?rables
45 S7egesld 64ngb4sld
33 Steele4e Stout Bg!oot Bre"eres
)ornecedores
Fornecedor Endereo Cidade Regi
o
Pas
Bg!oot Bre"eres 34## $ %th A&enue Sute
()#
Bend *R +SA
.el S/0"aren 1mb. I
Ao8 :1
2ergartenstra0e 3 Berln 1erman
4
S7ecalt4 Bscuts' 6td8 (9 :ng;s <a4 =anchester +:
6e-a 2radng 4,) Serangoon 6oo7'
Sute J4#(
Snga7ore Snga7o
re
>or@ts d;?rables )4% rue Ahasseur Ste$.4acnthe Bu?bec Aanada
64ngb4sld 64ngb4sld >s-eba--en )# 64ngb4 Denmar
-
Agora voc8 pode adicionar produtos sem duplica;:es, modiAcar a
locali9a;1o de fornecedores sem alterar vrias lin2as de dados, e n1o
perder informa;:es se voc8 e,cluir uma parte realmente n1o
necessria.
Ge voc8 dese.ar, poder sempre tra9er de volta a ta/ela original usando
uma pergunta em associa;1o a +ornecedor.
+m =?todo de Projeto de
Banco de Dados
Assim como voc8 viu, o pro.eto de /anco de dados desempen2a o maior
papel na esta/ilidade e conAan;a de seus dados. <esta se;1o, ns
mostraremos a voc8 o processo de pro.etar um /anco de dados. Para
a.udar a ilustrar este processo, um /anco de dados c2amado Uipper
ser criado para um Act4cio atacadista e fa/ricante de roupas c2amado
Uipper.
Apesar de e,istirem vrias regras 3ue dever1o ser seguidas no pro.eto
da estrutura do /anco de dados, o processo de pro.eto 0 muito mais
uma arte 3ue uma ci8ncia. Giga estas regras sempre 3ue poss4vel, mas
n1o at0 o ponto de perder a funcionalidade 3ue 0 t1o importante ao
usurio.
+a9er o pro.eto do /anco de dados primeiramente no papel tra9 diversas
vantagens=
Economi9a din2eiro, tempo e sanidade?
"orna o sistema mais seguro? evita potenciais pro/lemas com
modiAca;:es de dados?
Gerve de planta para discuss:es?
A.uda a estimar custos e taman2o.
-m /om pro.eto dever ter os seguintes o/.etivos=
Ir ao encontro a necessidade dos usurios
Golucionar o pro/lema
Ger livre de modiAca;:es anFmalas
"er um conAvel e estvel /anco de dados, onde as ta/elas se.am t1o
independentes 3uanto poss4vel
Ger fcil de usar
Projeto do =odelo do Banco
de Dados
C pro.eto da estrutura do /anco de dados necessita dos seguintes
passos=
%. Relacione os o/.etos.
. Liste os fatores relacionados aos o/.etos.
(. "ransforme os o/.etos e fatores em ta/elas e colunas.
K. Determine as rela;:es entre os o/.etos.
5. Determine as c2aves das colunas.
R. Determine as colunas relacionadas.
P. Determine as rela;:es de reserva.
'. Avalie o modelo pro.etado.
9. Desenvolva o /anco de dados.
0asso 1! Relacio(e os o&1etos
+a;a uma lista de todos os o/.etos. -m o/.eto 0 um tema >nico, similar
a um pargrafo. <a Uipper os o/.etos s1o=
Alente 2aKa de Embarque
Produto >atura
>unconLro De7endente
0asso 9! Liste os fatores relacio(ados aos o&1etos
A3ui est o grande negcio da informa;1o associada a cada o/.eto.
<este passo, voc8 deve listar os fatos so/re cada o/.eto e ent1o eliminar
os fatos 3ue n1o s1o importantes para a solu;1o do pro/lema. C o/.eto
cliente, por e,emplo, pode ter muitos fatos associados a ele= nome da
compan2ia, endere;o, cidade, fundadores, n>mero de funcionrios,
pre;o das a;:es. <este caso, n1o 0 importante manter informa;:es
so/re o n>mero de funcionrios, pre;o das a;:es, ou fundadores. A
Uipper precisa somente das informa;:es 3ue ir usar agora ou 3ue
possivelmente ir usar no futuro.
Objeto Fatores Importantes Sobre o Objeto
>unconLro !unconLro' nome' data de nascmento' seKo'
estado c&l
Alente nome da com7anha' endereo' cdade' estado' AEP'
contato
>atura data' &endedor' clente' quantdade' des7esa de
trans7orte' taKas' !retes
Produto nome do 7roduto' descro' custo' remarcao de
7reos
De7endente nome' data de nascmento
2aKa de
Embarque
estado ' taKas
0asso :! ;ra(sforme os o&1etos e fatores em
ta&elas e col*(as
C/.etos automaticamente ir1o tornar)se ta/elas, e fatos ir1o tornar)se
colunas assim 3ue seus dom4nios se.am determinados. Recorde 3ue um
dom4nio 0 um con.unto de valores 3ue a coluna pode ter. "oda coluna
tem um dom4nio, 3ue tem propriedades lgica e f4sica. Por e,emplo, a
coluna para 5>ltimo nome6 dos funcionrios 0 deAnida como "EQ"C %5.
"EQ"C %5 0 a propriedade f4sica da coluna. A partir desta deAni;1o, o
dom4nio 0 o con.unto de todos os 5>ltimos nomes6 de todos os
empregados com %5 caracteres ou menos.
Ge uma coluna 0 usada para conectar duas ou mais ta/elas, o dom4nio
precisa ser o mesmo e as colunas devem ter o mesmo nome. Ge a
descri;1o lgica diferir #por e,emplo, 5>ltimo nome6 do funcionrio e
5>ltimo nome6 do cliente&, as colunas n1o s1o as mesmas e n1o devem
partil2ar o mesmo nome. A seguir se encontra uma lista das ta/elas
preliminares, colunas e dom4nios para a Uipper=
2abelaM
A6IEF2E
2abelaM PR*D+2*
Nome Tipo Compr Nome Tipo Compr
A*=PAFN 2EO2* 43 PR*DFA=E 2EO2* 3#
AADD) 2EO2* 3# PR*DDESA 2EO2* 3#
AADD( 2EO2* 3# PR*DA*S2 =*EDA
AAI2N 2EO2* (3 P=AR:+P FP=
AS2A2E 2EO2* (
AQIP 2EO2* )# ,a$ela/ 01.12012,1
AAA 2EO2* 3
Nome Tipo Compr
A2E6P. 2EO2* , D6AS2 2EO2* )3
A*F2AA2 2EO2* 3# D>IRS2 2EO2* )#
2I26E 2EO2* 3# DD*B DD.
2abelaM >A2+RA 2abelaM >+FAI*FRRI*
Nome Tipo Compr Nome Tipo Compr
IFSDA2E DD. ESSF 2EO2* ))
REBDA2E DD. E6AS2F 2EO2* )3
S.IPFA=E 2EO2* 43 E>IRS2F 2EO2* )#
S.IPADDR 2EO2* 3# ED*B DD.
S.IPAI2N 2EO2* (3 E1EFDER 2EO2* )
S.IPQIP 2EO2* )# E=ARI2A6 2EO2* )
IFS2*2A6 =*EDA EADDR) 2EO2* 3#
EADDR( 2EO2* (#

EAI2N 2EO2* (3
2abelaM 2AOA DE E=BARB+E
ES2A2E 2EO2* (
Nome Tipo Compr EQIP 2EO2* )#
S.IPS2 2EO2* ( EAA 2EO2* 3
S.IPRA2E FP= E.*=EP. 2EO2* ,
+re3Tentemente uma a.uda no estgio de pro.eto 0 desen2ar cai,as
representando as ta/elas. Em passos posteriores voc8 poder ent1o
preenc2er as colunas c2ave e desen2ar as rela;:es entre as ta/elas.
CLIENTE PRODUTO
FUNCIONRIO
FATURA
DEPENDENTE TAXA DE EMBARQUE
0asso <! Determi(e as rela+4es e(tre o&1etos
Para determinar as rela;:es entre os o/.etos, pegue um o/.eto e ol2e
como este o/.eto pode se relacionar com outro. Manten2a em mente
3ue nem toda rela;1o e,istente entre o/.etos 0 importante. As rela;:es
3ue s1o importantes s1o a3uelas 3ue permitem a voc8 modelar o /anco
de dados de maneira a corresponder Vs situa;:es do mundo real 3ue ele
representa.
Re"a#es $%&'ara&$%. Para 3ual3uer lin2a de dados na ta/ela A,
e,iste uma >nica lin2a na ta/ela H. Para 3ual3uer lin2a de dados na
ta/ela H, e,iste uma >nica lin2a na ta/ela A. <1o e,iste nen2um
relacionamento um)para)um no /anco de dados da Uipper. -m e,emplo
de uma rela;1o um)para)um 0 a3uela 3ue a/range dados so/re o
funcionrio e dados pessoais so/re o funcionrio. Informa;:es gerais,
como nome do funcionrio, endere;o, data de contrata;1o, s1o
mantidas em uma ta/ela, e para manter privacidade, informa;:es
pessoais, como salrio, s1o mantidas em outra ta/ela.
Re"a#es $%&'ara&()rios. Para 3ual3uer lin2a de dados na ta/ela A,
e,istem vrias lin2as na ta/ela H. Para 3ual3uer lin2a de dados na
ta/ela H, e,iste uma >nica lin2a na ta/ela A. As rela;:es entre
funcionrios e seus dependentes 0 um)para)vrios, por3ue um
funcionrio pode ter muitos dependentes, mas um dependente 0
relacionado a apenas um funcionrio. A rela;1o entre clientes e faturas
0 tam/0m um)para)vrios. -ma fatura 0 relacionada a um cliente, mas
um cliente pode ter vrias faturas.
Re"a#es ()rios&'ara&()rios. Para 3ual3uer lin2a de dados na ta/ela
A, e,istem vrias lin2as na ta/ela H. Para 3ual3uer lin2a de dados na
ta/ela H, e,istem vrias lin2as na ta/ela A. E,iste uma rela;1o vrios)
para)vrios entre a ta/ela de produtos e a ta/ela de faturas. -m
produto pode ser associado a diferentes faturas e uma fatura pode
conter vrios produtos diferentes.
<o caso do /anco de dados Uipper, ns estamos tentando modelar um
am/iente 3ue 0 /aseado em transa;:es de vendas. Pegue o e,emplo de
produtos e clientes= Apesar de em algumas circunstWncias ns
podermos nos interessar nas rela;:es entre clientes e produtos, nas
transa;:es de vendas, o cliente 0 relacionado a um produto somente
3uando uma venda ocorre. Portanto, um cliente 0 relacionado a uma
fatura, e uma fatura carrega a rela;1o a um produto.
C primeiro passo na determina;1o do tipo de relacionamento entre
ta/elas 0 listar todas as ta/elas e veriAcar como cada uma se relaciona
com todas as outras=
Cliente 0 relacionado V fatura.
Cliente n1o 0 relacionado a nen2uma outra ta/ela na lista.
Funcionrio 0 relacionado a dependente.
Funcionrio #vendas& 0 relacionado a fatura.
Produto 0 relacionado a fatura.
-m m0todo eAca9 de encontrar o tipo de relacionamento 0 perguntar se
um determinado registro na ta/ela A pode apontar para #0 relacionado
a& uma ou mais lin2as de dados na ta/ela H, e em seguida inverter as
ta/elas e fa9er a pergunta novamente.
-m registro de cliente aponta para uma ou vrias faturasJ Nrias
-ma lin2a de dados de fatura se liga a um ou vrios clientesJ -m
A rela;1o entre as ta/elas 0 um)para)vrios.
-m funcionrio de vendas registra uma ou vrias faturasJNrias
-ma fatura 0 registrada por um ou vrios funcionriosJ -m
A rela;1o entre funcionrio e fatura tam/0m 0 um)para)vrios.
-m produto pode ser um item listado em uma ou vrias faturasJ
Nrias
-ma fatura pode se relacionar a um ou vrios produtosJ Nrios
A rela;1o entre produto e fatura 0 vrios)para)vrios.
A ta/ela "a,a de Em/ar3ue ilustra a id0ia de 3ue uma ta/ela pode ser
inclu4da num /anco de dados n1o precisando de relacionamentos com
3ual3uer outra ta/ela.
0asso 5! Determi(e as cha8es das col*(as
-ma c2ave pode ser um n>mero de conta, n>mero de seguridade social,
n>mero de licen;a, ou 3ual3uer outro valor num0rico ou com/ina;1o de
caracteres 3ue se.a >nico. -ma c2ave comple,a 0 a3uela 3ue se deriva
de mais de uma coluna. C Microsoft Access suporta c2aves comple,as
diretamente.
<en2uma outra lin2a na ta/ela pode ter o valor da#s& coluna#s& c2ave.
As outras ta/elas podem compartil2ar do mesmo con.unto de
informa;:es c2ave. Ge o nome de uma compan2ia 0 universalmente
>nico, ele 0 usado como lin2a >nica e identiAcadora. Por0m, se e,iste a
possi/ilidade de outra compan2ia ter o mesmo nome, ent1o ele n1o 0
>nico e n1o dever ser empregada como coluna c2ave. <1o use
3ual3uer coluna como c2ave se e,iste a possi/ilidade de duplicidade.
-ma coluna c2ave n1o pode conter valores nulos.
Por deAni;1o, todas as colunas c2ave dever1o ser inde,adas.
7omo normalmente os te,tos de nomes n1o s1o >nicos e n1o podem ser
usados em opera;:es matemticas, 0 costumeiro fa9er com 3ue as
colunas c2ave assumam um valor num0rico se3Tencial. Em muitos
casos, 0 mais fcil voc8 desenvolver sua prpria lin2a de dados, >nica e
identiAcadora. Ge voc8 necessita de uma numera;1o automtica para
n>meros de faturas ou n>meros de funcionrios, o tipo de dado
7C<"ADCR no Microsoft Access 0 uma /oa escol2a para a descri;1o
f4sica do dom4nio da coluna c2ave.
A maior parte das ta/elas ao Anal do pro.eto do /anco de dados Uipper
cont0m colunas com o tipo de dados 7C<"ADCR ou <XMERC para
e,ercerem a fun;1o de lin2as identiAcadoras e >nicas. 7ada c2ave 0
tam/0m inde,ada, e duplicatas n1o s1o permitidas. A performance do
/anco de dados 0 acentuada com uma simples coluna num0rica como
c2ave.
CLIENTE PRODUTO
FATURA FUNCIONRIO
DEPENDENTE TAXA DE EMBARQUE
' ca!e ( C)*+ID
,C#$+'D#R-. C#MP'$/
0ode no ser 1nica.
' ca!e ( I$2ID
,C#$+'D#R-
Ca!e com0le3a. +odas
as colunas.
Ca!e com0le3a. +odas
as colunas.
' ca!e ( PR#DID
,C#$+'D#R-. PD4*CRIP
0ode no ser 1nica.
' ca!e ( 4MPID
,C#$+'D#R-. Poderia ser
usada 4**$ mas ( +45+#.
0asso =! Determi(e as col*(as relacio(adas
Ge voc8 foi cuidadoso na determina;1o das colunas c2ave, tam/0m deve
ter determinado as colunas relacionadas. Rela;:es fornecem uma
maneira de vincular informa;:es #lin2as de dados& entre ta/elas. Ge
uma ta/ela tem uma coluna c2ave, esta coluna pode geralmente servir
como elo num v4nculo. "a/elas s1o vinculadas atrav0s de suas colunas
c2ave. Por0m, a coloca;1o da c2ave 0 importante, e onde o elo ser
colocado depender do tipo de rela;1o entre as ta/elas.
Para determinar a coloca;1o dos elos, voc8 dever inicialmente
con2ecer o tipo de relacionamento entre os o/.etos ou ta/elas. -ma ve9
3ue voc8 con2e;a o tipo de relacionamento entre ta/elas, 0 muito mais
fcil determinar onde colocar os elos para vincul)las.
Lem/re)se 3ue nem todas as ta/elas precisam ser relacionadas.
+uncionrios precisam ser vinculados a dependentes, mas voc8 n1o
gostaria de relacionar funcionrios com ta,as de em/ar3ue ou
produtos.
Vi*c$"a*+o *$%a re"ao $%&'ara&$%. <uma rela;1o um)para)um
o elo deve ser a coluna mais estvel ou deve vir da ta/ela onde a coluna
c2ave foi criada. A coluna mais estvel 0 a3uela 3ue possui a menor
parcela de c2ances de 3ue ven2a a sofrer modiAca;:es. Ge algum
sistema de numera;1o automtica est sendo usado, ent1o use esta
coluna como elo.
Vi*c$"a*+o *$%a re"ao $%&'ara&()rios. <a rela;1o um)para)
vrios a coluna elo deve vir da ta/ela 5um6. A coluna c2ave da ta/ela
funcionrio #lado 5um6& deve ser colocada na ta/ela dependente #lado
5vrios6&. Duando a c2ave empid 0 colocada na ta/ela dependente, ela 0
referida como uma c2ave estrangeira na ta/ela.
Vi*c$"a*+o *$%a re"ao ()rios&'ara&()rios. A rela;1o vrios)para)
vrios causa pro/lemas 3uando tenta recuperar dados e 3uando relata
um valor em uma ta/ela para seu valor correspondente em outra. Y
importante compreender esta rela;1o para ser capa9 de recon2ecer e
controlar esta situa;1o 3uando ela surgir.
-ma clssica rela;1o vrios)para)vrios 0 a 3ue e,iste entre produto e
fatura. -m determinado produto pode ter um item citado em vrias
faturas diferentes e uma fatura pode ter muitos produtos associados a
ela.
Mas 3ual c2ave iremos usar como eloJ Ge invid for colocado na ta/ela
produto, ent1o todos os dados so/re os produtos ter1o de ser repetidos
para cada fatura 3ue cont0m a3uele produto. Ge prodid for colocado na
ta/ela fatura, as informa;:es so/re a fatura dever1o ser repetidas para
cada produto contido na fatura. Isto leva a dados redundantes, e o
potencial para dados invlidos aumenta. A performance pode ser
avariada.
A solu;1o para rela;:es vrios)para)vrios 0 criar ta/elas
intermedirias. Esta ta/ela deve conter as colunas c2ave de am/as as
ta/elas principais. Isto 0 ilustrado pelo diagrama seguinte.
INVOICE
FUNCIONRIO TRANSAO
' ca!e ( I$2ID
,C#$+'D#R-
Com0le3 6e7. PR#DID and
I$2ID.
Ca!e com0le3a. +odas as
colunas.
' ca!e ( C)*+ID
,C#$+'D#R-. C#MP'$/
0ode no ser 1nica.
' ca!e ( PR#DID
,C#$+'D#R-. PD4*CRIP
0ode no ser 1nica.
' ca!e ( 4MPID
,C#$+'D#R-. Poderia ser
usada 4**$ mas ( +45+#.
Ca!e com0le3a. +odas as
colunas.
CLIENTE PRODUTO
DEPENDENTE TAXA DE EMBARQUE
0asso >! Determi(e as rela+4es de reser8a
Muitas ve9es as informa;:es 3ue ns recuperamos de um /anco de
dados vem de mais de uma ta/ela. Por e,emplo, se ns 3uisermos sa/er
3ual o pai ou m1e de um dependente em particular, o nome 0
determinado usando o valor de empid para procurar a lin2a com o valor
correto na ta/ela funcionrio. A 3uest1o de 3uem 0 o pai ou m1e poder
ser respondida somente se e,istir uma lin2a na ta/ela funcionrios com
um valor correspondente em empid da ta/ela dependente.
Para assegurar a integridade dos dados em nosso /anco de dados,
nosso modelo deve re3uerer, por e,emplo, 3ue nen2uma lin2a possa ser
adicionada V ta/ela dependente, sem 3ue e,ista lin2a correspondente
na ta/ela funcionrio. Este re3uisito 0 con2ecido como rela;1o de
reserva. <este caso, deve e,istir uma reserva na ta/ela dependente 3ue
assegure 3ue o funcionrio #pai ou m1e& e,ista.
Ge voc8 est criando uma fatura, voc8 deve ter um cliente para mandar
a conta. -m registro na ta/ela cliente deve e,istir antes 3ue a fatura
possa ser redigida. <este caso, uma reserva deve e,istir na ta/ela
fatura para assegurar 3ue o cliente e,iste.
A4 est1o, por menores 3ue se.am, 3uatro m0todos para implementar
rela;:es de reserva=
7onstru;1o de controles em DHMG
Entrada de dados e procedimentos de acesso
Programa;1o
Implementa;1o de regras
C Microsoft Access tem certos mecanismos de integridade referencial
constru4dos em seus motores. 7om o Microsoft +o,Pro, a rela;1o de
reserva dever ser criada a partir de programa;1o.
<o Microsoft Access, regras podem ser empregadas para impor o
dom4nio de colunas #por e,emplo, aceitar valores menores 3ue $$, ou
valores de te,to dever1o ser + ou M& ou em 3ual3uer outra opera;1o
onde voc8 necessite de um teste nos dados a serem registrados.
0asso 2! A8alie o modelo ro1etado
C pr,imo passo no processo de pro.eto 0 a avalia;1o do pro.eto. <este
passo, voc8 dever procurar por todas as fal2as 3ue podem vir a causar
dados irrecuperveis, instveis ou redundantes.
7ada ta/ela dever ser avaliada respondendo)se as seguintes 3uest:es=
%. 7ada ta/ela possui um tema >nicoJ Assim deve ser. 7ada coluna
dever ser um fato so/re a c2ave.
. 7ada ta/ela tem sua#s& coluna#s& c2aveJ Assim deve ser.
(. E,istem depend8nciasJ Gomente conse3T8ncias lgicas da c2ave
devem e,istir.
K. G1o os dom4nios >nicos entre as ta/elasJ <1o misture dom4nios a
menos 3ue a coluna se.a comum entre ta/elas.
5. E,iste dom4nio de restri;1o ou c2aveJ
R. A ta/ela 0 fcil de usarJ
Avalia34o da ,a$ela 5liente
A+S2ID A*=PAFN
AADD)
AADD(
AAI2N
AS2A2E
AQIP
AAA
A2E6P.
A*F2AA2
2I26E
A ta/ela tem um >nico tema= clientes.
A ta/ela tem uma c2ave= custid.
A ta/ela n1o tem nen2uma depend8ncia 3ue n1o se.a conse3T8ncia
lgica da c2ave. Dado custid, uma compan2ia e endere;o da
compan2ia podem ser determinados unicamente. Dada uma
compan2ia, ns n1o podemos determinar nen2um custid em
particular. Dada um estado, ns n1o podemos determinar nen2um
custid em particular. Portanto, a ta/ela cliente n1o tem nen2uma
depend8ncia.
C nome das colunas n1o 0 usado em nen2uma outra ta/ela, e,ceto
custid 3ue 0 uma c2ave estrangeira na ta/ela fatura.
As restri;:es s1o dom4nio ou c2ave.
0asso 9! Dese(8ol8a o &a(co de dados
-ma ve9 3ue o /anco de dados ten2a sido pro.etado no papel, o pr,imo
passo 0 desenvolver o /anco de dados no Microsoft Access. Duando
deAnir ta/elas no Microsoft Access, 0 e,tremamente importante manter
seu pro.eto de papel em mente. Desenvolver um /anco de dados sem
parWmetros pode causar pro/lemas 3ue podem ser dif4ceis de desfa9er.
#Lem/re)se das anomalias anteriormente descritas.&
<o Microsoft Access .$, e,istem duas ferramentas 3ue o a.udar1o a
completar a implementa;1o de seu pro.eto. C Assistente de "2e "a/le
"a/elas pode ser usado para gerar uma variedade de ta/elas comuns. A
.anela de sistema grAco de rela;:es pode ser usada para criar
relacionamentos e depend8ncias c2ave. Perce/a 3ue, en3uanto usar o
Assistente de "a/elas assegura um desenvolvimento relacional eAca9, os
oito passos anteriores para implementa;1o permanecem importantes e
devem ser completados antes da constru;1o das ta/elas.
A seguir est uma lista das ta/elas Anais, colunas e dom4nios para a
Uipper, incluindo colunas elo=
2abelaM
A6IEF2E
2abelaM
PR*D+2*
Nome Tipo Comp
r
Nome Tipo Compr
A+S2ID A*F2AD*R PR*DID A*F2AD*R
A*=PAFN 2EO2* 43 PF*=E 2EO2* 3#
AADD) 2EO2* 3# PDESARIP 2EO2* 3#
AADD( 2EO2* 3# PA*S2 =*EDA
AAI2N 2EO2* (3 P=AR:+P FP=
AS2A2E 2EO2* (
AQIP 2EO2* )#
AAA 2EO2* 3
,a$ela/ ,A6A 01 1*BAR71
A2E6P. 2EO2* , Nome Tipo Compr
A*F2AA2 2EO2* 3# S.IPS2 2EO2* (
2I26E 2EO2* 3# S.IPRA2E FP=
2abelaM
>A2+RA
2abelaM
2RAFSATG*
Nome Tipo Comp
r
Nome Tipo Compr
IFSID A*F2AD*R IFSID FP=
A+S2ID FP= PR*DID FP=
IFSDA2E DD. 2B2N FP=
REBDA2E DD. 2DISA FP=
S.IPF*=E 2EO2* 43 2PRIAE =*EDA
S.IPADDR 2EO2* 3#
S.IPAI2N 2EO2* (3
S.IPS2 2EO2* (
S.IPQIP 2EO2* )#
IFS2*2A6 =*EDA
2abelaM
>+FAI*FRRI*
Nome Tipo Compr
E=PID A*F2AD*R
ESSF 2EO2* ))
E6AS2F 2EO2* )3
E>IRS2F 2EO2* )#
ED*B DD.
E1EFDER 2EO2* )
)E=ARI2A6 2EO2* )
EADDR) 2EO2* 3#
EADDR( 2EO2* (#
EAI2N 2EO2* (3
ES2A2E 2EO2* (
EQIP 2EO2* )#
EAA 2EO2* 3
E.*=EP. 2EO2* ,
2abelaM
DEPEFDEF2E
Nome Tipo Compr
E=PID FP=
D6AS2 2EO2* )3
D>IRS2 2EO2* )#
DD*B DD.

Você também pode gostar