Você está na página 1de 7

UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE

FACULDADE DE CIÊNCIAS E TECNOLOGIAS DE INFORMAÇÃO

EXAME NORMAL DE SISTEMAS DE GESTÃO DE BASE DE DADOS


Curso: LASIR/LDS – Manhã Ano Lectivo: 2022A Tipo de:Exame
Duração: Classificação:
Turma: Data: 01-07-2022
120 min. 20 Valores
O Grupo de Disciplina
Leia atentamente as questões que lhe são colocadas e responda com clareza e exactidão.

PARTE I

1. Define e descreva seus tipos


a) Backups. (1.5 V)
R: um backup na base de dados é a operação de copiar os dados para um
dispositivo físico de backup.
Existem 4 tipos distintos de backups com o SQL Server:
1. Backup Completo: neste tipo de backup, são copiados toda base de dados.
2. Backup Log: neste caso é feito um backup do Log de transações.
3. Backup Diferencial: quando utilizamos o backup diferencial, apenas as
informações que foram modificadas desde o último backup completo é que
serão copiadas.
4. File e Filegroup: Uma base de dados de dados pode ser formado por
diversos arquivos, e esses arquivos podem ser copiados individualmente.

b) Database Roles. (1.5 V)


R: Database Roles é a colecção de privilégios atribuídos a um ou mais
usuários para acessar a base de dados.
Role Permissões para os membros dessa Role
Sysadmin Poderes totais sobre todos os objetos do servidor.
Securityadmin Pode gerenciar logins do servidor.
Serveradmin Pode configurar a maioria das opções do servidor.
Diskadmin Gerenciar os arquivos de uma base de dados.
Dbcreator Criar e alterar Base de Dados.
Processadmin Gerenciar processos rodando no SQL Server.
Setupadmin Pode gerenciar e configurar a replicação entre servidores SQL Server e ex
db_owner Tem poderes totais sobre a base de dados.
db_accessadmin Pode adicionar e remover usuários a Base de Dados.
db_datareader Pode ler dados em todas as tabelas de usuário da BD.
db_datawriter Pode adicionar, alterar ou excluir dados em todas as tabelas de usuário da
db_ddladmin Pode adicionar, modificar ou excluir objetos da BD.
db_securityadmin Pode gerenciar roles e adicionar ou excluir usuários às roles do BD. Pode
para objetos da BD.
db_backupoperat Pode fazer o backup da BD.
or
db_denydataread Não pode consultar dados em nenhuma das tabelas do BD, mas pode efetu
er estrutura do BD e de seus objetos.
db_denydatawrite Não pode alterar dados na Base de Dados.
r

2. O Sistema de Gestão de Base de Dados é utilizado por diversas organizações, como


forma de concentrar toda base de dados empresarial em um único lugar, provendo a
facilidade na hora da sua consulta e protegendo assim as informações, que são
primordiais e essenciais para toda a organização.
a) Em breves palavras fale da arquitectura de um SGBD. (1.5 V)
R:
c) Mencione as ferramentas de administração do SQL Server, e descreve duas as
sua escolha. (1.75V)
R: As ferramentas de administração do SQL Server:
 SQL Server Management Studio(SSMS): é um aplicativo de software
usado para configurar, gerenciar e administrar todos os componentes
no Microsoft SQL Server, por outras, é um software integrado para
configurar, minitorar e administrar as instâncias* do SQL Server.

 SQL Server Configuration Manager

 SQL Server Profiler

 DataBase Engine Tuning Advisor

3. Comente entre os conceitos e diga se existe uma relação, caso existe descreva:
a) Base de Dados e Sistemas de Gestão de base de dados.(0.75 V)
R:Base de Dados é uma colecção organizada de dados; esses dados são organizados
de modo a modelar aspectos do mundo real, para que seja possivel efectuar
processamento que gere informações relavantes para usuários a partir desses dados,
enquanto que o SGBD é um programa ou conjunto de programas de software que
permitem a criação e a manutenção de uma base de dados bem como o acesso à
mesma por parte de todos os seus utilizadores. Podemos relacionar a BD e o SGBD,
pois uma vez definido o SGBD teremos a criação, manutenção, a protecção e a
evolução da BD, isto é, “a vida” da BD é em torno dum SGBD, etc.
b) Arquivos de dados e arquivo de logs.(0.75 V)
R: Uma database é uma estrutura formada por pelo menos dois arquivos: um
para armazenamento de dados (Master Data File, extensão .MDF) e outro
reservado para o log de transações (Log Data File, extensão .LDF).
Os arquivo de dados: contêm dados e objectos, como tabelas, índices,
procedimentos armazenados e exibições(visões), isto é, utilizados para
armazenar os dados e os diversos objectos da base dados, enquanto que os
arquivos de logs armazenam os registros das operações efectuadas nos dados
da base de dados, isto é, contêm informações necessárias para recuperar todas
as transações na base dados.Relacionando este dois conceitos consta que O log
de transações é um componente crítico da base de dados e, houver uma falha
do sistema, será necessário que o log de transações retorne a base de dados a
um estado consistente.
c) Arquivo de dados e Filegroups. (0.75 V)
R: Filegroup é uma estrutura lógica definido dentro da base de dados que
mapea a base de dados e os seus objectos para os data file. Relacionando estes
dois conceitos consta que a utilização de um Filegroup permite que os
arquivos de dados duma base de Dados sejam agrupados para facilitar o
gerenciamento, bem como a distribuição ao longo de volumes redundantes e
de melhor desempenho.

4. Na cadeira de SGBD foi eleito o SQL Server para aprendizagem. Ao se intalar o


mesmo deve se ter em conta vários aspectos, dos quais a forma como será autenticada
uma instância.
a) Define a instância de base de dados.(0.5 V)
b) Quais são as possíveis formas de efectuar a autenticação de uma instância?(1.0
V)

PARTE II

5. Considere as seguintes entidades:


Cliente (codigo, nome, endereco, cidade);
Pedido (numero, prazoEntrega, codigoCliente, codigoVendedor);
Contacto (codigo, numero, operadora, codigoCliente);
Vendedor (codigo, nome, salario, comissao);
Produto (codigo, unidade, descricao, preco);
itens_pedido (numeroPedido,codigoProduto,quantidade).
Todas entidades terão um código de identificação única, onde teremos pedidos para os
produtos, um cliente terá um contacto para que possa se concretizar as vendas, os pedidos
serão atendidos por um vendedor, vários pedidos terão vários produtos, que neste cenário
surgira os itens_ pedido que será a entidade associativa do sistema.

a) Apresente a criação das tabelas em causa com as respectivas restrições. (1.5 V)


CREATE DATABASE vendas;
use vendas;
go

CREATE TABLE cliente


(
codigo int,
nome varchar(30),
endereco varchar(30),
cidade varchar(20),
PRIMARY KEY (codigo)
);

CREATE TABLE contacto


(
codigo int,
numero int not null,
operadora varchar(25),
codigoCliente int,
CONSTRAINT fk_cliente FOREIGN KEY(codigoCliente) REFERENCES
cliente(codigo)
);

CREATE TABLE vendedor


(
codigo int,
nome varchar(30),
salario decimal(6,2),
comissao char(1),
PRIMARY KEY (codigo)
);

CREATE TABLE produto


(
codigo int,
unidade char(3),
descricao varchar(30),
preco decimal(16,2),
PRIMARY KEY (codigo)
);

CREATE TABLE pedido


(
numero int,
prazoEntrega int not null,
codigoCliente int not null,
codigoVendedor int not null,
PRIMARY KEY (numero),
constraint fk_pedido_cliente FOREIGN KEY (codigoCliente) REFERENCES
cliente(codigo),
constraint fk_pedido_vendedor FOREIGN KEY (codigoVendedor) REFERENCES
vendedor
(codigo)
);

CREATE TABLE itens_pedido


(
numeroPedido int,
codigoProduto int,
quantidade int,
constraint fk_itens_pedidos_pedidos FOREIGN KEY (numeroPedido)
REFERENCES pedido
(numero),
constraint fk_itens_pedido_produtos FOREIGN KEY (codigoProduto)
REFERENCES
produto (codigo)
);
b) Faça pelo menos 5 inserções nas tabelas da BD criada. (1.5 V)
insert into cliente (codigo,nome,endereco,cidade)
values(1,'Antonio','Rua 15 hulene A','MAPUTO');
insert into cliente (codigo,nome,endereco,cidade) values
(2,'Joao','Rua 15 hulene B','Chimoio');
insert into cliente (codigo,nome,endereco,cidade) values
(3,'Magno','GUAVA n.12342','Maputo');
insert into cliente (codigo,nome,endereco,cidade) values
(4,'Edilson','Albazine n.231','Chokwe');
insert into cliente (codigo,nome,endereco,cidade) values
(5,'Macave','CMC rua bar dos amigos','Tete');

insert into contacto(codigo,numero,operadora,codigoCliente) values


(1,2,'TMCEL',4);
insert into contacto(codigo,numero,operadora,codigoCliente) values
(2,1,'VODACOM',2);
insert into contacto(codigo,numero,operadora,codigoCliente) values
(3,4,'MOVITEL',3);

insert into contacto(codigo,numero,operadora,codigoCliente) values


(4,3,'TMCEL',1);
insert into contacto(codigo,numero,operadora,codigoCliente) values
(5,5,'VODACOM',5);

insert into vendedor (codigo,nome,salario,comissao) values


(1,'Massumira',2500,'A');
insert into vendedor (codigo,nome,salario,comissao) values
(2,'Edilson',2000,'A');
insert into vendedor (codigo,nome,salario,comissao) values
(3,'Joao',3500,'D');
insert into vendedor (codigo,nome,salario,comissao) values
(4,'Antonio',1950,'C');
insert into vendedor (codigo,nome,salario,comissao) values
(5,'Magno',2450,'B');

insert into produto (codigo,unidade,descricao,preco) values


(1,'Kg','Queijo',0.97);
insert into produto (codigo,unidade,descricao,preco) values
(2,'BAR','Chocolate',0.87);
insert into produto (codigo,unidade,descricao,preco) values
(3,'L','Vinho',0.97);
insert into produto (codigo,unidade,descricao,preco) values
(4,'M','Linho',2);

insert into produto (codigo,unidade,descricao,preco) values


(5,'SAC','Acucar',0.3);

insert into pedido (numero,prazoEntrega,codigoCliente,codigoVendedor)


values (1,20,1,2);
insert into pedido (numero,prazoEntrega,codigoCliente,codigoVendedor)
values (2,20,2,1);
insert into pedido (numero,prazoEntrega,codigoCliente,codigoVendedor)
values (3,15,3,2);
insert into pedido (numero,prazoEntrega,codigoCliente,codigoVendedor)
values (4,20,5,3);
insert into pedido (numero,prazoEntrega,codigoCliente,codigoVendedor)
values (5,20,4,2);

insert into itens_pedido (numeroPedido,codigoProduto,quantidade)


values (2,5,20);
insert into itens_pedido (numeroPedido,codigoProduto,quantidade)
values (4,1,9);
insert into itens_pedido (numeroPedido,codigoProduto,quantidade)
values (1,2,18);
insert into itens_pedido (numeroPedido,codigoProduto,quantidade)
values (3,3,5);
insert into itens_pedido (numeroPedido,codigoProduto,quantidade)
values (5,4,5);

c) Selecione código, nome, salario, comissao, em seguida somar o sal e a comissão para
obter o salario mensal para Vendedor.(1.5 V)
select codigo,nome,salario,comissao, salario+ISNULL(commissao,0) as
salario_mensal from Vendedor
OR
select codigo,nome,salario,comissao, salario+commissao as
salario_mensal from Vendedor
d) Apresente uma visão que tenha o número do pedido, a data de entrega, o nome do
cliente e o seu contacto. (1.5 V)
create view vw_dados as
select p.numero as nr_pedido , p.prazoEntrega as data ,c.nome asNome,
co.numero as contacto
from pedido p, cliente c, contacto co
where p.codigoCliente=c.codigo and
c.codigo=co.codigoCliente

--Modo de executar
select * from vw_dados

e) Crie uma função para imprimir o número total de pedidos de um cliente cujo número
é fornecido como parâmetro da função. A função deve lançar uma expceção caso o
nome fornecido não estiver na tabela cliente. (1.5 V)
f) Criar uma trigger que evita que sejam inseridos novos clientes na tabela Clientes, da
Base De Dados em causa, em que a cidade seja igual a Matola, Quelimane. Esta
trigger verifica se o campo de cidade é igual a Matola ou Quelimane. Em caso
afirmativo, um Rollback será chamado para cancelar a inserção do registo, caso
contrário a transação será concluída. (2.5 V)
create trigger TgExcluiMatolaQuelimane
on cliente
for insert
AS
if exists(select * from inserted where cidade
IN('Matola','Quelimane'))
begin
print'Nao pode ser inserido pois, cidade em causa!!!!'
ROLLBACK
end
else
print 'Pode inserir pois nao faz parte!!!!!'

-- Modo de executar
insert into cliente (codigo,nome,endereco,cidade) values
(6,'Antonio','Rua 15 hulene A','Quelimane');

Bom Trabalho

Você também pode gostar