A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algebra Relacional Banco de Dados I Profa. Jiani Cardoso 2/2005.

Apresentações semelhantes


Apresentação em tema: "Algebra Relacional Banco de Dados I Profa. Jiani Cardoso 2/2005."— Transcrição da apresentação:

1 Algebra Relacional Banco de Dados I Profa. Jiani Cardoso 2/2005

2 Compreendendo álgebra relacional é mais fácil apreender SQL; SQL incorpora cada vez mais conceitos de álgebra; Algoritmos de otimização de consulta definidos sobre álgebra (possível uso internamente no SGBD) Álgebra desenvolvida para descrever operações sobre uma base de dados relacional Os objetos sobre os quais a álgebra opera são tabelas Uma operação possui como operandos e como resultado tabelas Porque aprender: Algebra Relacional

3 Operadores originários da teoria de conjuntos: União (union) : Intersecção (intersect): Diferença (minus): - Operadores específicos da álgebra relacional: Seleção (select): Projeção (project): Junção (join): | | Renomeação (rename): Divisão: ÷ Operadores da Algebra Relacional

4 O resultado da seleção tem colunas com os mesmos nomes e domínios da tabela de entrada. O resultado é uma tabela que contém as linhas que obedecem a um determinado critério. Sintaxe: onde é o nome de uma tabela ou uma expressão de álgebra relacional que resulta em uma tabela e é uma expressão booleana que envolve literais e valores de atributos da tabela Operação de Seleção ( ) ( )

5 BD exemplo

6 O resultado da seleção tem colunas com os mesmos nomes e domínios da tabela de entrada. Exemplo de Seleção ( ) codPeça = P1 (Peça) Resulta em uma tabela que contém todos os dados da peça de código P1.

7 Ex.:Mostre os dados de todas os fornecedores que tenham status maior que 5 e que sejam do Rio de Janeiro. Exemplo de Seleção ( ) (StatusFornec > 5 and CidadeFornec = Rio de Janeiro (Fornec)) Tabela Resultante

8 A Projeção tem como operando uma tabela. O resultado é uma tabela que contém apenas as colunas selecionadas. Sintaxe: Operação de Projeção ( ) ( ) Ex.: Apresente os códigos e os nomes de todas as peças: CodPeça, NomePeça (Peça) Tabela Resultante

9 A Projeção pode resultar também na eliminação de linhas, caso a(s) coluna(s) que são parte da chave forem eliminadas. Se uma coluna cujos valores distinguem diferentes linhas é eliminada, surgem linhas duplicadas na tabela, que devem ser eliminadas. Exemplo: CidadeFornec (Fornec) Resulta em uma tabela que contém todas as cidades em que há fornecedores. Note- se que se houver múltiplos fornecedores na mesma cidade, as diferentes linhas são eliminadas. CidadeFornec São Paulo Rio de Janeiro Operação de Projeção ( ) Tabela Resultante

10 Operadores diferentes podem ser aninhados Ex.: Mostre o código de fornecedor e quantidade embarcada para cada embarque da peça de código P1. CodFornec, QtidEmbarq (CodPeça = P1 (Embarq) ) Aninhamento de Operadores Tabela Resultante

11 A álgebra relacional empresta da teoria de conjuntos quatro operadores: União, Intersecção, Diferença e Produto Cartesiano Sintaxe da União: 1 2 Sintaxe da Intersecção: 1 2 Sintaxe da Diferença: 1 – 2 Nos três casos, a operação possui duas tabelas como operando.E as tabelas devem ser compatíveis: possuir o mesmo número de colunas; o mesmo domínio para cada posição da lista de atributos; quando os nomes das colunas forem diferentes, adota- se os nomes das colunas da primeira tabela. Operações da teoria de conjuntos

12 Dom(nome) = varchar(30) Dom(idade) = int Dom(curso) = varchar(5) Dom(depto) = varchar(5) Aluno é compatível com Professor, mas não é com Funcionario. Ex: Aluno = { nome, idade, curso} Professor = { nome, idade, depto.} Funcionario = { nome, depto, idade} Operação de União

13 Aluno = {nome, idade, curso} {Zeca, 25, comput. Zico, 21, eletr. Juca, 19, odonto. Tuca, 19, comput.} Professor = {nome, idade, depto.} {Ari, 35, comput. Wilma, 32, eletr. Zeca, 25, comput.} Aluno Professor = {nome, idade, curso} { Zeca, 25, comput. Zico, 21, eletr. Juca, 19, odonto. Tuca, 19, comput. Ari, 35, comput. Wilma, 32, eletr. } Apresente uma relação com todos os alunos e também com todos os professores: Operação de União Tabela Resultante permitem que o usuário determine a operação de UNIÃO elimina duplicatas, mas existem SGBDs (ex.:INGRES) que permitem que o usuário determine se tuplas duplicadas devem ser eliminadas do resultado ou não.

14 Aluno = {nome, idade, curso} {Zeca, 25, comput. Zico, 21, eletr. Juca, 19, odonto. Tuca, 19, comput.} Professor = {nome, idade, depto.} {Ari, 35, comput. Wilma, 32, eletr. Zeca, 25, comput.} Aluno - Professor = {nome, idade, curso} { Zico, 21, eletr. Juca, 19, odonto. Tuca, 19, comput.} Note-se que a DIFERENÇA não é comutativa ! Professor - Aluno = {nome, idade, depto.} {Ari, 35, comput. Wilma, 32, eletr.} Operação de Diferença Apresente uma relação de todos os alunos que não são professores

15 Aluno = {nome, idade, curso} {Zeca, 25, comput. Zico, 21, eletr. Juca, 19, odonto. Tuca, 19, comput.} Professor = {nome, idade, depto.} {Ari, 35, comput. Wilma, 32, eletr. Zeca, 25, comput.} Aluno Professor = {nome, idade, curso} { Zeca, 25, comput} Operação de Intersecção Apresente uma relação de todos os alunos que são professores há operadores de álgebra que são deriváveis de outros. A operação de intersecção é derivável de união e diferença: A B = A – (A – B) Operadores derivados

16 Ex.: Obtenha os códigos de todos os fornecedores que tem embarques e que tem status maior que 5. Operação de Intersecção CodFornec (Embarq) CodFornec ( (StatusFornec > 5 (Fornec) ) CodFornec F2 F4 Tabela Resultante

17 Sintaxe: X O produto cartesiano possui como operadores duas tabela. O resultado é uma tabela cuja linhas são a combinação das linhas das tabelas e tomando-se uma linha da e concatenando-a com uma linha da Total de colunas do produto cartesiano: nº colunas da primeira tabela + nº de colunas da segunda tabela = 9 colunas Nº de linhas do produto cartesiano: Nº de linhas da primeira tabela x nº de linhas da segunda tabela. 500 x 600 = linhas Operação Produto Cartesiano

18 Embarq X Peça Operação de Produto Cartesiano Normalmente o produto cartesiano é combinado com uma seleção que envolve as diversas tabelas multiplicadas.

19 NomePeça ( Embarq. CodPeça= Peça. CodPeça (Embarq X Peça) ) Exemplo de Produto Cartesiano Obtenha os nomes de todas as peças para as quais há embarques NomePeça Eixo Rolamento Tabela Resultante

20 ( X )) Operação de junção (join) A combinação de uma operação de seleção aplicada sobre uma operação de produto cartesiano é usual em aplicações de BD. É através dela que dados de tabelas relacionadas são associados. Sintaxe: |X| A junção tem como operandos duas tabelas. O resultado é equivalente a executar:

21 Exemplo de Junção (join) Embarq |x| (Embarq.codFornec=Fornec.CodFornec) Fornec Equivalente: ( Embarq.codFornec=Fornec.CodFornec (Embarq x Fornec) ) |X| Critério da junção: qualquer expressão booleana, inclusive comparações do tipo, <>,... entre os valores de atributos das tabelas envolvidas na junção. Essa operação de junção é chamada Junção Theta.


Carregar ppt "Algebra Relacional Banco de Dados I Profa. Jiani Cardoso 2/2005."

Apresentações semelhantes


Anúncios Google