Exercícios de Modelo Relacional

Propaganda
Número Aluno:
Nome:
Instituto Superior Técnico
Departamento de Engenharia Informática
BASES DE DADOS 2004/05
LEIC e LERCI Tagus Park
18 de Novembro 2004
Duração: 1H15
Versão B

Não se esqueçam de identificar todas as folhas
Grupo I. Introdução às Bases de Dados
1. (1,5 v)
Diga qual a diferença entre nível físico, nível lógico e nível de vista (ou de aplicação)
num SGBD relacional. Explique ainda em que consistem a independência lógica e
física suportadas também pelos SGBDRs.
Nível físico: descreve como os dados são guardados, a estrutura física usada, se os
registos estão ordenados ou não, etc.
Nível lógico: descreve os dados que são guardados na base de dados e as relações
entre eles (esquema lógico).
Nível vista: consiste nos programas de aplicação que escondem os detalhes sobre os
dados, quer ao nível de segurança quer ao nível de tipos.
Independência lógica: o esquema lógico pode ser modificado sem afectar as vistas
de utilizador.
Independência física: a organização física dos dados pode ser modificada sem
alterar o esquema lógico.
1 de 9
Número Aluno:
Nome:
2. (1,5v)
Explique o que é uma super-chave, uma chave e uma chave candidata no modelo
relacional. Exemplifique.
Uma chave é o conjunto mínimo de atributos que identificam univocamente um
tuplo de uma relação.
Ex: Pessoa (id, nome, morada), id é chave (primária) de Pessoa
Podem existir várias chaves candidatas que são conjuntos mínimos de atributos que
identificam univocamente os tuplos de uma relação; das várias chaves candidatas
escolhe-se uma que é a primária
Ex: Pessoa (id, bi, nome, morada), id e bi são chaves candidatas
Uma super-chave é qualquer conjunto de atributos que contenham uma chave.
Ex: {id, nome} é uma super-chave de Pessoa.
2 de 9
Número Aluno:
Nome:
Grupo II (ER)
Considere as seguintes figuras:
Figura 1
1. (1v)
Considere a figura 1. Assuma que a grande maioria das operações (quer em
variedade quer em quantidade) que os programas irão fazer sobre a Base de Dados
são de consultas e pesquisas sobre o conceito de “person”, independentemente do
facto de estes serem “employee” ou “customer”.
Com base neste pressuposto, indique qual o cenário mais adequado à implementação
do esquema apresentado.

Implementar a generalização em apenas 1 tabela, agregando os conceitos de
Person, Employee e Customer
 Implementar a generalização em 3 tabelas: Person, Employee e Customer
 Implementar a generalização em 2 tabelas: Employee e Customer
Implementar a generalização em 4 tabelas: Person, Employee, Customer e uma
quarta a estabelecer as relações entre as anteriores.
Nenhuma das hipóteses anteriores.
Ambas as alternativas foram consideradas correctas, mas a primeira era mais
correcta.
2. (1,5v)
Considere a figura 2. O facto da entidade “customer” ter apenas como identificador o
atributo “customer-name”, significa que: (indique a afirmação verdadeira)
3 de 9
Número Aluno:
Nome:
Se uma instância de “customer” tiver o customer-name = “José Martins” (com um
espaço entre “José” e “Martins”) e se outra instância tiver customer-name =
“José Martins” (com dois espaços entre “José” e “Martins”), então representam o
mesmo “customer”.
Os valores dos atributos “customer-name”, “customer-street”, “customer-phone” e
“customer-city”, em nada contribuem para perceber se se trata do mesmo
“customer” ou não.

Quando um cliente mudar de nome, por exemplo no casamento, passará
necessariamente a ser visto como um novo cliente, distinto do anterior.
Se
duas instâncias de “customer” tiverem os mesmos valores nos atributos,
“customer-street”, “customer-phone”, “customer-city”, então representam o mesmo
“customer”.
Nenhuma das anteriores é verdadeira
3. (1,5v)
Considere a figura 3. O facto da entidade “customer” ter apenas como identificador o
atributo “customer-id”, significa que: (indique a afirmação verdadeira. As afirmações
são idênticas às da pergunta anterior)
Se
duas instâncias de “customer” tiverem os mesmos valores nos atributos,
“customer-name”, “customer-street”, “customer-phone”, “customer-city”, então
representam o mesmo “customer”.
Se uma instância de “customer” tiver o customer-name = “José Martins” (com um
espaço entre “José” e “Martins”) e se outra instância tiver customer-name =
“José Martins” (com dois espaços entre “José” e “Martins”), então representam o
mesmo “customer”.

Os valores dos atributos “customer-name”, “customer-street”, “customerphone” e “customer-city” em nada contribuem para perceber se se trata do mesmo
“customer” ou não.
Quando
um cliente mudar de nome, por exemplo no casamento, passará
necessariamente a ser visto como um novo cliente, distinto do anterior.
Nenhuma das anteriores é verdadeira
4 de 9
Número Aluno:
Nome:
Grupo III (SQL e Álgebra Relacional)
1. (2v)
Considere o seguinte esquema relacional:
LIVRO(ISBN, TITULO)
EDICOES (ISBN, NREDITORA, ANOEDICAO)
EDITORAS(NREDITORA, NOME, MORADA)
Considere que:
1. EDICOES.ISBN é chave estrangeira para LIVRO.ISBN.
2. EDICOES.NREDITORA é chave estrangeira para EDITORAS.NREDITORA.
3. Não existem NULLS em nenhum dos atributos dos registos destas relações.
Indique qual das hipóteses seguinte traduz o resultado da seguinte instrução:
SELECT isbn FROM livro WHERE NOT EXISTS (
SELECT * FROM editoras WHERE NOT EXISTS (
SELECT * FROM edicoes WHERE
livro.isbn = edicoes.isbn AND
editoras.nreditora = edicoes.nreditora ) ) )
Indique a afirmação verdadeira:
 O isbn dos livros que não existem em nenhuma edição
 O isbn dos livros que foram editados em todas as edições de pelo menos uma
editora.
 O isbn dos livros que foram editados por todas as editoras
Nenhuma das outras
2. (2v)
Considere as relações LIVRO, EDICOES e EDITORAS da pergunta anterior.
Indique qual das hipóteses seguintes traduz o resultado da seguinte instrução:
SELECT anoedicao, count(*) FROM edicoes GROUP BY anoedicao
 O número de edições feitas em cada ano.
A lista das edições feitas em cada ano.
Nenhuma das outras
5 de 9
Número Aluno:
Nome:
3. (2v)
Considere as seguintes tabelas
CREATE TABLE Dep
( Nome CHAR(20)
NOT NULL,
Ndep CHAR(10),
Chefe CHAR(10)
NOT NULL,
PRIMARY KEY (Ndep),
FOREIGN KEY (Chefe) REFERENCES Emp)
CREATE TABLE Emp
( Nome CHAR(20),
Nemp CHAR(10),
Ndep CHAR(10),
PRIMARY KEY (Nemp))
Indique quais das seguintes frases são verdadeiras (com um V) ou falsas (com um F).
Se não souber não responda.
V A declaração “PRIMARY KEY(Ndep)” garante que não existem dois tuplos de Dep
com valor igual de Ndep
V A declaração “PRIMARY KEY(Nemp)” garante que o atributo Nemp tem sempre
valor (isto é, nunca é NULL)
V A declaração “FOREIGN KEY (Chefe) REFERENCES EMP” garante que todos os
valores do atributo Chefe da tabela Dep existem também como valores do atributo
Nemp da tabela Emp.
F A declaração “FOREIGN KEY (Chefe) REFERENCES EMP” garante que é
impossível apagar um tuplo da tabela Dep enquanto existirem tuplos na tabela Emp
cujo valor de Ndep corresponda ao valor de Ndep do tuplo a ser apagado.
F A declaração “FOREIGN KEY (Chefe) REFERENCES Emp” garante que o atributo
Chefe tem sempre valor (isto é, nunca é NULL)
6 de 9
Número Aluno:
Nome:
4. (3v)
Considere o esquema relacional da pergunta II.1:
LIVRO(ISBN, TITULO)
EDICOES (ISBN, NREDITORA, ANOEDICAO)
EDITORAS(NREDITORA, NOME, MORADA)
4.1. Escreva em álgebra relacional a seguinte interrogação:
Qual o número de edições dos livros editados em 2003?
[isbn]count(*)  anoedicao = 2003 (edicoes)
4.2. Escreva em SQL a seguinte interrogação:
Qual o ISBN e o título dos livros editados em 2003 por mais do que uma
editora? (Tenha em conta que o desempenho da instrução SQL deve ser o melhor
possível)
select l.isbn, l.titulo
from livro l, edicoes e
where l.isbn = e.isbn
and e.anoedicao = 2003
group by l.isbn, l.titulo
having count(nreditora) > 1
7 de 9
Número Aluno:
Nome:
8 de 9
Número Aluno:
Nome:
Grupo IV. Desenho de Bases de Dados Relacionais
Considere a seguinte relação: R(A,B,C,D,E) na qual existem as seguintes
dependências: A,B -> C,D,E e D->E. Considere que todos os atributos da relação são
escalares.
1. (2v)
Indique a frase verdadeira:
A relação R está na 1ª FN, 2ª FN, 3ª FN e na BCNF.
A relação R está na 1ª FN, 2ª FN, 3ª FN mas não está na BCNF.
 A relação R está na 1ª FN, 2ª FN, mas não está na 3ª FN nem na BCNF.
A relação R está na 1ª FN, mas não está na 2ª FN nem na 3ª FN nem na BCNF.
Nenhuma das anteriores.
2. (2v)
Decomponha a relação R em duas relações R1 e R2 de tal modo que R1 e R2
obedeçam à BCNF.
R1(A, B, C, D)
R2(D, E)
A B -> C D
D -> E
9 de 9
Download