1
Professor Sérgio [email protected]
Bases de Dados aplicadas a Inteligência de Negócios
2
� Sistemas de Gerenciamento de Bancos de Dados (SGBD)
◦ Tipos de Banco de Dados
◦ Noções de SQL
� Modelagem de Banco de Dados
� Bancos de Dados Distribuídos
Agenda
� Como armazenar, organizar e disponibilizar as informações que fluem numa organização de modo a atender suas necessidades de negócio?
1. Formulários em papel
2. Arquivos de computador isolados
3. Bancos de dados
4. Data marts e data warehouses
� Exemplo: Escola
◦ Para um gestor de educação, é importante avaliar a performance de alunos e professores
◦ Algumas perguntas interessantes:
� As notas recebidas pelos alunos estão relacionadas à avaliação que fazem de seus professores?
� Há algum professor cujos alunos consistentemente têm notas mais baixas do que a média da escola?
� As instalações onde as aulas são lecionadas têm alguma influência na performance de alunos e professores?
2
Entidadesexternas
Entidadesinternas
Atividades Atividades Atividades Atividades
Área funcional 1 Área funcional 2 Área funcional 3 Área funcional 4
InformaçõesInformações
InformaçõesInformações
InformaçõesInformações
Avaliação deProfessores
Acompanhamentode Alunos
Alocação de Salas de Aula
Secretaria Infra-estrutura
Alunos Professores Secretaria
Outrasatividades
� Coleta e processamento de informações em papel
◦ Ineficiência� Tempo
� Alta probabilidade de erros
◦ Custo elevado� Papel� Mão-de-obra� Correção de erros� Oportunidades de negócio perdidas
� Coleta e processamento de informações em papel
◦ Falta de escalabilidade� Problemas de ineficiência aumentam de forma mais que
proporcional com o volume de informações� Espaço físico
� Necessidades de mão-de-obra
◦ Segurança� Custo e dificuldade para fazer backups� Deterioração
3
� Serviços da Tecnologia da Informação
◦ Coleta de dados
◦ Armazenagem
◦ Processamento
◦ Disponibilização
� Grande potencial para redução de custos e aumento de produtividade
� Como utilizá-la para gerenciar informações do negócio?
4
� Problemas com a armazenagem de informações em arquivos não relacionados
◦ Ineficiência
� Redundância de informações
� Dificuldade de manter informações atualizadas em todos os arquivos
� Dificuldade para encontrar as informações requisitadas
� Consolidação manual de informações
� Problemas com a armazenagem de informações em arquivos não relacionados
◦ Inconsistência� Erros� Problemas de atualização
◦ Custos� Manutenção e gerenciamento
� Segurança dos vários arquivos� Correção de erros� Baixa produtividade
Fonte: Turban et al., “Administração de
Tecnologia da Informação”, Ed. Campus, 2003.
5
Fonte: Turban et al., “Administração de
Tecnologia da Informação”, Ed. Campus, 2003.
Sistemas de gerenciamento de bases dados (SGBDs) permitem a integração, processamento, e distribuição das informações de uma organização.
Registro
Campos
Arquivo
Banco de dadosBanco de dados
D A T A W A R E H O U S E
Extratores de Informações
Operational Systems
Base DadosExternasBase Dados
Operacional
Acesso& Relatórios OLAP Internet
Data Mining
FerramentasDesenvolvimento
MetadataRelational Database
Multi-Dimensional Database
6
Banco de Dados
Um banco de dados é um conjunto integrado de elementos de dados
relacionados logicamente. Consolida registros previamente armazenados
em arquivos separados em uma fonte comum de registros de dados que
fornece dados para muitas aplicações. Os dados armazenados em um
banco de dados são independentes dos programas aplicativos que os
utilizam e do tipo de dispositivos de armazenamento secundário nos
quais estão armazenados.
• Bancos de Dados Operacionais: armazenam dados detalhados, de
forma estruturada, necessários para apoiar os processos e operações;
• Bancos de Dados Distribuídos: são reproduções ou partes de bancos
de dados para servidores de rede em uma multiplicidade de locais. A
reprodução e distribuição de banco de dados é feita para melhorar o
desempenho e a segurança do banco de dados;
• Banco de Dados Externos: são bancos de dados externos à
organização e que podem ser acessados via internet, por exemplo.
• As relações entre os muitos registros individuais nos bancos de dados
são baseados em uma das diversas estruturas ou modelos lógicos de
dados.
•Os SGBDs são projetados para utilizar uma estrutura específica de dados
permitindo aos usuários finais acesso rápido e fácil a informações
armazenadas. As estruturas podem ser classificadas da seguinte forma:
• Estrutura Hierárquica;
• Estrutura em Rede;
• Estrutura Relacional;
• Estrutura Multidimensional;
• Estrutura Baseada em Objetos;
Estrutura Hierárquica:
Os primeiros pacotes SGBDs para mainframes utilizavam a estrutura hierárquica
na qual as relações entre os registros formam uma hierarquia ou estrutura tipo
árvore. Desta forma, todos os relacionamentos entre os registros são de “um –
para – muitos” , uma vez que cada elemento de dados ou registro se relaciona
apenas com um elemento acima dele.
7
Estrutura em Rede:
A estrutura em rede pode representar relações lógicas mais complexas e ainda é
utilizada por alguns pacotes SGBD de mainframe. Ela permite relacionamentos
do tipo “muitos – para – muitos” entre os registros, ou seja, o modelo em rede
pode acessar um elemento de dados seguindo um dentre vários caminhos, porque
qualquer elemento ou registro de dados pode ser relacionado com qualquer
número de outros elementos de dados.
Estrutura Relacional:
O modelo relacional tornou-se o mais popular das estruturas de bancos de
dados. Ele é utilizado pela maioria dos pacotes SGBD para
microcomputadores, bem como por muitos sistemas de redes de
servidores. Os dados são armazenados em tabelas simples gerando uma
“relação”entre os diversos elementos de uma organização. Os SGBDs
baseados no modelo relacional, podem vincular elementos de dados de
várias tabelas para fornecer informações para os usuários ou mesmo
sistemas operacionais
No Depto Nome Localização
101 Compras AB01
102 Vendas CR03
103 Gerência AB05
No Func Nome Cargo No Depto
11 Carlos Comprador Júnior
101
12 Marina Gerente 103
13 Felipe Vendedor Sênior
102
Estruturas de Banco de Dados
Estrutura Multidimensional:
A estrutura multidimensional de banco de dados é uma
variação do modelo relacional que utiliza estruturas
multidimensionais para organizar dados e expressar as
relações entre os mesmos. Este modelo pode ser visualizado
como cubos de dados e cubos dentro de cubos de dados.
Cada face do cubo é considerada uma dimensão dos dados.
Modelo Multidimensional
FilialFilial Prod.IDProd.ID VendaVenda DiaDia
SPSP
RJRJ
MGMG
AA
BB
BB
RegiãoRegião PaísPaís
NENE
SESE
BRBR
BRBR
RegiãoRegião FilialFilial
NENE
SESE
PEPE
RJRJ
DescriçãoDescrição Prod.IDProd.ID
StandStand
Super LSuper L
AA
BB
Tabelas Tabelas RelacionaisRelacionais
Banco de DadosBanco de DadosMultidimensionalMultidimensional
JANJAN FEVFEV
VendaVenda
AA
BB
NENE
SESE
COCO
8
Ex. Banco de Dados Multidimensional criado para suportar um modelo de Orçamento
� Regional -> Filial
� Cliente -> Hierarquia de Vendas: dados do cliente e de quem o atende
� Produto -> Versões
� Tempo-> Ano, mes
� Indicadores -> Receita, Físico, Preço Médio
Banco de DadosBanco de DadosMultidimensionalMultidimensional
JANJAN FEVFEV
VendaVenda
AA
BB
NENE
SESE
COCO
� Os Modelos Relacionais permitem ao usuário final a fácil respostas a
requisições específicas. Isso porque nem todas as relações entre os elementos
de dados devem ser estruturadas quando o banco é criado.
� Os DBAs que usam SGBDs tais como: Oracle, SQL Server, MySQL,
PostGreSQl, etc.... criam novas tabelas de relações de dados utilizando partes
dos dados de diversas tabelas já existentes. Desta forma, os bancos de dados
relacionais são mais fáceis de serem trabalhados e mantidos pelos DBAs do
que os modelos hieráquicos e de rede.
� A principal limitação do modelo relacional é que os SGBDs não
conseguem processar grandes quantidades de transações tão depressa e com
tanta eficiência como os modelos hieráquicos e de rede, nos quais todas as
relações já são pré-estabelecidas. Esta limitação tem sido atenuada pelo
desenvolvimento de soluções mais completas e seguras de SGBDs
multidimensional e orientadas a objetos.
� O Chamado Sistema de Gerenciamento de Banco de Dados
(DBMS ou SGBD), funciona como interface entre os usuários e
os bancos de dados e entre os aplicativos operacionais e o
banco de dados corporativo.
SGBDSGBD
SGBDSGBD
Atividades Básicas
1- Atualização e manutenção de bancos de dados para refletir novas
transações de negócio;
2- Fornecimento de informações requisitadas para cada aplicação
operacional mediante o uso de aplicativos que compartilham dados em
bancos de dados comuns;
3- Desenvolvimento de uma capacidade de consulta/resposta e emissão
de relatórios;
9
� Os sistemas de gerenciamento de bancos de dados ou DataBase Management Systems (DBMS) permitem que todas as informações de uma organização sejam organizadas e administradas de modo centralizado
� Funcionalidades
◦ Armazenagem e busca eficientes de diferentes tipos de informação
◦ Garantia de integridade e consistência dos dados
◦ Dispositivos de segurança e recuperação
� Funcionalidades
◦ Separação dos aspectos lógicos e físicos dos dados
◦ Personalização das formas de visualização das informações
◦ Implementação física otimizada, de modo distribuído ou centralizado
◦ Escalabilidade
◦ Possibilidade de conexão a aplicativos e outros bancos de dados
� Dicionário de dados
◦ Definição e características dos elementos de dados (campos dos registros)� Nome
� Tipo (ex., número, data, texto)� Intervalo de valores e outras informações de validação de
conteúdo� Fonte (ex., área da empresa, função, aplicativo)� Autorização de acesso� Aplicativos que utilizam o elemento
Tabelas Tabelas relacionadasrelacionadas
Pesquisa feita Pesquisa feita com base nas com base nas tabelas tabelas relacionadasrelacionadas
10
� O Structured Query Language (SQL) é utilizado para realizar operações em DBMS
SELECT DISTINCTROW Categories.CategoryID, Categories.CategoryName,
Products.ProductName, Sum([Order Details Extended].ExtendedPrice) AS
ProductSales
FROM Categories INNER JOIN (Products INNER JOIN (Orders INNER JOIN
[Order Details Extended] ON Orders.OrderID = [Order Details
Extended].OrderID) ON Products.ProductID = [Order Details
Extended].ProductID) ON Categories.CategoryID = Products.CategoryID
WHERE (((Orders.OrderDate) Between #1/1/1997# And #12/31/1997#))
GROUP BY Categories.CategoryID, Categories.CategoryName,
Products.ProductName
ORDER BY Products.ProductName;
Estrutura física
Réplicas Partições
Centralizada Distribuída
Arquivos num mesmo local+ segurança+ consistência+ recuperação
- único ponto de falha- velocidade de acesso
Cópias dos arquivos em vários locais+ confiabilidade+ velocidade de acesso
- sincronização
Divisão dos arquivos em vários locais+ confiabilidade (parcial)+ velocidade de acesso (local)
- performance (ops. remotas)
Estrutura CentralizadaEstrutura CentralizadaFonte: Turban et al.,
“Administração de Tecnologia da
Informação”, Ed. Campus, 2003.
Estrutura DescentralizadaEstrutura DescentralizadaFonte: Turban et al.,
“Administração de Tecnologia da
Informação”, Ed. Campus, 2003.
Partições e/ou Partições e/ou réplicasréplicas
11
Banco de Dados Normalização
� Normalização de dados é o processo formal passo a passo que examina os atributos de uma entidade, com o objetivo de evitar anomalias observadas na inclusão, exclusão e alteração de registros.
� Minimização de redundâncias e inconsistências
� Facilidade de manipulações do banco de dados
� Facilidade de manutenção do sistema de Informação
� O Processo de normalização aplica uma série de regras sobre as tabelas de um banco de dados, para verificar se estas estão corretamente projetadas.
� Na prática, são usadas três Formas Normais.◦ Primeira Forma Normal (1FN)◦ Segunda Forma Normal (2FN)◦ Terceira Forma Normal (3FN)
12
� Uma relação estará na Primeira forma normal 1FN, se e somente se todos os domínios básicos contiverem somente valores atômicos (não contiver grupos repetitivos).
� Em outras palavras podemos definir que a primeira forma normal não admite repetições ou campos que tenha mais que um valor.
� Procedimentos:◦ a) Identificar a chave primária da entidade;◦ b) Identificar o grupo repetitivo e removê-lo da
entidade;◦ c) Criar uma nova entidade com a chave primária
da entidade anterior e o grupo repetitivo.
� A chave primária da nova entidade será obtida pela concatenação da chave primária da entidade inicial e a do grupo repetitivo.
� Exemplo. Considere a tabela cliente:◦ Cliente
� Código_cliente� Nome� Telefone� Endereço
� Analisando teremos:◦ Todos os clientes possuem Rua, CEP e Bairro, e essas
informações estão na mesma célula da tabela, logo ela não está na primeira forma normal. Para normalizar, deveremos colocar cada informação em uma coluna diferente, como no exemplo a seguir:
13
� Mesmo com o ajuste, a tabela ainda não está na primeira forma normal, pois há clientes com mais de um telefone e os valores estão em uma mesma célula. Para normalizar será necessário criar uma nova tabela:
� Uma tabela está na Segunda Forma Normal 2FN se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave primária (dependente de toda a chave e não apenas de parte dela).
� Se o nome do produto já existe na tabela
produtos, então não é necessário que ele exista na tabela de pedidos. A segunda forma normal
trata destas anomalias e evita que valores fiquem
em redundância no banco de dados.
� Procedimentos:◦ a) Identificar os atributos que não são funcionalmente
dependentes de toda a chave primária;◦ b) Remover da entidade todos esses atributos
identificados e criar uma nova entidade com eles.
� A chave primária da nova entidade será o atributo do qual os atributos do qual os atributos removidos são funcionalmente dependentes.
� Exemplo. Considere a tabela vendas:◦ Vendas
� N_pedido� Código_produto� Produto� Quant� Valor_unit� Subtotal
14
� Analisando teremos:� O nome do produto depende do código do produto, porém
não depende de N_pedido, que é a chave primária da tabela, portanto não está na segunda forma normal. Isto gera problemas com a manutenção dos dados, pois se houver alteração no nome do produto teremos que alterar em todos os registros da tabela venda.
� Para normalizar esta tabela teremos de criar a tabela Produto que ficará com os atributos Código_produto e produto e na tabela Venda manteremos somente os atributos N_pedido, código_produto, quant, valor_unit e subtotal.
� Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave.
� Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela equação de outros campos da mesma tabela.
� Procedimentos:◦ a) Identificar todos os atributos que são funcionalmente
dependentes de outros atributos não chave;◦ b) Removê-los.
� A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes.
15
� Exemplo. Considere a tabela abaixo:
� Considerando ainda a tabela Venda, veremos que a mesma não está na terceira forma normal, pois o subtotal é o resultado da multiplicação Quant X Valor_unit, desta forma a coluna subtotal depende de outras colunas não-chave.
� Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal, como no exemplo a seguir:
� Conforme referências, muitos exemplos e figuras
deste material foram recolhidos de livros, artigos e
apresentações coletadas em livrarias, bibliotecas e na internet.
� Agradecimentos, em especial, aos professores
Ana Silva Antunes, Paulo Freitas, Valter Moreno e ao blog do Luis que mantiveram seus materiais
disponíveis, propiciando assim uma disseminação acelerada do conhecimento neste contexto.