AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é...
-
Upload
ester-canto -
Category
Documents
-
view
213 -
download
0
Transcript of AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é...
![Page 1: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/1.jpg)
AULA DE DÚVIDAS9 de Abril de 2013
![Page 2: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/2.jpg)
Especialização
Simplifica-se quando: especialização é disjunta e especialização é total e não há relações envolvendo o conjunto de entidades mais geral.
bi
DocentesAlunos
Pessoas
ISA
disjunta
nome
obs
…
Autorização Espaços
ePessoas
bi nome … obs
1 Sofia
… xxx
2 Pedro
… yyy
3 João … zzz
Docentesbi
3
Alunosbi
12
nome … obs
Sofia
… xxx
Pedro
… yyy
nome … obs
João … zzz1 Sofi
a… xxx
Redundancia!
4 Ana … vvv
Onde colocar?
Autorizaçãobi e
1 II.127
3 II.252
Chave estrangeira referindo que
tabela?!
![Page 3: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/3.jpg)
Conversão entre Modelo de Entidades e Relações e Modelo Relacional
• Qual das seguintes relações pode pertencer ao conjunto de relações obtido através da conversão do Modelo de Entidades e Relações para o Modelo Relacional apresentada nas aulas? Ent7(...)
Chave de Ent4:
a1,a2,a4
Chave de R1: a1,a2
Chave de Ent7:
a1,a2,a4
Ent7(a1,a2,a4,a7)
R5(a1,a2,a4,a3,a8)
Ent7(a1,a2,a4,a3,a7,a8)
![Page 4: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/4.jpg)
Conversão entre Modelo de Entidades e Relações e Modelo Relacional
Chave de Ent4: a5,a1
Chave de Ent3: a1
Chave de R3: a4
Ent6(a4,a6)R2(a4,a6,a1,a
5) ou R2(a1,a5,a4,a
6)
Ent6(a4,a6, a1,a5)
Chave de Ent6: a6,a4
Chave de R2: a1,a5 ou a4,a6
![Page 5: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/5.jpg)
SQLII.5. Considere o seguinte esquema de base de dados
(com apenas uma tabela) e consulta:CREATE TABLE r(a INT PRIMARY KEY, SELECT a, MIN(b), SUM(c)b INT, FROM rc INT, WHERE b > 5d INT, GROUP BY ae INT); HAVING Condição;Qual das seguintes frases é verdadeira?• (A) Condição não pode ser d = 5;• (B) Condição não pode ser a = sum(e);• (C) O valor de min(b) pode ser menor do que 6;• (D) Nenhumas das anteriores i.e., todas as frases
anteriores são falsas.
![Page 6: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/6.jpg)
SQL
II.14. Com R(a,b) e S(a,b), considere as consultas:
Q1: (SELECT * FROM R) INTERSECT ALL (SELECT * FROM S);Q2: (SELECT * FROM R) NATURAL INNER JOIN (SELECT * FROM S); Se R contiver n tuplos para um dado (a,b) e S contiver m desses tuplos, então: INTERSECT ALL contém min(n,m) tuplos para esse (a,b) NATURAL INNER JOIN contém n*m tuplos para esse (a,b)
Ora, min(n,m) ≤ n*mA resposta a Q1 está sempre contida na resposta a Q2.
![Page 7: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/7.jpg)
SQL II.16. Com R(a), considere as consultas:
Q1: SELECT rr.a FROM R AS rr WHERE NOT EXISTS(SELECT * FROM R WHERE a > rr.a);
Q2: SELECT MAX(a) FROM R; A consulta Q2 devolve um tuplo com o valor máximo do atributo a.
A consulta Q1 devolve n tuplos, um para cada tuplo de R que tenha como valor de a o valor máximo do atributo a.
A resposta a Q2 está sempre contida na resposta a Q1.
![Page 8: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/8.jpg)
SQL Considere as instancias de R(A,B,C) e S(C,D) e a consultaSELECT A, SUM(B+D)FROM R NATURAL INNER JOIN SGROUP BY A;
Qual a soma dos valores não nulos de todos os atributos em todas as linhas do resultado da consulta anterior?
A B C1 2 x1 5 yNULL
3 x
2 1 NULL
NULL
4 x
R
C DNULL
3
x 3y 2y NUL
LS
A B C D1 2 x 31 5 y 21 5 y NUL
LNULL
3 x 3
NULL
4 x 3
R S
B+D57NULL67
A SUM(B+D)
1 12NULL 13
AGA,SUM(B+D)(R S)26
![Page 9: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/9.jpg)
SQL Considere a tabela R criada com o seguinte
comando SQL:CREATE TABLE R(a INT NOT NULL, b INT NOT NULL);
e a instância de R apresentada. A tabela é actualizada com o seguinte
comando SQL:DELETE FROM RWHERE a IN (SELECT a FROM R r1 INNER JOIN R r2 USING (a) WHERE r1.b <> r2.b);
Qual das seguinte afirmações é verdadeira: O comando dá erro por não ser possível fazer
remoções baseadas no conteúdo da própria tabela.
O comando dá erro por existirem tuplos duplicados em R.
O comando remove 8 tuplos. O comando remove 6 tuplos. O comando remove 5 tuplos. O comando remove 4 tuplos. O comando remove 0 tuplos.
a b
1 2
1 3
2 1
2 3
2 4
2 5
3 5
3 5
R
a r1.b r2.b
1 2 3
1 3 2
2 1 3
2 1 4
2 1 5
2 3 1
2 3 4
2 3 5
2 4 1
2 4 3
2 4 5
2 5 1
2 5 3
2 5 4
R r1 INNER JOIN R r2 USING (a) WHERE r1.b <> r2.b
Tuplos Removidos
!
![Page 10: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/10.jpg)
SQL Considere a tabela criada com o seguinte comando SQL:
CREATE TABLE R(a INT NOT NULL PRIMARY KEY,b INT NOT NULL);
Considere as seguintes consultas:Q1: SELECT b FROM R WHERE b >= SOME (SELECT b from R);Q2: SELECT b FROM R as R1WHERE b > ALL (SELECT b FROM R as R2 WHERE R2.a <> R1.a);Q3: SELECT max(b) AS b FROM R;
Qual das seguintes frases é verdadeira? Q1 e Q2 e Q3 são todas equivalentes. Q1 e Q2 são equivalentes; Q3 pode produzir uma resposta diferente
nalgumas instâncias de R. Q1 e Q3 são equivalentes; Q2 pode produzir uma resposta diferente
nalgumas instâncias de R. Q2 e Q3 são equivalentes; Q1 pode produzir uma resposta diferente
nalgumas instâncias de R. Q1, Q2 e Q3 podem todas produzir respostas diferentes nalgumas
instâncias de R.
a b
1 30
2 40
3 40
R
b
30
40
40
Q1
b
Q2
b
40
Q3
![Page 11: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/11.jpg)
Redundância em Modelos ER Considerando o seguinte diagrama ER, quais dos conjuntos de relações são necessariamente redundantes?
![Page 12: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/12.jpg)
Álgebra Relacional Considere duas relações r e s, definidas sobre um mesmo esquema (que tem pelo menos o atributo a), e as consultas
Q1:Q2: Q1 e Q2 produzem sempre a mesma resposta, contendo todos os valores de “a” presentes num tuplo de r ou s.
sr aa
sra
![Page 13: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/13.jpg)
Álgebra Relacional Considere duas relações r e s, definidas sobre um mesmo esquema (que tem pelo menos o atributo a), e as consultas
Q1:Q2: Q2 contém valores de “a” que apareçam num tuplo de r e num tuplo de s;
Q1 contém valores de “a” que apareçam no mesmo tuplo de r e s;
tudo o que está em Q1 está também em Q2, mas não o contrário
sra sr aa
![Page 14: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/14.jpg)
Álgebra Relacional Considere duas relações r e s, definidas sobre um mesmo esquema (que tem pelo menos o atributo a), e as consultas
Q1:Q2: Q2 contém valores de “a” que apareçam num tuplo de r e não num tuplo de s;
Q1 contém valores de “a” que apareçam num tuplo de r e não no mesmo tuplo de s;
tudo o que está em Q2 está também em Q1, mas não o contrário
sra
sr aa
![Page 15: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/15.jpg)
Várias Especializações Como resolver uma situação com várias especializações onde, aparentemente, necessitamos de “herança múltipla”.
Base de Dados para uma empresa: Todos são contribuintes. Os contribuintes dividem-se em pessoas e empresas (especialização disjunta).
Depois há clientes e fornecedores (especialização sobreposta).
Alguns clientes serão empresas e outros pessoas.
Alguns fornecedores serão empresas e outros pessoas.
Por fim, algumas das pessoas são funcionários.
![Page 16: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/16.jpg)
Várias Especializaçõesnif nomemorada
contribuinte
funcionário
salário
ISA
ISA
clientefornecedorprazo de entrega desconto
pessoa
sexo
empresa
cap.socialISA
disjoint
ISAX
![Page 17: AULA DE DÚVIDAS 9 de Abril de 2013. Especialização Simplifica-se quando: especialização é disjunta e especialização é total e não há relações.](https://reader035.fdocument.pub/reader035/viewer/2022081401/570638431a28abb8238f1b1a/html5/thumbnails/17.jpg)
Várias Especializações
contribuinte(nif,nome,morada)cliente(nif,desconto) nif é chave ext de contribuintefornecedor(nif,prazo_de_entrega) nif é chave ext de contribuinteempresa(nif,cap_social) nif é chave ext de contribuintepessoa(nif,sexo) nif é chave ext de contribuintefuncionário(nif,salário) nif é chave ext de pessoa
nif nomemorada
contribuinte
funcionário
salário
ISA
clientefornecedor
prazo de entrega
ISA
desconto
pessoa
sexo
empresa
cap.social
ISAdisjoint