odmg - object database management group

22
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)

Upload: ilori

Post on 16-Jan-2016

46 views

Category:

Documents


0 download

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 a uma LPOO Componentes do padrão modelo de objetos linguagem de definição de dados (ODL) linguagem de consulta (OQL). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ODMG -  Object Database Management Group

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)

Page 2: ODMG -  Object Database Management Group

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

Page 3: ODMG -  Object Database Management Group

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

Page 4: ODMG -  Object Database Management Group

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)

• set<t>, bag<t>, array<t>, ...– t é tipo de objeto ou valor

Page 5: ODMG -  Object Database Management Group

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)

Page 6: ODMG -  Object Database Management Group

Interfaces e Literais em ODLinterface Pessoa {short idade();

boolean ehMenor(); void casou(Pessoa p) raises(jahEhCasado); ...};

struct Endereço {attribute string rua;attribute short número;attribute string cidade;

};

set<Endereço> EndereçosAmigos;

Endereço MeuEndereço;

Page 7: ODMG -  Object Database Management Group

Classes em ODLclass 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 set<Empregado> funcionários inverse Empregado:: depto;

void adicionaEmp(short RG) raises (jahTrabalha, RGInexistente);

...};

conjunto de instâncias

atributo literal atômico

atributo literal estruturado

atributo de referência a objeto

relacionamento

Page 8: ODMG -  Object Database Management Group

Herança

• Duas formas– herança IS-A– herança extends

• Herança IS-A– herança de interface– pode ser interfaceinterface ou interfaceclasse– permite herança múltipla

• Herança extends– herança de propriedades– ocorre somente entre classes (classeclasse)– não permite herança múltipla

Page 9: ODMG -  Object Database Management Group

Herança em ODLClasse Empregado (extent Empregados) { attribute short RG; attribute string nome;attribute enum gênero{M,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

Page 10: ODMG -  Object Database Management Group

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

Page 11: ODMG -  Object Database Management Group

Exemplo – Pacientes em ODLclass 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árioVisita time} responsável;

relationship set<Médico> tratamento

inverse Médico:: tratamento;

};

Page 12: ODMG -  Object Database Management Group

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 set<Especialidade> formação;

relationship set<Paciente> responsável

inverse Paciente:: responsável.médico;

relationship set<Paciente> tratamento

inverse Paciente:: tratamento;

};

Page 13: ODMG -  Object Database Management Group

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)

Page 14: ODMG -  Object Database Management Group

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

Page 15: ODMG -  Object Database Management Group

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çofrom e in Empregados

select e.ruafrom e in EndereçosAmigos

variável de iteração

Page 16: ODMG -  Object Database Management Group

Resultados de Consultas

• Literais, objetos, conjuntos de literais ou de objetos

select e.* MeuEndereçofrom e in Empregados

select struct ( nome: d.nomeempsRicos:(select e.*

from e in d.funcionários where e.salário > 5000))

from d in Departamentos

conjunto de objetos literal

conjunto de literais (estrutura complexa)

Page 17: ODMG -  Object Database Management Group

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çãofrom p in Professores

where p.depto.código = ‘INE’

Page 18: ODMG -  Object Database Management Group

Expressões de Caminho

• Variáveis de iteração são definidas para a navegação em coleções de objetos referenciados (referências 1:N)– a variável de iteração associa-se com cada elemento da

coleção referenciada

• Exemplo

select f.nomefrom d in Departamentos, f in d.funcionárioswhere d.código = ‘INE’and f.salário > 5000

Page 19: ODMG -  Object Database Management Group

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.nomefrom c in Cidades, c1 in Cidadeswhere c1.estado = c.estadoand c.nome = ‘Florianopólis’

and c.estado = ‘SC’

Page 20: ODMG -  Object Database Management Group

Invocação de Métodos

• Métodos podem ser declarados em consultas da mesma forma que propriedades

• Exemplos

select e.nomefrom e in Empregadoswhere e.idade > 50

select d.código, d.nroHorasAtendimentofrom d in Departamentos

Page 21: ODMG -  Object Database Management Group

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 Empregadoswhere e.salário > 3000

Page 22: ODMG -  Object Database Management Group

Funções de Agregação

• Aplicadas sobre qualquer conjunto de dados• Exemplos

avg(select p.saláriofrom p in Professoreswhere p.depto.código = ‘INE’)

select d.código, d.nomefrom d in Departamentoswhere count (d.funcionários) > 30