23
1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Profª. Solange Nice Alves de Souza

1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

Embed Size (px)

Citation preview

Page 1: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

1

Vantagens na Utilização de Banco de Dados Objeto-Relacional

em Sistemas Laboratoriais

Ricardo Ferreira Schiavo

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO

Profª. Solange Nice Alves de Souza

Page 2: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

2

Introdução

Bancos de dados objeto-relacionais Sintaxe SQL99 e Oracle Descrição do experimento Análise de resultados obtidos

Page 3: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

3

Modelo Objeto-Relacional

Bancos de dados orientado a objeto suportam tipos complexos de dados, como gráficos, imagens, multimedia, etc

Bancos de dados relacionais suportam grandes volumes de dados e consultas complexas

O Banco de dados objeto-relacional busca aproveitar as vantagens de ambos

Page 4: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

4

Modelo Objeto-Relacional

Muitos SGBDs orientados a objeto falharam por oferecer as não oferecer a eficiencia de otimização disponíveis e conhecidas em SGBDs relacionais

OR-SGBDs oferecem muitas das vantagens de OO, porém mantendo o as relações como a abstração fundamental

Page 5: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

5

SQL-99 e Oracle

INCITS - InterNational Committee for Information Technology Standards

O padrão SQL-99 apresenta a maior parte das funcionalidades objeto relacionais

Os diferentes fornecedores se basearam no padrão porém com algumas diferenças na sintaxe

Page 6: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

6

Elementos Objeto-Relacionais - Oracle

Tipos de Objetos (UDT) Nested Tables (Tabelas aninhadas) References (REF) VArrays (Varying Arrays) Large Objects (LOBs) Object View (Visão de Objetos)

Page 7: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

7

Tipos definidos pelo usuário

Um “user-defined type” ou UDT é essencialmente uma definição de classe, com estrutura e métodos

Um UDT pode ser usado de duas formas:– Como uma linha em uma tabela– Como uma coluna de uma tabela

Page 8: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

8

Definição de UDT

SQL99CREATE TYPE <nome_do_tipo> AS (

<lista de atributos><lista de métodos>

); Oracle

CREATE TYPE nome_do_tipo AS OBJECT(

id NUMBER,nome VARCHAR2(255),MEMBER FUNCTION get_id RETURN NUMBER

);/

Page 9: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

9

SELECT e INSERT

SELECT t.campo_objeto.atributo, t. t.campo_objeto.metodo()

FROM tabela t;

INSERT INTO tabela VALUES( 1, ‘campo texto’, NOME_OBJ (11, ‘texto’));

(construstor, métodos de comparação (MAP) e ordem (ORDER) criados automaticamente – ordem de atributos na definição)

Page 10: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

10

Herança / Polimorfismo

CREATE TYPE Poligono AS OBJECT (nome varchar(20),pontos Points_obj,MEMBER FUNCTION get_area RETURN NUMBER

) NOT FINAL NOT INSTANTIABLE/

CREATE TYPE Quadrado UNDER Poligono (OVERRIDING MEMBER FUNCTION

get_area RETURN NUMBER );

É possível implementar herança múltipla Utilização de herança em tabelas

Page 11: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

11

Nested Tables

create type autor as object ( nome varchar(10) );/create type conj_autores as table of autor;/create type livro as object (

titulo varchar(20),autores conj_autores);

/ create table livros of livro

nested table autores store as tabela_autores;

Page 12: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

12

Definição de UDT

Tipos de Objetos (UDT) Nested Tables (Tabelas aninhadas)

References (REF) VArrays (Varying Arrays) Large Objects (LOBs) Object View (Visão de Objetos)

Page 13: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

13

Experimento

LIMS Pequena representação de um sistema laboratórial Objetivos

– Obter descrição e resultado formatado de todos os tipos– Calcular regressão linear dos pontos do gráfico

Entidades– Testes– Resultados (Text, Numeric, Date, Graph)– Pontos (100 pontos por gráfico)

Page 14: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

14

Experimento

Result

PK RESULT_ID

FK1 TEST_ID NAME ORIGINAL_RESULT RAW_NUMERIC_RESULT RAW_DATETIME_RESULT FORMATTED_RESULT

Points

FK1 RESULT_ID X Y

Test

PK TEST_ID

NAME CREATED_ON

1 * 1 *

Page 15: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

15

Diagrama Objeto-Relacional

Test

PK TEST_ID

NAME CREATED_ON

+get_id()+show_super()+show()+formatted_result()

-result_id-name-test_id

result_objtyp

+show()+formatted_result()

-RAW_NUMERIC_RESULT

NUMERIC_RESULT_OBJTYP

+show()+formatted_result()

-ORIGINAL_RESULT

TEXT_RESULT_OBJTYP

+show()+formatted_result()

-RAW_DATETIME_RESULT

DATE_RESULT_OBJTYP

-X-Y

POINT_OBJTYP

+show()+formatted_result()+slope()+intercept()

-points <POINT_TABTYP>

GRAPH_RESULT_OBJTYP

POINT_TABTYP

* *

-End1

1

-End3

*

Page 16: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

16

Scripts

OR_CriarEstrutura.sql REL_CriarEstrutura.sql

OR_inserts.sql REL_inserts.sql

Page 17: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

17

Resultados - Inserts

Por execução 4000 resultados 4000 testes 100.000 pontos gráfico

Por execução 40.000 resultados 40.000 testes 1.000.000 pontos gráfico

Page 18: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

18

Resultados - Selects

Volume dados 20.000 resultados 20.000 testes 500.000 pontos grafico

Page 19: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

19

Resultados - Selects

Volume dados 140.000 resultados 140.000 testes 3.500.000 pontos gráfico

Page 20: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

20

Resultados – Regressão Linear

O-R

Elapsed: 00:00:00.20

Statistics---------------------------------------------------------- 3 recursive calls 0 db block gets 4163 consistent gets 0 physical reads 0 redo size 615 bytes sent via SQL*Net to client 381 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed

Relacional

Elapsed: 00:00:00.06

Statistics---------------------------------------------------------- 4 recursive calls 0 db block gets 1205 consistent gets 0 physical reads 0 redo size 512 bytes sent via SQL*Net to client 381 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed

500.000 pontos gráfico

Page 21: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

21

Resultados – Regressão Linear

O-R

Elapsed: 00:00:17.16

Statistics---------------------------------------------------------- 132 recursive calls 0 db block gets 28074 consistent gets 19729 physical reads 0 redo size 616 bytes sent via SQL*Net to client 381 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed

Relacional

Elapsed: 00:00:05.73

Statistics---------------------------------------------------------- 5 recursive calls 0 db block gets 8142 consistent gets 5551 physical reads 0 redo size 512 bytes sent via SQL*Net to client 381 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed

3.500.000 pontos gráfico

Page 22: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

22

Resultados – Regressão Linear

O-R

Elapsed: 00:00:16.76

Statistics---------------------------------------------------------- 2 recursive calls 0 db block gets 27867 consistent gets 20061 physical reads 0 redo size 616 bytes sent via SQL*Net to client 381 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed

Relacional

Elapsed: 00:00:04.86

Statistics---------------------------------------------------------- 0 recursive calls 0 db block gets 8069 consistent gets 5438 physical reads 0 redo size 512 bytes sent via SQL*Net to client 381 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed

3.500.000 pontos gráfico – 2ª execução

Page 23: 1 Vantagens na Utilização de Banco de Dados Objeto-Relacional em Sistemas Laboratoriais Ricardo Ferreira Schiavo ESCOLA POLITÉCNICA DA UNIVERSIDADE DE

23

Conclusão

Os componentes objeto-relacional presentes no Oracle permitem uma melhor organização da hierarquia das entidades e do código

A performance e escalabilidade de tabelas de objetos ainda é inferior a estrutura equivalente relacional, porém satisfatórias

Podem ser criados métodos para realizar operações nos elementos complexos (LOBs, multimídia) sem que seja necessária a transmissão de toda a informação da base de dados para os clientes

Novas tendências de Mapeamento objeto-relacional (ORM)