Escolar Documentos
Profissional Documentos
Cultura Documentos
Bases de Dados
Ficha de Avaliação nº2
Engenharia Informática
12 de janeiro de 2021
Duração:2 horas
Este esquema foi transposto para um SGBD com os seguintes comandos. Foram
cometidos diversos erros, seja de ortografia, seja de construção dos comandos SQL.
CREATE TABLE Enbarcacao ( EnbarcacaoID INTEGER PRIMARY KEY,
Nome VARCHAR(20) NOT NULL, Calado DOUBLE, Armador VARCHAR(20),
FOREIGN KEY (Armador) REFERENCES Armador (nome) );
CREATE TABLE Armador ( ArmadorID INTEGER, Nome VARCHAR(20),
NIC CHAR(9) NOT NULL, PRIMARY KEY (nome) );
CREATE TABLE Tripulacao ( Tripulante INTEGER PRIMARY KEY,
Nome VARCHAR(50), Morada VARCHAR(60),
Contacto1 VARCHAR(30), Contacto2 VARCHAR(30),
Embarcacao INTEGER NOT NULL,
FOREIGN KEY (Embarcacao) REFERENCES Enbarcacao (EnbarcacaoID) );
CREATE TABLE Mestre ( MestreId VARCHAR(50), Tripulante INTEGER,
FOREIGN KEY (MestreId) REFERENCES Tripulacao (TripulanteID),
FOREIGN KEY (Tripulante) REFERENCES Tripulacao (TripulanteID) );
1 de 3
Bases de Dados I
2. Utilizando o esquema anterior e as correcções que resolveu efetuar, escreva um
comando que permita conhecer o nome de cada tripulante e o nome do seu mestre.
3. Depois de efetuar as correcções solicitadas na alínea 1, introduza novas correcções
às tabelas que achar necessárias para permitir o apagamento de registos na tabela
armador, sem que a integridade referencial o impeça.
4. Que operação permitirá conhecer quais os tripulantes que não se encontram adstritos
(pelo menos de momento) a uma determinada embarcação? Exemplifique.
5. Considerando o diagrama da alínea 1) e as suas correcções, escreva um comando
que permita criar uma vista onde se possam visualizar os dados dos armadores e
nome e calado das embarcações que possuem.
Seja o esquema relacional da base de dados ‘música’, já conhecida das aulas práticas.
CREATE TABLE artista (artista_id int(11) PRIMARY KEY,nome VARCHAR(255));
5. Constatou-se que, por lapso, diversos álbuns não têm artista atribuído. Para esses,
nos casos em que todas as faixas têm o mesmo artista, atribua-lhes esse artista. Nos
outros casos, atribua ao álbum o artista 'Artistas vários'. Como este artista, também
não está registado na base de dados, deve ser primeiramente criado.
2 de 3
Bases de Dados I
Funcionário={NumFunc, Nome, Apelido, Secção, Posto, Chefe, Salário, Despesas,
Carro}
Secção={NumSec, Nome, Cidade, Orçamento2017, Orçamento2016}
Considere que o atributo Funcionário.Secção referencia o atributo Secção.NumSec
Despesas é uma percentagem do Salário atribuída ao funcionário para despesas
diversas. Carro indica se o funcionário tem carro atribuído ou não.
Como auxiliar, considere as seguintes tabelas, que apenas contêm uma amostra dos
registos existentes:
Funcionário
NumFunc Nome Apelido Secção Posto Chefe Salário Despesas(%) Carro
Secção
NumSec Nome Cidade Orçamento2020 Orçamento2019
14*salário + 12*salario*(despesas/100)
e considerando que existe uma retenção para efeitos fiscais de 25% sobre o salário (e
não sobre as despesas), liste para cada funcionário o valor que efetivamente recebe
durante um ano.
2. Pretende-se uma listagem das secções (apenas o nome) que não têm funcionários
registados.
3. Listagem dos funcionários que ganham mais do que todos os funcionários com o
mesmo posto.
4. Pretende-se atribuir carro a todos os funcionários que ganhem mais do que a média
da secção onde trabalham e que sejam chefes dessas mesmas secções. Todos os
restantes não deverão ter carro atribuído, excepto se já tivessem carro atribuído.
5. Transfira a secção com maior valor total de remunerações da cidade onde se
encontra, para a cidade onde se encontra a secção com menor valor total de
remunerações. Nota: só deve considerar para os cálculos as secções que têm
funcionários registados.
3 de 3