12
1 PCS3623 Bancos de Dados Orientados a Objetos Jorge Rady de Almeida Jr. Escola Politécnica da USP 2 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ência Compartilhamento Linguagem de Consulta Controle Concorrência Gerenciamento Transações Manutenção Integridade Segurança Desempenho Programação OO Objetos Complexos Identidade Objetos Classes e Métodos Encapsulamento Herança Polimorfismo Implementação

BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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

Page 2: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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

Page 3: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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

Page 4: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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

Page 5: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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

Page 6: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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

Page 7: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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

Page 8: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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"

Page 9: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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

Page 10: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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

Page 11: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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

Page 12: BD07 2018 BDOO · 2018. 10. 26. · SGBDOO SGBDR Planilhas de Dados Evoluções do SGBDOO e SGBDR alé do SGBDOR *gmentação. 21 Bancos de Dados Orientados a Objetos Persistência

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