41
Sistemas de Bancos de Dados Orientados a Objetos Ivan Luiz Marques Ricarte Depto. Engenharia de Computação e Automação Industrial Faculdade de Engenharia Elétrica e de Computação Universidade Estadual de Campinas mailto:[email protected] http://www.dca.fee.unicamp.br/~ricarte/ Setembro de 1998 Resumo Sistemas de banco de dados representam um papel fundamental em aplicações de processa- mento de informação não-numérica, onde a utilização de tais sistemas permite facilitar a manu- tenção de dados consistentes que podem ser compartilhados por diversas aplicações, as quais não precisam conhecer o modo como tais dados são internamente armazenados ou representados. A tecnologia de banco de dados já está madura para diversas aplicações, principalmente nas áreas administrativa e comercial. Entretanto, novas categorias de aplicações têm demandado o gerenciamento de dados mais complexos — são aplicações tais como sistemas de apoio a projetos e de automação de escritó- rios. Para essas aplicações, o paradigma de orientação a objetos surge como alternativa adequada para a representação e manipulação dos dados, mas é preciso ainda integrar de forma adequada esta tecnologia a sistemas de banco de dados. Sistemas gerenciadores de bancos de dados orientados a objetos constituem a proposta cor- rente para a solução desse problema. Neste trabalho apresentam-se os aspectos básicos da mo- delagem e da tecnologia de tais sistemas, com uma breve discussão sobre tendências na área de processamento de informação não-numérica. Pela análise dessas tendências, observa-se que as técnicas desenvolvidas para a integração de orientação a objetos a banco de dados oferecem contribuições que certamente estarão presentes nas novas plataformas de processamento por ob- jetos distribuídos. Assim, o estudo de sistemas gerenciadores de base de objetos devem ainda permanecer como objeto de interesse por um longo período.

Tcc Exemplo OO Pagina12

Embed Size (px)

Citation preview

Page 1: Tcc Exemplo OO Pagina12

SistemasdeBancosdeDadosOrientadosaObjetos

IvanLuizMarquesRicarte

Depto.EngenhariadeComputaçãoe AutomaçãoIndustrial

FaculdadedeEngenhariaElétricaedeComputação

UniversidadeEstadualdeCampinas

mailto:[email protected]

http://www.dca.fee.unicamp.br/~ricarte/

Setembrode1998

Resumo

Sistemasdebancodedadosrepresentamum papelfundamentalemaplicaçõesdeprocessa-

mentodeinformaçãonão-numérica,ondea utilizaçãodetaissistemaspermitefacilitar a manu-

tençãodedadosconsistentesquepodemsercompartilhadospordiversasaplicações,asquaisnão

precisamconhecero modocomotaisdadossãointernamentearmazenadosou representados.A

tecnologiadebancodedadosjá estámaduraparadiversasaplicações,principalmentenasáreas

administrativae comercial.

Entretanto,novascategoriasde aplicaçõestêmdemandadoo gerenciamentodedadosmais

complexos— sãoaplicaçõestaiscomosistemasdeapoioa projetose deautomaçãodeescritó-

rios. Paraessasaplicações,o paradigmadeorientaçãoaobjetossurgecomoalternativaadequada

paraa representaçãoe manipulaçãodosdados,masé precisoaindaintegrardeformaadequada

estatecnologiaasistemasdebancodedados.

Sistemasgerenciadoresdebancosdedadosorientadosa objetosconstituema propostacor-

renteparaa soluçãodesseproblema.Nestetrabalhoapresentam-seosaspectosbásicosdamo-

delageme da tecnologiade tais sistemas,com umabreve discussãosobretendênciasna área

deprocessamentodeinformaçãonão-numérica.Pelaanálisedessastendências,observa-seque

astécnicasdesenvolvidasparaa integraçãodeorientaçãoa objetosa bancodedadosoferecem

contribuiçõesquecertamenteestarãopresentesnasnovasplataformasdeprocessamentoporob-

jetosdistribuídos. Assim,o estudode sistemasgerenciadoresde basede objetosdevemainda

permanecercomoobjetodeinteresseporumlongoperíodo.

Page 2: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

1 Moti vação

Um bancodedadoséumacoleçãodedadosrelacionadosquepodeserarmazenadasobalguma

formafísica.Osdadosarmazenadosemumbancodedadosrepresentamalgumaspectoespecíficodo

mundoreal— um universode discursodeondeosdadossãoobtidos— e apresentamalgumgrau

decoerêncialógicaentreseuscomponentes.Portanto,umacoleçãoaleatóriadedadosnãoconstitui

umbancodedados.

Um sistemagerenciadordebancodedadoséo softwarequepermitecriar, manteremanipular

bancosdedadosparadiversasaplicações.A criaçãoemanutençãodebancosdedadosétarefadeuma

pessoaou grupodepessoas,normalmentereferenciadacomoo administrador do bancode dados.

A manipulaçãodobancodedados— atualizaçõeseconsultas— érealizadadiretaou indiretamente,

atravésdeprogramasaplicativos,pelosusuáriosdobancodedados.O sistemagerenciadordebanco

dedadospodeserdepropósitogeralouespecíficoparaalgumaaplicação.

Um sistemadebancodedadoséconstituídoporumbancodedadoseporumsistemagerencia-

dor debancodedados,comomostradonaFig. 1 [16]. Um sistemadebancodedadosé usualmente

umaaplicaçãoqueserve desuportea outrasaplicações,taiscomofolha depagamento,controlede

pessoale informaçõesbancárias.

MetadadosBase de DadosArmazenados

Software para Processar Consultas

e Programas

Software paraAcessar os Dados

Armazenados

Usuários/Programadores

Programas Aplicativos/Consultas

Sistema deBanco de Dados

SGBD

Figura1: Sistemasimplificadodebancodedados.

Tradicionalmente,sistemasdebancodedadosestavam relacionadosa aplicaçõesnasáreasad-

ministrativa e comercial. Com o tempo,asvantagensobtidascom a utilizaçãode um sistemade

bancode dadosparasuportara armazenagemda informaçãode umaaplicação— principalmente

a independênciadaaplicaçãocomrelaçãoà estruturainternadearmazenageme a possibilidadede

Page 3: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

compartilhardadosentreaplicações— passaramaserdesejadasemoutrasclassesdeaplicações,tais

comoprojetosdeengenharia(CAD/CAE — ComputerAidedDesign,ComputerAidedEngineering),

automaçãoindustrialedeescritórios(CAM — ComputerAidedManufacturing, OA — OfficeAuto-

mation), sistemasespecialistasdesuporteà tomadadedecisões(DSS— DecisionSupportSystems)

e sistemasdesuporteao trabalhocooperativo (CSCW— ComputerSupportedCooperative Work).

Muitasdestasaplicações“não convencionais”impõemrequisitosaosistemadebancodedadosque

nãoestavam presentesnasaplicaçõestradicionais,tais comolidar commaioresvolumesdedados,

a necessidadede manipulaçãode dadosem formatosnão-alfanuméricos— incluindo informação

multimídia— e o tratamentodeesquemasevolutivosedinâmicos.

As necessidadesdessasnovas categoriasde aplicaçõesconstituema maior motivaçãoparao

surgimentodenovasabordagensparao gerenciamentodedados.É nestesentidoqueaintegraçãodo

paradigmadeorientaçãoaobjetosasistemasdebancodedadostemsurgido comoa tendênciamais

promissoraemtermosdegerenciamentodedadosparaasmaisdiversascategoriasdeaplicação.

Nestetrabalhoapresenta-seum breve relatoda evoluçãodos sistemasde bancode dadosem

direçãoa sistemasgerenciadoresde basede objetos. Na Seção2 descreve-sea “primeira onda”

do processamentoda informaçãonão-numérica,culminandocom a propostado modelorelacional

e o desenvolvimentodosprimeirossistemasgerenciadoresdebancodedadosrelacionais.Sistemas

gerenciadoresdebancodedadosrelacionaisaindadominamboafatiadomercadodeprocessamento

de informação,utilizandoumatecnologiadominadae sendoperfeitamenteadequadosparagrande

partedasaplicaçõescomerciaiseadministrativas.

NaSeção3apresentam-seosresultadosdeumperíododetransição,ondealimitaçãodosmodelos

tradicionaisderepresentaçãodedadostornou-sepatenteparaasnovasaplicaçõescomputacionaisque

surgiam. Nessecontexto foi quea orientaçãoa objetosfoi propostacomoo paradigmaadequadode

representaçãodedados,emboraaindafosseincertocomoo casamentoentreorientaçãoa objetose

sistemasdebancodedadosdevesseocorrer. Foi umperíododeexperimentação,duranteo qualforam

lançadososfundamentosparaamodelagemdedadossegundoo paradigmadeorientaçãoaobjetos.

NaSeção4 apresenta-seo resultadodoamadurecimentodaaplicaçãodoparadigmadeorientação

aobjetosasistemasdebancodedados.Aspectosdatecnologiaqueoferecesuporteàimplementação

desistemasgerenciadoresdebasedeobjetossãoapresentados.A Seção5 apresentaalgunsexemplos

representativosdegerenciadoresdeobjetos,ondealgumasdestastécnicassãoilustradas.

Finalmente,na Seção6 sãoapresentadasastendênciasparao futuro do gerenciamentode da-

dosemaplicaçõescomputacionais,queindicamsero paradigmadeorientaçãoa objetosa basepara

a evoluçãodessasaplicações.Assim, sistemasgerenciadoresde basede objetosdeverãode fato

representarumpapelfundamentalcomorepositóriosdeinformaçãonofuturodasaplicaçõescompu-

tacionaisporum longoperíodo.

Page 4: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

2 Evoluçãodesistemasdebancodedados

Paramelhorcompreendero estadoatualdatecnologiadebancodedados,é interessanteobservar

comoestatecnologiasurgiu eevoluiu.

O surgimento dos primeiros computadoresestáintimamenteligado à realizaçãode cálculos

numéricosrepetitivos. Esteera a motivaçãode Babbageparao projeto e elaboraçãode seuEn-

genhoAnalítico no SéculoXIX. Da mesmaforma, os trabalhospioneirosde Zuse,na Alemanha,

e deAtanasoff, Aiken,Mauchlye Eckert, nosEstadosUnidos,eramcomputadoresvoltadosparaa

soluçãodeproblemasnuméricos.Porumlongoperíodo,o desenvolvimentodecomputadorescientí-

ficos(paraaplicaçõesnuméricas)foi independentedodesenvolvimentodemáquinasparaaplicações

comerciais.Somenteno início dadécadade1960a integraçãoentreestasduastendênciasocorreu

de modomaisacentuado,principalmenteatravés dosesforçosda IBM paraotimizar sualinha de

produçãodemáquinasparaasduasáreasdeaplicação.

O conceitoquemotivouo surgimentodebancosdedadoséquasetãoantigoquantososprimeiros

sistemascomputacionaisparaaplicaçõesnão-numéricas,remontandoao final da décadade 1950.

Entretanto,o surgimentodesistemasgerenciadoresdebancodedadossofreuinfluênciastambémde

outrasáreasdeaplicação,notadamentedaáreadedefesaedeaplicaçõesmilitares.

2.1 Primórdios do processamentonão-numérico

O desenvolvimentode linguagensdedefiniçãodedadosfoi um fator importanteno desenvolvi-

mentodesistemasdebancodedados[18]. Entreelasdestacam-seCOMPOOLeCOBOL.

COMPOOL foi umalinguagemdesenvolvida noMassachusettsInstituteof Technologynocon-

texto do projetoSAGE, decontrolede tráfego aéreo,suportadopelaForçaAéreanorte-americana.

Ela forneciaum mecanismoparadefiniçãodeatributoscompartilhadospor centenasdeprogramas

emtempo-real.

COBOL é umalinguagemdeprogramaçãocomumaseçãocentralizadaparaa definiçãodeda-

dos,aDATA DIVISION. A criaçãodestalinguagemfoi coordenadapeloconsórcioCODASYL para

integrarlinguagensdeaplicaçõescomerciais,comoFACT (Honeywell), GECOM(GeneralElectric)

eCommercialTranslator(IBM).

O uso de uma linguagemcomumde definiçãoe processamentodos dados,como no casode

COBOL, eraatrativo pois a linguagemde definiçãoseguia o modeloda sistemasbaseadosem fi-

tase cartões.Entretanto,cadafabricanteadotava seupróprio esquemade armazenamento,o que

dificultava a transferênciadedadosentresistemasdefabricantesdistintos.

Geradoresde relatóriosforam criadosparafacilitar o trabalhode produzirsaídasformatadasa

partir de dadosarmazenadosno sistema.Emboratais tarefaspudessemser(e eram)produzidasa

partir delinguagensdeprogramaçãoconvencionais,osprogramasproduzidoserammuito extensos.

O usodestesreport generators permitiaentãoqueusuáriosexaminasseme manipulassemgrandes

volumesdedados,sendoumprecursordaslinguagensdeconsultaabancosdedados.

Page 5: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

A GeneralElectricdesenvolveu o GeneralizedReportGenerator parao centrodeoperaçõesda

Atomic Energy CommissionemHanford,estadodeWashington,em1956.Estesistemafoi o ances-

tral detodosossistemasdegeraçãoderelatórios,incluindoossistemasdaIBM, RPG(System/360,

1965)eseusucessor, RPGII (1967).

2.2 Desenvolvimento degerenciadoresdebancodedados

Os primeirosprotótiposdesenvolvidos com a funcionalidadede gerenciardadosde umaapli-

cação,secomparadoscomossistemasatuais,oferecempoucasemelhançadefuncionalidade.Entre-

tanto,foramesforçossignificativosparaa épocae queinfluenciaramdediversosmodoso desenvol-

vimentodossistemasposteriores[18]. Algunsdestesesforçossãocitadosaseguir.

Base-Ballfoi um sistemaespecialistadeacessoa dadosatravésdeumainterfaceemlinguagem

natural. Os dados,assimcomoo vocabulário de interaçãoentreusuáriose a basede fatos,eram

relacionadosabeisebol.

B-Treeé umaestruturaextensivamenteutilizadaparaacessoeficientea arquivos,cujaprimeira

implementaçãofoi apresentadaemartigopublicadonaCommunicationsdaACM dejaneirode1962,

porCollilla e Sams.

QUERY eraumalinguagemdeconsultaadadoscomtraduçãoparalinguagemdemáquina,des-

critaemartigonaCommunicationsdaACM tambémdejaneirode1962,porCheathameWarshall.

Recol (Retrieval Command-OrientedLanguage), eraum sistemadegerenciamentodeacessoà

informaçãogeneralizadoparaunidadesdefita, descritoporClimensonnaCommunicationsdaACM,

demarçode1963.

ACSI-Matic foi um sistemaprojetadoparaexplorar o uso efetivo de memóriae inferências.

Foi o primeiro sistemaa oferecerum pacotegeneralizadopararecuperaçãode dadosem discos

comrequisiçõesembatch, a oferecergerenciamentodinâmicodememóriaprincipale a utilizar um

montadorcomrotinaparaalocaçãodinâmicadememória.Erapartedeumprojetodoexércitonorte-

americano,descritoinicialmenteem1960,comumprotótipoimplementadoem1964pelaRCA.

ADAM (AdvancedData ManagementSystem)foi um sistemadesenvolvido com recursosda

ForçaAéreanorte-americanaapartirdoprotótipoETF(ExperimentalTransportFacility), daMITRE

Corporation.Tinhaporobjetivo serumlaboratórioparamodelagem,desenvolvimentodeprotótipos,

verificaçãodeprojetoeavaliaçãodesistemasgerenciadoresdedados.

Colingo eraum conjuntode sistemasde gerênciade dadosorientadosa fitas, oferecendouma

estruturaestiloCOBOLemmáquinasIBM.

Apósestesprimeirosesforçosnosentidodeoferecersistemasmanipuladoresdedados,surgiram

de fato asprimeirasfamíliasde gerenciadoresde dados. Esforçospioneirosincluíamo Mark IV

paramáquinasIBM1401, desenvolvido por Postley na Informaticsno período1964–1968;o IDS

(Integrated Data Store), desenvolvido por Bachmanno período1964–1966;e o FormattedFile,

desenvolvido pelaforçaaéreanorte-americananoperíodo1961–1965.O FormattedFile influenciou

Page 6: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

o produtoda IBM, GIS (Generalized Information System), que introduziu como contribuiçõeso

armazenamentodetabelacomo formatodoarquivo eamanipulaçãodegrandesarquivos.

O IDS combinava tecnologiadeacessoa posiçõesaleatóriascomlinguagensprocedimentaisde

alto nível (inicialmente,Gecom;posteriormente,COBOL,em1966)oferecendoum modelodeda-

dosdotipo rede.Nestamesmafamíliadegerenciadoresincluem-setambémAPL (AssociativePL/I),

desenvolvido naGeneralMotors (1966),e dataBASIC, daHoneywell (1970). As principaiscarac-

terísticasdestesgerenciadores,queforamcontribuiçõesimportantesparagerenciadoresdedadosque

seseguiram,incluem:

� verbosparamanipulaçãodedadosnainterfacedealtonível;

� descriçõesseparadasparaarmazenamentoeparaprogramação;

� princípioselementaresde manutençãoda consistência,com mecanismospararemoçãoe in-

serçãoimplícitas;

� conceitosdepaginaçãodedados;e

� acessocompartilhadoaosdados.

Osprimeirosdesenvolvimentoscomerciaisemgerenciadoresdebancodedadosforammarcados

pelosesforçosdaCODASYL, como Data BaseTaskGroup (DBTG, 1969–1971)e o projetoIMS

(1966–1969)daAgênciaEspacialnorte-americana(NASA), queinfluenciouo produtoIMS/360da

IBM.

A abordagemdo DBTG foi proporumaextensãoa COBOL paraa manipulaçãode bancosde

dados.Estaabordagemfoi adotadapor diversosprodutos,entreosquaisdestacam-seo IDMS (In-

tegrated Data ManagementSystem), desenvolvido pela IBM paraIBM System/360;IDMS-11 e

DBMS-10, implementaçõesdeIDMS pelaDigital EquipmentCorporationparasuasmáquinasPDP-

11/45e PDP-10,respectivamente;e o IDS/II , umaadaptaçãodeIDS realizadapelaHoneywell para

adequaçãoaopadrãoDBTG.

O projetoIMS foi resultadodeumdesenvolvimentoconjuntodasempresasRockwell,IBM eCa-

terpillarparaapoioaoprogramaApollo, daNASA. ForamfrutosdesteprojetoosprodutosICS/DL/I

(InformationControl System,DataLanguage/I), daRockwell;e IMS/360, daIBM desenvolvido para

suasmáquinasdafamíliaSystem/360.

2.3 O modelorelacionaldedados

A maior contribuiçãodosprimeirosgerenciadoresdedadosfoi introduzir a separaçãoentreos

dadosarmazenadose a descriçãodaestruturadosdados,o esquemadedados.As restriçõessobre

tiposdedadose deesquemasquesãopermitidospor um sistemaconstituemseumodelode dados.

Page 7: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

A abordagempropostapelogrupoCODASYL/DBTG suportaum modelodedadosconhecidopos-

teriormentecomoo modelorede(network), enquantoqueaabordagemdeIMS introduziuo modelo

dedadoshierárquico.

Ambosmodelosdedadostêmporprincípioo estabelecimentodeligaçõesentregruposderegis-

tros.No modelodedadosredeosregistrossãoorganizadosnaformadegrafosdirigidos.No modelo

de dadoshierárquicocadaregistro tem um único antecessor, limitando a organizaçãodosdadosa

umaestruturadeárvore,ouhierarquia.

Apesardo avançoem relaçãoaosprimeirossistemasgerenciadoresde dados,os modelosrede

e hierárquicoapresentavam como limitaçãoumaforte dependênciaentreasestruturasinternasde

armazenamentoe a representaçãoabstratadosdados,influenciandoassimosmecanismosdemani-

pulação.Umacaracterísticagenéricadosprodutosbaseadosnestesmodelosestava no modocomo

asligaçõesentreregistroseraarmazenada,usualmenteutilizandoendereçosfísicos,comumaforte

dependênciaentrea representaçãodoarmazenamentoeamáquinaondeo sistemaestava implemen-

tado. No entanto,paraaquelaépocaportabilidadenãoeraumaquestãomaior, poismuitosclientes

concentravamsuasaplicaçõesemumaúnicamáquinadegrandeporte.

Um grandemarconaevoluçãoemmodelosdedadosfoi a propostado modelorelacional [12],

queapresentava um modelomatemáticoparaa representaçãoe manipulaçãode dadostotalmente

independentedecaracterísticasdeimplementação.

O modelorelacionalofereceumavisãodo conjuntodedadoscomoumacoleçãode tabelasou

relações(no sentidomatemáticodapalavra), ondecadatabelaé um conjuntoderegistrosou tuplas,� -uplasordenadasdevaloresliteraispertencentesadomíniosatômicos.O modeloofereceapossibi-

lidadedeexpressarconsultasemanipulaçõessobreabasededadosusandolinguagensindependentes

desistemas,baseadasemálgebrarelacionaleemcálculorelacional[26].

A álgebra relacionalofereceoperaçõesbásicascomoseleçãodetuplasdentreaspertencentesa

umarelação( � ), a projeçãodecolunasda tabelagerandoumanova relaçãocomapenasascolunas

selecionadas(�

), o produtocartesianode duasrelaçõesgerandoumanova relaçãocom todasas

combinaçõespossíveisdetuplasentreasduasrelaçõesoriginais( � ), a uniãodeduasrelaçõescom

estruturascompatíveis ( � ) e a diferençade duasrelaçõescom estruturascompatíveis ( � ), ondeo

resultadoéumaterceirarelaçãoquecontémastuplasdaprimeirarelaçãoquenãoestãopresentesna

segundarelação.

As principaisoperaçõesderivadasdasoperaçõesbásicasnaálgebrarelacionalincluem:

� a interseçãodeconjuntos,quepodeserexpressaemtermosdediferenças,

��� ��� ��� � � ��

� a junçãocompredicados,quepodeserexpressaemtermosdeseleçãoeprodutocartesiano,

�������� � ��� �

Page 8: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

� a junçãonatural,ondeo predicadode junçãoé a igualdadeentrevaloresde atributos com

domínioscompatíveisnasduasrelaçõesenvolvidas.

A álgebrarelacionalpermiteexpressarasoperaçõeselementaresquedevem serseguidas,em

ordem,paraa obtençãodo resultadodesejado.Nestesentido,é umalinguagemprocedimental,pois

suasexpressõesdefinemsequênciasdeoperações.No entanto,nãoé umalinguagemprocedimental

completa,poisnãoinclui asconstruçõesdecontroledeexecuçãousualmentepresentesemlinguagens

deprogramação.

O cálculo relacionalé baseadoemconstruçõesnão-procedimentais,usandodescriçõesformais

do queé desejadona manipulação.Duasvariantesbásicassãoo cálculo relacionalde tuplase o

cálculorelacionaldedomínios.É possível mostrarqueestastrêslinguagensrelacionais— aálgebra,

o cálculodetuplaseo cálculodedomínios— têmpoderequivalentedeexpressão[26].

As linguagensrelacionais,matemáticas,ofereceramosfundamentosparao desenvolvimetnode

diversaslinguagenscomputacionaisde consultae manipulaçãode basesde dados. A linguagem

SQL usaumacombinaçãode construçõesda álgebrae do cálculo relacionais.Outraslinguagens

deconsultaconhecidasincluemQuel (baseadano cálculorelacionalde tuplas)e QBE (baseadano

cálculorelacionaldedomínios).

As vantagensdo modelorelacionalpodemserresumidasemdoispontosprincipais.O primeiro

é seuforte suporteteóricoparadescriçãodarepresentaçãoe damanipulaçãodosdados.O segundo

é a facilidadeoferecidaparao mapeamentode tuplasparaosdispositivos dearmazenamento,com

umaassociaçãopraticamentediretapararegistrosdedimensãofixa emarquivos comacessodireto

emdisco.Estasvantagensmotivaramospesquisadoresdaépocaa investirnoestudodemecanismos

desuporteà implementaçãodesistemasgerenciadoresdebancodedadosrelacionais.

A décadade 1970foi assimmarcadapelo desenvolvimentode protótiposde sistemasrelacio-

nais. Osprincipaisprojetosdestafaseforamo SystemR, da IBM, e INGRES,daUniversidadeda

CalifórniaemBerkeley.

O SystemR [2, 6] foi um projeto-protótipodo laboratóriode pesquisada IBM em SanJose,

Califórnia, iniciadoem1974. Concluídoem1979,deuaindaorigemaoprodutoSQL/DataSystem

(1981)eaoprojetoR* paraestudodesistemasdebancosdedadosdistribuídos.Posteriormente,em

1983,aIBM lançoutambémo produtoDB2 paramanipulaçãodegrandesbasesdedadosrelacionais.

As principaiscontribuiçõesdesteprojetoforama definiçãodalinguagemdeconsultaSQL,a intro-

duçãodemecanismosparaa compilaçãoe otimizaçãodeconsultas,a introduçãodemecanismosde

integraçãoda linguagemdeconsultaa linguagensdeprogramação,e a introduçãodosconceitosde

locking emduasfasesecommúltiplasgranularidades.

INGRES [45,46] foi umsistemagerenciadordebancodedadosexperimentaldesenvolvido por

umgrupodepesquisadaUniversidadedeBerkeley. Posteriormente,umprodutodomesmonomede-

rivadodesteprojetofoi lançadopelaempresaRelationalTechnology, Inc., sendoatualmentecomer-

cializadopelaempresaIngresInc. O protótipoinicial do sistemafoi desenvolvido emum PDP-11,

comsistemaoperacionalUnix. INGRESfoi projetadocomoum sistemagerenciadorcomdiversos

Page 9: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

processosconcorrentescom mecanismosde comunicaçãointer-processos.A linguagemQuel foi

introduzidaporesteprojeto,juntamentecomummecanismodeembeddingparaa linguagemdepro-

gramaçãoC. As técnicasdeotimizaçãodeconsultanãoeramrealizadaspor pré-compilação,como

emSystemR, masdurantea interpretaçãodasconsultas,atravésdeum processodedecomposição

deconsultas.Desteprojetoderivou-setambémo projetoPOSTGRES[41], sistemagerenciadorde

bancode dadosrelacionalcom característicasavançadasde controlede restriçõese apoioa novos

tiposdedados.

Estesprotótiposinfluenciaramo desenvolvimentodemuitosprodutos,e sistemasgerenciadores

debancodedadosrelacionaisatingiramgrandesucessocomercial.Entretanto,o desenvolvimentoda

tecnologiacomputacionalvemmotivandoa implementaçãodeaplicaçõescadavezmaiscomplexas,

cujasnecessidadesderepresentaçãodeinformaçãonemsempreeramadequadamenteatendidaspor

tais produtos. Assim, o modelorelacionalde dadosenfrentou(e continuaenfrentando)algumas

críticas,dasquaissedestacam:

1. éapenasadequadoparaaplicações“estruturalmentesimples”;

2. o poderdeexpressãodastabelasé limitado;

3. desenvolver umbomprojetorelacional,normalizado,nãoé tarefa simples.

É a partir desituaçõescomoessasquea buscapor novos mecanismosdeexpressãodedadosé

motivada. Nestecaso,havia umanecessidadedesebuscarmodelosdedadoscommaior poderde

expressãoqueo modelorelacionaldedados.As abordagensresultantespodemserresumidasemtrês

grandescategoriasdemodelos:osmodelosrelacionaisestendidos,osmodelosdedadosconceituais

eosmodelosorientadosaobjetos.

Osmodelosrelacionaisestendidosincorporammecanismosnãoprevistosnapropostaoriginal

do modelorelacional[13]. Osprincipaismecanismosdescritosemdiversaspropostasincluempro-

cedimentosarmazenados,versões,objetosbinários(BLOBs)edefiniçãodetiposabstratosdedados.

A nãoexistênciadeum modeloestendidounificadodificulta umaaceitaçãomaisampladessalinha

deevoluçãodemodelos.Sistemasrepresentativosdestatendênciaincluemop já citadoPOSTGRES,

daUniversidadedaCalifórniaemBerkeley, queevoluiu posteriormenteparaum produtocomercial

denominadoMontage[50], eStarburst[27], do IBM AlmadenResearchCenter.

Os modelosde dadosconceituaisoferecemconstruçõesno nível maispróximo do projetista

paraorganizaçãodo mundode interesse[5, 38]. O termo“conceitual” refere-seao fato de queas

construçõesoferecidaspor estesmodelosestãoem níveis de abstraçãomaispróximosdo universo

de interessedo usuáriodo quedos aspectosde implementaçãoda máquina. Váriaspropostasde

arquiteturasde bancosde dadosutilizam três níveis de abstraçãoparabancosde dados(Fig. 2),

emboraemgeralnãohajaumconsensosobreosnomesdecadanível. Aqui adotou-seanomenclatura

deParsaye[36]. De qualquermodo,osmodelosdedadosconceituaisestãopróximosdo nível mais

alto.

Page 10: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

Físico

armazenamentodispositivos de

métodos de acessodefinições de dadosdicionários

tabelascamposregistros

relaçõesatributosConceitual

Lógico

entidades

Figura2: Arquiteturadebancodedados.

Nestaestruturaçãodebancodedadosemumaarquiteturadetrêsníveis,a informaçãodomundo

real é modeladapor usuáriosindependentementedasestruturascomputacionaisqueserãoutiliza-

dasno nível conceitual.Nestenível, construçõesparaa representaçãodosdadossão(por exemplo)

entidades,atributose relações.No nível conceitual,a informaçãoé estruturada,ondealgumascons-

truçõescomputacionaispodemjá ser consideradas.Construçõesparaa representaçãodos dados

seriamregistros,campose tabelas.O nível internoou físico correspondea representaçõesdo dado

ondesãoconsideradosdetalhesdearmazenamento,representaçãoedesempenho.Nestenível seriam

consideradasconstruçõescomputacionaiscomodicionários,definiçõesdedados,métodosdeacesso

edispositivosdearmazenamento.

Algumasdasprincipaispropostasno sentidodeoferecermodelosdedadosconceituaisincluem

o modeloentidade-relacionamento, queorganizaa informaçãoemtiposdeentidadese tiposdere-

lacionamentos;osmecanismosdeabstraçõesembancosdedados,agregaçãoe generalização;e os

modelossemânticose funcionais,queorganizama informaçãoatravésdeobjetose funções.

O modelo entidade-relacionamento[11] foi propostopor Chenem 1976 como um modelo

conceitual,nãoestandodiretamenterelacionadoa preocupaçõesrelativasà implementaçãodesuas

primitivas. Por estemotivo, juntamentecom a propostado modelohá descriçõespararealizaro

mapeamentodo modeloE-R paraosmodelosrelacionale rede,paraosquaishavia sistemasgeren-

ciadoresdebancodedadosdisponíveis.AlgumasdascaracterísticasdeinteressedomodeloE-Rsão

o encapsulamentodosdetalhesestruturaisemconstruçõesdealto nível (tiposdeentidadee tiposde

relacionamento)e mecanismosparamanutençãodeintegridadeeconsistênciadosdados.

Os conceitosde abstraçãoem bancosde dados, agregaçãoe generalização,foram propostos

Page 11: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

por Smithe Smith [44] em1977comoferramentasdeprojetodebancodedados,juntamentecom

propostasde mecanismosparaseusuporteem sistemasgerenciadoresde bancode dados,princi-

palmenterelacionais.Estesconceitosbásicosreaparecememmuitosoutrosmodelossobdiferentes

formas.

Modelos semânticose modelosfuncionais [22,37] estãovoltadosprincipalmenteparaa in-

tegraçãoentresistemasde bancosde dadose sistemasde representaçãode conhecimento,sendo

fortementeinfluenciadospor técnicasdainteligênciaartificial. Assim,incorporammecanismospara

expressartiposcomplexos,relacionamentosentreobjetos(incluindohierarquiasnaformaIS-A) ede-

rivaçãodeesquemas.Tambémnãohouve umaabordagemdemodelagemsemânticauniversalmente

aceita,damesmaformacomoocorreucommodelosrelacionaisestendidos.

A abordagemdemodelagempor orientaçãoa objetos,apesardepróximoemprincípioaosmo-

delosdedadosconceituais,vemrecebendoatençãoe aceitaçãomuito maisampla.Porestemotivo,

essetópicoserátratadoemmaisdetalhesnapróximaseção.

3 Modelagemdedadosorientada a objetos

Ossistemascomerciaisdegerênciadebancodedados,baseadosprincipalmentenomodelorela-

cionaldedados,obtiveramamplaaceitaçãoe divulgação,emdiversosníveisdeescaladeaplicação.

Entretanto,tais sistemasmostraram-seinadequadosparaumaamplagamade aplicaçõesquesur-

giu com a ampliaçãodo poderde processamentodos computadoresmodernos.Essasaplicações

incluem,entreoutras,atividadesemprojetosdeengenharia(siatemasCASEparaengenhariadesoft-

ware, CAD paradesenvolvimentode hardware e apoioà engenhariamecânica,engenhariacivil e

arquitetura),autoriaemanipulaçãodedocumentoseletrônicos,manufaturaecontrole.

O paradigmadeorientaçãoaobjetossurgiu comoumaalternativaparaamodelagemdebancosde

dadosquepermitiriaincorporarmuitosdosconceitospropostospelasoutrasabordagensalternativas

aomodelorelacionaldedados.Emborainicialmentetenhatambémsofridopeloexcessodeaborda-

gensnão-compatíveis,suaamplaaceitaçãomotivou esforçosdepadronizaçãoquevêmunificandoo

chamado“modelodeobjetos”.

Destemodo,o desenvolvimentodesistemasgerenciadoresdebasesdeobjetos(SGBOs)surgiu

comoumaalternativacomo potencialadequadoparaatenderàdemandadetaisaplicações,sendopor

estemotivo objetodeintensointeressedepesquisae desenvolvimento.Antevia-sequetaissistemas

ofereceriamo ferramentalnecessárioparaasnovascategoriasdeaplicaçõesquenãoestavamsendo

adequadamentesuportadasporbasesdedadosrelacionais.

3.1 Princípios da orientaçãoa objetos

O conceitodeobjeto comoconstruçãodeprogramaçãofoi inicialmenteintroduzidona lingua-

gemSimula67,ondea execuçãodeum programaerarealizadaatravésdacomposiçãodaexecução

deváriosobjetosinter-relacionados. Objetoscomumamesmaestruturaconstituíamumaclasse, que

Page 12: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

eradescritaporumadeclaraçãodeclasse.OsconceitosintroduzidosporSimulaestiverampormuito

tempolimitadosà utilizaçãoemaplicaçõesdesimulação.Apenasa partir dadécadade1980hou-

ve um maior esforçono sentidode valorizar tais conceitose incorporá-losa outraslinguagensde

programação.

Nygaard[31] defineprogramaçãoorientadaaobjetoscomo

. . . odesenvolvimentodeumsistemaemumprocessodeinformaçãoatravésdetrans-

formaçõesdeseuestado.A substânciadoprocessoéorganizadacomocomponentesdo

sistema,denominadosobjetos.Umapropriedademensurávelda substânciaé umapro-

priedadede um objeto. Transformaçõesde estadosãoconsideradascomoaçõespor

objetos.

Um aspectochaveemprogramaçãoorientadaaobjetoséo conceitodeabstração,quepermiteabstrair

(nestadefinição)substânciacomodeclaraçõesdeclasses;valorese propriedadesmensuráveiscomo

declaraçõesdetipos;eaçõescomodeclaraçõesdemétodosouprocedimentos.Um objetoencapsula

umaestruturaquesóémanipulável atravésdemétodoscomponentesdeumainterfacepública.

ComoStroustrupdestaca[47], programaçãoorientadaa objetosé umatécnica,um paradigma.

Umalinguagemdeprogramaçãoorientadaa objetosnadamaisé do queumalinguagemdeprogra-

maçãoquefavorecea aplicaçãodessatécnica.Entretanto,épossível realizarprogramaçãoorientada

a objetossemusarumalinguagemdeprogramaçãoorientadaa objetos,assimcomonãohágaran-

tia de queum programaseráorientadoa objetossimplesmenteporquefoi implementadoem uma

linguagemdeprogramaçãoorientadaaobjetos.

Além dosconceitosfundamentaisdeclasses,objetose métodos,doisconceitosinerentesà pro-

gramaçãoorientadaa objetossãoherançae polimorfismo. Herança é o mecanismoquepermite

reaproveitardeclaraçõesdeclasses,criandoclassesderivadasapartirdedeclaraçõesdeclassesbases

já existentes.Juntamentecom a técnicade padrõesde projeto(designpatterns), herançatorna-se

um mecanismodereusopoderoso.Polimorfismo é o mecanismoquepermiteexpressarqueações

similaresem classesdistintasvenhama ter um comportamentouniforme. Por exemplo,espera-se

queum métododenominadoprint em duasclassesdistintastenhaum comportamentocomum,

independentementedasdiferençasinternasdesuaimplementação.

EmboraSimulatenhaintroduzidoo conceitodeobjetosemprogramação,Smalltalkfoi a lingua-

gemresponsável porsuapopularização[29]. EmSmalltalk[19] todaa informaçãosobreo processo

deinteresseéorganizadaatravésdeobjetos,pormaissimplesoucomplexa quesejaaunidadedein-

formação.Programasmanipulamobjetos,sendoquea definiçãosobrea realizaçãodo objeto,assim

comodemétodosinvocados,ocorreapenasduranteo períododeexecução,atravésdomecanismode

ligaçãodinâmica(ou late binding). A execuçãodeum programaSmalltalkocorrepor interpretação,

podendohaver umaconversãodeum programafonteparaum programaemformatointermediário

deinterpretação,bytecodes.

Atualmente,aslinguagensde programaçãoorientadasa objetosde maior utilizaçãosãoC++ e

Page 13: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

Java. C++ [48], ao contráriode Smalltalk,é umalinguagemfortementetipada,ondea maior par-

te dasverificaçõesde operaçõessobreobjetossãorealizadasem tempode compilação,atravésdo

mecanismode early binding. Informaçãoem C++ podeestarrepresentadasoba forma de objetos,

representantesde entidadesabstratasou do mundoreal, ou soba forma de literais, representando

valoressimplescomointeiros,númerosreais,caracterese strings. ComoC++ nãoé umalinguagem

interpretada,suaexecuçãoé rápidae eficiente,fazendocomqueC++ sejaa linguagempreferencial

ondeo desempenhodasaplicaçõeséumaspectoimportante.Críticasà linguagemreferem-seprinci-

palmenteà suacomplexidadee à dificuldadedeserealizaro transportedeaplicaçõesemC++ entre

diferentesplataformascomputacionais.Além disto,C++ éumalinguagemque,devido àsuaproximi-

dadeecompatibilidadecoma linguagemC, favorecea implementaçãodeprogramasnão-orientados

aobjetos.

Java [20] éumalinguagemdeprogramaçãodefinidapelaSunMicrosystemscomouma“simpli-

ficação”deC++, como objetivo inicial dedesenvolver aplicaçõesdesoftwareparasistemasembarca-

dos.Tendoesteobjetivo, a linguagemdeveriasersimples,eficienteeoferecerumaltograudeporta-

bilidadeentreaspossivelmenteváriasplataformasdeexecuçãodistintas.Inicialmente,considerou-se

a utilizaçãodeC++ paraatingir esteobjetivo, masconstatou-sequeessalinguagem— assimcomo

muitasoutrasanalisadas— nãoeraadequadaparatal fim. Assim,definiu-seumanova linguagem

deprogramaçãotomandoC++ comobasemasondeosseusmecanismoscomplexos,causadoresda

maiorpartedoserrosdeprogramação,forameliminados.Assim,Java nãoutiliza ponteiros,templa-

tesouherançamúltipla. Paraalcançarportabilidade,empregou-seo conceitodecompilarprogramas

Javaparabytecodesquesãointerpretadosporumamáquinavirtual [21]. A portabilidadeéalcançada

apartir domomentoemquemáquinasvirtuaisJava estejamdisponíveisemdiversasplataformas.

3.2 Incorporaçãodeorientaçãoa objetosa sistemasdebancodedados

A definiçãodeNygaardparaprogramaçãoorientadaaobjetossugereseresteumparadigmaade-

quadoàmanipulaçãodesistemasdeinformação.Defato,algunsdestesconceitosestavampresentes

empropostasdemodelosdedados,comoo agrupamentodeentidades(objetos)emtiposdeentida-

des(classes)no modeloEntidade-RelacionamentodeChen. Assim,pareciasero caminhonatural

de evoluçãoa fusãode orientaçãoa objetose sistemasde bancode dados. Entretanto,apesarda

proximidadeemseusobjetivosfinais,asduasabordagensdesoluções— delinguagensedemodelos

— estavambemdistantesnaquelemomento,emmeadosdadécadade1980.

De um lado,sistemasdebancodedadosatendiamàsnecessidadesdasaplicaçõesquemanipu-

lavam dadosnosmaisdiversostipos de sistemasde processamentode informação.Estessistemas

ofereciamo armazenamentopersistentedosdados,ouseja,osdadosregistradosnosistematinham

um períodode vida queseestendiaalémdo períodode vida dosprocessosqueos manipulavam.

Em um programaorientadoa objetos,variáveis tipicamenteseextingüemcomo final daexecução

do programa.Sistemasdebancodedadostambémerameficientesemofereceraramzenamentoefi-

cienteparagrandesvolumesderegistros,muitomaioresqueacapacidadedememóriaprincipaldos

Page 14: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

computadores.

Outroaspectobematendidoporsistemasdebancodedadosreferia-seaooferecimentodemeca-

nismosdealtonível paraa interaçãocomusuários,taiscomoadefiniçãode linguagensdeconsulta

declarativasemecanismosparaageraçãode formulários deinteração.

A operaçãodebasesdedadosemambientesdistribuídosjá apresentava soluçõessoba formade

sistemasde banco de dadosdistribuídos. Mesmoquea soluçãonãofossea ideal, umavez que

osproblemasdeambientescombasesdedadosheterogênease ambientesmultidatabasesaindasão

objetosde estudo[23], eramuito maisdo queoferecidopor qualquerlinguagemde programação.

Outroaspectomelhoratendidopor sistemasdebancodedadoseraa questãodo suportea múltiplos

usuáriosemacessoconcorrenteàsbasesdedados.

Sistemasde bancode dadostambémofereciammecanismosinteressantesde manutençãode

consistênciadosdados,comoosmecanismosdecontrolede transaçõesatômicas; de recuperação

dedadosem casosde falhas;e sistemasde regras(triggers) paraa avaliaçãodecondiçõesdurante

a manipulaçãode dadosquepermitiam“disparar” procedimentosde verificaçãoe manutençãoda

consistência.

Acima de tudo, a utilizaçãode sistemasde bancode dadospermitiaqueaplicaçõesalcanças-

sema independênciadedados, ou seja,erapossível implementaraplicaçõessemquefossepreciso

conhecera estruturainternade comoosseusdadosestavam registrados.Duasconseqüênciasdes-

ta propriedadeeramfundamentaisparaa implementaçãodeaplicaçõesemsistemasdeinformação.

Emprimeirolugar, mudançasnaestruturainternadearmazenamentonãoafetavamaimplementação

daaplicação.Em segundolugar, erapossível compartilharosdadosentrediversasaplicações,per-

mitindo a manutençãosimplificadade um único repositóriode dadosparaas aplicaçõesde uma

corporação.

Apesardadistânciaentrelinguagensdeprogramaçãoorientadasaobjetosesistemasdebancode

dados,asvantagensantevistasparaa integraçãoentreasduasabordagenseraevidente.A perspectiva

de seter um modelode objetos,ondeentidadesdo mundoreal pudessemserrepresentadasunivo-

camenteno esquemadabasededadospor umaconstruçãocom alto nível deabstração(o objeto),

pareciaserasoluçãoidealparao problemadogapsemânticoentremodelagenseo mundoreal.

Destaforma,houveumgrandeinvestimentodapartedospesquisadoresdaáreadebancodedados

em se desenvolver modelosintegrandoos conceitosde orientaçãoa objetoscom funcionalidades

de bancosde dados. As motivações,assimcomo as necessidades,parase obter mecanismosde

modelagemdeobjetoserammuitas,comodescritoa seguir [10].

Identificadores de objetos. Em aplicaçõesde engenharia,de projeto e em algumasaplicações

comerciais,a identificaçãode entidadespor valoresde atributos podeserartificial e sujeitaa in-

consistências.Por estemotivo, ter umaidentificaçãoúnica,independentedevaloresdeatributose

gerenciadapelosistema,é importanteparataisaplicações.

Page 15: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

Objetoscompostos. Sistemasdebancodedadosrelacionaisnãolidavamdemodoadequadocom

o conceitode objetosformadospela agregaçãode outrosobjetos. A importânciadesteconceito

já havia sido enfatizadapelo trabalhode Smith e Smith sobreabstraçãode dados,sendoessencial

em sistemasde bancode dadosde apoio a projetosde engenharia.Nestasaplicações,é usuala

necessidadedeseoferecermecanismosparadefinir objetosquecontêmoutrosobjetos,assimcomo

deofereceroperaçõesdeacessoasubcomponentesnashierarquiasquedefinemtaisobjetos.

Referênciase integridade. Composiçãopor agregaçãoé apenasum casoespecialdeumaneces-

sidademaior, queé o estabelecimentodeassociaçõesentreobjetos.É fundamentala capacidadede

seexpressarrelacionamentosgenéricosentreobjetos,com mecanismosadequadosparaseutilizar

estainformação.Adicionalmente,é precisoqueo sistemasejacapazdemantera integridadedessas

referências.

Hierarquiasdetipos. O mecanismodeherançapresenteemlinguagensdeprogramaçãoorientadas

aobjetosdeveseroferecidocomoummecanismodedefiniçãodeesquemasdedadoseobjetos,sendo

importanteparaamaiorpartedasaplicações.

Procedimentosassociados. É interessantequea basedeobjetospossaregistrartantoa estrutura

quantoo comportamentodosobjetosdaaplicação,ondeo comportamentoé expressopelosproce-

dimentos(métodos)quemanipulamo conteúdodosobjetos.Em sistemastradicionais,o comporta-

mentoé relevadoàaplicação.

Encapsulaçãode objetos. Isolara estruturainternadeobjetosdaaplicaçãoé um mecanismoim-

portanteparaobter reuso,inter-operabilidade e modularizaçãodasaplicações.A basede objetos

deve oferecersubsídiosparaqueestemecanismodaslinguagensdeprogramaçãoorientadasa obje-

tosreflita-senosistemagerenciadordabasedeobjetos.

Coleçõesordenadas. Sistemasrelacionaisoperamexclusivamentecom o conceitode conjuntos

(coleçõesnãoordenadas),mashádiversasaplicaçõesondeaordemdoselementosdeumacoleçãoé

importante.Um sistemagerenciadordabasedeobjetosdeve oferecermecanismosadicionaisparaa

representaçãodecoleçõesmaisgenéricasquesimplesmenteconjuntos.

Grandes blocosde dados. Alguns atributosde objetospodemocuparespaçosde armazenagem

muito maior que o espaçousualmenteocupadopela representaçãode valoresliterais. Exemplos

sãoregistrosde textos, imagense sons. O mecanismode BLOBs presentesam algunssistemas

relacionaisestendidos,apesarde permitir o armazenamentodestesvolumesde dados,nãooferece

mecanismosparaa interpretaçãodestesdados,delegandotal tarefa exclusivamenteà aplicação.

Page 16: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

Acessoremoto. Em ambientesde projeto,a operaçãode computadoresem redesé a regra geral

e nãoa exceção.É importantequeum sistemagerenciadordabasedeobjetosofereçamecanismos

eficientesparaacessoremotoaosobjetos,commecanismosdecheckout, locking por períodosque

podemserextensosecheckin deobjetos.

Evoluçãode esquema. Aplicaçõesdeprojeto,maisqueoutras,necessitamfacilidadesparaintro-

duzir modificaçõesno esquemadeobjetosao longodesuaexecução,poisnessetipo deaplicaçãoa

definiçãodoesquemaépartedaatividadedeprojeto.Assim,éimportanteterumsistemagerenciador

dabasedeobjetosnoqualmodificaçõesdeesquemapossamocorrersemmaioresimpactossobreos

dadosjá armazenados.

Interfaces de programação. Em sistemasgerenciadoresdebancodedadostradicionais,a mani-

pulaçãodosdadosocorreatravésdeumalinguagemdeconsulta,nãoprocedimental,semanticamente

distantedalinguagemdeprogramaçãodaaplicação.Nasaplicaçõesutilizandoumsistemagerencia-

dor da basede objetos,ao contrário,é interessantequehajaumamaior integraçãoentrea basede

objetosea linguagemdeprogramaçãoorientadaa objetosusadapelaaplicação,umavezqueambas

adotamo mesmoparadigma.

Múltiplas versões. Em aplicaçõesdeprojetoo conceitodeversõesdosobjetosé essencial,tanto

paraa manutençãoda evoluçãohistóricado projetocomoparaexpressaralternativasconcorrentes

paraos objetosde projeto. É importantequeum sistemagerenciadorda basede objetospermita

expressaressamultiplicidadederepresentaçõesparaummesmoobjeto.

Emboratais motivaçõestenhamsido expostasprincipalmentea partir dasnecessidadesde um

sistemagerenciadordabasedeobjetosparaaplicaçõesdeprojetoemengenharia,claramentediver-

sosdessesmecanismossãointeressantesparaoutrascategoriasdeaplicação.A importânciaemse

obterumacombinaçãodestesnovos mecanismoscom os mecanismostradicionalmenteoferecidos

porsistemasgerenciadoresdebancodedadosfoi logoobservada,motivandodiversaslinhasdepes-

quisacomo objetivo deanalisare proporcomotal integraçãopoderiaocorrer. Afinal, um sistema

gerenciadorda basede objetosincorporandotais mecanismosconstituiuma ferramentapoderosa

paraaplicaçõesfuturaseparaaevoluçãodeaplicaçõestradicionais.

3.3 Protótipospioneiros

Nestaseçãoserãoapresentadosalgunsdosesforçospioneirosno desenvolvimentode sistemas

gerenciadoresqueincorporassem,dealgummodo,o conceitodeorientaçãoa objetos.Algunsdos

primeirosdesenvolvimentosemsistemasgerenciadoresdabasedeobjetosincluemossistemasIris,

ORIONeGemStone[25].

Iris [17] foi umprotótipodesenvolvido naHewlett-Packardparaexplorarasnovasfuncionalida-

desdeumsistemagerenciadordabasedeobjetos.A abordagemadotadaemIris podeserclassificada

Page 17: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

comoumaextensãodesistemasfuncionaisparaorientaçãoa objetos.Entreosobjetivosdo projeto

buscava-seincorporarnovosmecanismosdemodelagemedeconstruçãodetiposdedados,suportea

inferênciasnobancodedados,suportea transaçõeslongaseamúltiplasversõesdasbasesdedados.

Aplicaçõespoderiaminteragircom o sistemagerenciadorda basede objetosatravésde várias

linguagens,queteriamsuasconstruçõesmapeadasparaasconstruçõesinternasdo gerenciadorde

objetos. A arquiteturabásicado sistemaé apresentadana Fig. 3. Parao módulogerenciadorde

armazenamento,umsistemagerenciadordebancodedadosrelacionaldaprópriaHPfoi utilizado.O

sistemafoi implementadoemC emestaçõesdetrabalhoUnix (HP-9000).

ObjectSQL

EditorGráfico

dados estruturados

dados nãoestruturados

tipos, objetos, funções,

consultas, atualizações,otimização, versões

Objetos C Objetos Lisp

C-Iris Lisp-Iris

Gerenciadorde objetos

Gerenciador dearmazenamento

concorrência, recuperação,indexação, buffering,clustering

Figura3: ArquiteturadosistemaIris.

Do pontodevistadaaplicação,trêsabordagensdeinterfaceforampropostasparaestesistema.

A primeiraabordagemrefletiaa interfaceusualparasistemasgerenciadoresde bancode dadosde

então— atravésdecomandosdeumalinguagem,OSQL,embutidosemalgumalinguagemdepro-

gramação.A segundaabordagemapresentava o sistemagerenciadorda basede objetoscomoum

objetoparaaaplicação,queinteragiriacomo sistemaatravésdemétodosaplicadosaoobjeto.Final-

mente,a terceiraabordagemprocurava exploraro conceitodepersistênciadeobjetos,ondeobjetos

daaplicaçãoseriammanipuladospelosistemagerenciadordabasedeobjetosdeformatransparente

parao programador. Um editorgráfico,implementadoemLisp, ofereciafacilidadesparaa criaçãoe

manipulaçãodeesquemasdeobjetos.

AlgumascaracterísticasparticularesdeIris incluíamapossibilidadedeexaminaresquemascomo

quaisqueroutrosdados,a possibilidadedeassociarum objetoa maisdeum tipo, e um mecanismo

simplesdecontroledeversõespor checkout e checkin. Iris deuorigemposteriormentea umproduto

daHP, OpenODB.

ORION [24] foi resultadode um projetodesenvolvido no ProgramaAdvancedComputerAr-

chitecture da MCC (Microelectronics and ComputerCorporation), empresade Austin, Texas. O

Page 18: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

objetivo do projetoerainicialmentesuportarasnecessidadesdemanipulaçãode dadosdeProteus,

umaplataformaparasistemasespecialistas.

ForamimplementadasemORIONfunçõestaiscomocontroledeversõesenotificaçãodemodifi-

cações,objetoscompostoseBLOBs,herançamúltipla,evoluçãodinâmicadeesquemas,gerênciade

transações,consultase armazenamentodedadosmultimídia. Versõesdeobjetose referênciaseram

suportadasatravésdetimestamps.

A arquiteturado sistemaé apresentadana Fig. 4. O sistema,inicialmentemono-usuário,foi

implementadoemCommonLisp paraSymbolics(máquinaLisp) e estaçõesdetrabalhoUnix. Pos-

teriormenteo sistemaapresentouumasegundaversãocommúltiplosclientese umaterceiraversão

commúltiplosservidores.

subsistema dearmazenamento

subsistemade objetos

subsistemade transações

de mensagensmanipulador

Figura4: ArquiteturadoSistemaORION.

A interaçãodaaplicaçãocomORION foi definidaatravésdemensagens,quepoderiamsermé-

todosdefinidosporusuários,paraadefiniçãoearmazenamentodedados;mensagensdeacesso,para

a recuperaçãoe atualizaçãodevaloresdeatributosdeumaclasse;e funçõesdefinidaspelosistema,

pararealizartarefastaiscomodefiniçãodeesquemas,gerênciadetransações,criaçãoe remoçãode

instâncias.

As principaisênfasesno projetoORION foram na implementaçãode basesdistribuídase em

evoluçõesde esquema[4]. Duasformasde evoluçãode esquemaeramsuportadas:mudançasna

definiçãodeclasses(atributosemétodos)emudançasnaestruturadeclasses(classeseassociações).

O sistemaORIONdeuposteriormenteorigemaum sistemadebancodedadoscomercial,Itasca

[3]. Itascaapresentaumaarquiteturademúltiplosclientesemúltiplosservidores,adotandoformatos

neutrospararepresentaçãointernadedados.Assim,dadosdo sistemapodessercompartilhadospor

aplicaçõescominterfacedeprogramaçãoC++, C, CLOS,Lisp eAda.

GemStone[7, 8, 14] foi um produtoda Servio Logic Corporationque estendeua linguagem

Smalltalkparaincorporarmanipulaçãode basesde dados.A linguagemresultante,OPAL, imple-

mentava um modelodedadosbaseadoemteoriadeconjuntos,STDM (SetTheoretic Data Model).

Entreoutrascaracterísticas,GemStoneincorporava o conceitodehistóriadeobjetos.

UmavisãosimplificadadaarquiteturadosistemaGemStoneéapresentadanaFig. 5. Gemofere-

cia compilaçãodeprogramasemOPAL, verificava autorizaçãodeusuários,e ofereciaum conjunto

pré-definidode classese métodosem OPAL parausoda aplicação.Casoatuasseno servidor, era

Page 19: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

Gem

Stone

sessão sessão

interpretador,compilador

concorrência,armazenamento,transações, autorização,replicação, recuperação

Figura5: ArquiteturadoSistemaGemStone.

tambémo móduloencarregadopor controlarconexõescom assessõesclientes,recebendobyteco-

desparaum submódulointerpretador. Opcionalmente,estemódulopoderiaseralocadoà máquina

cliente.

Stoneerao gerenciadordedados,móduloondeasfuncionalidadesdesistemasdebancodedados,

taiscomoentradaesaídadedisco,controledeconcorrência,serviçosdetransaçãoederecuperação,

eramefetivamenteimplementadas.

O protótipoinicial de GemStone,suportandoa linguagemOPAL, foi implementadoem hard-

ware específico.Posteriormente,o sistematambémfoi oferecidocompossibilidadedeintegraçãoa

aplicaçõesemC++. Assim,GemStonefoi o primeirosistemaa oferecerintegraçãoatravésdemais

deumalinguagem.

4 Manipulação e implementaçãodegerenciadoresdebasesdeobjetos

Nestaseçãosãodescritosos aspectosdo gerenciamentodedadosquesãoespecíficosparasis-

temasgerenciadoresdebasedeobjetos[10]. Inicialmenteé apresentadaumavisãoconceitualdos

mecanismosde manipulaçãode objetos,seguidapor umaapresentaçãodosprincipaisaspectosde

implementação.

4.1 Objetoseatributos

Naorientaçãoaobjetos,objetostêmumaidentificaçãoúnicaquenãodependedevaloresdeseus

atributos. Estaidentificaçãode objeto(OID) é utilizadaparareferênciasa objetos,tanto internas

como(possivelmente)externas.Destemodo,limitaçõesrelacionadasao processamentode chaves

(primárias,“estrangeiras”)em sistemasde bancode dadosrelacionaisnão estariampresentesem

sistemasdebancodedadosorientadosaobjetos.

Não obstante,o conceitode um atributo chave estápresenteem muitasaplicações.Destemo-

do,apesardenãoserum conceitodaorientaçãoa objetos,váriossistemasgerenciadoresdebasede

objetosoferecemadefiniçãodeatributoschavescomoummecanismodeacessoadicionalaoidenti-

ficadordeobjeto,maispróximodacompreensãodosusuáriose oferecendoasmesmasrestriçõesde

Page 20: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

integridadepresentesemsistemasgerenciadoresdebancodedadosrelacionais.

Atributosdeobjetosestãopresentesemqualquersistemagerenciadordebancodedados,sendo

queem sistemastradicionaisusualmentetais atributosestãorestritosa valoresliterais e atômicos.

Uma diferençaem sistemasgerenciadoresde basede objetosestána maior flexibilidadeoferecida

paraadefiniçãodestesatributos,quepodemsimplesoucomplexos.

Atributossimplessãoaquelescujosvaloressãoliterais.Emmuitasaplicações,valoresmultimídia

sãoconsideradosatributossimples,ondeo BLOB referenteaoobjetomultimídiaé consideradoum

valor literal, atômicoe não-estruturado.Um sistemagerenciadorde bancode dadosmultimídia

é essencialmenteum sistemagerenciadorde basede objetosondeos dadosmultimídia recebem

tratamentodiferenciado,nãosendoconsideradossimplesBLOBs literais.

Atributos complexos podemser de três tipos: referências,coleçõesou virtuais. Referências

ou associaçõesestabelecemrelacionamentosentreobjetos,tendocomovaloresidentificadoresde

objetos.Um aspectofundamentalemsistemasgerenciadoresdebasedeobjetosé a manutençãoda

consistênciaentrereferênciasaobjetos.

Atributoscomplexos do tipo coleçãosãoutilizadosparadefinir conjuntos,listasou arranjosde

valores. Coleçõessãoexemplosde tipos parametrizadospresentesem sistemasgerenciadoresde

basedeobjetos;ostrêstiposcitadossãoasconstruçõesparametrizáveis fundamentais,porémoutras

podemestarpresentesemdistintasimplementações.

Atributosvirtuaisou derivadossãoaquelescujosvaloresnãoestãoexplicitamentearmazenados

nabasededados,masao invéssãocomputadosatravésdeprocedimentos.Em geral,taisatributos

sãodefinidoscomoread-only, sendoraroo oferecimentodemecanismosparaatualizarseusvalores.

4.2 Aspectoscomportamentais

Um sistemagerenciadordebasedeobjetosprecisaoferecermaisquesimplesmentenovos me-

canismosde estruturaçãode dados. Além da orientaçãoa objetosestrutural,é precisosuportara

orientaçãoa objetoscomportamental[1], quepodeserobtidaatravésdadefiniçãodemétodos,pro-

cedimentosquepermitemencapsulara semânticade um objeto. Em geral,atributosde um objeto

sãopropriedadeprivadae exclusiva do objeto,sendoqueapenasatravésdosmétodospúblicosa in-

formaçãoassociadaaoobjetopodesermanipulada.Estemecanismodeencapsulaçãoéfundamental

paraatingir independênciadedadosemsistemasgerenciadoresdebasedeobjetos.

A definiçãoestritadeencapsulaçãoexigeasatisfaçãodetrêscritérios:

1. Apenasmétodospodemserpúblicos;

2. Métodossãodefinidosemumalinguagemprocedimental;

3. Métodospodemmanipularapenasdadosdopróprioobjeto.

Estadefiniçãoé satisfeitaemSmalltalk. Há no entantodiversasoutraslinguagensdeprogramação

orientadasa objetose sistemasgerenciadoresde basede objetosquerelaxamumaou maisdestas

Page 21: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

restriçõesparaoferecerum melhordesempenhodeexecuçãoàscustasdeseaceitarum graumenor

deencapsulação.

A representaçãodecomportamentoemsistemasgerenciadoresdebasedeobjetospermitedefi-

nir dadosativos,queincluemosatributosderivados,regrase agentes.Atributosderivadosjá foram

apresentadosanteriormente.Regrasou triggerssãodefinidoscomoparespadrão-ação,ondeasações

sãoativadasquandomodificaçõesàbasededadostornamverdadeiroo predicadoexpressonopadrão

da regra. Restriçõesde integridadesãocasosparticularesde regrasondeasaçõesestãolimitadas

a sinalizaçõesdecondiçõesdeerro. Agentessãocaracterizadospor processosassociadosaosiste-

magerenciadordebasedeobjetos,porémindependentes,podendorealizaraçõesqueextrapolamo

ambientedabasededados— porexemplo,enviar umamensagemporcorreioeletrônico.

4.3 Tipose herança

Objetoscomestruturasimilar sãoagrupadosem classes,sendoqueo tipo do objetoé definido

atravésde umadeclaraçãode classe.Usualmente,tipos sãocriadosatravésde umalinguagemde

definiçãodedadosou, maisespecificamenteemsistemasgerenciadoresdebasedeobjetos,através

de umalinguagemde definiçãode objetos. Uma diferençaentreuma linguagemde definiçãode

dadoseumalinguagemdedefiniçãodeobjetoséqueestaúltimapodepermitir, comojá observado,a

definiçãodeprocedimentosassociadosà estrutura,comono casodeatributosvirtuais,incorporando

assimaspectosdelinguagemdemanipulaçãodedados.

Um conceitoavançadoquepodeestarpresenteum umalinguagemdedefiniçãodeobjetosé o

conceitodeherança,quepermitedefinirnovostiposdeobjetosapartirdetiposjá existentes.Herança

é um mecanismodeimplementaçãodo conceitodegeneralização,importanteparabancosdedados

comoressaltadono trabalhodeSmithe Smithsobreabstraçãodedados.Osnovossubtipospodem

serdiferenciadosdostiposdosquaisforamderivadospormecanismostaiscomoespecialização,com

o acréscimode novos atributos,ou sobrecarga (overloading), ondeoferece-seumaimplementação

diferenciadaparaum métodojá existenteno tipo ancestral.Destemodo,o esquemade tipos de

objetosdefineumaárvoreouhierarquiadetiposrelacionados.

Herançamúltiplarefere-seaomecanismodeherançaatravésdoqualumnovo tipo deobjetopode

serderivadoa partir demaisdeum tipo ancestral.Entretanto,a semânticadeherançamúltipla nem

sempreéclara.Ademais,a implementaçãodeherançamúltipla requercuidadosadicionaisparalidar

comsituaçõescomoo conflito deresoluçãoparaatributosou métodos.Quandoherançamúltipla é

suportada,o esquemadetiposdeobjetospassaaserorganizadocomoumamalhaougrafodetipos.

Emumsistemagerenciadordebasedeobjetos,amodificaçãodeumtipo implicanamodificação

do esquemadedados.Em um sistemagerenciadordebancodedadostradicional,modificaçõesno

esquemaeramaçõesqueafetavamextremamenteasaplicações,muitasvezesnecessitandodeproces-

samentooff-line paraconverterosdadosdeumesquemaparao outro.Emumsistemagerenciadorde

basedeobjetos,estaevoluçãodeesquemasdeve ocorrerdeformamaisnatural.Sãotrêsascatego-

riasdemodificaçõesqueimplicamemevoluçãodo esquema:mudançasemcomponentes(atributos

Page 22: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

ou métodos)deum tipo, mudançasnahierarquia(ou malha)detipos,ou mudançasnadefiniçãode

tipos,atravésdemodificaçãodenome,inclusãoou remoçãodetipos.

4.4 Consultas

Um dosprincipaisaspectosa seconsiderarna manipulaçãode basesde dadosé o mecanismo

oferecidoparaexpressaroperaçõessobreosdados.Em geral,aplicaçõesusandobasesdedadossão

desenvolvidasemalgumalinguagemdeprogramaçãoe integramexpressõesdemanipulaçãodeda-

dosaosprogramas.A diferençaentreestaslinguagensdeprogramaçãoedemanipulaçãodedadosdá

origemaoproblemade“descasamentodeimpedâncias”(impedancemismatch) entreaslinguagens,

queéendereçadodemaneirasdistintasemdiversossistemasgerenciadoresdebasedeobjetos.Entre-

tanto,nenhumadestasabordagens,descritasa seguir, consegueeliminarcompletamenteo problema

dodescasamentodeimpedânciasentreasaplicações.

Umaestratégiadeintegraçãodelinguagenséo querydownload, ondetodososobjetosrelevantes

paraa operaçãoda aplicaçãosãorecuperadosda basede dados,traduzidosparaa representação

adequadaparaa linguagemde programação,manipulados,re-traduzidose armazenadosde volta à

basede dados. Uma variantedesteesquemalimita a operaçãoa um único objeto por interação,

com o objetivo de maximizara concorrênciade acessoà basede dados.Outraalternativa aindaé

armazenarobjetosdalinguagemdeprogramaçãocomoBLOBsnabasededados,quenestasituação

nãoconterianenhumainformaçãosobreaestruturadoobjeto.

Em outradireçãodeintegração,algunssistemasestendemlinguagensdemanipulaçãodedados

comconstruçõesprocedimentais.SybaseadotouestaabordagemaoestenderSQL comconstruções

decontroledeexecuçãoparasistemasrelacionais.Outrossistemasoferecemnovos tiposdedados

nalinguagemdeprogramaçãopararefletir tiposeoperaçõesreferentesàbasededados.

Umaabordagemmaistransparentede integraçãoentrelinguagensdeprogramaçãoorientadasa

objetose sistemasgerenciadoresde basedeobjetosé a incorporaçãodemecanismosdepersistên-

cia de objetosà linguagemde programação.Nestasituação,a basede dadosé utilizadade forma

implícitae transparentecomomeiodemanutençãodoestadodeobjetosdaaplicaçãoentresessões.

Métodosdeespecificaçãodepersistênciaemsistemasgerenciadoresdebasedeobjetospodemser

portipo,porinvocaçãoexplícitaouporreferência.Naespecificaçãoportipo,apenasalgunstipospré-

definidossãopersistentes.Umacríticaa estemodeloé quepersistênciae especificaçãodetipossão

conceitosortogonais,e queassociarpersistênciaa apenasalgunstiposfereessaortogonalidade.Na

especificaçãodepersistênciapor invocaçãoexplícita, a aplicaçãosolicitaexplicitamenteaosistema

gerenciadordebasedeobjetoso armazenamentopersistentedoobjetoemquestão.Naespecificação

porreferência,umoumaisobjetos(asraízes)sãodeclaradoscomopersistentes,etodososobjetospor

elesreferenciadostornam-seautomaticamentepersistentes.Esteé o mecanismomaistransparente,

masqueexigemaisemtermosdeprocessamentodapartedosistemagerenciadordebasedeobjetos.

Outro aspectoimportanterelativo a consultasem sistemasgerenciadoresde basede objetos

refere-seaotipo deresultadoqueumaconsultagera.Em sistemasrelacionais,existeum únicotipo

Page 23: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

(a relação);portanto,operandose resultadosdeconsultassãorelações.Em sistemasgerenciadores

de basede objetos,o graude liberdadeé maior. Alguns sistemaspodemlimitar a respostaobtida

a algunstiposespecíficos,emboraa tendênciasejapermitir a manipulaçãoderesultadosabertos—

literal, objeto,coleçõesdeobjetosouatémesmorelações(arranjostabularesdedados).

Consultasenvolvendomúltiplosobjetosnecessitamdealgumaformademecanismode junção.

Duasvariantesda operaçãode junçãoem sistemasgerenciadoresde basede objetossãoa junção

por referênciae a junçãopor valor. A junçãopor referênciautiliza associaçõesdefinidasnabasede

objetosparaobterobjetosassociados.A junçãopor valor, assimcomoa junçãodesistemasrelacio-

nais,é realizadasobrevaloresdeatributosquecompartilhamum domíniocomum,nãonecessitando

portantodeassociaçõesexplícitasparasuarealização.

4.5 Concorrênciae recuperação

Como dadosem uma basede dadossãopersistentese usualmentecompartilhadospor várias

aplicaçõese/ouusuários,é precisoquehajamecanismosparacontrolede acessoconcorrente,de

recuperaçãodedadosemcasodeoperaçõesfalhase demanutençãode integridadedosdados.Em

um sistemagerenciadordebasedeobjetos,diferentementedo queocorreemsistemastradicionais,

umaaplicaçãomanipulade forma naturaldadostransientese dadospersistentes,o quepodecriar

dificuldadesadicionaisnamanutençãodeconsistênciadosdados.

Operaçõessobreobjetospersistentessãousualmentedefinidasno escopode transações,assim

comoocorreem sistemasgerenciadoresde bancode dadostradicionais. Uma possível diferença

é quesistemasgerenciadoresde basede objetospodem(e geralmenteo fazem)incluir transações

longase,emalgunscasos,transaçõesaninhadas.

Versõesoferecemum mecanismoalternativo paracontrolede concorrência.Atravésdo meca-

nismodeversõeslibera-seo sistemademanterumaúnicacópiadeum objetonabase,o quealivia

umaeventualdegradaçãoquepoderiaocorrercomaincorporaçãodetransações(econsequentemente

locks) longas.Comversões,evoluçõesalternativasnosestadosdosobjetossãopermitidas.Um con-

ceitorelacionadoa esteé configuração,um conjuntodeversõesdeobjetosmutuamenteconsistente.

Configuraçõesequivalemasnapshots(ouvisõesinstantâneas)consistentesdabasedeobjetos.

4.6 Implementaçãode identificadores

Um dosfatoresmaisimportantesnodesempenhodeumsistemagerenciadordebasedeobjetosé

a formadeimplementaçãodarepresentaçãodeseusobjetos— comosãoarmazenados,identificados

e recuperadosdabasededados.

A representaçãode identificadoresdeobjetospodeserfísica ou lógica. A representaçãofísica

contémo endereçorealdo objeto,comoocorreemlinguagensdeprogramaçãoorientadasa objetos

ondeobjetossãoidentificadospor suaposiçãonamemória.A representaçãológicaenvolve algum

mecanismodemapeamentoentreumarepresentaçãointernaeo endereçodoobjeto.

Page 24: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

As quatroabordagensbásicasdeimplementaçãodeidentificadoressãoutilizaçãosimplesdoen-

dereço,um identificadorfísico; utilizaçãodeendereçosestruturados,quecontémumacomponente

lógicae outrafísica;utilizaçãodesurrogates, identificadoreslógicosquesãomapeadosparaende-

reçosfísicosatravésde um índiceou de umatabela;e a utilizaçãode surrogatestipados,ondea

informaçãosobreo tipo doobjetoé incluídano identificadorlógico.

A unicidadedeumidentificadordeobjetoé umaspectofundamentalparaamanutençãodacon-

sistênciade umabasede objetos. Identificadoresde objetossãoutilizadostantopelasaplicações

comopelaprópriabasede objetos,pararepresentarassociaçõesentreobjetos. O mecanismopa-

ra garantirunicidadepodevariar entreimplementaçõesdistintas. Alguns sistemasgarantemque

identificadoresdeobjetosremovidosnãosãoreaproveitados;outrosbuscamgarantirunicidadeentre

múltiplasbasesdeobjetosinterligadasemrede,incorporandoo endereçodamáquinaservidorano

identificadordeobjeto.

Identificadoresdeobjetospuramentefísicos,por endereços,oferecemo melhorpotencialdede-

sempenhopararecuperaçãode objetos. Porém,fixar a posiçãodo objetona basetorna-amenos

flexível, dificultandooperaçõescomorelocaçãode objetos. A relocaçãopodesernecessáriopara

ampliaro espaçodearmazenamentoassociadoa um objetoou realizarumacompactaçãoou reclus-

tering dabasedeobjetos.Porestemotivo, endereçosfísicosnãosãoutilizadosnaprática.ONTOS

e Objectivity/DB utilizam endereçosestruturados,GemStonee POSTGRESutilizam surrogates, e

ORIONe Itascaadotamsurrogatestipados.

Além da referênciaa objetospor identificadoresde objetos,diversossistemasoferecema pos-

sibilidadede selocalizarum objetoatravésde atributoschaves. Em geral,a implementaçãodeste

mecanismoemsistemasgerenciadoresdebasedeobjetosé similar àqueladesistemastradicionais,

ondevaloresdeatributoschavessãomapeadosa identificadoresdeobjetosatravésde índiceshash

ouB-trees.

4.7 Swizzling

Swizzlingé o processodeconversãoentrea representaçãopersistentedo objeto,nabasedeob-

jetos,e suarepresentaçãodinâmica,nalinguagemdeprogramaçãoorientadaa objetosadotadapela

aplicação,ondeo objetoseráefetivamentemanipulado.Evidentemente,é um processoimportante

namanipulaçãodeobjetos,sendodeterminanteparao desempenhodo sistemagerenciadordebase

deobjetos.

A conversãoquedeve ocorreratravésdeswizzlingenvolve tipicamentetraduçõesdereferências

e, eventualmente,modificaçõesna estruturae no formatode representaçãode dados. Referências

dinâmicassãotipicamenteponteirosnalinguagemdeprogramação,enãoidentificadoresdeobjetos.

A traduçãode identificadoresde objetosparareferênciasa objetosna linguagemde programação

é a principal atividadedesempenhadaduranteo swizzling. Mudançasna estruturapodemocorrer

atravésda incorporaçãodecabeçalhose camposparautilizaçãoemtempodeexecução.Mudanças

narepresentaçãointernadosdadospodemsernecessáriasprincipalmentequandoabasedeobjetosé

Page 25: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

compartilhadaemambientesheterogêneos.

Swizzlingpodeocorrerem momentosdistintos,de acordocom a implementaçãoadotadapara

estemecanismo.Tipicamente,umadasquatroabordagensaseguir éadotada:

1. A conversãoocorrenomomentoemqueo objetoétransferidodabasedeobjetosparao espaço

dememóriadaaplicação(checkout).

2. A conversãoocorrenomomentoemqueo objeto,já transferidoparaamemória,éreferenciado

pelaprimeiravezpelaaplicação.

3. A conversãoocorrenomomentoemquea aplicaçãoasolicitaexplicitamente.

4. A conversãoocorrequandonãoépossível reaproveitarumendereçofísicodesignadoanterior-

mente,o qualé registradotambémnabasededados.

Estaúltima abordagemé adotadaem ObjectStore,quebuscaexplorar a grandecapacidadede

endereçamentovirtual dosprocessadoresmodernosparaalocarum objetosempreà mesmaposição

dememóriavirtual.

4.8 Granularidade de transferência

Basesde objetospodemtransferirinformaçãoentreo disco e a memóriaem unidadesde di-

mensão,ou granularidades,distintas.Tipicamente,asgranularidadesadotadassãopáginas,objetos

ou resultadosdeconsultas.

A abordagemmaisutilizadanasimplementaçõesde sistemasgerenciadoresde basedeobjetos

é passarparaa aplicaçãoumaimagemdo disco,adotandogranularidadede umapágina(Fig. 6).

Estaabordagemsimplifica o trabalhodo servidorde páginas,ondeo processamentoserámínimo.

Entretanto,o tráfego dedadospelaredeé ampliado,poisumapáginapodecontermaisinformação

queasolicitadapelaaplicação.

Quandoa granularidadeadotadaé um objetoou um resultadode consulta,o tráfego de dados

pelaredeé reduzido,poisgarante-sequea aplicaçãoestarárecebendoapenaso quefoi solicitado.

Entretanto,exige-senessassituaçõesqueo servidordeobjetosjá realizealgumprocessamentosobre

a basede objetos.Seo sistemagerenciadordebasedeobjetosfor compartilhadopor muitasapli-

cações,umaltonúmeroderequisiçõessimultâneaspodeter impactosignificativo nodesempenhodo

servidor.

A abordagemde imagemdo disco,emboraeficiente,podeapresentarriscosà integridadedos

dadospresentesna página.Esteriscoestápresenteprincipalmentequandoa aplicaçãoutiliza uma

linguagemdeprogramaçãoondeé permitidoaosprogramasexaminare alterarqualquerposiçãode

seuespaçode memória— comoocorreem C++, por exemplo. Em tais situações,serianecessário

queo sistemagerenciadordebasedeobjetosimpusessemecanismosadicionaisdemanutençãoda

integridadedosdadosemumapáginamanipuladapelaaplicação,evitandosuadegradaçãoatravésde

Page 26: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

página

objeto

página

objeto

Área de memória da aplicação

aplicação

Área de armazenamento do servidor

(1)

(2)(3)

(4)

Figura6: Abordagemde imagemdo discocom servidorde páginas:(1) transferênciade página(checkout) do servidorparacliente; (2) swizzling; (3) manipulaçãodo objeto pela aplicação;(4)reconversãoparaformatododiscoe transferênciadepágina(checkin) doclienteparao servidor.

açõesinadvertidasoumaliciosas.Entretanto,asimplementaçõescorrentesdesistemasgerenciadores

debasedeobjetosnãoincorporammecanismoscomestefim.

Citou-secomoumadasatividadesduranteo swizzlinga incorporaçãodeinformaçãoparamani-

pulaçãode objetosem tempode execução.Informaçãotípica de run time paraum objetoinclui o

mapeamentodeum identificadordeobjetoparaendereçofísico,o registrodequaisobjetosestãona

memóriadaaplicação,manutençãodedirty bits paraindicarseobjetosforamatualizadosou apenas

consultados,e contadoresde referênciasparasustentaratividadesinternasde swappinge garbage

collection. Abordagensparamanipulaçãodestetipo deinformaçãoincluemamanutençãodetabelas

emmemória,utilizaçãodedescritoresdeobjetose incorporaçãodestatusbits nopróprioobjeto.

4.9 Atrib utos

A forma de implementaçãomaissimplesparaa representaçãode atributosde um objetoseria

utilizar relações,comcamposdedimensãofixa, comofoi propostopor algunsprotótiposiniciais de

sistemasgerenciadoresde basede objetos. Entretanto,estaalternativa limita severamentea flexi-

bilidadede representaçãoparaobjetos,nãopermitindooperarde modoeficientecom atributosde

dimensõesvariáveis, com coleçõescomquantidadevariável de elementos,a evoluçãode esquema

pelainclusãodeatributoseo armazenamentoeficienteparaatributosnãoutilizadosporumobjeto.

Listasdepropriedadesoferecemum mecanismomaisversátildeimplementaçãodeatributosde

umobjeto.Umalistadepropriedadesécompostaporelementoscontendotrêscampos,representando

um identificadordeatributo, o tamanhodo valor do atributo e o valor. Estemecanismoé flexível,

Page 27: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

porémdemandaum maiorgraudeprocessamentodapartedosmétodosquemanipulama estrutura

internadoobjeto.

Herançaéoutroaspectoquetrazimpactonarepresentaçãodeatributos.Emsistemasondeapenas

herançasimplesé permitida,o mecanismode lista depropriedadesé aindaadequado.Nestecaso,

a lista depropriedadesdeum objetoé compostapelaconcatenaçãodosatributosdo tipo do objeto

comosatributosdotipo deobjetoancestral,eassimrecursivamenteatéencontrarosatributosdotipo

deobjetoqueé a raiz dahierarquia.Paralidar comherançamúltipla,mecanismosmaiselaborados

sãonecessáriosparaestabelecerpriridadesnaconcatenaçãoeresolverconflitosentretiposancestrais

comatributosdemesmonome.

Manipulaçãodecoleçõesé outroaspectocrítico emsistemasgerenciadoresdebasedeobjetos,

sendoessemecanismoamplamenteutilizadonadescriçãodeestruturadeatributosdeobjetosenore-

tornodeconsultas.Comocoleçõespodemserdemasiadamenteextensase/ouconterobjetosgrandes,

é precisooferecermecanismosquepermitammanipulá-lasdemodomaiseficiente.O principalme-

canismoadotadoéautilizaçãodeobjetositeradores.Um iteradoréumobjetotemporárioquecontém

referênciasaosmembrosdacoleção,oferecendométodostaiscomoproduziro próximoelementoda

coleção(lista)oubuscaro � -ésimoelementodacoleção(arranjo).

A manipulaçãode atributos do tipo BLOB é usualmenteimplementadaatravés de interfaces

stream. Assimcomoiteradores,um streampermitereferenciarobjetossemqueessesestejamcom-

pletamenteconcretizadosemmemória,commétodosparaposicionar, ler eescrever blocosdedados

binários.Alternativasparaa manipulaçãodeBLOBs incluema paginaçãopor demandae utilização

depiecestreams. Napaginaçãopordemanda,aaplicaçãotemo objetocompletoemmemóriavirtual,

sendoquepáginasdo objetosãotransferidasparaa aplicaçãoà medidaqueseusbytessãoreferen-

ciados. Um piecestreamé um mecanismode streamcom facilidadesadicionaisquepermitema

atualizaçãodeconteúdodoBLOB, taiscomoinserçãoe remoçãodebytesnaposiçãocorrente.

4.10 Associações

A implementaçãoderelacionamentosnãoprecisarefletir diretamentea formacomoa aplicação

osdefineconceitualmente.A estratégiade implementaçãopodedependerdamultiplicidadedasas-

sociações.Porexemplo,umrelacionamentoum-para-muitospodeserrepresentadoporcontiguidade

física,por indexação,por ligaçãoouatravésdeobjetosintermediárioscriadospelosistemagerencia-

dordebasedeobjetos.

Um tipo de associaçãoimplícita entreos elementosde umacoleçãoé a ordenação.Apesarde

estarpresenteemmuitasaplicações,nemsempreestemecanismoésuportadoemsistemasgerencia-

doresdebasedeobjetos,ondeapenascoleçõesdo tipo conjunto(assimcomorelações,semcritérios

deordenaçãoentreelementos)sãosuportadas.A importânciadaordenaçãodacoleçãoéreconhecida

de longa data; o modeloCODASYL definia associaçõesde ordenaçãomanual(critério de orde-

naçãoestabelecidopelaaplicação)e automática(estabelecidopelosistemasobrealgumatributo da

coleção).

Page 28: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

Outroaspectoimportantenaimplementaçãodeassociaçõesé a manutençãodaintegridaderefe-

rencial. O mecanismomaisamplamenteadotadoparaestefim é a utilizaçãode paresde atributos

inversos.Assim, sea aplicaçãodefineumareferênciade um objeto � paraum objeto � , denotada

� � � , o sistemagerenciadordebasedeobjetoscria internamentea referência����� . Alternati-

vamente,o sistemapodeimplementarum contadordereferênciasparao objeto,sópermitindosua

remoçãoquandoo valor destecontadorfor nulo.

4.11 Clustering

A incorporaçãodo conceitode objetocomplexo em sistemasgerenciadoresde basedeobjetos

introduzgrandeflexibilidade de estruturaçãodosdados. Por outro lado, a recuperaçãode objetos

complexos podeintroduzir degradaçãono desempenhodos sistemas. Afinal, o conteúdode um

objetocomplexo é compostopor outrosobjetos,quepotencialmentepodemestardistribuídosem

diversaspáginasespalhadaspelodisco. Assim,recuperaro conteúdodeum objetocomplexo pode

acarretaremváriassolicitaçõesdepáginasdoservidorparao cliente.

Clusteringé um mecanismoquepodeseradotadoparaminimizar estadegradaçãono desem-

penho.Simplesmentecolocado,o conceitodeclusteringé adotaralgumaestratégiadealocaçãode

objetosnosistemadearmazenamentodemodoaminimizaraquantidadedepáginasnecessáriaspara

manipularobjetos.As estratégiasdeclusteringmaisutilizadassão:

Objetoscomplexos: adotao relacionamentode agregaçãoparaidentificarobjetosquedevem ser

armazenadospróximos— preferencialmente,namesmapáginaouempáginascontígüas.

Referências: adotaa existênciade relacionamentosquaisquerentreobjetosparadirecionara pro-

ximidadede armazenamento.A estratégiade clusteringpor objetoscomplexos é um caso

especialdestaestratégia.

Tiposdeobjetos: adotao critériodeaproximaro armazenamentodeobjetosdeumamesmaclasse.

Esteéumcritérioequivalenteaoadotadopelamaiorpartedossistemasgerenciadoresdebanco

dedadosrelacionais,ondetuplasdeumamesmarelaçãosãoarmazenadascontigüamente.

Índices: adotao valordeumatributocomocritériodeordenaçãodosobjetos,eaproximao armaze-

namentodeobjetoscomvalorespróximosnesteatributo.

Definiçãodo usuário: utiliza um indicativo da aplicação,em tempode execução,parabuscara

melhorposiçãodearmazenamentodeum objeto. Um exemplode implementaçãoutiliza um

identificadordeumobjetoexistentecomoparâmetronacriaçãodeum novo objeto,indicando

queosdoisdevemserarmazenadosemposiçõespróximas.

A seleçãode um critério de clusteringdeve dependerda forma de recuperaçãomaisadotada

parao objetona aplicação.Por exemplo,em sistemasCAD provavelmentea estratégiadeobjetos

Page 29: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

complexosseriaa preferencial,enquantoqueparaumaaplicaçãocomercial,envolvendoseqüências

derecuperaçõesemordemalfabética,a estratégiadeíndicesseriaamaisadequada.

4.12 Evoluçãodeesquemas

Em grandepartedossistemasgerenciadoresde basede objetos,o esquemade dadosé em si

armazenadocomoum objeto. Entretanto,esteobjetonemsempreé diretamentemanipulável pela

aplicaçãoemtempodeexecução;restriçõesdeacessosãoimpostascomoformademanutençãoda

integridadedabasedeobjetos.Mudançasnoesquemadevemobedecera taisrestrições,determinan-

docomoesquemaspodemevoluir.

Há quatroestratégiasbásicasque determinamcomo um esquemapodeevoluir: tipo de uma

escrita,atualizaçãoimediata,atualizaçãoposterior, e mapeamentodeesquema.Taisestratégiassão

brevementeapresentadasaseguir.

A estratégiade tipos de uma escrita(ou tipos write-once) é a abordagemmais simples,que

determinaquequalquertipo que já contenhapelo menosumainstâncianãopodesermodificado.

Modificaçõesno tipo, tal comoa inclusãode um novo atributo, deve serexplicitamentedesempe-

nhadapelaaplicaçãoatravésdacriaçãodeumnovo tipo ecópiadoconteúdodeobjetosjá existentes

paraobjetosdonovo tipo.

A estratégiade atualizaçãoimediataé a mais adotadaem sistemasgerenciadoresde basede

objetoscorrentes. Nestaestratégia,qualquermodificaçãono tipo de um objeto é imediatamente

refletidaparaosobjetos.Assim,a inclusãodeum novo atributo emum tipo fariacomquetodosos

objetosdaqueletipo tivessemsuaestruturaatualizadaoaraconterum campoadicionalcontendoo

valornulo.

Na estratégiadeatualizaçãoposterior, a estruturadeum objetocujo tipo tenhasidomodificado

nãoé alteradaa nãoserno primeiromomentoemqueo objetoé acessadoapósa alteraçãodo tipo.

Nestaabordagem,é precisoque o sistemagerenciadorde basede objetosmantenhainformação

históricasobrea evoluçãode esquemase sobreprocedimentosde conversãoparapodermantera

consistênciadabase.

A estratégiademapeamentodeesquemaequivaleaumaestratégiadeatualizaçãoposterioronde

o momentodeatualizaçãoé postergadoindefinidamente,atéo momentoemqueumareorganização

da basede objetossejaexplicitamentesolicitada. Nestaestratégiaé precisomanteros mapasde

conversãoentretodasaspossíveis versõesdeesquema,o quepossibilitariaqueusuáriospudessem

ter visõesde um mesmoobjetosobdiferentesversõesde esquema.Entretanto,a implementação

de tal estratégiaseriaextremamentecomplexa, nãotendosido implementadaem nenhumsistema

gerenciadordebasedeobjetosatéo momento.

Page 30: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

5 Exemplos

Nestaseçãoserãodescritosalgunsexemplosdesistemasgerenciadoresdebasedeobjetos.Deve-

seobservar, entretanto,queemsetratandodesistemascomerciaisgeralmentenãoépossível obterin-

formaçãodetalhadasobreosmecanismosdeimplementaçãodosistema.Porestemotivo, apresenta-

seinicialmenteumprotótiposobreo qualinformaçãosobrea implementaçãoébemconhecida.

5.1 UniCOSMOS

UniCOSMOS(University of CampinasObjectStorage ManagementSystem)foi um protótipo

desenvolvido naUNICAMP noperíodo1985–1989paraaplicaçõesemengenharia[28,39]. Efetiva-

mente,UniCOSMOSnãoeraum sistemagerenciadordebasedeobjetos,massim um núcleopara

taissistemasondealgunsdosmecanismosbásicosdemanipulaçãodeobjetospersistentespoderiam

seravaliados.

A arquiteturade UniCOSMOSé apresentadana Fig. 7. A partesuperiorda figura representa

módulosrelativos ao esquemade objetos,enquantoque a parteinferior representamódulosque

manipulaminstâncias(ouseja,objetos).

domínio detipos deobjetos

domínio detríades

subsistema deacesso a tipos

subsistema deacesso a objetos

domínio devalores

nome do tipo

domínio,valor

iv domínio de

objetos

io

iv

id

ioiv

id

irid

nome

Figura7: ArquiteturadeUniCOSMOS.

Nestesistema,tiposdeobjetossãoidentificadospor um nome. O subsistemadeacessoa tipos

mantémumatabelahashqueassociaosnomesdeobjetosasurrogatestipados(id). Um mecanismo

desinônimosésuportado,sendopossível associarmaisdeumnomeparaummesmotipo deobjeto.

O domíniodetiposdeobjetosregistraainformaçãosobreo esquemadabasededados.Paracada

tipo deobjeto,cincolistasinternasmantêminformaçãosobre:

1. osnomesdo tipo deobjeto;

2. osatributosdo tipo deobjeto;

3. asassociaçõescomoutrostiposdeobjeto;

Page 31: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

4. ostiposdeobjetoscomponentes,casoo objetosejacomplexo;

5. os tipos de objetosquecontêmestetipo comocomponente,casoo objetofaçapartede um

objetocomplexo.

Associaçõessãorepresentadasinternamentepor tríades,ouassociaçõesbinárias.A ligaçãoentre

doistiposdeobjetosé estabelecidapor umterceirotipo deobjeto,criadointernamente.Assim,uma

referência� �!�"� émapeadainternamenteparaumatríade#$�%���&� . Parafacilitara manutenção

daintegridadereferencial,o domíniodetríadesarmazenatodasaspermutaçõesdecadaassociação.

Assim, tambémsãoarmazenadasnestedomínioastríades���'�(�)# e �*�)#+�,� . Cadatríade

registradanestedomínioé identificadaporumsurrogateir.

No nível de instâncias,objetossãorepresentadosatravésdelistasdepropriedadesarmazenadas

nodomíniodeobjetos.A flexibilidadedaslistasdepropriedadespermitemanipularadequadamente

atributoscom valoresnulos,multivaloradose de dimensãovariável. Cadalista de propriedadesé

identificadaporumsurrogatedeobjeto(io), ecadaelementodalistaéformadoporumidentificador

deatributo (referenteaoidentificadordotipo deobjeto,id) eporumidentificadordevalor (iv). Os

valoressãoarmazenadosdefatono domíniodevalores,ondecadadomínio(no sentidomatemático

dapalavra, o conjuntodeelementosdosquaisosvaloresdeatributossãotomados)é compostopor

umalistadepropriedadesparavalores.Cadaelementodestalista, identificadoporumsurrogateiv,

contémadimensãoea representaçãointernadovalor.

O subsistemadeacessoaobjetostemporobjetivo apoiaratividadesdeconsultasporvaloràbase

deobjetos.Nestemódulosãoimplementadososmecanismosparaagilizaracessoà informação,tais

comoestruturasdeíndices.Comodomíniospodemsercompartilhadosporváriostiposdeobjeto,as

respostasa consultassãoorganizadasnaformadelistasdesurrogatesio. Pararestringira buscaa

um único tipo deobjeto,é precisocombinaresteresultadocomo resultadodeumabuscano nível

de esquema,através do nomedo objeto. Paraagilizar a realizaçãodestascombinações,diversos

métodosdemanipulaçãodesurrogatessãooferecidosàsaplicaçõesdeUniCOSMOS.

O sistemafoi implementadoem linguagemC, em estaçõesde trabalhoUnix. Desenvolvimen-

tosrelacionadosa UniCOSMOSincluíramo tratamentodetransaçõesconvencionaise longas[35],

tratamentode regrase de restrições[30], manipulaçãode herança[43] e a implementaçãode um

gerenciadordedadosparaprojetosdeengenhariamanipulandoesquemasentidade-relacionamento

estendidoscommecanismosparaobjetoscomplexoseevoluçãodeesquemas[40].

5.2 O -O desenvolvimento do SistemaO- [15] iniciou-secomoum protótipode pesquisa,posterior-

menteconvertido paraum produtocomercialda empresafrancesaO- Technology. O sistemafoi

desenvolvido emC++ paraplataformasUnix.

O principalmódulodosistemaéo EngenhoO- , estruturadoemtrêscamadas:

Page 32: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

Gerenciadordeesquema,responsável por monitorarcriação,recuperação,atualizaçãoe remoção

declasses,métodosenomesglobais;

Gerenciadordeobjetos, camadaintermediáriaqueforneceidentificaçãodeobjetose implementa

estratégiasdeindexaçãoeclustering;

Gerenciadordedisco, responsável por implementarasestruturasde arquivos (paginados)quear-

mazenamfisicamenteosdadosdosobjetosdosistema.

As camadasmaiselevadasdo sistemasãoorganizadasna forma de umaaplicaçãocliente,que

podeexecutaremumamáquinaconectadaaoservidorbabasededados,ondeaaplicaçãogerenciador

dediscoatuacomoumservidordepáginas.

Identificadoresde objetossãoregistradosinternamentesoba forma de endereçosestruturados,

comcamposparaidentificaçãodeum volumededados(2 bytes),combinadocomumaidentifcação

depáginanovolume(4 bytes)eumaposição(slot)napágina(2 bytes).Paraaaplicação,descritores

deobjetossãoutilizados.

Objetosem O- podemser atômicos(inteiros, reais,booleanos,strings e bits) ou complexos,

criadosa partir deconstrutoresdetuplas,conjuntos,bagse arranjos.Persistênciaé definidapor re-

ferência;objetosquesãoderivadosdeumaraizpersistente,diretaou indiretamente,sãopersistentes.

A interaçãodeumaaplicaçãocomo sistemapodeocorreratravésdeinterfacesdeprogramação

emC ou C++, atravésdeumalinguagemdeclarativa (O- C) ou atravésdeO- SQL,umaextensãode

SQLparalidar comobjetoscomplexos.

5.3 ObjectStore

ObjectStore[32] éumsistemacomercialdebancodedadosorientadoaobjetosdesenvolvido pela

ObjectDesignInc., de Burlington, Massachusetts.Um dosobjetivos iniciais no desenvolvimento

destesistemaerafazerdeC++ umalinguagemdeprogramaçãodebancodedados.Porestemotivo,

ObjectStoreéumdossistemasmaispróximosdestalinguagememtermossemânticos.

ObjectStoreoferecesuporteparaidentificaçãode objetos,atributos inversos,herançamúltipla,

acessopaginadoaBLOBseaplicaçõesinterativasparavisualizaçãodeconteúdoecriaçãodeesque-

mas. Manipulaçãode coleçõesé oferecidaatravésde bibliotecasde tipos de coleções,que inclui

conjuntos,bags, listas,arranjose dicionários.Bagssãoconjuntosquepermitemduplicaçãodeele-

mentos. Dicionáriossãobags ondea cadaelementoé associadaumachave. Um tipo genérico,

coleção,tambémé oferecido. A Fig. 8 apresentaumaárvore de decisãoassociadaà definiçãoda

melhorformadecoleçãoparaumaaplicação[33].

A interaçãoentreObjectStoree a aplicaçãopodeocorreratravésdeumalinguagemdemanipu-

laçãode dadosou atravésde interfacesde programaçãoem C, em C++ e, desdea versão5.0, em

Java. O mecanismodemapeamentodeobjetosparao espaçodememóriavirtual tornaa persistên-

cia naturalem ObjectStore,ondequalquerdadopodese tornarpersistente.Assim, o mecanismo

Page 33: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

ordenadas e desordenadas, ou entredesordenadas com duplicatas e desordenadas sem duplicatas

Mantém a ordem de inserção

Associa chave acada elemento

Adição automática denúmero especificado de

elementos nulos

Permite mudanças entre coleções

os_Collection

os_Dictionary os_List os_ArrayPermite duplicatas

os_Set os_Bag

nãosim

sim

sim

sim

sim

não

não

não

não

Figura8: ÁrvorededecisãoparatiposcomplexosemObjectStore.

de persistênciaé ortogonalà hierarquiade tipos. Um aspectonegativo nestaestratégiaé queeste

mecanismoexige a manutençãodemecanismosdepré-processamento,dificultandoa portabilidade

dosistemaentreplataformasdistintas.Poroutrolado,umavezqueobjetossejamtransferidosparaa

memóriaprincipalapósum page fault, suamanipulaçãoé tãorápidacomoa dequalquerobjetonão

persistentedalinguagemdeprogramação.

AplicaçõesdeObjectStoreutilizam doisprocessosparasuaexecução.O servidordepáginasé

o ObjectStoreServer, queestáexecutandopermanentementeemumamáquinaondeosdadosestão

armazenados.O ladoclientedeObjectStoreé implementadoatravésdeum CacheManager, queé

ativadoautomaticamentepelaaplicação(Fig. 9). Um clientepodeacessarinformaçãode diversos

servidores,caracterizandoObjectStorecomotendoumaarquiteturamúltiplos clientese múltiplos

servidores.

6 Esforçoscorrentesedir eçõesfuturas

Nestaseçãofinal é feito umbreveapanhadodeesforçoscorrentesquepoderãoafetaro desenvol-

vimentofuturo desistemasgerenciadoresdebasedeobjetos,comênfasenosaspectosdepadroni-

zaçãoe futurasaplicações.

6.1 ODMG

ODMG (ObjectDatabaseManagementGroup)é um consórcio,formadoem1991por diversos

fabricantesdesistemasgerenciadoresdebasedeobjetos,quetempor objetivo criar um padrãopara

bancosde dadosorientadosa objetosquepermitaampliaro graude portabilidadedasaplicações

Page 34: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

...

aplicaçãoaplicação

aplicação

cache manager

cache manager

aplicação

servidor

servidor

cache manager

Figura9: ProcessosnaarquiteturadeObjectStore.

desenvolvidas paraos seusdiferentessistemas[9]. Assim comoSQL permiteoferecerparauma

aplicaçãouma visãocomumde basesde dadosrelacionais,independentedo fabricante,busca-se

comODMG atingirumgraudepadronizaçãosimilarparasistemasgerenciadoresdebasedeobjetos.

OsparticipantesdoconsórcioODMG incluemObjectDesign,ONTOS,O- Technology, Versant,

Objectivity, Digital Equipment,Hewlett-Packard,Itasca,Intellitic, PoetSoftware, Servioe Texas

Instruments.Pelomenosestasempresasconcordaramemtornarseusprodutoscompatíveis como

padrãoODMG parasistemasgerenciadoresdebasedeobjetos.Deve serenfatizadoquenãoháuma

padronizaçãoda implementação,ou seja,os produtosde cadaempresanãosãoidênticos;apenas

oferecemumainterfacecomumparaasaplicações.

O focodestepadrãofoi naintegraçãodesistemasgerenciadoresdebasedeobjetosa linguagens

deprogramação.Entretanto,parapoderdefinir interfacespadronizadasentresistemasgerenciadores

debasede objetose linguagensde programaçãoeranecessárioinicialmenteter umavisãocomum

decomoum sistemagerenciadorde basedeobjetosdeveria estarestruturadoe de quaisseriamos

seuscomponentes.O resultadodesteprimeiro esforçofoi a definiçãode umaarquiteturacomum,

apresentadanaFig. 10.

O padrãoODMG estáorganizadoemduascomponentesprincipais,framework e bindings. Em

frameworkdefinem-seaspectoscomunsatodasaslinguagensdeprogramação,taiscomoaarquitetu-

ra,o modelodeobjetos,a linguagemdedeclaração(ODL) e umalinguagemdeclarativa deconsulta

(OQL). O conjuntodebindings, estabeleceo mapeamentodasconstruçõesdo padrãoparaaquelas

delinguagensdeprogramação.Atualmente,C++, Smalltalke Java sãocontempladasnopadrão.

O modelodeobjetosdeODMG sumarizadiversosconceitossuportadospor sistemasgerencia-

doresde basede objetos.Ele ofereceobjetose literais comoprimitivasde modelamento.Literais

Page 35: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

Códigoexecutável

Códigoobjeto

Programaaplicação

Declaraçõesem ODL

base dedados

SGBOruntime

aos dadosacesso

metadados

pré-processador

ligador

compilador

Figura10: ArquiteturadeumsistemagerenciadordebasedeobjetosnopadrãoODMG.

podemseratômicos(Long,Float,Octet,.. . ), coleção(Set,Bag,List e Array) ou estruturados(Date,

Time, Timestamp,.. . ). Objetospodemseratômicosou coleção.O estadodeum objetoé definido

por suaspropriedades,quepodemseratributosou relacionamentos.O comportamentodo objetoé

definidopeloconjuntodeoperaçõesquepodemserexecutadassobreo objeto.Objetose literaissão

categorizadospor seustipos;elementosdeum mesmotipo têmestruturae comportamentocomuns.

Algumasvezes,um objetoé denominadoumainstânciadeum tipo. Um bancodedadosarmazena

objetos,permitindoqueestessejamcompartilhadospor múltiplosusuáriose aplicações.Um banco

de dadosé baseadoem um esquemaqueé definidoem umalinguagemde definiçãode objetose

contéminstânciasdetiposdefinidosporseuesquema.

6.2 OMG

OMG (ObjectManagementGroup)[34] éumconsórcioindustrial,formadoem1989,cujoobje-

tivo é definir padrõesparapermitir inter-operabilidade emsistemasdistribuídosheterogêneos,ado-

tandoparatal o paradigmade objetosdistribuídos. Atualmenteo consórcioenglobamaisde 800

participantes.

O principalresultadodoOMG foi adefiniçãodeumaarquiteturaparao desenvolvimentodeapli-

caçõespor objetosdistribuídos. Estaarquitetura,CORBA (CommonObjectRequestBroker Archi-

tecture) (Fig. 11), estabelecea funcionalidadedeumacamadamiddleware, o ORB (ObjectRequest

Broker) e asfuncionalidadesdeserviçosdeobjetospadrões,CORBAservices, queincluemserviços

debuscadeobjetospor nome(naming), buscapor propriedades(trader), serviçosdesegurança,de

transaçõesedenotificaçãodeeventos,entreoutros.

Page 36: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

Domaininterfaces

ORB

Applicationinterfaces

CommonFacilities

CORBAservices

Figura11: Arquiteturadegerenciamentodeobjetos(OMA).

Além disto, outrostipos de serviçospodemestaragrupadosem CommonFacilities, Domain

InterfacesouApplicationInterfaces[42]. AssimcomoCORBAservices, CommonFacilities incluem

serviçosde propósitogeral; porém, tais serviçosestãomais próximosem nível de abstraçãodo

usuáriofinal, enquantoCORBAservicesapresentamnível deabstraçãobaixo. Um exemplodeuma

facilidadenestacategoria é o Distributed DocumentComponentFacility, paraa manipulaçãode

documentoscompostos.As interfacesdedomíniosãoserviçosespecializadosparadadascategorias

deaplicações,comoemáreafinanceira,telecomunicaçõesemedicina.As interfacesdeaplicaçãosão

componentesdaarquiteturaespecíficosdeumaaplicação,nãosendoportantoobjetodepadronização.

Comomostraa Fig. 12, ORB e bancosdedadosaderentesà propostaODMG apresentamalgu-

masobreposiçãodefuncionalidades,masapresentamum alto graudecomplementaçãodeserviços

oferecidos.Antevê-sequea combinaçãodestasduaslinhasdedesenvolvimentosejaa direçãopara

asnovasaplicaçõesdesistemasdeinformaçãoemambientesdistribuídos.

ORB SGBO

armazenamento

transações

descrição

identificação

distribuiçãoversões

consultas

tradução

localização

heterogeneidade

invocação remota

Figura12: FuncionalidadesORBeODMG.

Uma análiseda integraçãoentresistemagerenciadorde basede objetose CORBA, particular-

menteparaaplicaçõesmultimídia, foi apresentadapor Tobar[49]. Similarmente,outrascategorias

deaplicaçãopoderiamanalisarqualplataformaatendemelhoràssuasnecessidadesparaselecionara

estratégiadeimplementação.

Page 37: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

6.3 Conclusões

A tecnologiadeorientaçãoaobjetosestápermeandopraticamentetodasasnovasaplicaçõescom-

putacionais.O queháalgumtempoatráseraapenasumabuzzword quedavaum“ar demodernidade”

paraalgumasaplicaçõesé atualmenteumatecnologiarelativamentemadura,comutilizaçãoefetiva

nasmaisdiversascategoriasdeaplicação.

Bancode dadosé apenasumadasáreasquevem sebeneficiandodestatecnologia. Provavel-

mente,maisdo quesimplesmenteoferecera capacidadede ter um repositórioorientadoa objetos

paraaplicaçõesisoladas,a importânciadesistemasgerenciadoresdebasedeobjetosserápermitir a

integraçãodeaplicaçõesemambientesdeobjetosdistribuídos.Nestaabordagem,osserviçosdeum

sistemagerenciadordebasedeobjetospoderãoserincorporadosa aplicaçõesde formauniformee

transparente,damesmamaneiraqueassimo serãoserviçosde interfacesgráficascomusuáriosou

invocaçãodinâmicadeserviçosdistribuídos.

A chaveparaatingirestapróximaetapanatecnologiadebancodedadosestánageneralidade.Ao

contráriodo paradigmadedesenvolvimentoquedominouo final dadécadade1970e praticamente

todaa décadade 1980,quandohavia dezenasou centenasde sistemasgerenciadoresde bancode

dadosespecializadosparaa aplicação. ou paraa aplicação/ , o objetivo atualé oferecerserviços

básicos,possivelmenteconfiguráveis,quepossamserintegradosdeacordocomasnecessidadesde

cadaaplicação.

Estaabordagemdeoferecimentodeserviçosatendede formamuitaadequadaàsnovascatego-

rias de aplicaçãoem sistemasde informação,incluindo a manipulaçãode informaçãomultimídia

e hipermídia. Dificilmente seriapossível desenvolver um sistemagerenciadorde bancode dados

especializadoqueatendesseadequadamenteàsnecessidadesde todasaplicaçõesmultimídiaou hi-

permídia,poisestasvariammuitodeacordocomo caráterdaaplicação.No entanto,éperfeitamente

viável imaginarquetaisaplicaçõesserãoatendidasatravésdacombinaçãodeserviçosespecializados

de armazenamento,de consulta,de pesquisa,e assimpor diante. O oferecimentode tais serviços

torna-seinteressanteà medidaqueelesnãosãodeusoexclusivo deum bancodedadosou deuma

aplicação.Assim,o mesmoserviçodepesquisaqueéutilizadoporumaaplicaçãomultimídiapoderia

serutilizadoemumaoutraaplicaçãoemdatamining, porexemplo.

Em suma,há atualmenteprodutosem bancosde dadosorientadosa objetosqueutilizam uma

tecnologiaque já estárazoavelmenteamadurecida,atendendoa muitasaplicações.Há ainda,no

entanto,umanecessidadedeseestenderasfuncionalidadesdessesserviçosdebancosdedadospara

qualqueraplicaçãodesenvolvidasem frameworksdeobjetosdistribuídos.Paraatingir esteobjetivo,

aspesquisasnestaáreaseguemduasdiretrizesfundamentais.A primeirapodeserresumidaatravés

daspalavrasgeneralidadeeadaptabilidade.Desenvolvimentosemdesignpatternssãoemblemáticos

destadiretriz. A segundapodeserresumidapelapalavra inter-operabilidade,ondea tecnologiade

objetosdistribuídosvemsedestacando.

Page 38: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

Referências

[1] S.AbitebouleP. Kanellakis.Thetwo facetsof object-orienteddatamodels.IEEEDB Engine-

eringBulletin, 14(2),Junho1991.

[2] M. M. Astrahan,M. W. Blasgen,D. D. Chamberlin,K. P. Eswaran,, J.N. Gray, P. P. Griffiths,

W. F. King, R. A. Lorie, P. R. McJones,J. W. Mehl, G. R. Putzolu,I. L. Traiger, B. W. Wade,

e V. Watson.SystemR: Relationalapproachto databasemanagement.ACM Transactionson

DatabaseSystems, 1(2):97–137,Junho1976.

[3] T. R. Ayers,D. K. Barry, J. D. Dolejsi, J. R. Galareneau,e R. V. Zoeller. Developmentof

ITASCA. Journalof Object-OrientedProgramming, 4(4):46–49,Julho1991.

[4] JayBanerjee,Won Kim, Hyoung-JooKim, e HenryF. Korth. Semanticsandimplementation

of schemaevolution in object-orienteddatabases.Em Proceedingsof theACM SIGMODCon-

ference, páginas311–322.1987.

[5] J.H. terBekke. SemanticDataModeling. PrenticeHall, 1992.

[6] M. W. Blasgen,M. M. Astrahan,D. D. Chamberlin,J.N. Gray, W. F. King, B. G.Lindsay, R.A.

Lorie, J.W. Mehl, T. G. Price,G. R. Putzolu,M. Schkolnick, P. G. Selinger, D. R. Slutz,H. R.

Strong,I. L. Traiger, B. W. Wade,e R. A. Yost. SystemR: An architecturaloverview. IBM

SystemsJournal, 20(1):41–62,1981.

[7] RobertBretl, David Maier, Allen Otis,JasonPenney, BruceSchuchardt,JacobStein,E. Harold

Williams, e Monty Williams. TheGemStonedatamanagementsystem.Em Kim e Lochovsky

[25], capítulo12,páginas283–308.

[8] P. Butterworth,A. Otis, e J.Stein. TheGemStoneobjectdatabasemanagementsystem.Com-

municationsof theACM, 34(10):64–77,Outobro1991.

[9] R. G. G. Cattell, editor. The Object DatabaseStandard: ODMG–93. Morgan–Kaufmann

Publishers,SanMateo,CA, 1993.

[10] R. G.G. Cattell.ObjectDataManagement:Object-OrientedandExtendedRelationalDataba-

seSystems. Addison-Wesley, 1994.Revisededition.

[11] PeterP. Chen.Theentity-relationshipmodel— towarda unifiedview of data.ACM Transac-

tionsonDatabaseSystems, 1(1):9–36,Março1976.

[12] E. F. Codd. A relationalmodelof datafor large shareddatabanks. Communicationsof the

ACM, 13(6):377–387,Junho1970.

[13] E. F. Codd. Extendingthedatabaserelationalmodelto capturemoremeaning.ACM Transac-

tionsonDatabaseSystems, 4(4):397–434,Dezembro1979.

Page 39: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

[14] GeorgeCopelande David Maier. MakingSmalltalkadatabasesystem.Em Proceedingsof the

SIGMODConference, páginas316–325.ACM, 1984.

[15] O. Deux,C. Delobel,D. DeWitt, Y. Ioannidis,et al. Thestoryof O2. IEEE Transactionson

Knowledge andDataEngineering, 2(1),Março1990.

[16] RamezElmasri e ShamkantB. Navathe. Fundamentalsof DatabaseSystems. Benja-

min/CummingsPublishingCompany, segundaedição,1994.

[17] D. H. Fishman,J. Annevelink, D. Beech,E. Chow, T. Connors,J. W. Davis, W. Hasan,C. G.

Hoch,W. Kent,S. Leichner, P. Lyngbaek,B. Mahbod,M. A. Neimat,T. Risch,M. C. Shan,e

W. K. Wilkinson. Overview of theIris DBMS. EmKim eLochovsky [25], capítulo10,páginas

219–250.

[18] J.P. Fry eE. H. Sibley. Evolutionof data-basemanagementsystems.ACM ComputingSurveys,

8(1):7–42,Março1976.

[19] Adele Goldberg e David Robson. Smalltalk-80,The Language. Addison-Wesley Seriesin

ComputerScience.Addison-Wesley, Setembro1989.

[20] J.Gosling,B. Joy, eG. Steele.TheJavaLanguage Specification. JavaSeries.Addison-Wesley,

1996.http://java.sun.com/doc/language_specification/index.html.

[21] JamesGoslinge HenryMcGilton. TheJavaLanguage Environment:A WhitePaper. SunMi-

crosystems,Inc.,MountainView, CA, Maio 1996.http://www.javasoft.com/docs/

white/langenv/.

[22] RichardHull e RogerKing. Semanticdatabasemodeling:Survey, applications,andresearch

issues.ACM ComputingSurveys, 19(3):201–260,Setembro1987.

[23] WonKim, editor. ModernDatabaseSystems:TheObjectModel,Interoperability andBeyond.

ACM Press,1995.

[24] WonKim, NatBallou,Hong-Tai Chou,JorgeF. Garza,eDarrelWoelk. Featuresof theORION

object-orienteddatabasesystem.EmKim eLochovsky [25], capítulo11,páginas251–282.

[25] Won Kim e FrederickH. Lochovsky, editores. Object-OrientedConcepts,Databases,and

Applications. FrontierSeries.ACM Press,1989.

[26] HenryF. KortheAbrahamSilberschatz.DatabaseSystemConcepts. McGraw-Hill, 1986.

[27] GeorgeLapis,Guy M. Lohman,e HamidPirahesh.Starburst is born. SIGMODRecord (ACM

SpecialInterestGrouponManagementof Data), 19(2),Junho1990.

Page 40: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

[28] Léo P. Magalhães,ArmandoL. N. Delgado,Ivan L. M. Ricarte,ReginaC. Ruschel,e Carlos

JoséM. Olguín. Implementaçãodeumbancodedadosnão-convencional:a experiênciaGER-

PAC/UniCOSMOS.Em IV SBBD— SimpósioBrasileiro deBancodeDados, páginas77–89.

Campinas,SP, Abril 1989.

[29] OscarNierstrasz.A survey of object-orientedconcepts.EmKim eLochovsky [25], capítulo1,

páginas3–21.

[30] Farid Nouranie Léo Pini Magalhães.Um sistemade tratamentode restriçõesde projetono

contexto GERPAC/UniCOSMOS. Em VI SimpósioBrasileiro de Bancode Dados. Manaus,

AM, Maio 1991.

[31] Kristen Nygaard. Basic conceptsin object oriented programming. SIGPLAN Notices,

21(10):128–132,Outobro1986.

[32] Object Design,Inc., Burlington, MA. ObjectStore Technical Overview; Release2.0, Julho

1992.

[33] ObjectDesign,Inc. ObjectStore C++ API UserGuide. Burlington,MA, Junho1995.

[34] ObjectManagementGroup.OMG homepage.http://www.omg.org/, 1998.

[35] CarlosJoséM. Olguíne Léo Pini Magalhães.Um gerenciadorde transaçõesno contexto do

GERPAC/UniCOSMOS.Em V SimpósioBrasileiro de Bancode Dados. Rio de Janeiro,RJ,

Abril 1990.

[36] KamranParsaye,Mark Chignell, SetragKhoshafian,e Harry Wong. Intelligent Databases:

Object-Oriented,Deductive, HypermediaTechnologies. JohnWiley andSons,1989.

[37] JoanPeckhameFredMaryanski.Semanticdatamodels.ACM ComputingSurveys, 20(3):153–

189,Setembro1988.

[38] WalterD. Pottere RobertP. Trueblood.Traditional,semantic,andhyper-semanticapproaches

dodatamodeling.IEEEComputer, páginas53–63,Junho1988.

[39] IvanL. M. Ricarte.MOODS:amodular, object-orienteddesigndatabasesystem.EmF. Kimura

e A. Rolstadås,editores,ComputerApplicationsin ProductionandEngineering, páginas225–

229.North-Holland,1989.

[40] Ivan L. M. Ricartee ArmandoL. N. Delgado. GERPAC — um SGBD paraPAC. Em II

SimpósioBrasileiro deBancodeDados, páginas22–38.PortoAlegre,RS,Maio 1987.

[41] LawrenceA. Rowe e MichaelR. Stonebraker. ThePOSTGRESdatamodel. Em Proceedings

of the13thVLDBConference, páginas83–96.Brighton,UK, 1987.

Page 41: Tcc Exemplo OO Pagina12

IvanL. M. Ricarte BancosdeDadosOrientadosa Objetos

[42] Doug Schmidt. Overview of CORBA. http://www.cs.wustl.edu/~schmidt/

corba-overview.html, Agosto1998.

[43] MamedeAugustoMachadoda Silveira. Extensãodo NúcleoUniCOSMOSpara Suporteà

Orientaçãopor Objeto. Tesedemestrado,FaculdadedeEngenhariaElétrica,UNICAMP, Abril

1991.

[44] JohnMiles Smithe DianeC. P. Smith. Databaseabstractions:Aggregationandgeneralization.

ACM TransactionsonDatabaseSystems, 2(2):105–133,Junho1977.

[45] Michael Stonebraker. Retrospectionon a databasesystem. ACM Transactionson Database

Systems, 5(2):225–240,Junho1980.

[46] MichaelStonebraker, EugeneWong,PeterKreps,e GeraldHeld. Thedesignandimplementa-

tion of INGRES.ACM TransactionsonDatabaseSystems, 1(3):189–222,Setembro1976.

[47] BjarneStroustrup. What is object-orientedprogramming? IEEE Software, páginas10–20,

Maio 1988.

[48] BjarneStroustrup.TheC++ ProgrammingLanguage. Addison-Wesley, segundaedição,1991.

[49] CarlosM. TobareIvanL. M. Ricarte.Multiwaredatabase,adistributedobjectdatabasesystem

for multimediasupport.Em OpenDistributedProcessing:Experienceswith DistributedEnvi-

ronments,Proceedingsof the IFIP InternationalConferenceon OpenDistributedProcessing,

ICODP’95, páginas439–450.Fevereiro1995.

[50] M. Ubell. The MontageextensibleDataBladearchitecture.SIGMODRecord (ACM Special

InterestGrouponManagementof Data), 23(2):482–482,Junho1994.