Escolar Documentos
Profissional Documentos
Cultura Documentos
modulo06.PRZ
10/05/01
Tpicos
Introduo lgebra Relacional Clculo Relacional
modulo06.PRZ
10/05/01
Introduo
Linguagem de Definio de Dados (LDD):
comandos para definio do esquema lgico e fsico do BD
modulo06.PRZ
10/05/01
Introduo
Clculo Relacional
linguagem declarativa paradigma para as linguagens relacionais
lgebra Relacional
procedimental mesmo poder de expresso que o Clculo Relacional variantes da lgebra Relacional so usadas internamente pelos SGBDs relacionais durante a otimizao de consultas
modulo06.PRZ
10/05/01
lgebra Relacional
lgebra Relacional:
operaes mapeiam uma ou mais relaes em uma nova relao algumas operaes impem restries nas relaes de entrada
Operaes:
Bsicas: oriundas da teoria de conjuntos: especficas para relaes: Adicionais oriundas da teoria de conjuntos: especficas para relaes: Produto Cartesiano, Unio e Diferena Seleo, Projeo e Renomeo Interseo Diviso e Juno
Notas:
as operaes bsicas so suficientes para exprimir as mesmas consultas que o Clculo Relacional as operaes adicionais ajudam a formular certas consultas que seriam muito complexas de exprimir usando apenas as operaes bsicas
modulo06.PRZ 5 10/05/01
lgebra Relacional
Operaes oriundas da Teoria dos Conjuntos:
Operao unio diferena prod. cart. interseo Notao Grau do resultado Cardinalidade do resultado Restr. 1, 2 1, 2 -1, 2
> min(n(r),n(s))
Restries: 1. As relaes r e s devem ter o mesmo grau (ou aridade) 2. Os atributos correspondentes devem ser compatveis
modulo06.PRZ
10/05/01
lgebra Relacional
Exemplos:
Banco de Dados: Operaes: Que disciplinas esto sendo oferecidas..
DiscGR DiscPG
DiscPG
Cod End Matr 24217 11239
inf1732 L510
modulo06.PRZ 7
lgebra Relacional
Exemplos:
Banco de Dados: Operao:
DiscGR
Cod End Matr 15315 11239
DiscGR x Prof
Cod End Matr 15315 15315 15315 11239 11239 11239 Matr Nome
15315 Pedro 11239 Manuel 24217 Jos 15315 Pedro 11239 Manuel 24217 Jos
Prof
Matr Nome
10/05/01
lgebra Relacional
Operaes especficas para relaes:
Operao seleo projeo Notao Descrio tuplas de r que satisfazem o predicado de seleo P projeo das tuplas de r na lista de atributos A1, ...,An
renomeao !S[B1,...,Bk] (e) nomeia o resultado da expresso e como S[B1,...,Bk] juno equijuno diviso
modulo06.PRZ
concatenao das tuplas de r e s que satisfazem o predicado de juno P concatenao das tuplas de r e s que coincidem nos atributos em comum, eliminando os atributos em duplicata
lgebra Relacional
Exemplos:
Banco de Dados: Consultas:
DiscGR
Cod End Matr 15315 11239
Cod
End
Matr 15315
inf1731 L520
"End=L520 (DiscGR)
(2) Quais as salas so usadas por quais disciplinas de GR?
Cod
End
Cod,End (DiscGR)
(3) renomeie e2 , resultado de (2), para DS[Disc,Sala]
modulo06.PRZ 10
Disc
Sala
inf1731 L520
!DS[Disc,Sala] (e2)
lgebra Relacional
Exemplos:
Banco de Dados: Consulta:
DiscGR
Cod End Matr 15315
11239
inf1731
(juno)
Prof
Matr Nome
inf1732
DiscGR _Prof
Cod End Matr Nome
(equijuno)
modulo06.PRZ
11
lgebra Relacional
Exemplos:
Banco de Dados: Consulta:
DiscGR
Cod End Matr 15315 11239
Prof
Matr
Matr Nome
15315
Cod End Matr 15315
Matr 15315
modulo06.PRZ
12 inf1731
10/05/01
lgebra Relacional
Definio da diviso:
PD Cod inf1731 inf1732 Matr 15315 11239 15315 24217
inf1732 inf2324
t F R-S (r) (2) para todo ts F s, existe tr F r tal que (2.1) tr [S] = ts [S] e (2.2) tr [R-S] = t
DGr
Exemplos:
Qual a matrcula dos professores que lecionam todas as disciplinas da GR?
R := PD DGr
modulo06.PRZ 13
Matr 15315
10/05/01
lgebra Relacional
Uma linguagem baseada na lgebra Relacional:
<programa> ::= <atribuio> | <atribuio> ';' <programa> <atribuio> ::= <esquema> ':=' <expresso> <expresso> ::= <operao binria> | <seleo> | <projeo> | <juno> <operao binria>::=<nome><operador binrio><nome> <seleo> ::= 'selecione' <nome> 'onde' <predicado de seleo> <projeo> ::= 'projete' <nome> 'em' <lista de atributos> <juno> ::= 'junte' <nome> 'e' <nome> 'onde' <predicado de juno> <operador binrio>::= '' | '-' | '' | ' ' | '' <esquema> ::= <nome>{'['<lista de atributos>']'} <nome> ::= <char> | <char><nome> <lista de atributos> ::= <nome> | <nome><lista de atributos> <char> ::= 'a' | 'b' | ...
modulo06.PRZ
14
10/05/01
lgebra Relacional
Uma linguagem baseada na lgebra Relacional (cont.):
<predicado de seleo> ::= <termo-seleo><comparao><termo-seleo> | '' <predicado de seleo> | '('<predicado de seleo><conectivo><predicado de seleo>')'; <termo-seleo> ::= <nome-atributo> | <valor>;
<predicado de juno> ::= <termo-juno><comparao><termo-juno> | '' <predicado de seleo> | '('<predicado de seleo><conectivo><predicado de seleo>')'; <termo-juno> <comparao> <conectivo> <nome-atributo> <nome-relao> ::= <nome-relao>'.'<nome-atributo>; ::= '<' | '>' | '=' | 'P' | '>' ; ::= 'e' | 'ou' ; ::= <nome> ::= <nome>
modulo06.PRZ
15
10/05/01
lgebra Relacional
Expresso EF,E-F,EF R := E Restries gr(E)=gr(F) e E e F tm atributos compatveis omite-se a lista de atributos de R quando for possvel determin-los a partir de E P predicado de seleo para R, ou seja, os termos de P s envolvem atributos de R A1,...,An so atributos de R P predicado de juno para R e S, ou seja, os termos s envolvem expresses da forma R.A, onde A um atributo de R, ou da forma S.A, onde A um atributo de S e as comparaes so sobre termos de relaes diferentes
16 10/05/01
selecione R onde P
junte R e S onde P
modulo06.PRZ
lgebra Relacional
Exemplos:
Esquema Relacional do Banco de Dados: Disc[Cod, End, Matr, Nvel] Prof[Matr, Nome, Idade]
modulo06.PRZ
17
10/05/01
lgebra Relacional
Exemplos (cont.):
Qual a matrcula dos professores que lecionam disciplinas na L520?
R1 := selecione Disc onde End = L520; R2 := projete R1 em Matr;
ou, equivalentemente:
R1 := projete Disc em End, Matr; R2 := selecione R1 onde End = L520; R3 := projete R2 em Matr;
modulo06.PRZ
18
10/05/01
lgebra Relacional
Exemplos (cont.):
Qual o nome dos professores com mais de 45 anos que lecionam disciplinas na GR?
R1 := junte Disc e Prof onde DiscPG.Matr = Prof.Matr; R2 := selecione R1 onde Nvel = GR e Idade > 45; R3 := projete R2 em Nome;
ou, equivalentemente:
R1 := selecione Disc onde Nvel = GR; R2 := selecione Prof onde Idade > 45; R3 := junte R1 e R2 onde R1.Matr = R2.Matr; R4 := projete R3 em Nome;
modulo06.PRZ
19
10/05/01
lgebra Relacional
Exemplos (cont.):
Qual a matrcula dos professores que lecionam todas as disciplinas da GR?
R1 := selecione Disc onde Nvel = GR; R2 := projete R1 em Cod; R3 := projete Disc em Cod, Matr; R4 := R3 R2;
R1 Cod End Matr Nvel R2 Cod inf1731 inf1732 R3 Cod inf1731 inf1732 inf1732 inf2324
modulo06.PRZ 20
Disc
Cod
End
Matr
Nvel
R4 Matr 15315
10/05/01
lgebra Relacional
Propriedades dos operadores:
Comutatividade e distributividade da seleo:
"P (Q (r)) = "Q (P (r)) "PQ (r) = "P (Q (r))
Comutatividade e associatividade da juno:
r_Ps=s_Pr (r _ P s) _ Q t = r _ P (s _ Q t)
Comutatividade entre seleo e projeo:
modulo06.PRZ
21
10/05/01
lgebra Relacional
Representao de expresses por rvores:
R1 := junte Disc e Prof onde DiscPG.Matr = Prof.Matr; R2 := selecione R1 onde Nvel = GR e Idade > 45; R3 := projete R2 em Nome;
R1 := selecione Disc onde Nvel = GR; R2 := selecione Prof onde Idade > 45; R3 := junte R1 e R2 onde R1.Matr = R2.Matr; R4 := projete R3 em Nome;
modulo06.PRZ
Disc
Prof
10/05/01
Clculo Relacional
Expresso do Clculo Relacional: { r / P(r) }
onde r P(r) uma varivel varrendo tuplas uma frmula cuja nica varivel livre r
modulo06.PRZ
23
10/05/01
Clculo Relacional
Frmulas atmicas: r1 . R r1[A1] r2[A2] r1[A1] c
onde r1 e r 2 A1 e A2 R so variveis varrendo tuplas so atributos definidos para r1 e r2 um nome de relao um operador de comparao
0P )
2
modulo06.PRZ
24
10/05/01
Clculo Relacional
Restrio:
as frmulas devem ser seguras exemplos:
(r1
FR) no segura
(r1 FT)((r1 FR)) segura r1 FT (r1 FR) segura r1 FT (r1 FR) no segura
modulo06.PRZ
25
10/05/01
Clculo Relacional
Exemplos (cont.):
Qual a matrcula dos professores que lecionam disciplinas na L520?
{ t / ( 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 . Disc ) (n = r[Nome] r[Idade] > 45 s[Nvel] = GR r[Matr] = s[Matr] ) }
modulo06.PRZ
26
10/05/01