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.
Uma view é criada com o comando create view, conforme o modelo abaixo:
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:
O resultado poderá ser visto na imagem abaixo:
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:
where combustivel='GNV'
O resultado pode ser visto abaixo:
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:
Após a alteração acima, vamos ver como ficou a view:
where combustivel='GNV'
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.
Se dermos um select direto na tabela Carros, veremos que a coluna motor está lá, porém, não foi atualizada na view.
Estrutura da tabela principal: Carros
Estrutura da view: Fiat
Podemos usar uma tabela virtual para inserir, alterar e excluir dados sem problemas. Veja os exemplos abaixo:
Executamos a view com o filtro modelo:
where modelo='Mio'
Agora a alteração:
Ao executarmos novamente a view, veremos o valor alterado:
Agora, a exclusão:
delete from fiat where modelo='Mio'
O resultado abaixo mostra que não há mais o modelo Mio:
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.
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.
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.
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.
COMPARTILHE: Facebook Twitter WhatsApp