Álgebra Relacional – Parte 2 - ppt carregar
PublicouLuiza Manco Alterado mais de 5 anos atrás
Apresentação em tema: "Álgebra Relacional – Parte 2"— Transcrição da apresentação:
1 Álgebra Relacional – Parte 2
2 ÁLGEBRA RELACIONAL Álgebra e Cálculo Relacional são duas linguagens formais de consulta associadas ao Modelo Relacional. Na Álgebra Relacional, consultas são compostas de um conjunto de operadores, descrevendo procedimentos passo a passo para computar a resposta desejada. No Cálculo Relacional, uma consulta descreve a resposta desejada sem especificar como essa resposta deve ser computada. Esse estilo de consulta não procedural é chamado declarativo.
3 Banco de Dados Utilizado nos Exemplos
Tabela de Filmes codFilme título gênero f1 Coração Valente Aventura f2 Se eu Fosse Você Comédia f3 E o Vento Levou Romance f4 O Máscara Tabela de Clientes codCli nome idade cidade codPaiCli c1 João 31 Porto Alegre c2 José 28 c4 c3 Luís 25 Novo Hamburgo Sílvio 43
4 Banco de Dados Utilizado nos Exemplos
Tabela de Aluguéis codFilme codCli data f1 c1 01/01/2000 f2 c3 05/01/2000 f3 01/02/2000 c2 03/01/2000 Tabela de Fornecedores codFornecedor razaoSocial Cidade r1 Sol&Mar Ltda. Rio de Janeiro r2 Multpel São Paulo r3 Oficina das Máquinas Porto Alegre r4 Brinquedos & Cia. Ltda. Belo Horizonte
5 Operação de Seleção Operador de seleção (σ): seleciona linhas de uma tabela. A seleção é feita através da avaliação de uma condição de seleção. Sintaxe: σ<critério de seleção>(<tabela>) Exemplos: σ gênero='Comédia' (Filmes) Resultado: codFilme título gênero f2 Se eu Fosse Você Comédia f4 O Máscara
6 Operação de Seleção Exemplos:
σ (idade>30 and cidade ='Porto Alegre') (Clientes) Resultado: codCli nome idade cidade codPaiCli c1 João 31 Porto Alegre c2 c4 Sílvio 43
7 Operação de Projeção Operador de projeção (): projeta colunas no resultado. Sintaxe: <lista de colunas>(<tabela>) Exemplos:  gênero (Filmes) Resultado: Obs.: é importante ressaltar que na projeção, as linhas duplicadas são eliminadas, ou seja, aparecem apenas uma vez no resultado. Isso ocorre porque uma Tabela é um conjunto de linhas e conjuntos não podem conter elementos repetidos. gênero Aventura Comédia Romance
8 Operação de Projeção Exemplos:
 codFilme, título (σ gênero='Comédia' (Filmes)) Resultado: codFilme título f2 Se eu Fosse Você f4 O Máscara
9 Operação de Renomeação
Operador de renomeação (): permite dar um novo nome a uma tabela. Sintaxe:  <novo nome>(<tabela>) Exemplos:  FilmesRomance ( codFilme, título (σ gênero='Romance' (Filmes)) Resultado: FilmesRomance codFilme título f3 E o Vento Levou
10 Operação de União Operador de união (): a união de duas tabelas produz como resultado uma terceira tabela que contém todas as tuplas da primeira e da segunda. Sintaxe: <tabela1>  <tabela2> Exemplos: ( cidade (Fornecedores))  ( cidade (Clientes)) Resultado: cidade Rio de Janeiro São Paulo Porto Alegre Belo Horizonte Novo Hamburgo
11 Operação de Interseção
Operador de interseção (): a interseção de duas tabelas produz como resultado uma tabela que contém as tuplas presentes na primeira e na segunda tabela ao mesmo tempo. Sintaxe: <tabela1>  <tabela2> Exemplos: ( cidade (Fornecedores))  ( cidade (Clientes)) Resultado: cidade Porto Alegre
12 Operação de Interseção
Exemplos: ( codFilme (Filmes))  ( codFilme (Aluguéis)) Resultado: Filmes que já foram alugados. codFilme f1 f2 f3
13 Operação de Diferença Operador de diferença (-): a diferença de duas tabelas produz como resultado uma tabela que contém as tuplas presentes na primeira que não constam da segunda. Sintaxe: <tabela1> - <tabela2> Exemplos: ( codFilme (Filmes)) - ( codFilme (Aluguéis)) Resultado: codFilme f4 Retorna os filmes que nunca foram alugados.
14 Operações de União, Interseção e Diferença
Para as operações de União, Interseção e Diferença, os operadores (i.e. as tabelas) devem ser compatíveis para a União, o que significa: Devem conter o mesmo número de campos; O domínio da i-ésima coluna da primeira tabela deve ser igual ao domínio da i-ésima coluna da segunda tabela; Se os nomes das colunas forem diferentes, utiliza-se por convenção os nomes das colunas da primeira tabela.
15 Operação de Produto Cartesiano
Operador de produto cartesiano (x): o produto cartesiano de duas tabelas produz como resultado uma tabela que contém todos os campos da primeira tabela, seguidos de todos os campos da segunda tabela. Combina as linhas da primeira tabela com cada linha da segunda. Portanto, a tabela resultado possui: (número de colunas da primeira tabela + número de colunas da segunda) colunas; e (número de linhas da primeira tabela x número de linhas da segunda) linhas. Sintaxe: <tabela1> x <tabela2>
16 Operação de Produto Cartesiano
Exemplo: Filmes x Aluguéis codFilme título gênero codCli data f1 Coração Valente Aventura c1 01/01/2000 f2 c3 05/01/2000 f3 01/02/2000 c2 03/01/2000 Se eu Fosse Você Comédia ...
17 Operação de Produto Cartesiano
Exemplos:  codFilme, título ( Filmes.codFilme = Aluguéis.codFilme (Filmes x Aluguéis)) Resulta em uma tabela que contém os códigos de filme e títulos dos filmes que possuem aluguel.  Clientes.nome, PaiClientes.nome ( Clientes.codPaiCli = PaiClientes.codCli (Clientes x  PaiClientes (Clientes))) Resulta em uma tabela que contém os nomes de clientes e de seus pais.
18 Operação de Divisão Operador de divisão (): produz como resultado as tuplas da tabela 1 para as quais existe uma correspondência na tabela 2. Porém, as colunas resultantes são aquelas que aparecem na tabela 1, mas não aparecem na tabela 2. Sintaxe: <tabela1>  <tabela2>
19 Operação de Divisão Exemplo: ( codFilme, codCli (Aluguéis))  ( codFilme(Filmes)) Encontre os clientes que já alugaram todos os filmes. codFilme codCli f1 c1 f2 f3 f4 c3 c2 codFilme f1 f2 f3 f4 codCli c1 = 