Modelo Objecto Modelo Objecto ODMG objecto: primitiva base

Slides:



Advertisements
Apresentações semelhantes
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Advertisements

Object Query Language - OQL
Object Definifion Language - ODL
Estudo de Caso, modelo Oracle 10g
VI- Implementação Objeto-Relacional
Modelo de Objetos ODMG.
Augusto NevesJoão CarlosRodrigo Paula Linguagem de Programação C++ Componentes do Grupo.
Banco de Dados Prof. Antonio.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Evolução dos SGBD’s (2ª Parte).
SQL Structured Query Language (continuação)
Objectivos Objectivos
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
Orientação a Objetos: Encapsulamento e Classificação
2. Banco de Dados Orientado a Objetos
Subconsultas ou Consultas Aninhadas
SQL – Consultas Básicas
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
SQL – DML Consulta a dados de uma tabela
Operadores Especiais da SQL
Bancos de Dados com Objetos
Introdução a diagrama de classes e UML
Linguagem de Programação II
Material III-Bimestre Wagner Santos C. de Jesus
Linguagem de Banco de Dados - SQL
Classes e objetos P. O. O. Prof. Grace.
Estrutura de Dados em Java
Query Tuning Lílian Simão Oliveira.
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
© Nabor C. Mendonça Análise e Projeto Orientados a Objeto com UML e Padrões Parte V Implementação (1)
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.
Programação Orientada à Objetos
Design Patterns / Acesso ao banco de dados (java.sql)
Banco de Dados de Objetos
Banco de Dados Aplicado ao Desenvolvimento de Software
Tipos Abstratos de Dados
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
Desenvolvendo um script SQL
Professor: Márcio Amador
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
Conceitos Programas Programação Linguagens de Programação SQL.
Baseado no material do Professor Raul Paradeda
© Ricardo Pereira e Silva
Aula prática 14 Orientação a Objetos – C++ Parte 2
REVISÃO Comandos SQL - DML SELECT * FROM ?.
PostGres: Um Banco de Dados Orientado a Objetos
Definições de Esquemas, Restrições básicas e buscas
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto
GESTOR: TIC/TIC-E&P/GIDSEP versão 1 - julho/2013 Tecgraf PUC-Rio Fevereiro de 2014 IDL.
©Silberschatz, Korth and Sudarshan (modificado)9.2.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
Bruno Inojosa MCP .NET Framework
II- Padrão ODMG Object Definifion Language - ODL.
 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.
Object Constraint Language Philip Stephen Medcraft.
1 Structured Query Language (SQL) 4 SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.
ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades.
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
UCSal – Bacharelado em Informática
Linguagem de definição de dados - SQL
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 IDL.
Bancos de Dados Orientados a Objetos
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Modelo Objecto Modelo Objecto ODMG objecto: primitiva base tipo: definição das propriedades e comportamento comuns a um conjunto de objectos propriedades: estado (atributos ou associações) operações: comportamento herança: hierarquias de generalização

Métodos BDOO: integração linguagem de dados e linguagem hospedeira ODL suporta definição de assinaturas de métodos implementação na linguagem hospedeira (Smalltalk, C++, Java); na interface fica só a assinatura, i.e., nomes e tipos dos parâmetros e da função ligação forte entre ODL e a linguagem hospedeira, com tradução directa e acesso às mesmas variáveis OQL define as interrogações mais baseadas em conjuntos (“relacionais”) e os métodos são mais virados para o objecto individual métodos sempre definidos numa classe e executados relativamente a um objecto dessa classe que funciona como parâmetro implícito métodos podem ser vistos como atributos especiais Métodos estilo declaração de função C++ (suporta polimorfismo) parâmetros são declarados in (entrada), out (saída) ou inout (entrada-saída) -- dois últimos passados por referência levantamento de excepções, para tratamento de situações anormais ou inesperadas que são tratadas pelo chamador fora da sequência normal de chamada resposta

Exemplo de declaração de métodos interface Filme (extent Filmes key (titulo, ano)) { attribute string titulo; attribute integer ano; attribute integer comprimento; attribute enum Filme {cor, pretoBranco} tipoFilme; relationship Set<Estrela> estrelas inverse Estrela::filmes; relationship Estudio proprietario inverse Estudio::possui; float comprimentoHoras() raises(semDuracao); nomesActores( out Set<string> ); outrosFilmes( in string, out Set<Filme> ) raises (estrelaInexistente); }; a declaração extent nomeia o conjunto de instâncias da classe existentes no momento - funciona como uma relação as perguntas em OQL referem-se à extensão e não ao nome da classe

Estender LPOO com capacidades BD FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados Estender LPOO com capacidades BD Extensões à linguagem: OPAL é uma extensão do Smalltalk com classes e primitivas de gestão de BD colecções com restrições para armazenar grandes quantidades de dados blocos de selecção especiais com capacidade para usar índices, onde os haja Fornecimento de bibliotecas de gestão de BD para uso de linguagem standard (C++) Ontos, Objectivity, Object Store usa compiladores standard distinção entre preprocessamento e uso de bibliotecas é ténue Objectivos: eliminar a impedância entre as linguagens especializadas de BD e as de uso geral reduzir o abismo semântico para a especificação do problema Resultado ainda é mais navegacional e menos declarativo do que o modelo relacional forneceu Gabriel David / Ademar Aguiar

Objectivos Objectivos FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados Objectivos Objectivos promover normalização dos SGBDO’s para uma maior aceitação e divulgação garantir portabilidade de aplicações entre SGBDO’s definir interface portável ao nível de esquema de dados e linguagens de definição, manipulação e interrogação conseguir forte integração das BD’s com as LP’s (p.e. com C++) possibilitar interoperabilidade entre SGBDO’s Gabriel David / Ademar Aguiar

Objectivos Produtos Normalizados versus Produtos Iguais FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados Objectivos Produtos Normalizados versus Produtos Iguais a interface comum ao nível de esquema de dados e linguagens envolvidas permite a inovação em muitas outras áreas permitindo que os produtos se distingam a vários níveis: performance linguagens de programação suportadas ambientes de desenvolvimento ferramentas para construção de aplicações redes plataformas bibliotecas de tipos ferramentas para construção de interfaces gráficas ferramentas para apoio ao projecto etc. Gabriel David / Ademar Aguiar

Hierarquia de Tipos Pré-definidos FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados Hierarquia de Tipos Pré-definidos Denotable_Object Object Atomic_Object Type Exception Iterator Structured_Object Collection<T> Set<T> Bag<T> List<T> String Bit_String Array<T> Structure<e1:T1...en:Tn> Literal Atomic_Literal Integer Float Character Boolean Structured_Literal Immutable_Collection<T> Immutable_Set<T> Immutable_Bag<T> Immutable_List<T> Immutable_String Immutable_Bit_String Immutable_Array<T> Enumeration Immutable_Structure<e1:T1...en:Tn> Date Time DateTime Interval Characteristic Property Attribute Relationship Operation Gabriel David / Ademar Aguiar

OQL: Object Query Language FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados OQL: Object Query Language Princípios orientadores: não ser computacionalmente completa, mas permitir fácil acesso a uma base de dados de objectos ser declarativa ter como base o modelo objecto ODMG ter uma sintaxe abstracta possuir semântica formal facilmente definível ter construções idênticas às de SQL sem privilegiar a cláusula select-from-where dispôr de primitivas para manipulação de conjuntos e também listas, vectores, bags, etc. Gabriel David / Ademar Aguiar

Expressões Expressões permitidas: FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados Expressões Expressões permitidas: literais, aritméticas, comparações, lógicas construtoras acesso: ‘.’, ‘->‘, first(), last(), [] conversão: listtoset(), element(), flatten(), explicita conjuntos: intersect, union, except colecções: for all ... in ... : ... exists ... in ... : ... <elemento> in <colecção> select-from-where sort ... by ... count(), sum(), min(), max(), avg() group ... in ... by ... with ... Gabriel David / Ademar Aguiar

FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados Exemplos de OQL 1. Obter o conjunto dos nomes de todas as pessoas com nacionalidade portuguesa. select distinct x.nome from x in Pessoas where x.nacionalidade=“Portugal” 2. Obter o conjunto de nomes, moradas e códigos postais de todas as pessoas com nacionalidade portuguesa. select distinct struct(n: x.nome, m: x.morada, c: x.cpostal) from x in Pessoas where x.nacionalidade = “Portugal” 3. Obter a lista de nomes dos revisores portugueses dos textos revistos depois de 1 Jan de 1994. select x.nome from x in (select y.revisor from y in Textos where revisao > 1-1-94) Gabriel David / Ademar Aguiar

Mais exemplos de OQL select w.nome from w in (sort x in (select y FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados Mais exemplos de OQL 4. Obter os nomes das 3 pessoas mais novas de nacionalidade portuguesa. select w.nome from w in (sort x in (select y from y in Pessoas where y.nacionalidade = “Portugal”) by x.idade)[0:2] 5. Obter os títulos dos documentos cujos autores são na sua totalidade de nacionalidade portuguesa. select x.titulo from x in Documentos where (for all y in x.autores: y.nacionalidade=“Portugal”) Gabriel David / Ademar Aguiar

Último exemplo de OQL group x in Pessoa by FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados Último exemplo de OQL 6. Para cada uma das seguintes 3 gamas etárias (12-30,30-55,55-...) calcular o número de pessoas que se encontram nessa gama bem como a idade maior e menor encontrada nessa gama. group x in Pessoa by (jovens: x.idade >= 12 and x.idade < 30, experientes: x.idade >=30 and x.idade < 55, maduros: x.idade >= 55) with (numero: count(partition), menor_idade: min(select x.idade from x in partition) maior_idade: max(select x.idade from x in partition)) R: set<struct(jovens: boolean, experientes: boolean, maduros: boolean, numero: integer, menor_idade: integer, maior_idade: integer)> Gabriel David / Ademar Aguiar

OQL versus SQL SQL OQL select livros.titulo from livros FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados OQL versus SQL SQL select livros.titulo from livros where not exist ( select autor from autores, pessoas where autores.pessoa=pessoas.id and autores.livro=livros.id and not(pessoas.nacionalidade=“Portugal”)) OQL select x.titulo from x in Documentos where (for all y in x.autores: y.nacionalidade=“Portugal”) Gabriel David / Ademar Aguiar

Base de Dados de Objectos FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados ODMG... .... ... Aplicação Linker Base de Dados de Objectos Criação Código Objecto do SGBDO Objective-C com ODL/OML da aplicação Ficheiros .h Ficheiros .m Compilador Pré-Processador de ODL/OML Meta Informação objectos Gabriel David / Ademar Aguiar

Conclusões simples de seguir FEUP/LEIC Tecnologia de Sistemas de Gestão de Bases de Dados Conclusões simples de seguir tem como base um modelo menos simples que o relacional mas muito mais poderoso a linguagem de interrogação é fechada, completa, as construções possuem uma semântica bem definida, e tem um poder expressivo superior ao SQL. diminui a impedância semântica entre LP’s e LI’s Gabriel David / Ademar Aguiar