15
1 Professor Sérgio Rodrigues [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?

Bases de Dados aplicadas - Professor S??rgio Rodrigues · Os dados são armazenados em tabelas simples gerando uma “relação”entre os diversos elementos de uma organização

Embed Size (px)

Citation preview

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.