8
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).

TBD Atividade Aberta 3

Embed Size (px)

DESCRIPTION

TBD Atividade Aberta 3

Citation preview

Page 1: TBD Atividade Aberta 3

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).

Page 2: TBD Atividade Aberta 3

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.

Page 3: TBD Atividade Aberta 3

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.

Page 4: TBD Atividade Aberta 3

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

Page 5: TBD Atividade Aberta 3

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

Page 6: TBD Atividade Aberta 3

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

Page 7: TBD Atividade Aberta 3

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

Page 8: TBD Atividade Aberta 3

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