Aula - Modelo Orientado A Objeto

Fazer download em pps, pdf ou txt
Fazer download em pps, pdf ou txt
Você está na página 1de 19

Modelo orientado por objectos

Sumrio
limitaes do modelo relacional modelo de objectos linguagem orientada por objectos modelo de objectos versus modelo relacional

Modelo de objectos - 1

Deficincias
Edifcio( nome, bilhete, rua, cidade, populao, pas )
Jernimos Ajuda Torre B 300 500 100 B Pr. Imprio Calada da Ajuda Pr. Catedral B Lisboa Lisboa Pisa Luanda 1 000 000 1 100 000 200 000 800 000 Portugal Portugal Itlia Angola

redundncia inconsistncia anomalia de apagamento anomalia de insero/ actualizao valores nulos dispndio de espao

Modelo de objectos - 2

Normalizao
Edifcio( nome, bilhete, rua, cidade ) Jernimos 300 Pr. Imprio Lisboa Ajuda 500 Cal. da Ajuda Lisboa Torre 100 Pr. CatedralPisa Cidade( nome, populao, pas ) Lisboa Pisa Luanda 1 000 000 200 000 800 000 tuplo pendente Portugal Itlia Angola

relao na Terceira Forma Normal (Boyce-Codd) - s existem dependncias na chave de cada relao problemas anteriores resolvidos pela decomposio recuperar o aspecto anterior atravs de uma vista create view Monumento as ( select * from Edifcio, Cidade c where cidade = c.nome); problema na actualizao de vistas prejudica a independncia lgica dos dados

Modelo de objectos - 3

Potncia das linguagens relacionais


Quais os monumentos com um preo igual ao mximo da respectiva cidade?
select nome from Edificio e where bilhete = (select max(bilhete) from Edificio where cidade= e.cidade)

linguagem natural, de alto nvel, com acesso arbitrrio elevada declaratividade optimizao a independncia fsica dos dados refora

LIGAES origem destino


Lisboa Madrid Madrid Paris Oslo Madrid Paris Londres Oslo Londres

VIAGENS origem destino


Lisboa Madrid Madrid Paris Oslo Lisboa Lisboa Madrid Paris Lisboa Madrid Paris Londres Oslo Londres Paris Londres Oslo Londres Oslo

impossvel obter o fecho transitivo da relao binria LIGAES s viagens com um nmero fixo de ligaes esta limitao que torna vivel a optimizao LMD no esto pensadas para IGU necessrio recorrer a linguagens genricas

Modelo de objectos - 4

Vantagens do modelo relacional


Simplicidade dos conceitos e do esquema
s relaes esquema fsico separado

Boa base terica Grau elevado de independncia dos dados


independncia lgica incompletamente resolvida - problemas com a definio de vistas e com a sua actualizao aplicaes especificadas independentemente dos dados - mas semntica da aplicao codificada no programa e no no esquema conceptual

Linguagens de manipulao de alto nvel (declarativas) Aumento da integridade e da segurana Possibilidade de optimizao dos acessos aos dados (sistemas rpidos) Manipulao directa de conjuntos de dados
tratamento de duplicados processamento paralelo comunicao com liguagens hospedeiras ao nvel do tuplo destroi vantagem
Modelo de objectos - 5

Novas utilizaes das BD


BD clssicas - gesto
grandes quantidades de dados nmero de ficheiros pequeno sujeitos a operaes simples

Distino
LMD - eficiente: limitada linguagem hospedeira - geral; no optimizada

Quem o chefe (directo) do Z? Quem so os superiores (todos) do Z? as LMD falham a recurso mas isso que permite a optimizao

BD modernas - engenharia: VLSI, CAD, grficos grandes quantidades de dados Integrao


dispersos por muitos ficheiros requerendo operaes elaboradas LMD + linguagem hospedeira para evitar ter que construir estruturas de dados complexas na rea local, custa de mltiplas chamadas LMD
Modelo de objectos - 6

BD de imagens
clula 1

v2

clula 2

clula 3

clula 4

a imagem da clula 1 uma indicao das subimagens componentes e respectivas coordenadas relativas quando necessria, recursivamente construda a partir dos componentes esta operao deveria ser da responsabilidade do SGBD, para ser eficiente e permitir ver apenas partes da imagem automaticamente

clula 5...

Modelo de objectos - 7

Limitaes do modelo relacional


Modelo excessivamente simplificado
novas aplicaes objectos complexos, no os valores atmicos da 1FN modelo esparso requer restries de integridade para manter a semntica esquema estvel, n baixo de entidades diferentes fosso semntico para realidades complexas juno pesada impede construo dinmica de objectos complexos

Linguagens limitadas
necessria integrao com outras linguagens desadaptao de impedncias: processamento de conjuntos / de tuplos problemas de comunicao de variveis e de converso de tipos optimizao s da parte BD

Modelo de objectos - 8

Novo contexto de computao


Mainframes centralizados corresponderam aos esquemas conceptuais totalizantes Ascenso do poder de clculo distribudo por estaes em rede requer novo paradigma Interfaces elaborados exigem integrao com linguagens no BD Aplicaes de projecto (CAD, CAM, CAPublishing, CASE)
dados na BD representam artefactos itens muitas vezes organizados em hierarquias projecto processo interactivo (alteraes frequentes nos esquemas; verses) partilha dos dados (justifica SGBD; seno bastava linguagem persistente)

Multimedia e escritrio electrnico


integrao da pesquisa tradicional com processamento de imagem, som, video
linguagem genrica guardar cdigo na prpria BD

hipertexto, workflow, partilha de documentos

Sistemas operativos tm elevado nvel de abstraco


Modelo de objectos - 9

Nova gerao de BD
desenvolvimento de aplicaes baseado na integrao do SGBD com linguagens de programao gesto mais flexvel de dados e esquema ambiente de desenvolvimento moderno, integrado e com bom IGU adaptao s arquitecturas distribudas extensibilidade (modularidade) manipulao declarativa dos dados

OBJECTIVOS

SEM ESQUECER

representao simples de ligaes complexas no direccionais independncia de dados e programas base terica slida
Modelo de objectos - 10

SGBDOO
Funes SGBD persistncia transaces controlo da concorrncia recuperao pesquisa verses integridade segurana desempenho Orientao por objectos tipos de dados abstractos herana identidade dos objectos

Estratgias novos modelo e linguagem de dados estender linguagem BD com capacidades OO estender uma LP OO com capacidades BD fornecer bibliotecas OO com funes de SGBD embeber construes de BDOO em linguagem hospedeira produtos para domnios especficos suportados por SGBDOO

SIM (Unysis) Oracle, Informix, Ontos Opal ObjectStore, Ontos, Versant O2 escritrio inteligente
Modelo de objectos - 11

Sistema de tipos
Tipos de base: inteiros, reais, booleanos, cadeias de caracteres Construtores de tipos
estruturas de registos: dada uma lista de tipos T1, T2, , Tn e a correspondente lista de nomes de campos c1, c2, , cn, RECORDOF(c1:T1, c2:T2, , cn:Tn) um tipo registo com n componentes (struct) tipos coleco: dado um tipo T, SETOF(T) um tipo conjunto de elementos do tipo base T; para alm dos conjuntos habitual usar outras coleces, como multiconjuntos, listas, vectores tipos referncia: 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) REF frequentemente omitido d imagem de objectos contidos em objectos
Modelo de objectos - 12

Tipos, classes e objectos


Exemplo: Banco
CLASS Conta= RECORDOF( nr : inteiro; balano : real titular : REF Cliente) - por iterao dos construtores obtm-se 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} CLASS Cliente= RECORDOF( nc : inteiro; nome : string; contas : SETOF(Conta)) Conta nr balano titular Cliente nc nome contas ... ... ...

Modelo de objectos - 13

Caractersticas dos objectos


Identidade dos objectos (OID)
cada objecto tem o seu OID cuja validade tem que acompanhar toda a vida do objecto

Mtodos
so procedimentos ou funes associados a uma classe tm sempre como alvo um objecto; podem ter outros argumentos
ex: calcular a soma dos nmeros numa instncia de Cint

ADT - Tipos de Dados Abstractos


encapsulamento das variveis internas impe disciplina no acesso informao obtm-se melhor qualidade e robustez ao software elevada modularidade facilita a manuteno capacidade expressiva contrasta com a fixidez do modelo relacional
Relao = SETOF( RECORDOF(c1:T1, c2:T2, , cn:Tn ) )

Classes organizam-se em hierarquias


subclasses herdam a estrutura do tipo e os mtodos (reutilizao) podem estender a superclasse com mais propriedades ou redefinir as herdadas
Modelo de objectos - 14

Modelos de objectos complexos


modelos semanticamente ricos, prximos das construes dos formalismos de especificao (entidade-associao, OMT, etc.), mas vrias das linguagens so ad hoc 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 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)] conjunto de tuplos
25, Joo, 1.3 {Joo, Maria, Susana} [Nome:Pedro, Idade:25] {[Nome:Pedro, Idade:25], [Nome:Joo,Idade:7], [Nome:Maria, Idade:13]} {[Nome:Pedro, Filhos:{Max, Susana}], [Nome:Joo, Filhos:{Maria, Francisco}]}

objectos atmicos conjunto tuplo tuplo hierrquico

relao encaixada

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

Modelo de objectos - 15

Objectos complexos baseados em valores


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 Maria Costa Joo Nome Prprio Joo Apelido Costa Filhos Cidade Rua Braga Antnio Joana Modelo de objectos - 16 Esposo Endereo Antnio Prprio No Maria Apelido Costa Joana Apelido Filhos Cidade Rua Braga Esposo Endereo Apelido Costa tuplo conjunto

Prprio No

Joo

Direita 34

Direita 34

Objectos complexos com identidade


(modelo baseado em FAD)

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, 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

- notar a partilha referencial e os ciclos


i1 i2 Prprio Nome Endereo Apelido Costa i3 Modelo de objectos - 17 Filhos i4 Cidade Rua No Braga Direita 34 Prprio Esposo i101 Nome i102 Apelido Maria Costa

Joo

Igualdade
Objectos complexos baseados em valores 1. Dois objectos atmicos so iguais sse forem o mesmo. 2. Dois objectos tuplo so iguais sse os valores em cada atributo forem iguais. 3. Dois objectos conjunto S e S' so iguais sse para cada elemento de S (S') existir um elemento de S' (S) igual. Objectos complexos baseados em identidade 1. Idnticos. Dois objectos tm identificadores idnticos sse forem o mesmo objecto. 2. 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.

3. Igualdade profunda (deep equal). Dois objectos so profundamente iguais sse tm o mesmo tipo e os valores do contedo so profundamente iguais; Modelo hbrido objectos atmicos (inteiros, reais, caracteres, booleanos, apontadores, datas) no precisam de uma identidade diferente do seu valor (Smalltalk, Java) eficincia
Modelo de objectos - 18

Estes objectos so iguais?


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

Direita 34 esposo

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

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

Claro Profundamente; no superficialmente Profundamente e superficialmente


Modelo de objectos - 19

Você também pode gostar