Académique Documents
Professionnel Documents
Culture Documents
Agosto2009
SumriodeInformaesdoDocumento
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.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
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
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.
METODOLOGIADEDESENVOLVIMENTOCELEPAR
12 Facilidadedeacesso Acoplamento Velocidadedeacesso Suporteapolimorfismo Simples Muitoalto Rpido Simples Alto Rpido Mdio/Difcil Baixo Mdio/Rpido Alto
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