aula de dÚvidas 9 de abril de 2013. especialização simplifica-se quando: especialização é...

17
AULA DE DÚVIDAS 9 de Abril de 2013

Upload: ester-canto

Post on 07-Apr-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

Á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

Á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

Á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

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

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

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