;
FACULDADE LOURENÇO FILHO
CURSO DE BACHARELADO EM NOME DO CURSO
NOME DO ALUNO
TEMA DA MONOGRAFIA – PODERÁ SER EM MAIS
DE UMA LINHA
FORTALEZA – CE
Nome do aluno
TEMA DA MONOGRAFIA – PODERÁ SER EM MAIS
DE UMA LINHA
Monografia apresentada ao curso de Bacharelado em
Ciência da Computação como requisito parcial
necessário à obtenção do grau de Bacharel em
_____________ da Faculdade Lourenço Filho.
Orientação: Prof(a). M.Sc. ____________________.
Julho - 2015
ii
Nome do aluno
TEMA DA MONOGRAFIA – PODERÁ SER EM MAIS
DE UMA LINHA
Monografia apresentada ao curso de Bacharelado em Ciência da Computação da Faculdade
Lourenço Filho, como requisito parcial à obtenção do grau de Bacharel em Ciência da
Computação.
Aprovada em: ____/____/______
BANCA EXAMINADORA:
__________________________________________
Orientador - MSc. Xxxxxxxxxx Xxxxxxxx
Faculdade Lourenço Filho
__________________________________________
MSc. Xxxxxxxxxx Xxxxxx - 1º. Membro
Faculdade Lourenço Filho
__________________________________________
MSc. Xxxxxxxxxx Xxxxxx - 2º. Membro
Faculdade Lourenço Filho
__________________________________________________________
Prof. MSc. Xxxxxxxxxx Xxxxxxxxx
Coordenador do Curso Nome do Curso
iii
Dedicatória, pessoal e facultativa
iv
AGRADECIMENTOS
Cada um define a quem gostaria de agradecer.
Aos meus pais, xxxx.
Aos professores xxxxxxx
A todos que, de alguma forma, contribuíram para o alcance desse objetivo e sem os
quais minha caminhada teria sido árdua e os meus esforços dificilmente lograriam êxito.
v
A citação aqui também é facultativa.
Todas as inovações eficazes são surpreendentemente
simples. Na verdade, o maior elogio que uma
inovação pode receber é haver quem diga: isso é
óbvio. Por que não pensei nisso antes?”
(Peter Drucker)
vi
RESUMO
O texto deve ser escrito em um único parágrafo descrever o trabalho de forma sintética e
objetiva e conter em tono de 250 caracteres.
Palavras-chave: Pelo menos quatro, separadas por ponto e virgula.
vii
ABSTRACT
Tradução do resumo.
Key-words:
viii
LISTA DE FIGURAS
Figura 1: Atores do ambiente de Computação em Nuvem ....................................................... 20
Figura 2: Papéis no ambiente de Computação em Nuvem ...................................................... 24
Figura 3: Configuração simplificada de um Sistema de Banco de Dados ............................... 29
Figura 4: Sistema de BD – componentes: dados, hardware, software e usuários ................... 30
Figura 5: Organização de Banco de Dados como um serviço ................................................. 46
Figura 6: Bancos de Dados independentes e instâncias de Banco de Dados independentes ... 50
Figura 7: Tabelas independentes e instância de Banco de Dados compartilhada ................... 51
Figura 8: Tabelas compartilhadas e instância de Banco de Dados compartilhada .................. 52
Figura 9: Opções de armazenamento de dados no Windows Azure ....................................... 62
ix
LISTA DE TABELAS
Tabela 1: Análise comparativa Modelo Relacional X noSQL ................................................. 42
Tabela 2: Requisitos para DaaS ................................................................................................ 48
Tabela 3: Resumo comparativo entre os SGBDs apresentados ............................................... 71
x
LISTA DE SIGLAS E ABREVIAÇÕES
ACID – Atomicidade, Consistência, Isolamento, Durabilidade
API – Application Programming Interface
BASE – Basically Available, Soft State, Eventually Consistent
BDD – Banco de Dados Distribuído
CAP – Consistency, Availability, Partition Tolerance
CLR – Common Language Runtime
CRM – Customer Relationship Management
XML – eXtended Markup Language
xi
SUMÁRIO
INTRODUÇÃO ...................................................................................................................... 14
1 COMPUTAÇÃO EM NUVEM .......................................................................................... 18
1.1 Características Essenciais ................................................................................................. 22
1.2 Modelos de Serviços......................................................................................................... 23
1.3 Modelos de Implantação ................................................................................................... 24
1.4 Utilização da Computação em Nuvem ............................................................................. 25
2 BANCOS DE DADOS ......................................................................................................... 27
2.1 Sistema de Banco de Dados ............................................................................................. 29
CONCLUSÃO......................................................................................................................... 76
REFERÊNCIAS ..................................................................................................................... 78
APÊNDICES .......................................................................................................................... 79
ANEXOS ............................................................................................................................... 80
xii
INTRODUÇÃO
O desenvolvimento do conhecimento humano vem, ao longo da história, tornando a
vida cada vez mais simples. À medida que novas descobertas são feitas, produtos e serviços
cuja produção e disponibilização eram complexas e onerosas passam a fazer parte do dia a dia
de qualquer pessoa e toda a engenharia e ciência envolvidas no processo acabam passando
despercebidas. Apenas o valor agregado, o benefício final, é transferido ao consumidor, e por
um custo bastante reduzido.
Isso acontece, por exemplo, com o fornecimento de serviços básicos e essenciais, tais
como energia elétrica, água potável, gás, combustível, etc. Quem vai assistir a um filme em
casa ou preparar um comida no microondas não precisa ter uma usina hidrelétrica particular
para gerar sua energia; é necessário apenas pagar um valor mensal a uma empresa de
distribuição e utilizá-la. Os diversos serviços são fornecidos com base em uma determinada
política de tarifação, em que o usuário final paga de acordo com o uso que faz deles, tanto em
termos qualitativos como quantitativos.
Com o amadurecimento da Tecnologia da Informação (TI)1, esse modelo de negócio
tem ganhado visibilidade no mercado de computação. Um conceito muito em voga atualmente
é o de Computação em Nuvem ou cloud computing. Trata-se, como definem Mell e Grance
(2011), de um paradigma que possibilita acesso conveniente e sob demanda a um conjunto de
recursos computacionais configuráveis que podem ser rapidamente adquiridos e/ou liberados
com um mínimo de esforço gerencial ou interação humana com o provedor de serviços.
................................................................................................................................
Estruturalmente, o trabalho está dividido em cinco seções. Após essa breve
introdução, apresenta-se, na primeira delas, o conceito de Computação em Nuvem, com suas
características essenciais e modelos de serviços e implantação, de forma a introduzir o tema e
contextualizar o leitor.
Na seção seguinte, capítulo 2, faz-se uma revisão da tecnologia de banco de dados,
com foco em suas características, tipos, relevância e evolução.
1
TI – Tecnologia da Informação, termo amplamente utilizado neste trabalho, que indica a área de conhecimento
responsável por criar, administrar e manter a gestão da informação através de dispositivos e equipamentos para
acesso, operação e armazenamento dos dados, de forma a gerar informações para tomada de decisão.
O capitulo 3 trata dos bancos de dados em nuvem, sua aplicabilidade, requisitos,
abordagens utilizadas para a construção e principais características.
No capítulo 4, são relacionados, descritos e comparados os principais sistemas de
gerenciamento de dados em nuvem disponíveis no mercado. Em seguida, apresentam-se, de
maneira generalizada, vantagens e desafios trazidos por essa tecnologia.
Por fim, na quinta seção, tem-se a conclusão quanto aos aspectos verificados e a
aplicabilidade do modelo estudado, além da proposição de temas para trabalhos futuros.
14
1 TITULO DO CAPÍTULO
A Internet é hoje onipresente na vida de bilhões de pessoas em todo o mundo e deixou
de ser apenas um ambiente de troca de informações. Recursos como softwares, gerenciamento
de dados, infraestruturas de TI e plataformas de desenvolvimento podem ser providos como
serviços na rede mundial de computadores. Por trás de toda essa versatilidade está o conceito
de Computação em Nuvem, cuja base é quase tão antiga quanto os computadores
(MOHAMED, 2009 e TANENBAUM, 2003).
Segundo Mohamed (2009), a ideia básica que dá sustentação a essa expressão surgiu,
de maneira ainda embrionária, no ano de 1961, quando o especialista em inteligência artificial
John McCarthy, então professor do Instituto de Tecnologia de Massachusetts, descreveu um
modelo semelhante ao de distribuição de energia, mas aplicado à computação, em que centrais
forneceriam o processamento e o armazenamento de dados para residências e empresas.
.........................................................................................................................
Sobre isso, Alecrim (2008) declara que:
A denominação Cloud Computing chegou aos ouvidos de muita gente em
2008, mas tudo indica que ouviremos esse termo ainda por um bom tempo.
Também conhecido no Brasil como Computação nas Nuvens ou
Computação em Nuvem, Cloud Computing se refere, essencialmente, à ideia
de utilizarmos, em qualquer lugar e independente de plataforma, as mais
variadas aplicações por meio da Internet com a mesma facilidade de tê-las
instaladas em nossos próprios computadores.
Na literatura, são inúmeras as definições encontradas, que por vezes podem apresentar
conceitos diferentes. Por exemplo, alguns autores defendem que a escalabilidade e o uso
otimizado dos recursos são características chave da Computação em Nuvem, enquanto outros
discordam, afirmando que esses elementos não são características e sim requisitos de uma
infraestrutura que suporte esse paradigma de computação.
De acordo com o National Institute of Standards and Technology (NIST), a
Computação em Nuvem pode ser definida da seguinte forma:
15
Computação em nuvem é um modelo que possibilita acesso onipresente,
conveniente e sob demanda, a um conjunto de recursos computacionais
configuráveis (por exemplo, redes, servidores, armazenamento, aplicações e
serviços) que podem ser rapidamente adquiridos e liberados com mínimo
esforço gerencial ou interação com o provedor de serviços. Esse modelo de
nuvem é composto por cinco características essenciais, três modelos de
serviço e quatro modelos de implantação (MELL e GRANCE, 2011, p.3).
Vaquero et al. (2010, p.51), buscam em seu trabalho uma definição geral para a
expressão Computação em Nuvem, com vistas a contemplar a maior parte das características
expostas por outros autores e leva em consideração três conceitos principais: virtualização,
escalabilidade e modelo pay-per-use2. A definição proposta é:
Computação em nuvem, como o próprio nome sugere, engloba as chamadas
nuvens, que são ambientes que possuem recursos (hardware, plataformas de
desenvolvimento e/ou serviços) acessados virtualmente e de fácil utilização.
Esses recursos, devido à virtualização, podem ser reconfigurados
dinamicamente de modo a se ajustar a uma determinada variável,
permitindo, assim, um uso otimizado dos recursos. Esses ambientes são, em
geral, explorados através de um modelo pay-per-use.
Vê-se que Computação em Nuvem é, portanto, um conjunto de características que
permitem o acesso sob demanda a recursos computacionais como poder de processamento,
capacidade de armazenamento de dados e ambientes de desenvolvimento na forma de
serviços, disponibilizados via Internet, que ocultam a complexidade da infraestrutura
envolvida. Ou seja, grandes empresas, como Google, Microsoft e Amazon podem emprestar
ou vender a capacidade ociosa de seus servidores para pessoas ou empresas que precisem
guardar ou processar seus arquivos digitais.
Nessa troca, os provedores ganham receita de prestação de serviço, enquanto que
usuários finais e pequenas e médias empresas passam a ter acesso a uma gama praticamente
infinita de funcionalidades, com parque tecnológico sempre atualizado, mobilidade de acesso,
custo reduzido e transparência em relação à tecnologia utilizada, ou seja, pouca ou nenhuma
necessidade de conhecimento técnico.
Um conceito intrinsecamente ligado à Computação em Nuvem, e que dá suporte à
disponibilização de recursos computacionais como serviços, é o de Web Services. Trata-se de
2
Pay-per-use: Pague pelo uso, em inglês.
16
componentes de software ou unidades lógicas que conectam aplicações diretamente com
outras, sem a necessidade de grandes customizações ou intervenções humanas. Uma das
premissas fundamentais é que o padrão usado pelas conexões seja aberto e independente de
plataforma tecnológica ou linguagem de programação. Essa tecnologia combina os melhores
aspectos do desenvolvimento baseado em componentes com os recursos da web. As
aplicações acessam os Web Services através de protocolos e formatos de dados padrão, como
HTTP, XML e SOAP (LAFON, 2011).
A Figura 1, a seguir, ilustra os atores do ambiente de Computação em Nuvem, bem
como a organização desta, encapsulando a complexidade da infraestrutura envolvida.
Figura 1: Atores do ambiente de Computação em Nuvem.
Fonte: Adaptado de Vaquero et al. (2009).
A ilustração apresenta três atores principais: os usuários finais, que fazem uso dos
serviços disponibilizados via Internet; os provedores de serviço, responsáveis por desenvolver
soluções sobre a infraestrutura disponível, beneficiando-se da flexibilidade e da redução de
custos proporcionadas por esse modelo; e os provedores de infraestrutura, empresas como
Google e Microsoft, detentoras do parque tecnológico, que compartilham seu poder de
processamento e armazenamento mediante contratos de pagamento pelo uso. A figura
apresenta ainda um aspecto de suma importância: a virtualização, utilizada em larga escala
nesse ambiente, como forma de otimizar a capacidade do hardware disponível.
17
1.1 Subtítulo
Na sociedade moderna, um grande número de atividades cotidianas
......................................................................................................................................
No cenário atual, de alto nível de integração e troca de informações entre os sistemas
existentes, novas e versáteis aplicações de Sistemas de Banco de Dados vêm ocupando lugar
de destaque. Elmasri e Navathe (2011) destacam algumas aplicações mais novas, como Banco
de Dados multimídia3, GIS4, data warehouse5, OLAP6, tecnologia de bancos de dados ativos e
real time7.
3
Dados multimídia: texto, imagens, áudio e animação; representação e processamento de áudio digital.
4
GIS - Geographic Information System (Sistema de Informação Geográfica - SIG): sistema de hardware,
software, informação espacial e procedimentos computacionais que permite e facilita a análise, gestão ou
representação do espaço e dos fenômenos que nele ocorrem.
5
Data warehouse - traduzido literalmente para depósito de dados, é um sistema de computação utilizado para
armazenar informações relativas às atividades de uma organização em bancos de dados, de forma consolidada.
6
OLAP - Online Analytical Processing: software cuja tecnologia de construção permite aos analistas de
negócios, gerentes e executivos analisar e visualizar dados corporativos de forma rápida, consistente e interativa.
7
Real time: Tempo real, em computação, no contexto Banco de Dados, significa acompanhar a dinâmica das
informações, enquanto os dados são registrados no sistema.
18
1.1.1 Detalhamento do subtítulo
A Tabela 1, a seguir, apresenta, de forma resumida, uma análise comparativa com base
em escalonamento, consistência de dados e disponibilidade do sistema:
Relacional
noSQL
Escalonamento
Possível,
mas
complexo.
Devido à natureza estruturada
do modelo, a adição, de forma
dinâmica e transparente, de
novos nós no grid não é
realizada de modo natural.
Uma das principais vantagens desse
modelo. Por não possuir nenhum tipo
de esquema pré-definido, o modelo
possui maior flexibilidade, o que
favorece a inclusão transparente de
outros elementos.
Consistência
Ponto mais forte do modelo
relacional. As regras de
consistência
presentes
propiciam um maior grau de
rigor quanto à consistência das
informações.
Realizada de modo eventual no modelo:
só garante que, se nenhuma atualização
for realizada sobre o item de dados,
todos os acessos a esse item devolverão
o último valor atualizado.
Disponibilidade
Dada a dificuldade de se
conseguir trabalhar de forma
eficiente com a distribuição
dos dados, esse modelo pode
não suportar a demanda muito
grande de informações do
banco.
Outro fator fundamental do sucesso
desse modelo. O alto grau de
distribuição dos dados propicia que um
maior número de solicitações aos dados
seja atendida por parte do sistema e que
este fique menos tempo indisponível.
Tabela 1: Análise comparativa Modelo Relacional x noSQL.
Fonte: Adaptado de Brito (2011).
19
2 CAPÍTULO
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
................................................
20
3 CAPÍTULO
.................................................
21
CONCLUSÃO
A computação evoluiu
..................................................................................
propõe-se a realização dos seguintes trabalhos futuros: (i) realização de um estudo de
caso de um ........ relacional; (ii) desenvolvimento de técnicas eficazes para descrever, ........
(iii) estudo de viabilidade da utilização de .............
22
REFERÊNCIAS
ABADI, Daniel J. Data management in the cloud: Limitations and opportunities. 2009.
Disponível em <http://sites.computer.org/debull/A09mar/abadi.pdf>. Acesso em: set. de
2011.
CANTU, Carlos Henrique. Firebird Essencial. Rio de Janeiro: Ciência Moderna, 2005.
DATE, C. J. Introdução a Sistemas de Bancos de Dados. 8. ed. Rio de Janeiro: Campus,
2004.
DEAN, Jeffrey.; Ghemawat, Sanjay. Mapreduce: simplified data processing on large
clusters. 2004. Disponível em <http://usenix.org/events/osdi04/tech/dean.html>. Acesso em:
set. de 2011.
DECANDIA, G.; Hastorun, D.; Jampani, M.; Kakulapati, G.; Lakshman, A.; Pilchin, A.;
Sivasubramanian, S.; Vosshall, P.; Vogels, W. Dynamo: Amazon’s highly available keyvalue store. 2007. SIGOPS Oper. Syst. Rev., 41(6):205–220.
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de Banco de Dados. 6. ed. São
Paulo: Pearson, 2011.
HAMILTON, Gary; QUIMBO, Jocelyn; VERMA, Saurabh. Database as a Service: A
Different Way to Manage Data. Disponível em: <http://cloudcomputing.syscon.com/node/1203562>. Acesso em: out. de 2011.
KLEIN, Scott; ROGGERO, Herve. Pro SQL Azure. 1. ed. USA: Apress, 2010.
VAQUERO, Luis M.; MERINO-RODERO, Luis; CACERES, Juan; LINDNER, Maik. A
Break in the Clouds: Towards a Cloud Definition. ACM SIGCOMM Computer
Communication Review, volume 39(1): 50-55, jan. de 2009.
23
APENDICES
24
ANEXOS
25
Download

Modelo