1 / 26

Revisão Objeto-Relacional & XML

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

armine
Download Presentation

Revisão Objeto-Relacional & XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 • Membros têm como propriedades Código, Idade, Altura, Nome e Medidas Corporais, as quais representam respectivamente Tórax, Coxas e Bíceps • Cada Membro só pode participar de um Treinamento, mas um Treinamento pode ter vários Membros participando dele

  2. Revisão Objeto-Relacional & XML • Academia de Ginástica (Cont.) • Sobre o Treinamento, para cadaMembro 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

  3. Revisão Objeto-Relacional & XML • Diagrama Codigo Objetivo Nome Horarios Treinamento n 1 N 1 Nome Dia Idade Codigo Hora Medidas Corporais Membros Coxa Torax Biceps Altura

  4. 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ção • Relacionamento deve ser modelado com o uso de nestedtable • Use VARRAY na solução, onde apropriado • Defina os objecttypesnecessários • Defina as objecttablescorrespondentes

  5. Revisão Objeto-Relacional & XML • Objecttypes – criar inicialmente tipos que serão utilizados na definição de outros tipos CREATE OR REPLACE TYPE tp_Medidas AS OBJECT ( Toraxnumber, Coxa number, Bicepsnumber); / Medidas corporais de um Membro

  6. Revisão Objeto-Relacional & XML • Objecttypes (Cont.) CREATE OR REPLACE TYPE tp_Membros AS OBJECT ( Codigonumber, Idade number, Nome varchar2(20), Altura number(4,2), Medidas_corporaistp_Medidas); / Membros da Academia

  7. Revisão Objeto-Relacional & XML • Objecttypes (Cont.) CREATE OR REPLACE TYPE tp_horario AS OBJECT ( Dia varchar2(7), Hora date); / Horário de Treinamento

  8. Revisão Objeto-Relacional & XML • Objecttypes (Cont.) CREATE OR REPLACE TYPE tp_horarios AS VARRAY(3) of tp_horario; / Horários de Treinamento de um dado Membro

  9. Revisão Objeto-Relacional & XML • Objecttypes (Cont.) CREATE OR REPLACE TYPE tp_Relac AS OBJECT ( Membro Reftp_Membros, Aula tp_horarios ); / Objeto para representar o relacionamento de Treinamento com Membros (1:N)

  10. Revisão Objeto-Relacional & XML • Objecttypes (Cont.) CREATE OR REPLACE TYPE tp_nt_relac AS TABLE OF tp_relac ; / Coleção de membros associados a um treinamento – Relacionamento 1:N

  11. Revisão Objeto-Relacional & XML • Objecttypes (Cont.) CREATE OR REPLACE TYPE tp_Treinamento AS OBJECT ( CodigoNumber, Nome Varchar2(30), Objetivo Varchar(30), Membros tp_nt_relac); / Treinamentos da Academia

  12. Revisão Objeto-Relacional & XML • Objecttables CREATE TABLE tb_Membros OF tp_Membros (codigo PRIMARY KEY); Tabela de Membros CREATE TABLE tb_Treinamento OF tp_Treinamento (codigo PRIMARY KEY) NESTED TABLE Membros STORE AS tb_listas_membros; Tabela de Treinamentos

  13. RevisãoObjeto-Relacional & XML Quarta 7h Sexta 15h Segunda 19h • Dados Membros Terça 8h Quinta 15h Sábado 10h Treinamento

  14. Revisão Objeto-Relacional & XML • Inserção de dados INSERT INTO tb_MembrosValues ( tp_membros( 1, 20, 'Ana', 1.80, tp_Medidas(90, 78, 60))); INSERT INTO tb_MembrosValues ( tp_membros( 2, 21, 'Roberto', 1.90, tp_Medidas(100, 60, 85)));

  15. RevisãoObjeto-Relacional & XML • Inserção de dados (Cont.) Insere referência do Membro 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'))))))); Armazena hora no formato hh:mm

  16. Revisão Objeto-Relacional & XML • Inserção de dados (Cont.) – Treinamentos ainda sem membros realizando Inicialização da nestedtable 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 ( )));

  17. RevisãoObjeto-Relacional & XML • Questões • Escrevaum comando SQLparainformarobjetivo do treinamento 'CondicionamentoFísico', além de paracadamembronessetreinamentoinformarnome, idade, altura, medidascorporais de tórax, coxa e bíceps e dias e horáriosdarealização do treinamento (I) I

  18. 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

  19. 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

  20. RevisãoObjeto-Relacional & XML • Solução para a Questão I Mostra hora no formato hh:mm Acesso ao objeto a partir de sua referência Consulta à propriedade de objeto 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'; Consulta ao componente Coleção da tabela aninhada Consulta à tabela aninhada

  21. Revisão Objeto-Relacional & XML • Resultado da Questão I no Oracle OBJETIVO MEMBRO ALTURA IDADE TORAX COXA BICEPS DIA HORA ------------------------- ------------ --------- -------- --------- ------- --------- ---------- -------- Fortalecer músculos Ana 1,8 20 90 78 60 Segunda 19:00 Fortalecer músculos Ana 1,8 20 90 78 60 Quarta 07:00 Fortalecer músculos Ana 1,8 20 90 78 60 Sexta 15:00 Fortalecer músculos Roberto 1,9 21 100 60 85 Terça 08:00 Fortalecer músculos Roberto 1,9 21 100 60 85 Quinta 15:00 Fortalecer músculos Roberto 1,9 21 100 60 85 Sábado 10:00 6 linhas selecionadas.

  22. Revisão Objeto-Relacional & XML • Solução para a Questão II SELECT c.objetivo, c.membros FROM tb_treinamento C wherec.nome = 'Condicionamento Físico';

  23. 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'))))

  24. Revisão Objeto-Relacional & XML • Solução para a Questão III select sys_xmlgen(d.nome) from tb_membros d; • Resultado da Questão III no Oracle SYS_XMLGEN(D.NOME) --------------------------------- <?xml version="1.0"?> <NOME>Ana</NOME> <?xml version="1.0"?> <NOME>Roberto</NOME>

  25. Revisão Objeto-Relacional & XML • Para treinar um pouquinho mais... • Refaça a criação dos tipos e tabelas, considerando o uso de métodos • Insira dados • Refaça consultas utilizando também os métodos • Gere um documento XML a partirdaconsultadaQuestão I • Apresente uma DTD e um XML Schemaadequados para o documento da Questão acima

More Related