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

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

Company LOGO Banco de Dados II Banco de Dados de Objetos Prof. Me. Everton C. Tetila.

Apresentações semelhantes


Apresentação em tema: "Company LOGO Banco de Dados II Banco de Dados de Objetos Prof. Me. Everton C. Tetila."— Transcrição da apresentação:

1 Company LOGO 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 3. Padrões de Banco de Dados de Objetos 4. Db4objects (Db4o) 4. Db4objects (Db4o) 5. Operações CRUD 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 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 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 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,  DB4OBJECTS. Db4o tutorial Disponível em: db4o-8.0/java/tutorial.


Carregar ppt "Company LOGO Banco de Dados II Banco de Dados de Objetos Prof. Me. Everton C. Tetila."

Apresentações semelhantes


Anúncios Google