A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Bancos de Dados Orientados a Objeto

Apresentações semelhantes


Apresentação em tema: "Bancos de Dados Orientados a Objeto"— Transcrição da apresentação:

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.


Carregar ppt "Bancos de Dados Orientados a Objeto"

Apresentações semelhantes


Anúncios Google