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

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

Banco de Dados de Objetos

Apresentações semelhantes


Apresentação em tema: "Banco de Dados de Objetos"— Transcrição da apresentação:

1 Banco de Dados de Objetos
Banco de Dados II Banco de Dados de Objetos Prof. Me. Everton C. Tetila

2 Agenda 1. Introdução 2. Conceitos de banco de dados de objetos
3. Padrões de Banco de Dados de Objetos 4. Db4objects (Db4o) 5. Operações CRUD

3 Introdução BDO foram propostos para atender a algumas das necessidades de aplicações mais complexas. Especifica: A estrutura dos objetos complexos As operações que podem ser aplicadas a esses objetos

4 Introdução Banco de Dados OR versus OO:
FIGURA 1. Demonstração de armazenamento de dados: Banco de Dados OR versus OO.

5 Conceitos de banco de dados de objetos
Estrutura de objeto: Um modo formal de representar os objetos em bancos de dados OO é visualizar cada objeto como uma tripla (i, c, v). “i” – é o identificador único do objeto (OID). “c” – é o construtor de tipo (ele indica como o estado do objeto é construído). “v” – é o estado do objeto (ou valor corrente).

6 Conceitos de banco de dados de objetos
Identidade de objeto (OID): Garante que cada objeto tenha uma identidade única gerada pelo SGBDOO. O OID não depende dos dados armazenados no objeto e não é visível aos usuários externos. É usado pelo sistema para identificar o objeto, criar e gerar referência entre eles.

7 Conceitos de banco de dados de objetos
Construtores de tipos: Especifica como a estrutura do do objeto é construída. Atom: Formado por um valor atômico, como inteiros, números reais, cadeias de caracteres, boleanos, etc. Tuple: São construídos através da união de atributos, como tuplas (tipos de registro) no modelo relacional básico. Set: Representa um conjunto de elementos distintos, todos do mesmo tipo. Bag: Representa um conjunto de elementos do mesmo tipo, onde os valores podem se repetir. List: É uma lista ordenada de elementos do mesmo tipo, com um número arbitrário de elementos. Array: É um vetor unidimensional de elementos ordenados do mesmo tipo, com um número determinado de elementos.

8 Conceitos de banco de dados de objetos
Exemplo:

9 Conceitos de banco de dados de objetos
Encapsulamento de operações: Este conceito é aplicado separando os atributos em visíveis e ocultos. Os Atributos Visíveis podem ser acessados diretamente, já os Atributos Ocultos só são acessados através de métodos específicos para cada objeto. Métodos: São utilizados para manipular os dados ocultos do banco de dados, eles podem ser utilizados para criar, destruir, recuperar, fazer cálculos e atualizar os dados. Polimorfismo: Um mesmo nome de operação pode se referir a várias implementações distintas.

10 Conceitos de banco de dados de objetos
Nas aplicações desenvolvidas em linguagens de programações OO podem existir dois tipos de objetos: Objetos transientes: São os objetos que, quando a aplicação é encerrada, deixam de existir. Objetos persistentes: São os objetos que podem ser armazenados no banco de dados.

11 Conceitos de banco de dados de objetos
Persistência: Há duas maneiras de tornar um objeto persistente: nomeação e por alcançabilidade. Nomeação: Consiste em dar um nome persistente ao objeto; Todos os nomes devem ser únicos para cada objeto em um determinado banco de dados; O nome persistente será utilizado para iniciar o acesso ao banco de dados. Alcançabilidade: Todos os objetos que forem alcançados através de um objeto persistente também se tornam persistentes.

12 Conceitos de banco de dados de objetos
Exemplo:

13 Conceitos de banco de dados de objetos
Hierarquias de tipo e herança: Quando um tipo é definido, através de um tipo predefinido, pode-se chamá-lo de Subtipo; e o tipo que deu origem a ele de Supertipo. Um subtipo herda todos os métodos e atributos que estejam definidos para o seu supertipo. PESSOA: Nome, Endereco, Data_Nascimento, Idade, Cpf FUNCIONARIO subtype-of PESSOA: Salario, Data_contratacao, Nivel ALUNO subtype-of PESSOA: Curso, RGA

14 Conceitos de banco de dados de objetos
Objetos complexos: Podem ser divididos em estruturados e não estruturados. Não-estruturados: O SGBDOO não conhece a sua estrutura. Ex: imagens e textos longos. Estruturados: têm suas estruturas conhecidas, pois são objetos derivados do uso recursivo dos construtores existentes, fornecidos pelo SGBDOO. Referência de objetos complexos: Existem dois tipos de semânticas. Semântica de Propriedade, ou “é-parte-de” e “é-componente-de”. Semântica de Referência, ou “é-associado-com.

15 Padrões de banco de dados de objetos
ODMG: O padrão ODMG fornece um modelo de dados padrão para banco de dados orientados a objetos. O padrão é composto pelos componentes: Modelo de objetos Object Definition Language (ODL) Object Query Language (OQL)

16 Padrões de banco de dados de objetos
Modelo de objetos: Fornece os tipos de dados, os tipos construtores e outros conceitos para especificar esquemas de bancos de dados de objetos. No modelo de objetos ODMG, objetos e literais são os blocos de construção básicos do modelo de objetos. Objetos: Possui um OID e um estado (ou valor atual). Literais: Possui somente um valor, mas não um OID.

17 Padrões de banco de dados de objetos
Um Objeto tem cinco aspectos: Identificador: identificação única para o objeto em todo o banco de dados (OID). Nome: São utilizados como ponto de entrada para o banco de dados. Tempo de vida: Define se os objetos são persistentes ou transientes. Estrutura: Especifica como ele é construído pelos construtores de tipos. Criação: Refere-se à maneira como ele é criado (operação new). Um Literal é um valor que não possui um OID.

18 Padrões de banco de dados de objetos
Object Definition Language (ODL): Define as construções semânticas do modelo de objeto ODMG e é independente de qualquer linguagem de programação em particular. Object Query Language (OQL): Define a sintaxe para as consultas ODMG.

19 Db4objects (Db4o) Db4objects (Db4o): É um banco de dados orientado a objetos, desenvolvido como projeto software livre de código aberto (open-source). De acordo com o site do fabricande “avaliações de banco de dados mostram que o Db4o pode ser até 44 vezes mais rápido que o Hibernate e MySQL. Disponível em:

20 Operações CRUD A seguir serão demonstradas as operações Create, Read, Update e Delete para a manipulação de objetos no Db4O. Abrir o banco: Para abrir o banco de dados, a classe Db4oEmbedded possui o método estático openFile(). import com.db4o.Db4oEmbedded; import com.db4o.ObjectContainer; public class Main { public static void main(String[] args) { ObjectContainer db = Db4oEmbedded.openFile("c:/banco.yap"); try { // Códigos para as operações CRUD. } finally { db.close(); }

21 Operações CRUD Criar: Para armazenar o aluno no banco de dados é necessário passar o objeto como parâmetro para o método store(). import com.db4o.Db4oEmbedded; import com.db4o.ObjectContainer;  public class Main { public static void main(String[] args) { ObjectContainer db = Db4oEmbedded.openFile("c:/banco.yap"); try { Aluno novo = new Aluno(1, "Danilo Pedroso"); db.store(novo); System.out.println("Aluno armazenado: " + novo); } finally { db.close(); }

22 Operações CRUD Consultar: Para recuperar todos os alunos com o nome Danilo Pedroso, independente do número de seu código (atributo), utiliza-se o método queryByExample(). import com.db4o.Db4oEmbedded; import com.db4o.ObjectContainer; import com.db4o.ObjectSet;  public class Main { public static void main(String[] args) { ObjectContainer db= Db4oEmbedded.openFile("c:/banco.yap"); Aluno novo = new Aluno(0,"Danilo Pedroso"); ObjectSet<Aluno> lista = db.queryByExample (novo); while (lista.hasNext()){ System.out.println(lista.next()); }

23 Operações CRUD Alterar: Para alterar o aluno no banco de dados é necessário utilizar o método store(). import com.db4o.Db4oEmbedded; import com.db4o.ObjectContainer; import com.db4o.ObjectSet; public class Main { public static void main(String[] args) { ObjectContainer db= Db4oEmbedded.openFile("c:/banco.yap"); ObjectSet<Aluno> lista = db.queryByExample (new Aluno (1,"Danilo Pedroso")); Aluno aluno = lista.next(); aluno.setNome("Danilo Pedroso Vargas"); db.store(aluno); lista = db.queryByExample (Aluno.class); while (lista.hasNext()){ System.out.println(lista.next()); }

24 Operações CRUD Excluir: Para excluir o aluno no banco de dados é necessário utilizar o método delete(). import com.db4o.Db4oEmbedded; import com.db4o.ObjectContainer; import com.db4o.ObjectSet; public class Main { public static void main(String[] args) { ObjectContainer db= Db4oEmbedded.openFile("c:/banco.yap"); ObjectSet<Aluno> lista = db.queryByExample (new Aluno (1,"Danilo Pedroso Vargas")); Aluno aluno = lista.next(); db.delete(aluno); lista = db.queryByExample (Aluno.class); while (lista.hasNext()){ System.out.println(lista.next()); }

25 Referências ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. 6ª ed., Addison Wesley, 2010. DB4OBJECTS. Db4o tutorial Disponível em:


Carregar ppt "Banco de Dados de Objetos"

Apresentações semelhantes


Anúncios Google