Minha Monografia TCC da Pós – me ajudem – Parte II

16/01/2009

Pessoal,

Nesta ultima quinta feira conversei muito com meu orientador (Prof. Silvestre) que me atentou para as armadilhas da zona de conforto, no meu caso o SQL Server… então baseado em seus conselhos decidi mudar o tema para algo um pouco mais teórico, que me renderá mais munições durante a sabatina da banca. Mas é claro que vou dar um jeito de botar o SQL Server nessa estoria… rsrs.

O novo tema será: Data Mining “Conceitos e Aplicações”

Apesar da mudança do tema, a ajuda que pedi anteriormente continua válida… ETL, DM, KDD, Redes Neurais, Inteligência Artificial… tudo está dentro do assunto que irei abordar…

Agora está fechado… iniciado o meu TCC.

I seee ya… rs


Minha Monografia TCC da Pós – me ajudem

15/01/2009

 

Pessoal,

Estou começando a minha monografia (TCC), como todos ja sabem estou fazendo Pós em Gerenciamento de Banco de Dados e estou decido a escrever sobre SQL Server 2005 (rs por que será né??) então… o tema será o seguinte:

Busines Intelligence com o Microsoft SQL Server 2005: Uma abordagem sobre o Microsoft SQL Analysis Services 

Galera to aceitando tudo, indicação de sites, livros, artigos… tudo mesmo… e não precisa ser especificamente sobre o SQL Server ou seja, o importante e estar relacionado a Busines Intellingence, processo de ETL, Datamining, DW e tudo mais… rs.

Muito brigado, conto com a ajuda de todos… e um forte abraço.


Segurança em Banco de Dados

08/01/2009

 

Amigos,

Segue mais um post de um trabalho da Pós, comentários e criticas serão bem vindos.

Segurança em Banco de Dados

1. O que é segurança e quais os aspectos relevantes a serem abordados?

A Segurança é uma “percepção” em relação às informações que visa garantir que as mesmas (sejam estas em qualquer formato) estejam protegidas contra o acesso por pessoas não autorizadas (confidencialidade), estejam sempre disponíveis quando necessárias, e que sejam confiáveis, ou seja, que não tenham sido corrompidas ou adulteradas por atos de pessoas mal intencionadas ou por incidentes sistêmicos.

Para que haja segurança das informações primeiramente deve ser feita uma Análise de Risco que identifique todos os riscos (vulnerabilidades + ameaças) que ameacem as informações, considerando três categorias básicas – riscos administrativos, físicos e tecnológicos.

2. Durante o planejamento e desenvolvimento de um Sistema quais os impactos de segurança que devem ser considerados?

São diversos os impactos, ex: a falta de Capacity Planning pode acarretar problemas com limitação de recursos (falta de espaço em disco, CPU, memória etc.), controles de acessos, controle de fraudes e adoção de práticas focadas em código seguro (ex: trativas de SQL Injection etc.)

3. Quais os dois tipos de segurança que podem ser implementados quando se trata de informação e banco de dados?

A segurança física (Hardware, câmeras, sala cofre, controle de temperatura etc.) e a lógica (Documentação e instituição de procedimentos baseado em boas práticas, controle de acesso, autorias etc.)

4. Como funciona a estrutura do Banco de Dados Oracle – exemplificando Tables Spaces para dados, índices, logs, temps e etc.
Exemplifique os Objetos e suas relações com Schema e as Tables Spaces:

Um banco de dados Oracle é dividido em três arquivos:

1) Datafiles – Arquivos físicos que armazenam tabelas, índices, visões, tablespaces etc;
2) Redo Log File – Armazena fisicamente as alterações realizadas pelo Oracle, é utilizado como uma espécie de segurança transacional;
3) Control File – Gerenciam e armazenam toda a estrutura do Banco de Dados.

5. Liste todos os componentes de Segurança que Devem fazer parte da Rotina de um Centro de Processamento de Dados e um Banco de Dados?

a) Checagem constante da utilização dos recursos físicos (disco, CPU, memória, recurso de rede etc.);

b) Verificação e ação (em caso de incidentes) sobre os arquivos de massa de dados e logs de transacionais;

c) Elaboração e análise constante das trilhas e logs de acessos;

d) Elaboração e constante revisão de políticas e recursos de backup/recovery;

e) Elaboração, aplicação e revisão constante de normas e políticas de segurança, não somente em relação ao(s) banco(s) de dado(s), mas em relação às informações como um todo;

f) Adoção de Sistemas de Detecção de intrusos.

6. Segurança é composta apenas de exigências de Software e Banco de Dados?

Não, também e principalmente é composta das exigências relacionada ao negócio suportado.

7. Quais as metodologias que abordam a Segurança e seus impactos nos negócios?

As mais expressivas no mercado atual são: COSO BSC, SOX FOR IT, COBIT®, PMBOK®, CMMi®, ITIL®, ITSM®, SLAs. No entanto a adoção de tais metodologias ou práticas requer alto investimento, tempo e muita disciplina impactando diretamente nos negócios.

8. Decorra sobre o que Aprendeu sobre Segurança de Banco de Dados:

Dos conhecimentos absorvidos, cito como o mais marcante o fato de que a segurança não deve ter foco somente nos recursos de hardware ou softwares, mas sim e principalmente no negócio suportado pelos mesmos. Ganhamos massa critica para entender e avaliar os resultados relacionados à aplicação de boas práticas e também aos impactos relacionados a não-aplicação de nenhuma prática (por mais simples que seja), compreender a relação custo/benefício durante a adoção de soluções de segurança, visto que, quanto maior o nível de segurança maior será o custo envolvido.

9. Quem são os atores que devem interagir para garantir a implementação da Segurança em uma empresa e quais artifícios eles devem se valer para atingir um grau de maturidade em termos de segurança de informações?

São diversos os atores envolvidos, sendo eles (dentro de um processo alinhado de comprometimento) os diretores, executivos de negocio, executivos de TI, profissionais técnicos da área de TI e/ou demais áreas e claro que não poderíamos deixar de citar a camada de usuários (uma das mais importantes na tocante: comprometimento).

Como artifícios para a evolução do nível de maturidade, poderíamos citar vários, mas convém partir do básico (do fundamental). A princípio instituir processos e práticas simples que garantam o “start” do processo de evolução e continuidade e mais adiante eleger dentre as metodologias existentes no mercado a que mais se adéquam os requisitos de negócios da empresa em questão.

 

 


Replicação de Banco de Dados

08/01/2009

 

Amigos,

Segue um post de um trabalho que entreguei recentemente na Pós, espero que lhes possam ser útil. Fiquem a vontade para comentar.

Replicação de Banco de Dados

Para que serve?

Para duplicar e fazer múltiplas cópias gerenciadas de dados com objetivos de:

Descentralizar “aplicações”, viabilizar Hot-backup de servidores de banco de dados, proporcionar o Balanceamento de Carga, viabilizar arquiteturas e soluções de Data Warehousing e viabilizar a Integração de sistemas heterogêneos.

Por que usar?

Devemos utilizar o recurso de replicação de dados por ser este o único recurso quando temos a necessidade de replicar um ou mais banco de dados ou simplesmente alguns de seus objetos e sincronizar-los de acordo com uma necessidade de negócio.
Lançamos mão de uma solução de replicação quando visamos ganho de performance, alta disponibilidade, autonomia de unidades de negócios (distribuída entre filiais e matriz), ou sincronismos de bases desconectadas ex: Dispositivo Móvel  com Base Corporativa.

O que é replicação de dados?

Replicação de dados é o processo de copiar e manter objetos de banco de dados em vários SGDB’s que formam um banco de dados distribuído. A replicação aumenta a performance e a disponibilidade das aplicações por existir mais de uma alternativa para se acessar um dado.
Com a replicação de dados todas as cópias de uma tabela que é parte de um ambiente replicado pode ser consultadas ou mesmo atualizadas por uma aplicação. Os SGDB’s que formam o ambiente replicado automaticamente trabalham para convergir os dados de todas as réplicas de tabelas, garantindo assim a consistência e integridade transacional do ambiente.

Quais são os Modelos mais comuns de replicação?

Modelo – Replicação Mestre/Escravo
 
Neste modelo cada objeto possui um dono, a cópia primária é aquela que é dona do objeto, nela podem ser realizadas leituras e atualizações. As demais cópias são secundárias, nelas somente poderão ser realizadas leituras, usualmente se tem mais de uma cópia secundária.
Os “Nós Mestres” são aqueles onde só existem cópias primárias ao passo que os “Nós Escravos” são aqueles onde só existem cópias secundárias. Existem também os “Nós Mestre-Escravo” sendo que estes possuem cópias primárias e secundárias. Um problema deste modelo é que qualquer falha em um “Nó” mestre impede que sejam realizadas as atualizações nos demais “Nós”

Modelo – Replicação em Grupo

Neste modelo todas as cópias são donas dos objetos, de forma que as leituras e gravações podem ser realizadas em qualquer uma delas. A vantagem deste modelo esta no fato que a falha de um “Nó” não impede o correto funcionamento dos demais.

Quais são as Estratégias de Propagação existente?

Replicação síncrona

Esta se dá quando realizamos a atualização em uma tabela que possuí cópias, o SGBD realiza a atualização em todas as réplicas dentro da mesma transação. A transação só termina quando todas as cópias do objeto tiverem sido atualizadas. O sincronismo se dá quando todas as réplicas são atualizadas dentro da mesma transação considerando a propriedade da atomicidade.

Replicação Assíncrona

Esta se dá quando a atualização solicitada pelo cliente é realizada apenas em um “Nó” e somente após que a transação em que esta atualização está inserida termina, são disparadas transações de atualização nos vários “Nós” que contém as réplicas. Neste caso é disparada uma transação para cada uma das réplicas não atualizadas.

Replicando Banco de Dados – Abordagem em SQL Server

A ferramenta de replicação do SQL Server permite que a estrutura e os dados de uma determinada base sejam disseminados para outros meios, tais como outros servidores ou dispositivos móveis rodando SQL Server Compact Edition.

Existem diversos cenários onde a replicação é a melhor e mais simples solução para algum problema específico, entre estes cenários citamos dois casos distintos:

Processamento Offline: Se você deseja manipular dados em uma máquina ou dispositivo móvel não conectado, a replicação pode ser utilizada para que o sincronismo seja feito apenas em momentos onde há conectividade.

Redundância: A ferramenta de replicação permite que você construa uma base “espelhada” da base de sua aplicação, o que permite que em algum momento de indisponibilidade ela tome o lugar da base de “produção” sem maiores dificuldades.

Em qualquer cenário de replicação existem dois principais componentes, os Editores                  ( Publishers) e ao Assinantes (Subscribers).

Os Editores disponibilizam seus dados para outros servidores através de Artigos (Articles), um artigo é um objeto em uma base de dados, como por exemplo, VIEWS, TABELAS, e etc.

Os Assinantes consomem os dados dos editores, eles que recebem as atualizações quando há alguma modificação na base Editora. Lembrando que nada impede que uma base de dados seja Assinante e Editora ao mesmo tempo, na verdade isso é freqüentemente utilizado.

Esse processo de “meio de campo” entre Editores e Assinantes é feito pelos Agentes (Agents).

O SQL Server suporta três diferentes tipos de replicação, Snapshot, Transactional e Merge Replication.

Snapshot Replication: Como o próprio nome já sugere, ele simplesmente tira uma “foto” da base de dados replicada e compartilha essa “foto” com os seus Assinantes, em um processo longo e que consome muitos recursos do servidor, afinal é uma cópia completa de todos os artigos da Publicação, por esse motivo esse tipo de replicação não é utilizado em uma base de dados que sofre freqüentes alterações.

Transactional Replication: A replicação transacional é bem mais flexível do que a Snapshot, quando se trata de uma base de dados que sofre constantes alterações, nesse tipo de replicação o seu Agente monitora a base Editora esperando por alterações e transmite somente essas alterações para os assinantes, de maneira muito mais otimizada e rápida do que a anterior.

Merge Replication: Permite que o Assinante e o Editor efetuem alterações independentes na base de dados, ambas as entidades podem trabalhar desconectadas. No momento do sincronismo (com as bases conectadas obviamente) o Agente de Mesclagem(Merge Agent) checa as alterações feitas na Publicação e em cada um dos Assinantes e mescla as alterações de maneira que os dados fiquem solidificados. Entretanto neste processo de mesclagem podem ocorrer conflitos por diversos motivos, esses conflitos podem ser solucionados facilmente com um algoritmo de resolução de conflitos que determina os dados apropriados a serem mantidos na base. Este tipo de replicação é utilizado freqüentemente em bases de dados de dispositivos móveis os quais não estão constantemente conectados ao Editor.