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

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

Prof. Alexander Roberto Valdameri Bancos de Dados Orientados a Objeto.

Apresentações semelhantes


Apresentação em tema: "Prof. Alexander Roberto Valdameri Bancos de Dados Orientados a Objeto."— Transcrição da apresentação:

1 Prof. Alexander Roberto Valdameri Bancos de Dados Orientados a Objeto

2 2 Evolução BD Hierárquico *; BD de Rede *; BD Relacional *; BD Orientado a Objetos; BD Pós-Relacional.

3 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 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 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 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 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 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 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 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 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 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 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ítuloAutoresData (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 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 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 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 18 /* 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 Exemplo no SGBD Oracle:

19 19 /* manipulação de dados */ SQL> INSERT INTO clientes VALUES (1, 'Joao Bento Goncalves', ' ', '01/02/1932'); 1 linha criada. Exemplo no SGBD Oracle:

20 20 /* 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 71 Exemplo no SGBD Oracle:

21 21 /* 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; Exemplo no SGBD Oracle:

22 22 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)) inherits(Pessoa); Exemplo no PostGreSQL

23 23 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); Exemplo no PostGreSQL

24 24 SELECT nome FROM PessoaFisica; SELECT nome FROM PessoaJuridica; SELECT nome FROM Pessoa; SELECT nome FROM ONLY Pessoa; Exemplo no PostGreSQL

25 25 Exemplos de produtos Jasmine – OO; Poet – OO; ObjectStore – OO; Orion – OO; Oracle – OR; Caché – OR; PostgreSQL – OR; IBM DB2 – OR;

26 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 "Prof. Alexander Roberto Valdameri Bancos de Dados Orientados a Objeto."

Apresentações semelhantes


Anúncios Google