A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades."— Transcrição da apresentação:

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) set, bag, array,... –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; }; set 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 set 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

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

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 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árioVisita time} responsável; relationship set 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 set formação; relationship set responsável inverse Paciente:: responsável.médico; relationship set 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 > 5000)) from d in Departamentos conjunto de objetos literal 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 1:N) –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 > 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 > 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 > 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) > 30


Carregar ppt "ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades."

Apresentações semelhantes


Anúncios Google