Anda di halaman 1dari 6

Bancos de Dados Orientados a Objetos (Resumo)

http://algol.dcc.ufla.br/~heitor/Artigos/Artigo_007.html

Resumo do Captulo: Bancos de Dados Orientados a Objetos


Heitor Augustus Xavier Costa

1. Novas Aplicaes de Banco de Dados


Os bancos de dados que utilizam o modelo relacional e o modelo de entidade-relacionamento no esto suportando, de maneira adequada, o armazenamento das informaes oriundas de aplicaes que no utilizam este modelo para a modelagem de seus dados. Como exemplo de tais aplicaes pode-se mencionar: CAD, CASE, Multimdia, OIS e hipertexto.

2. Modelo de Dados Orientados a Objetos


Estrutura do Objeto Um objeto constitudo de dados (atributos) e cdigos (mtodos). A um objeto esto vinculados: um conjunto de variveis (atributos); um conjunto de mensagens (forma de comunicao entre objetos); um conjunto de mtodos (implementao das mensagens). A interface de um objeto caracterizada pelo seu conjunto de mensagens, ou seja, a interface identifica quais so as mensagens que um objeto deve responder. Como a interface a nica parte acessvel (visvel) do objeto, possvel realizar alteraes no cdigo que implementa as mensagens que compem a interface (mtodos) sem impactar a forma de comunicao entre os objetos. A habilidade de modificar a definio de um objeto sem afetar o resto do sistema considerada uma das maiores vantagens do paradigma de orientao a objetos. Classes de Objetos Quando existem objetos similares, ou seja, objetos que possuem as mesmas mensagens, os mesmos mtodos e variveis com mesmo nome e tipo, eles podem ser agrupados e constituir uma classe. Desta maneira, os objetos de uma classe so chamados instncias desta classe. Herana O conceito de hierarquia de classe similar ao conceito de especializao no modelo entidade-relacionamento. Para estabelecer uma hierarquia de classes necessrio realizar um estudo analtico das classes identificadas para determinar quais as classes que so potencialmente indicadas para participarem da hierarquia. Aps a determinao destas classes deve-se fatorar as variveis (mesmo nome e tipo) e os mtodos e aloc-los em uma outra classe, estabelecendo a hierarquia de classes. Nesta hierarquia de classes, as classes fatoradas so chamadas de subclasses e as classes que receberam as variveis e os mtodos em comum so chamadas super caces. Em uma hierarquia de classes que possui N nveis, ao identificar um caminho da classe que est em um nvel mais alto at uma classe presente em um nvel mais baixo (deste caminho), a classe no nvel mais baixo herdam todas as variveis e todos os mtodos de todas as classes superioras a ela no caminho. Um benefcio importante da herana em orientao a objetos a reusabilidade, visto que os mtodos em uma

1 de 6

29/08/2012 15:50

Bancos de Dados Orientados a Objetos (Resumo)

http://algol.dcc.ufla.br/~heitor/Artigos/Artigo_007.html

classe no precisam ser redefinidos nas suas subclasses, a menos que uma delas requeira uma implementao distinta. H duas possibilidades de associar um objeto a uma classe, a saber: os objetos de uma superclasse so todos os objetos desta classe em conjunto com todos os objetos de todas as suas subclasses; os objetos de uma superclasse so todos os objetos desta classe exceto os objetos de suas subclasses. A escolha mais utilizada nos sistemas desenvolvidos sob a luz de orientao a objetos a segunda possibilidade. Herana Mltipla A herana mltipla a habilidade de uma classe herdar variveis e/ou mtodos de mais de uma classe. Ao utilizar este recurso, a hierarquia de classes passa a ser representada por um grafo acclico direcionado (DAG). A herana mltipla possibilita ambigidade, uma vez que duas ou mais superclasses envolvidas podem possuir variveis e/ou mtodos com mesmos nomes. Para tentar solucionar esta ambigidade quatro estratgias podem ser adotadas, a saber: renomear as variveis e/ou os mtodos conflitantes, incorporando o nome (identificador) da classe no final do nome; escolher uma varivel das variveis conflitantes, bem como escolher um mtodo dos mtodos conflitantes para serem herdados; forar a escolha explcita pelo usurio; tratar como erro. Em geral, nenhuma soluo aceita como a melhor, pois sistemas diferentes requerem escolhas diferentes. Identidade do Objeto A identidade de objeto noo mais forte de identidade do que as encontradas em linguagem de programao ou em modelos de dados no baseados em orientao a objetos. Entre as diversas formas de representar a identidade de objeto, pode-se destacar a forma em que atribudo automaticamente um identificador pelo sistema quando o objeto criado. Esta forma est embutida no modelo de dados ou na linguagem de programao e usada nos sistemas de orientao a objetos. Em orientao a objetos existe o conceito de identificador de objetos (object identifier OID). Cada objeto possui um nico OID e no existem dois objetos com o mesmo OID. Objetos Complexos (Compostos) Os objetos que contm outros objetos so chamados de objetos compostos ou complexos, incorrendo em uma hierarquia de composio de objetos. Em determinadas aplicaes, um objeto pode participar na composio de muitos objetos. Neste caso, a hierarquia de composio representada com um grafo acclico direcionado (DAG).

3. Linguagem Orientada a Objetos


A incorporao dos conceitos de orientao a objetos em um sistema de banco de dados pode ser feita de duas

2 de 6

29/08/2012 15:50

Bancos de Dados Orientados a Objetos (Resumo)

http://algol.dcc.ufla.br/~heitor/Artigos/Artigo_007.html

formas: utilizar os conceitos de orientao a objetos como uma ferramenta de design e implementar em um banco de dados relacional; incorporar os conceitos de orientao a objetos em uma linguagem de programao que manipule um banco de dados. Nesta ltima opo os conceitos podem ser incorporados da seguinte forma: estender a linguagem de manipulao de dados para incorporar os conceitos de orientao a objetos; estender a linguagem de programao orientada a objetos para incorporar funcionalidade de banco de dados.

4. Linguagem de Programao Persistente


As linguagens de banco de dados diferem das linguagens de programao, pois elas manipulam dados persistentes. Dados persistentes so dados que continuam a existir aps o trmino do programa que os criou. Uma linguagem de programao uma linguagem estendida com estruturas para tratar dados persistentes. A diferena entre uma linguagem de programao persistente e a linguagem de manipulao de dados (por exemplo SQL) consiste no programador ser responsvel em converter os tipos da linguagem de programao persistente para linguagem de manipulao de dados. Isto pode incorrer em erros no detectveis, pois a converso feita no considerando os conceitos de orientao a objetos, e aumento de cdigo, pois alm da traduo tambm necessrio cdigo para o armazenamento e a recuperao dos dados. Em linguagem de programao persistente a linguagem de programao e a linguagem de manipulao de dados atuam de maneira integrada. Persistncia de Objetos As linguagem de programao orientadas a objeto trabalham com objetos transientes. Objetos transientes so objetos que existem apenas enquanto a aplicao que os criou continuar executando. Aps o trmino da aplicao eles deixam de existir. Para tornar estes objetos persistentes deve-se adotar uma das seguintes estratgias: Persistncia por Classe: estratgia mais simples, porm no flexvel. Esta estratgia consiste em declarar uma classe persistente, ou seja, todos os objetos instanciados por esta classe so objetos persistentes; Persistncia por Criao: consiste em sobrecarregar o operador de construo de objetos, ou seja, no momento da instanciao de um objeto determinado se ele deve ser ou no persistente; Persistncia por Marcao: esta estratgia uma variao da estratgia anterior. Consiste em marcar o objeto, aps sua criao, indicando se ele ou no persistente. Deste modo, h apenas objetos transientes. Ao terminar a aplicao, todos os objetos marcados devem persistir; Persistncia por Referncia: dentre todos os objetos existentes durante a execuo da aplicao, alguns objetos so declarados como persistentes. Esta estratgia consiste em tornar persistentes todos os objetos que so "alcanados" (referenciados) pelos objetos declarados persistentes, mesmo que no tenham sido declarados como tal. Identidade e Ponteiro de Objetos Todo objeto instanciado, sendo transiente ou persistente, possui um identificador nico. Em diversas linguagens de programao orientadas a objetos o identificador de objeto um ponteiro para um endereo da memria. Contudo a localizao fsica do objeto pode mudar com o tempo, existindo graus de identidades, a saber:

3 de 6

29/08/2012 15:50

Bancos de Dados Orientados a Objetos (Resumo)

http://algol.dcc.ufla.br/~heitor/Artigos/Artigo_007.html

Intraprocedimento: a identidade persiste apenas durante a execuo de um procedimento; Intraprograma: a identidade persiste apenas durante a execuo do programa; Interprograma: a identidade persiste apenas durante execues distintas de programas; Persistncia: a identidade persiste apenas durante execues distintas de programas e reorganizaes estruturais dos dados. O ltimo grau de identidade exigido nos sistemas de orientao a objetos. Armazenamento e Acesso a Objetos Persistentes Tornar um objeto persistente significa que se deve armazenar no apenas os valores de seus atributos como tambm os seus mtodos. Contudo, muito comum armazenar o cdigo (mtodo) em arquivos fora do banco de dados. H diversas maneiras de encontrar um objeto. A seguir so citadas trs abordagens para realizar tal tarefa: dar nome aos objetos (funciona para uma pequena quantidade de objetos); alocar identificadores de objetos persistentes ou ponteiros a objetos persistentes; armazenar conjunto de objetos (a aplicao interage para descobrir o objeto desejado).

5. Sistemas Persistentes
H vrios Bancos de Dados Orientados a Objetos, embora existam diferenas na arquitetura do sistema, possuem caractersticas comuns em termo de linguagem de programao. Em diversas linguagens de programao orientadas a objetos existe a possibilidade de redefinir nomes de atributos e mtodos e operaes dos mtodos, esta redefinio chamada de sobrecarga (Overloading/Overriding). Esta facilidade permite os operadores se comportarem de acordo com a situao apresentada. A Linguagem de Definio de Objetos da ODMG O ODMG (Object Data Management Group) tem trabalhado na padronizao de extenses das linguagens de programao orientadas a objetos, de modo que elas aceitem o mecanismo de persistncia de objetos. O ODMG prope a extenso em duas partes: Linguagem de Definio de Objetos (Object Definition Language - ODL); Linguagem de Manipulao de Objetos (Object Manipulation Language - OML). Abaixo apresentado um exemplo da linguagem de definio de objetos da ODMG, utilizando a linguagem de programao C ++. Class Pessoa: Public Objeto_Persistente { Public: String nome; String endereo; };

4 de 6

29/08/2012 15:50

Bancos de Dados Orientados a Objetos (Resumo)

http://algol.dcc.ufla.br/~heitor/Artigos/Artigo_007.html

Class Cliente: Public Pessoa { Public: Date membro_desde; Int cliente_id; Ref <Agncia> origem_agncia; Set <Ref <Conta>> contas inverse Conta : : proprietrios; }; Class Agncia: Public Objeto_Persistente { Public: String nome; String endereo; Int ativos; }; Class Conta: Public Objeto_Persistente { Private: Int saldo; Public: Int nmero; Set <Ref <Cliente>> proprietrios inverse Cliente : : contas; Int entrar_saldo(); Int atualizar_saldo(int delta); }; Comentrios a respeito do exemplo acima: a palavra-chave Private indica que os atributos e os mtodos so visveis apenas pela classe; a palavra-chave Public indica que os atributos e os mtodos so visveis por todas as classes; os tipos int, string e date so definidos em C ++; os tipos string e date so definidos pelo ODMG; os gabaritos Ref<tipo> e Set<tipo> so definidos pelo ODMG de maneira independente do tipo; a clusula inverse utilizada para especificar restries de integridade referencial. A Linguagem de Manipulao de Objetos da ODMG

5 de 6

29/08/2012 15:50

Bancos de Dados Orientados a Objetos (Resumo)

http://algol.dcc.ufla.br/~heitor/Artigos/Artigo_007.html

Ao escrever o cdigo para manipular dados em bases de dados deve-se primeiro abrir um banco de dados e em seguida iniciar a transao. Uma transao consiste em uma seqncia de passos delimitados por duas palavraschaves: Begin e Commit.

[Voltar]

[e-mail]

6 de 6

29/08/2012 15:50

Anda mungkin juga menyukai