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

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

Modelo relacional - 1 Linguagens relacionais m Notações para expressar perguntas: q algébrica – aplicação de operadores a relações q lógica (cálculo relacional)

Apresentações semelhantes


Apresentação em tema: "Modelo relacional - 1 Linguagens relacionais m Notações para expressar perguntas: q algébrica – aplicação de operadores a relações q lógica (cálculo relacional)"— Transcrição da apresentação:

1 Modelo relacional - 1 Linguagens relacionais m Notações para expressar perguntas: q algébrica – aplicação de operadores a relações q lógica (cálculo relacional) – fórmula que os tuplos da resposta devem satisfazer equivalentes em poder expressivo. m Limitações: q independência física dos dados linguagem só com construções relativas ao modelo de dados (operações sobre relações) que não dependam da implementação não se pode aceitar programas genéricos q optimização das perguntas restrição no poder expressivo: sem recursão (incapaz de computar o fecho transitivo) q relações finitas complementação proibida

2 Modelo relacional - 2 Operações Básicas 1 - ReuniãoR S q é o conjunto dos tuplos que estão em R, em S, ou em ambas R e S da mesma aridade nomes dos atributos a especificar 2 - DiferençaR – S q tuplos de R que não estão em S R e S da mesma aridade

3 Modelo relacional - 3 Operações Básicas 3 - Produto cartesiano R S q aridades de R e S são k 1 e k 2 aridade de R S é k 1 + k 2 contém todos os tuplos tais que os primeiros k 1 componentes formam um tuplo de R e os restantes k 2 componentes formam um tuplo em S

4 Modelo relacional - 4 Operações Básicas 4 - Projecção i 1, i 2,..., i m (R) q para cada tuplo em R existe um tuplo na projecção com os componentes (e pela ordem) indicados pelos i j se aridade de R for k então os i j 1,..., k e são distintos; aridade da projecção é m números de componentes podem ser substituídos por atributos, se existirem: 1,3 (R) = A,C (R) Projecção escolhe colunas da tabela

5 Modelo relacional - 5 Operações Básicas 5 - Selecção F (R) q contém os tuplos de R que satisfazem F a fórmula F pode envolver operandos constantes ou número de componente ( $i ) operadores aritméticos de comparação (,,,,, ) operadores lógicos (,, ) ( e, ou, não ) Números de componentes podem ser substituídos por atributos, se existirem: $2=b (R) = B=b (R) Selecção escolhe linhas da tabela

6 Modelo relacional - 6 Operações Compostas 6 - Intersecção R S q contém os tuplos que pertencem a R e a S simultaneamente R e S da mesma aridade q R S = R - (R-S)

7 Modelo relacional - 7 Quociente 7 - Quociente R / S aridade de R é r e de S é s, r s, S q contém os (r-s)-tuplos (a 1,..., a r-s ) tais que, para todos os s- tuplos (a r-s+1,..., a r ) em S, o tuplo (a 1,..., a r ) está em R / = = = 7

8 Modelo relacional - 8 Explicação alternativa m Forma de proceder à divisão q reordenar as colunas de forma a que as últimas correspondam ao quociente q ordenar a tabela pelas primeiras colunas q cada subtuplo das primeiras colunas pertence ao resultado se o conjunto de subtuplos das últimas colunas que lhe corresponde contiver o quociente /=

9 Modelo relacional - 9 Expressão do quociente q T = 1,..., r-s (R) = universo dos tuplos possíveis no resultado q W = (T S) - R= todas as linhas T combinadas com S mas que não estão em R, i.e., em que a condição falha q V = 1,..., r-s (W) = tuplos que não interessam q R / S = T - V= tuplos que interessam reunindo numa só expressão algébrica R / S= 1,..., r-s (R) - 1,..., r-s 1,..., r-s (R) S - R

10 Modelo relacional - 10 Quais as frases verdadeiras? a – ( R-S ) S = R b – ( R-S ) S R c – ( R-S ) ( R S ) = R d – ( R-S ) ( S-R ) = ( R S ) - ( R S ) e – ( R/S ) S = R f – ( R/S ) S R q Respostas Erradas - a e e Correctas - b, c, d e f

11 Modelo relacional - 11 Junção 8 - -Junção R S se a aridade de R for r e a de S, s a aridade da -junção é r+s q contém os tuplos do produto cartesiano de R por S tais que o componente i está na relação com o componente r+j (i.e., o correspondente ao j em S). m Expressão da -junção R S= $i $(r+j) (R S) se for =, a operação designa-se equijunção ( 7, 8, 9 ) é um tuplo pendente de R pois não aparece na -junção i j R S 2<1 R S B

12 Modelo relacional - 12 Junção natural 9 - Junção natural R S só é aplicável se os componentes dos tuplos em R e S forem designados por atributos. a operação implícita na junção natural é a igualdade dos atributos com o mesmo nome. cada par de atributos iguais dá origem a um único atributo, com o mesmo nome, no resultado expressão: R S = i 1,..., i m ( R.A 1 = S.A R.A k = S.A k ( R S )) k é o número de atributos comuns a R (aridade r) e S (aridade s) e m= r+s-k R S tuplo pendente

13 Modelo relacional - 13 R S + B

14 Modelo relacional - 14 Semi-junção 10 - Semi-junção R S q projecção nos atributos de R da junção natural de R e S R S = R ( R S ) R em R representa os atributos de R (o seu esquema); em R S R representa a relação (a instância) outra expressão: R S = R R S (S) q dá os tuplos de R que têm par em S R S

15 Modelo relacional - 15 Relações com atributos q na junção natural e na semi-junção os atributos são importantes; para os tornar explícitos escreve-se R(A 1,..., A n ) q é possível renomear colunas e fazer junções naturais como: q uma junção natural entre duas relações sem atributos comuns redunda num produto cartesiano porque, após este, não há nenhuma selecção a fazer (equivalente a fazer uma selecção com a condição True) R( A,B,C ) S( G,H,I ) = R S S = S(B,C,D) S( E,F,G ) S( G,H,I )

16 Modelo relacional - 16 Leis algébricas m Reunião q associativa:R ( S T ) = ( R S ) T q comutativa:R S = S R m Produto cartesiano q associativo:R ( S T ) = ( R S ) T q não comutativo:R S S R m Junção natural associativa e comutativa (independência da ordem das colunas devida aos atributos):R S = S R Por isso generaliza facilmente:R = R 1... R n R contém os tuplos tais que, para 1 i n, restringido aos atributos de R i é um tuplo de R i m - junção q não é comutativa mas é associativa (no caso de os índices serem válidos) R ( S T ) = ( R S ) T i 1 jk 2 l i 1 j (r+k) 2 l

17 Modelo relacional - 17 m Álgebra Relacional pode ser usada como linguagem de interrogação à BD m P1 - Relativamente à BD Cursos (ver p.17), quais os nomes dos professores do 12º grupo? Π nome grupo = 12 ( Professor ) m P2 - Quais os nomes e datas de nascimento dos alunos do curso CG1 nascidos antes de 1983? Π nome, data_nasc codcurso = CG1 data_nasc < ( Aluno ) Linguagem de Interrogação

18 Modelo relacional - 18 Perguntas com junção m P3 - Nomes dos alunos inscritos à disciplina 327? q nenhuma relação contém nomes de alunos e códigos de disciplina mas a junção Aluno Inscrito = R contém: q R (bia, nome, morada, telefone, data_nasc, codcurso, ano, letra, coddis, resultado) ( i ) - Π nome coddis = 327 ( Aluno Inscrito ) ( ii ) - Π nome Aluno coddis = 327 ( Inscrito ) q esta maneira de ligar informações no modelo de dados dá muita liberdade para exprimir perguntas arbitrárias mas exige uma fase de optimização para executar ( ii ) mesmo que a pergunta seja ( i ) Núcleo da álgebra relacional : Π,,

19 Modelo relacional - 19 Extensões à Álgebra m renomeação de atributos q R ( A, B, C ) R( X,Y, Z ) = Π X = A, Y = B, Z = C R( A, B, C ) onde não houver ambiguidades, a simples menção dos atributos, em conjunto com o nome da relação, faz a renomeação OU –R ( X, Y, Z ) = R ( A, B, C ) OU –R = Π X = A, Y = B, Z = C ( R ) expressões aritméticas ( +, -, *, / ) q este mecanismo serve para dar nomes a expressões S = Π W = A * B – C, U = C/B,A ( R ) OU S ( W, U, A )= Π A * B – C, C/B, A ( R )

20 Modelo relacional - 20 Expressões aritméticas m P4 - Obtenha uma relação de inscrições com as classificações inflaccionadas de 20%. Π coddis, bia, resultado, novo = resultado*1.2 ( Inscrito ) Π coddis, bia, resultado, novo = resultado + (20-resultado)/10 ( Inscrito ) m nos parâmetros da projecção: no membro direito só podem ser usados nomes de atributos do argumento de Π ; no esquerdo só pode estar um atributo (novo...)

21 Modelo relacional - 21 Agregações m Operadores de agregação q CNT (contagem), SUM (adição), AVG (média), MAX (máximo), MIN (mínimo) S = Π V = CNT (B) ( R ) q S( V ) tem um único valor, o número de tuplos de R com valor não nulo no atributo B ( CNT (*) conta todas as linhas ) toda a relação agregada T = Π A, M = MAX (B) ( R ) q T ( A, M ) tem tantos pares quantos os valores diferentes de A, sendo indicado para cada A o respectivo valor máximo de B (não nulo... ); q é feita uma partição segundo os atributos de projecção sem operadores de agregação e cada classe é agregada num só tuplo; q é possível misturar agregações e aritmética

22 Modelo relacional - 22 Perguntas com agregação m P5 - Qual o número de inscrições, nota média das inscrições, soma de todas as notas e número de resultados não nulos ? R( NI, M, T, NR ) = Π CNT(*), AVG( resultado), SUM( resultado ), CNT( resultado) ( Inscrito ) q pode ser M T/NI se houver inscrições ainda sem resultado (valor nulo); tem que ser M = T/ NR Inscrito R

23 Modelo relacional - 23 Agregação com partição m P6 - Quais as notas mínima, média e máxima de cada disciplina (independentemente do aluno)? R = Π coddis, MI = MIN( resultado ), ME = AVG(resultado ), MA = MAX(resultado) (Inscrito) Inscrito R

24 Modelo relacional - 24 Quantificação existencial m P7 - Obtenha os códigos dos alunos com inscrição a pelo menos uma das disciplinas do curso LEEC. Π BIA (INSCRITO CODCURSO= LEEC ( PLANO ))

25 Modelo relacional - 25 Quantificação universal m P8 - Obtenha o código dos alunos com inscrição a todas as disciplinas do curso LEEC. A = Π BIA ( ALUNO ) conjunto dos alunos D = Π CODDIS CODCURSO= LEEC (PLANO) conjunto das disciplinas do curso LEEC q A D conjunto de todos os pares (aluno, disciplina da LEEC) NI = A D – Π BIA, CODDIS ( INSCRITO ) pares (aluno, disciplina da LEEC) tais que o aluno não tem inscrição à disciplina R = A – Π BIA ( NI ) resultado (notar a dupla subtracção) R = Π BIA, CODDIS ( INSCRITO ) / D


Carregar ppt "Modelo relacional - 1 Linguagens relacionais m Notações para expressar perguntas: q algébrica – aplicação de operadores a relações q lógica (cálculo relacional)"

Apresentações semelhantes


Anúncios Google