Carregar apresentação
A apresentação está carregando. Por favor, espere
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:
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.