Sei sulla pagina 1di 42

Sistemas de Informao I

ODBMS Noes SGBDOO e SGBDRO

Jos Correia (jcorreia@ispgaya.pt) 2001 Mrio Santos (msantos@ispgaya.pt) 2002

SGBD + Orientao por Objectos


Funes SGBD
Persistncia Transaces Controlo da Concorrncia Recuperao Pesquisa Verses Integridade Segurana Desempenho

Orientao por Objectos

Tipos de Dados Abstractos Herana Identidade dos Objectos

Algumas Estratgias... Estender uma LPOO com capacidades BD


OPAL (Smalltalk)

Fornecer bibliotecas OO com funes de SGBD


ObjectStore, Ontos, Versant

Estender linguagem BD com capacidades OO


Oracle, Informix, Ontos
Noes SGBDOO e SGBDRO 2

SGBD Orientado por Objectos


Ideia: pegar numa linguagem de programao OO (por exemplo, C++ ou Java), juntar persistncia e coleces
Exemplo:
class frame { int frameno; jpeg *image; int category; } persistent set <frame *> frames; foreach (frame *f, frames) return f->image->thumbnail();

Terminar o programa; recomear outra vez


Variveis persistentes (por exemplo, frames) mantm os seus valores!

Noes SGBDOO e SGBDRO

Sistema de Tipos
Os sistemas de BD relacionais suportam uma coleco pequena e fixa de tipos de dados (inteiros, reais, datas, booleanos, cadeias de caracteres, ), os quais provaram ser adequados para os domnios de aplicao tradicionais, tais como o processamento de dados administrativos. No entanto, em domnios de aplicaes novos (CAD/CAM, multimedia, etc), tm de ser manipulados tipos de dados muito mais complexos.
Tipicamente, estes dados complexos tm sido guardados em sistemas de ficheiros (OS file systems), ou estruturas de dados especializadas, e no em SGBD.

O sistema relacional de tipos pode ser estendido de 3 maneiras:


ADTs definidos pelo utilizador Construtores de tipos Tipos referncia
Noes SGBDOO e SGBDRO 4

Caractersticas Object Oriented


Tipos de dados definidos pelo utilizador
As bases de dados relacionais no permitem aos utilizadores definir os seus prprios tipos de dados.
- Alguns autores, nomeadamente Date [date95], argumentam que isto uma deficincia das implementaes actuais e no uma limitao do modelo relacional.

Objectos encaixados (nested objects)


As bases de dados de objectos permitem definir tipos de dados complexos, possivelmente embebidos em hierarquias is-a e/ou has-a.

Containers: sets, lists, bags...


Sets, lists, bags e outros containers so usados, entre outras coisas, para representar o resultado de uma query, que retorne vrios objectos.

Noes SGBDOO e SGBDRO

Caractersticas Object Oriented (cont.)


Mtodos
Um mtodo um pedao de cdigo associado a um objecto e que tem privilgios para aceder ao estado do objecto. Em algumas situaes, pode ser mais eficiente invocar um mtodo especialmente escrito para tal, do que executar uma query sobre os atributos.
- Os stored procedures (armazenados na base de dados) que podem ser executados do lado do servidor foram, em certos aspectos, os percursores desta ideia.

Regras
As regras (rules) so um nome genrico para cdigo que activado automaticamente quando certos eventos ocorrem.

Preservao do strong typing ao longo da interface


Preservao do strong typing na comunicao entre os sistemas de tipos da aplicao e da base de dados.
Noes SGBDOO e SGBDRO

SGBDOO
Os Sistemas de Gesto de Bases de Dados Orientados por Objectos (SGBDOO)
Adicionam persistncia atravs de objectos usados em linguagens de programao OO: C++, Java Fazem objectos da base de dados aparecer como objectos da Linguagem de Programao

Novos tipos de coleco


Construtores de tipo: set<>, bag<>, list<> Iteradores para percorrer os tipos de coleco

Deve fornecer uma linguagem de interrogao rudimentar


Como fazer uma seleco? E uma projeco?
- join set<emp *>emps, set<dept *>depts?

Podem ser usados apontadores neste modelo de dados e junes eficientes baseadas em apontadores.

Quais as caractersticas de um SGBD que faltam aqui?


Noes SGBDOO e SGBDRO 7

Vantagens dos SGBDOO


Sistema de tipos rico e flexvel
As aplicaes que definem um sistema de tipos rico para a sua estrutura de dados, podem transport-lo para a base de dados, quando estas estruturas de dados so tornadas persistentes.

Melhores na modelizao de objectos complexos Melhor performance em domnios especficos No existe desadaptao de impedncias (impedance mismatch)
A desadaptao de impedncias eliminada em virtude da base de dados se tornar uma extenso persistente para a linguagem, em vez de ser um servio externo, com o qual preciso falar atravs de uma interface estreita e limitada.

Os SGBD Orientados por Objectos (SGBDOO) so bons para:


Dados complexos Manipulaes fixas
Noes SGBDOO e SGBDRO 8

Desvantagens dos SGBDOO


No existem fundamentos matemticos
As bases de dados de objectos no possuem uma base matemtica formal. Isto significa que se perde um poderoso instrumento de anlise e deduo.

O encapsulamento quebrado (ou limitado) pelas queries


O encapsulamento (o estado interno de um objecto apenas acessvel atravs dos seus mtodos designados) uma tcnica modular valiosa, mas apresenta problemas com as queries.
- Exemplo: Mesmo que a classe Empregado tenha um conjunto extenso de mtodos - contratar_emp, alterar_salario, despedir_emp, etc. podemos no ser capazes de responder a uma questo simples, do gnero, quem o chefe deste empregado?, a no ser que um mtodo apropriado tivesse sido escrito.

Ter de existir um compromisso entre flexibilizar do encapsulamento (permitindo s queries violar o encapsulamento em determinadas circunstncias) e restringir severamente a classe de possveis queries.

Noes SGBDOO e SGBDRO

Desvantagens dos SGBDOO (cont.)


Navegao procedimental
Os sistemas de objectos introduzem apontadores para ligao dos objectos entre si. Este aspecto, induz um estilo de navegao procedimental entre os itens de dados, o que pode ser visto como um passo atrs a partir da aproximao de alto nvel, que foi introduzida pelos sistemas relacionais.

Discute-se que um retrocesso ao modelo rede! No h um suporte claro para interrogaes Problemas de segurana no acesso aos dados Ainda no atingiram a mesma maturidade dos SGBDR

Sucesso moderado/fraco (atendendo s expectativas!) no mercado

Noes SGBDOO e SGBDRO

10

O que um ODBMS?
Mas, afinal, que um ODBMS (Object Database Management System)? Diferentes pessoas do diferentes respostas.

1989: 1 Manifesto
O modelo relacional est velho e inadequado. O primeiro manifesto, [atkinson89], dizia: OK, ningum concorda no que um OODBMS; deste modo, vamos dar um conjunto de regras de ouro. Se um sistema de base de dados respeitar estas regras, podemos design-lo OO. As regras acentuaram, principalmente, as propriedades OO e consideraram as bases de dados relacionais como legacy systems (sistemas ultrapassados) no adequadas para os novos tipos de aplicaes.
Noes SGBDOO e SGBDRO

11

O que um ODBMS? (cont.)


1990: Third Generation DBS, 2 Manifesto
Adicionar classes e herana, mas manter as queries declarativas e o SQL. O 2 manifesto, [cadf90], foi um contra-manifesto em relao ao 1 e apresentou um conjunto prprio de regras. Acentuou que os sistemas relacionais introduziram dois desenvolvimentos principais - acesso no-procedimental e independncia dos dados - que seria mau abandonar em qualquer sistema futuro. O SQL, definido como intergalactic dataspeak, tinha de ser suportado.

1995: 3 Manifesto
Estender o modelo relacional (permitindo a definio de tipos de dados novos), mas deitar fora o SQL O 3 manifesto, [darwen95], mais tcnico e formal que os dois primeiros, apresentou um sistema enraizado no modelo relacional. No entanto, alguns autores, [cadf90], defendiam que o SQL no devia ser suportado, porque uma plataforma defeituosa dos ideais relacionais.
Noes SGBDOO e SGBDRO

12

SGBD Relacional-Objecto
Ideia: adicionar caractersticas OO ao sistema de tipos do SQL Plain old SQL, mas
Colunas podem ser de novos tipos (Abstract Data Types - ADTs) Mtodos definidos pelo utilizador em ADTs Colunas podem ser de tipos complexos (ateno 1 Forma Normal!) Tipos referncia e deref Herana e herana em coleces Os velhos esquemas de SQL funcionam! (compatibilidade para trs)

Os vendedores de SGBD relacionais movem-se todos nesta direco (SQL3).

Noes SGBDOO e SGBDRO

13

Exemplo de Esquema Relacional-Objecto


Exemplo: Dinky Entertainment Company A Dinky faz licenciamento da imagem, voz, etc do Herbert. A BD da Dinky usada para gerir as vendas e licenciamento dos produtos relacionados com o Herbert.

CREATE TABLE Frames (frameno integer, image jpeg_im, category integer); CREATE TABLE Categories (cid integer, name text, lease_price float, comments text); CREATE TYPE theater_t AS ROW (tno integer, name text, address text, phone integer) CREATE TABLE Theaters OF TYPE theater_t;

Tipo Complexo

ADT

CREATE TABLE Nowshowing (film integer, theater Tipo ref(theater_t) with scope Theaters, start Referncia date, end date); CREATE TABLE Films (filmno integer, title text, stars Tipo setof(text), director text, budget float); CREATE TABLE Countries (name text, boundary polygon, population integer, language text)
Noes SGBDOO e SGBDRO 14

Coleco

Exemplo de Interrogao em SQL3


Uma query para mostrar uma coleco de imagens reduzidas do Herbert em frente ao por-do-sol, e os respectivos preos, pode ser expressa, em SQL3, da seguinte forma:
SELECT F.frameno, thumbnail(F.image), C.lease_price FROM frames F, categories C WHERE F.category = C.cid AND is_sunrise(F.image) AND is_herbert(F.image);

Os ADTs so manipulados por mtodos definidos pelo utilizador. Exemplos: O mtodo thumbnail produz uma imagem reduzida da imagem original. O mtodo is_sunrise uma funo booleana que analisa uma imagem e devolve V (verdadeiro) se (se e s se) h um por-do-sol na imagem. O mtodo is_herbert devolve V se (se e s se) o Herbert est na imagem. Estes mtodos so escritos numa linguagem tipo C e registados na BD, podendo ser usados em queries da mesma maneira que os mtodos internos (built-in) do SQL (=, +, -, <, >, etc.)
Noes SGBDOO e SGBDRO 15

Outro exemplo em SQL3


Encontrar cinemas com filmes do Herbert a 100Km de Andorra:
SELECT N.theater->name, N.theater->address, F.title FROM Nowshowing N, Films F, Countries C WHERE N.film = F.filmno AND overlaps(C.boundary,radius(N.theater->address, 100)) AND C.name = Andorra AND Herbert F.stars;

O atributo theatre de Nowshowing uma referncia para um objecto de outra tabela.


Usa-se theater->name em vez de deref(theater).name

O atributo stars da tabela films um conjunto de nomes de cada estrela do filme. Atributos com conjuntos de valores so comparados com mtodos para conjuntos:
unio (), interseco (), pertena (), etc.

O mtodo radius retorna um crculo centrado no seu 1 argumento com um raio igual ao 2 argumento.
Noes SGBDOO e SGBDRO 16

Construtores de Tipos
O utilizador pode usar construtores de tipos para gerar novos tipos:
setof(base) - tipo conjunto de elementos do tipo base
- Um set um conjunto de elementos do tipo base, sem repetio e no ordenado.

bagof(base)
- Uma bag uma coleco desordenada de elementos, que podem ser repetidos.

listof(base)
- Uma list um conjunto ordenado de valores do tipo base.

ARRAY(base) - tipo vector de elementos do tipo base RECORDOF(c1:t1, , ck:tk) - tipo registo com n campos

Setof, listof, bagof, ARRAY so chamados tipos coleco ou bulk data types. Os tipos coleco podem ser encaixados:
ARRAY( ROW(age: integer, sal: integer) )
Noes SGBDOO e SGBDRO 17

Tipos, Classes e Objectos


Exemplo: Banco
CLASS Conta = RECORDOF( nr : inteiro; balano : real; titular : REF Cliente) CLASS Cliente = RECORDOF( nc : inteiro; nome : string; contas : SETOF(Conta) )

Por iterao dos construtores obtmse estruturas arbitrariamente complexas Tipos + Mtodos = Classe Os objectos de uma classe so constantes (objectos imutveis) ou variveis desse tipo (mutveis) {2,5,7} objecto imutvel da classe Cint = SETOF(inteiro) s:Cint uma varivel e pode guardar o conjunto {2,5,7}

Conta nr balano titular Cliente nc nome contas ... ... ...

Noes SGBDOO e SGBDRO

18

Abstract Data Types (ADTs)


Os tipos internos do SQL (built-in), int, float, text, etc, so limitados
Tm mtodos simples associados (mtodos aritmticos associados a inteiros, mtodos de comparao associados a strings, etc.)

SGBDRO: o utilizador pode definir novos tipos atmicos (e mtodos associados):


CREATE ABSTRACT DATA TYPE jpeg_im ( internallength = VARIABLE, input = jpeg_in, output = jpeg_out);

So necessrios mtodos de entrada e sada para estes tipos


Exemplo: converter de texto para o tipo interno e vice-versa

A combinao de um tipo de dados atmico e dos seus mtodos associados chamado Abstract Data Type, ou ADT.
Elevada modularidade facilita a manuteno O encapsulamento das variveis internas impe disciplina no acesso informao. Obtm-se melhor qualidade e robustez ao software.
Noes SGBDOO e SGBDRO

19

Mtodos definidos pelo Utilizador


ADTs novos precisam de mtodos para os manipular:
Exemplo: para as imagens JPEG: thumbnail, crop, rotate, etc. Estes mtodos so escritos em C ou Java e depois compilados. Estes mtodos tm de ser registados no SGBDRO, que depois liga (link) dinamicamente estas funes ao servidor.
CREATE FUNCTION thumbnail(jpeg_im) RETURNS jpeg_im AS EXTERNAL NAME '/a/b/c/dinky.o' LANGUAGE 'c'; CREATE FUNCTION is_sunrise(jpeg_im) RETURNS boolean AS EXTERNAL NAME '/a/b/c/dinky.o' LANGUAGE 'c'; CREATE FUNCTION radius(polygon, float) RETURNS polygon AS EXTERNAL NAME '/a/b/c/dinky.o' LANGUAGE 'c'; CREATE FUNCTION overlaps(polygon, polygon) RETURNS boolean AS EXTERNAL NAME '/a/b/c/dinky.o' LANGUAGE 'c';

Estes statements definem os aspectos salientes dos mtodos


o tipo do ADT (function), o tipo retornado (jpeg_im, boolean, etc) e a localizao do cdigo
Noes SGBDOO e SGBDRO 20

OIDs e Tipos Referncia


Nos ODBMS pode ser atribudo um object identifier (OID) aos objectos de dados
A validade de um OID acompanha toda a vida do objecto

Um OID pode ser usado para ser referido (ou apontado) de qualquer parte dos dados -- Tipos Referncia
A referncia tem um tipo (semelhante ao tipo de um apontador numa LP). Exemplo: ref(theater_t) um tipo representando uma referncia para um objecto do tipo theater_t Uma referncia para um tipo T, REF T, um tipo cujos valores so adequados para encontrar eficientemente um valor do tipo T:apontador para endereo de memria virtual, ou uma localizao num disco de uma mquina (distribuio).

No confundir tipos complexos com tipos referncia!


mytheater AS ROW(tno integer, name text, address text, phone integer) theater ref(theater_t)

Parecem o mesmo por fora mas so diferentes!


semelhante a por valor vs. por referncia nas Linguagens de Programao
Noes SGBDOO e SGBDRO 21

Objectos complexos
objectos atmicos
25, Joo, 1.3

conjunto
{Joo, Maria, Susana}

tuplo
[ Nome:Pedro, Idade:25 ]

tuplo hierrquico
[ Nome:[Prprio: Joo, Apelido:Costa], Idade:25, Filhos: {Pedro, Paulo, Maria} ]

conjunto de tuplos
{ [Nome:Pedro, Idade:25], [Nome:Joo,Idade:7], [Nome:Maria, Idade:13] }

relao encaixada
{ [Nome:Pedro, Filhos:{Max, Susana}], [Nome:Joo, Filhos:{Maria, Francisco}] }
Noes SGBDOO e SGBDRO 22

Objectos complexos baseados em valores


Objectos complexos baseados em valores
Sem OID e sem referncias Unicidade de um objecto depende apenas do estado (conjunto de valores atmicos das variveis de instncia) Espao de objectos: florestas de rvores (semelhana com modelo hierrquico e modelo relacional no na primeira forma normal) Espao transitrio versus Espao persistente
- objectos na memria so caminhos (path) constitudos por atributos (selectores em tuplos) e chaves (selectores em conjuntos)

Igualdade de Objectos complexos baseados em valores


Dois objectos atmicos so iguais sse forem o mesmo. Dois objectos tuplo so iguais sse os valores em cada atributo forem iguais. Dois objectos conjunto S e S' so iguais sse para cada elemento de S (S') existir um elemento de S' (S) igual.
Noes SGBDOO e SGBDRO 23

Objectos complexos sem identidade


CLASS Nome= RECORDOF( proprio:string, apelido:string) CLASS Morada= RECORDOF( cidade:string, rua:string, no:inteiro) CLASS Pessoa = RECORDOF( nome:Nome, filhos:SETOF(Pessoa), endereo:Morada, esposo:Nome))
Maria Nome Prprio Esposo Endereo

Joo Nome Prprio

Esposo Endereo

Prprio Apelido Filhos No Joo Costa Cidade Rua Costa Maria 34 Braga Direita Antnio Joana

Apelido Prprio Apelido Filhos No Maria Costa Cidade Rua Costa Joo 34 Braga Direita Antnio Joana Apelido

tuplo conjunto
24

Noes SGBDOO e SGBDRO

Objectos complexos baseados em identidade


Igualdade de Objectos complexos baseados em identidade
Idnticos. Dois objectos tm identificadores idnticos sse forem o mesmo objecto. Igualdade superficial (shallow equal). Dois objectos so superficialmente iguais sse tm o mesmo tipo e os valores do contedo so idnticos;
- dois objectos atmicos so iguais se denotam o mesmo elemento no domnio de valores base.

Igualdade profunda (deep equal). Dois objectos so profundamente iguais sse tm o mesmo tipo e os valores do contedo so profundamente iguais; Exemplo: Consideremos 2 objectos complexos da tabela Nowshowing
ROW(538, t89, 6-3-2001, 8-7-2001) ROW(538, t33, 6-3-2001, 8-7-2001) Estes objectos no so shallow equal porque diferem no segundo atributo. No entanto, os objectos podem ser deep equal, se os OIDs t89 e t33 referirem objectos do tipo theater_t que tm o mesmo valor.
Noes SGBDOO e SGBDRO

25

Objectos complexos com identidade


Espao de objectos complexos baseados em identidade (grafo dirigido)
conjunto de identificadores I, conjunto de atributos A objecto (identificador, tipo, valor); identificador I, tipo atmico ou conjunto ou tuplo
- tipo atmico elemento de um domnio de valores atmicos do utilizador - conjunto {i1, i2,, in}, ij I, sem ordem e sem repeties - tuplo [ai:i1, a2:i2, , an:in], ij I, aj A
i1 i2 Prprio Apelido Joo Costa i3 Nome Endereo Filhos i4 CidadeRua No Braga Direita 34 Prprio Esposo i101 Nome

i102 Apelido Costa

tuplo conjunto

Maria

Noes SGBDOO e SGBDRO

26

Estes objectos so iguais?


i1 nome i2 prprio Joo prprio i102 apelido Costa apelido nome filhos i3 endereo cidade i301 i103 filhos i101 i401 esposo i4 i201

rua no Braga Direita 34 esposo

Pessoa1= i1 Pessoa2= i1 Pessoa3= i101 Filhos1= i3 Filhos2= i103

endereo

Pessoa1 = Pessoa2 ? Pessoa1 = Pessoa3 ? Filhos1 = Filhos2 ?

Claro Profundamente; no superficialmente Profundamente e superficialmente


Noes SGBDOO e SGBDRO 27

Queries envolvendo

Coleces Encaixadas
Films filmno title 67 77 Casablanca Seven stars {Bogart, Bergman} {Freeman, BradPitt}

SELECT F.filmno FROM Films F WHERE count(F.stars)>1; Este exemplo ilustra a utilizao de um operador de agregao (COUNT) num conjunto encaixado.
O operador count aplicado uma vez por cada tuplo da tabela films.

SELECT F.filmno, F.title, Films_flat S AS star FROM Films F, F.stars AS S; filmno title Este exemplo gera uma verso flat da tabela films 67 67 77 77 Casablanca Casablanca Seven Seven

star Bogart Bergman Freeman BradPitt

Para cada valor de F, a varivel S sucessivamente limitada pelo conjunto existente no campo F.stars. Noes SGBDOO e SGBDRO

28

Caminhos (Path Expressions)


Podemos ter tipos ROW encaixados (Emp.spouse.name)
Notao ponto e seta encaixadas (Emp->Dept->Mgr.name)

Geralmente, so chamadas expresses de caminho


Descrevem um caminho para os dados

Interrogaes com caminhos podem ser re-escritas como junes. Porque que uma boa ideia?
SELECT E->Dept->Mgr.name FROM Emp E; SELECT M.name FROM Emp E, Dept D, Mgr M WHERE E.Dept = D.oid AND D.Mgr = M.oid;

E que tal Emp.children.hobbies?


Noes SGBDOO e SGBDRO 29

Herana
Tal como em C++, til especializar tipos:
Exemplo: Um Caf-Teatro um teatro, mas tem um atributo adicional representando o menu do teatro CREATE TYPE theatercafe_t UNDER theater_t (menu text); O novo tipo theatercafe_t herda os atributos e mtodos de theater_t, adicionando-lhe o atributo menu, do tipo text

Mtodos de theater_t podem ser aplicados aos seus sub-tipos (mas no vice-versa)
Podem redefinir alguns destes mtodos. Podem definir mtodos adicionais.

O mecanismo de herana cria uma relao explcita na BD entre o sub-tipo (theatercafe_t ) e o super-tipo (theater_t)
Um objecto do sub-tipo tambm considerado um objecto do super-tipo. Quaisquer operaes que so aplicadas ao super-tipo tambm so aplicadas ao sub-tipo.
Noes SGBDOO e SGBDRO

30

Diferentes aproximaes aos ODBMS


Os primeiros SGBD de objectos foram os SGBDOO (OODBMS), os quais foram criados a partir do zero, sem qualquer ligao aos sistemas relacionais. Basearam o seu sistema de tipos em linguagens de programao orientadas por objectos (LPOO) e a partir da adicionaram-lhes caractersticas de bases de dados. Esta aproximao corresponde ao primeiro manifesto. Outra tendncia dos SGBD de objectos iniciou-se nos sistemas relacionais, aos quais foram adicionadas caractersticas OO. Nos 2 e 3 manifestos esta aproximao foi descrita como object relational DBMS, ficando o nome object oriented DBMS para a 1 aproximao e object DBMS como nome genrico para ambas as aproximaes.

Noes SGBDOO e SGBDRO

31

Diferentes aproximaes aos ODBMS


Ambiente de programao OO OODBMS ORDMBS SGBDR (RDBMS)

As duas aproximaes tendem para um ponto comum, mas atingemno a partir de diferentes caminhos. A aproximao OODBMS comea numa arquitectura object oriented e adiciona facilidades para expressar queries declarativas.
alguns dos vendedores de tecnologia de Objectos esto a comear a fornecer suporte para SQL e grandes bases de dados, com um nmero alargado de utilizadores concorrentes.

A aproximao ORDBMS comea numa arquitectura relacional e extende o sistema de tipos com objectos.
os vendedores de SGBD relacionais esto a comear a fornecer extenses requeridas para gerir novos tipos de dados
Noes SGBDOO e SGBDRO

32

SGBD: alternativas
Ao nvel dos SGBD existem, actualmente, 3 alternativas:
SGBD Relacionais (SGBDR / RDBMS) SGBD Orientado por Objectos (SGBDOO / OODBMS) SGBD Relacional-Objecto (SGBDRO / ORDBMS)

SGBD Relacionais
Os SGBDR so, actualmente, a tecnologia de base de dados dominante. Provaram a sua capacidade para gerir grandes volumes de dados bem estruturados. A tecnologia est madura e bem compreendida.

Noes SGBDOO e SGBDRO

33

SGBD: alternativas (cont.)


SGBD Orientado por Objectos
Cota de mercado ainda muito pequena (uma pequena percentagem dos SGBD).

SGBD Relacional-Objecto
Os SGBDRO tentam fazer a ponte entre as tecnologias Relacional e OO, extraindo o melhor de ambas. A maior parte dos vendedores de SGBD relacionais esto a mover-se neste sentido, de modo a que os SGBD suportem objectos complexos do mesmo modo que as estruturas relacionais.

Noes SGBDOO e SGBDRO

34

SGBDR vs SGBDOO: Funcionalidade


Os SGBDR so usados em sistemas OLTP (On-Line Transaction Processing), com grande volume de transaces e de dados (ex: bancos, companhias de aviao, etc.) Em virtude da tecnologia estar devidamente testada e madura, os SGBDR podem fornecer uma disponibilidade/fiabilidade 24x7x365 e nveis de segurana certificados pelos standards do US Department of Defense (DoD). Por outro lado, existem muitas ferramentas de administrao de bases de dados de boa qualidade e uma linguagem standard para DDL (Data Definition Language) e DML (Data Manipulation Language) o SQL! Os SGBDOO j provaram ser bons para operaes com dados complexos e para gerir grafos intrincados e estruturas web. Devido s suas origens linguagens de programao OO fornecem suporte para tipos definidos pelos utilizadores e para Abstract Data Types (ADTs). Muitos dos vendedores de SGBDOO j fornecem capacidades SQL, controlo de concorrncia, tolerncia a falhas e outras funcionalidades dos SGBDR.
Noes SGBDOO e SGBDRO

35

SGBDR vs SGBDOO: Funcionalidade


(cont.)

Noes SGBDOO e SGBDRO

36

SGBDR vs SGBDOO: Complexidade

Source: Digital Equipment Corporation

A partir do grfico, podemos ver que as aplicaes que no so facilmente modelizadas com um SGBDR, so candidatas ideais para uma SGBDOO.

Noes SGBDOO e SGBDRO

37

A Matriz de Stonebraker para Aplicaes


N/ interrogar Dados complexos Interrogar

SGBDOO

SGBDRO SGBDR

Dados simples File System

Mike Stonebraker props esta matriz. Previso: a curto/mdio prazo, a maioria das aplicaes ir para o canto superior direito SGBDRO

Noes SGBDOO e SGBDRO

38

SGBDOO vs SGBDRO: semelhanas


Ambos suportam:
ADTs definidos pelo utilizador Tipos de construo Identidade de objectos Tipos de referncia Herana Linguagem de interrogao para manipular tipos de coleco (OQL e SQL3)

Ambos fornecem:
Funcionalidades de SGBD, tais como controlo de concorrncia, recuperao e suporte de ndices.

Noes SGBDOO e SGBDRO

39

Resumo SGBDOO/RO
SGBDOO: persistent OO programming
De uso difcil Sem SQL mas com OQL
- Apesar de termos definido um SGBDOO como uma LP com suporte para objectos persistentes, o facto de um SGBDOO suportar tipos de coleco torna possvel fornecer uma linguagem de interrogao sobre coleces. - De facto, foi desenvolvido um standard pelo Object Database Management Group (ODMG) chamada Object Query Language (OQL). - A OQL semelhante ao SQL, com uma sintaxe SELECT-FROM-WHERE, suportando, tambm, GROUP BY, HAVING e ORDER BY e muitas das extenses propostas para o SQL3. - O OQL suporta tipos de construo, incluindo sets, bags, arrays e lists. - O OQL tambm suporta tipos de referncia, caminhos de expresso, ADTs e herana e extenses a tipos e queries encaixadas (estilo SQL).

Noes SGBDOO e SGBDRO

40

Resumo SGBDOO/RO (cont.)


O SQL tradicional muito limitado para novas aplicaes --> SQL3!
Operadores internos (built-in) para tipos complexos (mtodos tpicos de conjuntos, indexao de arrays, etc.) Operadores para tipos referncia ( ->) Mtodos definidos pelo utilizador para ADTs

SGBDRO: o melhor dos dois mundos!


Agarrar a indstria e as aplicaes Fcil para quem sabe SQL

Os SGBDRO oferecem novas caractersticas, mas...


no fcil perceber como as usar! as tcnicas de projecto do esquema no esto ainda percebidas o SQL3 foi definido h pouco tempo (1999!) as tcnicas de processamento de interrogaes ainda esto na fase de investigao
Noes SGBDOO e SGBDRO 41

Referncias
Database Management Systems, Cap 21 Object-Database Systems Raghu Ramakrishnan McGraw-Hill International Editions A Gentle Introduction to Relational and Object Oriented Databases Frank Stajano, Novembro 1995 Olivetti Research Limited Limitaes do Modelo Relacional e Outros Modelos, Correia Lopes, FEUP, 2000 Modelo Orientado por Objectos, Gabriel David, FEUP

Noes SGBDOO e SGBDRO

42

Potrebbero piacerti anche