A Lista 06 SQL Server UNIP
Por: Matheus Ruas Vieira • 14/11/2021 • Exam • 585 Palavras (3 Páginas) • 135 Visualizações
1) Explique o que vem a ser uma visão? Para que ela serve?
2) Crie duas tabelas que se relacionem e apresente uma visão que mostre a junção entre elas.
Apresente inclusive os scripts de criação das tabelas.
3) Faça pelo menos duas operações em cima da visão criada: uma de seleção e outra de
filtragem.
4) O que você pode fazer para evitar que mudanças na estrutura da tabela afete a visão já
criada? Faça a nova implementação.
5) Crie um script SQL que demonstre a utilização de transações. Simule uma situação de
commit e outra de rollback.
6) Descreva as principais características de uma transação? Explique detalhadamente o que
vem a ser ACID.
7) Explique o que vem a ser o lock? Em quais situações pode ocorrer? Cite exemplos.
8) Como saber quem está utilizando/travando um determinado recurso? Explique.
9) Como identificar o número de transações que estão rodando no momento? Esse número é
geral ou é por conexão?
>>>EXERCICIO 01
R: Visão (ou View) é uma "tabela virtual" para visualização de dados, ela é prática porque com ela você pode de certa forma predefinir os dados da consulta, e assim evitando ter que usar todo SELECT novamente cada vez que for feito a consulta daqueles dados.
==================================================================================================
>>>EXERCICIO 02
--TABELA DE CLIENTES
CREATE TABLE clientes(
id_client INT IDENTITY PRIMARY KEY,
nome VARCHAR(30) NOT NULL UNIQUE,
telefone INT,
cidade VARCHAR(20));
--TABELA DE CARROS
CREATE TABLE carro(
id_carro INT IDENTITY PRIMARY KEY,
nome VARCHAR(20),
marca VARCHAR(20),
duracao_aluguel INT,
id_client INT,);
--------------------------------------------------------------------------------------------------
--INSERÇÃO DE DADOS DOS CLIENTES
INSERT INTO clientes(nome,telefone,cidade) VALUES
('Henrique','12345678','Jundiai'),('Ana','22345678','Itupeva'),('Pedro','33345678','Campinas'),
('Matheus','44445678','Sao Paulo'),('Sandra','55555678','Jundiai'),('Joao','666666678','Itupeva');
--INSERÇÃO DE DADOS DOS CARROS
INSERT INTO carro(nome,marca,duracao_aluguel,id_client) VALUES
('Fiesta','Ford','0','0'),('Gol','VW','20','3'),('Onix','Chevrolet','10','2'),
('Uno','Fiat','5','6'),('Polo','VW','25','5'),('Ka','Ford','10','1');
--------------------------------------------------------------------------------------------------
--CRIACAO DA VISAO
CREATE VIEW VN_Carros_Alugados AS
SELECT b.id_carro AS 'ID_Carro',b.nome AS 'Modelo',b.marca AS 'Fabricante',
a.nome AS 'Alugado_por',b.id_client AS 'ID_Cliente',b.duracao_aluguel AS 'Tempo_de_Aluguel(horas)'
FROM clientes a INNER JOIN carro b
ON a.id_client = b.id_client;
==================================================================================================
>>>EXERCICIO 03
SELECT * FROM VN_Carros_Alugados;
--------------------------------------------------------------------
SELECT ID_Carro,ID_Cliente,Tempo_de_Aluguel FROM VN_Carros_Alugados;
==================================================================================================
>>>EXERCICIO 04
R: Para evitar que as tabelas sejam alteradas e "quebrar" a view, faz o uso do SCHEMABINDING
--CRIACAO DA VISAO COM SCHEMABINDING
CREATE VIEW VN_Carros_Alugados WITH SCHEMABINDING AS
SELECT b.id_carro AS 'ID_Carro',b.nome AS 'Modelo',b.marca AS 'Fabricante',
a.nome AS 'Alugado_por',b.id_client AS 'ID_Cliente',b.duracao_aluguel AS
...