Capítulo 1 – Sistema de Gerenciamento de Banco de Dados (SGBD)

“O SGBD permite a definição, construção e manipulação do banco de dados para diversas aplicações”.

Definição do BD:

Envolve a especificação dos tipos de dados a serem armazenados no BD, mais a descrição de cada tipo de dado.

Construção do BD

Processo de armazenar os dados em um meio controlado pelo SGBD.

Manipulação do BD

Execução de operações de consulta e recuperação de dados específicos, além de atualização de dados para refletir, no BD, mudanças no mini-mundo sendo modelado. A manipulação inclui, também, a geração de relatórios a partir dos dados do BD.

Resumo das arquiteturas de SGBDs 

Plataformas centralizadas

Na arquitetura centralizada, existe um computador com grande capacidade de processamento, o qual é o hospedeiro do SGBD e emuladores para os vários aplicativos. Esta arquitetura tem como principal vantagem a de permitir que muitos usuários manipulem grande volume de dados. Sua principal desvantagem está no seu alto custo, pois exige ambiente especial para mainframes e soluções  centralizadas.

Sistemas de Computador Pessoal (PC)

Os computadores pessoais trabalham em sistema stand-alone, ou seja, fazem seus processamentos sozinhos. No começo esse processamento era bastante limitado, porém, com a evolução do hardware, tem-se hoje PCs com grande capacidade de processamento. Eles utilizam o padrão Xbase e quando se trata de SGBDs, funcionam como hospedeiros e terminais. Desta maneira, possuem um único aplicativo a ser executado na máquina. A principal vantagem desta arquitetura é a simplicidade.

Banco de Dados Cliente-Servidor

Na arquitetura Cliente-Servidor, o cliente (front_end) executa as tarefas do aplicativo, ou seja , fornece a interface do usuário (tela, e processamento de entrada e saída). O servidor (back_end) executa as consultas no DBMS e retorna os resultados ao cliente. Apesar de ser uma arquitetura bastante popular, são necessárias soluções sofisticadas de software que possibilitem: o tratamento de transações, as confirmações de transações (commits), desfazer transações (rollbacks), linguagens de consultas (stored procedures) e gatilhos (triggers). A principal vantagem desta arquitetura é a divisão do processamento entre dois sistemas, o que reduz o tráfego de dados na rede.

Banco de Dados Distribuídos (N camadas)

Nesta arquitetura, a informação está distribuída em diversos servidores.  Cada servidor atua como no sistema cliente-servidor, porém as consultas oriundas dos aplicativos são feitas para qualquer servidor indistintamente. Caso a informação solicitada seja mantida por outro servidor ou servidores, o sistema encarrega-se de obter a informação necessária, de maneira transparente para o aplicativo, que passa a atuar consultando a rede, independente de conhecer seus servidores.

Exemplos típicos são as bases de dados corporativas, em que o volume de informação é muito grande e, por isso, deve ser distribuído em diversos servidores. Porém, não é dependente de aspectos lógicos de carga de acesso aos dados, ou base de dados fracamente acopladas, em que uma informação solicitada vai sendo coletada numa propagação da consulta numa cadeia de servidores. A característica básica é a existência de diversos programas aplicativos consultando a rede para acessar os dados necessários, porém, sem o conhecimento explícito de quais servidores dispõem desses dados.

Profissionais e Atividades envolvidas em um SGBD

Administrador da Base de Dados

Em qualquer organização onde muitas pessoas compartilham muitos recursos, existe a necessidade de um administrador chefe para supervisionar e gerenciar estes recursos. Num ambiente de base de dados, o recurso primário é a própria base de dados e os recursos secundários são o próprio SGBD e softwares relacionados.

A administração desses recursos é de responsabilidade do DBA (“Database Administrator”). O DBA é responsável por autorizar acesso à base de dados e coordenar e monitorar seu uso. O DBA é responsável por problemas, tais como, quebra de segurança ou baixo desempenho. Em grandes organizações, o DBA é auxiliado por técnicos. 

Projetistas da Base de Dados

Os projetistas de base de dados têm a responsabilidade de identificar os dados a serem armazenados na Base de Dados e escolher estruturas apropriadas para representar e armazenar tais dados. Estas tarefas são geralmente executadas antes que a base de dados seja utilizada. É responsabilidade destes projetistas obter os requisitos necessários dos futuros usuários da base.

Tipicamente, os projetistas interagem com cada grupo de usuários em potencial e definem visões da base de dados para adequar os requisitos e processamentos de cada grupo. Estas visões são então analisadas e, posteriormente, integradas para que, ao final, o projeto da base de dados ser capaz de dar subsídio aos requisitos de todos os grupos de usuários;                

Analistas de Sistemas e Programadores de Aplicação

Analistas de sistemas determinam os requisitos de usuários finais, especialmente dos usuários comuns, e desenvolvem especificações das transações para atender a estes requisitos;

Programadores de aplicações implementam estas especificações produzindo programas e, então, testam, depuram, documentam e mantêm estes programas.

Analistas e programadores devem estar familiarizados com todas as capacidades fornecidas pelo sgbd para desempenhar estas tarefas.

 

 

                Usuários Finais

Existem profissionais que precisam ter acesso à base de dados para consultar, modificar e gerar relatórios. A base de dados existe para estes usuários.

Existem algumas categorias de usuários finais:

 

                        Usuários Ocasionais

Ocasionalmente fazem acesso à base de dados, mas eles podem necessitar de diferentes informações a cada vez que fazem acesso.

Eles podem usar uma linguagem de consulta sofisticada para especificar suas requisições e são, tipicamente, gerentes de médio ou alto-nível;

                       


 

Usuários Comuns ou Paramétrico

Estes usuários realizam operações padrões de consultas e atualizações, chamadas Transações Permitidas, que foram cuidadosamente programadas e testadas. Estes usuários constantemente realizam recuperações e modificações na base de dados;

                       

Usuários Sofisticados

Incluem engenheiros, analistas de negócios e outros que procuraram familiarizar-se com as facilidades de um SGBD para atender aos seus complexos requisitos;

               

 

Profissionais de Apoio

  • Projetistas e Implementadores de SGBD;
  • Desenvolvedores de Ferramentas;
  • Operadores de Manutenção.

Capítulo 2 – Sistema de Banco de Dados

De acordo com (DATE, 1985), um SBD é dividido em módulos que trate de partes, em separado, cada uma das responsabilidades do sistema geral. Estes componentes fundamentais são:

Gerenciador de Arquivos

Trata da alocação do espaço para armazenamento e das estruturas de dados utilizados para representar a informação armazenada no disco;               

Gerenciador de Banco de Dados

Fornece a interface entre os dados de baixo nível armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema;           

Processador de Consultas

Traduz as consultas escritas em uma linguagem de alto nível para instruções de baixo nível que o gerenciador do banco de dados entende;               

Pré-compilador DML

Converte comandos DML embutidos em um aplicativo para chamadas de procedimento normal na linguagem hospedeira;              

Arquivo de Dados

Armazenam banco de dados por si mesmos;

Dicionário de Dados

É o componente responsável pelo armazenamento dos metadados sobre a estrutura do banco de dados. O dicionário é bastante utilizado.

11.png

Capítulo 3 – Entendendo melhor o Administrador de Dados

  1. É a pessoa ou grupo de pessoas responsável pelo controle geral do sistema de BD no nível técnico.
  2. É denominado DBA ou ABD
  3. Responsabilidades:
  1. Criar o esquema interno do BD
  2. Implantar as regras de segurança e integridade
  3. Definir procedimentos de carga (load), descarga (unload), cópia (backup), restauração (restore) e recuperação (recovery) dos dados
  4. Coordenar o uso do SGBD pelos demais usuários e monitorar o desempenho do banco de dados.

 Atividades de um Administrador de Banco de Dados

A abordagem para elaboração, implementação e manutenção de um banco de dados  envolve as seguintes atividades:

  1. Avaliar o hardware do servidor de banco de dados.
  2. Instalar o software do banco de dados (sql server, oracle etc…..).
  3. Planejar o banco de dados e a estratégia de segurança
  4. Criar, migrar, e abrir o banco de dados
  5. Fazer backup do banco de dados.
  6. Inscrever os usuários do sistema e planejar o acesso deles
  7. Implementar o design do banco de dados.
  8. Efetuar a recuperação após uma falha do banco de dados.
  9. Monitorar o desempenho do banco de dados.

Planejando a Instralação do Banco de Dados

  1. Qual software de banco de dados você vai instalar?
  2. Será que o hardware cumpre os requisitos mínimos exigidos?
  3. Existe uma ordem recomendada de instalação quando vários produtos estão envolvidos?
  4. Existem pré-requisitos que devem ser realizados por alguém que não o DBA?

 

 

Capítulo 4 – Segurança da Informação

Referencial teórico

A norma ISO/IEC 27002 conceitua:

  • Informação – é um ativo que, como qualquer outro ativo importante para negócios, tem um valor para a organização e, consequentemente, necessita ser adequadamente protegida;
  • Segurança da informação – A proteção da informação de vários tipos de ameaças para garantir a continuidade do negócio, minimizar os riscos ao negócio e maximizar o retorno sobre os investimentos e as oportunidades de negócio.

A norma ISO/IEC 27002 agrupa os requerimentos de segurança em três categorias (tríade da CIA):

As ameaças típicas, exemplos:

  • Roubo de informação
  • Fraude
  • Vandalismo/Terrorismo
  • Catástrofes
  • Erros

Políticas ou requerimentos de segurança

  • Controle de Acesso – Deve garantir que todos os acessos diretos aos objetos do sistema devem ser regidos pelos privilégios e regras de acesso previamente definidos;
  • Auditoria – O objetivo é permitir o armazenamento de todos os acessos ao banco de dados para verificação posterior se alguma política de acesso ou autenticação foi violada;
  • Autenticação – Identificar os usuários para garantir que cada nova conexão possui uma única pessoa associada.
  • Controle de Fluxo e Dedução – Garantir que dados de um determinado nível de segurança não possam ser transferidos para um nível de controle mais baixo;
  • Consistência (Integridade) – Tem como objetivo definir o estado em que o banco de dados é considerado válido ou correto. Divide-se em 3 categorias:
  1. Operacional – Deve garantir a consistência lógica das transações no banco de dados mesmo durante a execução de transações concorrentes;
  2. Semântica – Garantir que o dado que está sendo inserido pertence ao tipo de dados definido na coluna
  3. Física – Determina que o banco de dados permita a sua reconstrução após paralisações não planejadas como, por exemplo, falta de energia

 Controle de Acesso Granular

  • Definição: “Modificação transparente e dinâmica da consulta antes que os comandos fossem processados  para garantir que os usuários só tivessem acesso aos dados autorizados para cada usuário específico ”
  • Pode ser criado nos seguintes níveis:
  1. Camada de aplicação;
  2. Utilizando Visões dentro do Banco de Dados; e
  3. Utilizando características próprias de um SGBD específico.

04.png

05.png

Controlando o Acesso do Usuário

Em um ambiente de vários usuários, é conveniente manter o banco de dados seguro em termos de acesso e uso. Com a segurança de banco de dados do servidor Oracle, você pode fazer o seguinte:

  • Controlar o acesso ao banco de dados;
  • Conceder acesso a objetos específicos no banco de dados;
  • Confirmar privilégios concedidos e recebidos com o dicionário de dados.

A segurança de banco de dados pode ser classificada em duas categorias: segurança de sistema e segurança de dados. A segurança de sistema inclui o acesso e o uso do banco de dados no nível do sistema, abrangendo, por exemplo, o nome de usuário e a senha, o espaço em disco alocado para os usuários e as operações do sistema permitidas ao usuário.

A segurança de dados inclui o acesso e o uso dos objetos de banco de dados e as ações que esses usuários podem efetuar nos objetos.

06.png

Privilégios

Os privilégios consistem no direito de executar instruções SQL específicas. O DBA (“Database Administrator” – Administrador de Banco de Dados) é um usuário de alto nível com a capacidade de conceder aos usuários acesso ao banco de dados e seus objetos. Os usuários necessitam de privilégios de sistema para obter acesso ao banco de dados e de privilégios de objeto para manipular o conteúdo dos objetos do banco de dados. Também pode ser dado aos usuários o privilégio de conceder privilégios adicionais a outros usuários ou a atribuições, que são grupos nomeados de privilégios relacionados.

Esquemas

Um esquema é uma coleção de objetos, como tabelas, views e seqüências. O esquema pertence a um usuário do banco de dados e tem o mesmo nome do usuário.

Privilégios de Objetos

Um privilégio de objeto é um privilégio ou direito de efetuar uma determinada ação em uma tabela, view, seqüência ou procedimento específico. Cada objeto tem um conjunto específico de privilégios que podem ser concedidos. A tabela do slide lista os privilégios de vários objetos.

Segurança Física x Segurança Lógica

Adachi (2004) agrupou os aspectos envolvidos na segurança da informação em três camadas: física, lógica e humana.

A segurança física: Tem como objetivo proteger equipamentos e informações contra usuários não autorizados e prevenção de danos por causas naturais.

  • Uso de salas cofres;
  • Controle de acesso com biometria;
  • Controle de temperatura, dentre outras precauções.

A segurança lógica: Um conjunto de medida e procedimentos, adotados com objetivo de proteger os dados, programas e sistemas contra tentativas de acessos não autorizados, feitas por usuários ou outros programas.

  • Controle de autenticação e autorização;
  • Criptografia;
  • Auditoria;
  • Firewalls; Etc.

Backup no SQL Server

Gerar um backup é criar uma cópia de segurança de um banco de dados, com o objetivo de ter um arquivo externo ao Servidor que permita a recuperação do banco em caso de desastres. No SQL Server, cada banco de dados pode ter uma política de backup independente.

09.png

Para a elaboração de um backup, deve-se criar um plano de contingência e definir qual a estrutura mais adequada às necessidades de sua empresa:

  1. Volume de dados a ser preservado;
  2. Tempo para realizar o procedimento de backup;
  3. Tempo para realizar o procedimento de restauração do banco de dados danificado;
  4. Área no dispositivo onde os backups serão gerados;
  5. Monitoramento dos backups, etc.
  6. Deve-se testar com frequência o procedimento de restauração de bancos de dados – treinamento e verificação de integridade;

10.png

Capítulo 5 – Tuning

O que é Tuning?

  • Em TI, refere-se basicamente ao conceito de propor e aplicar mudanças para otimizar o desempenho na recuperação ou atualização de dados;
  • É um termo que desperta um interesse cada vez maior nos profissionais de TI, devido ao aumento:
  • Do legado de sistemas corporativos (erps, geds etc.) E sistemas web;
  • Da quantidade de usuários de bds;
  • Da quantidade de dados.
  • Um monitoramento efetivo de performance e estratégia de tuning, requer não apenas expertise no SGBD mas conhecimento que vai além da administração de BD.

 Conhecimento de Tuning

  • Tuning diz respeito ao ajuste do SGBD para melhor utilização dos recursos deste, provendo um uso eficaz e eficiente do SGBD.
  • Tuning requer conhecimento de:
  1. Desenvolvimento de Aplicações
  2. SGBD
  3. Sistema operacional
  4. Hardware

Objetivos do Tuning

  • Minimizar tempo de resposta e recuperação de dados;
  • Otimizar a taxa de transferência de dados;
  • Minimizar concorrência de acesso aos dados;
  • Otimizar a capacidade de carga do Banco de Dados.

Tuning, a arte de encontrar gargalos

 Um programa pode gastar 80% do seu tempo em um pequeno loop dentro do código e 20% no restante do código. O pequeno loop, é o gargalo.   

01.png 

Parâmetros ajustáveis

Administradores de banco de dados podem ajustar o sistema de banco de dados em três níveis.

O primeiro nível, que é o mais baixo, está no nível de hardware. As opções de ajustar sistemas nesse nível incluem acrescentar discos ou usar sistemas de RAID se a E/S for o gargalo, aumentar a quantidade de memória se o tamanho do buffer de disco for o gargalo ou passar para um processador mais rápido se o uso de CPU for um gargalo.

O segundo nível consiste nos parâmetros do sistema de banco de dados, como tamanho do buffer ou intervalos de pontos de verificação. O conjunto exato de parâmetros do SGBD que podem ser ajustados depende de cada SGBD específico.

O terceiro nível é o nível mais alto. Ele inclui o esquema e as transações. O administrador pode ajustar o projeto do esquema, os índices que são criados e as transações que são executadas, para melhorar o desempenho.