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

Post on 07-Apr-2016

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

AULA DE DÚVIDAS9 de Abril de 2013

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?!

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)

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

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.

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.

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.

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

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

!

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

Redundância em Modelos ER Considerando o seguinte diagrama ER, quais dos conjuntos de relações são necessariamente redundantes?

Á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

Á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

Á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

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.

Várias Especializaçõesnif nomemorada

contribuinte

funcionário

salário

ISA

ISA

clientefornecedorprazo de entrega desconto

pessoa

sexo

empresa

cap.socialISA

disjoint

ISAX

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

top related