odmg - object database management group padrão para sgbdoo consórcio de pesquisadores e...

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: vitor-bardini-figueira

Post on 07-Apr-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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 Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades

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