Vous êtes sur la page 1sur 14

GuiaparaMapeamentoObjetoRelacional MetodologiaCelepar

Agosto2009

SumriodeInformaesdoDocumento

Documento:guiaModelagemObjetoRelacional.odt Verso 1.0 1.0 Data 11/03/2008 26/08/09 criao RevisoeAlterao

Nmerodepginas:14 Mudanas Autor MarcosChiarello DanielleMayereMarcos Chiarello

Sumrio
1INTRODUO................................................................................................................................4 1.1VisoGeral..............................................................................................................................4 2CAMADADEPERSISTNCIA.....................................................................................................4 3Vantagensdautilizao....................................................................................................................5 3.1Requisitosdeumacamadadepersistncia...............................................................................5 3.1.1Suporteadiversostiposdemecanismosdepersistncias:...............................................5 3.1.2EncapsulamentoCompletodaCamadadeDados:...........................................................5 3.1.3AescomMultiObjetos.................................................................................................5 3.1.4Transaes.........................................................................................................................6 3.1.5Extensibilidade..................................................................................................................6 3.1.6IdentificadoresdeObjetos................................................................................................6 3.1.7CursoreseProxies.............................................................................................................6 3.1.8Registros............................................................................................................................6 3.1.9ArquiteturasMltiplas......................................................................................................7 3.1.10DiversasVersesdeBancodeDadoseFabricantes.......................................................7 3.1.11MltiplasConexes.........................................................................................................7 3.1.12Queriessql.......................................................................................................................7 3.1.13ControledeConcorrncia...............................................................................................7 4MAPEAMENTOOBJETORELACIONAL...................................................................................8 4.1Identificaodechaveprimria................................................................................................8 4.2OIDs(ObjectsIdentifiers)........................................................................................................9 4.3MapeamentodeClassesemTabelas........................................................................................9 4.4MapeamentodeAtributosemColunas...................................................................................10 4.5MapeamentodeHerana........................................................................................................10 4.6MapeamentodeAssociaes..................................................................................................12 4.7Associaesdotipo1para1(1:1).........................................................................................12 4.8Associaesdotipo1paran(1:n)..........................................................................................12 4.9Associaodotiponparan(n:n)...........................................................................................13 5MAPEAMENTODEASSOCIAESTODO/PARTE...............................................................13 6CONSIDERAESFINAIS.........................................................................................................14 7REFERNCIAS............................................................................................................................14

1 INTRODUO
EsteguiatemporobjetivodeorientaraatuaodoAnalistadeSistemasnomapeamento dasclassespersistentesparatabelasembancosrelacional.

1.1 VisoGeral
A adoodemetodologiasdedesenvolvimentoOrientadasaObjetoscomoumpadro levouaumamudanaradicalnaestruturaoeorganizaodeinformao.Contudo,autilizaode bancosdedadosrelacionaisaindaumaprticacomumesermantidaporumlongoperodode tempo. Graas necessidade de se trabalhar com estas bases de dados relacionais para o armazenamentopersistentededados,comumaadaptaodosmodelosdeobjetosnatentativade compatibilizloscomomodelorelacional.Parapioraraindamaisestequadro,notriooesforo aplicado no processo de persistncia manual dos objetos no banco de dados o que fora os desenvolvedoresdeaplicaesaterquedominaralinguagemSQLeutilizlapararealizaracessos aobancodedados.Estasduasquestesprincipaislevamaumareduoconsidervelnaqualidade do produto final, construo de uma modelagem orientada a objetos inconsistente e a um desperdcioconsiderveldetemponaimplementaomanualdapersistncia.Apesardisso,no possvel ignorar a fora e confiabilidade dos Sistemas deGerenciamento de Bancos de Dados (SGBDs)relacionaisnosdiasdehojeapsanosdedesenvolvimentoeajustesdeperformance fazemdosbancosdedadosrelacionaisaopomaiseficiente,secomparadosmaioriadosSGBDs Orientados a Objetos. Para permitir um processo de mapeamento entre sistemas baseados em objetos e bases de dados relacionais, foram propostas diversas idias que convergiram para o conceitodeCamadadePersistncia.

1 CAMADADEPERSISTNCIA
Conceitualmente,umaCamadadePersistnciadeObjetosumabibliotecaquepermitea realizaodoprocessodepersistncia(isto,oarmazenamentoemanutenodoestadodeobjetos em algum meio novoltil, como um banco de dados) de forma transparente. Graas independnciaentreacamadadepersistnciaeorepositrio(backend)utilizado,tambmpossvel
METODOLOGIADEDESENVOLVIMENTOCELEPAR

5 gerenciarapersistnciadeummodelodeobjetosemdiversostiposderepositrios,teoricamente com pouco ou nenhum esforo extra. A utilizao deste conceito permite ao desenvolvedor trabalharcomoseestivesseemumsistemacompletamenteorientadoaobjetosutilizandomtodos paraincluir, alterareremoverobjetoseumalinguagemdeconsultaparaSGBDsOrientados a ObjetoscomumentealinguagemOQLpararealizarconsultasqueretornamcoleesdeobjetos instnciados.

2 VANTAGENSDAUTILIZAO
AsvantagensdecorrentesdousodeumaCamadadePersistncianodesenvolvimentode aplicaessoevidentes:asuautilizaoisolaosacessosrealizadosdiretamenteaobancodedados naaplicao,bemcomocentralizaosprocessosdeconstruodeconsultas(queries)eoperaesde manipulao de dados (insert, update e delete) em uma camada de objetos inacessvel ao programador.Esteencapsulamentoderesponsabilidadesgarantemaiorconfiabilidadesaplicaes e permite que, em alguns casos, o prprio SGBD ou a estrutura de suas tabelas possam ser modificados,semtrazerimpactoaplicaonemforararevisoerecompilaodecdigos.

2.1 Requisitosdeumacamadadepersistncia 2.1.1 Suporteadiversostiposdemecanismosdepersistncias:


Um mecanismo de persistncia pode ser definido como a estrutura que armazenar os dadossejaelaumSGBDrelacional,umarquivoXMLouumSGBDOO,porexemplo.Uma Camada de Persistncia deve suportar a substituio deste mecanismo livremente e permitir a gravaodeestadodeobjetosemqualquerumdestesmeios.

2.1.2 EncapsulamentoCompletodaCamadadeDados:
Ousuriodosistemadepersistnciadedadosdeveutilizarse,nomximo,demensagens dealtonvelcomosaveoudeleteparalidarcomapersistnciadosobjetos,deixandootratamento destasmensagensparaacamadadepersistnciaemsi.

2.1.3 AescomMultiObjetos
METODOLOGIADEDESENVOLVIMENTOCELEPAR

6 Suportarlistasdeinstnciasdeobjetoseretornadasdabasededadosdeveserumitem comumparaqualquerimplementao,tendoemvistaafreqnciadestasituao.

2.1.4 Transaes
AoutilizarsedaCamadadePersistncia,oprogramadordevesercapazdecontrolaro fluxodatransaooutergarantiassobreomesmo,casoaprpriaCamadadePersistnciapreste estecontrole.

2.1.5 Extensibilidade
A Camada de Persistncia deve permitir a adio de novas classes ao esquema e a modificaofcildomecanismodepersistncia.

2.1.6 IdentificadoresdeObjetos
A implementao de algoritmos de gerao de chaves de identificao garante que a aplicaotrabalharcomobjetoscomidentidadenicaesincronizadaentreobancodedadosea aplicao.

2.1.7 CursoreseProxies
Asimplementaesdeserviosdepersistnciadevemtercinciadeque,emmuitoscasos, osobjetosarmazenadossomuitograndeserecuperlosporcompletoacadaconsultanouma boaidia.Tcnicascomoolazyloading(carregamentotardio)utilizamsedosproxiesparagarantir queatributossserocarregadosmedidaqueforemimportantesparaoclienteedoconceitode cursores para manter registro da posio dos objetos no banco de dados (e em suas tabelas especficas).

2.1.8 Registros
Apesar da idia de trabalharse apenas com objetos, as camadas de persistncia

METODOLOGIADEDESENVOLVIMENTOCELEPAR

7 devem,nogeral,dispordeummecanismoderecuperaoderegistrosconjuntosdecolunasno encapsuladas na forma de objetos, como resultado de suas consultas. Isto permite integrar as camadasdepersistnciamecanismosdegeraoderelatriosquenotrabalhamcomobjetos,por exemplo,almdepermitirarecuperaodeatributosdediversosobjetosrelacionadoscomumas consulta.

2.1.9 ArquiteturasMltiplas
O suporte a ambientes de programas standalone, cenrios onde o banco de dados encontraseemumservidorcentralemesmoarquiteturas maiscomplexas(emvriascamadas) deveserinerenteCamadadePersistncia,jqueamesmadevevisarareusabilidadeefcil adaptaoaarquiteturasdistintas.

2.1.10 DiversasVersesdeBancodeDadoseFabricantes
A Camada dePersistncia devetratar dereconhecer diferenas derecursos,sintaxe e outrasminciasexistentesnoacessoaosbancosdedadossuportados,isolandoistodousuriodo mecanismoegarantindoportabilidadeentreplataformas.

2.1.11 MltiplasConexes
Umgerenciamentodeconexes(usualmenteutilizandosedepooling)umatcnicaque garantequevriosusuriosutilizaroosistemasimultaneamentesemquedasdeperformance.

2.1.12 Queriessql
Apesardopodertrazidopelaabstraoemobjetos,estemecanismonofuncionalemcem porcentodoscasos.Paraoscasosextremos,aCamadadePersistnciadeveproverummecanismo dequeriesquepermitaoacessodiretoaosdadosouentoalgumtipodelinguagemdeconsulta simularSQL,deformaapermitirconsultascomumgraudecomplexidademaiorqueocomum.

2.1.13 ControledeConcorrncia
METODOLOGIADEDESENVOLVIMENTOCELEPAR

Acessoconcorrenteadadospodelevarainconsistncias.Paraprevereevitarproblemas decorrentesdoacessosimultneo,aCamadadePersistnciadeveproveralgumtipodemecanismo decontroledeacesso.Estecontrolegeralmentefeitoutilizandosedoisnveiscomotravamento pessimstico(pessimisticlocking),aslinhasnobancodedadosrelativasaoobjetoacessadoporum usuriosotravadasetornamseinacessveisaoutrosusuriosatomesmoliberaroobjeto.No mecanismootimstico(optimisticlocking),todaaediofeitaemmemria,permitindoqueoutros usuriosvenhamamodificaroobjeto

3 MAPEAMENTOOBJETORELACIONAL
Utilizaseumaabstraobastanteintuitivanosentidodequeumaclassedotipopersistente podesermapeadaparaumatabelanobancodedadosrelacionaleatributosdaclasseparacampos da tabela. Porm, algumas diferenas entre os dois modelos , como OID (Object Identifiers Identificador de Objetos), tipos de dados, herana e associaes, demandam um estudo mais detalhadodasestratgiasdemapeamento.

3.1 Identificaodechaveprimria
As linhas das tabelas precisam ter identidade exclusiva. Elas so identificadas com exclusividade pelos valores de suas chaves primrias e conseqentemente, nunca devem ser alteradas.Osnomesemtextosemformataonosoadequados,pois,geralmente,representamum overhead operacional para o recurso relacional persistente, alm do que os nomes no so exclusivos.Comoascomparaesnumricasconsomemmenosrecursoscomputacionais,aschaves primriasdevemsernumricase,preferencialmente,nodevemrefletirdomniodenegcio,para quenosejamalteradas.

METODOLOGIADEDESENVOLVIMENTOCELEPAR

3.2 OIDs(ObjectsIdentifiers)
Os OIDs so identificadores nicos que representam um objeto, em linguagens de programao, existentes, este objeto implcito ecriado quandoocorre a criao de um novo objeto,jemumbancodedadosrelacionalcabeaodesenvolvedoraresponsabilidadedestacriao. Quando ocorre o mapeamento, recomendase armazenar no banco de dados relacional o identificador do objeto como chave primria, ou qualquer outro atributo do objeto que possa identificlocomonico,exemplooCPF. ExistemvriasestratgiasparaatribuirOIDsparaobjetos,inclusivepodesecriarumaou mais classes cuja responsabilidade especfica a de atribuir OIDs para objetos, sendo estas estratgiasseparadasdasclassesqueimplementamasregrasdenegcio. consideradaumaboaprticadedesenvolvimentosepararaestratgiadeatribuiode OIDs das classes de negcio, evitando utilizar um atributo qualquer da classe para ser o identificador. Identificadores que possuem um significado de negcio, certamente mudam em algummomento,poisasregrasdenegciomudamfreqentemente,eoesforonecessriopara realizarestamodificaopodeserimensurvel.

3.3 MapeamentodeClassesemTabelas
Omapeamentodeclassespodeserfeitomedianteaparidadeentreclasseetabela,ouseja, umaclassemapeadaparaumatabela.Estemapeamentodiretodeclassesparatabelasrepresentaa formamaissimplesdemapeamento,tornandomaisfciloentendimentoeamanutenodeuma aplicao.Comummodelodeclassesbastantesimplesistopoderiaserfeito.Porm,nemsempre simplesassim.Nocasodeumaestruturahierrquica,vriasclassespodemsermapeadasparauma tabela, como tambm uma classe pode ser mapeada para vrias tabelas. Ainda, classes com atributosmultivaloradosoucompostospodemsermapeadasparamaisdeumatabela,Figura1.

METODOLOGIADEDESENVOLVIMENTOCELEPAR

10

Figura1.MapeamentodeClassesemTabelas

3.4 MapeamentodeAtributosemColunas
Aotratardomapeamentodeatributosdeumaclasseparacolunasemtabelasdeumbanco dedadosrelacional,deveselevaremcontaqueosatributospodemserdetiposdedadossimplesou primrioscomo:inteiros,pontoflutuante,caracteres,boleanosebinrios,mastambmpodemser detiposdedadoscomplexoscomotiposbaseadosemoutrasclasses.Osatributospodemserainda multivalorados (listasdeobjetos),oqueviolaasregrasdenormalizaodomodelorelacional. Almdisso, podemexistiratributos decontroleouutilizados emclculos, quegeralmente no necessitamsermapeados. Destaforma,osatributossimplespodemsermapeadosdiretamenteparacolunasemuma tabela,josatributoscomplexosemultivaloradospodemnecessitardetabelasadicionaisparaseu armazenamento.Estesatributoscomplexosgeralmentepossuemcaractersticasrecursivas,ouseja, soclassesquepossuemoutrosatributoseassimsucessivamente.

3.5 MapeamentodeHerana
Existemfundamentalmentetrsestratgiasparamapearheranaemumbancodedados relacional,exemplificadopelaFigura2

Umatabelaporhierarquia: Mapeartodaahierarquiadeclassesparaumatabela,onde todos os atributos das classes da hierarquia so armazenados nesta nica tabela. A desvantagemdestaestratgiaquetodavezqueumobjetodahierarquiaforpersistidono banco,necessriopersistirtambmosvaloresdasdemaisclassesvazios,causandouma grandequantidadedecamposinutilizados.Entretantooacessoaobancoparaamanipulao
METODOLOGIADEDESENVOLVIMENTOCELEPAR

11 dosdadosmaisrpido,umavezquetodososdadosestoemsomenteumatabela. adicionadaumacoluna(ObjectType)natabelaquerefernciaqualotipodoobjeto,ouseja, dequalclasseaquelesdadospertencem;

Umatabelaporclasseconcreta: Cadaclasseconcretamapeadarefleteumatabelacom todososatributosherdadosdassuperclassesabstratas.Avantagemdestaestratgiaa facilidadedemanipulaodedados,umavezquetodososdadosdecadaclasseestoem apenasumanicatabela.Comodesvantagem,destacasequequandosemodificaumaclasse abstrata, necessrio modificar todas as tabelas geradas pelas classes filhas no modelo relacional; Umatabelaporclasse:Cadahierrquicamapeadarefleteumatabela,relacionadasatravs domecanismodeespecializaopadrodobancodedadosrelacional(utilizaodechaves estrangeiras). Segunda esta modalidade de mapeamento, tentase ao mximo manter a normalizaodedados,deformaqueaestruturafinaldastabelasficabastanteparecidacom a hierarquia das classes representada na UML. Esta a tcnica que mais naturalmente mapeiaobjetosparabancodedadosrelacionais.Tabela1representaumacomparaoentre astcnicasdemapeamento.

Figura2.Exemplodetcnicasdemapeamento.

Umatabelapor hierarquiadeclasses Adhocreporting Facilidadede implementao Simples Simples

Umatabelaporclasse Umatabelaporclasse concreta Mdio Mdio Mdio/Difcil Difcil

METODOLOGIADEDESENVOLVIMENTOCELEPAR

12 Facilidadedeacesso Acoplamento Velocidadedeacesso Suporteapolimorfismo Simples Muitoalto Rpido Simples Alto Rpido Mdio/Difcil Baixo Mdio/Rpido Alto

Mdio Baixo Tabela1.Comparaoentreastcnicas

3.6 MapeamentodeAssociaes
Asassociaesentreclassesnomodeloorientadoaobjetosconceitualmentebastante similaraorelacionamentoentretabelasnomodelorelacional.Estefatopermitequetaisassociaes sejammapeadaspararelacionamentos,podendoutilizarchavesestrangeirasoutabelasauxiliares.

3.7 Associaesdotipo1para1(1:1)
A associao destetipo entre classes mapeada colocando oatributo identificador da classereferenciadanaclassequeoreferncia,criandoentooconceitodeumachaveestrangeirano modelorelacional,comodemonstradonaFigura3.

Figura3.Associaodotipo1para1

3.8 Associaesdotipo1paran(1:n)
Damesmaformaqueaassociaodotipo1:1,orelacionamento1:ntambmmapeado colocandooatributoidentificadordaclassereferenciadanaclassequeoreferncia,criandoentoo conceitodeumachaveestrangeiranomodelorelacional,comodemonstradonaFigura4.
METODOLOGIADEDESENVOLVIMENTOCELEPAR

13

Figura4.Associaodotipo1paran

3.9 Associaodotiponparan(n:n)
Para mapear uma associao do tipo n:n, necessrio utilizar o conceito de tabela associativa, cujo propsito manter o relacionamento entre duas ou mais tabelas do modelo relacional. Criase ento uma tabela associativa com os OIDs das classes que se referenciam, garantindoanavegabilidadedorelacionamento,comoexemplificadonaFigura5.

Figura5.Associaodotiponparan

4 MAPEAMENTODEASSOCIAESTODO/PARTE
Asassociaestodo/partegeralmentesorepresentadascomoagregaesoucomposies. Asagregaessoassociaesquerepresentamumarelaogrupo/membro,ouseja,ondeoobjeto agregadopodeexistirindependentedosobjetosqueoconstituem.Jacomposiorepresentaum tipodeassociaoondeotodonoexistesemsua(s)parte(s).Nestecaso,tantoagregaesquanto composiessomapeadasparatabelasdeduasformas:utilizandoumanicatabelacomtodosos atributosdaclassequerepresentaotodoedasclassesquerepresentamsuaspartes,oumaisdeuma
METODOLOGIADEDESENVOLVIMENTOCELEPAR

14 tabela,umaparacadaclasseenvolvidanomodelo.

5 CONSIDERAESFINAIS
O objetivo dequalquer projeto ,dentre outros aspectos,eliminar os riscos tcnicos e produzirumaarquiteturaestvel,comumabaselineadequada.Emmuitossistemasdenegcios,o maudesempenhoresultantedeummodelodedadosprojetadoincorretamenteumadasprincipais preocupaesemtermosdearquitetura.Comoconseqncia,amodelagemdedadoseaelaborao de um rascunho da estrutura do software em desenvolvimento, que permita a avaliao do desempenhodobancodedados,essencialparaaobtenodeumaboaarquitetura. Asprincipaisestruturasdobancodedados,dentreelas;tabelas,ndices,colunasdechave primriaechaveestrangeira,devemserusadasparasuportarcenriossignificativosdopontode vista da arquitetura. Alm disso, grandes volumes de dados devem ser carregados nos bancos relacionaisparasuportartestesdedesempenhodosistema.Combasenosresultadosdessestestes, talvez o modelo de dados precise ser otimizado, incluindo, dentre outros, desnormalizao, otimizaodeatributosdearmazenamentofsico,distribuioouindexao. Duranteoprojeto,colunasadicionaispodemserincludasnastabelas,visesquesuportem requisitosdeconsultaerelatriopodemsercriadasendicespodemserelaboradosparaotimizaro desempenho.Nodevemocorrergrandesreestruturaesdatabelaaolongodoprojetodosistema, poisissodemonstraqueaarquiteturanoestestabilizada.

6 REFERNCIAS
MapeandoObjetosparaBancosdeDadosRelacionais:tcnicaseimplementaesDisponvelem <http://www.md.cefetpr.br/pos/informaticaIV/professor/rosane/POO_UML/Mapeando%20Objetos %20para%20Banco%20de%20Dados%20Relacional.pdf>:Acessoemmarode2008. Norma para Mapeamento ObjetoRelacional Processo de Desenvolvimento de Sistemas do TribunaldeContasdaUnio.

METODOLOGIADEDESENVOLVIMENTOCELEPAR

Vous aimerez peut-être aussi