Você está na página 1de 25

Modelagem de Dados em Microsoft Access 95

IDEOLGICA PRODUTIVIDADE EMPRESARIAL E INFORMTICA

Modelagem de Dados em Microsoft Access 95

Ideolgica Produtividade Empresarial Informtica R. Iguatemi, 5 , 9! Andar "elefone #$%%& ''()(%$( * +a, #$%%& '5()( 59

GEEK BRASIL http !!"""#gee$%rasil#com#%r

&'dice A'al(tico
I'trod)*+o , modelagem de dados Por que Projetar?....................................................................................................................................................... 2 Problemas Resultantes de um Projeto Pobre............................................................................................................. 2 Introduo ao Projeto de Banco de Dados................................................................................................................. 3 Modelo Domnio/ !a"e.............................................................................................................................................. # $ Processo de %ormali&ao..................................................................................................................................... ' .m M/todo de 0ro1eto de Ba'co de Dados 9 0ro1eto do Modelo do Ba'co de Dados -2

ii

Introduo modelagem de dados


Aprenda os conceitos bsicos de normalizao

3ap(t)lo

-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 final 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 Dom4nioA72ave, 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.

Por que Projetar?


-m pro.eto preciso 0 crucial para a opera;1o de um sistema de informa;:es seguro e eficiente. 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. Bs processos do pro.eto s1o desenvolvidos depois de voc8 determinar e,atamente 3uais informa;:es precisam ser arma9enadas e como elas ser1o recuperadas. Cuanto mais cuidadoso seu pro.eto, tanto mel2or o /anco de dados f4sico se identificar 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= B /anco de dados eAou aplica;1o n1o podem funcionar ade3uadamente. Bs dados podem n1o ser confiveis ou ser1o ine,atos. A performance pode ser degradada. A fle,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. Bs pro/lemas podem ser agrupados so/ duas categorias= dados redundantes e modifica;:es anDmalas.

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.
IDProduto Descrio 3( 23 ;' (2 2. 21 ;1 (; 3# )asquatc! *le )c!o++i )c!o4olade )cottis! <on+breads )ir Rodne:@s Marmalade )ir Rodne:@s )cones )iro= d@Crable )=e+esild )teele:e )tout Fornecedor Bi+,oot Bre-eries 5eli )67-aren 8mb5 )=ecialt: Biscuits0 <td. )=ecialt: Biscuits0 <td. )=ecialt: Biscuits0 <td. BorDts d@Crables <:n+b:sild Bi+,oot Bre-eries Endereo 3(.. / 't! *"enue0 )uite 21. 9ier+artenstra7e # 2> ?in+@s Aa: (31 )eran+oon <oo=0 2> ?in+@s Aa: 2> ?in+@s Aa: 1(' rue !asseur <:n+b:sild Bis4eba44en 1. Cidade Bend Berlin Manc!ester )in+a=ore Manc!ester Manc!ester )te/5:acint!e EuCbec <:n+b: $R Regio $R Pas 2)* 8erman: 2? )in+a=ore 2? 2? anada Denmar4 2)*

)in+a=orean Bried Mee <e4a 9radin+

3(.. / 't! *"enue )uite 21. Bend

Eupon2amos 3ue voc8 dese.e adicionar outro registro


33 <umberman@s <a+er Bi+,oot Bre-eries 3(.. / 't! *"enue )uite 21. Bend $R 2)*

B 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
B 3ue acontece se o fornecedor Figfoot FreGeries se muda para PortlandH Cuantos campos ter1o de ser modificados para se assegurar 3ue o novo endere;o foi registradoH
IDProduto Descrio 34 23 ;' (2 3! 2. 21 ;1 (; 3& Sasquatch Ale )c!o++i )c!o4olade )cottis! <on+breads "u#$er#an%s "ager )ir Rodne:@s Marmalade )ir Rodne:@s )cones )iro= d@Crable )=e+esild Steele'e Stout Fornecedor Bigfoot Breweries 5eli )67-aren 8mb5 )=ecialt: Biscuits0 <td. Bigfoot Breweries )=ecialt: Biscuits0 <td. )=ecialt: Biscuits0 <td. BorDts d@Crables <:n+b:sild Bigfoot Breweries Endereo 3400 - 8th Avenue Suite 210 9ier+artenstra7e # 2> ?in+@s Aa: (31 )eran+oon <oo=0 3400 - 8th Avenue Suite 210 2> ?in+@s Aa: 2> ?in+@s Aa: 1(' rue !asseur <:n+b:sild Bis4eba44en 1. 3400 - 8th Avenue Suite 210 Cidade Bend Berlin Manc!ester )in+a=ore Bend Manc!ester Manc!ester )te/5:acint!e EuCbec <:n+b: Bend OR OR Regio OR Pas SA 8erman: 2? )in+a=ore SA 2? 2? anada Denmar4 SA

)in+a=orean Bried Mee <e4a 9radin+

<ovamente, imagine o 3ue pode resultar da modifica;1o de centenas de campos de dados para apenas um fornecedor. Cuando modifica;:es s1o feitas, elas dever1o a/ranger todas as

cpias dos dados. Pense a respeito da confus1o 3ue resulta de modificar apenas um su/grupo de um dado duplicado.

E6cl)s4es A'5malas
Eupon2amos 3ue voc8 n1o tra/al2ou por muito tempo com o produto I e decidiu eliminar esta lin2a de dados de sua ta/elaH
IDProduto 3( 23 ;' 42 2. 21 ;1 (; 3# Descrio )asquatc! *le )c!o++i )c!o4olade )cottis! <on+breads Singa(orean )ried *ee )ir Rodne:@s Marmalade )ir Rodne:@s )cones )iro= d@Crable )=e+esild )teele:e )tout Fornecedor Bi+,oot Bre-eries 5eli )67-aren 8mb5 )=ecialt: Biscuits0 <td. "e+a ,rading )=ecialt: Biscuits0 <td. )=ecialt: Biscuits0 <td. BorDts d@Crables <:n+b:sild Bi+,oot Bre-eries Endereo 3(.. / 't! *"enue )uite 21. 9ier+artenstra7e # 2> ?in+@s Aa: 4!1 Serangoon "oo(2> ?in+@s Aa: 2> ?in+@s Aa: 1(' rue !asseur <:n+b:sild Bis4eba44en 1. 3(.. / 't! *"enue )uite 21. Cidade Bend Berlin Manc!ester Singa(ore Manc!ester Manc!ester )te/5:acint!e EuCbec <:n+b: Bend $R Regio $R Pas 2)* 8erman: 2? Singa(ore 2? 2? anada Denmar4 2)*

Agora, o/servando os dados restantes, onde est o endere;o do fornecedor JeKa "radingH
IDProduto 3( 23 ;' 2. 21 ;1 (; 3# Descrio )asquatc! *le )c!o++i )c!o4olade )cottis! <on+breads )ir Rodne:@s Marmalade )ir Rodne:@s )cones )iro= d@Crable )=e+esild )teele:e )tout Fornecedor Bi+,oot Bre-eries 5eli )67-aren 8mb5 )=ecialt: Biscuits0 <td. )=ecialt: Biscuits0 <td. )=ecialt: Biscuits0 <td. BorDts d@Crables <:n+b:sild Bi+,oot Bre-eries Endereo 3(.. / 't! *"enue )uite 21. 9ier+artenstra7e # 2> ?in+@s Aa: 2> ?in+@s Aa: 2> ?in+@s Aa: 1(' rue !asseur <:n+b:sild Bis4eba44en 1. 3(.. / 't! *"enue )uite 21. Cidade Bend Berlin Manc!ester Manc!ester Manc!ester )te/5:acint!e EuCbec <:n+b: Bend $R Regio $R Pas 2)* 8erman: 2? 2? 2? anada Denmar4 2)*

-ma e,clus1o anDmala 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, EtarEtrucK, mas voc8 ainda n1o tem encomendado nen2um produto deste fornecedor. B 3ue voc8 adicionarH
IDProduto 3( 23 ;' (2 2. 21 Descrio )asquatc! *le )c!o++i )c!o4olade )cottis! <on+breads )in+a=orean Bried Mee )ir Rodne:@s Marmalade )ir Rodne:@s )cones Fornecedor Bi+,oot Bre-eries 5eli )67-aren 8mb5 )=ecialt: Biscuits0 <td. <e4a 9radin+ )=ecialt: Biscuits0 <td. )=ecialt: Biscuits0 <td. Endereo 3(.. / 't! *"enue )uite 21. 9ier+artenstra7e # 2> ?in+@s Aa: (31 )eran+oon <oo=0 2> ?in+@s Aa: 2> ?in+@s Aa: Cidade Bend Berlin Manc!ester )in+a=ore Manc!ester Manc!ester Regio $R Pas 2)* 8erman: 2? )in+a=ore 2? 2?

;1 (; 3# ???

)iro= d@Crable )=e+esild )teele:e )tout ??????

BorDts d@Crables <:n+b:sild Bi+,oot Bre-eries )tar)truc40 Inc.

1(' rue

!asseur

)te/5:acint!e EuCbec <:n+b: $R A* )eattle

anada Denmar4 2)* 2)*

<:n+b:sild Bis4eba44en 1. 1.1 Mari=osa

3(.. / 't! *"enue )uite 21. Bend

Esta situa;1o 0 c2amada de inser;1o anDmala. <1o podemos adicionar um dado so/re um assunto at0 3ue ns ten2amos dados adicionais so/re outro assunto.

Modelo Domnio/C a!e


"eorias relacionais t8m classificado os es3uemas de /anco de dados 3ue t8m inconsist8ncias, /aseando)se nas anomalias a 3ual eles s1o suscet4veis . Loc8 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 Dom4nioA72ave, ent1o eles est1o livres de modifica;:es anormais . Para compreender este modelo a4 est1o 3uatro termos 3ue devem ser compreendidos= depend8ncia, c2ave, dom4nio e restri;1o .

Depe'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. Lamos 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 produtoH <1o necessariamente . <o caso do Fig+oot FreGeries, 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 "BDBE BE LAJBREE PBEEMLEIE de outra colunaH

IDProduto Bornecedor Bornecedor

determina Descrio? determina Fndereo? determina IDProduto?

)IM )IM %G$

3ha8e
A maior parte das ta/elas deve ter uma coluna ou uma com/ina;1o de colunas 3ue unicamente identifi3ue 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 identifica uma lin2a de dados. Mas IDProduto (I identifica o fornecedor como Fig+oot FreGeries, 3ue tam/0m fa9 parte dos n>meros (5 e (N. 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 definido como "EO"B I$. A partir desta defini;1o, a descri;1o f4sica do dom4nio 0 o con.unto de valores de dados de "EO"B com I$ caracteres ou menos. Eimilarmente, a descri;1o f4sica para o dom4nio de IDProduto 0 e,pressa como I<"EIRB. 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. Bs endere;os dos fornecedores n1o est1o no mesmo dom4nio dos endere;os dos clientes, apesar deles terem a mesma propriedade f4sica de "EO"B P$. 7onsidere o valor N% I E. I%st Place. Este 0 um valor no dom4nio de endere;os de fornecedoresH Para estar neste dom4nio ele precisa ter menos de P$ 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. Especificar 3ue a Descri;1o 0 dependente de IDProduto 0 uma restri;1o. 72aves s1o um tipo de restri;1o. Cuando uma coluna 0 uma c2ave, significa 3ue todas as outras colunas na ta/ela s1o dependentes dela. Jem/re)se 3ue uma c2ave pode ser uma com/ina;1o de colunas. -m dom4nio 0 outro tipo de restri;1o. Cuando definimos 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= Especificar 3ue as datas dever1o ser formatadas como DDAMMAAA. IDProduto precisa iniciar a partir do n>mero %$$. +ornecedores precisam ser "EO"B com I$ caracteres ou menos. "a,a "otal precisa ser MBEDA com valores entre Q%,$$ e Q9.999.999,99.

" Processo de #ormali$ao


<ormali9ar o /anco de dados garante 3ue a estrutura permitir as mudan;as a serem feitas sem 3ue ocorram conse3R8ncias inesperadas. B papel da normali9a;1o 0 manter estvel, e com dados confiveis, o /anco de dados, atrav0s de um /om pro.eto. B o/.etivo de um /om pro.eto de /anco de dados 0 assegurar 3ue todas as restri;:es se.am conse3R8ncias 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 eficientemente 0 dividir a ta/ela em duas= uma ta/ela de produtos e uma ta/ela de fornecedores.
.rodutos
IDProduto Descrio 3( 23 ;' (2 2. 21 ;1 (; 3# )asquatc! *le )c!o++i )c!o4olade )cottis! <on+breads )in+a=orean 5o44ien Bried Mee )ir Rodne:@s Marmalade )ir Rodne:@s )cones )iro= d@Crable )=e+esild )teele:e )tout Fornecedor Bi+,oot Bre-eries 5eli )67-aren 8mb5 H o. ?8 )=ecialt: Biscuits0 <td. <e4a 9radin+ )=ecialt: Biscuits0 <td. )=ecialt: Biscuits0 <td. BorDts d@Crables <:n+b:sild Bi+,oot Bre-eries

)ornecedores
Fornecedor
Bi+,oot Bre-eries 5eli )67-aren 8mb5 H o. ?8 )=ecialt: Biscuits0 <td. <e4a 9radin+ BorDts d@Crables <:n+b:sild

Endereo
3(.. / 't! *"enue )uite 21. 9ier+artenstra7e # 2> ?in+@s Aa: (31 )eran+oon <oo=0 )uite I(.2 1(' rue !asseur <:n+b:sild Bis4eba44en 1.

Cidade
Bend Berlin Manc!ester )in+a=ore )te/5:acint!e <:n+b:

Regio Pas
$R 2)* 8erman: 2? )in+a=or e EuCbec anada Denmar4

Agora voc8 pode adicionar produtos sem duplica;:es, modificar 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.

Ee voc8 dese.ar, poder sempre tra9er de volta a ta/ela original usando uma pergunta em associa;1o a +ornecedor.

%m 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 confian;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 Sipper ser criado para um fict4cio atacadista e fa/ricante de roupas c2amado Sipper. 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. Eiga 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 modifica;:es de dados? Eerve 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 Eolucionar o pro/lema Eer livre de modifica;:es anDmalas "er um confivel e estvel /anco de dados, onde as ta/elas se.am t1o independentes 3uanto poss4vel Eer fcil de usar

Projeto do Modelo do Banco de Dados


B pro.eto da estrutura do /anco de dados necessita dos seguintes passos= %. . (. I. 5. P. N. '. Relacione os o/.etos. Jiste os fatores relacionados aos o/.etos. "ransforme os o/.etos e fatores em ta/elas e colunas. Determine as rela;:es entre os o/.etos. Determine as c2aves das colunas. Determine as colunas relacionadas. Determine as rela;:es de reserva. Avalie o modelo pro.etado.

9. Desenvolva o /anco de dados.

0asso - 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 Sipper os o/.etos s1o=

liente

9aJa de Fmbarque Batura De=endente

Produto BuncionKrio

0asso 2 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. B 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 Sipper precisa somente das informa;:es 3ue ir usar agora ou 3ue possivelmente ir usar no futuro.
Objeto BuncionKrio liente Batura Produto De=endente 9aJa de Fmbarque Fatores Importantes Sobre o Objeto ,uncionKrio0 nome0 data de nascimento0 seJo0 estado ci"il nome da com=an!ia0 endereo0 cidade0 estado0 FP0 contato data0 "endedor0 cliente0 quantidade0 des=esa de trans=orte0 taJas0 ,retes nome do =roduto0 descrio0 custo0 remarcao de =reos nome0 data de nascimento estado 0 taJas

0asso 9 :ra'sforme os o%1etos e fatores em ta%elas e col)'as


B/.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 definida como "EO"B %5. "EO"B %5 0 a propriedade f4sica da coluna. A partir desta defini;1o, o dom4nio 0 o con.unto de todos os 5>ltimos nomes6 de todos os empregados com %5 caracteres ou menos. Ee 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. Ee 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 Sipper=

9abelaL <IF%9F Nome $MP*%M *DD1 *DD2 I9M )9*9F PIP * 9F<P5 $%9* 9 9I9<F

9abelaL PR$D29$ Tipo 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ Compr (# 3. 3. 2# 2 1. 3 3 3. 3. ,a$ela/ 01.12012,1 Nome Tipo D<*)9 DBIR)9 DD$B 9FN9$ 9FN9$ D/5 Compr 1# 1. Nome PR$D%*MF PR$DDF) PR$D $)9 PM*R?2P Tipo 9FN9$ 9FN9$ M$FD* %OM Compr 3. #.

9abelaL B*92R* Nome I%RD*9F RFED*9F )5IP%*MF )5IP*DDR )5IP I9M )5IPPIP I%R9$9*< Tipo D/5 D/5 9FN9$ 9FN9$ 9FN9$ 9FN9$ M$FD* (# 3. 2# 1. Compr

9abelaL B2% I$%QRI$ Nome F))% F<*)9% FBIR)9% FD$B F8F%DFR FM*RI9*< F*DDR1 F*DDR2 F I9M F)9*9F FPIP F* F5$MFP5 Tipo 9FN9$ 9FN9$ 9FN9$ D/5 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 1 1 3. 2. 2# 2 1. 3 3 Compr 11 1# 1.

9abelaL 9*N* DF FMB*RE2F Nome Tipo Compr )5IP)9 )5IPR*9F 9FN9$ %OM 2

+re3Rentemente 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

TA"A DE EM#AR$UE

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 Ts 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 F. Para 3ual3uer lin2a de dados na ta/ela F, e,iste uma >nica lin2a na ta/ela A. <1o e,iste nen2um relacionamento um)para)um no /anco de dados da Sipper. -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 F. Para 3ual3uer lin2a de dados na ta/ela F, 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 F. Para 3ual3uer lin2a de dados na ta/ela F, 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 Sipper, 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 circunstUncias 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. B primeiro passo na determina;1o do tipo de relacionamento entre ta/elas 0 listar todas as ta/elas e verificar como cada uma se relaciona com todas as outras= Cliente 0 relacionado T 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 efica9 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 F, e em seguida inverter as ta/elas e fa9er a pergunta novamente.

-m registro de cliente aponta para uma ou vrias faturasH -ma lin2a de dados de fatura se liga a um ou vrios clientesH A rela;1o entre as ta/elas 0 um)para)vrios.

Lrias -m

-m funcionrio de vendas registra uma ou vrias faturasH -ma fatura 0 registrada por um ou vrios funcionriosH A rela;1o entre funcionrio e fatura tam/0m 0 um)para)vrios.

Lrias -m

-m produto pode ser um item listado em uma ou vrias faturasH -ma fatura pode se relacionar a um ou vrios produtosH A rela;1o entre produto e fatura 0 vrios)para)vrios.

Lrias Lrios

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. B 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. Ee o nome de uma compan2ia 0 universalmente >nico, ele 0 usado como lin2a >nica e identificadora. 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 defini;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 se3Rencial. Em muitos casos, 0 mais fcil voc8 desenvolver sua prpria lin2a de dados, >nica e identificadora. Ee voc8 necessita de uma numera;1o automtica para n>meros de faturas ou n>meros de funcionrios, o tipo de dado 7B<"ADBR no Microsoft Access 0 uma /oa escol2a para a descri;1o f4sica do dom4nio da coluna c2ave. A maior parte das ta/elas ao final do pro.eto do /anco de dados Sipper cont0m colunas com o tipo de dados 7B<"ADBR ou <VMERB para e,ercerem a fun;1o de lin2as identificadoras 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 * c!a"e C 2)9ID S $%9*D$RT. $MP*%M =ode no ser Unica. FUNCIONRIO * c!a"e C FMPID S $%9*D$RT. Poderia ser usada F))% mas C 9FN9$. DEPENDENTE !a"e com=leJa. 9odas as colunas.

PRODUTO * c!a"e C PR$DID S $%9*D$RT. PDF) RIP =ode no ser Unica. FATURA * c!a"e C I%RID S $%9*D$RT

TA"A DE EM#AR$UE !a"e com=leJa. 9odas as colunas.

0asso < Determi'e as col)'as relacio'adas


Ee 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. Ee 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. Jem/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 modifica;:es. Ee 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&. Cuando 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. W 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 eloH Ee 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. Ee 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.
CLIENTE * c!a"e C 2)9ID S $%9*D$RT. $MP*%M =ode no ser Unica. INVOICE * c!a"e C I%RID S $%9*D$RT FUNCIONRIO * c!a"e C FMPID S $%9*D$RT. Poderia ser usada F))% mas C 9FN9$. DEPENDENTE !a"e com=leJa. 9odas as colunas. TRANSA/0O om=leJ 4e:. PR$DID and I%RID. PRODUTO * c!a"e C PR$DID S $%9*D$RT. PDF) RIP =ode no ser Unica.

TA"A DE EM#AR$UE !a"e com=leJa. 9odas as colunas.

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 T 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.

Ee 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 DFME Entrada de dados e procedimentos de acesso Programa;1o Implementa;1o de regras B 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 > A8alie o modelo pro1etado


B 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= %. . (. I. 5. P. 7ada ta/ela possui um tema >nicoH Assim deve ser. 7ada coluna dever ser um fato so/re a c2ave. 7ada ta/ela tem sua#s& coluna#s& c2aveH Assim deve ser. E,istem depend8nciasH Eomente conse3R8ncias lgicas da c2ave devem e,istir. E1o os dom4nios >nicos entre as ta/elasH <1o misture dom4nios a menos 3ue a coluna se.a comum entre ta/elas. E,iste dom4nio de restri;1o ou c2aveH A ta/ela 0 fcil de usarH

Avalia34o da ,a$ela 5liente 2)9ID $MP*%M *DD1 *DD2 I9M )9*9F PIP * 9F<P5 $%9* 9 9I9<F

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 conse3R8ncia 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. B 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. Cuando definir ta/elas no Microsoft Access, 0 e,tremamente importante manter seu pro.eto de papel em mente. Desenvolver um /anco de dados sem parUmetros pode causar pro/lemas 3ue podem ser dif4ceis de desfa9er. #Jem/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. B Assistente de "2e "a/le "a/elas pode ser usado para gerar uma variedade de ta/elas comuns. A .anela de sistema grfico 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 efica9, 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 finais, colunas e dom4nios para a Sipper, incluindo colunas elo=
9abelaL <IF%9F Nome 2)9ID $MP*%M *DD1 *DD2 I9M )9*9F PIP * 9F<P5 $%9* 9 9I9<F Tipo $%9*D$R 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ (# 3. 3. 2# 2 1. 3 3 3. 3. ,a$ela/ ,A6A 01 1*BAR7 1 Nome )5IP)9 )5IPR*9F Tipo 9FN9$ %OM Compr 2 Compr 9abelaL PR$D29$ Nome PR$DID P%$MF PDF) RIP P $)9 PM*R?2P Tipo $%9*D$R 9FN9$ 9FN9$ M$FD* %OM 3. #. Compr

9abelaL B*92R* Nome I%RID 2)9ID I%RD*9F RFED*9F )5IP%$MF )5IP*DDR )5IP I9M )5IP)9 )5IPPIP I%R9$9*< Tipo $%9*D$R %OM D/5 D/5 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ M$FD* (# 3. 2# 2 1. Compr Nome I%RID

9abelaL 9R*%)*VG$ Tipo %OM %OM %OM %OM M$FD* Compr

PR$DID 9E9M 9DI) 9PRI F

9abelaL B2% I$%QRI$ Nome FMPID F))% F<*)9% FBIR)9% FD$B F8F%DFR 1FM*RI9*< F*DDR1 F*DDR2 F I9M F)9*9F FPIP F* F5$MFP5 Tipo $%9*D$R 9FN9$ 9FN9$ 9FN9$ D/5 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 9FN9$ 1 1 3. 2. 2# 2 1. 3 3 11 1# 1. Compr

9abelaL DFPF%DF%9F Nome FMPID D<*)9 DBIR)9 DD$B Tipo %OM 9FN9$ 9FN9$ D/5 1# 1. Compr

Você também pode gostar