Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Documentos relacionados
Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan

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

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação

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

Faculdade Pitágoras 24/10/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

- SQL Linguagem de Manipulação de Dados

Bancos de Dados Notas de Aula Álgebra Relacional Introdução Prof. Dr. Daniel A. Furtado

Álgebra Relacional e SQL

Roteiro. Álgebra Relacional e Cálculo Relacional. BCC321 - Banco de Dados I. Introdução. Ementa. Posicionamento. Introdução

Modelo Relacional - Manipulação

IEC Banco de Dados I Aula 06 Álgebra Relacional

Aula 8 BD1 Álgebra Relacional. Profa. Elaine Faria UFU

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

ÁLGEBRA E CÁLCULO RELACIONAL

António Rocha Nuno Melo e Castro

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

Álgebra e cálculo relacional. Andre Noel

Álgebra Relacional: Prod. Cartesiano. Álgebra Relacional: Projeção. Álgebra Relacional: Junção Natural. Álgebra Relacional: Junção. 1.

TECNOLOGIA EM SISTEMAS PARA INTERNET. Banco de dados em aplicativos WEB. Aula 5

Banco de Dados I. Aula 9 - Prof. Bruno Moreno 20/09/2011

Banco de Dados. Aula 8 - Prof. Bruno Moreno 16/09/2011

Rápida revisão do Modelo Relacional

Álgebra Relacional e SQL operações de interesse

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

Álgebra Relacional. Linguagem de consultas procedural Conjunto de operações que usam uma ou duas relações como entrada e geram uma relação de saída

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,

ANÁLISE E PROJETO DE BANCO DE DADOS

Sumário SELECT + FROM

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

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

Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas)

Um modelo de dados, além de definir estruturas e restrições, deve definir um conjunto de operações para manipular os dados.

1. E 1 R 1 X R 2 (equi-join) C = D

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os tuplos que satisfazem uma condição. exemplo: empréstimos da agência de Perryridge

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

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Operações sobre sacos. Álgebra Relacional Extendida.

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge

O Modelo e a Álgebra Relacional

Banco de Dados I Álgebra Relacional

Banco de Dados 1 2º Semestre

Banco de Dados II. Aula Prof. Diemesleno Souza Carvalho

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

4. Projecto de Bases de Dados

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

Laboratóriode Bases de Dados Aula12. ÁlgebraRelacional-Revisão. Professora: Fátima L. S. Nunes

GBC043 Sistemas de Banco de Dados Álgebra e Cálculo Relacional. Ilmério Reis da Silva UFU/FACOM

Álgebra Relacional. Programa. Modelos de Dados. LCs relacionais formais. Introdução

Bancos (Bases) de Dados Aula #7 Álgebra Relacional

Bases de Dados. Parte IV: Álgebra e Cálculo Relacional

Introdução. Introdução. Álgebra Relacional. Linguagens formais de Consulta Modelo Relacional. O que foi visto até agora...

Modelo de Dados Relacional

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Álgebra Relacional. Índice. Sistemas de Bases de Dados. Orlando Belo

Universidade Veiga de Almeida

Modelo Relacional - Manipulação

Bases de Dados 2013/2014 Álgebra Relacional. Helena Galhardas 2013 IST. Bibliografia. Raghu Ramakrishnan, Database Management Systems, Cap.

BDII SQL Junção Revisão 8

Bases de Dados Uma Recordação da Algebra Relacional

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

DML - SELECT JUNÇÕES (JOIN)

Curso EFA Tecnológico Técnico de Informática e Sistemas. - Álgebra Relacional - João Leitão

Bases de Dados. Parte IV: Álgebra e Cálculo Relacional

Bases de Dados. Parte IV

Bases de Dados. Parte IV. Álgebra e Cálculo Relacional

BDII SQL Junção Revisão 8

Introdução a Bancos de Dados

Álgebra Relacional. Introdução. Introdução. Álgebra Relacional

Introdução ao PostgreSQL

Álgebra Relacional e Cálculo Relacional

Modelo Relacional: Banco de Dados: coleção de relações cada relação tem um nome único.

1º Teste Sem consulta

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Linguagem de Consulta/Interrogação

Permite que que funções aritméticas sejam usadas em listas de projeções. Representação: (E) π F1,F 2,...,F n

Memória de aula Semanas 15 e 16

<Course name> <Lesson number>- #

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

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

ρ x (r) ρ cliente2 (cliente) Pode haver ambiguidade quando a mesma relação aparece mais de uma vez em uma consulta. Nesses casos renomear relação.

Combinando tabelas: produto seleção projeção

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO PROJETO DE BANCO DE DADOS RELACIONAL. Profº Erinaldo Sanches Nascimento

Roteiro. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Sintaxe do comando SELECT

ANÁLISE E PROJETO DE BANCO DE DADOS

Operações fundamentais são suficientes para expressar qualquer consulta. Problema: consultas muito longas. Solução: definição de operações adicionais

LINGUAGEM DE MANIPULAÇÃO DE DADOS CONSULTAS AVANÇADAS

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL

Normalização. Anomalias Dependência e determinantes Normalização

Revisão de Bancos de Dados

Conteúdo Segunda Prova. Revisão Segunda Prova. Relembrando: operações. Álgebra Relacional. Seleção. Projeção. Data da prova: 23/05.

Transcrição:

Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan

Unidade 6.2 Álgebra Relacional - Junção

PACIENTE cod-pac nome-pac sexo data-nasc nro-convenio 1 N 1 N CONVENIO nro-convenio descrcao CONSULTA nro-consulta cod-pac crm-medico data 1 N 1 N MEDICO crm nome EXAME nro-consulta cod-exame data-exame resultado N 1 TIPO-EXAME codexame tipo

PACIENTE CONSULTA cod-pac nome-pac sexo data-nasc nro-convenio 11111 Fulano M 01/01/1980 05 22222 Beltrana F 15/04/1794 01 33333 Ciclano M 22/06/1960 05 nro-consulta cod-pac crm-medico data 00001 33333 3456 02/01/2008 00002 33333 6766 03/01/2008 00003 11111 3456 13/03/2008 00004 22222 3456 13/03/2008 00005 11111 6766 13/03/2008 CONVENIO nro-convenio descricao 01 Unimed 02 Santa Casa 05 Cobre Tudo EXAME nro-consulta cod-exame data-exame resultado 00001 01-2 03/01/2008 Positivo 00003 02-1 13/03/2008 Acima de 100 00003 02-2 13/03/2008 Abaixo de 0 00005 01-1 13/03/2008 Positivo 00005 01-2 13/03/2008 Negativo MEDICO crm nome 3456 Dr. José 6766 Dra. Maria 8976 Dr. Cura Tudo TIPO-EXAME cod-exame tipo preco 01-1 Urina Cultura 23,44 01-2 Urina Rotina 15,55 02-1 Sangue- xxx 60,50 02-2 Sangue-yyy 35,00

Operadores fundamentais Seleção Projeção Produto Cartesiano Junção União Diferença Definição das operações

Junção Seleção aplicada a um Produto Cartesiano A operação de junção é bastante comum em consultas a bancos de dados relacionais, pois permite estabelecer relação entre tuplas de relações distintas para a formação de uma única relação. Pode ser entendida como uma seleção aplicada a um produto cartesiano.

Cross Product ou Cross Join; Operação binária; Produto Cartesiano Permite combinar informações de duas relações (combinações de cada tupla de uma relação com cada tupla da outra relação). Formato: R1 R2 Considerando-se que: R1 é uma relação com m1 colunas e n1 linhas; R2 é uma relação com m2 colunas e n2 linhas; A relação resultante terá (m1 + m2) colunas e (n1 * n2) linhas

Produto Cartesiano - Exemplo Sejam as relações R e S abaixo; Calcular o produto cartesiano R S: R A B C a1 b1 c1 a2 b1 c1 S D B C % & @ # $! R X S A R.B R.C D S.B S.C a1 b1 c1 % & @ a1 b1 c1 # $! a2 b1 c1 % & @ a2 b1 c1 # $!

Produto Cartesiano O resultado do produto cartesiano de duas tabelas é uma terceira tabela contendo todas as combinações possíveis entre os elementos das tabelas originais. CONVENIO nro-convenio descricao MEDICO crm nome 01 Unimed 02 Santa Casa 05 Cobre Tudo 3456 Dr. José 6766 Dra. Maria 8976 Dr. Cura Tudo Produto Cartesiano Convenio X Medico nro-convenio descricao crm nome 01 Unimed 3456 Dr. José 01 Unimed 6766 Dra. Maria 01 Unimed 8976 Dr. Cura Tudo 02 Santa Casa 3456 Dr. José 02 Santa Casa 6766 Dra. Maria 02 Santa Casa 8976 Dr. Cura Tudo 05 Cobre Tudo 3456 Dr. José 05 Cobre Tudo 6766 Dra. Maria 05 Cobre Tudo 8976 Dr. Cura Tudo

Junção A operação JOIN é representada por ; Usada para combinar tuplas relacionadas de relações em uma única tupla; Esta operação é muito importante para bancos de dados relacionais; Permite processar relacionamentos entre relações. A operação junção pode ser definida por um produto cartesiano seguido por uma operação SELEÇÃO.

Junção CONSULTA nro-consulta cod-pac crm-medico data 00001 33333 3456 02/01/2008 00002 33333 6766 03/01/2008 00003 11111 3456 13/03/2008 00004 22222 3456 13/03/2008 00005 11111 6766 13/03/2008 MEDICO crm nome 3456 Dr. José 6766 Dra. Maria 8976 Dr. Cura Tudo Suponha que se deseja recuperar os nomes dos médicos de cada consulta.

Junção Para obter o nome dos médicos, é necessário combinar cada tupla de consulta com tuplas de medicos; Cujo valor crm-medicoda tupla consultaseja igual ao valor de crmna tupla medico. Isto é feito usando a operação JOIN; Então, projeta-se o resultado sobre aqueles atributos necessários. Atributos (colunas) em duplicidade são eliminados.

Junção Suponha que se deseja recuperar os nomes dos médicos de cada consulta. Cons-Med consulta crm-medico=crm medico Cons_Med nro-consulta cod-pac crm-medico data crm nome 00001 33333 3456 02/01/2008 3456 Dr. José 00002 33333 6766 03/01/2008 6766 Dra. Maria 00003 11111 3456 13/03/2008 3456 Dr. José 00004 22222 3456 13/03/2008 3456 Dr. José 00005 11111 6766 13/03/2008 6766 Dra. Maria Resultado π nro-consulta, nome (Cons-Med) Resultado nro-consulta nome 00001 Dr. José 00002 Dra. Maria 00003 Dr. José 00004 Dr. José 00005 Dra. Maria

Junção A forma geral da operação JOIN sobre duas relações R1(A1, A2,..., An) e R2(B1, B2,..., Bm) é: R1 <condição join> R2 O resultado de JOIN é uma relação S com n+m atributos S(A1, A2,..., An, B1, B2,..., Bm) nesta ordem; S tem um tupla para cada combinação de tuplas uma de R1 e uma de R2 onde quer que a combinação satisfaça a condição join.

Junção Esta é a principal diferença entre Produto Cartesiano e Junção; Em Junção, apenas combinações de tuplas que satisfazem a condição join é que aparecerá no resultado; Já no Produto Cartesiano, todas as combinações de tuplas são incluídas no resultado. A condição join é especificada sobre atributos de R1 e de R2, e é avaliada para cada combinação de tuplas.

Equijunção Encontra-se mais freqüentemente Junção que envolva condições com apenas a comparação de igualdade. Uma Junção que apenas o operador de comparação =é utilizado é chamado EQUIJUNÇÃO. No resultado de uma EQUIJUNÇÃO sempre terá um ou mais pares de atributos que tem valores idênticosem todas as tuplas.

Equijunção No nosso exemplo, os atributos crm-medicoe crmsão idênticos em todas as tuplas de Cons-Med; A condição de Junção de igualdade foi especificada para estes atributos. A duplicação destes atributos na relação Cons-Med é desnecessária;

Renomear relações intermediárias Gera uma nova relação com a mesma instância e o mesmo esquema, mas com nomes diferentes para as colunas (atributos). Símbolo ρ(rho) Notação: ρ S (Relação), onde S novos nomes

Junção Natural Foi criada então uma nova operação chamada Junção Natural. Basicamente é uma EQUIJUNÇÃO seguido da remoção de atributos desnecessários. O símbolo é * Cons-Med consulta * crm-medico,crm medico Forma geral: S R1 * lista1,lista2 R2 onde lista = atributos

Junção Natural Se os atributos já tem o mesmo nome nas duas relações (no caso, nro-convenio das relações paciente e convenio), podese tirar a Junção totalmente e usar a expressão abaixo: RESULTADO paciente * convenio RESULTADO cod-pac nome-pac sexo data-nasc nro-convenio descricao 11111 Fulano M 01/01/1980 05 Cobre Tudo 22222 Beltrana F 15/04/1794 01 Unimed 33333 Ciclano M 22/06/1960 05 Cobre Tudo

Junção Natural Caso os atributos não tenham o mesmo nome, e deseje usar a junção natural, cria-se uma relação intermediária, renomeando o atributo (1), e depois utiliza-se a junção natural. Ou, faz-se na própria expressão (2). crm-medico da relação consulta e crm na relação medico 1) TEMP ρ crm-medico,nome medico Cons-Med consulta * temp 2) Cons-Med consulta * ρ crm-medico,nome medico Cons_Med nro-consulta cod-pac crm-medico data nome 00001 33333 3456 02/01/2008 Dr. José 00002 33333 6766 03/01/2008 Dra. Maria 00003 11111 3456 13/03/2008 Dr. José 00004 22222 3456 13/03/2008 Dr. José 00005 11111 6766 13/03/2008 Dra. Maria

Junção Externa Até o momento, as junções vistas casam as tuplas que satisfizerem a condição de junção junções internas (inner joins); Ex.: Para uma junção natural R * S, apenas as tuplas de R que correspondem as tuplas de S ( e vice-versa), aparecem no resultado; Logo, as tuplas sem uma tupla correspondente (ou relacionada) são eliminadas do resultado; Também as tuplas de valores null são eliminadas;

Junção Externa Se pensarmos em um relatório com todas as informações das relações componentes, podemos entender isto como uma perda de informação; As junções externas (ou outer joins) é uma saída quando queremos manter todas as tuplas em R, ou todas em S, ou todas de ambas as relações, independentemente se elas têm ou não tuplas correspondentes nas relações;

Junção Externa Junção externa à esquerda (left outer join): mantém no resultado todas as tuplas da primeira relação; Junção externa à direita (rigth outer join): mantém no resultado todas as tuplas da segunda relação; Junção externa total (full outer join): mantém no resultado todas as tuplas de ambas as relações (esquerda e direita); Valores nullsão preenchidos caso não se encontre tuplas correspondente à esquerda ou à direita;

Exemplo Junção à esquerda do nro-convenio das relações paciente e convenio. RESULTADO paciente nro-convenio=nroconvenio convenio PACIENTE cod-pac nome-pac sexo data-nasc nro-convenio 11111 Fulano M 01/01/1980 05 22222 Beltrana F 15/04/1794 01 25252 Paulo M 23/05/1976 03 33333 Ciclano M 22/06/1960 05 45454 Marta F 14/09/1950 06 CONVENIO nro-convenio descricao 01 Unimed 02 Santa Casa 05 Cobre Tudo RESULTADO cod-pac nome-pac sexo data-nasc nro-convenio descricao 11111 Fulano M 01/01/1980 05 Cobre Tudo 22222 Beltrana F 15/04/1794 01 Unimed 25252 Paulo M 23/05/1976 03 null 33333 Ciclano M 22/06/1960 05 Cobre Tudo 45454 Marta F 14/09/1950 06 null

Bons Estudos! Prof. Zaidan fhzaidan@gmail.com Somos o que fazemos repetidamente. Por isso o mérito não está na ação, e sim no hábito. Aristóteles