Académique Documents
Professionnel Documents
Culture Documents
Tabela de Conteúdo
1. Introdução ao DB2 UDB: Conhecendo a família de produtos do DB2 UDB
2. Família DB2 UDB
3. Um pouco mais sobre outros produtos.
4. O ambiente DB2 OS/390 e z/OS
5. DB2 UDB no ambiente OS/390 e z/OS
6. Arquitetura DB2 UDB
7. Arquitetura DB2 UDB – Objetos DB2 - 1 de 2
8. Arquitetura DB2 UDB – Objetos DB2 - 2 de 2
9. Arquitetura DB2 UDB – Objetos para Recuperação
10. Segurança: todos pensam nisso
11. Controle de Acesso e o SQL
12. “Conversando” com o DB2: somos os objetos DB2!
13. Modelagem de Dados
14. Diagrama de Relacionamento
15. Normalização
16. 2ª. Forma Normal
17. 3ª. Forma Normal
18. “Conversando” com o DB2 : Fiquem à vontade, utilize-me, sou o SQL!
19. DDL (Data Definition Language) - 1 de 2
20. DDL (Data Definition Language) - 2 de 2
21. DML (Data Manipulation Language)
22. Comando SELECT
23. Comando INSERT
24. Comando INSERT - Tratamento de NULOS:
25. DELETE
26. UPDATE
27. SUBQUERIES
28. Leitura Módulo 4 – finalizada
Introdução ao DB2 UDB:
Inicialmente, você irá conhecer um pouco sobre o DB2 Universal Database (DB2
UDB – vamos sempre utilizar este termo!) e toda sua família de produtos, nas
plataformas S/390, zSeries, Unix e Intel.
Essa ilustração oferece uma clara noção da coexistência de toda a família DB2 UDB nas
diferentes plataformas.
DB2 WSE tem todas as funções do DB2 Enterprise Server Edition, porém não está
integrado com o Mainframe através de conectividade via DB2 Connect, e também não
suporta ambiente 64-bit.
Temos um outro similar, o DB2 Workgroup Server Unlimited Edition (DB2 WSUE),
que difere do DB2 WSE apenas no aspecto de “Licença de Uso”.
DB2 Clients:
DB2 Run Time : Tem apenas a função de conectar estações de trabalhos aos servidores;
DB2 Administration Client : Tem a função de acessar e administrar os Databases através
das estações de trabalhos, utilizando o “Centro de Controle” ou “Assistente de
Configuração”. Caso a estação possua o DB2 Connect, pode-se ainda gerenciar os
sistemas z/OS e IMS;
DB2 Application Development Client : Prove ferramentas e ambiente necessários ao
desenvolvimento de aplicativos, que acessam servidores DB2, podendo construir e
executar tais aplicativos.
DB2 Extenders:
XML : Provê novos de tipos de dados que podem ser armazenados em documentos
XML, em Databases DB2;
Net Searcher : Para auxiliar na construção de aplicativos Internet, que necessitam alta
performance em grandes índices e escalabilidade de pesquisas concorrentes;
Spatial : Permite armazenar, gerenciar e analisar dados espaciais, do tipo localização
geográfica;
TAIV (Text, Audio, Image, Video) : Próprio para administrar em seu DB2 formatos não
tradicionais do tipo Músicas, Filmes, Fotografias.
DB2 Connect:
Em grandes organizações os dados estão armazenados em databases DB2 em diversos
ambientes, tais como, AS/400, MVS, OS/390, z/OS, VSE e VM. Podemos administrar
os diversos ambientes em uma única estação de trabalho, utilizando o DB2 Connect,
que possui um grande conjunto de ferramentas que permitem tais conectividades.
Muito temos que falar sobre os produtos relacionados com o DB2 UDB. O importante
no momento é ter uma real noção das inúmeras possibilidades de implementação e de
escalabilidade oferecidas por este SGBDR. Com certeza teremos outras oportunidades
para conhecer maiores detalhes sobre os produtos aqui mencionados, bem como sermos
apresentados a outros produtos.
A seguir, você irá se familiarizar com alguns objetos relacionados com o Sistema
Operacional, e conhecer como o DB2 está organizado dentro deste sistema operacional.
Viajaremos também pelos componentes do SGBDR DB2 UDB.
OS/390 e z/OS
A família IBM de servidores “enterprises” utiliza OS/390 e z/OS, que são os softwares
de sistema operacional, que oferecem escalabilidade, segurança no processamento para
diferentes cargas de trabalho, em um ambiente de alta performance.
- Processadores de comandos
- Suporte ao sub-sistema (não esqueçam o DB2 é um sub-sistema para o S/390 e z/OS)
- Gerenciador de Serviços
- Gerenciador de Armazenamento
- Gerenciador de Recuperação
- Gerador de Mensagens
- Gerenciador de transações distribuídas
Existem outros “ADDRESS SPACES” que comunicam-se com o DB2 que não iremos
detalhar nesta publicação: CICS, TSO, IMS e outros
No manual IBM DB2 UDB for OS/390 SQL Reference Manual há uma lista detalhando
todas as tabelas e colunas pertencentes ao Catálogo DB2.
Diretório DB2
O Diretório DB2 contém informações usadas pelo DB2 durante a operação normal.
Você não pode acessar o Diretório DB2 usando SQL. Embora tenha o mesmo tipo de
informações que o Catálogo DB2, as estruturas do Diretório DB2 não estão descritas no
Catálogo DB2.
Com isto temos a condição de start ou stop para todos os dados contidos no Database,
ou permitir acesso aos mesmos.
Os data sets residem nos volumes, nos quais as tabelas e índices estão armazenados. Um
storage group é composto de um volume e de um catálogo VSAM (Armazenamento
utilizado no ambiente OS/390 e z/OS). O Storage group SYSDEFLT, é o storage group
default, e é criado quando você instala o DB2.
Todos volumes de um storage group tem que ser do mesmo device type.
TableSpace
Um tablespace é composto por um ou mais data sets, nos quais uma ou mais tabelas são
armazenadas. Um tablespace pode ser um ou mais arquivos VSAM. Estes arquivos
VSAM são do tipo linear data sets (LDSs). Esses tablespaces são formatados em
páginas geralmente de 4kb de tamanho. Este é um componente físico das estruturas do
DB2.
Tabela
Todos os dados de um database DB2 são apresentados em forma de Tabelas. Quando se
cria uma Tabela, define-se a ordem das colunas.
IndexSpace
Um Indexspace é o mesmo que um Tablespace. O chamamos desta forma por ter
correlação apenas com os índices. Este é um componente físico das estruturas do DB2.
LOGS
Todas as alterações de dados nas tabelas DB2 UDB são eventos significantes, e são
gravados nas Logs do DB2 UDB. Em caso de falha de uma aplicação ou do próprio
Subsistema DB2 UDB, estes dados são utilizados para Recuperação.
O processo de LOG DB2 nada mais é do que gravar, em um arquivo VSAM Seqüencial,
o registro antes e depois da atualização, mais o TIMESTAMP do momento da alteração.
O arquivo de LOG ATIVA, por ser um arquivo VSAM, tem um tamanho máximo
permitido definido na Instalação do DB2 UDB. Assim sendo, quando este arquivo está
próximo da sua capacidade máxima, é executado um processo pelo Sub-sistema DB2
chamado ARCHIVE LOG. Este procedimento descarrega todos os registros da LOG
ATIVA em uma unidade de cartucho, e é registrado no catálogo DB2, chamado
SYSCOPY.
Todas as LOGs são definidas de forma DUAL, ou seja, gravados em duas unidades,
para garantir sua recuperação mesmo em situação de falha na leitura das LOGS.
BSDS
O BootStrat DataSet é um arquivo do tipo VSAM-KSDS, que contém informações
críticas para o funcionamento de um Subsistema DB2. O DB2 utiliza este arquivo
durante o procedimento de START, com a finalidade de garantir um ambiente seguro de
recuperação. Fazem parte deste arquivo as seguintes informações:
Para que seja possível gerenciar tal ambiente, é importante que algumas regras de
padronização sejam seguidas, de modo que seja possível estabelecer nomes que não
entrem em conflitos e que permitam uma identificação do tipo de objeto em questão.
Embora nosso foco seja o DB2 UDB e a implementação física do Modelo de Dados,
vamos ver a seguir alguns tópicos sobre a Modelagem de Dados Lógica.
Modelagem de Dados
Um passo importante em qualquer projeto de banco de dados é o levantamento de
informações, de modo a retratar o mais fielmente possível as regras envolvidas no
negócio e seus relacionamentos. Uma boa modelagem dos negócios da empresa é
fundamental para que um projeto de banco de dados possa ser realizado de modo
gradual, sem que surjam problemas de integração no futuro.
Diagrama de Relacionamento:
Normalização
1ª. Forma Normal:
No nosso exemplo, para identificar cada ocorrência na tabela, é necessário definir como
chave o código do componente, e o local onde o mesmo está armazenado. Mas essa
tabela não está de acordo com a segunda forma normal, pois o endereço, que é um
atributo, depende apenas de parte da chave, que é o local.
Como solução do exemplo anterior temos que separar os dados que dependem de
apenas parte da chave e criar uma nova tabela, abaixo temo o exemplo:
Nesse exemplo, Depto e NomeDepto são atributos que estão relacionados entre si, mas
nenhum deles pertence à chave primária dessa tabela. Como solução, teremos que
separar os dados que dependem de uma coluna não-chave:
Muitos dos objetos DB2 já descritos até o momento podem ser referenciados
diretamente pela linguagem SQL, que é dividida em três categorias, a saber:
Podemos obter mais detalhes sobre a DDL no manual do fabricante de cada gerenciador
de banco de dados. No caso do DB2 UDB, temos o IBM DB2 UDB for OS/390 SQL
Reference Manual.
Exemplo de DDL:
DML (Data Manipulation Language)
Na DML temos os seguintes comandos SQL:
- SELECT (Pesquisando dados)
- INSERT (Inserindo dados)
- DELETE (Deletando dados)
- UPDATE (Atualizando dados)
Para detalharmos cada um dos comandos, utilizaremos como base uma tabela de nome
RAMAIS, ilustrada a seguir :
Comando SELECT
Sintaxe básica:
Exemplo prático:
Um outro exemplo:
Neste caso temos o ORDER BY, que tem como função a classificação do resultado da
pesquisa.
Comando INSERT
Sintaxe básica:
Exemplo prático:
Considerações :
Todas as regras de integridade serão verificadas pelo DB2 antes de efetivar o comando
INSERT. Essas regras são:
Se algum atributo (coluna) permitir o NULO (NULLS), podemos inserir uma linha
nova na tabela utilizando três formas:
1a. Forma: Informando a coluna e colocando explicitamente o comando NULL no
INSERT
INSERT INTO RAMAIS (RAMAL, NOME, SOBRENOME, DEPTO)
VALUES (‘7777’, ‘Alfredo’, ‘Camargo’, NULL)
2a. Forma: Informando a coluna e não colocando o dado
INSERT INTO RAMAIS (RAMAL, NOME, SOBRENOME, DEPTO)
VALUES (‘7777’, ‘Alfredo’, ‘Camargo’, ‘’)
3a. Forma: Não informando a coluna.
INSERT INTO RAMAIS (RAMAL, NOME, SOBRENOME) VALUES (‘7777’,
‘Alfredo’, ‘Camargo’)
DELETE
Sintaxe básica:
Exemplo prático:
Considerações:
A regra de integridade referencial será verificada pelo DB2 antes de efetivar o comando
DELETE: se existir alguma tabela que dependa da tabela RAMAIS, um SQL ERRO
ocorrerá, indicando a violação da chave estrangeira.
MUITO CUIDADO com o DELETE sem a cláusula WHERE, pois o DB2 irá deletar
todas as linhas da Tabela. Evidentemente, somente caso nenhuma regra de integridade
referencial seja violada.
UPDATE
Sintaxe básica:
Exemplo prático:
Considerações :
Todas as regras de integridade serão verificadas pelo DB2 antes de efetivar o comando
UPDATE. Essas regras são:
SUBQUERIES
Utilizamos subqueries para resolvermos determinadas pesquisas, nas quais
necessitamos executar uma query interna para obtermos valores que serão comparados
com a query externa. Tipicamente, pesquisas do tipo ranqueamento são resolvidas com
subqueries.
Por exemplo, queremos obter quais Funcionários existem na tabela EMPREGADOS
que tenham SALÁRIO maior que a MÉDIA salarial do DEPARTAMENTO.
Algumas considerações:
JOINS
Utilizamos o JOIN para resolver problemas de normalização. Quando necessitamos
pesquisar informações que estão distribuídas em tabelas diferentes, por questões de
normalização o JOIN é a solução.
Uma consideração importante para o JOIN é clausula WHERE, que indica a condição
de JOIN.
Existem ainda outras situações de JOIN, que não serão abordadas neste momento:
- INNER JOIN
- OUTER JOIN
- FULL OUTER JOIN.
Você acabou de ter contato com o DB2, um potente Banco de Dados para Mainframes,
pouco conhecido no universo da microinformática: sua arquitetura, modelação de
dados, comandos para a interação com o sistema.