Aula - Modelo Orientado A Objeto
Aula - Modelo Orientado A Objeto
Aula - Modelo Orientado A Objeto
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
linguagem natural, de alto nvel, com acesso arbitrrio elevada declaratividade optimizao a independncia fsica dos dados refora
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
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
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 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
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
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
Modelo de objectos - 13
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
relao encaixada
Modelo de objectos - 15
Prprio No
Joo
Direita 34
Direita 34
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
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
Direita 34 esposo