ODMG - Object Database Management Group - PowerPoint PPT Presentation

About This Presentation
Title:

ODMG - Object Database Management Group

Description:

ODMG - Object Database Management Group Padr o para SGBDOO Cons rcio de pesquisadores e fabricantes Objetivo integra o e padroniza o de funcionalidades de BD ... – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 23
Provided by: INEC5
Category:

less

Transcript and Presenter's Notes

Title: ODMG - Object Database Management Group


1
ODMG - Object Database Management Group
  • Padrão para SGBDOO
  • Consórcio de pesquisadores e fabricantes
  • Objetivo
  • integração e padronização de funcionalidades de
    BD a uma LPOO
  • Componentes do padrão
  • modelo de objetos
  • linguagem de definição de dados (ODL)
  • linguagem de consulta (OQL)

2
Modelo de Objetos e ODL
  • Modelo de objetos conceitos
  • dados (objetos e literais)
  • tipos (interfaces, classes de objetos e literais)
  • herança
  • OID e chave
  • Especificados em ODL

3
Dados
  • Duas formas de dados são possíveis
  • objetos e literais
  • Objetos
  • possuem valor e OID
  • são instâncias de classes
  • Literais
  • possuem valor e não possuem OID
  • não são instâncias de uma classe
  • objetos isolados
  • objetos componentes de outros objetos

4
Literais
  • Três tipos
  • atômicos, estruturados e de coleção
  • Literais atômicos
  • tipos de dados básicos (predefinidos)
  • boolean, char, short, long, float, double,
    string, ...
  • Literais estruturados
  • tipos de dados estruturados (alguns predefinidos)
  • date, time, timestamp, ... ou definidos pelo
    usuário
  • Literais de coleção
  • tipos de agrupamento de dados (predefinidos)
  • setlttgt, baglttgt, arraylttgt, ...
  • t é tipo de objeto ou valor

5
Definição de Dados - ODL
  • Três formas
  • interface, literal ou classe
  • Interface
  • define apenas comportamento (assinatura)
  • não possui instâncias
  • Literal
  • define apenas propriedades
  • possui instâncias (sem OID)
  • Classe
  • define propriedades e comportamento
  • possui instâncias (com OID - objetos)

6
Interfaces e Literais em ODL
  • interface Pessoa
  • short idade()
  • boolean ehMenor()
  • void casou(Pessoa p) raises(jahEhCasado)
  • ...
  • struct Endereço
  • attribute string rua
  • attribute short número
  • attribute string cidade
  • setltEndereçogt EndereçosAmigos
  • Endereço MeuEndereço

7
Classes em ODL
  • class Departamento (extent Departamentos)
  • attribute string nome
  • attribute short código
  • attribute Endereço localização
  • attribute struct atendimento
  • horaInício time, horaTérmino time horário
  • attribute Empregado chefe
  • relationship setltEmpregadogt funcionários
  • inverse Empregado depto
  • void adicionaEmp(short RG) raises (jahTrabalha,
    RGInexistente)
  • ...

atributo literal estruturado
atributo de referência a objeto
relacionamento
conjunto de instâncias
atributo literal atômico
8
Herança
  • Duas formas
  • herança IS-A
  • herança extends
  • Herança IS-A
  • herança de interface
  • pode ser interface?interface ou interface?classe
  • permite herança múltipla
  • Herança extends
  • herança de propriedades
  • ocorre somente entre classes (classe?classe)
  • não permite herança múltipla

9
Herança em ODL
  • Classe Empregado (extent Empregados)
  • attribute short RG
  • attribute string nome
  • attribute enum gêneroM,F sexo
  • attribute Date DN
  • attribute Endereço residência
  • attribute float salário
  • relationship Departamento depto
  • inverse Departamento funcionários
  • ...
  • Classe Professor (extent Professores)
  • extends Empregado Pessoa
  • attribute string titulação
  • attribute string areaAtuação
  • ...

herança extends
herança IS-A
10
OID e Chave
  • OID
  • identificador do objeto
  • Chave
  • uma ou mais propriedades cujos valores devem ser
    únicos

class Departamentos class Cidades ( extent
todosDeptos (key (estado,nome)) key código)
attribute string
estado attribute string nome attribute
string nome attribute short código ... ...

11
Exemplo Pacientes em ODL
class Paciente (extent Pacientes key CPF)
attribute long CPF attribute long
RG attribute string nome relationship Leito
leito inverse Leito paciente attribute
struct responsabilidade relationship Médico
médico inverse Médico responsável, horário
Visita time responsável relationship
setltMédicogt tratamento inverse Médico
tratamento
12
Exemplo Médicos em ODL
class Médico (extent Médicos key CRM)
attribute long CRM attribute string
nome attribute float salário attribute
Especialidade atuação attribute
setltEspecialidadegt formação relationship
setltPacientegt responsável inverse Paciente
responsável.médico relationship setltPacientegt
tratamento inverse Paciente tratamento
13
Consultas em BDOOs
  • Duas abordagens
  • navegacional
  • navegação entre objetos através de suas
    referências (controlada pelo programa da
    aplicação ou SGBDOO)
  • declarativa
  • uso de uma linguagem de consulta do SGBDOO
  • violação de encapsulamento
  • maior flexibilidade para formulação de consultas
  • Não há DML, apenas linguagem de consulta
  • métodos implementam operações de atualização
  • Linguagem de consulta do padrão ODMG
  • OQL (Object Query Language)

14
OQL
  • Linguagem de consulta declarativa
  • Extensão da linguagem SQL com suporte ao
    tratamento de
  • objetos complexos
  • junções por valor ou por OID
  • invocação de métodos
  • suporta late binding (polimorfismo)
  • herança

15
Ponto de Partida de uma Consulta
  • Objeto ou conjunto de objetos
  • extensão de classe (extent)
  • literal ou conjunto de literais
  • select e.nome MeuEndereço
  • from e in Empregados
  • select e.rua
  • from e in EndereçosAmigos

variável de iteração
16
Resultados de Consultas
  • Literais, objetos, conjuntos de literais ou de
    objetos
  • select e. MeuEndereço
  • from e in Empregados
  • select struct (
  • nome d.nome
  • empsRicos(select e.
  • from e in d.funcionários
  • where e.salário gt 5000))
  • from d in Departamentos

literal
conjunto de objetos
conjunto de literais (estrutura complexa)
17
Expressões de Caminho
  • Permitem a navegação entre objetos
  • caminhamento através de atributos de referência e
    relacionamentos
  • utiliza-se a notação de ponto (.)
  • Exemplo
  • select p.nome, p.titulação
  • from p in Professores
  • where p.depto.código INE

18
Expressões de Caminho
  • Variáveis de iteração são definidas para a
    navegação em coleções de objetos referenciados
    (referências 1N)
  • a variável de iteração associa-se com cada
    elemento da coleção referenciada
  • Exemplo
  • select f.nome
  • from d in Departamentos, f in d.funcionários
  • where d.código INE
  • and f.salário gt 5000

19
Junções
  • Junções entre conjuntos de objetos ou de
    literais são permitidas, como em BDRs
  • Junções de objetos tanto por valor quanto por OID
    são permitidas
  • Exemplo
  • select c1.nome
  • from c in Cidades, c1 in Cidades
  • where c1.estado c.estado
  • and c.nome Florianopólis
  • and c.estado SC

20
Invocação de Métodos
  • Métodos podem ser declarados em consultas da
    mesma forma que propriedades
  • Exemplos
  • select e.nome
  • from e in Empregados
  • where e.idade gt 50
  • select d.código, d.nroHorasAtendimento
  • from d in Departamentos

21
Consultas em Hierarquias de Classes
  • Consultas aplicadas a uma classe processam
    objetos da classe e de suas subclasses
  • Restrições podem ser especificadas
  • Exemplo
  • select (Professores, Pesquisadores)e.nome
  • from e in Empregados
  • where e.salário gt 3000

22
Funções de Agregação
  • Aplicadas sobre qualquer conjunto de dados
  • Exemplos
  • avg(select p.salário
  • from p in Professores
  • where p.depto.código INE)
  • select d.código, d.nome
  • from d in Departamentos
  • where count (d.funcionários) gt 30
Write a Comment
User Comments (0)
About PowerShow.com