2

Bisbilhotando as bases de dados no Mainframe

#Informática Básica #SQL #Arquitetura de Sistemas
Vagner Bellacosa
Vagner Bellacosa

Uma primeira olhada em Base de Dados Mainframe


Salve jovem padawan, hoje veremos em nosso artigo um pouco sobre Database em Mainframe ou DB para os íntimos, guardem em mente que em informática o poder esteve sempre no controle e utilização de Dados.



O poder dos dados é inestimável, um gestor necessita de informações confiáveis, precisas e disponíveis a qualquer momento para poder tomar decisões de negocio, o mundo empresarial é muito dinâmico e imprevisível.



Um dos grandes desafios dos CPDs, desde os primórdios eram tratar essa informação e deixa-las a disposição dos gestores para auxiliar a tomada de decisão, o mais rápido possível, o mais fiável e segura contra furtos e manipulações indevidas.



A segurança e o controle contra abusos no uso das informações é tema frequente dos noticiários. Veja os grandes problemas de uso indevido de dados pessoais, manipulação das redes sociais e o surgimento de leis contra o mal uso, vide a LGPD em vigor com punição severa as empresas infratoras.



Em artigos anteriores falei sobre a origem do armazenamento de dados, inicialmente em fitas perfuradas, posteriormente cartões perfurados, livros e catálogos, evoluindo as fitas magnéticas chegamos aos cartridge, disquetes e a evolução nao para mais passando aos cd-rom, dvd-rom, blu-ray, chegando aos cartões de memória, vale a pena uma releitura.



Com o surgimento das Redes de Computadores e o avanço rumo a WEB, as unidades físicas de armazenamento perderam espaço para discos virtuais na nuvem, mas algumas informações críticas e sigilosas continuam fora do Cloude Computer.


Como funciona o armazenamento de dados em Mainframe



O princípio de tudo foram os arquivos de texto simples, que evoluíram para os famosos arquivos em formato Generation Data Groups. O arquivo GDG é um grupo de arquivos relacionados a uma base e ordenados por ordem de data de processamento, que podem ser referenciados individualmente ou como um grupo em processamentos batch.



Estes arquivos funcionam armazenando informação sequencialmente em formato texto sem indexação, mas devido a sua posição na fila, auxilia muito os processos batch tendo um valor inestimável no histórico do processo. 



O próximo passo foi a criação dos arquivos VSAM, anacronimo de Virtual Storage Access Method, em linha gerais um arquivo de texto, porem com chave indexada, que permite o acesso aleatório aos dados contidos no arquivo, tornando o processamento mais dinâmico.


Com arquivos indexados podemos dar o próximo salto na evoluçao dos DBs, com o surgimento dos Banco de Dados SQL, inicialmente surgiram o IMS (Information Management Systems) e o ADABAS (Adaptable Database System) da Software AG, que nao tinha acesso via comandos SQL, ambas as linguagens usavam macros e comandos internos para o acesso aos dados em tabelas.


Database pré-sql



Um passo intermediário antes do advento do DB2, foi o IDMS (Integrated Database Management Systems, sistema integrado de gestão de base dados é uma ferramenta, especificada pelo CODASYL para ser o padrão do tratamento de dados, sendo gerado alguns softwares sob esta especificação, sendo o Computer Associates IDMS, o mais famoso e difundindo no mercado.


Com isso chegamos ao estado da arte em armazenamento de dados no Mainframe o DB2 (Database Two) que inovou e foi um dos primeiros bancos de dados a incorporar todas as funcionalidades prevista nas especificações SQL.


Lembrando que todos os arquivos sob a batuta do mainframe, respeitam as regras do app SMF (System Management Facilities), um software que gestiona o acesso a todo tipo de arquivo do Mainframe.


Segurança e restart



Aqui vemos o grande diferencial dos sistemas Z/OS, que é integridade e segurança, pois um sistema mainframe dificilmente cai a 100%, altamente seguro e mesmo após um abend gravíssimo ou IPL, os processos voltam ao ultimo ponto antes da parada.


Nesse ponto irei falar do xerife, cujo o trabalho é proteger a integridade da informação, a segmentação dos dado e a garantia de acesso seguro e com base em função a diversos recursos, estou falando d o IBM Resource Access Control Facility (RACF®). Que protege o mainframe contra ataques hackers e dificulta ao máximo a presença dos vândalos digitais.


Lembrem-se que a tabela de caracteres também é diferente usando o padrão EBCDIC, que cria uma barreira a mais na proteção e bloqueia os menos habilidosos.


ISPF - Interactive System Productivity Facility



Hoje vamos dar uma pequena vista de olhos no ISPF, através de seus inúmeros menus de ferramenta, acessados por via de comando em emuladores de mainframe no formato 3270.


O zowe veio auxiliar esse processo democratizando e facilitando o uso, atraves de plugins para o VS Code e com criação de centenas de horas em video-aula, visando formar uma nova geração de DEVs em Mainframe


Agora sem mais delongas, vamos utilizar na pratica um app IBM Mainframe de consulta a dados. 


QMF Query Management Facility



O QMF é uma interface em linha de comandos, que permite a utilização de querys SQL para consulta e manipulação de dados das base de dados Mainframe, principalmente o Adabas e o DB2.


O QMF é uma ferramenta para pesquisa direta na tabela DB2, utilizada para solicitar via instrução SQL, diretamente a base de dados DB2, trazendo como resultado uma ou N tuplas de dados.  


O resultado das querys podem ser exportados para arquivos sequenciais e utilizados como massa de teste em teste unitários e servindo de ponte entre os ambientes de produção, qualidade e desenvolvimento na execução dos SIT, system intregate testing.


Uma grande ferramenta que permite testes real-time de querys, acompanhamento de execução de jobs batchs e principalmente para avaliar os custos em CPU de uma join.


Inicializando o QMF



Ao seleccionar o QMF, será exibida a tela principal



Para aceder o menu de comandos. Pressione PF6 – Query



Será exibido tela SQL Query destinada a desenvolver querys de pesquisa, neste espaço o utilizador com Grant poderá incluir, excluir e pesquisar dados nas tabelas DB2



No exemplo abaixo temos um comando completo de pesquisa, com joiner em duas tabelas e classificação especial para ordenar os resultados.



Para executarmos a query, deverá ser pressionado PF2 – Run, que executará a query, quando for primeira execução, o aplicativo Spufi informa qual o custo desta pesquisa, recomenda-se cuidado na construção de querys, principalmente com custos elevados (maiores que 6).