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



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

11/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 Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

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

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

BDII SQL Junção Revisão 8

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

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

Modelo Relacional - Manipulação

Banco de dados 1. Linguagem DML SQL Select Avançado. Professor: Victor Hugo L. Lopes

Á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:

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

Junções e Índices em Tabelas

Memória de aula Semanas 15 e 16

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.

Banco de Dados. Álgebra Relacional. Prof. Enzo Seraphim

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

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

Introdução às Bases de Dados

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

Núcleo de Pós Graduação Pitágoras

Prof.: Clayton Maciel Costa

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

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

Tarefa Orientada 11 Junção Interna

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Bases de Dados 2005/2006. Aula 5

Introdução ao SQL. Aécio Costa

Comandos de Manipulação

4.6. SQL - Structured Query Language

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

NOME SEXO CPF NASCIMENTO SALARIO

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

BANCO DE DADOS aula 6 álgebra relacional -

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

Banco de Dados I. SQL SELECT Parte 1 - Básico. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

INNER, CROSS, LEFT, RIGHT E FULL JOINS SIMPLES ASSIM! Wellyngton Luiz Cruz Moreira wlcmoreira@hotmail.com

Processamento e Otimização de Consultas

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

Tarefa Orientada 14 Subconsultas

Disciplina: Unidade III: Prof.: Período:

Modelo Relacional. Modelo Relacional. Tabelas

Structured Query Language (SQL)

António Rocha Nuno Melo e Castro

Prof. Daniela Barreiro Claro

CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 1

CEFET.PHB - PI. Plano de Ensino. Banco de Dados. Plano de Ensino. Plano de Ensino. Plano de Ensino - Conteúdo. Plano de Ensino - Conteúdo

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

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

MODELO RELACIONAL - UFMA

Aula VI -MODELO RELACIONAL

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr waltenomartins@yahoo.

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

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Curso Superior em Tecnologia de Análise e Desenvolvimento de Sistemas. Campus Alegrete. Banco de Dados I. Cristhiano Bossardi de Vasconcellos.

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

Principais Instruções em SQL

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

Consultas SQL com mais de uma 01 tabela

SQL: Definição de tabelas, Modificações à Base de Dados

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

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

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

MODELO RELACIONAL E RESTRIÇÕES DE INTEGRIDADE

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Banco de Dados Capítulo 2: Modelo Relacional. Bach. em Ciência da Computação UFPB/CCT Cláudio Baptista, PhD

Álgebra relacional. Fernando Lobo. Conjunto de operadores que permitem manipular relações: produtos cartesianos e joins.

O modelo de dados relacional e as restrições de um banco de dados relacional

Prova de Fundamentos de Bancos de Dados 1 a Prova

Microsoft Access INTRODUÇÃO. Sumário INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO. O que é Banco de Dados?

Prova de Fundamentos de Bancos de Dados

Definida pelo American National Standard Institute (ANSI) em 1986

Memória de aula Aulas 11 e 12

SQL UMA ABORDAGEM INTERESSANTE

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

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

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

Algoritmos para Processamento e Otimização de Consultas. Adriano Douglas Girardello Ana Paula Fredrich Tiago Alexandre Schulz Sippert

17/10/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

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

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

SQL: Interrogações simples

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

Persistência e Banco de Dados em Jogos Digitais

Álgebra relacional. Fernando Lobo. Base de Dados, aula 12

Modelo Relacional. Modelo Relacional. Modelo Relacional. Banco de Dados. Modelo Relacional. Modelo Relacional

Banco de Dados I. Modelo Entidade Relacionamento Mapeamento para tabelas. Apresentação. Ementa

LINGUAGEM DE BANCO DE DADOS

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

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

Computadores e Sistemas de Informação. Bases de Dados Relacionais (linguagem SQL)

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

Exercícios de Lógica Exercícios de Fixação 08

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Transcrição:

Faculdade IED Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional Prof.: Fernando Hadad Zaidan Unidade Álgebra Relacional 2 Leitura Obrigatória ELMASRI, R.; AVATHE, S. B. Sistemas de bancos de dados: fundamentos e aplicações. 4. ed. São Paulo: Pearson Education, 2005. Para Saber Mais DATE, C. J. Introdução a sistemas de banco de dados. Rio de Janeiro: Elsevier, 2003. Leitura adicional para desenvolvimento das aulas SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHA, S. Sistema de banco de dados. Tradução da 5ª Edição. São Paulo: Campus, 2006. 3

Álgebra Relacional. Conceitos Iniciais.2 Projeção e seleção.3 Junções.4 Outras operações 4 PACIETE cod-pac nome-pac sexo data-nasc nro-convenio COSULTA EXAME COVEIO nro-convenio nro-consulta cod-pac crm-medico data MEDICO crm nro-consulta cod-exame data-exame resultado TIPO-EXAME codexame tipo descrcao nome 5 PACIETE cod-pac nome-pac sexo data-nasc nro-convenio COSULTA Fulano M 0/0/980 05 22222 Beltrana F 5/04/794 0 33333 Ciclano M 22/06/960 05 nro-consulta cod-pac crm-medico data 0000 33333 3456 02/0/2008 00002 33333 6766 03/0/2008 00003 3456 3/03/2008 00004 22222 3456 3/03/2008 00005 6766 3/03/2008 COVEIO nro-convenio descricao 0 Unimed 02 Santa Casa 05 Cobre Tudo EXAME nro-consulta cod-exame data-exame resultado 0000 0-2 03/0/2008 Positivo 00003 02-3/03/2008 Acima de 00 00003 02-2 3/03/2008 Abaixo de 0 00005 0-3/03/2008 Positivo 00005 0-2 3/03/2008 egativo MEDICO crm nome 3456 Dr. José 6766 Dra. Maria 8976 Dr. Cura Tudo TIPO-EXAME cod-exame tipo preco 0- Urina Cultura 23,44 0-2 Urina Rotina 5,55 02- Sangue- xxx 60,50 02-2 Sangue-yyy 35,00 6 2

Operadores fundamentais Seleção Projeção Produto Cartesiano União Diferença Definição das operações 7 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. 8 Produto Cartesiano Cross Product ou Cross Join; Operação binária; 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: R R2 Considerando-se que: R é uma relação com m colunas e n linhas; R2 é uma relação com m2 colunas e n2 linhas; A relação resultante terá (m + m2) colunas e (n * n2) linhas 9 3

Produto Cartesiano - Exemplo Sejam as relações R e S abaixo; Calcular o produto cartesiano R S: R A B C a b c a2 b c S D B C % & @ # $! R X S A R.B R.C D S.B S.C a b c % & @ a b c # $! a2 b c % & @ a2 b c # $! 0 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. COVEIO MEDICO nro-convenio descricao crm nome 0 Unimed 3456 Dr. José 02 Santa Casa 6766 Dra. Maria 05 Cobre Tudo 8976 Dr. Cura Tudo Produto Cartesiano Convenio X Medico nro-convenio descricao crm nome 0 Unimed 3456 Dr. José 0 Unimed 6766 Dra. Maria 0 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 A operação JOI é 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. 2 4

COSULTA nro-consulta cod-pac crm-medico data 0000 33333 3456 02/0/2008 00002 33333 6766 03/0/2008 00003 3456 3/03/2008 00004 22222 3456 3/03/2008 00005 6766 3/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. 3 Para obter o nome dos médicos, é necessário combinar cada tupla de consulta com tuplas de medicos; Cujo valor crm-medico da tupla consulta seja igual ao valor de crm na tupla medico. Isto é feito usando a operação JOI; Então, projeta-se o resultado sobre aqueles atributos necessários. Atributos (colunas) em duplicidade são eliminados. 4 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 0000 33333 3456 02/0/2008 3456 Dr. José 00002 33333 6766 03/0/2008 6766 Dra. Maria 00003 3456 3/03/2008 3456 Dr. José 00004 22222 3456 3/03/2008 3456 Dr. José 00005 6766 3/03/2008 6766 Dra. Maria Resultado π nro-consulta, nome (Cons-Med) Resultado nro-consulta nome 0000 Dr. José 00002 Dra. Maria 00003 Dr. José 00004 Dr. José 00005 Dra. Maria 5 5

A forma geral da operação JOI sobre duas relações R(A, A2,..., An) e R2(B, B2,..., Bm) é: R <condição join> R2 O resultado de JOI é uma relação S com n+m atributos S(A, A2,..., An, B, B2,..., Bm) nesta ordem; S tem um tupla para cada combinação de tuplas uma de R e uma de R2 onde quer que a combinação satisfaça a condição join. 6 Esta é a principal diferença entre Produto Cartesiano e ; Em, 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 R e de R2, e é avaliada para cada combinação de tuplas. 7 Equijunção Encontra-se mais freqüentemente que envolva condições com apenas a comparação de igualdade. Uma que apenas o operador de comparação = é utilizado é chamado EQUIJUÇÃO. o resultado de uma EQUIJUÇÃO sempre terá um ou mais pares de atributos que tem valores idênticos em todas as tuplas. 8 6

Equijunção o nosso exemplo, os atributos crm-medico e crm são idênticos em todas as tuplas de Cons-Med; A condição de de igualdade foi especificada para estes atributos. t A duplicação destes atributos na relação Cons-Med é desnecessária; 9 atural Foi criada então uma nova operação chamada atural. Basicamente é uma EQUIJUÇÃO seguido da remoção de atributos desnecessários. O símbolo é * Cons-Med consulta * crm-medico,crm medico Forma geral: S R * lista,lista2 R2 onde lista = atributos 20 atural Se os atributos já tem o mesmo nome nas duas relações (no caso, nro-convenio das relações paciente e convenio), pode-se tirar a totalmente e usar a expressão abaixo: RESULTADO paciente * convenio RESULTADO cod-pac nome-pac sexo data-nasc nro-convenio descricao Fulano M 0/0/980 05 Cobre Tudo 22222 Beltrana F 5/04/794 0 Unimed 33333 Ciclano M 22/06/960 05 Cobre Tudo 2 7

atural 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 (), e depois utiliza-se a junção natural. Ou, faz-se na própria expressão (2). crm-medico da tupla consulta e crm na tupla medico ) 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 0000 33333 3456 02/0/2008 Dr. José 00002 33333 6766 03/0/2008 Dra. Maria 00003 3456 3/03/2008 Dr. José 00004 22222 3456 3/03/2008 Dr. José 00005 6766 3/03/2008 Dra. Maria 22 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; 23 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; 24 8

Externa externa à esquerda (left outer join): mantém no resultado todas as tuplas da primeira relação; externa à direita (rigth outer join): mantém no resultado todas as tuplas da segunda relação; externa total (full outer join): mantém no resultado todas as tuplas de ambas as relações (esquerda e direita); Valores null são preenchidos caso não se encontre tuplas correspondente à esquerda ou à direita; 25 Externa Esquerda Exemplo à esquerda do nro-convenio das relações paciente e convenio. RESULTADO paciente nro-convenio=nroconvenio convenio PACIETE cod-pac nome-pac sexo data-nasc nro-convenio Fulano M 0/0/980 05 22222 Beltrana F 5/04/794 0 25252 Paulo M 23/05/976 03 33333 Ciclano M 22/06/960 05 45454 Marta F 4/09/950 06 COVEIO nro-convenio descricao 0 Unimed 02 Santa Casa 05 Cobre Tudo RESULTADO cod-pac nome-pac sexo data-nasc nro-convenio descricao Fulano M 0/0/980 05 Cobre Tudo 22222 Beltrana F 5/04/794 0 Unimed 25252 Paulo M 23/05/976 03 null 33333 Ciclano M 22/06/960 05 Cobre Tudo 45454 Marta F 4/09/950 06 null 26 Questão para discussão - Toda junção pode ser representada por um produto cartesiano seguido de uma seleção? 2 - Quando fazemos consultas a bancos de dados relacionais i utilizando a linguagem SQL, muitas vezes utilizamos junções à direita ou à esquerda. Esse tipo de operação possui operação correspondente na álgebra relacional? 27 9