O que são views ou tabelas virtuais no banco de dados?

Tutorial passo a passo de criação e uso de Views em banco de dados relacionais. Veja como criar view, inserir, alterar e excluir dados através de uma view. Todos os bancos suportam visões ou stored procedures?

Home » Tecnologia

Um banco de dados suporta uma variedade grande de recursos que podem ser usados no armazenamento e tratamento dos dados, visando uma variedade de formas de trabalho no armazenamento e recuperação dos dados. Um exemplo disso são as views, que podem ser um recurso bastante interessante em alguns casos.

Uma View é uma tabela virtual no banco de dados. Em uma view poderemos combinar dados de uma ou mais tabelas, inserir dados ou fazer outras operações DML. Uma view não armazena os dados em si, ou seja, ela sempre ficará dependente da tabela real.

Como criar uma view?

Uma view é criada com o comando create view, conforme o modelo abaixo:

create view fiat as

select * from carros where marca='fiat'

Criei uma tabela virtual chamada fiat e defini que ela irá acessar a tabela real Carros e filtrará apenas os carros da marca Fiat. O filtro é opcional.

Para usar a view acima, basta fazer um select comum:

select * from fiat

O resultado poderá ser visto na imagem abaixo:

Criação de View

Perceba que fizemos um select comum, como se fiat fosse uma tabela do banco de dados, mas ela é apenas uma tabela virtual. Você poderá fazer filtros dentro da view, conforme mostrado no modelo abaixo:

select * from fiat

where combustivel='GNV'

O resultado pode ser visto abaixo:

Execução de view

Alterações de dados e estrutura da tabela

Se houver alterações nos dados da tabela, eles serão enxergados normalmente na view. Veja um exemplo abaixo, onde adiciono mais um carro da marca fiat na tabela principal Carros:

insert into carros(marca, modelo, combustivel) values('fiat','Mio','GNV')

Após a alteração acima, vamos ver como ficou a view:

select * from fiat

where combustivel='GNV'

View em SQL Server

Como pode perceber uma tabela virtual sempre retornará os dados atuais da tabela. Porém, se houver alterações estruturais na tabela principal, elas não serão atualizadas na view. No exemplo abaixo eu adiciono o campo motor na tabela Carros.

alter table carros add motor varchar(100)

Se dermos um select direto na tabela Carros, veremos que a coluna motor está lá, porém, não foi atualizada na view.

View em banco de dados

Estrutura da tabela principal: Carros

Tabela virtual em banco de dados

Estrutura da view: Fiat

View para inserir, alterar e excluir dados

Podemos usar uma tabela virtual para inserir, alterar e excluir dados sem problemas. Veja os exemplos abaixo:

insert into fiat(marca, modelo, cor) values('fiat','Mio','prata')

Executamos a view com o filtro modelo:

select * from fiat

where modelo='Mio'

View ou tabela virtual

Agora a alteração:

update fiat set ano=2011 where modelo='Mio' and cor='prata'

Ao executarmos novamente a view, veremos o valor alterado:

view ou tabela virtual no banco de dados

Agora, a exclusão:

delete from fiat where modelo='Mio'

O resultado abaixo mostra que não há mais o modelo Mio:

view ou tabela virtual no banco de dados

Vantagens do uso de Views

  • Possibilita ocultar detalhes e possivelmente a complexidade do banco;
  • Permite disponibilizar ao usuário somente aquilo que ele vai usar
  • Pode ser vista como um filtro de segurança, uma vez que apenas alguns dados do banco ficaram disponíveis ao usuário
  • Tem uma performance melhor
  • Pode ser usada como uma estratégia de gerenciamento de permissões, ou seja, pode-se centralizar o acesso externo aos dados através de views.

Perguntas e respostas

Todos os bancos suportam views ou visões?

De certa forma sim, mas existem alguns bancos que sob determinada configuração ou dependendo do Engine que estiver sendo usado, algumas operações como stored procedures ou views podem não ser suportados. Por isso é sempre importante consultar a documentação do banco que estiver usando para verificar as limitações de cada um ou das Engines que ele suporta.

Qual é o melhor banco de dados?

Esta é uma pergunta difícil de responder. Creio que não haja uma resposta exata, mas sim um depende. Alguns bancos são mais robustos e por isso suportam mais o tranco, porém, outros bancos são projetados para ambientes mais lights e nem por isso podem serem taxados de inferiores. Oracle, DB2, SyBase e SQL Server são exemplos de bancos bastante robustos. São usados em grandes empresas como bancos, bolsas de valores, companhias de seguros, indústria e etc.

Oracle, SQL Server, MySQL ou outro?

Existem bancos que são mais usados em determinando segmento, um exemplo disso é a internet, onde o Access, MySQL e SQL Server são a grande maioria. Outro exemplo são as empresas desenvolvedoras de sistemas que geralmente usam banco de dados adequado a tecnologia de desenvolvimento. Por exemplo: Quem desenvolve em Delphi geralmente usa Firebird, Paradox ou Interbase, já quem usa Visual Basic para desenvolvimento fica com um banco da Microsoft, SQL Server ou Access (apesar de muitos alegarem que Access não é banco de dados). O Oracle é o banco mais usado no mundo e certamente para boa parte dessas pessoas ele é o melhor banco, mas na prática o melhor banco é aquele que melhor responde às necessidades de cada projeto ou cada empresa.

SQL é igual em todos os bancos de dados?

Inicialmente imagina-se que a linguagem SQL seria a mesma para todos os bancos de dados, porém, algumas empresas desenvolvedoras de banco de dados, entre elas a Microsoft e a Oracle, fizeram aperfeiçoamentos na linguagem SQL e acabaram criando versões próprias de acesso ao seu banco de dados.

Geralmente o padrão é chamado de SQL ANSI que é padronizado e serve para qualquer banco de dados. Já os específicos podem ser o PL SQL adotado pela Oracle ou o Transact-SQL adotado pela Microsoft para o seu principal banco de dados.


VEJA TAMBÉM:

CANAL NO YOUTUBE

INSCREVA-SE:



Sistemas Web

Playlist de SQL

Youtube Youtube Youtube
© 2021 - Utilidade Pública: Tecnologia, Educação e Cidadania.