• Nenhum resultado encontrado

Aula1

N/A
N/A
Protected

Academic year: 2021

Share "Aula1"

Copied!
30
0
0

Texto

(1)

Banco de Dados Orientado a Objetos

Rogério Morais Rocha

Bacharel em Ciência da Computação Pós-Graduação Gestão Estratégica da Informação

(2)

Banco de Dados Orientado a Objetos

• Unidade 2 – INTEGRAÇÃO ENTRE AS TECNOLOGIAS DE BANCO DE DADOS E ORIENTAÇÃO A OBJETOS

– Visão geral do modelo ODMG.

– O modelo JDO.

(3)

Banco de Dados Orientado a Objetos

• Modelo ODMG

• Object Data Management Group: consórcio de vendedores e usuários de SGBDs criado para definir

padrões para sistemas gerenciadores de banco de dados orientado a objetos. Posteriormente, o próprio ODMG se ampliou para incluir em sua meta qualquer mecanismo de armazenamento que implemente sua especicação.

– ODMG-93 (ODMG 1.0) – ODMG 2.0

(4)

Banco de Dados Orientado a Objetos

• Modelo ODMG

• A meta do ODMG é:

• Tornar disponível um conjunto de padrões permitindo que um cliente de SGBDOO escreva aplicações portáveis, isto é, aplicações que possam ser executadas por diferentes

SGBDOOs.

• Harmonia entre o modelo da Linguagem de Programação e da Linguagem de Modelagem de Dados.

(5)

Banco de Dados Orientado a Objetos

• Modelo ODMG

• Os principais componentes do ODMG são: – Modelo de Objetos

– Linguagem de denição de objetos (ODL – Object Denition Language)

– Linguagem de consulta de objetos (OQL – Object Query Language)

– Bindings de linguagens de programação (Base para o JDO)

(6)

Banco de Dados Orientado a Objetos

• Arquitetura de um sistema gerenciador de base de

(7)

Banco de Dados Orientado a Objetos

• Modelo de Objetos

– Especifica as construções que são suportadas por um SGBDOO.

• Categoriazação de objetos e literais por seus tipos.

• O estado de um objeto é denido pelo conjunto de valores relacionados ao seu conjunto de atributos.

• O comportamento de um objeto é definido pelo conjunto de operações que podem ser executadas.

• Sobre ou pelo objeto o BD permite acessos por múltiplos usuários e é baseado em um esquema definido pela ODL, contendo instâncias dos tipos definidos pelo seu esquema.

(8)

Banco de Dados Orientado a Objetos

• Modelo de Objetos – Tipos

– Possui dois aspectos importantes em sua definição

• Nível de Especificação - atributos e relacionamentos que cada objeto possui.

• Nível de implementação - Implementação das operações.

– Interfaces, Classes e Literal estão no nível de especificação.

– Métodos e propriedades estão no nível de implementação.

(9)

Banco de Dados Orientado a Objetos

• Modelo de Objetos – Herança

– ISA ou is-a representada por “:” e é uma herança de comportamento somente.

interface Funcionario {...};

interface Professor : Funcionario {...}; class Professor_Titular : Professor {...};

– Extends é uma herança de comportamento e estado. class Funcionario {...};

(10)

Banco de Dados Orientado a Objetos

• Modelo de Objetos – Extent

– é formada por todas as instâncias de um determinado tipo que existem no banco de dados.

class Pessoa (extent Pessoas) {...};

• Modelo de Objetos – Chaves

– é apenas uma restrição de unicidade de valor e não tem o papel de OID.

– deve ser definida pelo usuário, enquanto o OID é definido pelo sistema.

(11)

Banco de Dados Orientado a Objetos

• Modelo de Objetos – Objetos

– Aspectos que devem ser considerados em relação aos objetos.

• Existe uma interface denominada Object na qual os métodos same_as(), copy(), delete(), entre outros, estão definidos.

• Dois objetos são considerados iguais quando

possuem os mesmos valores para os seus atributos. • Dois objetos são considerados idênticos (isto é, o

mesmo objeto) quando se referenciam ao mesmo OID;

(12)

Banco de Dados Orientado a Objetos

• Modelo de Objetos – Literais

– Objetos literais não possuem identificadores e existem 3 tipos:

• Atômico – float, long, etc; • Coleção – set, bag, list, etc e • Estruturado – date, time, etc;

(13)

Banco de Dados Orientado a Objetos

• Modelo de Objetos – Modelando Estado e

Comportamento

– Cada atributo tem um nome descritivo e um valor • valor é representado por um literal ou um

identificador de objeto.

• um atributo existe apenas como parte de um objeto, e não é um objeto por si só.

class Pessoa {

attribute string nome; attribute short idade;

(14)

Banco de Dados Orientado a Objetos

• Modelo de Objetos – Modelando Estado e Comportamento

– Cada relacionamento tem um ou dois nomes descritivos e um valor.

• primeiro nome indica o caminho do relacionamento do objeto para o(s) objeto(s) associado(s).

• segundo nome, que é opcional, identifica o caminho de relacionamento inverso, do(s) objeto(s)

(15)

Banco de Dados Orientado a Objetos

• Modelo de Objetos – Modelando Estado e

Comportamento Professor .... Disciplina ... é_ensinado_por ensina

(16)

Banco de Dados Orientado a Objetos

• Modelo de Objetos – Modelando Estado e

Comportamento

– os atributos e os relacionamentos modelam o estado, as operações definem o comportamento.

– O SGBDOO é responsável por manter a integridade referencial dos relacionamentos. Se um objeto que participa de um relacionamento for removido, então qualquer caminho para aquele objeto deve ser

(17)

Banco de Dados Orientado a Objetos

• Unidade 2 – INTEGRAÇÃO ENTRE AS TECNOLOGIAS DE BANCO DE DADOS E ORIENTAÇÃO A OBJETOS

– Visão geral do modelo ODMG. – O modelo JDO.

(18)

Banco de Dados Orientado a Objetos

• ODL – a linguagem de definição de objetos

– A ODL apresenta as seguintes características:

– Não é uma linguagem de programação completa, mas sim uma linguagem de definição para especificação de objetos;

– É independente de LPOO, o que permite que os usuários a usem para definir semânticas de esquema de uma

forma independente de linguagem;

– É extensível, permitindo a especificação de tipos, incluindo propriedades e operações (somente

(19)

• ODL – a linguagem de definição de objetos

– Gráfico de representação de esquema

(20)

Banco de Dados Orientado a Objetos

• ODL – a linguagem de definição de objetos

(21)

Banco de Dados Orientado a Objetos

• OQL – a linguagem de consulta a objetos

– A OQL é uma linguagem declarativa para consultar os objetos do BD proposta pelo modelo de objetos ODMG. – As principais características são:

• Suporta as cláusulas SELECT, FROM, WHERE, GROUP BY, HAVING e ORDER BY;

• Pode ser usada por usuários ou embutida de uma linguagem de programação;

• Fornece primitivas de alto nível para lidar com set,

structure, list e array, tratando estas construções com a mesma eficiência;

(22)

Banco de Dados Orientado a Objetos

• OQL – a linguagem de consulta a objetos

– As principais características são:

• Pode chamar métodos dos tipos envolvidos na consulta;

• Não fornece operadores para atualização, mas pode chamar operações definidas nos objetos para realizar esta tarefa. Assim, não viola a semântica do modelo de objetos, o qual, por definição, é gerenciado pelos métodos especificados no objeto;

• É possível definir um nome para uma determinada consulta, que é armazenada no BD. Para uso

(23)

Banco de Dados Orientado a Objetos

• OQL – a linguagem de consulta a objetos

– Exemplo de consulta OQL:

– Se tem um tipo Pessoa com o extent Pessoas;

– Atributos nome, data de nascimento e sexo e com a operação idade.

– A consulta apresentada recupera o conjunto de Pessoas chamadas "Carlos", juntamente com suas diferentes

idades.

SELECT DISTINCT p.idade FROM p in pessoas

(24)

Banco de Dados Orientado a Objetos

• OQL – a linguagem de consulta a objetos

– Expressões de Caminho

– As expressões de caminho servem para navegar através de relacionamentos (um-para-um) e objetos complexos, sendo representadas por "."ou !.

– A partir de uma Pessoa p, deseja-se saber o nome da cidade onde o cônjuge desta pessoa mora.

(25)

Banco de Dados Orientado a Objetos

• OQL – a linguagem de consulta a objetos

– Valores Indefinidos

– Uma propriedade não definida referencia o objeto nil. – Algumas das regras que envolvem este valor são:

• is_defined(predicado) e is_undefined(predicado) testam se um predicado é definido ou não;

• Se o predicado definido em uma cláusula WHERE retorna undefined, isto é tratado como se fosse retornado false;

• O valor undefined é válido para a operação count, ou seja, é considerado da mesma forma que qualquer outro valor;

(26)

Banco de Dados Orientado a Objetos

• Valores Indefinidos – Exemplo – O BD contém três pessoas:

• uma morando em Porto Alegre, • outra em Caxias e

(27)

Banco de Dados Orientado a Objetos

• JDO – Java Data Objects

– Uma abstração do banco de dados que permitiu o

acesso aos dados armazenados sem a necessidade do conhecimento intrínseco da API dos bancos de dados. – O objetivo é separar a manipulação dos dados realizada

pela linguagem de programação da manipulação dos dados realizada pelo SGBD.

(28)

Banco de Dados Orientado a Objetos

• JDO – Java Data Objects

– As interfaces definidas para o usuário são:

• PersistenceManager – é o componente responsável pelo ciclo de vida das instâncias persistentes, fábrica de consultas (Query), e acesso a transações

(Transactions);

– Query – componente responsável por consultar os dados armazenados e retornar as instâncias

persistentes ou os valores;

(29)

Banco de Dados Orientado a Objetos

• JDO – Java Data Objects

• As especificações vêm criando uma camada de acesso a dados com diversas vantagens que proporcionam

benefícios nas implementações das aplicações, benefícios como:

– serem fáceis de utilizar, pois os programadores focam no modelo de negócio deixando os detalhes sobre o armazenamento ser tratado pelo JDO;

– são portáveis, as aplicações podem ser executadas em múltiplos sistemas sem a necessidade de alteração no código fonte;

(30)

Banco de Dados Orientado a Objetos

• JDO – Java Data Objects

– são independentes de banco de dados, as aplicações podem comunicar com os diferentes bancos de dados existentes no mercado e;

– têm alta performance, uma vez que os detalhes da

comunicação com os dados estão na camada JDO ocorre uma otimização do acesso aos mesmos.

Referências

Documentos relacionados

Entendendo, então, como posto acima, propõe-se, com este trabalho, primeiramente estudar a Lei de Busca e Apreensão para dá-la a conhecer da melhor forma, fazendo o mesmo com o

A variação do pH da fase móvel, utilizando uma coluna C8 e o fluxo de 1,2 mL/min, permitiu o ajuste do tempo de retenção do lupeol em aproximadamente 6,2 minutos contribuindo para

Conclui-se que o conhecimento do desenvolvimento ponderal evidenciou um padrão racial, que o perímetro torácico está altamente associado ao peso corporal e que equações de

Todo ser humano é único e, por isso, toda sala de aula é um berço de diversidade. O que os sistemas educacionais fizeram ao longo dos tempos foi homogeneizar o sistema educacional

seria usada para o parafuso M6, foram utilizadas as equações 14 e 15, referentes aos parafusos de 8 mm de diâmetro e folga entre parafuso e furo de 0,5 mm, que definem,

Este presente artigo é o resultado de um estudo de caso que buscou apresentar o surgimento da atividade turística dentro da favela de Paraisópolis, uma

A não uniformização quanto ao método de referência pode promover diferenças entre as curvas de calibração geradas por laboratórios de dosimetria citogenética, que podem

Little e Amyra El Khalili; também foi dissertado sobre a Agroecologia, entendida como um caminho para uma agricultura mais sustentável; sobre a ciência homeopatia e sua aplicação