Banco de dados

 

Modelo Relacional


 

Sistema gerenciador de banco de dados

 

  • Sistema de banco de dados
    • Banco de dados (recurso primário)
      • conjunto de dados estruturados que são confiáveis, logicamente coerentes e compartilhados por usuários que tem necessidades de informações diferentes;
    • Catálogo (dicionário de dados) → não é alterado com frequência;
      • conjunto de metadados que definem a estrutura e as restrições de segurança e integridade;
      • contém os esquemas (intenção) do banco de dados (externos, conceitual e interno);
      • contém os mapeamentos (externo-conceitual e conceitual-interno);
      • regras de controle de acesso e definições de visões;
    • Sistema gerenciador de banco de dados (recurso secundário) → conjunto de programas de uso geral que possibilitam a:
      • definição → especificar os tipos de dados, estruturas e restrições para os dados do banco;
      • construção → armazenar os dados em um meio de armazenamento controlado pelo SGBD;
      • manipulação → funções para consultas e atualizações nos dados armazenados;
      • compartilhamento → do banco de dados entre usuários e aplicações;
      • manter um estado válido (extensão do esquema) → satisfazer as restrições ao inserir, excluir ou alterar um registro (o estado é alterado com frequência durante as operações);
    • Outros componentes
      • Instruções DDL → permite definir o banco de dados;
      • Compilador DDL → armazena as definições dos no catálogo;
      • Consulta interativas → interface de alto nível para criação de consultas para usuários casuais;
      • Compilador de consulta → validação da sintaxe da consulta e codificação em formato interno;
      • Otimizador de consulta → reordena as junções, reordena a seleção por campos indexados, etc;
      • Instruções DML → permite manipular o banco de dados;
      • Pré-compilador → identifica as instruções DML de um código fonte e envia para o compilador DML;
      • Compilador DML → codifica as instruções DML em formato interno;
      • Transações compiladas → união do resultado da compilação do código-fonte e das instruções DML;
      • Gerenciador de dados armazenados → utiliza operações entrada/saída entre o disco e memória principal;
      • Processador de banco de dados em tempo de execução
        • executa comando privilegiados, consultas e transações compiladas;
        • atualiza o catálogo do sistema com estatísticas;
        • utiliza o gerenciador de dados armazenados;
        • realiza gerenciamento de buffer;
        • integrado ao controle de concorrência;
  • Características
    • Controle de redundâncias
      • evitar, controla, impede redundâncias de dados (duplicidade de cadastro);
    • Compartilhamento dos dados
      • controle de concorrência para a leitura e escrita de dados (transação);
      • garante que atualizações simultâneas mantenham os dados em estado consistente;
    • Controle de acesso
      • definição de permissões (consulta, alteração) por usuário;
    • Processamento eficiente
      • implementa técnicas de pesquisa e estruturas de armazenamento eficientes;
    • Interfaceamento
      • fornece linguagem de alto nível para definição e consulta dos dados;
      • disponibiliza distintas formas de acesso, como SQL, gráficos e linguagem natural;
    • Esquematização
      • fornecer mecanismos que facilitem a compreensão dos relacionamentos entre tabelas e sua eventual manutenção, como o Diagrama Entidade-Relacionamento;
    • Controle de integridade
      • impedir a integridade dos dados por meio de qualquer forma de acesso fornecida;
    • Backups
      • fornecer facilidades para recuperação de falhas de hardware e software;
      • recursos automáticos, arquivos de pré-imagem, reduzindo intervenções técnicas;
  • Transação
    • Atomicidade → será totalmente executada ou não será executada;
    • Consistência → manterá os dados consistentes;
    • Isolamento → não sofrerá interferência de outra transação;
    • Durabilidade → dados salvos não serão perdidos;
  • Formas de acesso ao banco de dados
    • Sequencial → os registros são todos percorridos desde o início até que se encontre o registro desejado;
    • Direto → um determinado registro, em qualquer posição, pode ser acessado diretamente;
    • Indexado → existe uma tabela auxiliar de índices que contém as localizações dos registros;
  • Ciclos de vida da informação
    • criação (recebimento ou aquisição), distribuição (disseminação), uso, manutenção, descarte;
  • Casos de não utilização de SGBD
    • Sistemas embarcados de capacidade limitada;
    • Aplicações de tempo real;
    • Não existência de acessos simultâneos;
    • Banco de dados simples e sem previsão de mudanças;

 

Modelo de dados

 

  • Conceitos
  • conjunto de conceitos para descrever a estrutura (tipos, relacionamentos, restrições) de um banco de dados;
  • fornece nível de abstração de dados para a supressão de detalhes de armazenamento ou da organização;
  • a abstração permite que diferentes atores identifiquem os dados no nível de detalhe mais apropriado;
  • Modelo de dados →  aprofunda os detalhes para provê nível apropriado a diferentes atores;
    • Conceitualmodelo de dados de alto nível;
      • descreve os tipos de dados, entidades, atributos, relacionamentos e restrições;
      • representação fiel do ambiente observado;
      • independente de sua implementação, de tecnologia, do paradigma e do SGBD;
    • Lógicomodelo de dados representativo;
      • representa a estrutura de dados pela visão do usuário do SGBD;
      • independente de tecnologia e do SGBD;
      • dependente do paradigma do SGBD;
    • Físicomodelo de dados de baixo nível;
      • descreve os detalhes de como os dados são fisicamente armazenados;
      • seleção de índice, formas de acesso e estrutura de armazenamento interno;
      • depende do paradigma e do SGBD;
  • Arquitetura ANSI/SPARC → torna o banco de dados autodescritivo e com independência de dados;
    • Nível externo, de visão ou lógico do usuáriomuitos esquemas externos ou visões de usuário

      • descreve e restringe os dados vistos por um grupo específico de usuários;
      • simplificar a interação pelos utilizadores (usuários ou aplicações);
      • Mapeamento externo-conceitual (independência lógica de dados)
        • permite alterar o esquema conceitual sem tornar necessária a alteração dos esquemas externos;
    • Nível conceitual, lógico ou lógico de comunidadeum esquema conceitual
      • descreve os tipos de dados, entidades, atributos, relacionamentos e restrições;
      • Mapeamento conceitual-interno (independência física de dados)
        • permite alterar o esquema interno sem tornar necessária a alteração do esquema conceitual;
    • Nível interno, físico ou de armazenamento → um esquema interno ou visão interna
      • descreve a forma e como os dados são fisicamente armazenados;
      • incluindo seleção de índice e formas de acesso;
      • não abrange organização física (típica de sistema de arquivos) e relacionada ao dispositivo de armazenamento  (registros físicos, cilindros, blocos);
  • Atores em cena
    • Administradores de dados (projetista de banco de dados) → nível conceitual;
      • Atividade gerencial e de tomada de decisões estratégicas e de negócio;
      • Comunica-se com os potenciais usuários para entender suas necessidades;
      • Identifica e define as estruturas mais apropriadas para representar os dados;
      • Controla a existência de informações redundantes;
      • Desenvolve visões do banco de dados que para atender a requisitos de grupos de usuários;
      • Estabelece normas de tratamento dos dados;
      • Administra a descrição dos dados corporativos;
      • Responsável pela qualidade de compatibilidade dos modelos de dados;
    • Administradores de banco de dados (DBA) → nível interno;
      • Atividade técnica e de implementação das decisões tomadas pelo Administrador de Dados;
      • Define o esquema externo, conceitual e interno;
      • Implementa atualizações nos esquemas;
      • Concede autorização de acesso ao sistema;
      • Gerencia performance e assegura o desempenho satisfatório;
      • Elabora rotinas de backup e restauração dos dados;

 

Modelo conceitual de dados

 

  • Projeto de banco de dados
    • Levantamento e análise de requisitos;
      • especifica as necessidades dos usuários;
    • Projeto conceitual envolve a criação do esquema conceitual;
      • garante que todos os requisitos de dados sejam atendidos e não estejam em conflito;
      • utiliza-se do Modelo Entidade Relacionamento (ER);
    • Projeto lógico implementa o esquema conceitual em um SGBD;
      • produz o esquema lógico;
    • Projeto físico envolve a organização dos arquivos a criação da índices;
      • definição do esquema físico;
  • Modelo conceitual de dados
    • Modelo de entidade-relacionamento
      • um modelo abstrato cuja finalidade é descrever, de maneira conceitual, os dados que pertencem a um domínio;
      • conjunto de conceitos e elementos de modelagem para representar o mundo real por meio de entidades, suas características e seus relacionamentos;
    • Modelo de entidade-relacionamento estendido
      • inclui recursos para subclasses, superclasses e herança (triângulo);
      • especialização → implementa subclasses a partir da análise desmembramento de uma entidade;
      • generalização → implementa superclasse a partir da análise de unificação de entidades similares;
      • agregação (entidade associativa) → promove um relacionamento a entidade;
    • Diagrama de entidade-relacionamento
      • a principal ferramenta do modelo é sua representação gráfica (notação diagramática);
      • constituem uma técnica para representar a estrutura lógica do banco de dados;
      • resultado concreto do processo de modelagem executado pelo projetista de dados;
  • Elementos do diagrama (obs: não há chave primária)

    • entidade → identifica algo de forma unívoca;
      • tipo de entidade (retângulo) → define uma coleção de entidades que tem os mesmo atributos;
    • atributos simples ou atômicos (elipse) → propriedades específicas que descrevem as entidades;
      • atributos compostos → podem ser subdividido em atributos simples e concatenadas (ex: endereço);
      • atributos multivalorados (elipse com linha dupla) → admitem um conjunto de valores (ex: telefone);
      • atributo armazenado (elipse) →  atributo utilizado por atributo derivado;
      • atributo derivado (elipse linha pontilhada) → valor derivado (calculado);
      • atributos chave (elipse preenchida) → possuem valores que identificam cada entidade de maneira exclusiva;
    • relacionamentos (losangos) → quando uma entidade possui atributo do tipo de entidade;
      • tipo de relacionamentos → define um conjunto de relacionamentos entre entidades;
      • atributo de tipo de relacionamento → propriedades específicas que descrevem relacionamentos N:M;
      • grau do tipo de relacionamento → quantidade de tipos de entidades de um relacionamento;
        • binário → dois tipos de entidades;
        • ternário → três tipos de entidades;
      • papel no relacionamento → especifica as entidades em relacionamentos recursivos;
      • relacionamento recursivo → há mais de uma entidade de mesmo tipo (funcionários de um chefe);
      • vínculo entidade-relacionamento (linhas)
      • vínculo total entidade-relacionamento (linhas duplas) → toda entidade está relacionada;
        • tipo de entidade fraca (retângulo com linha dupla) → não possuem atributos chave próprios; sempre tem vínculo total com uma entidade forte; sua chave depende da chave estrangeira;
        • atributos chave parcial (elipse hachurada) → atributo que compõe a chave com a entidade forte;
        • relacionamento de identificação (losango com linha dupla) → vincula entidade forte e entidade fraca;
        • tipo de entidade de identificação → entidade forte vinculada a entidade fraca;
    • nomenclaturas
      • entidade → registro;
      • conjunto-entidade → tabela;
  • Razões de cardinalidade de relacionamentos → número máximo de instâncias de relacionamento de um entidade;
    • Um para um (1:1)
      • A»B (1»1) → cada registro da tabela A está associado no máximo a um registro da tabela B;
      • B»A (1»1) → cada registro da tabela B está associado no máximo a um registro da tabela A;
    • Um para muitos (1:N)
      • A»B (1»N) → cada registro da tabela A está associado a qualquer número de registros da tabela B;
      • B»A (1»1) → cada registro da tabela B está associado no máximo a um registro da tabela A;
    • Muitos para muitos (N:M)
      • A»B (1»N) → cada registro da tabela A está associado a qualquer número de registros da tabela B;
      • B»A (1»M) → cada registro da tabela B está associado a qualquer número de registros da tabela A;
    • Restrição de cardinalidade (1,1:0,N) → razão mínima e máxima;
      • A»B (1»0,N) → cada registro da tabela A está associado a nenhum ou qualquer número de registros da tabela B;
      • B»A (1»1) → cada registro da tabela B está associado a um e somente um registro da tabela A;

 

Modelo Relacional

 

  • Modelo Relacional de banco de dados → utiliza um conjunto de tabelas bidimencionais (linha e coluna), interligadas por meio de campos (colunas) em comum (chave primária, estrangeira, alternativa, candidata);
    • Dado → é a parte (ex: telefone 33445555), sem significado relevante ou compreensível;
    • Informação → grupo de dados inter-relacionados que representam informações relevantes, obtidas a partir de processos de negócio (ex: telefone do José da Silva 33445555);
    • Atributo → armazena um tipo específico de dado com valor atômico (coluna);
    • Registro → é uma unidade de informação de cada atributo da tabela (linha);
    • Tupla → um registro (linha) com a identificação de forma ordenada de cada atributo;
    • Tabela ou Relação → estrutura bidimensional composta por colunas e linhas;
      • cada tabela é chamada de relação e possui nome próprio distinto;
      • a ordem das linhas e colunas é irrelevante;
      • não há duas linhas (tuplas) iguais em uma tabela;
    • Chave → um ou mais atributos que, tomados coletivamente, identificam unicamente uma entidade;
      • todos os atributos que compõe a chave devem ser essenciais para a unicidade da tupla, tornando-a irredutível;
    • Chave candidata → todas as chaves da relação (cada tabela só pode ter uma chave primária);
    • Chave primária →  chave candidata selecionada para identifica as tuplas da relação;
    • Chave estrangeira → chave candidata de outra tabela (ou da mesma) utilizada estabelecer um relacionamento;
    • Restrições de integridade (constraints) → mantém a consistência dos dados;
      • Integridade de domínio → o valor de um campo deve obedecer a definição de valores admitidos para o domínio da coluna (número inteiro, número real, data);
      • Integridade de nulidade ou de entidade → especifica se o valor do campo pode ser nulo;
      • Integridade de chave ou de entidade → indicador que garante a unicidade das chaves;
      • Integridade referencial → conjunto de regras que garantem que os relacionamentos entre registros de tabelas permaneçam válidos; evita registro órfãos; os valores dos campos de uma chave estrangeira devem existir na tabela referenciada;
      • Integridade semântica ou de regras de negócio → controle sobre os dados em uma ou distintas linhas, normalmente para impor limites (uma pessoa só pode ter três contas (3 linhas), limite de crédito até “20mil” para perfil “médio risco”);
    • Stored procedure → é uma rotina que deve ser chamada por um usuário ou aplicação; contribui para restrições de integridade, para a segurança no acesso aos dados, para o desempenho e para redução do voluma de dados trafegados na rede.
    • Gatilho (trigger) → é uma rotina associada a um evento (um evento pode ser a alteração de uma linha, e a rotina pode ser a gravação do usuário e data/hora de alteração);
    • Visão (view) → tabela temporária gerada em tempo de execução a partir de uma consulta gravada e nomeada (não há cópia dos dados); permitem alteração no nível conceitual sem impacto nas aplicações existentes; pode aceitar updates quando baseadas em uma única tabela;
  • Normalização → minimização da redundância dos dados com a análise de tabelas
    • 1º forma normal → se a tabela não possuir campos multivalorados (ex: ou listas embutidas em strings);
    • 2º forma normal → se a tabela estiver na 1ºFN e não tiver campos que necessitam ser atualizados concomitantemente (deveriam estar em tabela a parte, como: n_pedido, cod_produto, produto, qtd, valor);
    • 3º forma normal → se a tabela estiver na 2ºFN e não tiver atributos transitivos (campos calculados a partir de outros campos, por exemplo, uma multiplicação)

 

Linguagens SQL e PL/SQL

 

  • SQL → linguagem declarativa padrão ANSI para a manipulação de banco de dados relacionais, não comandos condicionais (IF-ELSE) e nem de iteração (WHILE/FOR);
    • oferece instruções para a recuperação e manipulação de dados em tabelas, controle de transações, definição de objetos e controle de acesso;
    • Operações
      • Recuperação de dados → SELECT;
        • SELECT <campos> FROM <tabelas> WHERE <critérios>;
        • SELECT <campos> FROM <tabela1> JOIN <tabela2> on <tabela1.campo1> = <tabela2.campo2>
      • Manipulação de dados → INSERT, UPDATE, DELETE;
        • INSERT INTO <tabela(campo1, campo2, campo3)> VALUES <(valor1, valor2, valor3)>
        • UPDATE <tabela> SET <campo=valor> WHERE <critérios>
        • DELETE FROM <tabela> WHERE <critérios>
      • Definição de objetos → CREATE, ALTER, DROP, RENAME, TRUNCATE;
        • ALTER TABLE <tabela> ADD <coluna> <type>
        • ALTER TABLE <tabela> DROP <coluna>
        • Oracle 10/11 → ALTER TABLE <tabela> MODIFY <coluna> <type>
        • SQL Server → ALTER TABLE <tabela> ALTER COLUMN <coluna> <type>
        • MySQL /Oracle <10 → ALTER TABLE <tabela> MODIFY COLUMN <coluna> <type>
      • Controle de transações → COMMIT, ROLLBACK, SAVEPOINT;
      • Controle de acesso → GRANT, REVOKE;
    • Like
      • ‘A_Z’ → começam por ‘A’, outro caracter, e terminam em ‘Z’, como ‘ABZ’;
      • ‘ABC%’ → começam por ‘ABC’, como ‘ABCDE’;
      • ‘%XYZ’ → terminam em ‘XYZ’, como ‘UWXYZ’;
      • ‘%AN%’ → contêm ‘AN’ em qualquer local, como ‘ANGEL’ e ‘FRANCISCO’;
    • Joins
      • Join or Inner Join → retorna somente as linhas com relacionamento;
      • Left join → retorna o número de linhas da tabela a esquerda;
      • Right join → retorna o número de linhas da tabela a direita;
      • Full join → retornas as linhas com relacionais e as linhas sem relacionamento de ambas as tebelas;
      • Cross join (Postgres) → produto linhas da tabela A pelas linhas da tabela B, retornando todas as colunas de ambas as tabelas (colunas da tabela A seguidas das colunas da tabela B);
    • Union
      • Union → executa o distinct ao final;
      • Unial all → não executa o distinct (exibe duplicados);
  • PL/SQL → introduzida no Oracle 6 (1998).
    • Desenvolvimento de programas que são armazenados, compilados e executados dentro do servidor de banco de dados Oracle, tipicamente utilizado para a criação de aplicações de missão crítica, que requerem alto desempenho.
    • Torna possível a construção de aplicações eficientes para a manipulação de grandes volumes de dados, ao ser executada interna ao Oracle, evita, inclusive, eventual tráfego de rede dados dados;
    • A PL/SQL pode ser entendida como uma extensão da linguagem SQL, adicionada de funcionalidades que a tornam uma linguagem de programação autossuficiente e completa: controle de fluxo, tratamento de exceções, orientação a objetos, etc.
    • Pode executar comandos SQL sem a necessidade de APIs intermediárias (como ODBC ou JDBC), mas a PL/SQL não foi criada para ser uma linguagem padrão e nem independente, mas sim uma tecnologia exclusiva do Oracle;
    • Durabilidade do código escrito entre versões e plataformas;
  • Estrutura do PL/SQL
    • DECLARE
      • <declarações> (opcional)
    • BEGIN
      • <lógica> (necessária)
    • EXCEPTION (opcional)
      • <erros>
    • END;
  • <declarações> → constantes, variáveis, cursores, estruturas e tabelas;
  •  <lógica>
    • → IF/THEN/ELSE (limite de 7 encadeamentos)
      • IF <condição>
      • THEN
        • <comandos>
      • ELSE
        • <comandos>
      • END IF;
    • → FOR (quantidade conhecida)
      • <<loop_label_before>>
      • FOR <contador> IN [REVERSE] <inferior>..<superior> LOOP
        • <comandos>
      • END LOOP;
      • <<loop_label_after>> (usar label antes ou depois em qualquer tipo de LOOP)
    • → LOOP (executa uma vez antes de verificar a condição de saída)
      • LOOP
        • <comandos>
        • EXIT (opcional)
        • <comandos>
        • EXIT WHEN <condição>
      • END LOOP;
    • → WHILE (verifica a condição antes de executar)
      • WHILE <condição> LOOP
        • <comandos>
      • END LOOP;
  • Exemplo de Procedure
    • CREATE OR REPLACE FUNCTION imposto (valor IN NUMBER) RETURN NUMBER IS
    • BEGIN
      • RETURN (valor * 0.27)
    • END imposto;
  • Execução da procedure pelo SQL/Plus
    • VARIABLE imp NUMBER;
    • EXECUTE :imp := imposto(10000);

 

Microsoft SQL Server

 

  • SQL Server
  • SQL Server Enterprise Manager → usado pelo DBA para execução remota de qualquer tarefa administrativa;
  • SQL Server Profiler → usada para monitorar e registrar a atividade dos bancos de dados;
  • SQL Server Query Analyzer → usada para enviar manualmente comandos Transact-SQL e procedimentos armazenados para o SQL Server;
  • Client Diagnostic Utilities → usada para verificar qual DB-Library está instalada em um cliente, e configurar as ferramentas de gerenciamento para acesso ao SQL Server;

 

Oracle

 

 

Modelo multidimensional


 

  • Conceitos
    • Técnica de projeto lógico de banco de dados para:
      • desenvolvimento de data warehouses;
      • projetos de sistemas de informações operacionais.
  •  Finalidades
    • apresentar os dados em um formato intuitivo;
    • atender a requisitos de desempenho;
  • Modelo multidimensional → representação em forma da cubo de dados, cujas células contém valores medidos e os lados as dimensões naturais (períodos, semestres);
    • Tabelas de dimensão (menor volume de dados) → tabela que qualifica os fatos, possuem chaves simples, desnormalizada, hierarquia implícita, e normalmente não depende do tempo;
      • Utilizada como cabeçalho das colunas das análises;
      • Utilizada como filtro de consultas e relatórios;
    • Tabela dos fatos (maior volume de dados)→ possuem chaves compostas resultantes da combinação das chaves das tabelas de dimensão;
      • A dimensão tempo é sempre parte da chave (dados históricos);
      • Medida do fato normalmente numérica;
      • Fatos normalmente aditivos (somável entre todas as dimensões), e eventualmente semi-aditivos (somável entre algumas dimensões) ou não aditivos;
    • Cubo → estrutura de dados que agrega as medidas por níveis e hierarquias de cada dimensão;
      • Medida → valores baseados na coluna da tabela de fatos;
      • Membros → um item de uma hierarquia, exclusivo (ex: ano) ou não exclusivo (mês);
      • Dimensão → um conjunto de uma ou mais hierarquias organizada em níveis de um cubo;
      • Hierarquia → estrutura em árvore lógica que organiza os membros de uma dimensão (todos os membros possuem um pai e zero ou mais filhos);
      • Níveis → divisão de uma hierarquia em níveis de detalhes inferiores e superiores;
    • Modelagem dimensional → esquema estrela ou constelação dos fatos
      • distingue melhor as dimensões dos fatos medidos
      • simplifica a visualização dimensional
      • combina a modelagem conceitual com a modelagem lógica, voltada a abordagem relacional;
      • fases
        • definição da área do negócio;
        • definição dos processos da área do negócio;
        • definição da granularidade (níveis) do dados de cada processo (ponderar volume e dificuldade de obtê-los);
        • definição dos atributos e hierarquia das dimensões (ponderar hierarquias múltiplas);
        • definição de métricas das tabelas dos fatos (valores aditivos, semi-aditivos e não aditivos);
      • esquema flocos de neve (variações do esquema estrela) → todas as tabelas são normalizadas para a 3FN;
  • Comparação do modelo relacional com o multidimensional
    • Modelo relacional
      • 1 diagrama para vários processos de negócio;
      • o negócio não é facilmente percebido no modelo, difícil entender e navegar;
      • muitas junções;
      • dados atômicos;
      • planos de consulta específicos (distintos) as consultas previstas;
    • Modelo multidimensional
      • 1 diagrama (dimensional) para cada processo de negócio;
      • o negócio é facilmente percebido no modelo;
      • poucos junções;
      • dados atômicos e agregados;
      • planos de consulta genéricos;

 

Data Warehouse – DW

 

  • Conceito (O que é?)
    • DW é uma coleção de dados orientada por assuntos, integrada, variante no tempo, e não volátil que tem por objetivo dar suporte aos processos de tomada de decisão (Inmon 1997);
      • organizado por assuntos ou processos → armazena informações sobre temas específicos;
      • integrável → armazena informações taxonomicamente e semanticamente consistentes em estado uniforme e em um determinado padrão;
      • variante no tempo → armazena dados precisos em relação momentos específicos no tempo (séries temporais), não podendo ser atualizados;
      • não volátil  → permite apenas a carga inicial dos dados e consultas a estes dados;
      • Obs! a ESAF já considerou como “invariante em termos temporais“, pois dados já carregados são invariantes, porém a carga de novos dados torna, também, “variante no tempo“;
  • Objetivo (Como?)
    • utilizar dados extraídos do ambiente de produção a partir das seguintes fases:
      • seleção/identificação;
      • extração/depuração;
      • transformação/otimização para processamento de consultas (e não para processamento de transações);
  • Finalidade (Para?)
    • tornar as informações corporativas acessíveis para seu entendimento, gerenciamento e uso para o apoio aos processos de tomada de decisão;
    • consolidar dos dados históricos, atuais e/ou em tempo real, a partir de bancos de dados relacionais, planilhas eletrônicas, documentos textuais, para:
      • melhor análise de eventos passados;
      • apoio a tomada de decisões do presente, e;
      • previsão de eventos futuros;
  • Operações (apenas duas)
    • Carga inicial dos dados
      • dados de períodos passados (ex: anos anteriores) não podem ser atualizados;
      • dados de novos períodos (ex: ano corrente) são considerados carga inicial;
    • Consultas aos dados
      • dados ficam resguardados de alterações indevidas ou perda de dados, em banco de dados para análise do negócio;
      • as consultas dos usuários as aplicações que sustentam o negócio não impactam no Data Warehouse;
  • Componentes
    • Primeira camada → sistema operacional com dados e software para aquisição de dados;
      • Fontes de dados operacionais;
        • possuem um propósito específico e não são consultados de forma ampla e inesperada;
        • os dados comumente não são estruturados a partir do tempo;
        • os dados armazenados de um curto horizonte de tempo;
        • atualização registro a registro em múltiplas transações;
        • organização funcional ou por aplicação;
      • Extração e Carregamento de dados;
        • conjunto de processos e instanciação das estrutura de dados;
        • abrange as etapas entre as fontes de dados operacionais e a apresentação dos dados do DW;
    • Segunda camada → Data warehouse;
      • Banco de dados abrangente (comprehensive);
        • são consultados de forma ampla e inesperada;
        • dados são estruturados a partir do tempo;
        • dados armazenados de um longo horizonte de tempo;
        • atualização em bloco;
        • organização por assunto ou processos;
      • Metadados;
    • Terceira camada → servidor de aplicação e cliente;
      • Ferramentas de middleware;
      • Business Intelligence;
      • Business Analytics;
      • API/Middleware;
  • Estratégias
    • a identificação, extração, limpeza, transformação e migração de dados dos sistemas existentes para o Data Warehouse constituem tarefas críticas para o seu funcionamento efetivo e eficiente, comumente, utiliza-se ferramentas especializadas para cada etapa, ou ainda, programação de baixo nível ou manual; a implantação exige a integração de vários produtos e processos;
    • há técnicas genéricas e outras especialmente voltadas para a manutenção de integridade dos dados num ambiente caracterizado pelo derivação e replicação de informações.
    • os Data Warehouse podem ser projetados seguindo as abordagens:
      • Kimball (bottom-up)
        • fundamenta-se nas necessidades de partes da organização para que quando integradas fornecer informações gerais da organização;
        • implementa Data Marts em um modelo dimensional para agregá-los no Data Warehouse corporativo;
        • organizado por processo de negócio organizacional;
      • Inmon (top-down)
        • fundamenta-se nas necessidades da organização com um todo;
        • implementa o Data Warehouse corporativo para extrair Data Marts em um modelo dimensional;
        • organizado por assunto (subject-by-subject);
    • os procedimentos de maior complexidade são gerenciais, como:
      • identificação de fontes de dados;
      • definição da granularidade → nível de sumarização dos elementos e detalhes dos dados;
        • nível alto de granularidade → diminui a possibilidade de utilização dos dados com um menor detalhamento da informação, menos índices e espaço em disco;
        • nível baixo de granularidade → aumenta a possibilidade de utilização dos dados com um maior detalhamento da informação, mais índices e espaço em disco;
      • definição de regras de transformação;
      • detecção e resoluções de questões de qualidade e integração;
      • Tarefas que não são de automatização trivial, embora haja ferramentas para apoio para geração de programas de extração, análise da qualidade dos dados, entretanto as regras de mapeamento e transformação dependa do trabalho de funcionário individual;
  • OLTP (online transaction processing) → captam transações de negócio de uma sistema e armazenam em um banco de dados;
    • utilizada em sistemas que registram pequenas transações (INSERT, UPDATE, DELETE);
    • dá ênfase ao processamento rápido, em tempo real, das consultas realizadas;
    • mantém a integridade dos dados em ambientes de acesso concorrente;
    • os dados podem ser alterados e modificados, e não salvam histórico;
    • não é uma base ideal para apoio a tomada de decisões;
  • ETL (extract, transform and load) → processo para extração, transformação e carga de dados;
    • Data Staging Area (tabelas relacionais e arquivos simples) ou Operacional Data Storage (ODS)
      • área de armazenamento intermediária para movimentação dos dados da base operacional para a base histórica (Data Warehouse);
      • não é acessível aos usuário e não fornece serviços de consulta ou apresentação;
    • Identificação da origem (fontes) dos dados a serem coletados;
      • as fontes podem estar espalhadas em diversos sistemas transacionais e banco de dados da organização;
    • Extrair (extract)
      • entende-se os dados da origem e copia-se os dados necessários para posterior manipulação;
    • Transforma (transform) os dados
      • ajustes nos dados com o intuito de corrigir imperfeições com o objetivo de oferecer um melhor resultado e agregar valor aos dados para o usuário final;
      • realizar a limpeza dos dados (remoção de duplicados – merge-purge) para possibilitar posterior transformação;
      • padroniza os dados em um único formato;
      • combina dados de várias fontes e converte nomes ou valores para um padrão (Masculino = M ou 1);
      • resolve conflitos de domínio e dados faltantes;
    • Carga em massa/bloco (load) dos dados
      • carrega dados em um modelo multidimensional e em um banco de dados abrangente (comprehensive) do Data Warehouse;
      • utiliza tabela de fatos e tabelas de dimensão;
    • Atualizar os dados no Data Warehouse
      • repete-se as etapas para obtenção das alterações sofridas pelos dados nos sistemas de origem;
  • Data Marts
    • áreas de armazenamento especializadas e voláteis;
    • são criadas a partir de processos do ETL de dados específicos a um assunto/tópico ou nível de sumarização para atender necessidades específicas;
    • possuem todas as fases do Data Warehouse para um escopo limitado, tais como: área funcional (financeiro, recursos humanos, marketing), área geográfica, etc;
    • tipicamente usa modelo dimensional e esquema estrela;
  • Arquiteturas
    • Arquitetura de Data Marts independentes
      • processo de ETL carrega dados a partir de diversas fontes para Data Marts independentes;
      • as aplicações acessam individualmente os Data Marts;
      • susceptível a inconsistência entre os Data Marts;
    • Arquitetura de barramento de Data Marts linkados dimensionalmente (Kimball)
      • processo de ETL carrega dados a partir de diversas fontes para Data Marts dependentes e dimensionalmente vinculados;
      • Data Marts possuem dados atômicos e resumidos;
    • Arquitetura Hub-and-Spoke (Inmon)
      • processo de ETL carrega dados em um Enterprise Data Warehouse (EDW) e utiliza modelo relacional normalizado na 3FN;
      • as aplicações acessam Data Marts que são dependentes do EDW;
      • Data Marts possuem dados resumidos e parcialmente atômicos;
    • Arquitetura de Data Warehouse centralizada
      • processo de ETL carrega dados em um Enterprise Data Warehouse (EDW) e utiliza modelo relacional normalizado;
      • as aplicações acessam o EDW;
      • Data Marts possuem dados atômicos e parcialmente resumidos;
    • Arquitetura federada
      • utilizada mapeamento de dados e metadados para integração de elementos comuns em diversas fonte de dados;
      • as aplicações acessam as fontes de dados por meio do mapeamento de dados;

 

Análise de negócios (Business Analytics)

 

  • OLAP (online analytical processing)
    • um conjunto de tecnologias projetadas para análise de negócio, consultas e relatórios estáticos, dinâmicos e ad hoc (e não transações)
    • tem resposta mais rápida que data marts;
    • permitem uma visão conceitual de forma multidimensional para análise de diferentes perspectivas.
    • ajudam analistas e executivos a sintetizarem informações e análises de tendência sobre a empresa por meio de:
      • comparações;
      • visões personalizadas;
      • análise histórica, e;
      • projeção de dados em vários cenários e hipóteses;
    • Modelagem por meio de dimensões em cubo e organização hierárquica;
      • Componentes de negócio → cliente, produto, fornecedor e tempo;
      • Interseção das dimensões (medida, dados numéricos) → unidades vendidas, lucro, total de venda;
      • Consolidação dos dados, sumarizações (agregações) dos valores indicativos de negócio (material escolar no inicio do ano, chocolate na páscoa);
  • Data Mining (mineração de dados)
    • categoria de ferramentas (open-end) para busca de conhecimento por meio da varredura de grande quantidade de dados:
      • a procura de padrões não conhecidos, e;
      • identificação de relacionamentos entre informações;
      • gerando subgrupos de dados por meio:
        • de algoritmos baseados em uma rede neural de raciocínios;
        • técnicas de análise preditiva, e;
        • métodos estatísticos avançados;
    • Objetivo exploratório (exploração) → analisar os dados buscando relacionamentos novos e não previstos (identificar características a partir dos inadimplentes)
    • Objetivo explanatório → explicar algum evento ou medida observada (porque a venda de determinado produto caiu)
    • Objetivo confirmatório (validação) → confirmar uma hipótese (analisar se determinada assinatura de serviço está vinculada a determinada renda familiar)

 

Business Intelligence

 

  • Conceito (O que é?)

    • conjunto de técnicas, métodos e conceitos de gestão utilizadas a fim de subsidiar a tomada de decisão;
    • a partir de dados operacionais, históricos e externos implementadas por meio de ferramentas de software, arquiteturas, banco de dados e aplicações;
    • de forma compartimentada, objetiva e focada em estruturas definidas;
  • Objetivo (Como?)

    • tornar informações de grande utilidade facilmente acessíveismanipuláveisinterativas, consistentes e confiáveis a fim de melhorar a tomada de decisão;
    • integrando em um só lugar e de forma segura todas as informações necessárias ao processo decisório, obtidas:
      • com médio esforço a partir de ferramentas, tais como: data mining, text/web mining e engenharia do conhecimento;
      • com alto esforço a partir de técnicas, tais como: estatísticas, inteligência artificial e programação;
  • Finalidade (Para?)

    • proporcionar vantagens competitivas com o apoio aos processos decisórios gerenciais e estratégicos por meio da melhoria da compreensão do negócio;
    • transformando dados em informações, depois em decisões e, por fim, em ações por meio da capacidade analítica das ferramentas;
  • Características dos sistemas de BI
    • extrair e integrar dados de múltiplas fontes (infere-se grande massa de dados);
    • fazer uso da experiência → analisar a situação histórica (infere-se grande massa de dados);
    • analisar dados contextualizados → analisar a seleção dos dados que representam determinada situação, filtrar o dado útil sobre cada situação;
    • trabalhar com hipóteses, cenários e possibilidade → validar a informação;
    • procurar relações de causa e efeito → identificar tendências a serem seguida;
    • transformar os registros obtidos em informação útil para o conhecimento empresarial;
  • Conceitos correlatos
    • Gerenciamento da estratégia e performance
      • Business Performance Management (BPM)
      • Corporate Performance Gentleman (CPM)
      • Dashboards e scorecards;
    • Gerenciamento de conhecimento (KMS) é integrável ao Business Intelligence;
      • estabelece uma integração colaborativa para capturar, criar, organizar e usar todos os ativos de informação da organização;
      • de maneira independente de sua forma, estrutura e domínio;
      • utiliza um repositório de conhecimento formado por:
        • lições aprendidas, dados e medições, comentários e visões e elementos taxonômicos (tags, keywords);
    • Inteligência competitiva (CI) é integrável ao Business Intelligence;
      • estabelece um processo sistemático de coleta e análise de informações sobre as atividades correlatas a organização e tendências de mercado;
      • utiliza um repositório de inteligência competitiva formado por:
        • dados estruturados e não-estruturados, como: relatórios financeiros, balancetes, resultados com elementos taxonômicos (tags, keywords);
      • possui as seguintes fases:
        • definição dos tópicos chave de inteligências (Kits)
        • identificação das ameaças de mercado, dos entrantes na competição e decisões pendentes;
        • análise de fontes externas e internas, coleta e estruturação de informações competitivas;
        • análise e interpretação de dados para obtenção de diferencial competitivo;
        • distribuição dos resultados para as áreas-chave da organização;
    • Balanced ScoreCard (BSC) é integrável ao Business Intelligence;
      • estabelece uma metodologia de gestão estratégica a partir da medição por indicadores de desempenho;
      • desdobra a visão e a estratégia da organização em um conjunto integrado de objetivos, indicadores, metas e iniciativas agrupados por perspectiva:
        • financeira → cria valor aos acionistas;
        • clientes → cria valor aos clientes (CRM, etc);
        • processos internos do negócio → tornar excelente os processos (normas ISO, CMMI, etc);
        • aprendizado e inovação → crescer e melhorar;

 

 




Reinaldo Gil Lima de Carvalho