Revisão Objeto-Relacional & XML

26
erenciamento de Dados e Informa Ana Carolina Salgado Fernando Fonseca Robson Fidalgo

description

Revisão Objeto-Relacional & XML. Considere o seguinte minimundo , correspondendo à parte dos dados de uma Academia de Ginástica Um Treinamento é caracterizado por Código, Nome e Objetivo - PowerPoint PPT Presentation

Transcript of Revisão Objeto-Relacional & XML

Page 1: Revisão Objeto-Relacional & XML

Gerenciamento de Dados e Informação

Ana Carolina SalgadoFernando Fonseca

Robson Fidalgo

Page 2: Revisão Objeto-Relacional & XML

2

Revisão Objeto-Relacional & XML

Considere o seguinte minimundo, correspondendo à parte dos dados de uma Academia de Ginástica

Um Treinamento é caracterizado por Código, Nome e ObjetivoMembros têm como propriedades Código, Idade, Altura, Nome e Medidas Corporais, as quais representam respectivamente Tórax, Coxas e BícepsCada Membro só pode participar de um Treinamento, mas um Treinamento pode ter vários Membros participando dele

Page 3: Revisão Objeto-Relacional & XML

3

Revisão Objeto-Relacional & XML

Academia de Ginástica (Cont.)Sobre o Treinamento, para cada Membro deve ser registrado também os horários de realização do mesmo, formados por dia da semana e hora, ocorrendo até três vezes por semana

Construa o modelo conceitual do minimundo descrito acima, através de um diagrama Entidade-Relacionamento Estendido

Page 4: Revisão Objeto-Relacional & XML

4

Revisão Objeto-Relacional & XML

Diagrama

1n

Treinamento

Membros

CodigoNome

Objetivo

Nome

Codigo

Altura

Idade

ToraxCoxa

Biceps

MedidasCorporais

1NDia

Hora

Horarios

Page 5: Revisão Objeto-Relacional & XML

5

Revisão Objeto-Relacional & XML

Crie um modelo lógico OR correspondente ao diagrama ER_Estendido da questão anterior para implementar no Oracle 10g, considerando

Utilizar ref na soluçãoRelacionamento deve ser modelado com o uso de nested tableUse VARRAY na solução, onde apropriadoDefina os object types necessáriosDefina as object tables correspondentes

Page 6: Revisão Objeto-Relacional & XML

6

Revisão Objeto-Relacional & XML

Object types – criar inicialmente tipos que serão utilizados na definição de outros tipos

CREATE OR REPLACE TYPE tp_Medidas AS OBJECT ( Torax number, Coxa number, Biceps number);/

Medidas corporais de um Membro

Page 7: Revisão Objeto-Relacional & XML

7

Revisão Objeto-Relacional & XML

Object types (Cont.)

CREATE OR REPLACE TYPE tp_Membros AS OBJECT ( Codigo number, Idade number, Nome varchar2(20), Altura number(4,2), Medidas_corporais tp_Medidas);/

Membros da Academia

Page 8: Revisão Objeto-Relacional & XML

8

Revisão Objeto-Relacional & XML

Object types (Cont.)

Horário de Treinamento

CREATE OR REPLACE TYPE tp_horario AS OBJECT ( Dia varchar2(7), Hora date);/

Page 9: Revisão Objeto-Relacional & XML

9

Revisão Objeto-Relacional & XML

Object types (Cont.)

Horários de Treinamentode um dado Membro

CREATE OR REPLACE TYPE tp_horarios AS VARRAY(3) of tp_horario;/

Page 10: Revisão Objeto-Relacional & XML

10

Revisão Objeto-Relacional & XML

Object types (Cont.)

CREATE OR REPLACE TYPE tp_Relac AS OBJECT ( Membro Ref tp_Membros, Aula tp_horarios);/

Objeto para representar o relacionamento de Treinamento com Membros (1:N)

Page 11: Revisão Objeto-Relacional & XML

11

Revisão Objeto-Relacional & XML

Object types (Cont.)

CREATE OR REPLACE TYPE tp_nt_relac AS TABLE OF tp_relac ;/

Coleção de membros associados a um treinamento –Relacionamento 1:N

Page 12: Revisão Objeto-Relacional & XML

12

Revisão Objeto-Relacional & XML

Object types (Cont.)

CREATE OR REPLACE TYPE tp_Treinamento AS OBJECT ( Codigo Number, Nome Varchar2(30), Objetivo Varchar(30), Membros tp_nt_relac);/

Treinamentos da Academia

Page 13: Revisão Objeto-Relacional & XML

13

Revisão Objeto-Relacional & XML

Object tables

CREATE TABLE tb_Membros OF tp_Membros (codigo PRIMARY KEY);

CREATE TABLE tb_Treinamento OF tp_Treinamento (codigo PRIMARY KEY) NESTED TABLE Membros STORE AS tb_listas_membros;

Tabela de Membros

Tabela de Treinamentos

Page 14: Revisão Objeto-Relacional & XML

14

Revisão Objeto-Relacional & XML

DadosCodigo Idade Nome Altura Medida

Torax Coxa Biceps1 20 Ana 1,80 90 78 60

2 21 Roberto 1,90 100 60 85

Codigo Nome Objetivo1 Condicionamento

FísicoFortalecer músculos

2 Pilates Melhoria geral

3 Musculação Marombar

Segunda19h

Terça8h

Membros

Treinamento

Quarta7h

Sexta15h

Quinta15h

Sábado10h

Page 15: Revisão Objeto-Relacional & XML

15

Revisão Objeto-Relacional & XML

Inserção de dados

INSERT INTO tb_Membros Values ( tp_membros(1, 20, 'Ana', 1.80, tp_Medidas(90, 78, 60)));

INSERT INTO tb_Membros Values ( tp_membros(2, 21, 'Roberto', 1.90, tp_Medidas(100, 60, 85)));

Page 16: Revisão Objeto-Relacional & XML

16

Revisão Objeto-Relacional & XML

Inserção de dados (Cont.)

INSERT INTO tb_Treinamento VALUES (tp_Treinamento(1, 'Condicionamento Físico', 'Fortalecer músculos', tp_nt_relac (tp_relac((SELECT REF (C) FROM tb_Membros C WHERE C.codigo = 1), tp_horarios(tp_horario('Segunda', to_date('19:00', 'HH24:MI')),tp_horario('Quarta', to_date('07:00', 'HH24:MI')), tp_horario('Sexta', to_date('15:00', 'HH24:MI')))), tp_relac((SELECT REF (C)FROM tb_Membros C WHERE C.codigo = 2), tp_horarios(tp_horario('Terça', to_date('08:00', 'HH24:MI')),tp_horario('Quinta', to_date('15:00', 'HH24:MI')), tp_horario('Sábado', to_date('10:00', 'HH24:MI')))))));

Insere referência do Membro

Armazena hora no formato hh:mm

Page 17: Revisão Objeto-Relacional & XML

17

Revisão Objeto-Relacional & XML

Inserção de dados (Cont.) – Treinamentos ainda sem membros realizando

INSERT INTO tb_Treinamento VALUES (tp_Treinamento(2, 'Pilates ', 'Melhoria geral', tp_nt_relac ( )));

INSERT INTO tb_Treinamento VALUES (tp_Treinamento(3, ' Musculação', ' Marombar', tp_nt_relac ( )));

Inicialização danested table

Page 18: Revisão Objeto-Relacional & XML

18

Revisão Objeto-Relacional & XML

QuestõesEscreva um comando SQL para informar objetivo do treinamento 'Condicionamento Físico', além de para cada membro nesse treinamento informar nome, idade, altura, medidas corporais de tórax, coxa e bíceps e dias e horários da realização do treinamento (I)

I

Page 19: Revisão Objeto-Relacional & XML

19

Revisão Objeto-Relacional & XML

Questões (Cont.)Escreva um comando SQL para informar objetivo do treinamento 'Condicionamento Físico', além das informações de seus membros. Não utilizar na solução DEREF, COLUMN_VALUE, TABLE ou junção relacional (II)

II

Page 20: Revisão Objeto-Relacional & XML

20

Revisão Objeto-Relacional & XML

Questões (Cont.)Construa no Oracle um comando que gere um documento XML para cada nome de membro da academia (III)

III

Page 21: Revisão Objeto-Relacional & XML

21

Revisão Objeto-Relacional & XML

Solução para a Questão I

SELECT c.objetivo, deref(t.membro).nome as membro, deref(t.membro).altura as altura, deref(t.membro).idade as idade, deref(t.membro).medidas_corporais.torax as torax,deref(t.membro).medidas_corporais.coxa as Coxa, deref(t.membro).medidas_corporais.biceps as biceps, d.dia as dia, to_char(d.hora, 'HH24:MI') as hora FROM tb_treinamento C, TABLE(C.membros) t, TABLE (t.aula)d WHERE C.nome = 'Condicionamento Físico';

Acesso ao objeto a partir de sua referência Consulta à propriedade de

objeto

Mostra hora no formato hh:mm

Consulta à tabela aninhada Consulta ao componenteColeção da tabela aninhada

Page 22: Revisão Objeto-Relacional & XML

22

Revisão Objeto-Relacional & XML

OBJETIVO MEMBRO ALTURA IDADE TORAX COXA BICEPS DIA HORA------------------------- ------------ --------- -------- --------- ------- --------- ---------- --------Fortalecer músculos Ana 1,8 20 90 78 60 Segunda 19:00Fortalecer músculos Ana 1,8 20 90 78 60 Quarta 07:00Fortalecer músculos Ana 1,8 20 90 78 60 Sexta 15:00Fortalecer músculos Roberto 1,9 21 100 60 85 Terça 08:00Fortalecer músculos Roberto 1,9 21 100 60 85 Quinta 15:00Fortalecer músculos Roberto 1,9 21 100 60 85 Sábado 10:00

6 linhas selecionadas.

Resultado da Questão I no Oracle

Page 23: Revisão Objeto-Relacional & XML

23

Revisão Objeto-Relacional & XML

Solução para a Questão II

SELECT c.objetivo, c.membros FROM tb_treinamento C where c.nome = 'Condicionamento Físico';

Page 24: Revisão Objeto-Relacional & XML

24

Revisão Objeto-Relacional & XML

Resultado da Questão II no Oracle

OBJETIVO MEMBROS(MEMBRO, AULA(DIA, HORA))-----------------------------------------------------------------------------------------------------------------------

Fortalecer músculos TP_NT_RELAC ( TP_RELAC( 0000220208BE473D3826C5445A8D4849B2530AA69FFE6829B3DE62489C9 A84FD7F9747C05F, TP_HORARIOS(TP_HORARIO('Segunda', '01/11/11'), TP_HORARIO('Quarta', '01/11/11'), TP_HORARIO('Sexta', '01/11/11'))), TP_RELAC( 0000220208CAD7E8582CB24220ADFA88CEB61CF5B0FE6829B3DE62 489C9A84FD7F9747C05F, TP_HORARIOS(TP_HORARIO ('Terça', '01/11/11'), TP_HORARIO('Quinta', '01/11/11'), TP_HORARIO( 'Sábado', '01/11/11'))))

Page 25: Revisão Objeto-Relacional & XML

25

Revisão Objeto-Relacional & XML

Solução para a Questão III

select sys_xmlgen(d.nome) from tb_membros d;

SYS_XMLGEN(D.NOME)---------------------------------

<?xml version="1.0"?><NOME>Ana</NOME>

<?xml version="1.0"?><NOME>Roberto</NOME>

Resultado da Questão III no Oracle

Page 26: Revisão Objeto-Relacional & XML

26

Revisão Objeto-Relacional & XML

Para treinar um pouquinho mais...Refaça a criação dos tipos e tabelas, considerando o uso de métodosInsira dadosRefaça consultas utilizando também os métodosGere um documento XML a partir da consulta da Questão IApresente uma DTD e um XML Schema adequados para o documento da Questão acima