Especialização em Tecnologia da Informação

Slides:



Advertisements
Apresentações semelhantes
Ana Paula B. Barboza Ivana Xavier Rodrigues
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Estudo de Caso, modelo Oracle 10g
Gerenciamento de Dados e Informação Estudo de caso – PL/SQL
SQL Avançado Continuação
Banco de Dados SQL TRIGGERS (Gatilhos)
Maurício Edgar Stivanello
Operadores Especiais da SQL
Introdução à Engenharia da Computação
Oficina sobre banco de dados
Material III-Bimestre Wagner Santos C. de Jesus
Eduardo Costa Gabriel Cypriano Rodrigo Calhau
Banco de dados Profª Kelly Medeiros.
Equipe de monitoria Aula prática 2. Apresentação do caso de estudo Conceitual Lógico Algumas informações iniciais Consultas e exercícios Surpresa... =)
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
Conceitos de SGBD Objeto-Relacional Oracle 10g [2]
Banco de Dados Avançado - Prof.ª Valeria Times
Monitoria GDI Aula Prática
Equipe de monitoria Aula prática 4
Equipe de monitoria Aula prática 4
Bancos de Dados Espaciais
SQL Server 2012 Tipos de Dados e Tabelas
Monitoria GDI Aula Prática
Cronograma Formato do Comando SELECT – 1ª Seção Uso de Funções (DATE_FORMAT, DAY, MONTH, NOW, CONCAT, FORMAT, COUNT, AVG, MAX, MIN e FORMAT) AS DISTINCT.
Design Patterns / Acesso ao banco de dados (java.sql)
Equipe de monitoria Aula prática 3.  Caso de estudo  Igualando situações  Cursor  Function  Procedure  Trigger  Package  Surpresa...
Equipe de monitoria Aula prática 4
Primeira aula de PL/SQL Parte II
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
Conceitos de SGBD Objeto-Relacional Oracle 10g [1]
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
III – Oracle10g Funções que Manipulam Apontadores.
III – Oracle 10g Herança.
Com coleções, cursor não é mais necessário
SEQUENCE, PROCEDURE, FUNÇÃO, TRIGGER
Monitoria GDI Aula Prática
Desenvolvendo um script SQL
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times.
Criação de Tabelas. CREATE TABLE nome_da_tabela ( >>. >> ) Ex.: SQL SERVER 2008 CREATE TABLE pessoa ( CPF VARCHAR(11) NOT NULL, NOME VARCHAR(100) NOT.
Baseado no material do Professor Raul Paradeda
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
Ricardo Ferreira Schiavo
SQL Server Comando PIVOT.
III – Oracle 9i Indexação. Índices Baseados em Funções É um índice baseado no valor de retorno de uma expressão ou função –A função pode ser um método.
Banco de Dados I I Comandos SQL
Banco de dados 1 Modelagem de Dados Utilizando MER
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
 Introdução  Definindo Visões de Objeto  Usando Visões de Objeto  Atualizando Visões de Objeto.
Bancos de Dados Objeto-relacional e Orientados a Objetos Maria Carolina
SQL – DML Consultas envolvendo mais de uma tabela
III – O Modelo OR Estudo de Caso, modelo Oracle9i.
Subconsulta na Cláusula FROM
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
Daniel Paulo SQL Módulo I Daniel Paulo
Prof. Renato de Oliveira Bastos
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática
Linguagem de definição de dados - SQL
Banco de Dados Introdução à Linguagem SQL – Junção Manipulação com 3 Tabelas ou + em relacionamentos n/1 Esta aula é baseada em material produzido pelo.
Banco de Dados II Prof: Márcio Soussa Curso de Sistemas de Informação Faculdades Jorge Amado.
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
Aula Prática Objeto-Relacional Monitoria GDI
Transcrição da apresentação:

Especialização em Tecnologia da Informação Bancos de Dados Objeto-relacional e Orientados a Objetos Especialização em Tecnologia da Informação Maria Carolina (mcts@cin.ufpe.br)

Projeto a ser desenvolvido Motivação Conteúdo na prática Projeto a ser desenvolvido Prática é necessária

Roteiro Metodologia Exemplo Implementação Apresentação de uma solução Minimundo Modelagem Implementação Tipos Tabelas Apresentação de uma solução Consultas

Metodologia

Metodologia escolhida Uso de um caso de estudo Firmar conceitos Tirar dúvidas Realizar implementação ...

Caso prático

Domínio da aplicação Qualquer estabelecimento comercial que precise armazenar informações sobre seus funcionários, clientes, produtos... Supermercado simples Loja que vende a varejo ou a atacado ...

Minimundo (1) Um cliente do supermercado é identificado por um código único, nome, endereço, telefone, CPF e data de nascimento. Cada cliente realiza vários pedidos, os quais só podem estar associados a um cliente.

Modelo Conceitual (1)

Minimundo (2) Sobre um pedido, deseja-se armazenar um código de controle e a data de realização. A cada pedido, um ou mais produtos podem ser solicitados, mas é necessário saber a quantidade vendida e o valor de venda de cada unidade.

Modelo Conceitual (2)

Minimundo (3) Um produto é reconhecido no sistema através de um código único, nome e preço. Cada produto é fornecido por um fornecedor, o qual é representado por um identificador, nome, endereço e CNPJ.

Modelo Conceitual (3)

Minimundo (4) Cada pedido é atendido por apenas um funcionário, o qual é representado por um código único, nome, telefone, CPF, data de nascimento, endereço, função e salário, mas o mesmo funcionário é responsável por mais de um atendimento. Não existe a obrigatoriedade de que pessoas com a mesma função recebam o mesmo salário.

Modelo Conceitual (4.1)

Modelo Conceitual (4.2)

Minimundo (5) Os funcionários possuem uma organização interna na empresa: eles estão distribuídos em departamentos, porém um funcionário trabalha em apenas um departamento. Cada departamento possui um nome e um código.

Modelo Conceitual (5)

Minimundo (Observações) Quando houver necessidade de armazenar telefone de alguém envolvido no sistema, deve-se armazenar no máximo 3 telefones (residencial, celular e comercial). Já quando se falar em endereço, lembrar de especificar cada campo: Logradouro CEP Número Bairro Cidade Estado

Implementação

Implementação Implementar esse modelo conceitual usando os conceitos Objeto-relacional da Oracle. Tipos Tabela de tipos Ref Nested Varray ...

Contas Oracle www.cin.ufpe.br/~mcts/ETI/OR-Oracle ArquivoContas ORACLE.txt

Uma solução

Minha implementação www.cin.ufpe.br/~mcts/ETI/OR-Oracle ScriptCriacao.SQL Arquivos adicionais ScriptDROP.SQL ScriptPovoamento.SQL

Consultas

SELECT C.* from tb_cliente C WHERE C.endereco.cidade = 'Recife' Consulta (1) Selecionar os dados dos clientes que moram em Recife. SELECT C.* from tb_cliente C WHERE C.endereco.cidade = 'Recife'

Consulta (2) Selecionar os telefones de todos os funcionários. SELECT F.nome, T.* FROM tb_funcionario F, TABLE(SELECT telefones FROM tb_funcionario WHERE id = F.id) T ORDER BY 1,2;

SELECT D.nome, COUNT(value(FUNC)) from tb_departamento D, Consulta (3) Selecionar o nome e a quantidade de funcionários de cada departamento. SELECT D.nome, COUNT(value(FUNC)) from tb_departamento D, TABLE(SELECT dep.funcionarios FROM tb_departamento dep where dep.coddepartamento = D.coddepartamento) FUNC GROUP BY D.nome

Consulta (4) Inserir um novo funcionário e associá-lo ao departamente de vendas. INSERT INTO tb_funcionario VALUES (8, null, 'Funcionario Novo', TO_DATE('20/08/1980', 'dd/MM/yyyy'), array_telefone(null, tp_telefone(81, 89632541), null), tp_endereco('Ponte Velha', 1548, 'Recife Antigo', 'Recife', 'PE', '20639-154'), 1000, 'Vendedor', NESTED_REF_PEDIDO()); INSERT INTO TABLE(SELECT D.FUNCIONARIOS FROM tb_departamento D WHERE D.nome = 'Vendas') F VALUES ((SELECT REF(Func) FROM tb_Funcionario Func WHERE Func.id = 8));

Consulta (5) Selecionar quantos pedidos cada cliente já realizou. SELECT c.nome, COUNT(p.codigo) AS QtdePedidos FROM tb_cliente c LEFT OUTER JOIN tb_pedido p ON (p.ref_cliente = REF(c)) group by c.nome;

Consulta(6) Selecionar o número de celular de cada funcionário Escreva uma função que receba dois parâmetros: Uma lista do tipo dos telefones Índice onde se localiza o telefone que ser que buscar. Utilize essa função para implementar essa consulta

SELECT nome, getMember(telefones, 2) FROM tb_funcionario; Consulta (6) CREATE OR REPLACE FUNCTION getMember (vlist tb_funcionario.telefones%type, indice NUMBER) RETURN tp_telefone IS BEGIN IF indice <= vlist.last THEN RETURN vlist(indice); END IF; RETURN NULL; END getMember; SELECT nome, getMember(telefones, 2) FROM tb_funcionario; SELECT X.nome, DECODE(getMember(X.telefones, 2), null, 'No members', to_char (getMember(X.telefones, 2).toString)) FROM tb_funcionario X;

Consulta (7) Selecionar o valor gasto por cada cliente que já realizou alguma compra. SELECT S.ref_pedido.ref_cliente.nome As nomeCLiente, SUM(S.valorvenda) AS QtdeGasta from tb_solicitacao S GROUP BY S.ref_pedido.ref_cliente.nome;

Dúvidas do projeto O que sobrar do tempo... =D

Especialização em Tecnologia da Informação Bancos de Dados Objeto-relacional e Orientados a Objetos Especialização em Tecnologia da Informação Maria Carolina (mcts@cin.ufpe.br)