Upload
leonardo-dias
View
20
Download
2
Embed Size (px)
DESCRIPTION
TBD Atividade Aberta 3
Citation preview
ENGENHARIA DE SOFTWARE - TECNOLOGIA DE BANCOS DE DADOS - ATIVIDADE ABERTA 3
LEONARDO DIAS – 1038391
1
Unidade 01 – Dados Semiestruturados: XML, DTD e XML Schema
Dados estruturados são dados que possuem uma estrutura bem definida e rígida. Ex.: tuplas de uma relação em
um esquema relacional.
Dados não-estruturados são dados que não possuem alguma estrutura prévia. Ex.: imagem, vídeo, aúdio,
páginas no formato HTML, onde aparecem tags pré-definidas definidas que especificam apenas a formatação
dos dados e não o significado dos mesmos.
Dados semiestruturados são dados que possuem uma estrutura flexível (não rígida). Ex.: dados bibliográficos
oriundos de fontes heterogêneas, arquivos BibTex, dados da Web.
Características de dados semiestruturados são:
Possuem estrutura (esquema) irregular, implícita e não declarada;
São heterogêneos, envolvendo diferentes tipos;
São auto descritivos (self-described), já que o esquema é misturado com os valores dos dados;
O esquema evolui com a evolução dos dados.
Para representar dados semiestruturados, utilizam-se grafos direcionados.
Os nós internos representam objetos complexos (atributos compostos).
Os nós externos representam objetos atômicos (atributos simples).
As arestas possuem rótulos que representam:
o Nomes de atributos compostos e simples que referenciam os objetos complexos e atômicos,
respectivamente;
o Relacionamentos entre os objetos.
XML - eXtensible Markup Language
Padrão para marcação de dados na Web, com foco na descrição do conteúdo
A XML é um subconjunto da SGML1 (Standard Generalized Markup Language)
SGML “Standard Generalized Markup Language”
o Uma linguagem de marcação abrangente mas complexa
o Desenvolvida por Charles F. Goldfarb
o Adequada para aplicações envolvendo documentos grandes e complexos
o Tornou-se um padrão ISO (ISO 8879) na década de 80
W3C
Órgão responsável pela padronização de iniciativas ligadas à Web. Ex.: HTML, XML e iniciativas relacionadas,
entro outros.
Especificações dessas iniciativas são classificadas de acordo com seu nível de “maturidade”
HTML x XML
HTML – descreve o formato do documento
o HTML tem um conjunto fixo de tags e não descreve conteúdo
XML – descreve o conteúdo do documento
o Usuário define suas próprias tags para criar uma estrutura
o Um documento XML não tem nenhuma instrução para apresentação
A pesquisa na HTML é feita de forma mais bruta; na XML, pode-se consultar pelo nome do marcador.
Na HTML, a visualização é fixada; na XML, um mesmo documento pode ser visualizado de forma
diferentes.
XML - vantagens em relação a HTML
A estrutura do documento XML permite que ferramentas baseadas em banco de dados possam
processar e consultar seu conteúdo.
A XML oferece facilidades tanto para os que definem o documento como para os recebem ou
trabalham com ele.
A XML tende a ser um padrão permanente.
A XML possibilita troca de dados entre aplicativos, proporcionando maior interoperabilidade.
DTD – Document Type Description
A DTD é um documento tipo texto que contém as regras para a elaboração de um documento XML.
Define as regras de formação dos elementos e atributos
Quais os elementos que podem aparecer em um documento
Em que ordem eles podem aparecer
Qual a hierarquia permitida para os elementos
Quais os atributos que um elemento pode conter
Pode ser definido dentro ou fora do documento XML (Interno ou Externo).
ENGENHARIA DE SOFTWARE - TECNOLOGIA DE BANCOS DE DADOS - ATIVIDADE ABERTA 3
LEONARDO DIAS – 1038391
2
Documentos XML são formados, basicamente, por elementos e atributos.
Uma DTD suporta a definição desses dois conceitos assim como a relação existente entre os elementos
contidos nos documentos e os atributos referentes a esses elementos.
Declaração de Elemento:
'<!ELEMENT' S Nome S Especificação de Conteúdo S? '>‘
“S” significa espaço e “Nome” corresponde ao nome do elemento. Existem regras para um nome de
elemento.
Especificação de conteúdo.
EMPTY (Vazio): o elemento não possui nem texto nem elementos a ele associados.
MIXED (Misto): o elemento possui texto e elementos a ele associados.
ANY (Qualquer): o elemento pode conter qualquer combinação de elementos e texto.
CHILDREN (elementos filhos): o elemento é composto de outros elementos e não possui texto a ele
associado. Refere-se a esses elementos como subelementos e os elementos que possuem subelementos
serão chamados de Grupo.
Cardinalidade dos elementos
? - No máximo uma ocorrência, * - Nenhuma ou diversas ocorrências e + - No mínimo uma
ocorrência
A declaração <!ELEMENT a ( b | c )>, indica que o elemento a é do tipo grupo (possui filhos) e que este
é formado pelo elemento b ou pelo elemento c, mas nunca por ambos.
Símbolo "|" é empregado para simbolizar elementos alternativos.
Declaração de Atributo:
Uma declaração de conteúdo de um elemento é feita pela combinação de elementos, com ou sem
símbolos de cardinalidade e de opcionalidade, aninhados por meio de parênteses.
A ordem em que os elementos devem aparecer no documento XML é uma restrição encontrada em
XML e é representada na DTD pela vírgula (",") existente entre os elementos.
Unidade 02 – Banco de Dados Distribuídos
Banco de Dados distribuídos é uma coleção de base de dados logicamente inter-relacionadas, distribuídas por
uma rede de computadores.
Banco de Dados distribuídos (BDD)
Consiste num conjunto de locais (sítios), cada um dos quais mantendo um sistema de Bancos de dados local, e
um sistema de gerenciamento de bancos de dados distribuído.
Cada local está apto a proceder transações locais e globais:
Transação local: acessam dados em um único local;
Transação global: acessam dados em diversos locais.
Os dois tipos de banco de dados distribuídos existentes são os homogêneos e os heterogêneos. Os
homogêneos são compostos pelos mesmos bancos de dados, enquanto os heterogêneos são aqueles que são
compostos por mais de um tipo de banco de dados. Em um banco de dados distribuídos os arquivos podem
estar replicados ou fragmentados, esses dois tipos podem ser encontrados ao longo dos nós do sistema de
banco de dados distribuídos.
A arquitetura básica é composta de aplicações locais e aplicações globais. As locais são aplicações que não
requerem dados de outros lugares, e as globais são aplicações que requerem dados de outros lugares.
Vantagens de banco de dados distribuídos
Compartilhamento de dados e controle distribuído: O administrador global, é o responsável pelo sistema como
um todo, mas parte das responsabilidades são distribuídas aos administradores locais que gozam de certa
autonomia.
Maior confiabilidade: O sistema funciona conforme o projeto.
Maior disponibilidade: O sistema estará disponível por uma maior escala de tempo, pois está distribuídos em
locais diferentes.
Melhor desempenho no processamento de consultas: Sub-consultas podem ser executadas em paralelo.
Maior escalabilidade: É mais fácil acrescentar um nó, desde que os mesmos sejam autônomos, do que substituir
DECLARAÇÃO SIGNIFICADO
ELEMENT Declaração de um tipo de elemento XML
ATTLIST Declaração dos atributos associados a um elemento específico, assim
como dos valores possíveis para esses atributos.
ENTITY Utilizadas para associar nomes com outros fragmentos do documento.
Podem ser utilizadas entidades internas, ou externas.
A utilização é na forma de &nome.
NOTATION Declaração para utilização no processamento do documento XML.
ENGENHARIA DE SOFTWARE - TECNOLOGIA DE BANCOS DE DADOS - ATIVIDADE ABERTA 3
LEONARDO DIAS – 1038391
3
um sistema centralizado existente por um maior.
Desvantagens de banco de dados distribuídos
Custo de desenvolvimento do software: A grande complexidade de implementação de um banco de dados
distribuído torna-o mais caro.
Grande potencial para bugs: Ocorrência de erros muito sutis na colaboração entre os nós do banco de dados
distribuído.
Aumento do overhead de processamento: Esse fator ocorre devido à troca de mensagens e à computação
adicional para obter a coordenação entre os nós.
Questões de projeto específicas: Por exemplo, replicação e fragmentação de dados.
Dificuldades para obter conhecimento global: Por exemplo, controle de concorrência entre transações
distribuídas e detecção de deadlock.
Tipos de sistemas de BDD
Centralizados: autonomia total, nenhuma distribuição e nenhuma heterogeneidade.
Sistemas de bancos de dados distribuídos puros: nenhuma autonomia, alta distribuição, nenhuma
heterogeneidade.
Sistema de bancos de dados Federado: alta autonomia (menor que o multibancos), alta heterogeneidade, alta
distribuição.
Sistema multiBancos de bancos: alta autonomia, alta heterogeneidade, alta distribuição.
Fragmentação
Horizontal: A tabela é subdividida em um conjunto de tabelas. Cada uma delas com parte das tuplas da tabela
originária.
Vertical: As colunas de uma tabela estão divididas em N tabelas. Id-tupla.
Mista: Fragmentação Horizontal + Vertical
Vantagens
Disponibilidade;
Paralelismo aumentado – minimiza movimentação entre locais;
Maior disponibilidade, controle e acesso mais rápido;
Desvantagens
Overhead na atualização.
Sobrecarga do sistema no gerenciamento de id-tuplas e junção de tabelas.
Controle de concorrência em banco de dados distribuídos
O controle de concorrência procura sempre buscar um equilíbrio adequado entre a manutenção da
consistência e o alto nível de concorrência, mas problemas podem ocorrer na gerência de cópias múltiplas,
falhas locais em nós, falha nas ligações de comunicação, finalização (commit) distribuída e o
bloqueio(deadlock) distribuído.
Conceito de replicação em banco de dados
Replicação de banco de dados é um meio de se copiar de forma gerenciada os dados entre servidores de
banco de dados, que podem estar em rede local ou na internet. Segundo [Ikematu 2005], o objetivo de um
mecanismo de replicação de dados é permitir a manutenção de várias cópias idênticas de um mesmo dado
em vários sistemas gerenciadores de banco de dados (SGBD).
Vantagens da replicação
Alto desempenho: redução na transferência de dados e acesso a menos dados (caso réplica seja parcial);
Alta disponibilidade: caso um dado requisitado esteja indisponível em um servidor, o mesmo pode ser acessado
por sua réplica em outro servidor;
Consistência de dados: elimina o problema de dados inconsistentes decorrentes da integração tardia entre
sistemas.
Desvantagens da replicação
Transparência: acesso a recursos replicados deve ser semelhante ao de recursos não replicados;
Inconsistência: sincronizar as réplicas a atualizar os valores para convergirem.
Tipos de replicação
Replicação síncrona: as cópias dos dados são mantidas sincronizadas e consistentes. Se uma cópia é atualizada
as mudanças serão imediatamente aplicadas para todas as outras bases de dados com a mesma transação.
Replicação assíncrona: as cópias dos dados ficarão temporariamente dessincronizadas. Se uma cópia é
atualizada, a mudança será aplicada e propagada para as outras cópias num segundo passo, em uma
transação separada que ocorre posteriormente.
Estrutura de um BDD
Todo nó possui um Gerenciador de Transações (GT), igual no sgbd no centralizado, sendo que os vários GTs
cooperam entre si para a execução das transações. Ele é responsável por:
Manutenção do log, já que gerencia a recuperação;
Participação em controles de concorrência.
O Gerenciador de Transações gerencia a execução de transações que fazem acesso a dados armazenados
em um só local, independentemente da transação ser local ou lobal.
ENGENHARIA DE SOFTWARE - TECNOLOGIA DE BANCOS DE DADOS - ATIVIDADE ABERTA 3
LEONARDO DIAS – 1038391
4
O Coordenador de Transações (CT) coordena a execução de várias transações (locais e globais) iniciadas
naquele nó.
O Coordenador de Transações é responsável por:
Iniciar a execução de uma transação
Distribuir a transação nos nós apropriados
Coordenar a conclusão da transação, com commit ou abort
TWO-PHASE COMMIT (2PC)
Para toda transação Tn iniciada em um sítio Sn, após todos os sítios da rede indicarem seu término, o
Coordenador de Transação (CT) enviará uma mensagem: prepare T. Se a resposta for positiva por parte de
todos os sítios <ready>, o CT envia mensagem de <COMMIT>, caso contrário, de <ABORT>.
Quando existe falha em um nó durante o COMMIT, ao retornar da falha, o SGBD examina seu log verificando as
transações que estavam em execução quando a falha ocorreu.
Se no log ele encontra a mensagem de commit ou abort, elas são executadas imediatamente.
Gerência de falhas no TWO-PHASE COMMIT
Falha no coordenador:
Os sítios ativos precisam ter um registro <ready> mas nenhum <abort> ou <commit>. Com isso, ficam
aguardando o coordenador para o destino da transação.
THREE-PHASE COMMIT
Para toda transação Tn iniciada em um sítio Sn, após todos os sítios da rede indicarem seu término, o
Coordenador de Transação (CT) enviará uma mensagem: prepare T.
Se o CT recebe uma mensagem de abort, ou se não recebe resposta em um intervalo de tempo
determinado, ele decide ‘abortar’ T.
Se o CT recebe uma mensagem de OK, ele envia uma mensagem de pré-commit a todos os nós.
Depois que CT recebe a mensagem de conhecimento dos nós em relação ao pré-commit, ele envia a
mensagem de commit, caso contrário, envia a de abort.
Se existir falhas em um nó participante, ao retornar, irá ver em sua log a mensagem de commit ou abort.
Unidade 03 - Segurança e Persistência de dados. SGBDOO e SGBDROO
Segurança em bancos de dados:
Confidencialidade: Garantia de que a informação é acessível somente por pessoas autorizadas a terem acesso;
Integridade: A informação é alterada somente pelas pessoas autorizadas;
Disponibilidade: Garantia de que as pessoas autorizadas obtenham acesso à informação e aos ativos
correspondentes sempre que necessário.
Segurança de dados, e/ou em bancos de dados, envolve: Questões éticas, políticas, relativas às aplicações e
políticas de acesso à informação SGBDs controlam o acesso aos dados através do controle de acesso
discricionário. Esse controle é baseado no conceito de direitos de acesso ou privilégios e a maneira de
conceder estes privilégios aos usuários. Um privilégio permite que um usuário acesse o dado de certa maneira
(por exemplo, lendo ou escrevendo o dado).
Um usuário que cria um objeto automaticamente adquire todos os direitos sobre o mesmo. A partir de então, o
banco de dados guarda todos os privilégios que são concedidos a outros usuários e desta forma, garante que
apenas os usuários autorizados possam acessar este objeto.
Em praticamente todos os bancos de dados, o controle de acesso discricionário é implementado através do uso
dos comandos GRANT e REVOKE.
O comando GRANT concede privilégios sobre os objetos do banco de dados (tabelas e visões, dentre outros) a
outros usuários enquanto que o comando REVOKE revoga os privilégios concedidos. Para um melhor
entendimento do mecanismo de acesso discricionário, é importante compreender a definição de privilégios,
objetos e usuários:
Usuários: são as pessoas que estão representadas por um nome de autorização. Os usuários podem ser
classificados em grupos de acordo com um perfil ou nível de autorização. Um usuário que pertence a
um grupo, implicitamente, recebe os privilégios relacionados ao grupo que ele pertence;
Privilégio: define uma permissão individual associada a um nome autorizado, habilitando-o a acessar ou
modificar um recurso do banco de dados. Os privilégios também podem ser concedidos a grupos de
usuários;
Objetos: os usuários necessitam de privilégios para acessar os objetos guardados no banco de dados.
Os privilégios variam de acordo com a natureza do objeto. Por exemplo, uma tabela possui uma lista de
privilégios diferente das visões. São exemplos de objetos: tabelas, visões, índices, triggers, entre outros.
SGBDOO
ENGENHARIA DE SOFTWARE - TECNOLOGIA DE BANCOS DE DADOS - ATIVIDADE ABERTA 3
LEONARDO DIAS – 1038391
5
Sistemas de Gerenciamento de Banco de Dados Orientados a Objetos (SGBDOO) podem ser definidos como
um sistema de banco de dados capaz de armazenar, além de dados convencionais, outros tipos diferentes de
dados que não podem ser convertidos somente em arquivos lineares ou bidimensionais como tabelas, mas, sim,
em um tipo especial de objeto.
Características
A principal característica de um SGBDOO é sua capacidade de modelar estruturas complexas
armazenando não somente a estrutura de dados, mas também seu comportamento.
O desenvolvimento dos SGBDOOs teve origem na combinação de ideias dos modelos de dados
tradicionais e de linguagens de programação orientada a objetos.
O conceito de objeto é empregado em um SGBDOO no nível lógico e possui características não encontradas
nas linguagens de programação tradicionais, como operadores de manipulação de estruturas, gerenciamento
de armazenamento, tratamento de integridade e persistência dos dados.
Os modelos de dados orientados a objetos têm um papel importante nos SGBDs porque:
São mais adequados para o tratamento de objetos complexos (textos, gráficos, imagens) e dinâmicos
(programas, simulações);
Estão em acordo com tendências em linguagens de programação e engenharia de software.
Propriedades Fundamentais
Extensibilidade: garante que o conjunto de tipos oferecidos pelo sistema permita a definição de novos
tipos e não há distinção entre os tipos pré-definidos e os definidos pelo usuário.
Completude Computacional: implica que a linguagem de manipulação de um banco de dados
orientado a objetos deve exprimir qualquer função computacional.
A orientação a objetos corresponde à organização de sistemas como uma coleção de objetos que integram
estruturas de dados e comportamento (métodos).
Modelos de Dados Orientados a Objetos
Superficialmente, pode-se dizer que orientação a objetos corresponde à organização de sistemas como uma
coleção de objetos que integram estruturas de dados e comportamento. Além desta noção básica, a
abordagem inclui um certo número de conceitos, princípios e mecanismos que a diferenciam das demais. Seus
principais conceitos são apresentados em seguida.
Abstração
É a consideração apenas das propriedades comuns de um conjunto de objetos, omitindo os detalhes, utilizada
com frequência na definição de valores similares e na formação de um tipo a partir de outro, em diferentes
níveis de abstração. O uso de abstrações permite a geração de tipos baseada em hierarquias de tipos e de
relacionamentos.
Os principais conceitos de abstração utilizados em banco de dados são generalização e agregação. A
generalização corresponde à associação "é um" onde, a partir de propriedades comuns de diferentes
entidades, é criada uma outra entidade. O processo inverso é a especialização. A agregação corresponde a
associação "parte de".
Objeto
Os objetos são abstrações de dados do mundo real, com uma interface de nomes de operações e um estado
local que permanece oculto. As abstrações da representação e das operações são ambas suportadas no
modelo de dados orientado a objetos, ou seja, são incorporadas as noções de estruturas de dados e de
comportamento.
Um objeto tem um estado interno descrito por atributos que podem apenas ser acessados ou modificados
através de operações definidas pelo criador do objeto. Um objeto individual é chamado de instância ou
ocorrência de objeto. A parte estrutural de um objeto (em banco de dados) é similar à noção de entidade no
modelo Entidade-Relacionamento.
Identidade de Objeto
Num modelo com identidade de objetos, estes têm existência independente de seus valores correntes e dos
endereços de armazenamento físico. A identidade do objeto é geralmente gerada pelo sistema. A
impossibilidade de garantir a identificação de objetos exclusivamente através de suas propriedades estruturais e
comportamentais motivou a definição de identificadores únicos de objetos, que persistem no tempo de forma
independente ao estado interno do objeto.
A identidade de objetos elimina as anomalias de atualização e de integridade referencial, uma vez que a
atualização de um objeto será automaticamente refletida nos objetos que o referenciam e que o identificador
de um objeto não tem seu valor alterado.
Objetos Complexos
Os objetos complexos são formados por construtores (conjuntos, listas, tuplas, registros, coleções, arrays)
aplicados a objetos simples (inteiros, booleanos, strings). Nos modelos orientados a objetos, os construtores são
em geral ortogonais, isto é, qualquer construtor pode ser aplicado a qualquer objeto. No modelo relacional este
ENGENHARIA DE SOFTWARE - TECNOLOGIA DE BANCOS DE DADOS - ATIVIDADE ABERTA 3
LEONARDO DIAS – 1038391
6
não é o caso, visto que só é possível aplicar o construtor de conjuntos às tuplas e o construtor de registro a
valores atômicos.
Encapsulamento
O encapsulamento possibilita a distinção entre a especificação e a implementação das operações de um
objeto, além de prover a modularidade que permite uma melhor estruturação das aplicações ditas complexas,
bem como a segurança dentro do sistema. Em banco de dados se diz que um objeto está encapsulado
quando o estado é oculto ao usuário e o objeto pode ser consultado e modificado exclusivamente por meio
das operações a ele associadas.
Tipo de Objetos
O tipo de objeto pode ser visto como a descrição ou especificação de objetos. Um tipo possui duas partes,
interface (visível para o usuário do tipo) e implementação (visível só para o usuário construtor do tipo).
Classes
Um conjunto de objetos que possui o mesmo tipo (atributos, relacionamentos, operações) pode ser agrupado
para formar uma classe. A noção de classe é associada ao tempo de execução, podendo ser vista como uma
representação por extensão, enquanto que o tipo é uma representação intencional. Cada classe tem um tipo
associado, o qual especifica a estrutura e o comportamento de seus objetos. Assim, a extensão da classe
denota o conjunto dos objetos atualmente existentes na classe e o tipo provê a estrutura destes objetos.
Herança
Herança é um mecanismo que permite ao usuário definir tipos de forma incremental, por refinamento de outros
já existentes, permitindo composição de tipos em que as propriedades de um ou mais tipos são reutilizadas na
definição de um novo tipo. De fato, ela corresponde a transferência de propriedades estruturais e de
comportamento de uma classe para suas subclasses.
As principais vantagens de herança são prover uma maior expressividade na modelagem dos dados, facilitar a
reusabilidade de objetos e definir classes por refinamento, podendo fatorar especificações e implementações
como na adaptação de métodos gerais para casos particulares, redefinindo-os para estes, e simplificando a
evolução e a reusabilidade de esquemas de banco de dados.
Tipos de Herança
Os dois tipos de herança, simples e múltipla, são descritos a seguir:
Herança Simples: Na herança simples um certo tipo pode ter apenas um supertipo, da mesma forma uma
subclasse só herda diretamente de uma única classe. Podemos classificar esta herança em quatro subtipos: de
substituição, de inclusão, de restrição e de especialização.
Herança Múltipla: Nesta herança um tipo pode ter supertipos e os mesmos refinamentos de herança simples. Há
basicamente dois tipos de conflitos referentes à herança múltipla: entre o tipo e o supertipo e entre múltiplos
supertipos. O primeiro pode ser resolvido dando-se prioridade à definição presente no tipo, e não a no supertipo.
Com os conflitos entre múltiplos supertipos, como uma resolução por default pode causar heranças não
desejadas, a abordagem mais segura é baseada na requisição explícita da intervenção do usuário.
Métodos e Mensagens
Um método, em relação a um objeto, corresponde ao comportamento dos objetos, implementando uma
operação associada a uma ou mais classes, de forma similar aos códigos dos procedimentos usados em
linguagens de programação tradicionais, que manipula o objeto ou parte deste. Cada objeto tem um certo
número de operações para ele definida. Para cada operação pode-se ter um ou mais métodos de
implementação associados.
As mensagens são a forma mais usada para se ativar os métodos. Num SGBDOO os objetos se comunicam e são
ativados através de mensagens enviadas entre eles.
Polimorfismo
Em sistemas polimórficos uma mesma operação pode se comportar de diferentes formas em classes distintas.
Como exemplo temos a operação print que será implementada de forma diferente se o objeto correspondente
for um texto ou uma imagem: dependendo do objeto teremos um tipo de impressão. Tem-se também
polimorfismo quando ocorre a passagem de diferentes tios de objetos como parâmetros enviados a outros
objetos
Unidade 04 - Sistemas de Gestão Empresarial
Informação
Informação: um dos pilares da revolução que se opera no mundo
A informação possui papel estratégico nas organizações:
Influência na decisão
É um fator de competitividade
Acelera lucros
Inteligência competitiva: explora informações detalhadas do mercado e dos concorrentes
ENGENHARIA DE SOFTWARE - TECNOLOGIA DE BANCOS DE DADOS - ATIVIDADE ABERTA 3
LEONARDO DIAS – 1038391
7
É "um processo ético de identificação, coleta, tratamento, análise e disseminação da informação estratégica
para a organização, viabilizando seu uso no processo decisório.” (GOMES e BRAGA, 2004)
Data Warehouse
“É um banco de dados contendo dados extraídos do ambiente de produção da empresa, que foram
selecionados e depurados, tendo sido otimizados para processamento de consulta e não para processamento
de transações.” (CAMPOS, 1998)
Uma cópia dos dados de transações, estruturada especificamente para consultas e análises (KIMBALL, 1998)
“É um processo de integração de dados corporativos em um único repositório a partir do qual os usuários finais
podem facilmente executar consultas, gerar relatórios e fazer análises” (SINGH, 2001)
Características
Visão conceitual multidimensional.
Dimensionalidade genérica
Dimensões e níveis de agregação ilimitados.
Operações irrestritas entre dimensões.
Tratamento dinâmico de matriz esparsa.
Arquitetura cliente-servidor
Suporte para múltiplos usuários
Acessibilidade.
Transparência
Manipulação de dados intuitiva.
Desempenho de relatório consistente.
Recurso de relatório flexível.
Data Warehouse e os metadados
O período de desenvolvimento de aplicações em uma organização pode levar a termos dados
inconsistentes ou redundantes
O papel da Administração de Dados
Os metadados constituem-se no principal recurso para a administração de dados no ambiente Data
warehouse assumem importância maior
Metadados: dados sobre os dados. É uma abstração dos dados.
Equivalem a dados de nível mais alto que descrevem os dados existentes em nível inferior
Metadados dão significância aos dados
São exemplos de metadados as descrições de registros em um programa de aplicação ou o esquema
de um banco de dados descrito em seu catálogo ou ainda as informações contidas em um dicionário
de dados
Os metadados apoiam desenvolvedores de aplicação e os administradores do banco de dados.
Os usuários de bancos de dados operacionais interagem com o sistema através de interfaces pré-
construídas e não conhecem os processos de manutenção de dados em sistemas gerenciadores de
bancos de dados.
Os metadados em um data warehouse podem ser divididos em três camadas:
Metadados operacionais (nível das aplicações): definem a estrutura dos dados mantidos pelos bancos
operacionais, usados pelas aplicações de produção da empresa (CAMPOS e ROCHA, 1997);
Metadados centrais do data warehouse: mantidos no catálogo do data warehouse. São orientados por
assunto e dizem respeito a como os dados transformados devem ser interpretados. Incluem definições
de agregados e campos calculados, assim como visões sobre cruzamentos de assuntos;
Metadados do nível do usuário: mapeiam os metadados do data warehouse para conceitos que sejam
familiares, adequados e de fácil compreensão para os usuários finais.
Metadados associados podem ser classificados segundo classes de componentes
Mapeamento: descrevem as transformações de dados operacionais até chegarem ao data warehouse.
Incluem identificação de campos fontes, mapeamentos entre atributos, conversões, codificações,
defaults, etc.;
Histórico: mantém o histórico das regras do negócio e de suas mudanças, pois as regras certas devem
ser aplicadas aos dados certos ao se considerarem evoluções ao longo do tempo;
Miscelânea: sinônimos (aliás), informação de status sobre estágios de desenvolvimento de partes do
data warehouse, sobre volume dos dados (para estimativas de tempo e recursos);
Algoritmos de sumarização: mostram a relação entre os diferentes níveis de detalhe dos dados,
indicando inclusive o nível de sumarização mais adequado para um dado objetivo;
Padrões de acesso: mantém informações sobre frequência e tipo de acesso aos dados.
Tipos de Linguagem
ENGENHARIA DE SOFTWARE - TECNOLOGIA DE BANCOS DE DADOS - ATIVIDADE ABERTA 3
LEONARDO DIAS – 1038391
8
OLTP (online transaction processing – processamento de transações) – bancos de dados “tradicionais”: consultas
simples, manutenção do banco de dados atualizado e consistente.
OLAP (online analytical processing – processamento analítico) – grandes volumes de dados, manutenção
delegada a processos locais e distribuídos, consultas complexas.
OLAP
Tecnologia que processa os dados de um DW em estruturas multidimensionais fornecendo respostas rápidas
para consultas analíticas complexas
“Software que auxilia analistas de negócio a avaliar o que é bom e o que é mau no desempenho dos
negócios.” Erik Thomsen, OLAP Solutions
OLAP X SQL
SQL tradicional é inadequado para consultas envolvendo séries históricas
Consultas complexas contendo muitos AND e especialmente muitos OR na cláusula WHERE tendem a ser
ineficientes
Cálculos e análises estatísticas não fazem parte de SQL convencional
Consultas temporais têm pouco suporte específico em SQL convencional
Frequentemente são efetuadas muitas consultas correlacionadas. A OLTP não dá oportunidade de otimizar
conjuntamente um grupo de consultas
Grão e Granularidade
GRANULARIDADE: se refere ao nível de detalhes em que a unidade de dados são mantidas no data warehouse
GRÃO: o significado de uma linha em uma tabela de fatos
Mineração de Dados
É um processo de exploração de grandes quantidades de dados à procura de padrões ou seja ‘é a descoberta
de novas informações em termos de padrões ou regras com base em grandes quantidades de dados’
Regras de associação: associação de um dado a outro dado, ou um de comportamento a outro
comportamento. Em termos de informação, é quando temos uma informação atrelada a outra. Exemplos:
Sempre que um cliente compra cerveja, também compra salgadinhos. Sempre que um cliente quer saber o
preço de computadores, também quer saber o preço de impressoras.
Padrões Sequenciais: é quando uma informação é requerida depois de um determinado tempo que outro
dado foi pesquisado Exemplos: quem compra passagem aérea, logo a seguir ou em poucos dias, busca por
hotéis.
Árvores de classificação: são representações simples do conhecimento, que constituem um meio eficiente de
construir indicadores ou classificadores que predizem ou revelam classes ou informações úteis baseadas nos
valores de atributos de um conjunto de dados. É uma forma de se obter informação a partir de dados
estatísticos Exemplos: frequência de visita de um cliente a uma loja, frequência de compra, valor médio de
vendas de um empregado
Aplicações de Mineração de Dados
Predição no mercado financeiro
Diagnóstico de falhas em linhas de produção
Descobertas médicas
Detecção de fraudes
Análise de tendências de compra
Marketing direcionado