P. 1
Álgebra Relacional

Álgebra Relacional

|Views: 25|Likes:

More info:

Published by: Marcos Vinicius de Oliveira on Dec 26, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/13/2013

pdf

text

original

Banco de Dados

Módulo 6 - Modelo Relacional
Álgebra e Cálculo Relacional

modulo06.PRZ

1

10/05/01

Tópicos
Introdução Álgebra Relacional Cálculo Relacional

modulo06.PRZ

2

10/05/01

PRZ 3 10/05/01 . sem indicar que operações devem ser realizadas para obtê-la modulo06.Introdução Linguagem de Definição de Dados (LDD): comandos para definição do esquema lógico e físico do BD Linguagem de Manipulação de Dados (LMD): comandos para especificação de consultas ao BD comandos para manipulação dos dados no BD: inserção atualização remoção Classificação das linguagens: procedimentais: declarativas: consultas especificam a ordem de execução das operações necessárias para obter a resposta consultas especificam a resposta.

Structured Query Language originária do Cálculo Relacional “semi-declarativa” interface padrão dos SGBDs relacionais modulo06.PRZ 4 10/05/01 .Introdução Cálculo Relacional linguagem declarativa paradigma para as linguagens relacionais Álgebra Relacional procedimental mesmo poder de expressão que o Cálculo Relacional variantes da Álgebra Relacional são usadas internamente pelos SGBDs relacionais durante a otimização de consultas SQL .

Projeção e Renomeção Interseção Divisão e Junção Notas: as operações básicas são suficientes para exprimir as mesmas consultas que o Cálculo Relacional as operações adicionais ajudam a formular certas consultas que seriam muito complexas de exprimir usando apenas as operações básicas modulo06. União e Diferença Seleção.Álgebra Relacional Álgebra Relacional: operações mapeiam uma ou mais relações em uma nova relação algumas operações impõem restrições nas relações de entrada Operações: Básicas: oriundas da teoria de conjuntos: específicas para relações: Adicionais oriundas da teoria de conjuntos: específicas para relações: Produto Cartesiano.PRZ 5 10/05/01 .

cart. Os atributos correspondentes devem ser compatíveis modulo06.PRZ 6 10/05/01 . interseção Notação Grau do resultado Cardinalidade do resultado Restr. 1. 2 1. As relações r e s devem ter o mesmo grau (ou aridade) 2. 2 rs r-s rs rs gr(r)=gr(s) gr(r)=gr(s) gr(r)+gr(s) gr(r)=gr(s) > n(r) + n(s) > n(r) n(r) x n(s) > min(n(r). 2 -1.Álgebra Relacional Operações oriundas da Teoria dos Conjuntos: Operação união diferença prod.n(s)) Restrições: 1.

DiscPG Cod End inf1731 L520 inf2324 L520 inf1732 L510 (3) na GR e na PG? DiscGR  DiscPG Cod End Matr 11239 10/05/01 inf1732 L510 modulo06.PRZ 7 .Álgebra Relacional Exemplos: Banco de Dados: Operações: Que disciplinas estão sendo oferecidas.. DiscGR (1) na GR ou PG? Cod End Matr 15315 11239 Cod End Matr 15315 11239 24217 Matr 15315 inf1731 L520 inf1732 L510 DiscGR  DiscPG inf1731 L520 inf1732 L510 inf2324 L520 DiscPG Cod End Matr 24217 11239 (2) só na GR? DiscGR .

PRZ 8 10/05/01 .Álgebra Relacional Exemplos: Banco de Dados: Operação: DiscGR Cod End Matr 15315 11239 DiscGR x Prof Cod End Matr 15315 15315 15315 11239 11239 11239 Matr Nome inf1731 L520 inf1732 L510 inf1731 L520 inf1731 L520 inf1731 L520 inf1732 L510 15315 Pedro 11239 Manuel 24217 José 15315 Pedro 11239 Manuel 24217 José Prof Matr Nome inf1732 L510 inf1732 L510 15315 Pedro 11239 Manuel 24217 José modulo06.

eliminando os atributos em duplicata R-S (r) .Bk] (e) nomeia o resultado da expressão e como S[B1.R-S...An "P (r) A1...S (r) ) 9 10/05/01 .( ( R-S (r)  s ) . .......An (r) renomeação !S[B1.Álgebra Relacional Operações específicas para relações: Operação seleção projeção Notação Descrição tuplas de r que satisfazem o predicado de seleção P projeção das tuplas de r na lista de atributos A1..Bk] junção equijunção divisão modulo06.....PRZ r_Ps r_s rs concatenação das tuplas de r e s que satisfazem o predicado de junção P concatenação das tuplas de r e s que coincidem nos atributos em comum.

resultado de (2).Sala] (e2) 10/05/01 inf1732 L510 . para DS[Disc.PRZ 10 Disc Sala inf1731 L520 !DS[Disc.Sala] modulo06.Álgebra Relacional Exemplos: Banco de Dados: Consultas: DiscGR Cod End Matr 15315 11239 (1) Que disciplinas de GR ocupam a sala L520? Cod End Matr 15315 inf1731 L520 inf1731 L520 inf1732 L510 "End=L520 (DiscGR) (2) Quais as salas são usadas por quais disciplinas de GR? Cod End inf1731 L520 inf1732 L510 Cod.End (DiscGR) (3) renomeie e2 .

Matr=Prof.PRZ 11 .Matr Prof Cod End L520 L510 Matr 15315 11239 Matr Nome inf1731 L520 inf1732 L510 11239 inf1731 15315 Pedro 11239 Manuel (junção) Prof Matr Nome inf1732 15315 Pedro 11239 Manuel 24217 José DiscGR _Prof Cod End Matr Nome (equijunção) inf1731 L520 inf1732 L510 15315 15315 Pedro 11239 Manuel 11239 10/05/01 modulo06.Álgebra Relacional Exemplos: Banco de Dados: Consulta: DiscGR Cod End Matr 15315 (1) Que professores lecionam na graduação? DiscGR _DiscGR.

Álgebra Relacional Exemplos: Banco de Dados: Consulta: DiscGR Cod End Matr 15315 11239 (1) Quais disciplinas da GR Pedro leciona? inf1731 L520 inf1732 L510 Cod((DiscGR _Matr ("Nome='Pedro' (Prof))) Matr Nome 15315 Pedro Prof Matr Matr Nome 15315 Cod End Matr 15315 15315 Pedro 11239 Manuel 24217 José Matr 15315 inf1731 L520 Cod modulo06.PRZ 12 inf1731 10/05/01 .

1) tr [S] = ts [S] e (2.PRZ 13 R Matr 15315 10/05/01 .2) tr [R-S] = t DGr Cod inf1731 inf1732 Exemplos: Qual a matrícula dos professores que lecionam todas as disciplinas da GR? R := PD  DGr modulo06.Álgebra Relacional Definição da divisão: PD Cod inf1731 inf1732 Matr 15315 11239 15315 24217 Sejam R e S esquemas de relações e r e s relações com os esquemas R e S tFrs (1) sse inf1732 inf2324 t F R-S (r) (2) para todo ts F s. existe tr F r tal que (2.

PRZ 14 10/05/01 .. modulo06.Álgebra Relacional Uma linguagem baseada na Álgebra Relacional: <programa> ::= <atribuição> | <atribuição> '.' <programa> <atribuição> ::= <esquema> ':=' <expressão> <expressão> ::= <operação binária> | <seleção> | <projeção> | <junção> <operação binária>::=<nome><operador binário><nome> <seleção> ::= 'selecione' <nome> 'onde' <predicado de seleção> <projeção> ::= 'projete' <nome> 'em' <lista de atributos> <junção> ::= 'junte' <nome> 'e' <nome> 'onde' <predicado de junção> <operador binário>::= '' | '-' | '' | ' ' | '' <esquema> ::= <nome>{'['<lista de atributos>']'} <nome> ::= <char> | <char><nome> <lista de atributos> ::= <nome> | <nome><lista de atributos> <char> ::= 'a' | 'b' | ..

PRZ 15 10/05/01 . ::= '<' | '>' | '=' | 'P' | '>' . ::= 'e' | 'ou' . ::= <nome> ::= <nome> modulo06. <termo-seleção> ::= <nome-atributo> | <valor>.): <predicado de seleção> ::= <termo-seleção><comparação><termo-seleção> | '¬' <predicado de seleção> | '('<predicado de seleção><conectivo><predicado de seleção>')'. <termo-junção> <comparação> <conectivo> <nome-atributo> <nome-relação> ::= <nome-relação>'. <predicado de junção> ::= <termo-junção><comparação><termo-junção> | '¬' <predicado de seleção> | '('<predicado de seleção><conectivo><predicado de seleção>')'.'<nome-atributo>.Álgebra Relacional Uma linguagem baseada na Álgebra Relacional (cont.

os termos só envolvem expressões da forma R.A..PRZ .. onde A é um atributo de R.An são atributos de R P é predicado de junção para R e S..A. ou da forma S.Álgebra Relacional Expressão EF. ou seja. onde A é um atributo de S e as comparações são sobre termos de relações diferentes 16 10/05/01 selecione R onde P projete R em A1..EF R := E Restrições gr(E)=gr(F) e E e F têm atributos compatíveis omite-se a lista de atributos de R quando for possível determiná-los a partir de E P é predicado de seleção para R... ou seja.E-F. os termos de P só envolvem atributos de R A1. . An junte R e S onde P modulo06.

Nome. Idade] Estado do Banco de Dados: Disc Cod End Matr Nível Prof Matr Nome Idade 46 33 66 inf1731 L520 inf1732 L510 inf1732 L520 inf2324 L520 15315 GR 11239 GR 15315 GR 24217 PG 15315 Pedro 11239 Manuel 24217 José modulo06. Nível] Prof[Matr.PRZ 17 10/05/01 . End.Álgebra Relacional Exemplos: Esquema Relacional do Banco de Dados: Disc[Cod. Matr.

PRZ 18 10/05/01 .): Qual a matrícula dos professores que lecionam disciplinas na L520? R1 := selecione Disc onde End = L520. Matr. R2 := projete R1 em Matr. R3 := projete R2 em Matr. equivalentemente: R1 := projete Disc em End. R2 := selecione R1 onde End = L520. modulo06.Álgebra Relacional Exemplos (cont. ou.

PRZ 19 10/05/01 . R2 := selecione Prof onde Idade > 45. R3 := projete R2 em Nome.): Qual o nome dos professores com mais de 45 anos que lecionam disciplinas na GR? R1 := junte Disc e Prof onde DiscPG.Álgebra Relacional Exemplos (cont. R4 := projete R3 em Nome. modulo06. R2 := selecione R1 onde Nível = GR e Idade > 45.Matr. ou. equivalentemente: R1 := selecione Disc onde Nível = GR.Matr = R2.Matr. R3 := junte R1 e R2 onde R1.Matr = Prof.

R2 := projete R1 em Cod. R4 := R3  R2.Álgebra Relacional Exemplos (cont.PRZ 20 Disc Cod End Matr Nível inf1731 L520 inf1732 L510 inf1732 L520 inf2324 L520 15315 GR 11239 GR 15315 GR 24217 PG Matr 15315 11239 15315 24217 R4 Matr 15315 inf1731 L520 inf1732 L510 inf1732 L520 15315 GR 11239 GR 15315 GR 10/05/01 .): Qual a matrícula dos professores que lecionam todas as disciplinas da GR? R1 := selecione Disc onde Nível = GR. Matr. R1 Cod End Matr Nível R2 Cod inf1731 inf1732 R3 Cod inf1731 inf1732 inf1732 inf2324 modulo06. R3 := projete Disc em Cod.

...An (r)) = A1...An (P (r)) (muitas outras propriedades úteis à otimização de consultas.PRZ 21 10/05/01 ..Álgebra Relacional Propriedades dos operadores: Comutatividade e distributividade da seleção: "P (Q (r)) = "Q (P (r)) "P Q (r) = "P (Q (r)) Comutatividade e associatividade da junção: r_Ps=s_Pr (r _ P s) _ Q t = r _ P (s _ Q t) Comutatividade entre seleção e projeção: P (A1.) modulo06.....

Matr = R2.Matr. R2 := selecione Prof onde Idade > 45.Matr = Prof.Matr.Matr = Prof.PRZ Disc Prof 10/05/01 .Matr Disc Prof R1 := selecione Disc onde Nível = GR. R2 := selecione R1 onde Nível = GR e Idade > 45. R3 := projete R2 em Nome.Matr " Nível = GR " Idade > 45 22 modulo06.  Nome " Nível = GR e Idade > 45 _ Disc.Álgebra Relacional Representação de expressões por árvores: R1 := junte Disc e Prof onde DiscPG.  Nome _ Disc. R4 := projete R3 em Nome. R3 := junte R1 e R2 onde R1.Matr = Prof.

PRZ 23 10/05/01 .Cálculo Relacional Expressão do Cálculo Relacional: { r / P(r) } onde r P(r) é uma variável varrendo tuplas é uma fórmula cuja única variável livre é r modulo06.

Cálculo Relacional Fórmulas atômicas: r1 . R r1[A1]  r2[A2] r1[A1]  c onde r1 e r 2 A1 e A2 R  são variáveis varrendo tuplas são atributos definidos para r1 e r2 é um nome de relação é um operador de comparação se P1 e P2 são fórmulas. R)(Q) (P1 P2) (P1 ^ _ 0P ) 2 modulo06.PRZ 24 10/05/01 . então as expressões também são fórmulas: (P1) ¬P1 (P1 P2) ( r1 . R)(Q) ( r1 .

PRZ 25 10/05/01 .Cálculo Relacional Restrição: as fórmulas devem ser seguras exemplos: ¬(r1 FR) não é segura (”r1 FT)(¬(r1 FR)) é segura r1 FT ¬(r1 FR) é segura r1 FT ¬(r1 FR) não é segura modulo06.

Disc ) (s[Nivel]=GR ( t . Disc ) (n = r[Nome] r[Idade] > 45 s[Nível] = GR r[Matr] = s[Matr] ) } _ _ Qual a matrícula dos professores que lecionam todas as disciplinas da GR? { m / ( p.PRZ 26 10/05/01 . Disc ) ( p[Matr] = t[Matr] s[Cod] = t[Cod] ))))} _ _ 0 modulo06. Prof ) ( m = p[Matr] (( ^s . Disc ) ( t = s[Matr] s[End] = L520 ) } _ Qual o nome dos professores com mais de 45 anos que lecionam disciplinas na GR? { n / ( r . Prof ) ( s .): Qual a matrícula dos professores que lecionam disciplinas na L520? { t / ( s .Cálculo Relacional Exemplos (cont.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->