Objectivos Objectivos

Slides:



Advertisements
Apresentações semelhantes
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Advertisements

Object Query Language - OQL
Object Definifion Language - ODL
Estudo de Caso, modelo Oracle 10g
Modelo de Objetos ODMG.
Banco de Dados Prof. Antonio.
SQL Avançado Continuação
SQL Structured Query Language
SQL Structured Query Language (continuação)
SQL Structured Query Language (continuação)
Capítulo 1 Introdução.
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
Exemplo dos Internamentos
Modelo Objecto Modelo Objecto ODMG objecto: primitiva base
Modelo de objectos - 1 Apoiantes da norma m Object Database Management Group representa 90 % do mercado existente de SGBDOs: –Object Design –Objectivity.
SQL Structured Query Language Juliano Brito da Justa Neves PESCD – Programa de Estágio Supervisionado de Capacitação Docente.
Maurício Edgar Stivanello
SGBD.
Sistema Gerenciador de Banco de Dados SGBD
SQL – Comandos de Agregaçã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
Rafael Pinto Frederico Corrêa
Material III-Bimestre Wagner Santos C. de Jesus
Linguagem de Banco de Dados - SQL
Hibernate Apresentação
Ponteiros.
Programação Baseada em Objectos Desenho de TAD
Vamos agora aprender a utilizar estruturas.
Banco de dados Profª Kelly Medeiros.
Mapeamento de Objetos para Tabelas Relacionais
Equipe de monitoria Aula prática 2. Apresentação do caso de estudo Conceitual Lógico Algumas informações iniciais Consultas e exercícios Surpresa... =)
Query Tuning Lílian Simão Oliveira.
Análise Semântica e Representação Intermédia
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.
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.
SQL Álvaro Vinícius de Souza Coêlho
Design Patterns / Acesso ao banco de dados (java.sql)
Banco de Dados de Objetos
Banco de Dados Aplicado ao Desenvolvimento de Software
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
Desenvolvendo um script SQL
Linguagem de Definição de Dados
Baseado no material do Professor Raul Paradeda
REVISÃO Comandos SQL - DML SELECT * FROM ?.
Definições de Esquemas, Restrições básicas e buscas
Algumas notas sobre a linguagem de programação C
Linguagem de Manipulação de Dados. 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados.
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
©Silberschatz, Korth and Sudarshan (modificado)9.2.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
 SGBDOO Funções SGBD persistência transacções
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.
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática
Linguagem de definição de dados - SQL
Bancos de Dados Orientados a Objetos
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Transcrição da apresentação:

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

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.

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

Exemplo de modelo objecto Definição de um Tipo Documentos título: string revisão: date Capítulos no: integer Textos referencia:char[4] Programas linguagem: string Diagrama de Classes OMT Pessoas bi: string nome: string nacionalidade: string idade: integer cpostal: char[4] autores obras interface Documento : Atomic_Object Extent(documentos); key (título); { attribute string título; // deve ser único attribute Date revisão; relationship Set<Pessoas> autores inverse Pessoa::obras; relationship Set<Capítulos> capítulos inverse Capítulo::parte_de; gravar() raises (erro_de_gravação); adicionar_capítulo(in capítulo: Capítulo); };

Exemplo de ODL um exemplo de Objectstore/C++ com ODL static os_List<Documento*> documentos; class Documento { public: os_List<Pessoa*> autores inverse_member autorias; os_List<Capitulo*> capitulos inverse_member pertence_a; }; class Pessoa { os_List<Documento*> autorias inverse_member autores; ...

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.

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

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)

Mais exemplos de OQL select w.nome from w in (sort x in 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”)

Último exemplo de OQL group x in Pessoa by 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)>

OQL versus SQL SQL OQL 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”)

Exemplo de Objective-C com OQL Set autores; int idade; ... idade=65; autores = (select distinct y from x in Textos, y in x.autores where y.idade=idade); if(![autores empty]) reformar(autores);

Base de Dados de Objectos Arquitectura 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

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

Manipulação OML: Object Manipulation Language não é definida pela proposta de norma, pelo que deverá ser definida por quem implementa a norma por forma a permitir criar, destruir, modificar e referenciar objectos. Mapeamento da ODMG-93 para LP’s A proposta define o mapeamento para C++ e Smalltalk Um mapeamento deverá ser feito aos vários níveis: modelo objecto ODMG ODL, OML e OQL hierarquia de tipos base operações sobre bases de dados e transacções