A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelo de objectos - 1 Modelo orientado por objectos m Sumário q limitações do modelo relacional q modelo de objectos q linguagem orientada por objectos.

Apresentações semelhantes


Apresentação em tema: "Modelo de objectos - 1 Modelo orientado por objectos m Sumário q limitações do modelo relacional q modelo de objectos q linguagem orientada por objectos."— Transcrição da apresentação:

1 Modelo de objectos - 1 Modelo orientado por objectos m Sumário q limitações do modelo relacional q modelo de objectos q linguagem orientada por objectos q modelo de objectos versus modelo relacional

2 Modelo de objectos - 2 Deficiências Edifício( nome, bilhete, rua, cidade, população, país ) Jerónimos300Pr. ImpérioLisboa Portugal Ajuda500Calçada da AjudaLisboa Portugal Torre100Pr. CatedralPisa Itália Luanda Angola Jerónimos300Pr. ImpérioLisboa Portugal Ajuda500Calçada da AjudaLisboa Portugal Torre100Pr. CatedralPisa Itália Luanda Angola redundância inconsistência anomalia de apagamento anomalia de inserção/ actualização valores nulos dispêndio de espaço

3 Modelo de objectos - 3 Normalização Cidade( nome, população, país ) Jerónimos300Pr. ImpérioLisboa Ajuda500Calç. da AjudaLisboa Torre100Pr. CatedralPisa Jerónimos300Pr. ImpérioLisboa Ajuda500Calç. da AjudaLisboa Torre100Pr. CatedralPisa Edifício( nome, bilhete, rua, cidade ) Lisboa Portugal Pisa Itália Luanda Angola Lisboa Portugal Pisa Itália Luanda Angola relação na Terceira Forma Normal (Boyce-Codd) - só existem dependências na chave de cada relação problemas anteriores resolvidos pela decomposição recuperar o aspecto anterior através de uma vista create view Monumento as ( select * from Edifício, Cidade c where cidade = c.nome); problema na actualização de vistas prejudica a independência lógica dos dados tuplo pendente

4 Modelo de objectos - 4 Potência das linguagens relacionais Quais os monumentos com um preço igual ao máximo da respectiva cidade? select nome from Edificio e where bilhete = (select max(bilhete) from Edificio where cidade= e.cidade) origemdestino LisboaMadrid MadridParis MadridLondres ParisOslo Oslo Londres LIGAÇÕESVIAGENS origemdestino LisboaMadrid MadridParis MadridLondres ParisOslo Oslo Londres LisboaParis LisboaLondres MadridOslo ParisLondres LisboaOslo linguagem natural, de alto nível, com acesso arbitrário elevada declaratividade optimização reforça a independência física dos dados impossível obter o fecho transitivo da relação binária LIGAÇÕES só viagens com um número fixo de ligações esta limitação é que torna viável a optimização LMD não estão pensadas para IGU necessário recorrer a linguagens genéricas

5 Modelo de objectos - 5 Vantagens do modelo relacional m Simplicidade dos conceitos e do esquema q só relações q esquema físico separado m Boa base teórica m Grau elevado de independência dos dados q independência lógica incompletamente resolvida - problemas com a definição de vistas e com a sua actualização q aplicações especificadas independentemente dos dados - mas semântica da aplicação codificada no programa e não no esquema conceptual m Linguagens de manipulação de alto nível (declarativas) m Aumento da integridade e da segurança m Possibilidade de optimização dos acessos aos dados (sistemas rápidos) m Manipulação directa de conjuntos de dados q tratamento de duplicados q processamento paralelo q comunicação com liguagens hospedeiras ao nível do tuplo destroi vantagem

6 Modelo de objectos - 6 Novas utilizações das BD m BD clássicas - gestão q grandes quantidades de dados q número de ficheiros pequeno q sujeitos a operações simples m BD modernas - engenharia: VLSI, CAD, gráficos q grandes quantidades de dados q dispersos por muitos ficheiros q requerendo operações elaboradas Distinção LMD - eficiente: limitada linguagem hospedeira - geral; não optimizada Quem é o chefe (directo) do Zé? Quem são os superiores (todos) do Zé? as LMD falham a recursão mas é isso que permite a optimização Integração LMD +linguagem hospedeira para evitar ter que construir estruturas de dados complexas na área local, à custa de múltiplas chamadas à LMD

7 Modelo de objectos - 7 BD de imagens q a imagem da célula 1 é uma indicação das subimagens componentes e respectivas coordenadas relativas q quando necessária, é recursivamente construída a partir dos componentes q esta operação deveria ser da responsabilidade do SGBD, para ser eficiente e permitir ver apenas partes da imagem automaticamente célula 1 célula 2 célula 3 célula 4 célula

8 Modelo de objectos - 8 Limitações do modelo relacional m Modelo excessivamente simplificado q novas aplicações objectos complexos, não os valores atómicos da 1FN q modelo esparso requer restrições de integridade para manter a semântica q esquema estável, nº baixo de entidades diferentes fosso semântico para realidades complexas q junção pesada impede construção dinâmica de objectos complexos m Linguagens limitadas q necessária integração com outras linguagens q desadaptação de impedâncias: processamento de conjuntos / de tuplos q problemas de comunicação de variáveis e de conversão de tipos q optimização só da parte BD

9 Modelo de objectos - 9 Novo contexto de computação m Mainframes centralizados corresponderam aos esquemas conceptuais totalizantes m Ascensão do poder de cálculo distribuído por estações em rede requer novo paradigma m Interfaces elaborados exigem integração com linguagens não BD m Aplicações de projecto (CAD, CAM, CAPublishing, CASE) q dados na BD representam artefactos q itens muitas vezes organizados em hierarquias q projecto é processo interactivo (alterações frequentes nos esquemas; versões) q partilha dos dados (justifica SGBD; senão bastava linguagem persistente) m Multimedia e escritório electrónico q integração da pesquisa tradicional com processamento de imagem, som, video linguagem genérica guardar código na própria BD q hipertexto, workflow, partilha de documentos m Sistemas operativos têm elevado nível de abstracção

10 Modelo de objectos - 10 Nova geração de BD o desenvolvimento de aplicações baseado na integração do SGBD com linguagens de programação o gestão mais flexível de dados e esquema o ambiente de desenvolvimento moderno, integrado e com bom IGU o adaptação às arquitecturas distribuídas o extensibilidade (modularidade) o manipulação declarativa dos dados o representação simples de ligações complexas não direccionais o independência de dados e programas o base teórica sólida OBJECTIVOS SEM ESQUECER

11 Modelo de objectos - 11 Funções SGBD qpersistência qtransacções qcontrolo da concorrência qrecuperação qpesquisa qversões qintegridade qsegurança qdesempenho Orientação por objectos qtipos de dados abstractos qherança qidentidade dos objectos Estratégias SGBDOO q novos modelo e linguagem de dadosSIM (Unysis) q estender linguagem BD com capacidades OOOracle, Informix, Ontos q estender uma LP OO com capacidades BDOpal q fornecer bibliotecas OO com funções de SGBDObjectStore, Ontos, Versant q embeber construções de BDOO em linguagem hospedeiraO2 q produtos para domínios específicos suportados por SGBDOOescritório inteligente

12 Modelo de objectos - 12 Sistema de tipos m Tipos de base: inteiros, reais, booleanos, cadeias de caracteres m Construtores de tipos q estruturas de registos: dada uma lista de tipos T 1, T 2, …, T n e a correspondente lista de nomes de campos c 1, c 2, …, c n, RECORDOF(c 1 :T 1, c 2 :T 2, …, c n :T n ) é um tipo registo com n componentes (struct) q tipos colecção: dado um tipo T, SETOF(T) é um tipo conjunto de elementos do tipo base T; para além dos conjuntos é habitual usar outras colecções, como multiconjuntos, listas, vectores q tipos referência: uma referência para um tipo T REF T é um tipo cujos valores são adequados para encontrar eficientemente um valor do tipo T: apontador para endereço de memória virtual, ou uma localização num disco de uma máquina (distribuição) REF frequentemente omitido dá imagem de objectos contidos em objectos

13 Modelo de objectos - 13 Tipos, classes e objectos m Exemplo: Banco q CLASS Conta= RECORDOF( nr : inteiro; balanço : real titular : REF Cliente) CLASS Cliente= RECORDOF( nc : inteiro; nome : string; contas : SETOF(Conta)) Cliente nc nome contas Conta nr balanço titular... - por iteração dos construtores obtêm-se estruturas arbitrariamente complexas - tipos + métodos = classe - os objectos de uma classe são constantes (objectos imutáveis) ou variáveis desse tipo (mutáveis) - {2,5,7} objecto imutável da classe CInt=SETOF(inteiro) - s:Cint é uma variável e pode guardar o conjunto {2,5,7}

14 Modelo de objectos - 14 Características dos objectos m Identidade dos objectos (OID) q cada objecto tem o seu OID cuja validade tem que acompanhar toda a vida do objecto m Métodos q são procedimentos ou funções associados a uma classe q têm sempre como alvo um objecto; podem ter outros argumentos ex: calcular a soma dos números numa instância de Cint m ADT - Tipos de Dados Abstractos q encapsulamento das variáveis internas impõe disciplina no acesso à informação q obtém-se melhor qualidade e robustez ao software q elevada modularidade facilita a manutenção q capacidade expressiva contrasta com a fixidez do modelo relacional Relação = SETOF( RECORDOF(c 1 :T 1, c 2 :T 2, …, c n :T n ) ) m Classes organizam-se em hierarquias q subclasses herdam a estrutura do tipo e os métodos (reutilização) q podem estender a superclasse com mais propriedades ou redefinir as herdadas

15 Modelo de objectos - 15 Modelos de objectos complexos modelos semanticamente ricos, próximos das construções dos formalismos de especificação (entidade-associação, OMT, etc.), mas várias das linguagens são ad hoc oobjectos complexos baseados em valores sem OID e sem referências unicidade de um objecto depende apenas do estado (conjunto de valores atómicos das variáveis de instância) espaço de objectos: florestas de árvores (semelhança com modelo hierárquico e modelo relacional não primeira forma normal) espaço transitório versus espaço persistente [objectos na memória são caminhos (path) constituídos por atributos (selectores em tuplos) e chaves (selectores em conjuntos)] conjunto de tuplos {[Nome:Pedro, Idade:25], [Nome:João,Idade:7], [Nome:Maria, Idade:13]} relação encaixada {[Nome:Pedro, Filhos:{Max, Susana}], [Nome:João, Filhos:{Maria, Francisco}]} objectos atómicos 25, João, 1.3 conjunto {João, Maria, Susana} tuplo [Nome:Pedro, Idade:25] tuplo hierárquico [Nome:[Próprio: João, Apelido:Costa], Idade:25, Filhos: {Pedro, Paulo, Maria}]

16 Modelo de objectos - 16 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), endereço: Morada, esposo:Nome)) João NomeEsposo Próprio Apelido João Costa Filhos AntónioJoana Endereço Maria Cidade Rua No BragaDireita 34 i Próprio Apelido Costa João NomeEsposo Próprio Apelido Costa Filhos AntónioJoana Endereço Cidade Rua No BragaDireita 34 i Próprio Apelido Costa Maria i tuplo conjunto

17 Modelo de objectos - 17 Objectos complexos com identidade (modelo baseado em FAD) oespaço de objectos complexos baseados em identidade (grafo dirigido) - conjunto de identificadores I, conjunto de atributos A - objecto é (identificador, tipo, valor); identificador I, tipo é atómico, conjunto ou tuplo tipo atómico elemento de um domínio de valores atómicos do utilizador conjunto {i 1, i 2,…, i n }, i j I, sem ordem e sem repetições tuplo [a i :i 1, a 2 :i 2, …, a n :i n ], i j I, a j A - notar a partilha referencial e os ciclos i1 Nome Esposo Próprio Apelido João Costa Filhos Endereço Maria Cidade Rua No BragaDireita 34 i Próprio Apelido Costa i2 i3 i4 i101 Nome i102 …

18 Modelo de objectos - 18 Igualdade oObjectos complexos baseados em valores 1. Dois objectos atómicos são iguais sse forem o mesmo. 2. Dois objectos tuplo são iguais sse os valores em cada atributo forem iguais. 3. Dois objectos conjunto S e S' são iguais sse para cada elemento de S (S') existir um elemento de S' (S) igual. oObjectos complexos baseados em identidade 1. Idênticos. Dois objectos têm identificadores idênticos sse forem o mesmo objecto. 2. Igualdade superficial (shallow equal). Dois objectos são superficialmente iguais sse têm o mesmo tipo e os valores do conteúdo são idênticos; dois objectos atómicos são iguais se denotam o mesmo elemento no domínio de valores base. 3. Igualdade profunda (deep equal). Dois objectos são profundamente iguais sse têm o mesmo tipo e os valores do conteúdo são profundamente iguais; oModelo híbrido objectos atómicos (inteiros, reais, caracteres, booleanos, apontadores, datas) não precisam de uma identidade diferente do seu valor (Smalltalk, Java) eficiência

19 Modelo de objectos - 19 Estes objectos são iguais? q Pessoa 1 = Pessoa 2 ?Claro q Pessoa 1 = Pessoa 3 ?Profundamente; não superficialmente q Filhos 1 = Filhos 2 ?Profundamente e superficialmente nome esposo próprioapelido João Costa filhos endereço cidade rua no BragaDireita34 i próprio apelido i2i2 i3i3 i4i4 i 101 nome i 102 esposo i1i1 i 201 i 301 i 401 i i 103 filhos endereço Pessoa 1 = i 1 Pessoa 2 = i 1 Pessoa 3 = i 101 Filhos 1 = i 3 Filhos 2 = i 103


Carregar ppt "Modelo de objectos - 1 Modelo orientado por objectos m Sumário q limitações do modelo relacional q modelo de objectos q linguagem orientada por objectos."

Apresentações semelhantes


Anúncios Google