Você está na página 1de 20

Funções básicas de um SGBD

A DDL permite a especificação do esquema da organização, ou seja, entidades com seus atributos e
tipos de dados associados, os relacionamentos entre essas entidades e os índices de acesso
associados aos atributos. Por esquema, entende-se uma organização lógica dos dados de uma
realidade, adequados ao modelo de dados do SGBD.

A DML permite as operações de manipulação de dados, executadas pelas aplicações inclusão,


alteração, exclusão e consulta. As consultas devem ser executadas de maneira eficaz, procurando
minimizar o número de acessos ao meio de armazenamento secundário, assim como o volume de
dados gerados nos resultados intermediários do processamento da consulta.

Segurança
Para tanto, o SGBD deve disponibilizar uma linguagem para especificação de restrições de
integridade, chamada de DCL (Data Constraint Language), e por meio dessa linguagem é possível
programar testes e ações.

Por dado, entende-se alguma porção do banco de dados, como um ou mais registros, um arquivo
completo ou vários, alguns campos de um registro etc. O mecanismo de visões permite especificar a
porção do banco de dados a que um agente tem direito.

A recuperação de falhas deve possibilitar o retorno do banco de dados a um estado consistente de


seus dados após a ocorrência de uma falha. Para tanto, o SGBD deve manter arquivos históricos
(log), que cadastram todas as alterações realizadas no banco de dados por transações. Entende-se
por transação um conjunto de operações de manipulação de dados a que é submetido o banco de
dados, sendo que todas essas operações devem ser efetivadas ou, na ocorrência de uma falha, nada
deve ser efetivado, para preservar a consistência dos dados

Os arquivos históricos (log) devem registrar, entre outras coisas, a identificação das transações, os
arquivos manipulados, os registros atualizados, a operação feita e os valores atual e antigo. No caso
de falhas de transação ou de sistema, o arquivo histórico (log) deve ser consultado e as ações
realizadas por transações inacabadas devem ser desfeitas. Caso todas as modificações da transação
estejam registradas, é possível refazê-la.

 Já para falhas de meio de armazenamento, que tornam inoperantes as unidades de disco onde se
encontra o banco de dados, deve-se restaurar o banco de dados a partir do último backup realizado
e consultar o log para refazer ou desfazer as transações cadastradas após esse backup.

Nível Físico
 Nível mesmo abstrato, em que se sabem detalhes físicos da organização de um dado, ou seja, o
esquema físico. É uma estruturação de baixo nível, em que é descrito como os dados estão
armazenados em termos de bytes.

 O módulo de gerenciamento de arquivos lida com esse nível de visão dos dados, uma vez que
localiza, lê e grava registros.
Nível Conceitual
Nível intermediário, que suporta uma descrição de mais alto nível em relação ao nível físico, em que
a preocupação está em descrever quais dados são significativos para uma organização, isto é, têm
semântica, são relevantes para o dia a dia da organização. Nesse caso, trabalha-se com os dados em
nível de entidades e relacionamentos, tais quais estão definidos no esquema.

 É similar, por analogia, à descrição de um registro em uma linguagem de programação, ou seja,


trabalha-se com nomes de arquivos e campos, e não com sequências de bytes. Os usuários que
lidam nesse nível devem ter conhecimento completo de todo o esquema da organização, como o
administrador do banco de dados ou o usuário especializado.

Nível de visão
Nível mais alto de abstração, sendo particular de cada aplicação que manipula dados do banco de
dados. Nesse caso, cada aplicação pode determinar o universo de dados a que deseja ter acesso.
Esse universo de dados pode ser uma porção do esquema global da organização. Assim sendo, cada
aplicação abstrai detalhes irrelevantes, desnecessários para seu processamento. Os usuários desse
nível são os programas de aplicação.

Tipos de dados
No SQL Server, cada coluna, variável local, expressão e parâmetro têm um tipo de dados
relacionados. Os tipos de dados são atributos que especificam o tipo de dados que o objeto pode
manter: dados inteiros, dados de caracteres, dados monetários, data e hora, cadeias de caracteres
binárias etc.

A seleção de tipos de dados costuma ser determinada pela natureza dos dados e pela utilização
pretendida Por exemplo:

 Number(L,D), Integer, Smallint, Decimal(L,D)

 Char(L), Varchar(L), Varchar2(L)

 Date, Time, Timestamp

 Entre outros

 A maioria dos programadores utiliza uma linha por definição de coluna (atributo).

 São utilizados espaços para alinhar as características e as restrições dos atributos.

 Tanto os nomes de tabelas como de atributos aparecem totalmente em letras maiúsculas.

 Especificações NOT NULL.

 Especificação UNIQUE.

Restrição NOT NULL

 Garante que uma coluna não aceite nulos.


Restrição UNIQUE

 Garante que todos os valores de uma coluna sejam exclusivos

Restrição DEFAULT

 Atribui um valor a um atributo quando uma nova linha é adicionada à tabela

Restrição CHECK

 Valida dados quando é inserido um valor de atributo

Agentes de interação com o SGBD


Os sistemas gerenciadores de banco de dados são projetados com muitos recursos visuais e
aplicações internas que servem como verdadeiros assistentes. Ainda assim, eles não se
autoadministram, ou seja, não eliminam a necessidade dos profissionais especializados, apenas
agilizam tarefas trabalhosas, como escrever scripts.

PROGRAMADOR
É o profissional que desenvolve aplicações utilizando ferramentas compatíveis com o SGBD. Essas
ferramentas podem ser compiladores de linguagens de programação tradicionais que permitem a
integração de comandos da linguagem da DML no seu código, programas que usam alguma
linguagem de programação (C#, PHP, VB.NET, DELPHI, JAVA etc.), programação de sistemas e
aplicativos de manipulação de dados, geradores de interfaces gráficas, geradores de relatórios etc.
UNIDADE II
Relacionamentos binários:
Representam uma associação entre duas entidades, representada por um losango nomeado com
linhas para as duas entidades envolvidas. Um relacionamento indica uma função cumprida pelas
duas entidades envolvidas. Sugere-se que esse nome seja um substantivo no plural, uma vez que o
uso de verbos limita mais a criatividade para a determinação de nomes.

Relacionamento deve definir também a cardinalidade dessa associação, por meio de dois pares de
valores, no qual o valor da esquerda indica o número mínimo esperado de ocorrências de uma
entidade que se relaciona com a entidade questionada, e o valor da direita o número máximo.

Relacionamentos reflexivos:
É um tipo de associação que envolve ocorrências de uma mesma entidade (parte e chega da mesma
entidade). Nesse caso, recomenda-se a indicação explícita do papel assumido por cada lado da
associação, para tornar mais clara a interpretação do relacionamento. Por exemplo, em uma relação
de chefia entre um empregado e outro, é interessante a indicação dos papéis de superior e
subordinado.

Alguns controles de integridade, não expressos no diagrama E-R, podem ser necessários, como a
proibição de um empregado ser chefiado por ele mesmo (valores iguais no relacionamento) ou uma
hierarquia de gerência com ciclos. É interessante que esses controles, se desejados, sejam
explicitamente comentados como um anexo ao diagrama E-R.

Relacionamentos ternários:
Relacionam três ocorrências de entidades. Só é interessante utilizar esse tipo de relacionamento
quando realmente é obrigatório associar, ao mesmo tempo, um par de entidades com uma terceira.
Por exemplo, um empregado que trabalha num projeto necessariamente realiza alguma tarefa nesse
trabalho.

A determinação da cardinalidade de um relacionamento ternário é feita questionando um par em


relação à terceira entidade envolvida. Por exemplo, no caso de um empregado trabalhando em um
projeto, temos o par empregado-projeto que realiza de 1 a N tarefas. Logo, a cardinalidade (1,N) é
colocada ao lado da entidade TAREFAS.
Elementos de um modelo de dados: Entidade: é um objeto ou evento (real ou abstrato)
que se torna um ponto de interesse dentro de uma determinada realidade, e ao qual podem ser
associados dados, relacionamentos etc. O retângulo representa o tipo Entidade. Exemplo: Cliente,
Fornecedor, Produto, Aluno etc

Figura: Objeto Funcionário:

Atributos: São propriedades (características) que identificam as entidades. Uma entidade é


representada por um conjunto de atributos. Os atributos podem ser simples, compostos ou
multivalorados. Um atributo no DER é representado por uma elipse ligada ao Tipo Entidade

Figura: Entidade Funcionário:

Atributo opcional – Atributos com propriedades que podem assumir NULL. São indicados por um
traço que corta a linha que liga o atributo à entidade ou relacionamento.
Atributo composto – Representa uma abstração de outros atributos, como um endereço que abstrai
(agrega) outros dados como rua, CEP, cidade etc. É representado por uma elipse, com ligações
(linhas) para os atributos componentes (convencionais).

Atributo multivalorado – Atributos com propriedades que podem assumir mais de um valor, como
os números de telefone de um departamento. São representados por uma cardinalidade mínima e
máxima que é colocada ao lado do nome do atributo, indicando as quantidades de valores mínimos
e máximos permitidos. Exemplo: Telefone. Uma pessoa poderá ter mais de um número de telefone.

Figura: Entidade Funcionário – multivalorado (telefone):

Entidades fracas:
Entidades cujas existências dependem da existência de outra entidade, dita fork. É representada por
um retângulo duplo, podendo, opcionalmente, ser indicada uma seta que parte dela e chega à sua
entidade forte, para tornar mais clara a dependência. A cardinalidade de uma ocorrência de uma
entidade fraca com a forte é sempre (1,1), indicando que ela sempre depende de uma ocorrência da
entidade forte.

O conceito de Generalização/Especialização é amplamente utilizado na programação


orientada a objeto, e remete ao recurso POO de herança.

A generalização/especialização mostrada nesta figura expressa que a entidade CLIENTE é dividida


em dois subconjuntos, as entidades PESSOA FÍSICA e PESSOA JURÍDICA, cada uma com propriedades
próprias.
Especialização com ou sem exclusão mútua: Indica se uma ocorrência de uma entidade genérica
pode assumir apenas uma ou várias especializações, respectivamente.

Especialização com ou sem obrigatoriedade: Indica se uma especialização é obrigatória ou não.


Uma agregação é representada por um polígono fechado que envolve as entidades e o
relacionamento entre elas, determinando a entidade agregada. Essa entidade agregada é
considerada, então, uma entidade normal do diagrama E-R, que pode se relacionar com outras
entidades.

domínio: define o universo de valores permitidos para certo item de dado. Por exemplo, o
domínio para o item de dado salário pode ser o conjunto dos números reais; o domínio do item de
dado idade pode ser o conjunto dos números inteiros no intervalo [0,150]; o domínio do item sexo
pode ser o conjunto limitado (masculino, feminino).

 Domínio compreende um tipo de dado predefinido mais um conjunto de restrições de integridade


que limitam os valores permitidos para esse tipo de dado.

Em uma tabela, representa uma coluna. Um atributo pode apresentar um valor condizente com o
domínio associado a ele ou NULL, que indica a ausência de valor ou valor desconhecido. Um atributo
pode conter apenas um valor atômico, ou seja, um valor indivisível.
TUPLA: É um conjunto de pares (atributo – valor) que define uma linha da tabela, ou seja, uma
ocorrência de uma entidade ou relacionamento. Se imaginarmos uma tabela como um conjunto,
uma tupla seria um elemento desse conjunto.

Relação: Pode ser definida como um subconjunto do produto cartesiano dos domínios (d1, d2,
d3,..., dn) que correspondem aos atributos (a1, a2, a3,..., an) de uma tabela. O produto cartesiano
gera (d1 x d2 x d3 x...x dn) tuplas e a relação mantém apenas aquelas tuplas que contêm valores de
atributos relacionados que estão presentes na realidade. Uma relação, portanto, é um subconjunto.
É vista como uma tabela no modelo relacional, composta de um cabeçalho e um corpo.

 O cabeçalho é formado por um conjunto fixo de atributos que possuem nomes distintos, para
evitar ambiguidade na localização de um item de dado. O grau de uma relação significa seu número
de atributos.

CHAVE: O conceito de chave é fundamental no modelo para garantir a identificação de tuplas e


estabelecer relacionamentos entre relações.

Chave primária (PK) – primary key: atributo ou grupo de atributos que permite a identificação única
de uma tupla em uma relação, ou seja, o valor da PK (primary key) de uma tupla nunca se repetirá
nas demais tuplas da mesma relação.

 Uma PK é escolhida entre várias chaves candidatas, que podem estar presentes na relação. As
chaves candidatas não selecionadas são ditas chaves alternativas. A cada chave alternativa deve ser
associada uma Relação de Integridade (RI) que garanta que seus valores sejam únicos.
Chave estrangeira (FK) – foreign key: Atributo ou grupo de atributos de uma relação R1 que
estabelece um relacionamento de equivalência, por valor, com uma PK (primary key) de uma relação
R2.

 O domínio da FK (foreign key) de R1 deve ser compatível com o domínio da PK (primary key) de
R2. Nada impede que R1 e R2 sejam a mesma relação.

Chave artificial ou delegada (SK) – surrogate key


Serve para substituir a chave original da tabela. Normalmente composta de números sequenciais, é
muito utilizada em Modelos Multidimensionais, em que o processo de dimensionamento associa a
chave natural do modelo relacional, que vão ser apenas atributos da dimensão, e para garantir a
unicidade é criada a chave delegada (surrogate key).

Regra de integridade relacional


Já para o caso da regra de integridade referencial, três alternativas de ações são geralmente
tomadas pelo SGBD quando se percebe que uma violação irá ocorrer:

1- Impedimento, a operação não é efetivada.

2- Cascata, para o caso de exclusões de tuplas ou alterações de chave primária na relação referida,
realizar a mesma operação em todas as tuplas que se referem a ela.

3- Anulação, para o caso de exclusões de tuplas ou alterações de chave primária na relação referida,
altera-se para NULL o(s) atributo(s) que compõe(m) a chave estrangeira que estabelece o
relacionamento com essa relação. Uma variante dessa alternativa é anular apenas a chave
estrangeira de uma única tupla.

UNIDADE III
Linguagem SQL
Linguagem T-SQL ou Transact-SQL utilizada no SGBD MS SQL Server é composta por:

DDL (Data Definition Language): manipulação e estrutura do banco de dados;

DML (Data Manipulation Language): permite a manutenção dos dados;

DQL (Data Query Language): permite a pesquisa de dados;

DCL (Data Control Language): permite o controle de autorização (acesso) dos dados.

Linguagem de Definição de Dados (DDL – Data Definition Language): esse subconjunto da SQL
suporta criação, exclusão e modificação das definições das tabelas e das visões. As restrições de
integridade podem ser definidas nas tabelas, tanto quando a tabela é criada como posteriormente.
Fornece ainda a dinâmica para criação e exclusão de índices. Os comandos SQL desse subconjunto
são:

CREATE: utilizado para criar objetos no banco de dados.

Exemplo (criar uma tabela): CREATE TABLE CLIENTE (ID INT PRIMARY KEY, NOME VARCHAR(50));

DDL (Data Definition Language):

Comandos responsáveis pela criação, alteração e deleção da estrutura de banco de dados, de


tabelas e índices etc.;

Comandos de DDL;

CREATE: Criação de objetos do banco de dados;

DROP: Exclusão de objetos do banco de dados;

ALTER: Alteração da estrutura de objetos do banco de dados;

USE: Selecionar um banco de dados para uso.

Objetos manipulados pelos comandos acima:

DATABASE, TABLE, VIEW, INDEX, TRIGGER, etc....


ALTER: utilizado para alterar a estrutura de um objeto.

Exemplo (adicionar uma coluna em uma tabela existente): ALTER TABLE CLIENTE ADD SEXO CHAR(1);

DROP: utilizado para remover um objeto do banco de dados.

Exemplo (remover uma tabela): DROP TABLE CLIENTE;

Executando o procedimento ALTER DATABASE, modificam-se os dados de um banco de dados ou os


arquivos e grupos de arquivos associados ao banco de dados, adicionam ou removem-se arquivos e
grupos de arquivos de um banco de dados, alteram-se os atributos de um banco de dados ou seus
arquivos e grupos de arquivos, altera-se o agrupamento de banco de dados e definem-se opções de
banco de dados. Instantâneos de banco de dados não podem ser modificados.

DDL (Data Definition Language):

Exemplos de sintaxe:

Comando TABLE: tabela(s) ou entidade(s).

Administração de banco de dados


A escolha do banco de dados da empresa é uma decisão muito delicada, na medida em que irá
acarretar troca de aplicativos e de hardware. Os investimentos diretamente aplicados no banco de
dados costumam ser infinitamente menores do que aqueles a serem aplicados na empresa, visando
sua perfeita adequação ao novo SGBD. Essa decisão, sempre que possível, deve ser tomada por
especialistas em banco de dados, com profundos conhecimentos de análise de sistemas, de banco
de dados e de software de gerenciamento de banco de dados, de forma a evitar que a empresa
escolha um banco de dados inadequado aos seus propósitos e, pouco tempo depois, seja obrigada a
perder todos os investimentos realizados em software e hardware.

Backup
O backup é considerado uma das atividades mais importantes e críticas de administração de banco
de dados. Consiste em fazer uma cópia de segurança (dump) dos dados e da estrutura do banco de
dados, além das operações realizadas na linha do tempo, entre uma cópia e outra. O backup em
tempo de execução é uma característica sempre disponível em todos os tipos de SGBD, porém
temos aplicações que invariavelmente são comprometidas por falhas de hardware e outras cujo
mesmo tipo de falha não causa perda alguma de dados ou de integridade.

Novamente, cada SGBD tem essa característica melhor ou pior implementada, cabendo ao
administrador de banco de dados escolher aquele que lhe oferecer mais segurança. Normalmente,
as falhas podem ser de dois tipos: soft crash e hard crash. A primeira são falhas do sistema (por
exemplo, queda de energia) que afetam todas as transações em curso no momento, mas não
danificam fisicamente o banco de dados. A segunda são falhas da mídia (por exemplo, queda da
cabeça de gravação sobre o disco) que causam danos ao banco de dados ou a uma parte dele e
afetam pelo menos todas as transações que, no momento, estão usando essa parte.

Recuperação e concorrência:
Os problemas de recuperação e concorrência de dados estão ligados ao processamento de
transação. O sistema não deve permitir que transações sejam executadas em parte (ou seja, o
programa pode terminar de forma anormal durante as atualizações), pois isso levaria o banco a um
estado inconsistente. Por isso, sistemas que suportam o processamento de transação têm uma
melhor forma de segurança.

Essa segurança é resumida em quatro tópicos, a saber:

Atomicidade: ter a certeza de que uma transação foi totalmente executada ou totalmente
cancelada. Nunca uma execução pode ficar pela metade.

Consistência: não permanecer com estágio intermediário, deve ir de um estágio consistente a outro.

Isolamento: uma transação, quando executada, tem que ser executada independentemente de
outra. Não importa se elas estejam sendo processadas separadas ou de forma concorrente, o
resultado terá que ser o mesmo. Existe um sistema gerenciador de transação que permite isso.

Durabilidade: garantir que todas as transações não realizadas permaneçam no banco e sejam
realizadas assim que o computador for reinicializado. Se, por algum problema, o computador
desligar e o disco não for danificado, a durabilidade tem que estar funcionando.

Pontos de sincronização:
O ponto de sincronização representa a ligação entre duas transações consecutivas, mostrando onde
o banco de dados está (ou deveria estar) em estado de consistência. As únicas operações que
apresentam esse ponto são COMMIT e ROLLBACK.
COMMIT: garante que a transação foi finalizada com êxito. O banco de dados (depois do término da
transação) encontra-se em estado de consistência, e todas as suas atualizações são permanentes.

ROLLBACK: assinala que a transação foi malsucedida. O sistema informa que algo saiu errado e que
todas as atualizações devem ser refeitas, ou seja, elimina vestígios do que foi feito.

Todas as transações são acumuladas em um buffer, que, de tempo em tempo, atualiza o banco; caso
ocorra uma queda de energia, as operações efetuadas até então são perdidas. Assim, para melhor
segurança, é necessário que esteja presente sempre um arquivo de log. A finalidade desse arquivo é
registrar cronologicamente todas as transações realizadas, assim, quando houver uma falha, é
possível fazer recuperação.

O log, por sua vez, não pode ficar no buffer, já que, assim que é desligado o computador, tudo o que
está na memória é perdido.

Meios de recuperação (restore)

O sistema deve ser preparado para se recuperar não só das falhas locais (danos causados apenas na
área em que estas ocorreram), mas também das falhas globais (danos em diversas áreas, havendo
implicações expressivas no sistema).

Há duas categorias de falhas, descritas a seguir:

Falhas do sistema

Falhas dos meios físicos

Falhas do sistema: Normalmente, são causadas por queda de energia ou desligamento do


computador sem finalização correta, que não danificam fisicamente o banco de dados. Assim, não se
terá mais conhecimento do momento exato da transação que estava sendo processada,
consequentemente, ela será desfeita.

Ainda há as transações que foram realizadas com sucesso, mas que não tiveram tempo de serem
transferidas da memória intermediária do banco de dados para o banco de dados físico.

Uma maneira de se controlar é utilizando um método conhecido como check point (ponto de
controle), de tempo em tempo o sistema faz as anotações cronológicas. Tem como objetivo:

 passar fisicamente o conteúdo das memórias intermediárias do banco de dados para o


banco de dados físico;
 passar fisicamente o registro especial do ponto de controle para outra parte que não a
anotação cronológica física.
As transações T3 e T5 terão que ser refeitas, pois antes de acontecer a falha do sistema, elas já
tinham sido finalizadas. Então o conteúdo concluído até o ponto de checagem precisa ser
confirmado e, assim, finalizar de forma correta a transação. Já T1 e T2 precisam ser desfeitas, pois
quando a falha ocorreu, a sua execução não havia terminado. É necessário apagar tudo o que foi
feito, ou seja, desfazer, para que seja reiniciada a transação.

Falhas dos meios físicos:


São as falhas que ocorrem danificando o disco rígido, ou seja, certa parte dos dados é destruída.
Exemplo: colapso de uma cabeça de disco ou falha no controlador de disco. É importante sempre ter
cópia do banco (backup), pois em uma falha dos meios se podem perder inúmeras informações, o
que irá trazer prejuízo ou danos ao usuário. Nesse caso, o sistema precisa ser recriado em outra
máquina. Para que o impacto dessas ações de reconstrução do ambiente seja o menor possível, na
visão do usuário, existem diversas soluções que envolvem não só a substituição do disco danificado,
mas todo um projeto de contingência e alta disponibilidade do seu ambiente como um todo.

Concorrência:
Em um sistema em que existe a possibilidade de se ter inúmeras transações ocorrendo ao mesmo
tempo, há a necessidade de um mecanismo de controle de concorrência, que assegure que uma
transação não interfira em outra. Alguns problemas que podem surgir com a ausência desse
mecanismo são: perda de atualização, dependência de uma transação não confirmada, análise
inconsistente. Para evitar tamanho transtorno, é utilizado um mecanismo chamado bloqueio (lock),
que permite segurança e consistência no banco de dados.

O problema da dependência de uma transação não confirmada é que isso pode retornar para o
usuário informações erradas, comprometendo muito a utilização do banco.

Suponha que ocorra a seguinte situação: uma transação A faz um update, logo em seguida, uma
transação B faz uma leitura no mesmo dado. Se, por algum motivo, houver um rollback na transação
A, a transação B terá visto um dado que não mais existe, ou seja, o rollback desfez tudo da transação
A, e a transação B fica desatualizada, oferecendo ao usuário informações inconsistentes.
Bloqueio (Lock)
Havendo duas transações, com ambas precisando do mesmo dado, elas deverão ser executadas uma
após a outra; isso é possível quando se utiliza a técnica do bloqueio.

Existem dois tipos de bloqueios:

Bloqueio compartilhado: pode haver inúmeras pessoas utilizando o mesmo dado. Quando uma
transação B solicita um dado que está sendo utilizado pela transação A, B fica em estado de espera
até que A libere o bloqueio.

Bloqueio exclusivo: ninguém mais tem acesso àquele dado. Todas as operações de banco de dados
geram bloqueios, até mesma a leitura.

Arquitetura básica do ambiente de banco de dados:


Você pode ter um ambiente de alta disponibilidade e desempenho por meio da arquitetura de
hardware combinada com os recursos de software. As técnicas básicas envolvem dois conceitos:
cluster e replicação.

Cluster é o nome dado a um conjunto de computadores ligados em rede que funcionam como um
único computador, compartilhando recursos de memória, armazenamento e processamento.

Essa técnica faz parte do plano de contingência e alta disponibilidade, pois você pode desenvolver o
seu projeto de banco de dados distribuídos.

Cluster
Cluster de alto desempenho: Também conhecido como cluster de alta performance, ele funciona
permitindo que ocorra uma grande carga de processamento com um volume alto de gigaflops em
computadores comuns.

Cluster de alta disponibilidade: São clusters cujos sistemas conseguem permanecer ativos por um
longo período de tempo e em plena condição de uso. Pode-se dizer que eles nunca param seu
funcionamento e, além disso, conseguem detectar erros, protegendo-se de possíveis falhas.
Cluster para balanceamento de carga: Esse tipo de cluster tem como função controlar a distribuição
equilibrada do processamento. Requer um monitoramento constante na sua comunicação e em seus
mecanismos de redundância, pois se ocorrer alguma falha, haverá uma interrupção no seu
funcionamento.

Replicação
Replicação de banco de dados é a cópia dos dados do banco de dados original para outro banco de
dados. São vantagens da replicação em banco de dados:

sistema menos sensível a falhas, por causa da redundância;

trabalho com balanceamento da carga;

backup on-line dos dados

A replicação de banco de dados também pode ser usada para garantir a integração e a integridade
entre os bancos de dados de sistemas com modelo de dados relacional distribuídos. Nesse caso, o
sistema gerenciador de replicação de dados precisa ser capaz de replicar as transações em tempo
real. Geralmente, os servidores de replicação só conseguem replicar uma imagem do banco
(snapshot), portanto não dá para implementar uma arquitetura desse tipo.

Replicação síncrona (eager)


A transação só é concluída após todos os servidores fazerem commit. É conhecida como phase 2
commit, ou seja, o commit é realizado em duas fases. Apesar de garantir consistência de transação
entre servidores, é de baixa escalabilidade. Outra característica dessa arquiteta é a indisponibilidade
em caso de queda de rede. Foi muito pesquisada nos últimos dez anos, várias implementações
foram realizadas, mas é considerada impraticável para a maioria dos ambientes de produção por ser
de altíssimo custo e de difícil manutenção.

Replicação assíncrona (lazy)


A transação é concluída localmente e depois replicada, portanto, com alta escalabilidade. Não
garante consistência de transação direta entre os servidores. Para ter essa consistência, a
implementação deve ser modelada e implementada de tal forma que garanta essa consistência. É de
baixo custo e resistente a quedas de rede. Esse tipo de replicação é usado até hoje.

Replicação unidirecional (master-slave)


A replicação é realizada sempre no mesmo e único sentido, de um banco de dados A para um banco
de dados B. É usada normalmente para hot-backup de servidores de banco de dados e também para
melhoria de desempenho de consultas em sites remotos.

Apenas a base master recebe atualizações. Pouco sujeita a inconsistências, mesmo no modelo lazy.

Replicação multidirecional (multi-master)


A replicação é realizada em vários sentidos. Usada para garantir alta disponibilidade e melhor
desempenho tanto em consultas quanto em atualizações.

Todas as bases podem receber atualizações. Sujeita a inconsistências no modelo lazy.

Modelo dimensional:
A modelagem dimensional é uma técnica voltada especialmente para a implementação de um
modelo que permita a visualização de dados de forma intuitiva e com altos índices de performance
na extração de dados.

É a técnica de projeto mais utilizada para a construção de data warehouses (DW), que busca um
padrão de apresentação dos dados de fácil visualização pelo usuário final e bom desempenho para
consultas.

O modelo dimensional, ou multidimensional, detecta os relacionamentos inerentes aos dados para


armazená-los em matrizes multidimensionais conhecidas como cubo de dados ou hipercubo, caso o
cubo possua mais de três dimensões, conforme a figura a seguir:
O modelo dimensional é composto de uma tabela dominante, com múltiplas junções, chamada de
tabela de fatos, e de um conjunto de tabelas conhecidas como tabelas de dimensão. Tipos de
esquema do modelo dimensional:

Esquema estrela (star schema): é um dos mais usados na modelagem dimensional e consiste em
uma tabela de fatos central e uma tabela para cada dimensão

Esquema floco de neve (snowflake): é uma variação do esquema estrela em que algumas tabelas de
dimensão são normalizadas, criando-se uma tabela de dimensão secundária cuja chave se torna
estrangeira na tabela de dimensão primária.

Essa técnica interfere no entendimento dos dados pelo usuário e na performance de algumas
consultas, portanto, não deve ser usada como regra geral, embora às vezes possa ser interessante
ou até necessária.

Fatos
Os fatos são os atributos do comportamento. São medidas de ações que ocorrem entre diferentes
objetos ou dimensões. Em geral, são numéricos ou aditivos (podem ser somados) e raramente
textuais. A tabela de fatos é a tabela principal de um modelo dimensional.

É formada por uma chave, composta das chaves das dimensões relacionadas e de um ou mais fatos
mensuráveis, ou medidas, em geral numéricas, para cada conjunto das dimensões.

Fato representa uma medição do negócio, isto é, fato é tudo aquilo que pode ser medido. A lista de
dimensões define a granularidade da tabela de fatos (qual é o escopo da medição). As características
básicas de um fato são:

varia ao longo do tempo;

tem valores numéricos;

seu histórico cresce com o passar do tempo. Uma linha da tabela de fato corresponde a uma
medição.

Uma medição é uma linha da tabela de fatos. Todas as tabelas de fatos estão alinhadas com a
mesma granularidade. As medições dos fatos devem ser numéricas e aditivas. As tabelas de fato
representam relações N:N.

As medidas podem ser classificadas em:

Valores aditivos: medidas em que podem ser aplicados os operadores, como soma, porcentagem
etc. Faz sentido adicioná-los continuamente e sobre todas as dimensões, por exemplo, vendas em
R$ e vendas em unidades.

Valores não aditivos: medidas que não podem ser manipuladas livremente, como porcentagem ou
valores relativos, como temperatura e condição do tempo.

Dimensões
As dimensões descrevem pessoas, lugares e coisas relacionadas a um negócio. As tabelas de
dimensão são formadas por uma chave primária e por atributos que a descrevem.
Quanto maior o tempo dedicado à descrição dos atributos, ao preenchimento dos seus valores e à
garantia da qualidade dos dados, melhor será o DW.

Cada dimensão tem sua própria granularidade, que não pode ser menor que a da tabela de fatos,
mas pode ser maior.

As tabelas de dimensão são pontos de entrada para a tabela de fatos. Atributos de dimensões
eficazes produzem recursos analíticos eficientes. As dimensões implementam a interface de usuário
para o DW. A maioria dos fatos envolve pelo menos quatro dimensões básicas: onde, quando, quem
e o quê.

 dimensão onde determina o local em que o fato ocorreu (local geográfico, filial);
 dimensão quando é a própria dimensão tempo;
 dimensão quem determina quais entidades participaram do fato (cliente, fornecedor,
funcionário);
 dimensão o quê determina qual é o objeto do fato (produto, serviço)

Chave artificial (surrogate key)


Utilizar uma chave candidata como chave primária de uma dimensão pode causar problemas caso
esta chave não seja absolutamente estável ao longo do tempo. Uma modificação em uma chave de
uma dimensão pode ocasionar um grande volume de mudanças nas tabelas de fato relacionadas a
essa dimensão. A solução para esse problema é utilizar chaves artificiais absolutamente estáveis ao
longo do tempo. Uma chave artificial é um campo inteiro e autoincremental, que aumenta a cada
novo registro incluído.

Medidas: São atributos que quantificam um determinado fato, representando o desempenho de


um indicador em relação às dimensões que fazem parte do fato.

O contexto de uma medida é determinado em função das dimensões do fato (MACHADO, 2000).

Granularidade: É o nível de detalhe de um banco de dados dimensional. É um dos pontos mais


importantes no projeto de um DW por que:

refere-se ao nível de detalhe em que serão armazenados os dados no DW, quanto maior o
detalhamento, mais baixo o nível de granularidade;

afeta o volume de dados do DW e, portanto, a performance na extração de informações. Um DW


pode ser implementado em níveis duais de granularidade ao longo do tempo.

É possível manter as informações mais recentes em um baixo nível de granularidade, aumentando


assim as possibilidades de extração de informações.

À medida que os dados vão ficando obsoletos, é possível resumi-los em um alto nível de
granularidade de forma a manter a performance.

Granularidade alta:

 Economia de espaço em disco.


 Redução na capacidade de atender consultas. Granularidade baixa:
 Grande quantidade de espaço em disco.
 Aumento na capacidade de responder a qualquer questão
Agregado
São resumos construídos a partir de fatos individuais, inicialmente por questões de performance ou
quando o ambiente dos fatos é inexpressivo na menor granularidade. Agregados permitem que as
aplicações antecipem os resultados a serem pesquisados pelo usuário, eliminando a necessidade de
se repetirem cálculos comumente realizados. Múltiplos agregados podem ser construídos,
representando os agrupamentos mais comuns dentro das dimensões do DW a fim de aumentar a
performance.

A contrapartida ao aumento da performance é a elevação do consumo de espaço de


armazenamento.
A função de backup é considerada uma das atividades mais importantes e críticas de administração
de banco de dados. Consiste em fazer uma cópia de segurança (dump) dos dados e da estrutura do
banco de dados, além das operações realizadas na linha do tempo, entre uma cópia e outra.
Normalmente, as falhas podem ser de dois tipos:

Soft crash e hard crash

As ferramentas de acesso aos dados possibilitam a exploração do DW pelo usuário final. Variam de
simples ferramentas de consultas ad hoc e geradores de relatórios, aplicações para usuários finais
que acessem os dados do DW, as ferramentas de análises sofisticadas para Olap e mineração de
dados. Qual ferramenta pode ser usada como acesso aos dados?

Olap – Online Analytical Processing: é uma “categoria da tecnologia de software que permite que os
analistas, gerentes e executivos obtenham, de maneira rápida, consistente e interativa, o acesso a
uma variedade de visualizações possíveis da informação”.

Você também pode gostar