Organização da Informação
Mineração de Dados
• A descoberta de conhecimento em bases de dados é caracterizada como um processo composto por várias etapas operacionais
KDD – Knowledge Discovery in Databases
Dado Informação Conhecimento
Cadeia de símbolos sem semântica 2.345,20; 463,00; 291,12
Representa o dado processado com significado e contexto.
Exemplo:
Capacidade de endividamento mensal = (renda mensal – despesa mensal)/renda mensal
Padrão ou conjunto de padrões cuja formulação pode envolver e relacionar dados e informações.
Se Capacidade de endividamento mensal > 60%
Então crédito = SIM
KDD – Knowledge Discovery in Databases
• Etapas do Processo de KDD
1. Definição do tipo de conhecimento a descobrir => modelo de dados 2. Criação de um conjunto de dados alvo => seleção de dados onde a
descoberta deve ser realizada
3. Limpeza e pré-processamento => remoção de ruídos, escolha de estratégias para manipular dados ausentes, formatação de dados de forma a adequá-los a ferramenta de mineração
4. Redução e projeção de dados => redução do número de variáveis e ou instâncias a serem consideradas para o conjunto de dados
5. Mineração de dados => selecionar os métodos a serem usados para localizar os padrões, busca pelo melhor ajuste dos parâmetros do algoritmo
6. Interpretação dos resultados com possível retorno aos passos anteriores
7. Implantação do conhecimento descoberto
KDD – Knowledge Discovery in Databases
Organização da Informação
O que é um dado?
Como um dado é representado?
Como um dado é armazenado?
Como os dados são organizados?
Como os dados são acessados?
Dados
Arquivos Banco de
Dados
Organização da Informação
Base de todo o processo
Organização da Informação
• Para compreender com maior facilidade os
conceitos relativos ao armazenamento de dados é fundamental revisar alguns conceitos básicos referentes à teoria e terminologia de arquivos convencionais:
– Arquivo
– Registro Lógico – Campo
Organização da Informação
• Campo
– É a unidade básica de informação formadora de um registro. É a menor porção de um arquivo que pode ser referenciada por um programa.
– Cada campo possui NOME, TIPO e TAMANHO. Os tipos de campo mais comuns são:
NUMBER
Armazena somente números Pode conter casas decimais
Pode ser utilizado em operações matemáticas CHAR
Pode armazenar letras, números e caracteres especiais
DATE
Armazena datas
Organização da Informação
• Registro Lógico
– Um registro é constituído por um conjunto de campos contendo dados. Consiste na unidade de
armazenamento e recuperação da informação em um arquivo.
– Geralmente, os registros de um arquivo possuem um formato padrão (layout), definido pela seqüência, tipo e tamanho dos campos que o compõem.
Organização da Informação
• Arquivo
– Um arquivo é uma coleção de REGISTROS do
mesmo tipo, ou seja,referentes a um mesmo assunto e com o mesmo formato padrão (layout).
– Constitui o componente do sistema no qual são
armazenados os dados, que combinados através dos programas servem de base para a geração da
informação desejada pelo usuário, através de relatórios e consultas.
Organização da Informação
• Exemplo: Arquivo de Alunos
– Campos
• Matrícula number(5)
• Nome char(20)
• Sexo char(1)
• Nascimento date
Layout do registro
• Métodos para organização dos campos
– Comprimento fixo – Delimitadores
– Uso de tags
Organização da Informação
Organização da Informação
• Métodos para organizar os campos no registro:
– Comprimento fixo
00101Maria da Costa F12/02/1989 02301João Firmino Lima M07/06/1993 04501Pedro Pereira M20/04/1992 09360Cristina As Lemos F14/06/1993
– Delimitadores
00101;Maria da Costa;F;12/02/1989 02301;João Firmino Lima;M;07/06/1993 04501;Pedro Pereira;M;20/04/1992 09360;Cristina As Lemos;F;14/06/1993
– Uso de tags
matricula=00101;nome=Maria da Costa;sexo=F;nascimento=12/02/1989 matricula=02301;nome=João Firmino Lima;sexo=M;nascimento=07/06/1993 matricula=04501;nome=Pedro Pereira;sexo=M;nascimento=20/04/1992
• Campos com tamanho fixo
– Espaço alocado e não usado = desperdício
– Ruim para campos de dados com tamanho variável – Razoável quando comprimento fixo ou com pouca
variação
Organização da Informação
• Campos separados por delimitadores
– Caracteres especiais são inseridos ao final de cada campo
– Ex.: /, ;, #, etc...
– Espaços em branco geralmente não servem
• (ex: nome de pessoa, nome de rua => problema)
• Uso de “,” ou “;” pode ser problemático se estou armazenado texto.
• Facilidade de processamento
Organização da Informação
• Uso de uma tag do tipo "keyword=value“
– Vantagem:
• informação (semântica) - metadado
• Facilidade de identificação de conteúdo do arquivo
• Possibilidade de padronização (html, XML, ...) – Desvantagem:
• keywords ocupam espaço
Organização da Informação
• Chave Primária
– É o campo(s) que abriga valores que individualizam cada registro, de tal forma que dado um valor desse item é
identificável apenas um único registro do arquivo.
– Normalmente, a chave primária é formada por um único campo, mas pode ser formada por dois ou mais.
• Chave secundária:
– pode ser utilizada para buscas simultâneas por vários registros (todos os registros de mesma chave)
– Tipicamente, não identifica unicamente um registro
• Chave de Acesso:
– É a chave usada para identificar os registros desejados em uma operação de acesso a um arquivo.
Organização da Informação
Organização de Arquivos
• Tipos de Organização de Arquivos
– Heap File:
• arquivo com registros sem ordenação.
– Arquivo Seqüencial:
• arquivos com registros ordenados segundo uma chave.
– Arquivos indexados
• Arquivos com estrutura auxiliar (índice) – Arquivo de Acesso Direto: “hash files”.
• Arquivos sem ordenação mas com acesso direto a um registro.
• Heap File – Características
– Não existe nenhuma ordenação dos registros – Acesso sequencial
– Inserção de registros ao final do arquivo
– Como acessar um registro dado uma chave de busca?
Organização de Arquivos
Organização de Arquivos Organização de Arquivos
Número Nome Idade Salário
9 Marcela 23 1800
8 Isa 25 1600
3 Carlos 27 1500
4 Elias 24 1200
1 Ana 30 1000
7 Hilda 24 1000
5 Fábio 26 1300
6 Gilberto 31 1600
Heap File - Exemplo
• Arquivo Sequencial – Características:
– Os registros são gravados em ordem sequencial por suas respectivas chaves havendo pois, uma perfeita ordenação; tanto lógica quanto física.
– Acesso serial (seqüencial) – Acesso aleatório
• Chave de acesso ≠ chave de ordenação
– Pesquisa seqüencial
• Chave de acesso = chave de ordenação
– Pesquisa binária
Organização de Arquivos
Arquivo Seqüencial
Número Nome Idade Salário
1 Ana 30 1000
2 Bruno 35 2000
3 Carlos 27 1500
4 Elias 24 1200
5 Fábio 26 1300
6 Gilberto 31 1600
7 Hilda 24 1000
8 Isa 25 1600
Arquivo Sequencial - Exemplo
Inserção de um registro
• Alternativas:
– Arquivo S – arquivo seqüencial
– Arquivo T – arquivo de transações – Arquivo A – arquivo atualizado
– A = S e T intercalados - “Balance Line”
• Inserção ao final do arquivo e ponteiramento.
Número Nome Salário Elo
1 1000 Ana 1000 Ø
2 1050 Bruno 2000 Ø
3 1075 Carlos 1500 Ø
4 1300 Elias 1200 Ø
5 1325 Fábio 1300 Ø
6 1350 Gilberto 1600 Ø
7 1400 Hilda 1000 Ø
8 1440 Isa 1600 Ø
9 1480 Marcela 1800 Ø
100 101
100 1025 Zacarias 1000 Ø 101
100 1025 Zacarias 1000 Ø
101 1310 Bela 1600 Ø
100 1025 Zacarias 1000 102
101 1310 Bela 1600 Ø
100
101
102
Registro a ser inserido
Arquivo Sequencial
Arquivo Indexado
• Características:
– Necessidade de maior eficiência na localização de um registro num arquivo sequencial
– Um índice é formado por uma coleção de pares, com cada par associando uma chave de acesso a um endereço
– Um arquivo indexado possui áreas de extensão para a implementação da operação de inserção de registros
– O uso de arquivo indexado é mais eficiente, não havendo compromisso com a ordem física do arquivo
Índices
• Finalidade:
– Permitir a rápida determinação do endereço de um registro do arquivo, dado um argumento de pesquisa
– As entradas do índice são ordenadas pelo valor da chave de acesso, cada uma constituída por um par (chave, endereço), visando tornar mais eficiente o processo de busca e o
acesso serial ao arquivo
• Vantagem:
– Cada entrada do índice ocupa um espaço bem menor do que aquele ocupado pelos dados
– Pesquisa mais rápida
– Índice Denso: entradas para cada registro do arquivo
Índices
NÚMERO ENDERECO
1000 4
1050 6
1075 7
1300 9
1325 2
1350 3
1400 1
1480 5
Número Nome Idade Salário
1 1400 Isa 25 1600
2 1325 Hilda 24 1000
3 1350 Ana 30 1000
4 1000 Carlos 27 1500
5 1480 Bruno 35 2000
6 1050 Marcela 23 1800 7 1075 Gilberto 31 1600 8
9 1300 Fábio 26 1300
Organização de Arquivos
Índice
NUMERO ENDERECO
1075 1
1350 4
1480 7
Número Nome Idade Salário
1 1000 Ana 30 1000
2 1050 Bruno 35 2000
3 1075 Carlos 27 1500
4 1300 Elias 24 1200
5 1325 Fábio 26 1300
6 1350 Gilberto 31 1600
7 1400 Hilda 24 1000
8 1440 Isa 25 1600
9 1480 Marcela 23 1800 Índice
Esparso
Índices
• Arquivo indexado
– Acesso serial:
• Feito através dos índices, pois as entradas do índice são ordenadas pelo valor da chave de acesso.
• Geralmente o bloco do índice que contém a próxima entrada já está na memória, por ser o mesmo da
última acessada, requerendo-se apenas uma leitura do disco
– Acesso aleatório:
• Busca-se o argumento de pesquisa num índice, para obtenção do endereço desejado
Organização de Arquivos
• Inserção de um registro
– O registro é armazenado em qualquer endereço vago dentro da área alocada para o arquivo
– Seus pares (chave, endereço) são inseridos nos índices correspondentes
– Reorganização de índices
• Inclusões e exclusões de registros fazem com que o índice passe a ter um encadeamento grande entre seus membros ocasionando uma perda de performance, Neste caso o
melhor é recriar o índice.
Organização de Arquivos
• Arquivo Hash - Características:
– Consiste na gravação dos registros em determinados endereços, baseados no valor de uma chave primária (ao contrário do arquivo indexado)
– Utiliza uma função que calcula o endereço de um registro, eliminando a necessidade de um índice
– Objetivo principal é o mesmo do arquivo indexado, que é obter acesso aleatório eficiente
• Eficiente para operações com restrições de igualdade sobre o atributo da função.
• Sem vantagem para operações com restrição diferente de igualdade.
– Outra diferença: acesso sequencial (pela ordem da chave) não previsto.
Organização de Arquivos
• Endereçamento:
– Problema: encontrar uma função F que transforme o valor C da chave de um registro no endereço E
correspondente
– O resultado da função determina em que "bucket"
(Página/bloco) o registro será armazenado.
– H(K) = E: H é uma função, K é o valor de um atributo e E é a identificação do bucket.
– Se não houver espaço para armazenar o registro no bucket, então cria bucket de overflow.
Arquivo Direto
Arquivo Direto
Numero Nome Idade Salario Bucket
1050 Hilda 24 1000 0
1350 Gilberto 31 1600 0
1440 Isa 25 1600 0
Numero Nome Idade Salario Bucket
1000 Ana 30 1000 1
1075 Bruno 35 2000 1
1300 Elias 24 1200 1
1480 Marcela 23 1800 1
Numero Nome Idade Salario Bucket
1100 Carlos 27 1500 2
1400 Fabio 26 1300 2
• Tratamento de colisões:
– Colisão: ocorre quando é atribuído o mesmo endereço a dois diferentes valores da chave de acesso
– Havendo colisão, é necessário fazer o tratamento de colisões, escolhendo um novo endereço para o registro que a provocou.
Arquivo Direto
Sistemas Baseados em Arquivos
Visão geral no acesso ao dado
Sistema A Funcionário
Pagamento Cargo
Sistema B Funcionário
Projeto
Redundância e inconsistência de dados
Duplicação de informações em diferentes arquivos Alteração não é refletida para todos os arquivos
Isolamento dos dados
Dificuldade de acessar os dados Múltiplos formatos
Necessidade de escrever um novo programa para realizar cada nova tarefa
Segurança
Não existe mecanismos para criar visões nem para restringir o acesso
Problemas dos Sistemas Baseados em Arquivos
Sistemas Baseados em Banco de Dados
Quais são as grandes Funcionalidades da caixa preta ?
Visão geral no acesso ao dado
SGBD Dados
Sistema A
Sistema B
Sistema de Banco de Dados
• O que é:
Coleção de dados inter-relacionados
Conjunto dos programas para acessar os dados
Um ambiente que é conveniente e eficiente de usar
Sistema de Banco de Dados
Componentes:
1. Hardware
– Disco
2. Software
– SGBD – Isola os usuários dos detalhes de armazenamento e acesso
3. Dados
– Dados do usuário
– Metadados (Descrição do dado)
4. Usuários
– Programador de aplicações – Usuário final
Vantagens dos SGBDS
Redução de redundância
eliminação de múltiplas cópias do mesmo dado.
Eliminação de inconsistências
consequência direta do item anterior.
Compartilhamento dos dados acesso concorrente.
Segurança de acesso
O DBA define quem ( qual usuário ) pode acessar o quê(qual tabela)
Integridade referencial Independência de Dados
Independência de Dados
Processamento de arquivos
Qual é o formato do dado armazenado ? Onde o dado está localizado ?
Como o dado é acessado ?
Ex: Obter o salário médio dos engenheiros da empresa
Formato:
campo salário do tipo numérico com 6 bytes começando na posição 29 do registro
Localização:
arquivo “funcionário.dat” localizado no diretório “Func” do disco
“E” na máquina “X”
Acesso:
arquivo de organização sequencial ordenado pela matrícula.
Independência de Dados
• #!/usr/bin/env perl
• # Author:Luiz A Vivacqua
• use 5.006;
• my ($matricula, $nome, $cargo, $salario, $contador, $acumula_salario, $media);
• open(INFO, "<", “E:\Func\funcionario.dat") or die "cant open the file";
• while(chop($line=<INFO>))
• {
• ($matricula, $nome, $cargo, $salario)=split (/;/,$line);
• if ($cargo='engenheiro')
• {
• $contador = $contador+1;
• $acumula_salario = $acumula_salario + $salario;
• }
• }
• close(INFO);
• $media = $acumula_salario/$contador;
Independência de Dados
É a habilidade de se usar o dado sem conhecer detalhes de sua representação.
Provê imunidade as aplicações com relação as
estruturas de armazenamento e métodos de acesso.
Independência Lógica
Se o dado é acessado através de uma visão, então mudanças no esquema conceitual não interferem com o funcionamento do programa.
Independência Física
Mudanças na estrutura de armazenamento tais como a criação de índices ou a localização dos arquivos físicos não interferem com o funcionamento do programa.
Independência de Dados
• Exemplo: Obter o salário médio dos engenheiros da empresa
Select AVG(salario) From funcionario where cargo=‘engenheiro’
Vantagem dos SGBDs
• Integridade Referencial
– Se uma relação R2 possui uma chave estrangeira FK equivalente a chave primária PK de uma relação R1, então todo valor de FK em R2 deve:
• Ser igual ao valor de PK em alguma tupla de R1, ou
• Ser totalmente nulo.
Vantagem dos SGBDs
Integridade Referencial
SGBD – Armazenamento de Dados
• Estruturas de Armazenamento
Lógica Física
Tablespace
Tabela
Índice
1
* 1
*
Arquivo
1 *
Tablespace define a localização de armazenamento para tabelas e índices Nível Lógico
Usar tablespaces diferentes para cada projeto.
Usar tablespaces diferentes para índice e tabela Nível Físico
Visão Macro do SGBD
Compilador DML
Requisições Compiladas
Requisições
“EMBEDED”
Requisições
“AD-HOC”
Otimizador
Requisições Otimizadas
Gerente em tempo de execução
Dados MetaDados LOG
Restrições de Segurança e Integridade Concorrência e
Recuperação De Falhas
Plano de Execução da Consulta
Armazenamento
Otimizador
Escolhe a melhor maneira de executar uma consulta.
Diversos planos de execução são gerados e escolhido aquele com o menor custo.
Custo estimado em função do número de operações de acesso a disco.
Segurança e Integridade
O SGBD deve monitorar e controlar o acesso aos objetos de forma a permitir que somente usuários autorizados tenham acesso.
Garantir que restrições de integridade (referencial,
Visão Macro do SGBD
Concorrência e Recuperação de Falhas
O sistema deve estar apto a detectar falhas e a recuperar o banco de dados ao seu último estado consistente
Ex: falta de energia
Controle de Concorrência
O SGBD deve permitir o acesso concorrente por múltiplos usuários de forma transparente e segura.
Visão Macro do SGBD
Projeto Físico
A Linguagem de Definição de Dados:
• Subcategoria de SQL que permite a criação e a alteração dos objetos do banco de dados.
• Normalmente, é de uso exclusivo do Administrador de Banco de Dados, contudo, seu uso fica sujeito à política da empresa.
• PRINCIPAIS COMANDOS DDL:
• CREATE, ALTER, DROP TABLE
• CREATE, DROP INDEX
• CREATE VIEW
Projeto Físico
Criando tabela
CREATE TABLE nome-da-tabela
( definição-da-coluna1 , definição-da-coluna2, ..., definição- da-colunaN )
ONDE
definição-da-coluna é definida como:
nome-da-coluna tipo-de-dado [CONSTRAINT]
Projeto Físico
PRINCIPAIS CONSTRAINTS:
Primary key – define a chave primária da tabela Foreign key – define uma chave estrangeira Unique – define que o valor da coluna é único
Not Null – especifica que a coluna não pode ter valores nulos Check – estabelece um domínio para os valores da coluna
Podem ser especificadas:
na definição da coluna
ao final da definição das colunas
Projeto Físico
SINTAXE:
ALTER TABLE nome-da-tabela ADD CONSTRAINT ou
DROP CONSTRAINT ou ADD COLUMN ou
DROP COLUMN ou
RENAME TO novo_nome_tabela ou
RENAME nome_da_coluna TO novo_nome_coluna
Acesso – Linguagem SQL
Comando SELECT - Sintaxe Geral
SELECT [ALL/DISTINCT] coluna1, coluna2, ..., colunaN FROM nome_tabela1, nome_tabela2, ..., nome_tabelaN [WHERE predicado]
[GROUP BY coluna1, coluna2, ..., colunaX]
[HAVING predicado]
[ORDER BY coluna1[asc/desc], coluna2[asc/desc], ..., colunaY[asc/desc]];
SQL - CONSULTAS
SQL - DML
Inserindo Dados:
INSERT - Sintaxe:
Insert into nome_tabela [( campo, ... , campo ) ] values ( valor1, ... , valorN );
Insert into nome_tabela [ ( campo, ... , campo ) ] Select ... From ... Where ... ;
SQL - DML
DELETE - Sintaxe:
Delete From nome_tabela [ Where predicado ] ;
SQL - DML
UPDATE - Sintaxe:
Update nome_tabela Set campo1 = valor ...,
[ campoN = valor ] [ Where predicado ] ;