Post on 24-Sep-2020
1
PCS3623
Bancos de Dados
Orientados a Objetos
Jorge Rady de Almeida Jr.
Escola Politécnica da USP2
Orientação a Objetos
Implementação
Comparação OO x Relacional
3
Paradigma da Orientação a Objetos
(Object-Oriented Databases - Introduction) 4
Banco de Dados Orientado a Objetos
BD Relacionais
PersistênciaCompartilhamentoLinguagem de ConsultaControle ConcorrênciaGerenciamento TransaçõesManutenção IntegridadeSegurançaDesempenho
Programação OO
Objetos Complexos
Identidade Objetos
Classes e Métodos
Encapsulamento
Herança
Polimorfismo
Implementação
5
BD Relacionais
Grande sucesso em aplicações tradicionais
Estruturas Simples
Uniformidade: gde qtde de dados
similares (tamanho/formato)
Registros “pequenos”
Otimizado para transações curtas
6
BD Relacionais – Pontos Fortes
Estabilidade e maturidade
Concorrência
Desempenho e otimização
Funções de armazenamento (backup) e
recuperação (recovery)
Elevada confiabilidade e disponibilidade
envolvendo grandes volumes de dados
7
BD Relacionais – Pontos FortesRobustez no controle de integridade e
segurança
Processamento paralelo
Ambientes de dados distribuídos
Extensa gama de ferramentas disponíveis
Facilidade de uso da linguagem de consulta
8
BD Relacionais – Pontos Fracos
Impedance Mismatch transformação artificial de objetos em tabelas
Dados complexos representação em linhas e colunas é insuficiente
Criação de novas tabelas
Cada tabela: parte, mas não toda informação de grandes estruturas junções
Manutenção complexa
9
Procura e compara
Procura e compara
BD Relacionais – Pontos Fracos
10
BDOO – Pontos Fortes
Trata diretamente com objetos
Não há transformações para tabelas
Capacidade para tratar encapsulamento,
herança e polimorfismo
Se estiver usando linguagem OO
escrita direta de código
11
BDOO – Pontos Fracos
Falta de ferramentas de apoio
Imaturidade em:
desempenho,
concorrência, . . .
Linguagem de
consulta
desconhecida
Barreiras ao usoFalta de familiaridade
Intimidação
Inércia12
BDOOModelo Orientado a Objetos
Cada objeto armazenado por inteiro em sua classe
Cada classe: métodos que agem sobre seus dados
Mundo Real
Relacional Orientado a Objetos
13
Modelagem Conceitual do SW
A OO reduz a complexidade dos
mapeamentos
Entre a percepção humana do problema e
seu modelo abstrato
Entre o modelo OO abstrato e BD BDOO
BD de objetos consistem de Objetos no lugar
de tabelas ou outras estruturas de dados
BD meio de armazenamento dos objetos
14
BDOO
Conceitos de OO usados como ferramenta
Implementados por um BD Relacional
ou BD Objeto-Relacionais
Conceitos de OO incorporados em SGBD
BD Orientados a Objetos
15
Flexibilidade: novos atributos
Relacional
Criar novas colunas: armazenamento
Criar outras tabelas: novas junções
OO
Criar subclasses com novos atributos
Execução de operações sobre os dados
Relacional: limitado às operações pré-definidas
(seleção, projeção, junção, . . .)
Objeto: quaisquer operações sobre os objetos
BD OO x Relacional
16
Bancos de Dados
Orientados a Objetos
Aplicações
17
BDOO - Aplicações
British Airways Versant
Origin and Destination (O&D) Revenue Management System
Siemens GemStone Smalltalk
Gerenciamento de infraestrutura geral
bioMériex FastObjects
Informações complexas sobre exames sanguíneos
Seagate Technology db4o
Software para pequenos negócios/home
Qualcomm CDMA
Objectivity
Telecomunicações18
BDOO - Aplicações
Stanford Linear Accelelator Center Objectivity / DB
2000 (169 TB) 2002 (500 TB)
Starwood Hotels
ObjectStore
Sistema de reservas
Partners Healthcare Caché
800 aplicações clínicas e administr.
U.S. Air Force: Network Centric Collaborative Targeting (NCCT) e
U.S. Navy: Cooperative Engagement Capability (CEC)
Objectivity
Detecção de alvos
19
Bancos de Dados
Orientados a Objetos
Segmentação
20
Dados Complexos
Queries Simples
Dados Simples
Queries Simples
Dados Simples
Queries Complexas
Dados Complexos
Queries Complexas
SGBDOO
SGBDR
Planilhas de Dados
Evoluções do SGBDOO e SGBDR além do SGBDOR
Segmentação
21
Bancos de Dados
Orientados a Objetos
Persistência de Dados
22
Linguagem de programação OO
Objetos existem apenas durante a execução do
programa objetos transientes
Bancos de Dados Orientados a Objetos
Objetos persistem após o término do programa:
recuperação a posteriori objetos persistentes
BDOO - Características
23
Interação com usuários e sistema
Regras de negócio
Funções básicas de
negócio
Acesso ao Sistema
Operacional
Encapsula acesso ao armazenamento de objetos em meio
persistente
DESACOPLAMENTO
Interface(User and System)
Process (Application, Controller)
Business/Domain
Persistence
(Encapsulation/Data)
System
Banco de Dados
SGBD
Estratégia em Camadas
Uso em diversas
aplicações
24
Habilitar desenvolvedores a assumirem sua especialidade –
desenvolver aplicações
Habilitar DBAs a assumirem sua especialidade –administrar BD
Camada de Persistência
Interface(User and System)
Process (Application, Controller)
Business/Domain
Persistence
(Encapsulation/Data)
Syste
m
Banco de Dados
SGBD
25
Interface(User and System)
Process (Application, Controller)
Business/Domain
Persistence
(Encapsulation/Data)
Syste
m
Banco de Dados
SGBD
Benefícios
Reduz acoplamento
entre objetos e dados
Implementa todo código relativo a
dados em um único “lugar”
Explora características específicas dos
SGBD -desempenho
Camada de Persistência
26
Interface(User and System)
Process (Application, Controller)
Business/Domain
Persistence
(Encapsulation/Data)
Syste
m
Banco de Dados
SGBD
Suportar diversos mecanismos de
persistência
Arquivos, BD relacionais, BDOO,
etc.
Encapsulamento do mecanismo de persistência
Trocar apenas msg insert, save, delete e retrieve de objetos
Transações
Completar todas as etapas ou não realizar
nenhuma etapa
Requisitos da Camada de Persistência
Suportar operações CRUD
Create – Retrieve –Update - Delete
27
Extensibilidade
Facilidade para adicionar novas
classes à aplicação e/ou alterar o mecanismo de persistência
Suportar várias versões de
SGBD
Suportar múltiplas conexões/drivers
(JDBC, ODBC)
Requisitos da Camada de Persistência
Interface(User and System)
Process (Application, Controller)
Business/Domain
Persistence
(Encapsulation/Data)
Syste
m
Banco de Dados
SGBD
28
Bancos de Dados
Orientados a Objetos
ODMG
29
ODMGODMG (Object Database Management Group) –
até 2005
Missão: definir um padrão para os BDOO
Absorvido pelo OMG (Object Management
Group)
Criação do ODBTWG – Object DataBase
Technology Workgroup
Direitos do ODMG 3.0- em 2003 (1.0 em 1993,
1.2 em 1995, 2.0 em 1997 e 3.0 em 1999)
30
ODMG 3.0
Modelo de Objetos
Linguagem de consulta OQL - Object Query
Language
Linguagem de descrição de dados: ODL - Object
Definition Language
Interfaces para linguagens: C++, Java e Small
Talk (bindings)
ODMG
31
Bancos de Dados
Semiestruturados
32
Bancos de Dados Semiestruturados
Dados sem esquema ou auto-descritivos
Não há separação entre dados e esquema: dados contêm o esquema produto:"Lápis", material:"madeira", fabricante:"abc"
produto:"DVD", conteúdo:"Linux", data:"05/10/2013"
33
Bancos de Dados Semiestruturados
Dados Tradicionais Dados Semi-Estruturados
Esquema pré-definidoSem esquema pré-definido
definido posteriormente
Estrutura regular independente dos dados
Estrutura irregular embutida nos dados
Estrutura reduzida Estrutura extensa
Estrutura fracamente evolutiva
Estrutura fortemente evolutiva
Estruturaprescritiva/recomendada
Estrutura descritiva
34
Bancos de Dados
NoSQL
35
NoSQL
Não SQL
Not Only SQL? NoSQL
Evitar a “amarração” do BD Relacional (chaves, consistências, . . .)
ACID x BASE (Basically Available, Soft-state, Eventual consistency)
Resposta garantida
Estado pode mudar no tempo
Momentaneamente inconsistente
36
NoSQL
BD XML
BD Key-Value
BD Documentos
BD Grafos
37
XML – eXtensible
Markup Language
38
XML
Dados semi-estruturados
Oracle, DB2, SQL Server: XML como dado
nativo
XML Nativo
dbXML
eXcelon
Tamino
39
XML
W3C- World Wide Web
Consortium
Evolução: instr. de impressão
especif. do conteúdo
(HTML XML)
HTML: formatação de texto
XML: representação e troca de
dados
Tags: < . . . . . > - usadas aos
pares
<title> Base de Dados </title>
<banco><conta>
<nº conta> 1020 </nº conta><agencia> Lapa </agencia><saldo> 200,00 </saldo>
</conta>. . . . .. . . . .
</banco>
40
XML
Comparação com BD convencionais
Armazenar diversas tags (negativo)
Auto-documentação (positivo)
Formato Flexível (positivo)
Padrão dominante na troca de dados
41
XML
Armazenamento de dados XML
BD Relacionais
Flat Files
BD XML
BD Relacional
XML XMLBD
Relacional
BD XML BD XML
42
Bancos de Dados de
Grafos
43
BD de Grafos
Grafo: coleção de nós e relações “etiquetadas”
Armazenamento/tratamento nativo
AllegroGraph
Neo4j
OrientDB
44
BD de Grafos
Usuário: Ivo
Pedido: 123
Pedido: 125
colocoucolocou
Item: caneta
Item: papel
Item: tinta
contémcontém
45
BD de Grafos
Implementação: Listas ligadas
A
B
B
E
C •
D •
46
BD de Grafos
Implementação: Matrizes
A B C D
A 1 1 0 0
B 0 1 1 0
C 1 0 1 0
D 1 0 0 1