Sie sind auf Seite 1von 17

Apostila 3 Banco de Dados Orientados a Objetos

Data: 15/05/2007 Professor: Rogrio Morais Rocha

1 de 17

MODELO RELACIONAL-OBJETO Viso geral da SQL e suas caractersticas objeto-relacionais. Tipos de dados, array e multiconjunto. Caracteristicas objeto-relacionais do Oracle. Evoluo e tendncias atuais da tecnologia de banco de dados.

Bancos de Dados Relacionais-Objeto Com o surgimento do modelo orientado a objetos, nos anos 90 acreditava-se que os bancos relacionais, que dominavam o mercado, fossem gradativamente substitudos por bancos de dados orientados a objetos. Entretanto, apesar das comprovadas vantagens apresentadas por modelos de dados orientados a objetos na modelagem de aplicaes, poucos foram os gerenciadores de bancos de dados construdos especificamente conforme este paradigma. O mercado hoje ainda continua dominado por bancos de dados relacionais, devido sua tecnologia comprovada e especializada. Os bancos relacionais so o resultado de muitos anos de pesquisas, que resultaram em bancos com alto desempenho, tanto no gerenciamento de transaes como na eficincia para resoluo de consultas.

Entretanto, bancos relacionais no se mostraram adequados para armazenar e manipular adequadamente dados de aplicaes avanadas, cada vez mais comuns nos dias de hoje, e que apresentam um nmero muito grande de informaes associadas. Exemplos destas aplicaes so:

Mapas de sistemas de informao geogrfica e espacial; Imagens em sistemas multimdia; Dados biolgicos; Projetos arquitetnicos em Projetos Assistidos por Computador (CAD); Sries de dados histricos para transaes comerciais.

As vantagens do modelo orientado a objetos nunca foram questionadas. Muita aplicaes seriam grandemente beneficiadas caso uma modelagem, feita atravs de um modelo orientado a objetos, pudesse ser implementada diretamente em bancos de dados relacionais. Para permitir a utilizao
Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

2 de 17

da orientao a objetos, os fabricantes destes bancos passaram a incorporar alguns dos seus conceitos aos bancos relacionais, dando origem ao que denominado de Bancos de Dados Relacionais-Objeto (BDROs). Nestes, apesar do modelo de implementao ser relacional, so disponibilizadas algumas facilidades para sua utilizao como se fossem bancos orientados a objetos. Tem-se, assim, um modelo semanticamente rico para a modelagem das aplicaes, e, simultaneamente, eficincia no gerenciamento de dados.

BDRO constituem uma tecnologia relativamente nova, incorporada a alguns bancos de dados comerciais tais como Oracle, DB2 e PostgreSQL.

Modelo de Dados Relacional Objeto Um banco de dados relacional-objeto se baseia em um modelo de dados relacional-objeto. O modelo de dados relacional-objeto , na realidade, uma extenso do modelo relacional tradicional, adicionando a este caractersticas de orientao a objetos. Deste modo, toda a tecnologia desenvolvida para os modelos relacionais, tais como suporte linguagem de consulta SQL, gerncia de transaes, processamento e otimizao de consultas, est disponvel nestes modelos.

Mesmo que para um usurio o modelo de dados relacional-objeto tenha todas as caractersticas de um modelo orientado a objetos, fisicamente sua implementao feita atravs de tabelas, ou seja, como um modelo relacional. A semntica da aplicao modelada e representada atravs de objetos, enquanto sua implementao fsica feita na forma relacional.

Uma das principais vantagens de estender um modelo relacional a possibilidade de utilizar os dados de sistemas legados, geralmente implementados segundo modelos relacionais, fazendo sua migrao para um novo sistema de banco de dados de uma forma gradual e transparente ao usurio.

As principais extenses ao modelo relacional que caracterizam os modelos relacionais-objeto so: Definio de novos sistemas de tipos de dados, mais ricos, incluindo tipos de dados complexos;
Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

3 de 17

Incorporao de novas funcionalidades ao SGBD para manipular este novos tipos complexos de dados; Suporte a herana; Possibilidade de manipulao de objetos diretamente por parte do usurio; Extenses feitas na linguagem SQL, para possibilitar manipular e consultar objetos.

A utilizao dos conceitos de orientao a objetos adicionada possibilidade de definir tipos complexos de dados possibilita que modelos E-R sejam facilmente implementados, o que no acontece diretamente com o modelo relacional.

A verso mais atual da SQL, SQL:1999, apresenta caractersticas para manipular e consultar bancos que implementem o modelo relacional-objeto. uma extenso da SQL-2 (SQL 92) incluindo tratamento de objetos (objetos complexos, tabelas aninhadas, TADs, referncias, identificadores de objetos, herana e definio de comportamento), consultas recursivas, instrues de programao, etc. Os exemplos a seguir sero apresentados de acordo com esta linguagem.

Os principais aspectos includos na SQL:1999 para dar suporte ao tratamento de objetos so: Relaes aninhadas (objetos linha); Tipos complexos de dados; Herana; Referncias e OIDs; Consultas mais complexas; e Definio de comportamento.

Relaes aninhadas

Em bancos relacionais, os domnios de todos os atributos so atmicos, ou seja, domnios cujos elementos so considerados unidades indivisveis.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

4 de 17

Muitas aplicaes requerem que se armazene "objetos", que representam a realidade de uma forma mais natural. Neste caso, o banco de dados visto como um conjunto de objetos. Em muitos casos no possvel representar um determinado objeto do mundo real atravs de somente um registro, sendo necessrios vrios registros para sua representao. importante que o usurio tenha acesso a este banco de dados atravs dos objetos, sem tomar conhecimento de sua implementao fsica.

Segundo a SQL:1999, uma das formas de definir um objeto, atravs da definio de um objeto linha (row object). Um tipo objeto linha define a estrutura de uma tupla, na forma de um registro.

Para permitir a representao de objetos que necessitam ser representados atravs de mais de um registro, o modelo relacional estendido incorporando relaes aninhadas. Isto significa que o domnio de um atributo pode ser uma relao, e no somente um valor atmico.

O exemplo a seguir permite que se entenda melhor o que significa este conceito. Consideremos uma aplicao que representa uma livraria. Cada livro possui um ttulo, pode ter um ou mais autores, tem um preo de venda, e tem uma data de publicao, sendo representado pela seguinte relao:

Vamos supor que a esta relao apresente 2 tuplas, representadas na tabela 1.1.

Tabela 1.1. Tabela representando a relao LIVROS

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

5 de 17

Vemos na tabela acima que o domnio do atributo autores uma relao, composta, por sua vez, de dois atributos: nome e sobrenome. Alm disso, vemos que o atributo autores pode ser multivalorado, ou seja, pode ser composto de vrias tuplas. Isto caracteriza o que denominamos de relaes aninhadas. importante frisar que no existe limitao para o nvel de aninhamento de relaes.

Uma tupla de uma relao aninhada pode ser vista como um item de dado, o que leva a uma correspondncia um-para-um entre itens de dados e objetos na viso de um usurio. importante lembrar que fisicamente as relaes aninhadas continuam sendo implementadas atravs de tabelas distintas, de forma transparente ao usurio que tem acesso ao item de dado completo, como se estivesse em uma nica tabela.

Assim, de acordo com o modelo relacional-objeto, um objeto representado por um tupla de uma relao. Para simplificar a representao dos domnios constitudos por relaes, eles so representados na modelagem somente por um nome, que o nome do relacionamento. Assim, usando o exemplo anterior, podemos definir uma classe de objetos denominada LIVROS, sendo uma instncia desta classe representada por uma tupla da tabela. Cada livro (objeto desta classe) apresenta os seguintes atributos: titulo, com valor atmico (string); autores - atributo multivalorado representando uma coleo de valores, de nmero varivel, pois um artigo pode ter um ou mais autores. Cada um destes valores pode ser recuperado de forma independente, como por exemplo, quando se quer todos os artigos escritos por um determinado autor, mesmo que este seja um de uma srie de autores; preco_venda - valor atmico, contendo o preo atual de venda deste livro; data_publicacao - composto por dia, ms e ano.

A definio dos atributos multivalorados feita diretamente na modelagem da aplicao.

Assim, no modelo relacional-objeto o domnio de um atributo pode ser uma relao, sendo que os atributos desta relao podem tambm ser representados por relaes, ou seja, relaes podem

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

6 de 17

armazenar outras relaes. Desta forma, o modelo relacional-objeto permite que um objeto complexo pode ser representado por uma nica tupla de uma relao.

Tipos Complexos de Dados Uma das principais caractersticas do modelo relacional-objeto a possibilidade de definir tipos complexos de dados. Conforme j visto no ltimo exemplo apresentado, as extenses feitas aos domnios para o modelo relacional no se restringem a relaes aninhadas. Podem ser definidos domnios com valores multivalorados estruturados de diferentes formas, seja atravs de arranjos (arrays), de conjuntos (sets) ou de multiconjuntos (multisets), cada uma delas com diferentes formas de organizao, manipulao e acesso. Os valores dos atributos destes domnios so sempre outros objetos, que tambm podem ser compostos de outros objetos.

Outra caracterstica importante na utilizao deste modelo a possibilidade de definir referncias a tuplas definidas atravs de esquemas prprios. Para isso, acrescentada ao modelo a possibilidade de definio de tipos complexos de dados. Estes tipos complexos, tambm conhecidos como Tipos Abstratos de Dados (TADs), definem no somente a estrutura que os objetos criados com este tipo tero, mas tambm seu comportamento e possveis heranas. Os tipos de dados assim definidos so armazenados juntamente com o esquema no banco de dados, e podem ser utilizados por aplicaes que utilizem este banco. Estes tipos definidos pelo modelo relacional-objeto diferem dos tipos definidos em linguagens de programao (incluindo as linguagens de programao persistentes), pois os ltimos no so armazenados no banco de dados, podendo ser utilizados somente pelos programas que incluem um arquivo textual contendo as declaraes.

Usando a SQL:1999 para modelar o exemplo apresentado na seo anterior, inicialmente definido o tipo correspondente a um objeto livro, sendo depois criada a tabela livros com este tipo. Na definio de um tipo podem ser utilizados outros tipos com domnio de atributos. A tabela do exemplo anterior pode ser criada definindo inicialmente os tipos utilizados como domnios (TNome e TData), depois o tipo de um livro (TLivro):

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

7 de 17

As declaraes de tipos no criam tabelas. Estes tipos so usados no lugar da lista de atributos nos comandos que criam as tabelas (CREATE TABLE). Por exemplo, a declarao a seguir cria a tabela livros com o tipo definido acima:

Uma vez definido um tipo de dado, diferentes tabelas podem ser definidas de acordo com este tipo, sendo elas diferenciadas entre si pelo nome. Assim, o mesmo tipo definido para um livro poderia ser utilizado para criar uma tabela de apostilas:

Uma tabela definida com base em um TAD difere de tabelas convencionais do modelo relacional sob vrios aspectos:

Cada linha da tabela tem um OID - um identificador de objeto; As linhas desta tabela podem ser referenciadas por outros objetos do banco de dados.

Como exemplo da utilizao de outros tipos complexos de dados, poderamos alterar a definio do conjunto de autores para um arranjo no qual cada elemento conteria o nome completo de um autor. Esta definio teria a vantagem de apresentar uma ordenao (o que no acontece no caso de conjunto), podendo ser identificado quem o primeiro autor, quem o segundo, e assim por diante. Supondo um nmero mximo de 10 autores, a definio de TLivro seria alterada para:
Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

8 de 17

Objetos longos Novas aplicaes, tais como CAD (Computao grfica) e SIG (Sistemas de Informao Geogrfica), requerem que grandes objetos complexos possam ser utilizados na modelagem. Isto aceito pelo modelo relacional-objeto ao permitir a definio de objetos longos. Assim, so tratados como um nico objeto fotografias, imagens mdicas de alta resoluo, vdeos, textos longos, etc. Deste modo, os objetos da aplicao so representados diretamente no banco de dados, integrados aos outros dados, e no em arquivos separados.

Objetos longos - LOB (Large Objects), so armazenados diretamente no BDOR como atributos de tabelas, sendo considerados parte do esquema do BD, no precisando ser mantidos e tratados em arquivos separados. A SQL:1999 define alguns tipos de dados para tratar destes objetos longos:

CLOB (Character LOB) para textos longos; BLOB (Binary LOB) para imagens.

Os valores destes domnios so da ordem de KB, MB e GB. Como exemplo, a definio de um tipo para autor de um livro poderia incluir seu curriculum vitae completo e sua foto:

Herana O modelo orientado a objetos requer que sejam utilizados conceitos de herana. O modelo relacional-objeto suporta somente herana simples (herana mltipla no contemplada). Herana est presente no nvel dos tipos e no das classes.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 3 Banco de Dados Orientados a Objetos


Data: Herana 15/05/2007 atravs da Professor: definio de Rogrio Morais Rocha representada atravs de

9 de 17
relacionamentos

tipos

supertipo/subtipo. Consideremos, por exemplo, a definio de um tipo pessoa na mesma aplicao que representa uma livraria:

Uma pessoa no contexto de uma livraria pode ser um funcionrio ou um cliente. Nos dois casos, as propriedades do tipo TPessoa esto presentes. A figura 1.4 mostra a estrutura destas classes.

As subclasses para representar os dois papis diferentes desempenhados por uma pessoa nesta aplicao podem ser criadas a partir das seguintes definies de tipos:

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

10 de 17

Herana tambm representada no nvel das tabelas do banco de dados. Os tipos das tabelas filhas devem ser subtipos da tabela pai. Devido ao conceito de herana, todas as tuplas das tabela filhas esto implicitamente presentes na tabela pai.

Usando este conceito, o exemplo anterior representado da seguinte maneira:

Diferentes formas de armazenamento das subtabelas podem ser implementadas para aumentar a eficincia do banco de dados. A forma natural a de armazenar os atributos comuns, herdados pelas subtabelas, somente na tabela da superclasse. Nas subclasses so armazenados somente os atributos especficos de cada uma delas. Entretanto, para melhorar a eficincia, podem ser replicados os atributos herdados nas subclasses, facilitando desta forma as consultas, pois todos os atributos da subclasse seriam encontrados na mesma (tanto os herdados como os especficos). O conceito de herana torna mais natural a definio do esquema em um banco de dados relacional-objeto. Se a herana no estivesse presente, o projetista do banco de dados precisa encadear explicitamente as tabelas das subclasses s suas superclasses atravs de chaves primrias, e definir restries entre a tabelas para garantir restries referenciais e de cardinalidade. A utilizao da herana permite a utilizao de funes definidas para supertipos nos objetos pertencentes aos subtipos, permitindo desta forma a extenso ordenada do banco de dados atravs da incorporao de novos tipos.

Referncias e OIDs No modelo relacional-objeto, um atributo pode referenciar diretamente um outro objeto. O domnio deste tipo de atributo consiste em um ponteiro lgico para um objeto de um determinado tipo. Desta forma so modelados relacionamentos de associao entre objetos. Somente pode ser referenciada uma tabela que tenha definido um OID (identificador de objeto).

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

10

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

11 de 17

A utilizao de referncias no semelhante a uma chave estrangeira chaves estrangeiras podem ser compostas. O modelo relacional-objeto no estrangeiras. permite a definio de chaves

Como

exemplo

desta

forma

de relacionamento,

consideremos a

definio

de

um

tipo

representando uma seo da livraria. Cada seo identificada por um nome, possui uma localizao e um chefe. Este chefe uma referncia direta a um objeto:

No tipo definido acima, TSecao, o domnio do atributo chefe uma referncia a um objeto de tipo TFuncionario.

Quando mais de uma tabela pertence a um mesmo tipo, a definio de uma referncia necessita adicionalmente da indicao de qual a tabela que se quer referenciar, ou seja, necessria a definio do escopo da referncia. Isto feito atravs da clusula "scope", no momento da definio de uma tabela com o tipo que contm algum atributo do tipo referncia. Esta clusula somente necessria no caso de existirem duas ou mais tabelas do tipo referenciado. No exemplo acima, caso mais de uma tabela tenha sido declarada com o tipo Funcionario, a definio do escopo da referncia para a tabela Funcionarios ao criar a tabela Secoes feita da seguinte maneira:

A manipulao de tabelas que contm atributos do tipo referncia deve ser feita acessando diretamente os objetos referenciados. Seguindo com o mesmo exemplo anterior onde foi definida a tabela (classe) Secoes, vamos supor que tenham sido instanciadas as diferentes sees da livraria. Cada instncia desta classe recebe o valor de seu atributo chefe, definido por referncia, acessando o objeto que representa o funcionrio que ser o chefe da seo, como por exemplo:

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

11

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

12 de 17

Para se obter a linha apontada por uma referncia usado o apontador de referncia "!". Por exemplo, a construo:

retorna o atributo salario da linha apontada por chefe.

Segundo os conceitos de orientao a objetos, o identificador de um objeto (OID) normalmente no visto pelos usurios. Entretanto, em bancos de dados pode ser til tratar o OID como um atributo normal.

Em um BDRO, o identificador de um objeto o valor indicado pelos atributos de referncia. Pode ser definido pelo usurio ou pelo sistema, e constituir uma chave primria. A SQL:1999 permite que uma coluna (domnio de um atributo) contenha referncias para a prpria linha. Por exemplo, vamos alterar a definio do tipo de seo da seguinte maneira:

Na definio do tipo TSecao, a definio do nome da seo indica que seu domnio uma referncia a uma linha do prprio tipo. Na criao da tabela se especifica que a referncia dentro da linha deve apontar para a prpria linha. Da maneira como foi definido (SYSTEM GENERATED), o OID gerado e controlado pelo sistema. A SQL:1999 permite tambm que os valores de OIDs sejam definidos pelo usurio (USER GENERATED), caso em que o atributo definido pelo usurio, mas seu valor controlado pelo sistema.
Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

12

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

13 de 17

Consultas As linguagens de manipulao para BDRO, como a SQL:1999, devem oferecer um mecanismo capaz de especificar consultas que contenham as chamadas expresses de caminho. As consultas so feitas utilizando expresses de caminho para acessar os diferentes campos das tuplas aninhadas que apresentam os objetos complexos. Expresses de caminho so um recurso simples e elegante para navegar pela estrutura dos objetos, pois as linguagens que suportam a escrita de expresses de caminho fornecem um mecanismo uniforme para a formulao de consultas que envolvem diferentes caractersticas do modelo OO, incluindo relacionamentos binrios, derivados e herana.

No contexto do processamento de consultas, vale a pena ressaltar que a existncia de uma expresso de caminho pode sugerir uma ordem de execuo que no necessariamente pode ser a mais eficiente. Uma expresso de caminho pode s vezes ser processada mais eficientemente usando-se junes (ao invs de percorrer diretamente as referncias entre os objetos), ou mesmo sendo percorrida na ordem inversa qual foi definida, percorrendo-se os atributos inversos. O processamento de consultas com expresses de caminho torna-se ainda mais complexo quando levamos em conta a presena de mtodos e aspectos de desempenho. Isto porque os mtodos podem ser implementados em outras linguagens de programao, o que torna extremamente difcil a tarefa do otimizador de consultas de identificar regras de transformao entre operadores e estimar custos das operaes. Alm disso, a maioria das tcnicas de otimizao de consultas j proposta na literatura at hoje no so diretamente aplicveis pois no consideram as caractersticas novas do modelo OO em relao ao modelo relacional. Para contornar os problemas de desempenho no processamento de expresses de caminho, novos recursos como a definio de ndices para expresses de caminhos so considerados por trabalhos na literatura. Em [14] encontra-se um estudo detalhado da resoluo de consultas para modelos relacionaisobjeto.

Definio de comportamento

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

13

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

14 de 17

O modelo relacional-objeto permite ao usurio a definio de funes e procedimentos para representar os mtodos dos objetos. O padro SQL:1999 permite a manipulao de cdigo de programa atravs de trs formas diferentes: mtodos, funes e procedimentos.

O corpo de um mtodo definido separadamente, sendo seu nome adicionado definio do tipo. Por exemplo, consideremos a seguinte alterao na definio do tipo de livro, acrescentando a este tipo a definio de um mtodo que altera o preo de venda do livro, acrescentando a ele um determinado percentual (passado como parmetro):

Funes e procedimentos podem ser definidos fora do TAD, atravs de declaraes CREATE FUNCTION e CREATE PROCCEDURE. A identificao da funo/procedimento a ser executado determinada em tempo de compilao (early binding).

A SQL:1999 j vem com alguns mtodos pr-definidos: construtor - inicializa valores de atributos. Se T o nome de um ADT, T() o nome do construtor. O construtor padro atribui null a todos os atributos do objeto; acessadores (observer function) - aplicado um por atributo, devolve o valor deste atributo. So equivalentes aos mtodos get de LPOO. Se A o nome de um atributo, e X uma varivel cujo valor um objeto, A(X) ou X.A devolve o valor do atributo A; alteradores (mutator function) - tambm aplicado um por atributo, atribui um valor a este atributo. Esta funo sobre-escreve a instruo de atribuio da linguagem de BD.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

14

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

15 de 17

Funes e procedimentos podem ser definidos basicamente de duas maneiras diferentes: atravs de uma linguagem de programao, como bindings para Java, C ou C++; ou utilizando uma linguagem de manipulao de dados tipo SQL, como o PL/SQL para o Oracle ou o TransactSQL para o MS SQL Server. As funes definidas atravs de linguagens de programao tendem a ser mais eficientes do que aquelas definidas atravs de linguagens do tipo SQL. Entretanto, quando estas precisam ser compiladas externamente e depois carregadas e executadas sobre o banco de dados, trazem o risco de introduzir erros no banco, podendo corromper a estrutura interna do banco. Bancos de Dados Relacionais-Objeto Comerciais Muitos dos aspectos hoje apresentados por BDROs foram introduzidos pelo Postgres, que evoluiu para o atual PostgreSQL. O primeiro dos grandes vendedores de bancos de dados a incluir caractersticas relacionais-objeto a seus produtos foi o Informix, ao comprar e incorporar o SGBDRO Illustra o qual, por sua vez, foi construdo por empregados do Postgres. Quando a Informix transformou seu banco em um BDRO, introduzindo o Servidor Universal, tanto a Oracle como a IBM seguiram seus passos estendendo seus SGBDs para manipular o modelo relacionalobjeto. Mais tarde, em 2001, a IBM comprou o Informix, passando a incorporar esta tecnologia ao DB2.

Hoje em dia, todos os grandes SGBDs, tais como DB2 da IBM, Oracle e Microsoft SQL Server, suportam a tecnologia relacional-objeto, com diferentes graus de sucesso.

Oracle A partir da verso 8, foram adicionadas caractersticas de objetos ao banco de dados Oracle, um banco de dados relacional, tornando-se assim um SGBDRO. A ltima verso o Oracle 10g. A cada nova verso so includos novos tipos de dados, para representar dados de novas aplicaes. Estes tipos de dados estendidos so definidos e agrupados em cartridges, que oferecem novos tipos e novas funes para manipular esses novos tipos de dados. A cada nova verso do Oracle so disponibilizados novos cartridges, acrescentando ao banco novas funcionalidades. Existem cartridges para trabalhar com dados espaciais, dados multimdia, textos longos, etc.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

15

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

16 de 17

Alm dos tipos bsicos da SQL, o Oracle permite que sejam definidos dois tipos de dados pelo usurio (user defined data types): tipos de objetos e tipos de colees. Enquanto a SQL:1999 fala de tipos (para colunas) e de tipos de linha (para relaes), o Oracle a partir da verso 8i/pi usa a notao de tipos de objetos para ambos. Os usurios podem definir seus prprios tipos (para representar os objetos de seus negcios), e os relacionamentos (herana, agregao) entre estes tipos; podem armazenar as instncias destes tipos no banco de dados, seja em uma coluna de uma tabela, ou em tabelas propriamente ditas; e podem consultar, inserir e atualizar estas instncias.

O tipo objeto semelhante ao de classe em orientao a objetos, com exceo da herana. Como em OO, para cada tipo objeto deve ser definido um nome, uma lista de atributos e uma lista de mtodos. Exemplo da definio para o Oracle:

Atributos multivalorados podem ser representados atravs do tipo VARRAY. Um VARRAY possui implcito um contador COUNT que indica o nmero do elemento corrente, e um limite LIMIT para indicar o nmero mximo de elementos que o arranjo pode ter. Exemplo:

Atributos do tipo referncia podem ser definidos, atravs da utilizao do construtor REF. Os objetos tm identificadores nicos, denominados Object ID, que podem ser usados como referncias entre objetos.

Uma propriedade interessante que os dados definidos como objetos tambm podem ser tratados de forma relacional. Assim, dados definidos atravs de referncia podem ser acessados atravs destas referncias, ou atravs de junes explcitas entre os objetos das tabelas. Por outro lado, o
Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

16

Apostila 3 Banco de Dados Orientados a Objetos


Data: 15/05/2007 Professor: Rogrio Morais Rocha

17 de 17

Oracle permite que um usurio trate dados relacionais como se fossem objetos, atravs de vises de objetos (object views).

Alm disso, os usurios podem definir mtodos para definir operaes sobre os objetos definidos. Estes mtodos podem ser implementados como procedimentos armazenados escritos em Java ou PL/SQL. O Oracle disponibiliza um conjunto grande de APIs para ligao com diferentes linguagens de programao, oferecendo suporte nativo para Java e PL/SQL dentro do banco de dados, com forte ligao entre o sistema de tipos relacionais-objeto e os procedimentos escritos nestas duas linguagens. O banco disponibiliza tambm o mapeamento entre os tipos SQL e as linguagens de programao, tais como Java e C++, de modo a disponibilizar o acesso a instncias dos tipos SQL a partir de aplicaes Java e C++.

Campus Pampulha: Avenida Antnio Francisco Lisboa, 192 - Bairro Bandeirantes (ao lado do zoolgico) - BH - MG Campus Centro: Avenida Afonso Pena, 271 (ao lado da praa da rodoviria) - BH - MG

17

Das könnte Ihnen auch gefallen