ibm database for cobol - perse · através de uma liguagem, padrão, chamada sql ... média de...

42
Carlos J E de Campos DB2 IBM DATABASE For COBOL Comandos, Sintaxe, Regras e Procedimentos Exemplos de programas e Pensamentos Desenvolvimento COBOL Mainframe Guia de Referência Segunda edição São Paulo 2013

Upload: tranthu

Post on 13-May-2018

238 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Carlos J E de Campos

DB2 IBM DATABASE For COBOL

Comandos, Sintaxe, Regras e Procedimentos

Exemplos de programas e Pensamentos

D e s e n v o l v i m e n t o C O B O L M a i n f r a m e

G u i a d e R e f e r ê n c i a

S e g u n d a e d i ç ã o

S ã o P a u l o

2 0 1 3

Page 2: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Carlos J E de campos, 2013

Capa: Alexandra Hardt Carlini

Diagramação: Carlos J E de Campos

Revisão: Neusa Pallione

É proibida a reprodução total ou parcial desta obra, de qualquer forma ou por qualquer meio sem a autorização prévia e por escrito do autor. A violação dos Direitos Autorais (Lei n.º 9610/98) é crime estabelecido pelo artigo 184 do Código Penal.

2013

Todos os direitos desta obra pertencem a

Carlos J E de Campos

www.carloscamposinfo.com

Page 3: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3

Agradecimentos

Agradeço a Deus por ter-me colocado na trilha do conhecimento.

Agradeço à minha filhota, Vanessa Soares de Campos, por ser a minha fonte de esperança e por mostrar compreensão e paciência em muitos momentos da nossa vida.

Agradeço ao amigo Roberto Azem, que sempre esteve por perto, nos momentos de estudo e naqueles em que precisava de ouvidos e conselhos.

Agradeço aos meus pais Alice de Assunção Esteves Costa e José Manuel Lopes Moreira de Campos, por terem-me dado a vida, educação, formação moral e muito apoio.

Agradeço ao companheiro Benedito Aparecido Alves, pelo apoio que tem me dado nesta segunda fase dos meus livros, acompanhando-me no dia a dia do trabalho, ouvindo-me e apoiando-me com o seu conhecimento e sabedoria. Benê, como é conhecido, tem sido um grande conselheiro.

Reflexão

“Para adquirir conhecimento é preciso estudar, para adquirir sabedoria é preciso observar.”

Autor: William Arthur Ward

Page 4: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

N ã o e s t a m o s a q u i p a r a p a g a r n e m s o b r e v i v e r , m a s s i m , p a r a v e n c e r ,

a d q u i r i n d o s a b e r .

&

U s e m o s o c o n h e c i m e n t o c o m é t i c a e m o r a l .

Page 5: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 5

Introdução O DB2 (IBM DATABASE 2) é um Sistema Gerenciador de Banco de Dados (DBMS) Relacional, desenvolvido pela IBM, que permite aos usuários acessarem as Bases de Dados relacionais, através de uma liguagem, padrão, chamada SQL (“STRUCTURED QUERY LANGUAGE”). As tabelas do DB2 podem ser acessadas pelo ambiente ON-LINE, através dos ambientes IMS, CICS e TSO e pelo ambiente BATCH, através do JCL (Job Control Langue) e, ainda, podem ser acessadas de forma interativa com o próprio banco de dados, isto é, executar o comando diretamente no DB2 e, tudo isto, simultaneamente. Existe DB2 para os mais variados sistemas operacionais. A IBM fornece, gratuitamente, através do seu site, versões atualizadas para serem usadas.

DB2 é um Banco de dados relacional com a finalidade de tornar mais eficiente a manipulação dos dados que estão armazenados nas tabelas; fornecendo maior Independência dos dados, facilidade na sua utilização e maior segurança de acesso e na integridade dos seus dados. No DB2, os dados são armazenados em tabelas que só podem ser criadas e acessadas através de comandos específicos.

História

A primeira versão da linguagem SQL (Structured Query English Language) surgiu, em 1974, nos laboratórios da IBM (Califórnia). Entre 1976 e 1977, ela foi revisada e ampliada, tendo, então, o seu nome alterado para SQL. Devido ao sucesso da nova forma de consulta e manipulação de dados dentro de um ambiente de banco de dados, sua utilização tornou-se cada vez maior. Em 1982, o American National Standard Institute (ANSI) tornou a SQL a linguagem padrão para a manipulação de dados, em ambiente relacional e, desde então, vários Sistemas Gerenciadores de Bancos de Dados (SGBD) utilizam o SQL, como a linguagem padrão para o acesso às bases de dados.

Esta obra

Esta obra tem como objetivo alcançar as pessoas que desejam conhecer o banco de dados e como utilizá-la na linguagem de programação COBOL, especificamente para ambiente Mainframe IBM com ênfase no COBOL Enterprise utilizada em ambientes z/OS e OS/390. Oferece uma base teórica e prática, suficientemente boa, para que o leitor domine a criação, manutenção e utilização em programas COBOL. A abordagem segue uma sequência, de forma que o leitor possa compreender como os dados podem ser incluídos, lidos, alterados, excluídos e listados.e, como cada comando trabalha.

Reflexão

“E conhecereis a verdade e a verdade vos libertará.”

João 8:32

Page 6: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Os comandos são apresentados com a sua sintaxe básica e explicados a partir de pequenos programas apresentados especificamente e criados para esse fim, que podem ser usados para praticar e realizar testes.

Público-Alvo

As informações contidas neste livro podem ser aprendidas e aplicadas por qualquer pessoa que deseje conhecer e programar em COBOL com o Banco de Dados DB2.

Os conceitos, o método estruturado e as lógicas são apresentados numa ordem, como forma de melhorar a compreensão e são acompanhados por figuras para ilustrar e aumentar a clareza das informações. Com a finalidade de reforçar e consolidar o aprendizado, cada comando é apresentado com a sua sintaxe básica e com um exemplo da sua aplicação e uso na programação COBOL.

Pré-Requisitos

Para desenvolver sistemas comerciais em COBOL que utilizem o banco de dados DB2, é necessário conhecer a sua linguagem, a sua sintaxe e as suas regras, mas, para elaborar programas nesta linguagem ou em outra, é preciso ter conhecimento sobre lógica de programação. É somente com a lógica de programação que se conseguem elaborar programas que atendam a algum propósito de negócio, com eficiência.

Para que o leitor possa tirar maior proveito dos conhecimentos apresentados neste livro, é aconselhável que conheça:

✔Lógica de programação estruturada

✔Linguagem COBOL

É aconselhada a leitura do livro de “LÓGICA” do mesmo autor que explica, passo a passo, a construção de algoritmos e de lógicas de programação. E, depois, o livro de COBOL.

Esta obra está aderente ao programa de formação de Especialista em Desenvolvimento de Programação COBOL Mainframe, CMCPDS - Certified Mainframe COBOL Program Development Specialist, fornecido pelo instituto ICPDUG - INTERNATIONAL COBOL PROGRAM DEVELOPER USERS GROUP.

Para mais informações, visite o site www.carloscamposinfo.com, ou entre em contato através do e-mail do autor: [email protected].

Reflexão

“Muitos homens iniciaram uma nova era na sua vida a partir da leitura de um livro”.

Autor: Henry Thoreau

Page 7: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 7

Resenha

Benedito Aparecido Alves

Li este livro e pude comparar com outros da mesma área, e observei a maneira como está organizado o ensino do DB2. Gostei muito da forma simples e objetiva de como os comandos são apresentados. Todos os comandos apresentados são a forma básica de utilizar o DB2 no programa COBOL.

O conteúdo está organizado, de forma que o leitor possa conhecer a linguagem SLQ, e o que é banco de dados relacional. Mostra como criar um banco de dados com massa de testes para os comandos. Os comandos são apresentados com a sua sintaxe, exemplo de utilização e outros ainda que possuem programas para treinar o comando.

O livro de DB2 atingiu o seu objetivo, que é o de apresentar a linguagem de forma prática, de modo a ser fácilmente utilizado pelo programador.

O autor, assim como fez no livro de lógica e de COBOL, tem a preocupação de fornecer um material didático e, ao mesmo, tempo um treinamento com uma metodologia que leva a uma boa formação básica para ser um bom programador, utilizando uma boa lógica com bons princípios de DB2, na linguagem COBOL.

Benedito Aparecido Alves tem mais de 25 anos de experiência, no ambiente de produção Mainframe, atuando no setor financeiro, tais com: Bradesco, Unibanco, Caixa Federal, Boston e IBM. Atualmente, trabalha na Sonda IT como Suporte a Produção (Mainframe).

Page 8: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Página deixada em branco

Page 9: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 9

Formação de especialista COBOL A formação de um desenvolvedor especialista em COBOL Mainframe envolve diversas áreas do conhecimento, necessárias para a atuação que o profissional precisa ter no desempenho da sua atuação. São seis módulos específicos de conhecimento que se completam: Lógica, COBOL, DB2, CICS, JCL e TSO.

A formação completa segue uma sequência, de acordo com um planejamento, para a integração de todos os módulos e, com isso, potencializar a sinergia vinda de cada área de conhecimento. Por exemplo, primeiro se desenvolve o racíocino e se aprende a construir algoritmos e lógicas de programação; depois, se aprende a estrutura de linguagem de programação com os seus comandos e constrói-se programa com base nas lógicas de programação aprendidas. A seguir, aprende-se o banco de dados onde estarão armazenados os dados e, finalmente, aprende-se a estrutura do ambiente online do Mainframe, a forma de programação pseudoconversacional e, o JCL, linguagem de administra a execução de programas batch.

No módulo de LÓGICA, são abordados como se constrói algoritmos e lógicas de programação.

No módulo de COBOL, são vistos toda a teoria e estrutura da linguagem de programação e todos os comandos principais e básicos para desenvolver a grande maioria dos programas.

No módulo de DB2, são abordados a teoria e estrutura básica de um banco de dados e, todos os comandos principais e básicos para desenvolver programas que utilizam o banco de dados DB2 em programas COBOL.

No módulo de CICS, são vistos toda a teoria e estrutura do ambiente, a forma de programação pseudoconversacional e, todos os comandos principais e básicos para desenvolver a grande maioria dos programas online.

No módulo de JCL, são vistos toda a teoria e estrutura da linguagem de programação e todos os comandos principais e básicos para desenvolver a grande maioria das soluções necessárias para a execução dos programas batch.

Page 10: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Metodologia dos cursos

O assunto novo é apresentado ao aluno, através da apresentação de SLIDES animados e coloridos e tiradas as dúvidas sobre o tópico. Para praticar o conhecimento novo, o aluno é solicitado a realizar o exercício, no caso: criar algoritmo ou programa. Após o tempo para criar a primeira solução, é apresentado; via SLIDES animados e coloridos, a solução do exercício, tirando todas as dúvidas possíveis. Para consolidar e poder tirar novas dúvidas do tópico do conhecimento, são solicitados, em média de dois a quatro exercícios na aula. A solução dos exercícios propostos é apresentada, via SLIDES animados e coloridos. E para tentar consagrar o conhecimento, é solicitado, em média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para tentar tirar possíveis dúvidas remanescentes, são reservados os primeiros minutos de cada aula, para tirar dúvidas.

Objetivo do método

Este método tem como objetivo alcançar os mais diversos indivíduos (visual, auditivo ou cinestésico) para que tomem consciência dos conceitos. Todo o método está baseado na indução do raciocínio, para que se crie a lógica necessária. Com isto, a energia necessária gasta com o esforço para criar a lógica é gasta durante o treinamento. Depois de formado, o individuo passa a raciocinar automaticamente com muito menor esforço. Por exemplo, quando houver uma solicitação que seja necessária à criação de duas quebras, uma dentro da outra, o raciocínio vem automaticamente e, à medida que vai elaborando a lógica, o seu formato já vem no padrão aprendido.

Benefícios do método

Os benefícios do método aplicado podem se resumir no seguinte:

Ampliação das possibilidades de aprendizagem

Aumento do desempenho no raciocínio lógico

Acomodação crescente do conhecimento

Consolidação das estruturas lógicas

Facilidade de criar a solução lógica

Apresentar Conceito

Tirar dúvidas

Praticar exercícios

Apresentar Solução

Consolidar Exercícios

Rever conceitos

Page 11: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 1

Certificação para desenvolvedor Mainframe

O instituto ICPDUG (INTERNATIONAL COBOL PROGRAM DEVELOPER USERS GROUP), para valorizar a área de desenvolvimento de sistema, fornece o exame de certificação para desenvolvedor COBOL Mainframe, com o objetivo de identificar o especialista em desenvolvimento de sistemas COBOL Mainframe.

Objetivo da certificação

A certificação vem agregar valor para a empresa, na medida em que vai avaliar o conhecimento para a necessidade específica que o profissional precisa ter, possibilitando a criação de um quadro de profissionais altamente qualificados e nivelados com o objetivo de planejar, definir e criar sistemas e programas com eficiência e qualidade.

E para o profissional, vem para valorizar a sua capacitação, a sua formação, diferenciando-o dos demais profissionais, fornecendo-lhe as credencias de um profissional especialista, aderente com as necessidades de conhecimento específico.

Como é a certificação

O certificado de Especialista em COBOL Mainframe, CMCPDS - Certified Mainframe COBOL Program Development Specialist (Especialista em Desenvolvimento de Programação COBOL Mainframe). O especialista máster recebe o título, após ter obtido todas as certificações para as seguintes especialidades:

LÕGICA - Programação estruturada COBOL - Linguagem de programação DB2 - Sistema Gerenciador de Banco de Dados Relacional CICS - Sistema Gerenciador de ambiente ONLINE JCL - Linguagem de controle Batch

Para mais informações, acesse o site www.icpdug.org.br ou utilize o e-mail [email protected].

Reflexão

“Em algum lugar, algo incrível está esperando para ser descoberto.”

Autor: Carl Seagan

Page 12: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Página deixada em branco

Page 13: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 3

Sumário

Agradecimentos ................................................................................... 3

Introdução .......................................................................................... 5

Resenha ............................................................................................. 7

Formação de especialista COBOL ............................................................... 9

Metodologia dos cursos ..................................................................... 10

Objetivo do método ......................................................................... 10

Benefícios do método ....................................................................... 10

Certificação para desenvolvedor Mainframe ............................................... 11

Objetivo da certificação .................................................................... 11

Como é a certificação ....................................................................... 11

Sumário ........................................................................................... 13

Notação utilizada ............................................................................ 25

Como codificar subparâmetros ............................................................... 27

áreadecomunicação ......................................................................... 27

chavearquivo .................................................................................. 27

chavearquivoalternada ...................................................................... 27

classeorganizaçãonomearquivo ............................................................ 27

expressãoaritmética ......................................................................... 27

inteiro .......................................................................................... 27

índice .......................................................................................... 28

literal .......................................................................................... 28

mnemônico .................................................................................... 28

nível ............................................................................................ 28

nome ........................................................................................... 28

nomearquivo .................................................................................. 28

nomeáreadedados ........................................................................... 28

Page 14: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

nomecampo ................................................................................... 28

nomeparágrafoinício ........................................................................ 29

nomeparágrafofim ........................................................................... 29

nomeredefinido .............................................................................. 29

nomefilestatus ................................................................................ 29

nomeindice .................................................................................... 29

nomeiteminicial .............................................................................. 29

nomeitemfinal ................................................................................ 29

nomeregistro .................................................................................. 30

posição ......................................................................................... 30

senhaarquivo .................................................................................. 30

sentença ....................................................................................... 30

quantidade .................................................................................... 30

tamanho ....................................................................................... 30

tipo ............................................................................................. 30

tipodeacesso .................................................................................. 31

tipodeorganização ........................................................................... 31

valor ............................................................................................ 31

Introdução ao banco de dados ................................................................ 33

Banco de dados ............................................................................... 33

Modelo relacional ............................................................................ 34

Características de um DBMS Relacional .................................................. 34

Tabela .......................................................................................... 35

Coluna .......................................................................................... 35

Linha ........................................................................................... 35

Índice .......................................................................................... 35

VIEW ............................................................................................ 36

ALIAS ........................................................................................... 36

Chaves de uma tabela ....................................................................... 36

Chave primária ............................................................................ 36

Chave estrangeira ........................................................................ 36

Linguagem SQL ............................................................................... 37

Page 15: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 5

Programa SQL - SCRIPT .................................................................. 37

Integridade no banco de dados ............................................................ 38

Integridade semântica ................................................................... 38

Integridade de domínio .................................................................. 39

Integridade de entidade ................................................................. 39

Integridade referencial .................................................................. 39

Questionário .................................................................................. 41

DATA DEFINITION LANGUAGE .................................................................. 43

Comandos DDL ................................................................................ 43

Comando DDL – CREATE ..................................................................... 44

Comando CREATE STOGROUP .............................................................. 44

Sintaxe do comando CREATE STOGROUP ............................................. 44

Comando CREATE DATABASE ............................................................... 45

Sintaxe do comando CREATE DATABASE .............................................. 45

Cláusula BUFFERPOOL ................................................................... 45

Cláusula STOGROUP ...................................................................... 45

Cláusula CCSID ............................................................................ 45

Comando CREATE TABLESPACE ............................................................ 46

Sintaxe do comando CREATE TABLESPACE ........................................... 46

Cláusula USING ............................................................................ 46

Comando CREATE TABLE .................................................................... 47

Sintaxe do comando CREATE TABLE ................................................... 47

Cláusula NOT NULL ....................................................................... 47

Cláusula NOT NULL WITH DEFAULT .................................................... 47

Exemplificação do comando CREATE TABLE ......................................... 47

Comando CREATE INDEX .................................................................... 48

Sintaxe do comando CREATE INDEX ................................................... 48

Exemplificação do comando CREATE INDEX ......................................... 48

Comando CREATE VIEW ..................................................................... 49

Sintaxe do comando CREATE VIEW .................................................... 49

Cláusula AS ................................................................................ 49

Exemplificação do comando CREATE VIEW........................................... 49

Page 16: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Comando DDL - ALTER ...................................................................... 50

Comando ALTER STOGROUP ................................................................ 50

Sintaxe do comando ALTER STOGROUP ............................................... 50

Cláusula ADD VOLUMES .................................................................. 50

Cláusula REMOVE VOLUMES ............................................................. 50

Exemplificação do comando ALTER STOGROUP ..................................... 50

Comando ALTER DATABASE ................................................................ 51

Sintaxe do comando ALTER DATABASE ................................................ 51

Comando ALTER TABLESPACE .............................................................. 51

Sintaxe do comando ALTER TABLESPACE ............................................. 51

Exemplificação do comando ALTER TABLESPACE ................................... 51

Comando ALTER TABLE ..................................................................... 52

Sintaxe do comando ALTER TABLE..................................................... 52

Exemplificação do comando ALTER TABLE ........................................... 52

Comando DDL - DROP ....................................................................... 53

Comando DROP ............................................................................... 53

Sintaxe do comando DROP .............................................................. 53

Exemplificação do comando DROP - DATABASE ..................................... 53

Exemplificação do comando DROP - TABLE .......................................... 53

Exemplificação do comando DROP - INDEX .......................................... 53

DATA CONTROL LANGUAGE .................................................................... 55

Comandos – DCL .............................................................................. 55

Comandos de privilégios .................................................................... 55

Comandos de efetivação .................................................................... 55

Comando GRANT ............................................................................. 56

Sintaxe Geral do comando GRANT ..................................................... 56

lista-de-privilégios ........................................................................ 56

nome-do-objeto ........................................................................... 56

Cláusula TO ................................................................................ 56

Cláusula ON DATABASE .................................................................. 57

Cláusula ON TABLE ....................................................................... 58

Cláusula WITH GRANT OPTION ......................................................... 58

Page 17: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 7

Comando REVOKE ............................................................................ 59

Sintaxe Geral do comando REVOKE .................................................... 59

nome-do-objeto ........................................................................... 59

Cláusula ON DATABASE .................................................................. 60

Cláusula ON TABLE ....................................................................... 60

Comando COMMIT ............................................................................ 61

Sintaxe do comando COMMIT ........................................................... 61

Comando ROLLBACK ......................................................................... 62

Sintaxe do comando ROLLBACK ........................................................ 62

Introdução ao DB2 ............................................................................... 63

Ambiente DB2................................................................................. 64

Estrutura do DB2 ............................................................................. 64

STORAGE GROUP .......................................................................... 65

TABLESPACE ............................................................................... 65

A hierarquia dos objetos DB2 .............................................................. 66

Preparação do programa de aplicação ................................................... 67

Passos para preparar um programa para execução ................................. 68

Execução do programa de aplicação ..................................................... 69

Executar programa no ambiente ONLINE ............................................. 70

Executar programa no ambiente BATCH .............................................. 70

Comandos DB2 ................................................................................ 71

Categorias de comandos ................................................................. 71

Manipulação de Dados ................................................................... 71

Cursor ....................................................................................... 71

Funções de Colunas ...................................................................... 71

Funções Escalares ........................................................................ 71

Como utilizar os comandos DB2 no COBOL .............................................. 72

Formato de utilização do comando dentro do COBOL ............................. 72

Comunicação de dados com o DB2 ........................................................ 72

Formatos no DB2 ............................................................................. 72

Formato de DATE no DB2 ................................................................ 72

Formato de TIME no DB2 ................................................................ 73

Page 18: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Formato de TIMESTAMP no DB2 ........................................................ 73

Variável HOST ................................................................................ 73

Características da variável HOST ...................................................... 74

Formatos compatíveis entre COBOL e DB2 ........................................... 74

Tamanho máximo de coluna por tipo ................................................. 75

NULL (Nulo) ................................................................................... 75

Área de comunicação de erro do DB2 .................................................... 75

SQLCA (SQL Communication Área) ..................................................... 75

Formato de utilização do SQLCA dentro do COBOL ................................. 75

Estrutura da SQLCA dentro do COBOL ................................................ 76

Área de comunicação do DB2 com o programa ......................................... 77

DCLGEN ..................................................................................... 77

Como incluir DCLGEN no programa .................................................... 77

Questionário .................................................................................. 78

Massa de teste para os comandos DB2 ....................................................... 79

MER - Modelo de Entidade Relacional para testes ..................................... 80

Definição das tabelas do MER .......................................................... 80

Massa de testes para as tabelas ........................................................... 80

Scripts para criar as tabelas ............................................................... 81

Programa DB2 para criar a tabela de cliente ........................................ 81

Programa DB2 para criar a tabela de saldo .......................................... 81

DCLGEN das tabelas ......................................................................... 82

DCLGEN da Tabela de Cliente .......................................................... 82

DCLGEN da Tabela de Saldo ............................................................ 82

Scripts para incluir dados nas tabelas .................................................... 83

Programa DB2 para incluir na Tabela de Cliente ................................... 83

Programa DB2 para incluir na Tabela de Saldo ...................................... 84

Comandos para Manipulação de Dados ...................................................... 85

Comando INSERT (Incluir) .................................................................. 86

Sintaxe do comando INSERT ............................................................ 86

Cláusula INTO ............................................................................. 86

Cláusula VALUES .......................................................................... 86

Page 19: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 9

Como Incluir linha com coluna com nulo ............................................. 86

Exemplificação do comando INSERT................................................... 87

INSERT de múltiplas linhas .............................................................. 88

Lógica do programa do comando INSERT ............................................. 89

Programa exemplo do comando INSERT .............................................. 90

Comando SELECT (Ler) ...................................................................... 92

Sintaxe do comando SELECT ............................................................ 92

Cláusula ALL ............................................................................... 92

Cláusula DISTINCT ........................................................................ 92

Cláusula INTO ............................................................................. 93

Cláusula FROM ............................................................................. 93

Cláusula WHERE ........................................................................... 93

Cláusula GROUP BY ....................................................................... 94

Cláusula HAVING .......................................................................... 94

Cláusula ORDER BY ....................................................................... 95

Operador BETWEEN ...................................................................... 95

Operador IN ................................................................................ 96

Operador AS ............................................................................... 96

Como tratar nulo no SELECT (NULL)................................................... 97

Exemplificação do comando SELECT - Básico ........................................ 97

Lógica do programa do comando SELECT ............................................ 98

Programa exemplo do comando SELECT .............................................. 99

Subquery (subselect) .................................................................... 101

Cláusula JOIN ............................................................................. 102

Cláusula UNION .......................................................................... 103

Comando UPDATE (Alterar) ............................................................... 104

Sintaxe do comando UPDATE .......................................................... 104

Cláusula SET .............................................................................. 104

Cláusula WHERE .......................................................................... 104

Cláusula CURRENT OF ................................................................... 104

Exemplificação do comando UPDATE - Básico ...................................... 104

Lógica do programa do comando UPDATE ........................................... 105

Page 20: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Programa exemplo do comando UPDATE ............................................ 106

Comando DELETE (Excluir) ................................................................ 108

Sintaxe do comando DELETE ........................................................... 108

Cláusula FROM ............................................................................ 108

Cláusula WHERE .......................................................................... 108

Cláusula CURRENT OF ................................................................... 108

Exemplificação do comando DELETE - Básico ...................................... 108

Lógica do programa do comando DELETE ........................................... 109

Programa exemplo do comando DELETE............................................. 110

Questionário ................................................................................. 113

Comandos para cursor (BROWSE) ............................................................ 115

Comando DECLARE (Declarar) ............................................................ 116

Sintaxe do comando DECLARE ......................................................... 116

Cláusula WITH HOLD .................................................................... 116

Exemplificação do comando DECLARE ............................................... 116

Como excluir ou alterar dentro do cursor ........................................... 117

Comando OPEN (Abrir) ..................................................................... 118

Sintaxe do comando OPEN ............................................................. 118

Exemplificação do comando OPEN ................................................... 118

Comando FETCH (Ler o próximo)......................................................... 118

Sintaxe do comando FETCH ............................................................ 118

Cláusula INTO ............................................................................ 118

Exemplificação do comando FETCH .................................................. 119

Comando CLOSE (Fechar) .................................................................. 119

Sintaxe do comando CLOSE ............................................................ 119

Exemplificação do comando CLOSE .................................................. 119

Exemplificação da utilização do cursor ................................................. 120

Lógica do programa para montar CURSOR .......................................... 121

Programa exemplo para CURSOR ..................................................... 123

Como atualizar linhas via cursor ......................................................... 125

Procedimentos para atualizar linha via cursor ..................................... 125

Sintaxe do comando DECLARE com FOR UPDATE OF .............................. 125

Page 21: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 1

Exemplificação do DECLARE para FOR UPDATE OF com colunas ................ 126

Exemplificação do DECLARE para FOR UPDATE OF sem colunas ................ 126

Exemplificação do DELETE com CURRENT OF ...................................... 126

Exemplificação do UPDATE com CURRENT OF ...................................... 126

Questionário ................................................................................. 127

Funções de Colunas ............................................................................ 129

Função AVG .................................................................................. 130

Sintaxe da função AVG.................................................................. 130

Exemplificação função AVG ............................................................ 131

Programa exemplo da função AVG ................................................... 131

Função COUNT ............................................................................... 133

Sintaxe da função COUNT .............................................................. 133

Exemplificação função COUNT ........................................................ 133

Programa exemplo da função COUNT ................................................ 134

Função MAX .................................................................................. 136

Sintaxe da função MAX.................................................................. 136

Exemplificação função MAX ............................................................ 137

Exemplificação função MAX com cláusula GROUP BY ............................. 137

Programa exemplo da função MAX ................................................... 137

Função MIN ................................................................................... 139

Sintaxe da função MIN .................................................................. 139

Exemplificação função MIN ............................................................ 140

Exemplificação função MIN com cláusula GROUP BY .............................. 140

Programa exemplo da função MIN .................................................... 140

Função SUM .................................................................................. 142

Sintaxe da função SUM .................................................................. 142

Exemplificação função SUM ............................................................ 143

Programa exemplo da função SUN .................................................... 143

Questionário ................................................................................. 145

Funções Escalares .............................................................................. 147

Funções STRING ............................................................................. 149

Função SUBSTR ........................................................................... 149

Page 22: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Função LENGTH .......................................................................... 150

Função VALUE ............................................................................ 151

Funções de conversão de formato ....................................................... 152

Função DECIMAL ......................................................................... 152

Função INTEGER ......................................................................... 153

Função DIGITS ............................................................................ 154

Função CHAR ............................................................................. 155

Funções de tratamento de data e hora ................................................. 156

Função DATE .............................................................................. 156

Função YEAR .............................................................................. 157

Função MONTH ........................................................................... 157

Função DAY ............................................................................... 158

Função CURRENT DATE ................................................................. 159

Função CURRENT TIME .................................................................. 160

Função CURRENT TIMESTAMP .......................................................... 160

Como efetuar operações com data ...................................................... 161

Regras de aritmética para data e hora .............................................. 161

Subtraindo datas ......................................................................... 162

Aumentando e diminuindo datas...................................................... 164

Questionário ................................................................................. 167

Boas práticas .................................................................................... 169

Introdução .................................................................................... 169

Escreva o melhor código SQL ............................................................. 170

Escrever QUERY estruturada ........................................................... 170

Especificar somente colunas necessárias ............................................ 171

Limitar o número de linhas recuperadas ............................................ 171

Especificar a sequência correta das colunas da chave ............................ 173

Quando desejar alterar dados num cursor (FOR UPDATE) ........................ 173

Evitar conversão de dados numéricos ................................................ 175

Considerações sobre uso de tipo de dados .......................................... 176

Minimizar a concorrência .................................................................. 177

Executar INSERT, UPDATE e DELETE ao final da UOW ............................ 177

Page 23: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 3

Implementar o RESTART ................................................................ 177

Emitir a declaração COMMIT ........................................................... 178

Orientações na criação das tabelas ...................................................... 179

Orientações para o uso no programa .................................................... 179

Orientações detalhadas sobre o uso de comandos .................................... 181

Orientações para implantar o processo RESTART ..................................... 184

Definir o intervalo de emitir o COMMIT .............................................. 184

Identificar a chave de identificação dos registros ................................. 184

Definir os dados para controlar o reprocessamento ............................... 185

Garantir integridade dos dados na implantação ................................... 185

Verificar se a execução é um reprocessamento .................................... 185

Emitir o COMMIT e manter os dados do RESTART .................................. 186

Emitir o ROLLBACK em caso de erro ................................................. 186

Fechar o processamento normal ...................................................... 186

Anexos ............................................................................................ 187

SQLCODE ...................................................................................... 187

Definições e termos ........................................................................ 188

Abreviaturas ................................................................................. 190

Respostas ........................................................................................ 190

Respostas dos questionários............................................................... 190

Bibliografia ...................................................................................... 191

Outras obras do autor ......................................................................... 193

Page 24: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Página deixada em branco

Page 25: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 5

Notação utilizada

[ ] Opcional

{ } Optar por um, sendo que as opções estão separadas pelo símbolo “|” que significa “ou”

< > Substituir por um nome

| Operador lógico "OU". Significa que pode ser substituído por um dos parâmetros.

... Existem procedimentos não mencionados

....|....1....|....2....|....3....|....4....|....5....|....6....|....7..

A linha acima representa a régua do exemplo em questão para ajudar a mostrar a posição do caracteres, muito importante para a linguagem COBOL.

Reflexão

“Só é lutador quem sabe lutar consigo mesmo.”

Autor: Carlos Drummond de Andrade

Page 26: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Página deixada em branco

Page 27: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 7

Como codificar subparâmetros

Muitos comandos e parâmetros necessitam de valores para o seu funcionamento, chamados de subparâmetros. Por exemplo, o parâmetro DATASET possui a seguinte sintaxe: READ ARQCLI INTO nomeáreadedados, onde nomeáreadedados representa o nome da área que vai receber os dados do registro lido.

áreadecomunicação

Representa uma área da LINKAGE SECTION. Pode ser o nome de uma variável alfanumérica ou numérica ou de um item de grupo.

chavearquivo

O nome do item elementar ou item de grupo que é a chave primária do arquivo. Pode ser o nome de uma variável alfanumérica ou numérica ou de um item de grupo.

chavearquivoalternada

O nome do item elementar ou item de grupo utilizado como índice alternativo à chave primária. Pode ser o nome de uma variável alfanumérica ou numérica ou de um item de grupo.

classeorganizaçãonomearquivo

Representa o nome externo do arquivo pelo qual é reconhecido pelo sistema operacional. O nome externo será utilizado no comando DD de JCL como DDNAME quando da execução do programa e pode ser formado por palavra com até oito (8) caracteres. Este nome não pode ser uma palavra reservada do JCL (SYSIN, SYSOUT) e não pode estar entre aspas ou em variável.

expressãoaritmética

Representa uma expressão aritmética, como as utilizadas na matemática.

inteiro

Representa um número inteiro.

Page 28: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

índice

Número inteiro que representa a posição do elemento dentro de uma tabela.

literal

Literal é uma constante, um valor fixo, inteiro, passado como parâmetro para o comando. As constantes podem ser classificadas em: numérica, alfanumérica e lógica. A constante alfanumérica também é conhecida como STRING e deve ser definida entre aspas.

mnemônico

Identificar uma saída específica, o mesmo deve estar definido no programa a ser executado, na SPECIAL-NAMES com a cláusula PRINTER IS <mnemônico>.

nível

O “nível” representa o nível do item de dado ou de grupo em relação a outro item e segue as considerações colocadas no tópico “Número de nível” que fala sobre o nível do item.

nome

O “nome” representa o nome do item (variável, campo) e segue as considerações colocadas no tópico “Regras para formação de nomes e literais” que fala sobre a criação de nomes.

nomearquivo

Representa o nome com que o arquivo deverá ser identificado no programa.

Quando utilizado na cláusula SELECT, o nome pode ser formado por palavra com até 30 caracteres e não pode estar entre aspas ou em variável.

nomeáreadedados

O nome da área de dados identificada por uma variável definida na WORKING-STORAGE.

nomecampo

Representa o nome de um campo, e sua criação, segue as regras de criação de um item elementar.

Quando utilizado pelo parâmetro DEPENDING ON, deve ser definido na WORKING-STORAGE como inteiro, positivo e com o formato de USAGE COMP. Exemplo:

01 QT-VDR PIC 9(2) USAGE COMP VALUE ZEROS.

Quando utilizado pelos parâmetros: ASCENDING KEY e DESCENDING KEY, deve ter a sua definição segundo as regras de criação de um item elementar.

Page 29: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 9

nomeparágrafoinício

Nome do parágrafo por onde o comando PERFORM vai iniciar a sua execução.

nomeparágrafofim

Nome do parágrafo até onde o comando PERFORM vai a sua execução finalizar.

nomeredefinido

Representa o nome da nova estrutura de dados (variável, campo) e segue as considerações colocadas no tópico “Regras para formação de nomes e literais” que fala sobre a criação de nomes.

nomefilestatus

Representa o nome da variável ou, item de grupo, que recebe o código de retorno proveniente de um acesso ao arquivo. O código possui tamanho de dois dígitos onde cada um deles possui seu significado. Exemplo de utilização:

01 WS-FILE-STATUS PIC X(02) VALUE SPACES.

01 FILLER REDEFINES WS-FILE-STATUS.

03 WS-FS-CODE -1 PIC 9(01).

03 WS-FS-CODE -2 PIC 9(01) COMP.

nomeindice

Representa o nome de um campo utilizado como índice da tabela indexada através o parâmetro INDEXED BY. O campo não pode ser definido no programa, o compilador o cria e assume como USAGE COMP.

nomeiteminicial

Representa o nome da nova estrutura de dados (variável, campo) e segue as considerações colocadas no tópico “Regras para formação de nomes e literais” que fala sobre a criação de nomes.

nomeitemfinal

Representa o nome da nova estrutura de dados (variável, campo) e segue as considerações colocadas no tópico “Regras para formação de nomes e literais” que fala sobre a criação de nomes.

Page 30: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

nomeregistro

Representa o nome com que o registro do arquivo deverá ser identificado no programa para leitura e gravação.

Quando utilizado na cláusula FD, o nome pode ser formado por palavra com até 30 caracteres e não pode estar entre aspas ou em variável.

posição

Número inteiro que representa a posição.

senhaarquivo

A senha do arquivo deve ser uma variável definida na WORKING-STORAGE e poder ser dos tipos: alfabético ou alfanumérico.

A senha é um conjunto único de caracteres que um programa, operador de computador, ou o usuário deve fornecer para atender aos requisitos de segurança antes de obter acesso aos dados.

sentença

Sentença, representa um ou mais nomes de comandos ou parágrafos que devem ser executados.

quantidade

Número inteiro que representa.

tamanho

Representa o tamanho do campo que vai receber os dados e segue as considerações colocadas no tópico “Tamanho do dado”.

tipo

Representa o tipo de dados que o campo vai receber e segue os tipos definidos no tópico “Tipo do dado”.

Page 31: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3 1

tipodeacesso

Indica o tipo de acesso aos dados do arquivo, possui e depende do tipo de organização. O tipo de acesso do arquivo pode ser um dos tipos, conforme definido no tópico “Tipos de acesso” do livro de lógica. Pode ser uma das seguintes:

SEQUENTIAL

RANDOM

DYNAMIC

tipodeorganização

Indica o tipo de organização de dados que o arquivo possui. A organização do arquivo pode ser um dos tipos, conforme definido no tópico “Estruturas de armazenamento de dados” do livro de lógica. Pode ser uma das seguintes:

SEQUENTIAL

LINE SEQUENTIAL

INDEXED

RELATIVE

valor

O “valor” representa um valor específico que pode ser atribuído ao campo no momento da sua definição, isto é, valor inicial da variável. O valor pode assumir um valor segundo o tipo do dado. Se o dado for do tipo alfanumérico ou caractere, então o valor deve estar entre parênteses. Por exemplo:

Valor numérico: 1962

Valor alfanumérico ou caractere: “VANESSA”

Reflexão

“Só é livre o homem que sabe dar ordens a si mesmo.”

Autor: Pitágoras

Page 32: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Página deixada em branco

Page 33: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3 3

Introdução ao banco de dados

Este capítulo tem como finalidade apresentar os conceitos de banco de dados e o seu modelo relacional para contextualizar o banco de dados DB2. As informações apresentadas são uma compilação do que se entende como informações básicas, necessárias para o entendimento do funcionamento de um banco de dados.

Banco de dados

Banco de dados é um conjunto de tabelas (arquivos) de uma forma estruturada para armazenar informações, com a finalidade de tornar mais eficiente a sua manipulação. No ambiente banco de dados, existem termos próprios que são importantes conhecer e

Banco de dados Convencional

Tabela Arquivo

Linha Registro

Coluna Campo

1

I n d i c e 1

TABLESPACE1

TABELA1

TABLESPACE2

TABELA2

I n d i c e 2 View

STORAGE GROUP A STORAGE GROUP B

Page 34: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Modelo relacional

Para manipular os dados de forma mais eficiente num banco de dados relacional, existe um sistema (software) chamado DATA BASE MANAGEMENT SYSTEM (DBMS), traduzindo, Sistema Gerenciador de Banco de Dados (SGBD). O modelo relacional possui características como:

Independência dos dados.

Acesso fácil aos dados, através de uma liguagem específica.

Acesso interativo.

Acesso via programas de aplicação.

Fácil manutenção das bases de dados.

Maior autonomia ao usuário.

Aumento de produtividade.

Maior flexibilidade no tratamento dos dados.

Aumento da segurança e integridade das informações.

Características de um DBMS Relacional

Um modelo relacional possui características particulares que lhe garantem notoriedade entre os modelos de armazenamento de dados. Principais características:

Estrutura tabular de dados.

Os dados são armazenados em tabelas.

Operadores de tabelas (DDL, DML e DCL).

Deve possuir comandos que consigam manipular dados em tabelas.

Uniformidade e integridade dos dados.

Possuir mecanismos que mantêm a integridade dos dados que são adicionados ou modificados.

Deve também ter mecanismos capazes de forçar uma uniformização dos dados que nela são armazenados.

Independência dos dados.

A lógica das aplicações não deve se preocupar com a estrutura de armazenamento e com a teoria de acesso aos dados.

Page 35: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3 5

Tabela

Tabela é uma estrutura fundamental em um banco de dados relacional. É na tabela que ficam armazenados os dados que são agrupados por categorias de interesse do negócio. A tabela é organizada por linhas (registros) e colunas (campos). Uma tabela possui um número fixo de colunas e pode possuir um ilimitado número de linhas.

Coluna

Coluna é a menor unidade de informação, também conhecida como atributo. Por exemplo: na tabela de clientes, existe uma coluna chamada “NOME” que armazena o nome do cliente. Uma coluna contém o mesmo tipo de dado (por exemplo: numérico ou alfanumérico) e tamanho em todas as linhas e possui um nome único na tabela.

Linha

Linha é uma coleção de dados sobre uma pessoa, um lugar, um evento ou algum outro item. Uma linha (registro) é formada por várias colunas. Uma linha é a menor unidade para inserção e remoção numa tabela e pode conter colunas com diferentes tipos de dados, e não possui nome.

Índice

Sua criação é basicamente por questão de performance.

Pode ser formado por mais de uma coluna.

Estes são armazenados separadamente das Tabelas e o usuário não tem acesso a eles.

Quando o índice é único, ele força a unicidade dos dados, através dos valores de uma ou mais colunas escolhidas como chave única.

Tabela de Cliente

Código Nome Endereço Cidade

2001 ROBERTO RUA A SÃO PAULO

2005 VANESSA RUA B RIO DE JANEIRO

2019 SUSETE RUA C VALPAÇOS

Tabela de Cliente

Código Nome Endereço Cidade

2001 ROBERTO RUA A SÃO PAULO

2005 VANESSA RUA B RIO DE JANEIRO

2019 SUSETE RUA C VALPAÇOS

Tabela de Cliente

Código Nome Endereço Cidade

2001 ROBERTO RUA A SÃO PAULO

2005 VANESSA RUA B RIO DE JANEIRO

2019 SUSETE RUA C VALPAÇOS

Page 36: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

VIEW

É uma visão lógica. Permite a representação de dados de uma ou mais tabelas como sendo uma outra tabela, onde podemos inserir determinadas linhas e colunas de uma ou mais tabelas. Sua utilização em nada difere da de uma tabela.

Conforme o caso, uma VIEW não pode ser utilizada para inserção de linhas.

ALIAS

ALIAS é um nome alternativo (Apelido) que se dá a uma tabela ou VIEW. Um ALIAS é de uso compartilhado. É utilizado mais como apelido para uma tabela remota e é válido a nível de um subsistema DB2.

Chaves de uma tabela

Chave primária

A chave primária serve para identificar uma única linha de uma tabela. Pode ser composta por uma ou mais colunas. É o índice principal para uma tabela. Embora não obrigatória, a chave primária é altamente recomendada, porque aumenta a velocidade de execução da recuperação de dados. A chave primária não pode possuir valores repetidos, não pode ser atualizada nem possuir um valor NULO.

Chave estrangeira

A chave estrangeira numa tabela é uma chave primária em outra tabela. Serve para criar um relacionamento entre duas tabelas. Pode ser composta por uma ou mais colunas.

Reflexão

“A pessoa sábia está sempre ansiosa e pronta para aprender.”

Autor: Provérbios 18:15

Page 37: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3 7

Linguagem SQL

A linguagem SQL (STRUCTURED QUERY LANGUAGE) serve para definir e manipular dados das tabelas. É uma linguagem de ação interativa com os dados do banco de dados e é utilizada por vários Sistemas de Gerenciamento de Banco de Dados (SGBD).

Os comandos SQL terminam com um ponto e vírgula (;).

Para que o comando possa ter a sua ação efetuada, deve-se executar o comando COMMIT.

É formada por três grupos de comandos. São eles:

DDL (DATA DEFINITION LANGUAGE). O grupo Data Definition Language possui comandos que são utilizados para criação, alteração e eliminação das tabelas. Podem ser utilizados para criar e alterar a estrutura física da tabela.

DCL (DATA CONTROL LANGUAGE). O grupo Data Control Language possui comandos que são utilizados para criação, alteração e eliminação da segurança dos acessos às tabelas.

DML (DATA MANIPULATION LANGUAGE). O grupo Data Manipulation Language possui comandos que são utilizados para efetuar a manipulação dos dados nas tabelas. Podem ser utilizados para efetuar consultas e manutenções dos dados.

Programa SQL - SCRIPT

SCRIPT é um programa com comandos SQL. Antes de executar um script, é preciso realizar a conexão com o banco de dados, através do comando CONNECT.

Reflexão

“As riquezas e os bens podem ser herdados, mas os sentimentos de respeito precisam ser aprendidos.”

Autor: Nancy Van Pelt em filhos vencedores

SELECT

UPDATE

DELETE

INSERT

CREATE

ALTER

DROP

GRANT

REVOKE

COMMIT

ROLLBACK

DML DDL DCL

SQL

STRUCTURED QUERY LANGUAGE

Page 38: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Integridade no banco de dados

Os comandos SQL; INSERT, DELETE e UPDATE modificam as informações em um banco de dados existente e, toda vez que os dados são alterados, existe a possibilidade que a integridade lógica possa ser afetada.

Por exemplo: A inclusão de um produto inexistente em um pedido de cliente. E, ainda, um cliente pode ser eliminado, mesmo tendo pedidos pendentes em seu nome. Em ambos os casos, houve perda da integridade das informações.

Quando bem definido um banco de dados, provavelmente, estes quatro conceitos de integridade serão aplicados:

Integridade semântica: O dado de uma coluna sempre será do tipo de dado, definido na criação da coluna.

Integridade de domínio: Domínio é um conjunto de valores previamente definido, no qual uma coluna só poderá conter valores pertencentes a esse domínio.

Integridade de entidade: Cada linha de uma tabela possui um indicador que garanta a unicidade da mesma.

Integridade referencial: Os relacionamentos lógicos entre as entidades serão forçados pelos SGBD.

Integridade semântica

O dado de uma coluna sempre será do tipo de dado definido na criação da coluna.

A integridade semântica garante que o dado inserido em uma linha da tabela tenha um valor válido. Para que este valor possa ser válido, deve ser do mesmo tipo de dados, definido na especificação da coluna.

Por exemplo: Um atributo de uma determinada entidade definido como numérico, só conterá dados relativos a números, ou um atributo definido como DATA, só conterá dados relativos a DATA. É a certeza de que no campo DATA_DE_ENTREGA só terá datas válidas. Caso um SGBD permita a inclusão de um outro tipo de dado diferente do definido, a integridade semântica será violada.

A integridade semântica em um SGBD é aplicada com a utilização de constraints (termo em inglês).

Page 39: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3 9

Integridade de domínio

Neste tipo de integridade, as validações ocorrem em cada coluna de nossa tabela (ou entidade), do tipo: Se um campo deve aceitar valores NULL ou apenas uma faixa de valores. Por exemplo: Uma tabela possui a coluna “Sexo”, que só deve aceitar valores do tipo M ou F e, independente do programa da aplicação, não deverá aceitar outros valores.

Integridade de entidade

Toda entidade tem um identificador único para cada linha da tabela. Este identificador é composto de uma ou mais colunas; é chamado de chave primária da tabela.

Integridade referencial

São regras de inserção, exclusão e atualização, definidas no próprio modelo de entidade relacional (MER). A Integridade referencial garante que qualquer valor da chave estrangeira possui um valor correspondente na chave primária à qual está associada; é implementada no DB2 via comandos DDL (Instruções de definição de objetos da linguagem SQL). A Integridade referencial é executada na inclusão ou alteração de linhas da tabela e obedece às seguintes regras:

Uma chave primária tem valor único e não nulo.

Uma chave estrangeira é nula ou tem valor correspondente na chave primária.

Tabela de Funcionários Tabela de Departamentos

MATR NOME DEPTO CDEPTO NDEPTO

491 MARIA D01 D01 VENDAS

003 CARLOS D02 D02 ESTOQUE

Chave

Estrangeira Integridade

referencial Chave

Primária

Page 40: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

Tipos de integridade referencial

Cascade (em cascata): Ao excluir pedido, excluir itens do pedido correspondente.

Restrict (restrito): Ao excluir fornecedor, não o excluir, caso exista pedido para o mesmo.

Set Null (Preencher com nulos): Ao excluir fornecedor, inserir nulo na respectiva coluna dos pedidos correspondentes.

Reflexão

“Há pessoas que transformam o SOL numa simples mancha amarela, mas há aquelas que fazem de uma simples mancha amarela o próprio sol.”

Autor: Pablo Picasso

Page 41: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

D B 2

w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 4 1

Questionário

Introdução ao banco de dados

1. Assinale a alternativa que apresenta corretamente a correspondência entre a terminologia convencional e a utilizada no banco de dados.

A. X-1, Y-3, Z-2

B. X-3, Y-1, Z-2

C. X-3, Y-2, Z-1

D. X-2, Y-3, Z-1

2. O que é um banco de dados?

A. São coleções de informações que se relacionam de uma forma não estruturada para armazenar dados, com a finalidade de tornar mais eficiente a sua manipulação.

B. É um conjunto de tabelas de uma forma estruturada para armazenar informações, com a finalidade de tornar mais eficiente a sua manipulação.

C. É um conjunto de tabelas de uma forma estruturada para armazenar informações, sem se preocupar com eficiência nem com a estrutura física.

D. É um conjunto de arquivos de uma forma estruturada para armazenar e recuperar informações.

3. Qual é a característica de um banco de dados relacional?

A. Independência dos dados.

B. Acesso fácil aos dados, através de uma linguagem específica.

C. Fácil manutenção das bases de dados.

D. Todas as opções.

4. Em um banco de dados relacional, os dados que são agrupados por categoria de interesse do negócio, chama-se:

A. Tupla.

B. Índice.

C. Tabela.

D. Atributo.

Banco de dados Convencional

x Tabela 1 Registro

y Linha 2 Campo

z Coluna 3 Arquivo

Page 42: IBM DATABASE For COBOL - PerSe · através de uma liguagem, padrão, chamada SQL ... média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para

5. A menor unidade de informação, também conhecida como atributo, é a:

A. Linha.

B. Coluna.

C. Tabela.

D. Nenhuma das opções.

6. Que nome se dá à menor unidade utilizada para inserir, remover dados em uma tabela?

A. VIEW.

B. Chave primária.

C. Linha.

D. Nenhuma das opções.

7. A linguagem SQL é formada por:

A. DDL – Data Definition Language.

B. DML – Data Manipulation Language.

C. DCL – Data Control Language.

D. Todas as opções.

8. Que grupo de comandos SQL é utilizado para efetuar consultas e manipulação dos dados nas tabelas?

A. DDL – DATA DEFINITION LANGUAGE.

B. DML –DATA MANIPULATION LANGUAGE.

C. DCL – DATA CONTROL LANGUAGE.

D. DBA – Data Base Administrator.

9. Que regra de integridade avalia se uma coluna de uma tabela deve aceitar valores NULL ou apenas uma faixa de valores?

A. Semântica. B. Se Entidade. C. De Domínio.

D. Referencial.

10. Que regra de integridade garante a unicidade de um linha em uma tabela?

A. Semântica. B. Se Entidade. C. De Domínio. D. Referencial.