Modelo orientado por objectos

Slides:



Advertisements
Apresentações semelhantes
T I  C Módulo 2 Base de dados
Advertisements

Base de Dados para a Gestão de Informação de Natureza Pedagógica
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Modelo de Objetos ODMG.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
DESENHO de BASE de DADOS RELACIONAL
Introdução aos Sistemas Distribuídos
Evolução dos SGBD’s (2ª Parte).
Rational Unified Process
Engenharia de Software
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
O Modelo E-R Definição: Características
Funcionalidades de um SGBD
Producto x Processo x Projecto
Unified Modeling Language (UML) - Modelação da Arquitectura -
Sistemas de Informação
1 Gabriel David FEUP - Rua dos Bragas, Porto Codex - PORTUGAL Tel Fax: URL:
Exemplo dos Internamentos
Modelo de objectos - 1 Apoiantes da norma m Object Database Management Group representa 90 % do mercado existente de SGBDOs: –Object Design –Objectivity.
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Metodologia de Desenvolvimento de Software
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Professora: Aline Vasconcelos
Bancos de Dados com Objetos
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
Fases do desenvolvimento de software UML
Classes e objetos Modelagem
Administração de Sistemas de Informação Banco de Dados
Diagramas de Componentes
Modelo Relacional Uma base de dados é Uma relação é
SQL Server 2012 Introdução a Modelagem de Dados
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
1 Fundamentos de SIG. - Sistemas de Informação
Comunicação Inclusiva Acessibilidade e Programação Web
Banco de Dados II Prof. Antônio Cordeiro.
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Sistemas Distribuídos
É um conjunto de registos dispostos numa estrutura regular que possibilita a reorganização dos mesmos e a produção de informação com a menor redundância.
Otimizador de consultas
Banco de Dados de Objetos
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
ACESSO A BASE DE DADOS.
INTRODUÇÃO ÁS BASES DE DADOS
Projeto de Banco de Dados
Ano letivo CURSO EFA DE TÉCNICO DE INFORMÁTICA E SISTEMAS Docente: Ana Batista EDUCAÇÃO E FORMAÇÃO DE ADULTOS Curso EFA – Sec. Turma C
Professor: Pedro Lopes
Análise de Sistemas de Informação
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Paradigmas de Linguagens de Programação Aula 2
A abordagem de banco de dados para gerenciamento de dados
Planear um Website Principais etapas.
Banco de Dados Aplicado ao Desenvolvimento de Software
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Introdução a Banco de Dados Aula 04
©Silberschatz, Korth and Sudarshan (Modificado)1.1Database System Concepts Capítulo 1: Introdução Função dos Sistemas de Bases de Dados Visão dos dados.
Faculdade Pernambucana - FAPE Setembro/2007
 SGBDOO Funções SGBD persistência transacções
Linguagem BD + capacidades OO qVariante da representação OO das encomendas EncomTipo = RECORDOF( e#: int, inclui: SETOF( IQTipo ), cliente: ClienteTipo.
Bancos de Dados Objeto Relacional Modelos e Linguagens
Desenvolvimento de uma base de dados
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.
Objetos em Bancos de Dados Relacionais Alcides Calsavara.
1 Linguagens de Programação Pedro Lopes 2010/2011.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
Modelos de dados.
 O Modelo E-R (Entidade-Relação)
Transcrição da apresentação:

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

Deficiências Edifício( nome, bilhete, rua, cidade, população, país ) Jerónimos 300 Pr. Império Lisboa 1 000 000 Portugal Ajuda 500 Calçada da Ajuda Lisboa 1 100 000 Portugal Torre 100 Pr. Catedral Pisa 200 000 Itália    Luanda 800 000 Angola • redundância • inconsistência • anomalia de apagamento • anomalia de inserção/ actualização • valores nulos • dispêndio de espaço

Normalização Edifício( nome, bilhete, rua, cidade ) Cidade( nome, população, país ) Jerónimos 300 Pr. Império Lisboa Ajuda 500 Calç. da Ajuda Lisboa Torre 100 Pr. Catedral Pisa Lisboa 1 000 000 Portugal Pisa 200 000 Itália Luanda 800 000 Angola tuplo pendente • 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

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) • 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 LIGAÇÕES VIAGENS origem destino Lisboa Madrid Madrid Paris Madrid Londres Paris Oslo Oslo Londres origem destino Lisboa Madrid Madrid Paris Madrid Londres Paris Oslo Oslo Londres Lisboa Paris Lisboa Londres Madrid Oslo Paris Londres Lisboa Oslo

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

Novas utilizações das BD BD clássicas - gestão grandes quantidades de dados número de “ficheiros” pequeno sujeitos a operações simples BD modernas - engenharia: VLSI, CAD, gráficos dispersos por muitos “ficheiros” 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

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

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

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

Nova geração de BD OBJECTIVOS SEM ESQUECER 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) OBJECTIVOS 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 SEM ESQUECER

 SGBDOO Funções SGBD persistência transacções controlo da concorrência recuperação pesquisa versões integridade segurança desempenho  Orientação por objectos tipos de dados abstractos herança identidade dos objectos Estratégias novos modelo e linguagem de dados SIM (Unysis) estender linguagem BD com capacidades OO Oracle, Informix, Ontos estender uma LP OO com capacidades BD Opal fornecer bibliotecas OO com funções de SGBD ObjectStore, Ontos, Versant embeber construções de BDOO em linguagem hospedeira O2 produtos para domínios específicos suportados por SGBDOO escritório inteligente

RECORDOF(c1:T1, c2:T2, …, cn:Tn) 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 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 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

Tipos, classes e objectos Exemplo: Banco CLASS Conta= RECORDOF( nr : inteiro; balanço : real titular : REF Cliente) CLASS Cliente= RECORDOF( nc : inteiro; nome : string; contas : SETOF(Conta)) 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} Cliente nc nome contas ... ... ...

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

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 objectos 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}]

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)) tuplo i conjunto Maria Nome Esposo Endereço Próprio Apelido Próprio Apelido Filhos Maria No Costa Cidade Costa i Rua João João 34 Braga Direita Nome Esposo António Joana Endereço Próprio Apelido Próprio Apelido Filhos No João Costa Cidade Costa i Rua Maria 34 Braga Direita António Joana

Objectos complexos com identidade (modelo baseado em FAD) espaç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 — {i1, i2,…, in}, ij Î I, sem ordem e sem repetições tuplo — [ai:i1, a2:i2, …, an:in], ij Î I, aj Î A - notar a partilha referencial e os ciclos i1 Esposo i101 Nome Nome i2 i102 Endereço Próprio Filhos Apelido Apelido Próprio i4 No Cidade i Rua Costa João i3 Maria Costa 34 Braga Direita …

Igualdade Objectos 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. Objectos 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; Modelo 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

Estes objectos são iguais? esposo nome filhos endereço i2 i3 i i4 i201 próprio apelido cidade no rua João Costa Braga Direita 34 i301 i401 Pessoa1= i1 Pessoa2= i1 Pessoa3= i101 Filhos1= i3 Filhos2= i103 esposo próprio apelido i102 i103 i endereço filhos nome i101 Pessoa1 = Pessoa2 ? Claro Pessoa1 = Pessoa3 ? Profundamente; não superficialmente Filhos1 = Filhos2 ? Profundamente e superficialmente