Académique Documents
Professionnel Documents
Culture Documents
DE
GRADUAO
APRESENTADO FACULDADE DE
TECNOLOGIA DE SO JOS DOS
CAMPOS,
COMO
PARTE
DOS
DO
TTULO
DE
TRABALHO
DE
GRADUAO
APRESENTADO FACULDADE DE
TECNOLOGIA DE SO JOS DOS
CAMPOS,
COMO
PARTE
DOS
DO
TTULO
DE
___/___/___
DATA DE APROVAO
AGRADECIMENTOS
Agradeo a minha famlia, que sempre me apoiou nos momentos difceis, aos
professores, sempre dedicados sua misso de educar, e aos amigos e colegas de
curso, que estiveram comigo nos ltimos trs anos.
II
RESUMO
III
ABSTRACT
Databases are largely used in several areas of the society. They are an essential part
of many companies, because they have a large amount of financial and strategic data
about their clients and employees, and this data need to be saved somehow.
As the companies goes into informatization, the amount of data they store grow up,
and the performance of the database applications tends to decrease. There are new
model of databases, that were created in order to solve this problems, and one of this
models is the NoSQL.
This paper has the objective of doing a comparative study between relational and
NoSQL databases, and to identify witch on is more suitable for a Business Intelligence
Aplication.
Keywords: column oriented databases, relational databases, comparative study,
NoSQL
IV
LISTA DE ABREVIATURAS E SIGLAS
V
NDICE DE FIGURAS
VI
NDICE DE TABELAS
VII
SUMRIO
Introduo ................................................................................................. 1
1.1
Motivao .......................................................................................................... 1
1.2
Problema ............................................................................................................ 2
1.3
1.4
Definio ............................................................................................................ 4
2.2
2.3
2.4
2.4.1
2.4.2
2.4.3
2.5
2.5.1
Estrutura bsica......................................................................................... 10
2.5.2
Chaves ...................................................................................................... 11
2.5.3
Normalizao ............................................................................................ 12
2.5.4
ACID ........................................................................................................ 14
2.6
2.6.1
2.7
2.7.1
2.7.2
Armazenamento de documentos............................................................... 19
2.7.3
2.7.4
3.2
Definio .......................................................................................................... 23
3.2.1
3.3
4
Pentaho............................................................................................................. 25
Ferramentas Utilizadas............................................................................ 27
VIII
4.1
Mysql ............................................................................................................... 27
4.2
LucidDB........................................................................................................... 28
4.3
4.4
4.5
Proposta de soluo................................................................................. 30
5.1
5.2
5.2.1
5.3
5.4
5.5
5.5.1
Desempenho ............................................................................................. 33
5.5.2
5.5.3
5.5.4
5.5.5
5.6
5.6.1
5.6.2
5.6.3
6.1.1
6.1.2
6.1.3
6.1.4
6.1.5
7.2
Apndice ................................................................................................. 61
9.1
IX
9.2
1
1
Introduo
1.1
Motivao
2
Os bancos de dados relacionais dominaram o mercado de armazenamento de
dados por muitos anos. Atravs das propriedades ACID (Atomicidade, Consistncia,
Isolamento, Durabilidade), que ser explicada adiante, oferecem um ambiente de
armazenamento favorvel a pequenas e mdias empresas. Com o crescimento da
quantidade de dados armazenados no banco, se faz necessrio distribuir a base de dados.
Os bancos relacionais no esto bem preparados para esta distribuio, e perdem
desempenho no tratamento de requisies do usurio. A rede social Facebook, por
exemplo, utiliza para o seu datawarehouse um banco que no relacional. O volume de
dados que esta aplicao gera diariamente de aproximadamente 15 Terabytes
(CPMBC, 2009; FHH, 2009).
Enquanto bancos de dados relacionais armazenam os dados linha por linha em
disco, um banco de dados colunar, por exemplo, armazena os dados por colunas,
fazendo com que apenas os dados necessrios sejam lidos, e no todos os dados no
banco (MT10AADW, 2010). O maior banco comercial existente, da Google, tambm
colunar, denominado Bigtable.
1.2
Problema
1.3
Proposta de soluo
3
1.4
Organizao do Trabalho
4
2
2.1
Definio
Um banco de dados pode ser definido como uma coleo de dados que possuem
um relacionamento entre si. Para que este conjunto de dados seja considerado um banco
de dados, necessrio que algumas regras sejam observadas:
5
2.2
produo em suas unidades, estoque de itens em armazns e lojas, alm de controle dos
setores de recursos humano e financeiro;
Transaes de carto de crdito: registrar e controlar compras com
de
empresas
mais
diversificadas,
como
Microsoft
IBM
(SILBERSCHATZ, 2006).
A figura 1 mostra os principais sistemas gerenciadores de banco de dados
existentes atualmente.
2.3
no foram criados para executar tarefas de banco de dados, como extrao de uma
determinada informao de um determinado arquivo. Para cada necessidade de consulta
ao sistema de dados necessrio que o programador escreva uma aplicao para efetuar
esta busca, o que torna a recuperao de dados uma tarefa difcil.
devem ser condizentes com a regra de negcio do cliente. Por exemplo, em uma
aplicao que controla as vendas de uma loja, a quantidade vendida de um item e o
saldo deste item no podem assumir valores negativos. Para que esta condio seja
cumprida, necessrio que um cdigo de verificao seja includo na aplicao. Porm,
quando novas regras de negcios so adicionadas, difcil mudar os programas para
implement-las, principalmente se as novas regras envolvem itens que possuem regras
distintas das j existentes (SILBERSCHATZ, 2006).
aplicaes, os sistemas de banco de dados devem oferecer acesso concorrente aos dados
armazenados. Porm, com esta funcionalidade, possvel que a interao das aes
concorrentes levem os dados a um estado de inconsistncia. Considere uma aplicao
bancria. Ao checar o saldo, a aplicao verifica que o saldo atual R$100,00. Quase
simultaneamente, duas operaes de cobrana so efetuadas nesta conta, sendo a
8
primeira cobrana no valor de R$80,00 e a segunda de R$50,00. Considerando que a
operao de cobrana consiste em checar o saldo, diminuir o valor cobrado e salvar o
novo saldo da conta, a execuo das operaes ir deixar o registro com um valor
inconsistente (R$20,00 ou R$50,00 de saldo, dependendo de qual terminar sua execuo
por ltimo).
falhas, como qualquer outro dispositivo. Considere um programa bancrio que efetue a
transferncia de R$100,00 de uma conta A para uma conta B. Se ocorrer uma falha
durante este procedimento, possvel que o valor transferido fosse retirado da conta A,
porm no creditado na conta B. Os sistemas de banco de dados devem ser capazes de
oferecer operaes atmicas, isto , deve ocorrer em sua totalidade ou no ocorrer.
difcil garantir a atomicidade de operaes em um sistema de arquivos.
Estas e outras dificuldades impulsionaram o desenvolvimento de sistemas de
banco de dados, para resolver as dificuldades anteriormente citadas e oferecer o
ambiente ideal para armazenamento de dados (SILBERSCHATZ, 2006).
2.4
Modelo de Dados
9
2.4.2 Modelo de entidade / relacionamento
2.5
10
2.5.1 Estrutura bsica
Um banco de dados relacional formado por vrias tabelas, cada uma com um
nome nico atribudo. Considere a tabela Alunos (tabela 1). Ela possui 4 cabealhos de
coluna: Matrcula, Nome aluno, Curso e Telefone. Segundo a normatizao do modelo
relacional, chamaremos estes cabealhos de atributos. Para cada atributo, h um
conjunto de valores que so permitidos de serem armazenados nesta coluna. Este
conjunto chamado de domnio desse atributo.
Para o atributo Nome Aluno, por exemplo, o domnio do atributo o conjunto de
todos os alunos que fazem parte da instituio que registra seus alunos nesta tabela, j
para o atributo Matrcula, o domnio do campo o nmero de registro deste aluno na
instituio, o atributo Curso possui como domnio os nomes dos cursos que a instituio
ministra e, para o atributo, Telefone o domnio o conjunto de valores que representa o
telefone da residncia dos alunos desta instituio. Qualquer linha desta tabela precisa
consistir em um conjunto de 4 elementos (a1, a2, a3 e a4), onde a1 a Matrcula (e est
no domnio D1), a2 o Nome do aluno (e est no domnio D2), a3 o nome do curso
(domnio d3) e a4 o nmero do telefone (que est no domnio D4) da entidade
representada.
conjuntos possveis para cada atributo da tabela. Portanto, conta um subconjunto de:
D1 x D2 x D3 x D4
Em geral, uma tabela de N atributos um subconjunto de:
D1 x D2 x ... x Dn-1 x Dn
Matrcula
Nome do Aluno
Curso
Telefone
312412
Joo da Silva
Letras
3531-1345
312413
Maria de Sousa
Fsica
3412-5312
312414
Rita de Cssio
Matemtica
1324-1224
312415
Fsica
6124-8972
312416
Paulo Nascimento
Computao
3551-6377
11
Matrcula
Nome do Aluno
Curso
Telefone
312413
Maria de Sousa
Fsica
3412-5312
312414
Rita de Cssio
Matemtica
1324-1224
312416
Paulo Nascimento
Computao
3551-6377
312415
Fsica
6124-8972
312412
Joo da Silva
Letras
3531-1345
exigido que, para todos os registros da tabela, os domnios dos atributos sejam
atmicos. Para que um domnio seja considerado atmico ele deve ser formado apenas
por elementos indivisveis. Por exemplo, o conjunto dos nmeros inteiros um domnio
atmico, porm o conjunto de todos os conjuntos de nmeros inteiros no atmico,
pois o subconjunto composto por diversos nmeros inteiros. Esta exigncia
necessria pois, apesar de Nome do Aluno e Curso serem ambos armazenados como
conjunto de caracteres no esquema fsico (armazenamento em arquivo), no nvel lgico
(onde so representadas as tabelas) a lgica do negcio impe que o Nome do Aluno e o
nome do curso sejam de conjuntos distintos (SILBERSCHATZ, 2006).
2.5.2 Chaves
12
mudar, o que torna o endereo de uma pessoa uma m escolha de atributo chave,
diferentemente dos identificadores normalmente gerados pelas empresas para identificar
os registros, que dificilmente sero alterados.
Um esquema de tabela t1 pode ter entre seus atributos a chave primria de outra
tabela, digamos t2. Este atributo chamado de chave estrangeira de t1, referenciando t2.
Por exemplo, no esquema da Figura 3, o atributo nome_agncia na tabela conta uma
chave estrangeira desta tabela, que referencia a outra tabela do esquema, a agncia. Em
qualquer conjunto de registros do banco de dados, para cada linha existente na tabela
conta, necessrio que nome_agencia possua uma referncia a um registro vlido da
tabela agncia (SILBERSCHATZ, 2006).
Na figura 3, representado um esquema de uma instituio bancria. As chaves
primrias de cada entidade so apresentadas antes dos outros atributos, na caixa cinza.
2.5.3 Normalizao
13
propriedade indesejvel que um projeto de banco de dados pode ter a repetio
desnecessria de informaes.
Considere que o Aluno Joo da Silva, da figura 4, se matricule para um novo
curso na instituio de ensino e uma nova matrcula seja gerada para registro deste novo
aluno no curso. desejvel que no aja repetio de informaes no projeto do banco
de dados, pois isto aumenta o custo de armazenamento e dificulta a tarefa de atualizao
dos dados. Suponha que o nmero do telefone deste aluno seja alterado. Esta alterao
deve refletir nas duas linhas, sendo mais custosa nesta tabela do que em uma tabela
normalizada.
Aplicando a normatizao a este projeto, o atributo curso fica independente do
registro do aluno, evitando a repetio de informaes desnecessrias, conforme mostra
a figura 4. Nota-se que os dados representados so os mesmos (com adio do registro
do novo curso do aluno 312412), porem sem a duplicao desnecessria de dados
(SILBERSCHATZ, 2006).
14
2.5.4 ACID
2.6
15
praticamente similares iriam requerer esquemas independentes e separados. Finalmente,
o design completo requer centenas de milhares de partes e acesso direto a cada parte
deste design se torna impraticvel.
Bancos de dados orientados objetos so uma tentativa de resolver estas
dificuldades (assim como outras), e ainda manter as vantagens dos sistemas de banco de
dados. Em uma entidade composta de vrias partes possvel ter acesso direto a um de
seus componentes, ao invs de associar explicitamente um identificador nico a cada
uma de suas partes e criar uma tabela extra de relacionamento. Alm disso,
programadores podem manipular entidades do banco de dados em qualquer nvel de
abstrao, atravs da extenso dos tipos de dados conhecidos pelo banco. Isso
importante pois significa que o programador no necessita transformar o tipo de dado da
aplicao para facilitar sua persistncia no banco (HOROWITZ, 1991).
Titulo
Lista de Autores
Editora
Conjunto de palavras-chaves
Autores: Um livro pode ter mais de um autor, que seria representado por
armazenado para um livro, esperado que seja possvel recuperar todos os livros que
compem determinado tema (palavra-chave).
Ttulo
Autor
Editora
Compiladores
[Smith, Jones]
tica
[anlise, programao]
Redes
[Jones, Frick]
Globo
[internet, web]
16
A tabela 3 representa a tabela com os dados dos livros desta biblioteca. Para
simplificar, consideraremos que o nome do livro nico e capaz de identificar cada
registro da tabela, sendo a chave primria da mesma.
17
2.7
O termo NoSQL foi utilizado pela primeira vez no ano de 1998, por Carlo
Strozzi, para identificar bancos de dados de cdigo aberto que no possuam interface
SQL (linguagem universal de manipulao de dados, utilizada pelos bancos de dados
relacionais). Este novo conceito totalmente distinto do modelo relacional, e seria mais
apropriadamente chamado de NoRelacional, porm o nome NoSQL, adotado, possui um
efeito melhor (NVRSDQEF, 2010).
Bancos de dados no relacionais, incluindo hierrquicos, grficos e orientados a
objetos esto em uso desde os anos 60. Entretanto, novos tipos de bancos de dados no
relacionais esto sendo desenvolvidos, como os bancos colunares. Diferentes bancos de
dados NoSQL tem diferentes abordagens, porm o que todos eles possuem em comum
que no so relacionais. A principal vantagem de um tipo de dados no relacional que,
diferente da abordagem tradicional, eles lidam bem com dados desestruturados, tais
como emails, dados multimdia e dados provenientes de mdias sociais (Leavitt, 2010).
Alm disso, a necessidade de melhorar o desempenho dos bancos de dados, e
diminuir os custos de armazenamento e processamento de informaes impulsionaram o
desenvolvimento desta nova metodologia de banco de dados. O NoSQL lida bem com
distribuio horizontal, ou seja, consegue ser distribudo entre vrias estaes para
armazenamento de maiores quantidades de dados, e estes novos servidores no precisam
ser de alto desempenho (NVRSDQEF, 2010).
Esta nova abordagem principalmente utilizada por empresas da web 2.0, com
quantidades gigantescas de dados e infra-estrutura, como a Google e a Amazon. Eles
desenvolveram Big Table e Dynamo, ambos bancos de dados NoSQL (Leavitt, 2010).
De fato, um dos grandes utilizadores desta metodologia a Google, que utiliza
computadores de pequeno e mdio porte para armazenagem e distribuio de dados,
com utilizao mais eficiente dos recursos e mais econmica.
O armazenamento de dados destes bancos evoluiu conforme a necessidade da
aplicao, com diferentes modelos de dados e capacidades. Os elementos bsicos
podem ser considerados objetos, documentos ou registros. Apesar dessas
variaes, podemos considerar como essncia deste sistema:
18
desenvolvimento de um banco de alta disponibilidade, pois no necessrio desativar o
banco para efetuar alteraes no esquema.
Aplicaes) de buscas simples, o que, diferente dos bancos relacionais, encoraja buscas
simples, sem necessidade de grandes unies de tabelas.
para fazer com a que a escalabilidade entre diversas mquinas seja utilizvel. Isto
alcanado atravs da identificao de falhas e de recuperao utilizando cpias de ns
espelhos.
A escalabilidade destes bancos tem seu preo: a aplicao deve poder operar
com menores nveis de consistncia garantida, sem transaes que afetem vrios
registros. Estes bancos de dados so populares entre aplicaes da web 2.0 pois estes
programas normalmente operam com baixa (se houver) necessidade de consistncia,
sendo possvel o suporte a deciso com dados mais antigos (Cattel, 2010).
Os bancos de dados NoSQL so subdivididos pelo seu ncleo, ou seja, como ele
lida com as informaes que armazena. Os principais tipos de ncleo so: Key/Value
Store, Document Store e Wide Columns Store (NVRSDQEF, 2010).
19
O banco de dados SimpleDB, da Amazon, uma implementao desta
metodologia. Ele prove funes de indexao de informaes e buscas na web 2.0. Ele
possui uma interface simples para persistncia de dados e acesso (Leavitt, 2010).
20
21
como finalidade auxiliar webmasters a analisar o acesso a seu website. Atravs desta
ferramenta, o webmaster consegue inferir diversos dados a respeito dos visitantes do
website. Duas das principais tabelas utilizadas por esta aplicao utilizam banco de
dados NoSQL: A tabela de clicks brutos (raw click table) e a tabela de sumrio, que
juntas possuem aproximadamente 220TB de informaes so armazenadas com este
modelo de dados criado pelo Google (Chang, 2006).
22
3
Business Intelligence
3.1
Business Intelligence
23
3.2
Definio
24
e porcentagens, enquanto anlises mais desenvolvidas fazem o uso de modelos
avanados de otimizao, aprendizagem indutiva e previso (VERCELLIS, 2009).
Os usurios de uma aplicao de BI observam o desenvolver da companhia. Eles
contabilizam, atravs da ferramenta, o nmero de vendas por semana, comparam estas
vendas com as das semanas anteriores, observam as tendncias dos consumidores e suas
reclamaes. Usurios de um DW (Data Warehouse) praticamente no lidam com dados
isolados (uma nica linha de registro do banco). Na verdade, seus questionamentos
normalmente fazem com que centenas de milhares de linhas de uma tabela sejam
buscadas e compactadas em um conjunto de respostas. Alm disso, os questionamentos
que so feitos ferramenta esto mudando constantemente (KIMBALL, 2002).
25
que apenas usurios devidamente autorizados possuam acesso aos dados crucias da
empresa (KIMBALL, 2002)
Como ilustrado anteriormente, aplicaes de auxlio a deciso precisam alm de
auxiliar na parte estratgica do negcio, gerar informaes em um tempo hbil, alm de
garantir que estas informaes apenas estejam disponveis aqueles que necessitem
utiliz-la.
Operacional
Analtico
Propsito
Executar um processo
Avaliar um processo
Estilo iterao
Query
Escopo iterao
Transao individual
Agregao
Padro query
Previsvel e estvel
Imprevisvel
Foco temporal
Atual
Atual e histrico
Otimizao
Update concorrente
Query
Projeto
ER na 3FN
Conhecido como
OLTP
Data Warehouse
3.3
Pentaho
26
FIGURA 8- PENTAHO
FIGURA 9- PENTAHO
27
4
Ferramentas Utilizadas
Este captulo tem como objetivo apresentar as ferramentas que sero utilizadas
durante a execuo dos testes comparativos.
Este captulo est organizado como segue: a seo 4.1 apresenta o banco de
dados relacional Mysql, a seo 4.2 apresenta o banco de dados colunar LucidDB, a
seo 4.3 apresenta o software para medio de desempenho JMeter, a seo 4.4
apresenta o software Medidor de desempenho do Windows e a seo 4.5 apresenta o
software de virtualizao Oracle Virtual Box.
4.1
Mysql
Grande parte das melhorias que ocorreram na arquitetura do Mysql tem como
objetivo uma performance mais transparente e ganhos de escalabilidade em plataformas
heterogenias,
especificamente
em
hardwares
multi-CPU/core,
arquiteturas
de
28
4.2
LucidDB
4.3
Apache JMeter
4.4
29
Este software ser utilizado visto que nativo do Windows, e o mesmo possuir
todas as funcionalidades que sero necessrias para anlise das aplicaes durante o
teste.
4.5
30
5
Proposta de soluo
Este captulo tem como objetivo definir quais critrios sero considerados na
comparao entre os bancos de dados relacionais e NoSQL, e explic-los.
Este captulo est organizado como segue: A seo 5.1 define os Sistemas
Gerenciadores de Banco de dados utilizados para estudo, a seo 5.2 define a aplicao
analisada, a seo 5.3 apresenta o ambiente de teste, a seo 5.4 define os testes que
sero efetuados, a seo 5.5 apresenta os critrios que sero analisados em cada teste, e
a seo 5.6 Definio dos softwares utilizados para execuo e coleta de dados durante
os testes.
5.1
5.2
31
inovador, pois a transao considerada uma locao caso o cliente devolva o filme
aps um perodo de tempo determinado, porm se ultrapassar este perodo considerada
como uma venda.
A empresa iniciou suas atividades em Abril de 2000, e os dados de transaes
contemplam dados de todos os portais que fazem parte da aplicao. Alm dos dados de
vendas, a WCM tambm possui dados bsicos sobre os filmes, como gnero, dados dos
atores e diretores dos filmes (Bouman, 2009).
32
5.3
120GB HD
10Gb de HD.
5.4
Sero efetuados 4 queries (buscas) na base de dados, e cada uma destas buscas
ser repetida 200 vezes, e ser utilizado para comparao a mdia dos resultados. As
buscas que sero efetuadas iro simular consultas que podem ser efetuadas por um
usurio comum de um sistema de Business Intelligence.
33
Os testes sero efetuados seqencialmente, ou seja, a segunda busca s iniciar
aps a busca anterior ter sido executada 200 vezes, e assim sucessivamente at o final
do teste.
Durante a execuo de cada querie sero coletados os dados necessrios para
posterior anlise dos critrios definidos na seo 5.4.
Sero efetuadas as seguintes buscas no banco de dados:
No apndice 2 pode ser encontrado o script utilizado para execuo das buscas
acima em ambas as bases de dados.
5.5
Durante a busca, sero coletados dados para anlise e comparao dos bancos de
dados de acordo com os critrios que seguem.
5.5.1 Desempenho
34
5.5.2
Utilizao de CPU
35
quantidade total ser de 500mb. Neste teste sero efetuadas apenas 100 buscas da
primeira querie (Gnero com maior receita em 2008), para verificar se houve alguma
diferena no desempenho e na quantidade de memria livre (em % do total) em relao
ao teste original, onde as mquinas possuam 1500mb de memria total.
5.6
Durante a execuo dos testes, sero utilizados os softwares que seguem para
coleta de dados para posterior anlise comparativa entre os SGDBs escolhidos.
Ser programado no JMeter para que cada uma das queries sejam executadas
200 vezes simultaneamente via JDBC. O JMeter ir salvar os dados de desempenho de
cada querie em um arquivo de log, para anlise posterior.
36
5.6.3 Oracle Virtual Box
37
Resultados Encontrados
6.1
Resultados Encontrados
38
6.1.1.1 Gnero com maior receita em 2008
Tempo
Tempo
Mnimo
Mximo
Mdio
Mysql
23569
33033
25312
LucidDB
3851
4669
4014
Diferena
512,02%
607,50%
530,67%
39
Tempo
Tempo
Mnimo
Mximo
Mdio
24748
27128
25549
LucidDB 2233
2774
2338
Diferena 1008,28%
877,94%
992,72%
Mysql
40
41
Tempo
Tempo
Tempo
Mnimo
Mximo
Mdio
29820
37518
30512
LucidDB 2273
3999
2402
Diferena 1211,92%
838,18%
1170,45%
Mysql
838% e 1170%,
respectivamente).
42
Tempo
Tempo
Tempo
Mnimo
Mximo
Mdio
16825
19264
17300
LucidDB 2494
5192
2599
Diferena 574,62%
271,03%
565,65%
Mysql
43
6.1.2 Anlise comparativa da utilizao de CPU
99,94%
LucidDB 99,98%
Diferena 0,04%
TABELA 9 - ANLISE COMPARATIVA DO USO DE CPU NA PRIMEIRA QUERIE
6.1.2.2
Evoluo do lucro
Na tabela 10, podemos observar a utilizao mdia de CPU durante a execuo dos
testes.
44
Mdia
Mysql
100,00%
LucidDB 100,00%
Diferena
0,00%
6.1.2.3
100,00%
LucidDB 100,00%
Diferena
0,00%
6.1.2.4
45
Mdia
Mysql
99,98%
LucidDB 100,00%
Diferena
0,02%
Conforme podemos observar na tabela 12, nesta querie houve uma pequena
diferena na utilizao de CPU (0,02%) entre os bancos de dados, porem esta diferena
praticamente inexistente, e no podemos concluir nada com base apenas nela.
6.1.3
6.1.3.1
Maior
Mdia
LucidDB
557
707 593,3333
Mysql
860
1013 917,1543
54,58%
46
TABELA 13 - ANLISE COMPARATIVA
DO USO DE MEMRIA NA PRIMEIRA QUERIE
6.1.3.2
Evoluo do lucro
Maior
Mdia
LucidDB
574
604 589,7188
Mysql
837
893 873,3578
48,10%
47
6.1.3.3
48
Menor
Maior
Mdia
LucidDB
556
571 567,3125
Mysql
857
893 874,5577
49
6.1.3.4
Maior
Mdia
LucidDB
547
560
Mysql
818
893 871,4701
555,2
56,97%
Conforme podemos observar na Tabela 16, o banco de dados Mysql possui uma
maior quantidade de memria disponvel durante sua execuo, conforme tendncia j
observada anteriormente.
A figura 18 nos mostra que, novamente, a diferena entre a quantidade de memria
disponvel durante a execuo dos testes entre os bancos de dados se manteve
praticamente constante nos 3 critrios analisados.
50
6.1.4
251,74
LucidDb
145,65
Diferena
72,84%
51
6.1.5
6.1.5.1
3581
4170
Mysql
23466
24602
28840
Diferena 72,07%
555,29% 589,98%
Conforme podemos observar, ambos os bancos de dados tiveram uma piora em sua
performance mxima (4669 e 33033 anteriormente, para os bancos LucidDB e Mysql,
respectivamente).
A figura 20 mostra a evoluo do tempo de resposta ao longo da execuo das
queries. Podemos notar que aps a primeira busca, o tempo de resposta diminui
significativamente e comparvel ao resultado obtido utilizando 1500MB de memria
RAM.
52
6.1.5.2
Mnima
Mdia
LucidDB
342
149
189
Mysql
600
504
546
Diferena 75,44%
238,26% 188,86%
Conforme podemos observar na tabela 19, durante a execuo dos testes pelo banco
de dados Mysql, a quantidade de memria livre maior que a quantidade de memria
livre durante a execuo dos testes no banco LucidDB, conforme tendncia j observada
no item 6.1.3.
A figura 21 nos mostra a diferena entre os bancos de dados graficamente,
ilustrando a grande diferena que existe entre os bancos na utilizao de memria.
53
6.1.5.3
30479
Mysql
30961
Mnima
3564
Mdia
4213,15
24104 25366,99
54
Conforme podemos observar na figura 22, o tempo inicial do banco LucidDB foi
superior ao banco de dados Mysql com esta quantidade de memria disponvel ,porem
nas outras buscas os resultados apresentados foram semelhantes a aqueles apresentados
anteriormente.
6.1.5.4
Mnima
Mdia
45
20
192
75
118
55
Conforme podemos observar na tabela 21, a quantidade de memria livre durante a
execuo dos testes no banco de dados LucidDB inferior a quantidade de memria
livre durante a execuo do banco relacional, em todos os critrios comparados.
A figura 23 mostra a diferena encontrada na tabela 21 graficamente. Conforme
podemos observar, a diferena do uso de memria entre os bancos muito grande,
conforme j observado anteriormente (itens 6.1.3 e 6.1.5.2)
56
7
Consideraes finais
7.1
Contribuies e Concluses
RAM que o banco de dados LucidDB, e que ambos trabalham bem com pouca
memria.
c)
eficiente, pois possui uma menor alocao de disco para os mesmos dados.
57
As seguintes experincias foram obtidas:
a)
b)
grfica (LucidDB)
c)
7.2
Trabalhos Futuros
58
8
Referencias Bibliogrficas
1st.
ed.
Indianapolis:
em:
59
Kimball, R.; Ross, M. The Data WareHouse Toolkit. 2 Edio. New York: Wiley
Computer Publishing, 2002. ISBN 0-471-20024-7.
Leavitt, N. Will NoSQL Databases Live Up to Their Promise? 2010. Computer, 12.
ISSN: 0018-9162, pg. 12 14
LucidDB, 2011. Disponvel em <http://www.luciddb.org/>. Acesso em: 24 maio. 2011.
Machado, F. N.R. Banco de dados: Projeto e implementao. Brasil: Editora Erica,
2008. ISBN 978-85-365-0019-5.
Microsoft,
2011.
Disponvel
em
<http://technet.microsoft.com/ptbr/library/cc749154(WS.10).aspx/>. Acesso em: 17 jul. 2011.
Mynosql. 2010. Disponvel em <http://nosql.mypopescu.com/post/407159447/
cassandra-twitter-an-interview-with-ryan-king/>. Acesso em: 24 maio, 2011.
Mysql, 2011. Disponvel em; <http://www.mysql.com/why-mysql/white-papers/>.
Acesso em: 24 maio. 2011.
NVRSDQEF: NoSQL, voc realmente sabe do que estamos falando?, 2010. Disponvel
em
<http://imasters.com.br/artigo/17043/
bancodedados/nosql_voce_realmente_sabe_do_que_estamos_falando/>. Acesso em: 24
maio. 2011.
Sieera, J. L; Fernndes-Valmayor, A.; Fernndes-Majon, B.; Navarro, A.. ADDS: A
Document-Oriented Approach for Application Development. Journal of Universal
Computer Science, Volume 10, pages 1302-1324, 2004.
Silberschatz, A.; Korth, H.. F., Sudarshan, S. Sistema de banco de dados, Rio de
Janeiro: Editora Elsevier, 2006. ISBN: 978-85-352-1107-8.
Stonebraker, M.; Abadi, D. J.; Batkin, A.; Chen, X; Cherniack, M.; Ferreira, M.; Lau,
E.; Lin, A.; Madden, S.; ONeil, E.; ONeil, P.; Rasin, A.; Tran, N.;Zdonik, S. C-Store:
A Column-oriented DBMS. 2005 - VLDB '05 Proceedings of the 31st international
conference on Very large data bases. ISBN:1-59593-154-6
60
MT10AADW: My Top 10 Assertions About Data Warehouses, 2010. Disponvel em
<http://cacm.acm.org/blogs/blog-cacm/98136-my-top-10-assertions-about-datawarehouses/fulltext/> Acesso em: 24 maio. 2011.
Teradata,
2008.
Disponvel
em:
<http://www.teradata.com/t/newsrelease.aspx?id=6375/>. Acesso em: 24 maio. 2011.
Termehchy, A.; Winslett, M. Keywords Search Over Key-Value Stores. ACM, 2010.
ISBN: 978-1-60558-799-8.
Vercellis, C. Bussiness Intelligence: Data mining and Optimization for Decision
Making, 1 Edio. John Wiley & Sons Ltd, 2009. ISBN978-0-470-51138-1
VirtualBox, 2011. Disponvel em: <http://www.virtualbox.org/> Acesso em 10 jul.
2011.
Williams, Steve. Williams, Nancy. The profit impacto of Business Intelligence.
Morgan Kaufmann Publishers, 2007. ISBN-13:978-0-12-372499-1
WNM: Whats New in MySQL 5.5: Performance and Scalability. Disponvel em
<http://www.mysql.com/why-mysql/white-papers/mysql-wp-whatsnew-mysql-55.php>
Acesso em: 10 jul. 2011.
61
9
9.1
Apndice
Tabela dim_time: a tabela dimensional que possui os registros com todas as horas
existentes em um dia.
Tabela dim_date: a tabela dimensional que possui os dados de datas (sem hora),
que alem de possuir a data em si, possui dados adicionais, como se feriado, se final
de semana, o ano fiscal, etc.
Tabela dim_customer: a tabela dimensional onde so armazenados os dados dos
consumidores da aplicao.
Tabela dim_order_status: a tabela dimensional que armazena os possveis estados
dos pedidos dos clientes.
Tabela dim_promotion: a tabela dimensional que armazena os dados referentes as
promoes criadas pela empresa WCM.
Tabela dim_warehouse: a tabela dimensional onde ficam armazenados os dados
sobre os armazns da WCM.
Tabela dim_website: a tabela dimensional onde ficam armazenados os dados
sobre os vrios sites que compem a aplicao WCM.
Tabela dim_dvd_release: a tabela dimensional onde ficam armazenados os dados
sobre os DVDs que so comercializados pela WCM.
Tabela dim_demography: a tabela dimensional que relaciona o grupo
demogrfico que um determinado cliente faz parte. Exemplo: entre 15 e 20 anos de
idade, do sexo masculino e que ganha
62
9.2