Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Bancos de Dados Orientados a Objeto
Prof. Alexander Roberto Valdameri
2
Evolução BD Hierárquico *; BD de Rede *; BD Relacional *;
BD Orientado a Objetos; BD Pós-Relacional.
3
Características comuns *
Uniformidade: estruturas de dados similiares; Orientação a registro: itens de dados básicos de comprimento fixo; Itens de dados pequenos: registros curtos, poucos bytes; Campos Atômicos: não há estrutura dentro dos campos.
4
Modelo de dados OO Estrutura do Objeto Variáveis; Mensagens; Métodos;
Classe de Objeto Similaridade nos objetos; Instâncias de objetos; Herança Similaridade de classes.
5
Banco de Dados OO “Os BDOOs combinam os benefícios e conceitos da orientação a objeto com a funcionalidade dos banco de dados.” Funcionalidades: Tipos abstratos; Herança; Identidade de objeto; Encapsulamento; Polimorfismo; Persistência.
6
BDOOs - Abordagens Adição de conceitos de OO a linguagens de banco de dados; Extender linguagens orientadas a objeto para tratar de bancos de dados que operam com conceitos de objetos persistentes.
7
Exemplo de Classe class empregado {
/* variáveis */ string nome; string endereco; date data_inicio; int salario; /* mensagens */ int salario_anual(); string obter_nome(); string ajustar_endereco(string novo_endereco); int tempo_emprego(); } /* método como exemplo: */ new() -> cria uma nova instância
8
Linguagens OO Conceitos de OO usados puramente para projeto;
Conceitos de OO incorporados em uma linguagem usada para manipular o banco de dados; Extensão do SQL com adição de tipos complexos e OO; Linguagens persistentes; ODMG – padronização das extensões.
9
Linguagem Persistente
Transparência – não há uma conversão explicita entre a OO e o relacional; Operações são realizadas de forma implícita; Trabalham com a SQL embutida; Exemplos: C++ e Smalltalk.
10
Exemplos de Aplicações
CAD – Computer aided design – Projeto auxiliado por computador: componentes do projeto, versões; CASE – Computer aided software engineering – Engenharia de Software auxiliada por computador: código fonte, dependências entre os módulos; definições e uso de variáveis.
11
Exemplos de Aplicações
Banco de dados Multimídia Imagens, dados espaciais, áudio, dados de vídeo etc; Banco de dados Hipertexto Hipertexto enriquecido com links. Textos completos armazenados e em condições de serem manipulados.
12
Bancos de Dados Objeto-Relacional ou Pós-Relacional
13
Contextualização Novos tipos de dados (complexos);
Modelo relacional acrescido de orientação a objetos; Linguagem padrão de acesso as estruturas do metadados; Linguagem persistente ou extensão para manipulação de objetos.
14
Estudo de Caso Supor estrutura de dados de um SIE:
Título do documento; Lista de autores; Data de aquisição; Lista de palavras-chaves. Título Autores Data (d,m,a) Palavras Chaves Meta de vendas {Carlos, Ana} (18, março, 2003) {Estratégia, vendas} Relatório aos Fornecedores {Manoel} (23, maio, 2002) {Aquisição, compras}
15
Exemplo Tipo Complexo Create type MinhaSequencia char varying;
Create type MinhaData ( dia integer, mes char(10), ano integer); Create type Documento ( nome MinhaSequencia, lista_autor setof (MinhaSequencia), lista_palavras_chaves setof (MinhaSequencia), data MinhaData); Create table docs of type Documento; Baseado no SQL-3
16
Exemplo de Herança Create type Pessoa ( nm_pessoa MinhaSequencia,
nr_seg_soc integer); Create type Estudante ( nm_curso MinhaSequencia) under Pessoa; Create type Professor ( nm_departamento MinhaSequencia) under Pessoa; Create type AssintendeEnsino under Estudante, Professor; Baseado no SQL-3
17
Exemplo no SGBD Oracle:
/* criação do objeto */ CREATE OR REPLACE TYPE obj_pessoa AS OBJECT ( cd_pessoa NUMBER(3), nm_pessoa VARCHAR2(30), nr_telefone VARCHAR2(12), dt_nascimento DATE, MEMBER FUNCTION obter_idade RETURN NUMBER); /* criação da tabela */ CREATE TABLE clientes OF obj_pessoa;
18
Exemplo no SGBD Oracle:
/* descrevendo a estrutura */ SQL> DESC obj_pessoa; Nome Nulo? Tipo CD_PESSOA NUMBER(3) NM_PESSOA VARCHAR2(30) NR_TELEFONE VARCHAR2(12) DT_NASCIMENTO DATE METHOD ------ MEMBER FUNCTION OBTER_IDADE RETURNS NUMBER
19
Exemplo no SGBD Oracle:
/* manipulação de dados */ SQL> INSERT INTO clientes VALUES (1, 'Joao Bento Goncalves', ' ', '01/02/1932'); 1 linha criada.
20
Exemplo no SGBD Oracle:
/* recuperação dos dados */ SQL> SELECT VALUE(c) 2 FROM clientes c; VALUE(C)(CD_PESSOA, NM_PESSOA, NR_TELEFONE, DT_NASCIMENTO) OBJ_PESSOA(1, 'Joao Bento Goncalves', ' ', '01/02/32') SQL> SELECT c.nm_pessoa, c.obter_idade() 2 FROM clientes c; NM_PESSOA C.OBTER_IDADE() Joao Bento Goncalves
21
Exemplo no SGBD Oracle:
/* Criação do método */ CREATE OR REPLACE TYPE BODY obj_pessoa AS MEMBER FUNCTION obter_idade RETURN NUMBER AS idade NUMBER; BEGIN SELECT TO_NUMBER(TRUNC(MONTHS_BETWEEN(SYSDATE, dt_nascimento)/12),'999') INTO idade FROM clientes; RETURN idade; END;
22
Exemplo no PostGreSQL CREATE TABLE Pessoa(nome varchar(50),
telefone numeric(12), endereco varchar(100)); CREATE TABLE PessoaFisica(idade numeric(3), cpf numeric(11), estado_civil char) inherits(Pessoa); CREATE TABLE PessoaJuridica(cnpj numeric(15), insc_est numeric(12))
23
Exemplo no PostGreSQL INSERT INTO Pessoa VALUES
('Sou pessoa', , 'Sem endereco'); INSERT INTO PessoaFisica VALUES ('Maria', , 'Rua Progresso, 87', 20, , 'S'); INSERT INTO PessoaJuridica VALUES('Confeitaria BomBom', , 'Av Brasil 1500', , 0);
24
Exemplo no PostGreSQL SELECT nome FROM PessoaFisica;
SELECT nome FROM PessoaJuridica; SELECT nome FROM Pessoa; SELECT nome FROM ONLY Pessoa;
25
Exemplos de produtos Jasmine – OO; Poet – OO; ObjectStore – OO;
Orion – OO; Oracle – OR; Caché – OR; PostgreSQL – OR; IBM DB2 – OR;
26
Concluíndo… A eficácia dos vários tipos de SGBDs pode ser comparada resumidamente: Sistemas relacionais: tipos de dados simples, linguagens de consulta poderosas, alta proteção; Linguagens de programação simples baseadas em BDOOs: tipos de dados complexos, integração com linguagens de programação, alto desempenho; Sistemas relacionais-objeto: tipos de dados complexos, linguagens de consulta poderosas, alta proteção.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.