Banco de Dados I 2007. Módulo III: Linguagens de Consulta. (Aula 2) Clodis Boscarioli



Documentos relacionados
Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 8) Clodis Boscarioli

Banco de Dados I 2007 Módulo III: Linguagens de Consulta. (Aula 9) Clodis Boscarioli

BANCO DE DADOS aula 6 álgebra relacional -

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli

Modelagem de Dados. Aula 02 Arquitetura e Álgebra Relacional. Maxwell Anderson

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Comandos de Manipulação

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 1) Clodis Boscarioli

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Capítulo 4 A Linguagem SQL. Murilo Silva de Camargo

Projeto e Implementação

Prof.: Clayton Maciel Costa

Introdução ao SQL. Aécio Costa

Banco de Dados I. Projeto de Banco de Dados e o Modelo E-R. Fabricio Breve

Capítulo 3 Modelo Relacional

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ PRÓ-REITORIA DE GRADUAÇÃO. Curso: Informática Modalidade: Bacharelado Turno: Integral.

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 2) Clodis Boscarioli

SQL DML. Frederico D. Bortoloti

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Banco de Dados I Módulo III: Linguagens de Consulta. (Aulas 7) Clodis Boscarioli

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

BDII SQL Junção Revisão 8

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Álgebra Relacional. OBS: as operações Seleção e Projeção são operações unárias porque atuam em relações únicas.

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 4) Clodis Boscarioli

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Definida pelo American National Standard Institute (ANSI) em 1986

11/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Engenharia de Computação / Engenharia de Produção. Banco de Dados Prof. Maria das Graças da Silva Teixeira

AULA 6 - Operações Espaciais

Plano de Trabalho Docente Ensino Técnico

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

MODELO DE DADOS VS ESQUEMA

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Tarefa Orientada 13 Agrupamento e sumário de dados

Memória de aula Aulas 11 e 12

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Revisão de Banco de Dados

Unidade 5 Armazenamento e Indexação

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Banco de Dados. Prof. Antonio

Modelagem de Dados. Aula 03 Álgebra Relacional. (continuação) Maxwell Anderson

Memória de aula Semanas 15 e 16

Álgebra Relacional operações adicionais. Encontrar tuplos que obedecem a uma dada relação questões do tipo: quem já leu todos os livros que eu já li?

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Lógica e Bases de Dados. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Linguagem de Consulta Estruturada SQL- DML

4.6. SQL - Structured Query Language

Capítulo 1 INTRODUÇÃO A BANCO DE DADOS

PLANO DE ENSINO. PRÉ-REQUISITO: Modelagem e Programação Orientada a Objetos. PROFESSOR RESPONSÁVEL : Josino Rodrigues Neto

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Banco de Dados I. Projeto de Banco de Dados e o Modelo E-R Parte 2. Fabricio Breve

Query-by-Example (QBE) Datalog

Etapas da Elaboração de um Projeto de Banco de Dados

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Introdução ao SQL Avançado

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Persistência e Banco de Dados em Jogos Digitais

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

UNIVERSIDADE LUTERANA DO BRASIL CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO BANCO DE DADOS RELACIONAL ESTENDIDO

SQL Consultas Básicas

Integridade dos Dados

PROGRAMANDO EM C# ORIENTADO A OBJETOS

SQL UMA ABORDAGEM INTERESSANTE

Banco de Dados I. Introdução. Fabricio Breve

1. Introdução 2. Conceitos 3. Gerenciador de Banco de Dados (SGBD) 3.1. Arquitetura ANSI/SPARC Regras básicas 3.3.

SQL. Prof. Márcio Bueno.

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (

Consultas SQL com mais de uma 01 tabela

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

NOME SEXO CPF NASCIMENTO SALARIO

OBJETIVOS. Orientações para Projetos de BD; Dependências Funcionais (DFs): Definição de DF; Regras de inferência para DFs.

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br

Neste método o cálculo é efetuado de maneira exponencial, ou seja, juros são computados sobre os juros anteriormente calculados.

SQL DDL. Frederico D. Bortoloti

CICLO DE VIDA DE UM BD

Projeto de Banco de Dados

PLANO DE ENSINO DE DISCIPLINA

Principais Conceitos. Modelo Relacional representa o banco de dados como uma coleção de relações Tupla Atributos Relação Domínio

GBC043 Sistemas de Banco de Dados (SBD) Plano de Curso. Ilmério Reis da Silva UFU/FACOM

Banco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada

Introdução. Motivação. Sistema Gerenciador de Banco de Dados (SGBD) Banco de Dados (BD) Sistema de Banco de Dados (SBD)

07/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Projeto de Banco de Dados Distribuído Proj o e j to t o de d B a B nc n o o d e d Da D do d s o D i D str t ibu b í u do d s

Posição Financeira ABRACAF Nota Técnica de Configurações

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Plano de Trabalho Docente Ensino Técnico

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Transcrição:

Banco de Dados I 2007 Módulo III: Linguagens de Consulta (Aula 2) Clodis Boscarioli

Agenda: Álgebra Relacional; Operador Divisão; Álgebra Relacional Estendida.

Operações Adicionais Divisão Operação adicional, binária. Denotada pelo símbolo. Implementa o quantificador universal Para todos. A relação r s, é uma relação no esquema r s, ou seja, uma relação contendo todos os atributos do esquema R que não estão em S, com as tuplas que satisfazem as condições abaixo: t está em π R-S (r) Para toda tupla ts em s existe uma tupla tr em r satisfazendo ambas as condições tr[s] = ts[s] tr[r-s] = t

Operações Adicionais Divisão A fórmula: r s = π R-S (r) -π R-S ((π R-S (r) x s) r) Exemplo: encontre todos os clientes que tenham conta em todas as agências localizadas no Brooklyn.

Operações Adicionais Resolvendo: π nome_cliente, nome_agência (depositante x conta) π nome_agência ( σ cidade_agência = Brooklyn (agência)) nome_cliente Jones Smith Hayes nome_agência Downtown Mianus Perryridge nome_agência Brighton Downtown Turner Round Hill = Jones Williams Perryridge Lindsay Redwood Johnson Brighton Jones Brighton

Álgebra Relacional Estendida Projeção Generalizada Permite que funções aritméticas sejam usadas em listas de projeções. π F1, F2,..., Fn (E) Onde E é qualquer expressão em álgebra relacional e cada F 1, F 2,... F n são expressões aritméticas envolvendo constantes e atributos no esquema E. Suponha o esquema info-crédito(nome_cliente, limite, saldo_crédito). Quanto uma pessoa ainda pode gastar? π nome_cliente, limite - saldo_crédito (info_crédito)

Álgebra Relacional Estendida Junção Externa Suponha os esquemas: empregado (nome_empregado, rua, cidade) trabalhador_ti (nome_empregado, nome_agência, salário) Uma relação simples que combina todas as informações acima é possível com a seguinte expressão: empregado x trabalhador_ti Analise o seguinte exemplo de execução desta consulta:

Álgebra Relacional Estendida Seatle Seaview Williams Death Valley Revolver Smith Carrotville Tunnel Rabbit Hollywood Toon Coyote cidade rua nome_empregado Readmond Williams 5300 Redmond Gates 1300 Mesa Rabbit Mesa Coyote salário nome_agência nome_empregado empregado x trabalhador_ti Redmond Seatle Seaview Williams 1300 Mesa Carrotville Tunnel Rabbit Mesa Hollywood Toon Coyote salário nome_agência cidade rua nome-empregado

Álgebra Relacional Estendida Note que as informações sobre Smith não entraram na relação Informações sobre a rua do Smith Informações sobre a agência e salário de Gates Junção externa pode ser usada para resolver esse problema. Ela pode assumir três formas: Junção externa à esquerda: Junção externa à direita: Junção externa total:

Álgebra Relacional Estendida Nulo nulo Death Villey Revolver Smith Redmond Seatle Seaview Williams 1300 Mesa Carrotville Tunnel Rabbit Mesa Hollywood Toon Coyote salário nome_agência cidade rua nome-empregado 5300 Redmond nulo nulo Gates Redmond Seatle Seaview Williams 1300 Mesa Carrotville Tunnel Rabbit Mesa Hollywood Toon Coyote salário nome_agência cidade rua nome-empregado Nulo nulo Death Villey Revolver Smith 5300 Redmond nulo nulo Gates Redmond Seatle Seaview Williams 1300 Mesa Carrotville Tunnel Rabbit Mesa Hollywood Toon Coyote salário nome_agência cidade rua nome-empregado

Álgebra Relacional Estendida Funções Agregadas: São aquelas que, quando aplicadas, tomam uma coleção de valores e retornam um valor simples como resultado. Sum (soma): toma uma coleção de valores e retorna a soma deles. Avg (média): retorna a média dos valores dados. Count (contar): retorna o número de elementos de uma coleção. Min e Max: retornam, respectivamente, o valor mínimo e máximo de uma coleção.

Álgebra Relacional Estendida Nome-empregado Johnson Loreena Peterson Sato Rao Gopal Adams Brown Nome-agência Downtown Downtown Downtown Austin Austin Perryridge Perryridge Perryridge Salário 1300 2500 1600 5300 1300 sum salário (trabalhador_ti) 16500 count-distinct nome_agência (trabalhadores-ti) 3 Por agrupamento: nome_agência ϑ sum salário (trabalhadores-ti) Downtown 5300 Austin 3100 Perryridge 8100

Álgebra Relacional Estendida nome_agênciaϑsum salario max salario (trabalhadores_ti) nome_agência Downtown Austin Perryridge soma salário 5500 3100 7900 salário máximo 2500 1600 5300

Modificações no Banco de Dados Exclusão: exclusão de tuplas inteiras: r r E Excluir todas as contas do cliente Smith conta conta -σ nome_cliente = Smith (conta) Excluir todos os empréstimos cujos totais estejam entre 0 e 50. empréstimos empréstimo -σ total 0 AND total 50 (empréstimo) Excluir todas as contas das agências localizadas em Needham. r1 σ cidade_agência = Nedham (contas x agência) r2 πnome_agência, número_conta, saldo (r1) conta conta r2

Modificações no Banco de Dados Inserção: inserção de tuplas inteiras: Inserção de informações explícitas: r r E conta conta {( Perryridge,973,1200)} depositante depositante {( Smith,973)} Oferecer uma nova caderneta de poupança de 200 dólares para todos os clientes com empréstimo na agência Perryridge, sendo o número do empréstimo o mesmo número usado para essa conta poupança. r1 (σ cidade_agência = Perryridge (devedor x empréstimo)) r2 π nome_agência, número_empréstimo (r1) conta conta (r2 X {(200)}) depositante depositante π nome_cliente, número_empréstimo (r1)

Modificações no Banco de Dados Atualização: atualiza o valor de um atributo da tupla sem mudar os valores de todos os seus atributos. Atualizando todos os valores de um atributo r π F1, F2,... Fn (r) Selecionando algumas tuplas de r e as atualizando r π F1, F2,... Fn (σ P (r)) (r -σ P (r)) Onde F é uma função de atualização do atributo, uma projeção generalizada.

Modificações no Banco de Dados Exemplo de atualização: Suponha que a taxa de juros tenha sido alterada e que todos os saldos serão aumentados em 5%. conta π nome_agência, número_saldo, saldo saldo * 1,05 (conta) Suponha que as contas com saldos acima de 10 mil dólares recebam 6% de juros, apesar de todos os outros receberem 5%. conta π nome_agência, número_saldo, saldo saldo * 1,06 ( σ saldo > 10000 (conta)) π nome_agência, número_saldo, saldo saldo * 1,05 ( σ saldo 10000 (conta))

Visões do Banco de Dados Qualquer relação que não faça parte do modelo lógico, mas seja visível ao usuário como uma relação virtual é chamada de visão. Definição de visão é dada pelo comando create view. Sintaxe: create view v as <expressões de consulta> onde <expressões de consulta> é uma expressão válida genérica em Álgebra Relacional. O nome da visão é representado por v.

Visões do Banco de Dados Exemplo: Considere uma visão consistindo de agências e seus clientes, chamada de todos_clientes. A definição dessa visão é: create view todos_clientes as π nome_agência, nome_cliente (depositante x conta) π nome_agência, nome_cliente (devedor x empréstimo)

Exercícios Assumindo o esquema abaixo, escreva, em Álgebra Relacional, as consultas a seguir. empregado (nome_empregado, rua, cidade) trabalha (nome_empregado, nome_companhia, salário) companhia (nome_companhia, cidade) gerente (nome_empregado, nome_gerente) a) Encontre os nomes de todos os empregados que trabalham para a XYZ Ltda. b) Encontre todos os nomes das cidades dos empregados que trabalham na XYZ Ltda.

c) Encontre os nomes, endereço e cidade da residência de todos os empregados da XYZ Ltda. que ganham mais de dez mil dólares. d) Encontre os nomes de todos os empregados que moram na mesma cidade da companhia em que trabalham. e) Encontre os nomes de todos os empregados que moram na mesma cidade e na mesma rua de seu gerente. f) Encontre os nomes de todos os empregados que não trabalham para a XYZ Ltda. g) Encontre os nomes de todos os empregados que ganham mais que os empregados da Byte Corporation. h) Assuma que as companhias possam estar localizadas em diversas cidades. Encontre todas as companhias localizadas em todas as cidades onde haja unidades da Small Bank Corporation. Obs.: Exercício extraído Korth et. al, 1999, págs. 104-105.

Referências Bibliográficas Sistemas de Banco de Dados. (Cap. 3) Abraham Silberchatz, Henry F. Korth e S. Sudarshan. 3ª Edição. Makron Books, 1999. Sistemas de Banco de Dados. (Cap. 6) Ramez Elsmari, 4ª Edição. Shamkant B. Navathe. Editora Pearson Addison Wesley, 2005.