• 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

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

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

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

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