DB2 - Exemplos simples - VIEW



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

DB2 - Exemplos simples - VIEW

A view is an alternative way of representing data that exists in one or more tables.
A view can include all or some of the columns from one or more base tables.

Uma visão é uma forma alternativa de representar dados que existem em uma ou mais tabelas.
Uma visualização pode incluir todas ou algumas das colunas de uma ou mais tabelas base.

A view is a named specification of a result table. Conceptually, creating a view is somewhat like using binoculars.
You might look through binoculars to see an entire landscape or to look at a specific image within the landscape, such as a tree.

Uma visão é uma especificação nomeada de uma tabela de resultados. Conceitualmente, criar uma visualização é como usar binóculos.
Você pode olhar com binóculos para ver uma paisagem inteira ou para ver uma imagem específica dentro da paisagem, como uma árvore.

You can create a view that - Você pode criar uma visualização que:

  • Combines data from different base tables
    Combina dados de diferentes tabelas de base

  • Is based on other views or on a combination of views and tables
    É baseado em outras visualizações ou em uma combinação de visualizações e tabelas

  • Omits certain data, thereby shielding some table data from users
    Omite certos dados, protegendo assim alguns dados da tabela dos usuários

In fact, these are common underlying reasons to use a view.
Combining information from base tables and views simplifies retrieving data for a user, and limiting the data that a user can see is useful for security.
You can use views for a number of different purposes.

A view can:

Na verdade, essas são razões subjacentes comuns para usar uma visualização.
Combinar informações de tabelas e visualizações básicas simplifica a recuperação de dados para um usuário, e limitar os dados que um usuário pode ver é útil para a segurança.
Você pode usar visualizações para diversos fins.

Uma visão pode:

  • Control access to a table
    Controle o acesso a uma tabela

  • Make data easier to use
    Torne os dados mais fáceis de usar

  • Simplify authorization by granting access to a view without granting access to the table
    Simplifique a autorização concedendo acesso a uma visualização sem conceder acesso à tabela

  • Show only portions of data in the table
    Mostra apenas partes dos dados na tabela

  • Show summary data for a given table
    Mostrar dados de resumo para uma determinada tabela

  • Combine two or more tables in meaningful ways
    Combine duas ou mais tabelas de maneiras significativas

  • Show only the selected rows that are pertinent to the process that uses the view
    Mostra apenas as linhas selecionadas que são pertinentes ao processo que usa a visão

To define a view, you use the CREATE VIEW statement and assign a name (up to 128 characters in length) to the view.
Specifying the view in other SQL statements is effectively like running an SQL SELECT statement.
At any time, the view consists of the rows that would result from the SELECT statement that it contains.
You can think of a view as having columns and rows just like the base table on which the view is defined.

Para definir uma visualização, você usa a instrução CREATE VIEW e atribui um nome (até 128 caracteres de comprimento) à visualização.
Especificar a visualização em outras instruções SQL é efetivamente como executar uma instrução SQL SELECT.
A qualquer momento, a visualização consiste nas linhas que resultariam da instrução SELECT que ela contém.
Você pode pensar em uma visão como tendo colunas e linhas exatamente como a tabela base na qual a visão é definida.

You also can specify a period specification for a view, subject to certain restrictions.
Você também pode especificar uma especificação de período para uma visão, sujeito a certas restrições.

Example 1 - Exemplo 1

The following figure shows a view of the EMP table that omits sensitive employee information and renames some of the columns.
Você também pode especificar uma especificação de período para uma visão, sujeito a certas restrições.

Figure 1. A view of the EMP table
Figura 1. Uma visão da tabela EMP

Figure note:
The EMPINFO view represents a table that includes columns named EMPLOYEE, FIRSTNAME, LASTNAME, TEAM, and JOBTITLE.
The data in the view comes from the columns EMPNO, FIRSTNME, LASTNAME, DEPT, and JOB of the EMP table.

Nota da figura:
A visualização EMPINFO representa uma tabela que inclui colunas denominadas EMPLOYEE, FIRSTNAME, LASTNAME, TEAM e JOBTITLE.
Os dados na visualização vêm das colunas EMPNO, FIRSTNME, LASTNAME, DEPT e JOB da tabela EMP.

Example 2 - Exemplo 2

The following CREATE VIEW statement defines the EMPINFO view that is shown in the preceding figure:
A seguinte instrução CREATE VIEW define a visualização EMPINFO mostrada na figura anterior:

     CREATE VIEW EMPINFO 
                  (EMPLOYEE
            ,      FIRSTNAME
            ,      LASTNAME
            ,      TEAM
            ,      JOBTITLE)
            AS 
            SELECT EMPNO
            ,      FIRSTNME
            ,      LASTNAME
            ,      DEPT
            ,      JOB
              FROM EMP;

When you define a view, Db2 stores the definition of the view in the Db2 catalog.
However, Db2 does not store any data for the view itself, because the data exists in the base table or tables.

Quando você define uma visualização, o Db2 armazena a definição da visualização no catálogo do Db2.
No entanto, o Db2 não armazena nenhum dado para a visualização em si, porque os dados existem na tabela ou tabelas base.

Example 3 - Exemplo 3

You can narrow the scope of the EMPINFO view by limiting the content to a subset of rows and columns that includes departments A00 and C01 only:
Você pode restringir o escopo da visualização EMPINFO, limitando o conteúdo a um subconjunto de linhas e colunas que inclui apenas os departamentos A00 e C01:

    CREATE VIEW EMPINFO 
                 (EMPLOYEE
           ,      FIRSTNAME
           ,      LASTNAME
           ,      TEAM
           ,      JOBTITLE)
           AS 
           SELECT EMPNO
           ,      FIRSTNME
           ,      LASTNAME
           ,      WORKDEPT
           ,      JOB               
             FROM EMP                                                         
            WHERE WORKDEPT = 'A00' OR WORKDEPT = 'C01';

In general, a view inherits the attributes of the object from which it is derived.
Columns that are added to the tables after the view is defined on those tables do not appear in the view.

Em geral, uma visualização herda os atributos do objeto do qual é derivada.
As colunas que são adicionadas às tabelas depois que a visão é definida nessas tabelas não aparecem na visão.

Restriction:
You cannot create an index for a view.
In addition, you cannot create any form of a key or a constraint (referential or otherwise) on a view.
Such indexes, keys, or constraints must be built on the tables that the view references.

Restrição:
Você não pode criar um índice para uma visualização.
Além disso, você não pode criar qualquer forma de chave ou restrição (referencial ou não) em uma visão.
Esses índices, chaves ou restrições devem ser construídos nas tabelas que a visão faz referência.

To retrieve or access information from a view, you use views like you use base tables.
You can use a SELECT statement to show the information from the view.
The SELECT statement can name other views and tables, and it can use the WHERE, GROUP BY, and HAVING clauses.
It cannot use the ORDER BY clause or name a host variable.

Para recuperar ou acessar informações de uma visão, você usa as visões da mesma forma que usa as tabelas básicas.
Você pode usar uma instrução SELECT para mostrar as informações da visualização.
A instrução SELECT pode nomear outras visualizações e tabelas e pode usar as cláusulas WHERE, GROUP BY e HAVING.
Ele não pode usar a cláusula ORDER BY ou nomear uma variável de host.

Whether a view can be used in an insert, update, or delete operation depends on its definition.
For example, if a view includes a foreign key of its base table, INSERT and UPDATE operations that use the view are subject to the same referential constraint as the base table.
Likewise, if the base table of a view is a parent table, DELETE operations that use the view are subject to the same rules as DELETE operations on the base table.
Read-only views cannot be used for insert, update, and delete operations.

Se uma visualização pode ser usada em uma operação de inserção, atualização ou exclusão depende de sua definição.
Por exemplo, se uma visão inclui uma chave estrangeira de sua tabela base, as operações INSERT e UPDATE que usam a visão estão sujeitas à mesma restrição referencial que a tabela base.
Da mesma forma, se a tabela base de uma visualização for uma tabela-pai, as operações DELETE que usam a visualização estão sujeitas às mesmas regras que as operações DELETE na tabela base.
As visualizações somente leitura não podem ser usadas para operações de inserção, atualização e exclusão.