odmg - object database management group padrão para sgbdoo consórcio de pesquisadores e...
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5706384c1a28abb8238f6319/html5/thumbnails/22.jpg)
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