Bancos de Dados Orientados a Objetos

Slides:



Advertisements
Apresentações semelhantes
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Advertisements

Object Query Language - OQL
Object Definifion Language - ODL
Estudo de Caso, modelo Oracle 10g
Modelo de Objetos ODMG.
Paulo Marques Hernâni Pedroso
Banco de Dados Prof. Antonio.
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
Objectivos Objectivos
Exemplo dos Internamentos
Modelo Objecto Modelo Objecto ODMG objecto: primitiva base
Modelo de objectos - 1 Apoiantes da norma m Object Database Management Group representa 90 % do mercado existente de SGBDOs: –Object Design –Objectivity.
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Bancos de Dados Orientados a Objetos
Mapeamento Objeto Relacional
Projeto de Sistema Orientado a Objeto
Módulo III Camada de Persistência
Bancos de Dados com Objetos
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
Linguagem de Programação II
Sistemas de Informação
Hibernate Apresentação
Mapeamento de Objetos para Tabelas Relacionais
Administração de Sistemas de Informação Banco de Dados
CONCEITOS Modelo de Dados
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
É um conjunto de registos dispostos numa estrutura regular que possibilita a reorganização dos mesmos e a produção de informação com a menor redundância.
Otimizador de consultas
Banco de Dados de Objetos
ACESSO A BASE DE DADOS.
Classes, Objetos, Atributos e Métodos JAVA
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
Desenvolvendo um script SQL
Professor: Márcio Amador
Programação Orientada à Objetos
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
A abordagem de banco de dados para gerenciamento de dados
PostGres: Um Banco de Dados Orientado a Objetos
Objetivos Apresentar de forma breve a Metodologia de Modelagem Orientada a Objetos (OMT). A partir de um modelo de objetos de um sistema de informação.
Definições de Esquemas, Restrições básicas e buscas
Banco de Dados Aplicado ao Desenvolvimento de Software
Programação Orientada à Objetos
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Introdução a Banco de Dados Aula 04
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
TECNOLOGIAS E LINGUAGENS PARA BANCO DE DADOS I
Um alternativa para o armazenamento
1 24/4/ :29 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
Bruno Inojosa MCP .NET Framework
II- Padrão ODMG Object Definifion Language - ODL.
LINQ e Entity Framework
Bancos de Dados Objeto Relacional Modelos e Linguagens
Banco de Dados Relacional Objeto-
ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Objetos em Bancos de Dados Relacionais Alcides Calsavara.
Abr-17 Projetar Base de Dados Projetar base de dados.
Banco de Dados Universidade do Estado de Santa Catarina
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Professora: Kelly de Paula Cunha
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Modelagem de Banco de Dados: Conceitos
Padrões em BDOO e Projeto Lógico
Transcrição da apresentação:

Bancos de Dados Orientados a Objetos Claudionor dos Santos Diego Mota Collaço Estefania Borm Milleni Maya Pettená Ronaldo José Abel Samuel Grüdtner

Introdução Visão Geral Conceitos de um BDOO Padrão ODMG Principais diferenças entre BDR e BDOO BDOO no mercado Exemplo-Db4o

Visão Geral Necessidade de armazenar tipos de dados cada vez mais complexos BD implementado respeitando os três pilares da OO: herança, polimorfismo e encapsulamento. Modelagem intimamente ligada aos diagramas de classes gerados para a aplicação OO Servem ao mesmo propósito dos BDRs (armazenamento; recuperabilidade ...)

Visão Geral A dificuldade dos Banco de Dados Relacionais , em implementar em algumas aplicações complexas – como por exemplo, banco de dados para projetos de engenharia e manufatura (CAD/CAM e CIM), experimentos científicos, telecomunicações, sistemas de informações geográficas e multimídia. Uso crescente de linguagens de programação orientadas a objetos no desenvolvimento de aplicações de software.

A necessidade de características adicionais na modelagem de dados também tem sido reconhecida por fornecedores de SGDBs relacionais, e as recentes versões de sistemas relacionais estão incorporando muitas das características que foram propostas para banco de dados orientados a objetos, o que resultou em sistemas conhecidos SGBDs objeto- relacionais ou relacionais estendidos. A última versão do padrão SQL para banco de dados relacionais inclui algumas dessas características.

Conceitos Orientado a Objetos remonta das LPOO. Hoje os conceitos OO são aplicados a diversas áreas de Banco de Dados, engenharia de software, bases de conhecimento, inteligência artificial ... Um objeto possui tipicamente dois componentes: ESTADO (VALOR) e COMPORTAMENTO (OPERAÇÕES).

Conceitos de um BDOO Um BDOO armazena os objetos persistentes permanentemente,em memória secundária, permitindo o compartilhamento desses objetos entre vários programas, e aplicações. Isso exige incorporar outras características bem conhecidas de SGBDs, como mecanismos de indexação, controle de concorrência e recuperação. O OID (identificador de objeto) é fornecido pelo sistema banco de dados, é único, com intuito de manter a integridade e identidade do objeto para garantir a correspondência direta entre Objeto

Conceitos Objetos complexos são formados por construtores (conjuntos, listas, tuplas, registros, coleções, arrays) aplicados a objetos simples (inteiros, booleanos, strings). Um objeto encapsulado tem seu estado oculto ao usuário e só pode ser consultado/modificado por meio das operações a ele associadas. Classes são um conjunto de objetos que possui os mesmos atributos, relacionamentos, operações Herança corresponde a transferência de propriedades estruturais e de comportamento de uma classe para suas subclasses.

Conceitos Estrutura de Objeto – normalmente os objetos são representados pela tripla (i,c,v) onde : i é o OID, c é um construtor de tipo (uma indicação como o estado do objeto é construído) e v é o estado do objeto; Construtores de tipo basicos : atom, tuple e set outros exemplos são o list, bag e array.

Conceitos O1=(i1,atom,’florianópolis’) O2=(i2,atom,’trindade’) 04=(i4,set,{i1,i2,i3) O5=(i5,tuple,<DNOME:i7,DNUM:i9,GER:i9,PROJ:i23>)

Conceitos Overriding é a redefinição da implementação da operação e overloading é a associação do resultado da redefinição a um único nome. Late binding é resolver o nome das operações em tempo de execução Extensibilidade é estender os tipos já definidos pelo sistema de modo transparente para a aplicação e para o desenvolvedor da aplicação Completude computacional é expressar qualquer função computável no modelo de dados usando a linguagem de manipulação do SGBD

ODMG – Object Database Management Group Consórcio de pesquisadores e fabricantes concebido para trabalhar na criação de padrões para SGBDOOs a fim de garantir a portabilidade Componentes principais: Framework - modelo de objetos - linguagem de definição de objetos (ODL) linguagem de consulta de objetos (OQL) Bindings - mapeamento das construções do padrão para as linguagens de programação (C++, Smalltalk, Java)

Modelo de Objetos ODMG Modelo de Objetos - fornece os tipos de dados, de construtores e outros conceitos que podem ser usados na ODL para especificar esquemas de BDOO - construção básica: objeto (identificador único) ou literal (valor único) - objeto possui quatro características: 1 - identificador (OID)  único 2 - nome  opcional 3 - tempo de vida  persistente ou transiente 4 - estrutura construção do objeto (atômico ou coleção)‏

Modelo de Objetos ODMG O modelo de dados inclui normalmente vários construtures de tipo: - atom <valor>: inteiros, reais, strings, booleanos - set <coleção_objeto>: elementos distintos - bag <coleção_objeto>: elementos duplicados - list [i1, i2,...,in]: lista ordenada (mesmo tipo) - array [i1, i2,...,in]: vetor com tamanho máximo - tuple <a1:i1, a2:i2,...,an:in>: cada par a:i corresponde a nome_atributo:OID - dictionary <k,v>: criação de índices sobre coleção de objetos

Modelo de Objetos ODMG No modelo de objetos, um literal é um valor que não possui OID Existem três tipos de literais: - atômicos: long, short, double, chart, string, boolean, etc - literais estruturados: Date, Interval, Time, Timestamp - literais coleção: set, list, array, bag

Modelo de Objetos ODMG Herança - todos herdam a interface básica Object

Modelo de Objetos ODMG Herança - de comportamento (somente operações) entre interfaces entre interface e classe é permitida herança múltipla - extends (comportamento (operações) e estado (atributos e relacionamentos)) somente entre classes não é permitida herança múltipla

Modelo de Objetos ODMG Interfaces - não são instanciáveis - especificam o comportamento de um objeto - podem possuir atributos e relacionamentos, mas estes não são herdados interface Time : Object { ... unsigned short hour(); unsigned short minute(); unsigned short second(); unsigned short milisecond(); boolean is_equal (in Time another_time); boolean is_greater (in Time another_time); Time add_interval (in Interval some_interval); };

Modelo de Objetos ODMG Objetos Atômicos (definidos pelo usuário) - na grande maioria são objetos estruturados - possuem: atributos  valores literais estruturas simples ou complexas métodos para manipular o valor do atributo relacionamentos unidirecionais  atributo de um objeto A é um outro objeto B bidirecionais  atributo de um objeto A é um outro objeto B, e o atributo de um objeto B é um objeto A operações métodos  nome do método, argumentos, retorno, especificação de exceções

Modelo de Objetos ODMG Extensões - projetista pode declarar uma extensão (extent) para qualquer tipo de objeto que esteja definido por meio de uma declaração de classe (class) - contém todos os objetos persistentes dessa classe - pode possuir uma ou mais chaves valores restritos a serem únicos para cada objeto na extensão

Modelo de Objetos ODMG Objetos Fábrica - utilizados para criar novos objetos - modelo ODMG possui a interface ObjectFactory, com a operação new( ), que retorna um objeto novo com um OID

ODL – Object Definition Language Não é uma linguagem de programação completa função: dar suporte aos construtores semânticos do MO-ODMG especificar interfaces e classes definir o esquema do BDOO - implementação do BDOO: usuário utiliza um binding específico com LPs como C++, Smalltalk e Java para mapear componentes - nem todas as LPs implementam todas as especificações ODL

OQL - Object Query Language Linguagem de consulta proposta para o modelo de objetos ODMG É projetada para trabalhar acoplada com as linguagens de programação com as quais o modelo ODMG define um binding(C++, Smalltalk, Java) Uma consulta OQL embutida em uma dessas linguagens pode retornar objetos compatíveis com o sistema de tipos dessa linguagem

OQL - Linguagem de Consulta de Objetos Sintaxe semelhante a sintaxe SQL, porém com suporte ao tratamento de - objetos complexos - junções por valor ou OID - invocação de métodos - herança SELECT d.dnome FROM d in departamentos WHERE d.faculdade = 'Engenharia‘; Em geral é necessário um ponto de entrada para o BDOO nas consultas

OQL - Linguagem de Consulta de Objetos Não precisa seguir necessariamente a estrutura SELECT...FROM...WHERE qualquer objeto nomeado persistente por si mesmo é uma consulta departamentos; retorna uma coleção de referências de todos os objetos persistentes de Departamento cujo tipo seja set<Departamento> expressão de caminho (".")‏ departamentosin.coordenador; retorna um objeto do tipo Professor, pois é o tipo do atributo coordenador da classe departamento

OQL - Linguagem de Consulta de Objetos Retorno de estrutura complexa SELECT STRUCT (nome: STRUCT (ultimo_nome: s.nome.unome, primeiro_nome: s.nome.pnome), graus: (SELECT STRUCT (grau: d.grau, ano: d.ano, Faculdade: d.faculdade)‏ FROM d IN s.graus)‏ FROM s IN departamentosin.coordenador.orienta;

OQL - Linguagem de Consulta de Objetos Visões como consultas nomeadas DEFINE possui_alunos (nomedepto) AS SELECT s FROM s IN alunos WHERE s.estuda_em.dnome = nomedepto; Possui_alunos ('Sistemas de Informacao');

OQL Q1:departamentos Q2:departamentocc.coordenador.classificacao Q3a:select f.classificacao from f in departamentocc.possui_professores V1:define possui_alunos(nomedepto) as select s from s in alunos where s.estuda_em.dnome=nomedepto;

Exemplo de Esquema BDOO

Exemplo de Esquema BDOO class Pessoa (extent pessoas key ssn){ attribute struct Pnome {string pnome, string mnome, string unome} nome ; attribute string ssn; attribute date datanascimento; attribute enum Genero{M,F} sexo; attribute struct Endereco{string rua, short nro, short nroapto, string cidade, string estado, short CEP} endereco; short idade(); }

Exemplo de Esquema BDOO class Professor extends Pessoa (extent professores) { attribute string classificacao; attribute string salario; attribute string sala; attribute string telefone; relationship Departamento trabalha_em inverse Departamento::possui_professor; relationship set<Grad_Aluno> orienta inverse Grad_Aluno::orientado_por; relationship set<Grad_Aluno> na_banca_de inverse Grad_Aluno::banca; void dar_aumento(in float aumento); void promover(in string nova_classificacao); };

Exemplo de Esquema BDOO class Departamento (extent departamentos key dnome){ attribute string dnome; attribute string dtelefone; attribute string dsala; attribute string faculdade; attribute Professor coordenador; relationship set<Professor> possui_professores inverse Professor::trabalha_em; relationship set<Aluno> forma_especialistas inverse Aluno::especializa_em; relationship set<Curso> oferece inverse Curso::oferecido_em; };

Exemplo de Esquema BDOO

Projeto conceitual de BDOO BDOO x BDR – Principais Diferenças Banco de Dados Relacional (BDR) Banco de Orientado à Objetos (BDOO) Coleção de tabelas, todas com nomes únicos, compõem a base de dados, podendo estar relacionada a uma ou mais tabelas. Não tem relação direta com as classes das aplicações. Coleção de objetos que encapsulam tanto as informações quanto as operações das classes de origem. Chaves primárias identificam unicamente uma tupla em uma relação. Identificadores de objetos (OID) identificam unicamente um objeto na base de dados inteira Relacionamentos entre tuplas são especificados por chaves estrangeiras, sendo representados em tabela adicional Relacionamentos são tratados pela definição de atributo de referência, que inclui o OID do objeto relacionado

BDOO x BDR – Principais Diferenças Banco de Dados Relacional (BDR) Banco de Orientado à Objetos (BDOO) Atributos são limitados à valores simples Atributos multivalorados são comuns Não há estrutura pré-definida para herança Estruturas de herança estão imbutidas no modelo Definição de operações pode ser postergada Operações devem ser especificadas antecipadamente, pois fazem parte das especificações das classes.

BDOO x BDR – Principais Diferenças Modelagem de dados para BDR

BDOO x BDR – Principais Diferenças Modelagem de dados para BDOO

BDOO no mercado Db4o; Oracle; ONTOS; Objectivy;

Exemplo– db4objects(db4o) Permitir que você faça suas consultas de forma orientada a objetos, como se estivesse pesquisando em uma Array, List ou qualquer outro container de objetos.

Performace a) Não tenho problemas de performance?

Db4o na prática. Instalação; Utilização; Criando um database http://www.db4o.com/community/ Dlls, docs, e codigos de exemplo. Utilização; Referenciar a respectiva dll e adicionar um "using com.db4o“; Criando um database O arquivo de dados do db4o tem normalmente a extensão .yap;

Db4o - Métodos Set: grava objetos na base Get: recupera um objeto da base procurando-o através de um template Delete: apaga um objeto Query: faz uma pesquisa na base retornando uma lista do tipo ObjectSet Query<T>: faz uma pesquisa retornando uma lista tipada Commit e Rollback: confirma/anula uma transação (semelhante ao commit/rollback dos RDBMs)

Bibliografia Elmasri – Navathe ,Sistemas de Banco de Dados 4ª Edição Bertino, E.; Martino, L. (1993). Object-Oriented Database Systems: Concepts and Architectures. Addison-Wesley, 1993. Blaha, M.; Premerli, W. Object-Oriented Modeling and Design for Database Applications. Prentice-Hall, 1998. Cattel, R.G.G. Object-Oriented and Extended Relational Database Systems. Addison-Wesley, 1994. http://www.linhadecodigo.com.br/Artigo.aspx?id=2212; http://pt.wikipedia.org/wiki/Object_database#Ado.C3.A7.C3.A 3o_de_Banco_de_Dados_Orientado_a_Objetos http://www.ime.usp.br/~andrers/aulas/bd2005-1/aula3.html http://www.db4o.com/