Álgebra Relacional
Transcrição
Álgebra Relacional
Unidade I UNIDADE I - AMBIENTE DE BANCO DE DADOS 1. Introdução 2. Conceitos 3. Gerenciador de Banco de Dados (SGBD) 3.1. Arquitetura ANSI/SPARC 32 R 3.2. Regras bá básicas i 3.3. Usuários 3 4 Linguagem de Banco de Dados 3.4. 4. Modelo Hierárquico, Rede e Relacional 5. Modelagem g de Dados 6. Diagrama E-R 7. Transformações entre modelos 8N 8.Normalização li ã d de d dados d 9. Álgebra Relacional Unidade I Banco de Dados I ÁLGEBRA RELACIONAL ÁLGEBRA RELACIONAL Conjunto de operações que usam uma ou mais relações (tabelas) como entrada e produzem uma nova relação (tabela) como resultado Linguagem formal procedural representada por um conjunto de operadores que permitem expressar qualquer operação de manipulação de dados em um BD relacional - Operações Fundamentais: primárias ou unárias ((operam p p sobre uma única relação) ç ) seleção ( σ ), projeção ( π ) operações binárias (operam sobre um par de relações) união ( ∪ ), intersecção ( ∩ ), diferença ( - ), produto cartesiano t i ( x )), junção j ã ( (x) ( )) Unidade I Banco de Dados I ÁLGEBRA RELACIONAL UNIÃO:( U ) é o conjunto de todas as tuplas que estão em uma ou outra relação; aplicada a duas tabelas compatíveis, resulta numa nova relação que consiste de todas as tuplas das duas tabelas consideradas sem repetição RELAÇÃO r3 C1 C2 C3 A A A B B B C C C RELAÇÃO r1 RELAÇÃO r2 C1 C2 C3 C1 C2 C3 A A A C C C B B B A D G A D G C C C C C B C C B Unidade I r1 U r2 Banco de Dados I ÁLGEBRA RELACIONAL Aluno = { Nome, Idade , Curso } <Zeca, 25, Sistemas.> <Zico,, 18,, Letras.> <Juca, 21, Adm> <Tuca, 18, Sistemas.> Professor = { Nome, Idade , Depto. } <Ari, 30, Sistemas.> <Eva, Eva, 27, Letras.> Letras. <Zeca, 25, Sistemas.> União: Aluno ∪ Professor = { Nome, Nome Idade , Curso } <Zeca, 25, Sistemas.> <Zico, 18, Letras.> <Juca 21, <Juca, 21 Adm > <Tuca, 18, Sistemas.> <Ari, 30, Sistemas.> <Eva, Eva, 27, Letras. Letras.> Unidade I Observação: C Convenciona-se i usar os nomes dos atributos da relação da esquerda, quando não especificado. Banco de Dados I ÁLGEBRA RELACIONAL U INTERSEÇÃO: ( ) é o conjunto de todas as tuplas que estão simultaneamente em ambas as relações; aplicada a duas tabelas compatíveis resulta numa nova relação que consiste de todas as tuplas que são ã comuns à às d duas ttabelas b l consideradas id d RELAÇÃO r1 RELAÇÃO r2 RELAÇÃO r3 C1 C2 C3 C1 C2 C3 C1 C2 C3 A A A C C C C C C B B B A D G C C C C C B U Unidade I r1 r2 Banco de Dados I ÁLGEBRA RELACIONAL Aluno = { Nome, Idade , Curso } <Zeca 25, <Zeca, 25 Sistemas.> Sistemas > <Zico, 18, Letras.> <Juca, 21, Adm > <Tuca, Tuca, 18, Sistemas. Sistemas.> Professor = { Nome, Idade , Depto. } <Ari <Ari, 30 30, Sistemas > Sistemas.> <Eva, 27, Letras.> <Zeca, 25, Sistemas.> Intersecção: Aluno ∩ Professor = { Nome, Nome Idade , Curso } { <Zeca, 25, Sistemas.> } Unidade I Banco de Dados I ÁLGEBRA RELACIONAL DIFERENÇA : ( - ) é o conjunto de todas as tuplas que estão em apenas uma relação; aplicada a duas tabelas compatíveis resulta numa nova relação que consiste de todas as tuplas que aparecem numa t b l e não tabela ã aparecem na outra t RELAÇÃO r1 RELAÇÃO r2 RELAÇÃO r3 C1 C2 C3 C1 C2 C3 C1 C2 C3 A A A C C C A A A B B B A D G B B B C C C C C B - Unidade I r1 r2 Banco de Dados I ÁLGEBRA RELACIONAL Aluno = { Nome, Idade , Curso } <Zeca, 25, Sistemas.> <Zico,, 18,, Letras.> <Juca, 21, Adm > <Tuca, 18, Sistemas.> Professor = { Nome, Idade , Depto. } <Ari, 30, Sistemas.> <Eva, Eva, 27, Letras.> Letras. <Zeca, 25, Sistemas.> Diferença: Aluno − Professor = { Nome, Idade , Curso } { <Zico, 18, Letras.> <Juca 21, <Juca, 21 Adm > <Tuca, 18, Sistemas.> } Professor − Aluno = { Nome, Nome Idade , Depto. Depto } { <Ari, 30, Sistemas.> <Eva, 27, Letras.> } Unidade I Banco de Dados I ÁLGEBRA RELACIONAL PRODUTO CARTESIANO: ( X ) O produto cartesiano de duas relações R e S tem como resultado uma relação que tem como atributos a concatenação dos atributos da relação R e da relação S, e tem como tuplas todas as combinações possíveis de valores de R com valores de S S. -permite combinar informações de duas relações quaisquer -atributos t ib t de d mesmo nome d de relações l õ dif diferentes t d devem ser referenciados f i d por relação.atributo Sintaxe: <relação1 > X <relação2 > P ro d u to E sca lar a b c Unidade I x y a a b b c c x y x y x y Banco de Dados I ÁLGEBRA RELACIONAL Produto cartesiano de devedor e depositante p Devedor X Depositante DEVEDOR nome num_emprestimo num emprestimo valor CARLOS P-201 2000 LUIS X-301 1000 LUIZA X-302 500 DEPOSITANTE nome conta CARLA A-422 JULIA A-304 A 304 LUIS A-101 LUIZA A-214 Unidade I devedor.nome emprestimo valor depositante.nome CARLOS P-201 2000 CARLA CARLOS P 201 P-201 2000 JULIA CARLOS P-201 2000 LUIS CARLOS P-201 2000 LUIZA LUIS X-301 1000 CARLA LUIS X 301 X-301 1000 JULIA LUIS X-301 1000 LUIS LUIS X-301 1000 LUIZA LUIZA X-302 500 CARLA LUIZA X-302 500 JULIA LUIZA X-302 500 LUIS LUIZA X-302 500 LUIZA conta A-422 A 304 A-304 A-101 A-214 A-422 A 304 A-304 A-101 A-214 A-422 A-304 A-101 A-214 Banco de Dados I ÁLGEBRA RELACIONAL SELEÇÃO : (σ) A seleção atua sobre uma relação r e produz uma subrelação das tuplas de r que satisfazem a <condição> especificada. A <condição> < di ã > sempre é uma operação ã d de comparação ã ( =, > etc.) t )d de um atributo t ib t da relação com uma constante, variável ou com outro atributo da própria relação Alunos Sintaxe: σ <critério de seleção> (<relação>) Alunos onde Turma = VB RELAÇÃO r1 C1 C2 C3 1 1 2 1 2 1 2 3 2 σB = 1(r1) SUB-RELAÇÃO r1 C1 C2 C3 1 1 2 Sigma Unidade I Banco de Dados I ÁLGEBRA RELACIONAL Exemplo: Seja a relação de alunos: Aluno = { Nome, Idade , Curso } <Zeca, 25, Sistemas.> <Zico, Zi 18 Letras.> 18, L <Juca, 21, Adm > <Tuca, 18, Sistemas.> <T <Teca, 19 Sistemas.> 19, Si t > <Tina, 22, Adm > Selecione os alunos q que fazem “Adm” σCurso = “Adm” (Aluno) <Juca, <Tina, Unidade I 21, 22, Adm > Adm > Banco de Dados I ÁLGEBRA RELACIONAL π ) é obtida ppor meio de uma lista objetivo, j , onde PROJEÇÃO: Ç ( selecionamos apenas as colunas que desejamos; resulta numa relação que contém apenas as colunas indicadas na operação. Obs: As linhas repetidas são removidas removidas. Peças Sintaxe: π <lista de colunas> (<relação>) π{A,B} (r1) RELAÇÃO RELAÇÃO r1 C1 C2 C3 C1 C2 1 1 1 1 1 1 2 3 1 2 3 2 1 3 2 etar código, nome, fabricante, estoque da tabela peças LÊ-SE: PROJEÇÃO Ç DAS COLUNAS A,, B DA RELAÇÃO Ç R1 Unidade I Banco de Dados I ÁLGEBRA RELACIONAL Aluno = { Nome, Idade , Curso } <Zeca, 25, Sistemas.> <Zico, 18, Letras.> <Juca, 21, Adm > <Tuca, 18, Sistemas.> <Teca, 19, Sistemas.> <Tina, Ti 22 Adm 22, Ad > Obtenha o nome e a idade dos alunos Exemplo: Seja a relação de alunos: π{Nome, Idade} (Aluno) o que resulta na relação: {Nome, Idade}, contendo as seguintes tuplas: <Zeca, 25> <Zico, 18> <Juca 21> <Juca, <Tuca, 18> <Teca, 19> <Tina 22> <Tina, Unidade I Banco de Dados I ÁLGEBRA RELACIONAL JUNÇÃO : ( (x) ) esta operação sobre duas tabelas resulta numa relação que contém as linhas concatenadas das duas tabelas que satisfazem a comparação entre as colunas indicadas. Junção Sintaxe: <tabela1> (X) <critério> <tabela2> a1 a2 a3 b1 b1 b2 b1 c1 b2 c2 b3 c3 a1 a2 a3 RELAÇÃO r1 b1 b1 c1 b1 b1 c1 b2 b2 c2 RELAÇÃO r2 SUB-RELAÇÃO B D E A B C D E 1 1 1 1 1 1 1 1 A B C D 1 1 1 1 2 2 1 3 2 3 6 1 1 1 1 5 1 2 5 3 1 1 5 2 2 1 3 6 1 2 3 4 4 3 2 1 2 5 3 6 Unidade I r1 r2 Banco de Dados I ÁLGEBRA RELACIONAL RENOMEAR : ( ρ ) apresenta, apresenta como resultado a mesma relação de entrada com outro nome ou, ainda, a mesma relação de entrada com novo nome e, também com os atributos com novos nomes. ρ firma (empresa) cod A1 A2 B2 B1 EMPRESA nome codEmp XXXX 1111 YYYYY 3333 TTTT 4444 KKKK 1111 FIRMA cod A1 A2 B2 B1 nome XXXX YYYYY TTTT KKKK codEmp 1111 3333 4444 1111 ρ firma(x, y, z) (empresa) FIRMA EMPRESA cod A1 A2 B2 B1 Unidade I nome XXXX YYYYY TTTT KKKK codEmp 1111 3333 4444 1111 x A1 A2 B2 B1 y XXXX YYYYY TTTT KKKK z 1111 3333 4444 1111 Banco de Dados I