Você está na página 1de 14

Definição de MySQL

O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a


linguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada)
como interface. É atualmente um dos bancos de dados mais populares, com mais de 10
milhões de instalações pelo mundo.

Entre os usuários do banco de dados MySQL estão, entre outros: NASA, Friendster,
Banco Bradesco, Dataprev, HP, Nokia, Sony, Lufthansa, U.S Army, US. Federal
Reserve Bank, Associated Press, Alcatel, Slashdot, Cisco Systems.

Características

* Portabilidade (suporta praticamente qualquer plataforma atual);


* Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface
para diversas linguagens de programação, como Delphi, Java, C/C++, Visual
basicPython, Perl, PHP, ASP e Ruby)
* Excelente desempenho e estabilidade;
* Pouco exigente quanto a recursos de hardware;
* Facilidade de uso;
* É um Software Livre com base na GPL;
* Contempla a utilização de vários Storage Engines como MyISAM, InnoDB,
Falcon, BDB, Archive, Federated, CSV, Solid…
* Suporta controle transacional;
* Suporta Triggers;
* Suporta Cursors (Non-Scrollable e Non-Updatable);
* Suporta Stored Procedures e Functions;
* Replicação facilmente configurável;
* Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL Inc.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxx

PostgreSQL é um sistema gerenciador de banco de dados objeto relacional (SGBDOR),


desenvolvido como projeto de código aberto.

O Projeto PostgreSQL é desenvolvido e direcionado pela sua comunidade de


desenvolvedores e de usuários. Para coordenar o projeto há uma equipe central (core
team) composta por sete desenvolvedores e um grupo de committers CVS. O código
fornecido por voluntários é avaliado e aceito ou rejeitado pelos committers.

Este modelo de desenvolvimento de software, baseado no modelo Bazar originalmente


apresentado em A Catedral e o Bazar de Eric S. Raymond, possibilita o
desenvolvimento de software com qualidade devido, principalmente, a permitir:

* Tratar usuários como parceiros e/ou desenvolvedores. Eles contribuem diretamente


com o desenvolvimento do software apresentando os problemas enfrentados, suas
necessidades, suas sugestões de solução e, até mesmo, seu próprio código fonte de
solução. Assim, usuários auxiliam de forma pró-ativa nas melhorias e na depuração do
software.
* Reutilizar código fonte.
* Lançar rapidamente e frequentemente novas versões. Com uma base ampla de
usuários testadores do software, os eventuais problemas são rapidamente identificados e
sugestões de solução também aparecem com rapidez.
Características

Hoje, o PostgreSQL é um dos SGBDs (Sistema Gerenciador de Bancos de Dados) de


código aberto mais avançados, contando com recursos como:

* Consultas complexas
* chaves estrangeiras
* Integridade transacional
* Controle de concorrência multi-versão
* Suporte ao modelo híbrido objeto-relacional
* Gatilhos
* Visões
* Linguagem Procedural em várias linguagens (PL/pgSQL, PL/Python, PL/Java,
PL/Perl) para Procedimentos armazenagem
* Indexação por texto
* Estrutura para guardar dados Georeferenciados PostGIS

Fonte: Wikipedia

Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

MySQL x PostgreSQL MySQL x PostgreSQL


Quando Usar Cada Um Quando Usar Cada Um
Fernando Lozano Fernando Lozano
fernando@lozano.eti.br fernando@lozano.eti.br http://www.lozano.eti.br

Porque Escolher Entre o Porque Escolher Entre o


MySQL e o PostgreSQL? MySQL e o PostgreSQL?
? São os bancos de dados livres mais populares
? São os projetos mais antigos e maduros
? Suporte de ferramentas livres:
PHP, Perl, Python, Glade / Gnome-DB, ...
? Suporte de ferramentas proprietárias
Kylix, Java, Delphi, Visual Basic, ASP, ColdFusion, ...
? Outros bancos livres:
? Firebird (fork do Interbase Open Source)
? SAP-DB

Bancos Livres x Proprietários Bancos Livres x Proprietários


? Os bancos livres em geral suportam:
? Otimização de consultas
? Histogramas sobre colunas
? Comandos SQL sofisticados
? Grants
? Campos binários longos
? Grandes volume de dados, usuários e transações
? Replicação

Bancos Livres x Proprietários Bancos Livres x Proprietários


? Os bancos livres ainda não suportam:
? Tablespaces
? Clustering
? Transações distribuídas
? Consultas paralelas
? Particionamento
? Views Materializadas
? Bancos Multidimensionais / Aplicações OLAP

Sobre o MySQL Sobre o MySQL


? Surgiu à partir de um formato de arquivos ISAM
desenvolvido pela Datakonsult AB
? Implementava o mesmo protocolo de rede e APIs
do mSQL (miniSQL), um banco freeware
? A versão Windows era shareware
? Há dois anos foi relicenciado sob a GNU GPL
? A empresa mudou de nome para MySQL AB

Características do MySQL Características do MySQL


? Foco em facilidade de administração e baixo
consumo de recursos do hardware
? Se tornou popular graças à Internet, pois os
bancos tradicionais tinham tempos de conexão
extremamente elevados, inadequados para
aplicações CGI
? Para atingir seus objetivos, não implementava
funções com grande overhead como integridade
referencial, commit, rollback e níveis de isolamento
de transação

Características do MySQL Características do MySQL


? Servidor multithreaded:
um único processo mysqld atende a todos os
clientes
? Tabelas e índices correspondem à arquivos físicos
e bancos de dados correspondem à diretórios
? Distribuição de dados em múltiplos discos deve
ser feita manualmente, por meio de links
simbólicos
? Segurança via SSL (4.x)

O MySQL Hoje e Amanhã O MySQL Hoje e Amanhã


? Hoje (versão 3.23.x):
? Mecanismos de armazenamento (tipos de tabela)
com suporte à transações
? Recursos SQL mais sofisticados, como agregados
? Ainda não implementa alguns recursos básicos
como views e foreign keys
? Próximas versões (4.x, 5.x, ...):
? Maior compatibilidade com o padrão ANSI
? Views e procedimentos armazenados
? Full text search

Plataformas Suportadas pelo Plataformas Suportadas pelo


MySQL MySQL
? Servidor
? Sistemas Unix-Like:
GNU/Linux, FreeBSD, Solaris, AIX, HP-UX, ...
? Win32:
Windows 95/98/ME, Windows NT/2000/XP/NET
? OS/2 (Em desenvolvimento para BeOS e LynxOS)
? Cliente:
? Drivers ODBC (3.0) e dbExpress para Unix e
Windows
? Várias ofertas de drivers JDBC 2.0 100% Java

Quando Usar o MySQL Quando Usar o MySQL


? Back-end para geração de conteúdo de web sites
? Aplicações envolvendo basicamente consultas e
adição de dados
? Não usar para aplicações com fortes demandas
transacionais, especialmente se houverem
atualizações concorrentes!
? Empresas como o Yahoo Finance combinam o
MySQL (aplicações web) com um outro banco de
dados (retaguarda financeira)

Sobre o PostgreSQL Sobre o PostgreSQL


? Herdeiro da tradição de pesquisa em BDs da
Universidade da Califórnia em Berkeley
? O Ingres “criou” a tecnologia relacional; o Postgres
(post-Ingres) focava a tecnologia de objetos
? Projetos de estudantes acrescentaram o suporte
ao SQL, gerando o PostgreSQL
? Um grupo de usuários assumiu a evolução da
versão SQL para atender às demandas do meio
empresarial

Versões do PostgreSQL Versões do PostgreSQL


? 6.5 foi a primeira versão considerada “estável” para
uso comercial
? 7.0 finalizou o ciclo de refatoramento do código
legado da versão acadêmica
? 7.1 (hoje 7.1.3) acrescenta novas features sobre o
SQL e o otimizador
? 7.2 inicia um novo ciclo de adições ao backend
? A licença BSD permite a derivação de versões
proprietárias do PostgreSQL

Características do PostgreSQL Características do PostgreSQL


? Implementação completa dos padrões ANSI para o
SQL, como selects aninhados, integridade
referencial, views, triggers, ...
? Extensões orientadas a objeto, como tipos
abstratos de dados, herança, atributos multivaluados,
...
? Funções definidas pelo usuário, mas que não
podem retornar registros, portanto não tem ainda a
mesma funcionalidade dos procedimentos
armazenados em outros bancos

Características do PostgreSQL Características do PostgreSQL


? Servidor em múltiplos processos:
um único processo postmaster recebe as
conexões de rede, e inicia um processo postgres
para cada cliente
? Uso intensivo de memória compartilhada e
semáforos – pode ser necessário ajustar
parâmetros do kernel para melhorar o desempenho
ou para atender a cargas de trabalho maiores

Características do PostgreSQL Características do PostgreSQL


? Tabelas e índices correspondem à arquivos físicos
e bancos de dados correspondem à diretórios
? Podem ser configurados vários diretórios
diferentes para hospedar (arquivos de) bancos de
dados? Segurança via Kerberos e/ou SSL

O PostgreSQL Hoje e Amanhã O PostgreSQL Hoje e Amanhã?


Hoje (versão 7.1.x e 7.2.x)?
Views funcionais?
Funções definidas pelo usuário em TCL, Perl, C, ...?
Outer joins?
Linhas de pesquisa (7.x):?
Postgres file system, para suporte a raw devices?
Máquina Virtual Java integrada ao banco?
Backups on-line rápidos?
Two-phase commit

Plataformas Suportadas Pelo Plataformas Suportadas Pelo


PostgreSQL PostgreSQL
? Servidor
? Sistemas Unix-like
GNU/Linux, FreeBSD, Solaris, AIX, HP-UX, ...
? Versões experimentais para
Windows NT/2000/XP/NET (Cygwin) e MacOS X
? Cliente
? Bibliotecas nativas C para Unix, Win95/NT e OS/2
? Drivers ODBC (2.5) e dbExpress nativos para Unix
e Windows
? Driver JDBC 1.0 (2.0 parcial) 100% Java

Quando Usar o PostgreSQL Quando Usar o PostgreSQL


? Aplicações com fortes componentes transacionais
? Aplicações que necessitem de tipos de dados
especializados, como Sistemas de Informações
Geográficas (SIG) e repositórios de meta-dados
? Projetos baseados em metodologias Orientadas a
Objeto – perda de compatibilidade com o padrão
ANSI SQL
? Aplicações OLAP “light”, que não necessitem do
nível de sofisticação de um DataWarehouse

Referências Referências
? PostgreSQL
www.postgresql.org
? MySQL
www.mysql.com
fernando@lozano.eti.br fernando@lozano.eti.br http://www.lozano.eti.br
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Banco de dados MySQL e PostgreSQL

Introdução

É muito fácil encontrar serviços de hospedagem de sites que oferecem em seus planos
os Sistemas Gerenciadores de Banco de Dados (SGDB) MySQL e PostgreSQL, embora
isso seja mais comum com o primeiro. Como esses SGBD não são usados apenas na
internet, talvez seja de seu interesse utilizá-los em seus projetos de software, uma vez
que cada um é dotado de vantagens interessantes, como a gratuidade de uso. Para ajudá-
lo a escolher o melhor para sua aplicação, este artigo apresenta as principais
características de ambos, começando com o MySQL. Para tanto, é recomendável que
você tenha algum conhecimento sobre os conceitos de bancos de dados.

Alguns termos

Mesmo aquelas pessoas que já trabalham com banco de dados podem ficar "perdidas"
no meio de tantos nomes de recursos. Assim, para facilitar a compreensão, segue uma
lista com uma breve explicação sobre os recursos mais importantes:

- Referential integrity: também conhecido como "integridade referencial", esse recurso


consiste em restrições ou regras existentes para uma correta inserção de dados, por
exemplo, para impedir que uma tabela seja preenchida sem que isso ocorra em outra;
- Schemas: recurso que permite cruzar informações em um mesmo banco de dados, mas
em estruturas diferentes;
- SQL: sigla para Structured Query Language, é uma linguagem utilizada em bancos de
dados relacionais;
- SSL: sigla para Secure Sockets Layer, consiste em um protocolo para a troca segura de
informações;
- Stored procedures: esse recurso consiste em comandos SQL "guardados" no servidor
para, por exemplo, executar tarefas repetitivas, evitando que um cliente tenha que
executá-las constantemente;
- Transactions: também conhecidas como transações, as transactions são instruções
executadas em um bloco designado por parâmetros que indicam seu início e seu fim;
- Triggers: também chamados de gatilhos, os triggers são recursos que permitem o
acionamento de uma seqüência de comandos logo em seguida ou logo após um evento;
- Views: os views consistem em um tipo de tabela virtual formada por campos extraídos
de uma tabela "verdadeira", facilitando o controle sob os dados acessados.

O banco de dados MySQL

MySQLO MySQL é um dos sistemas de gerenciamento de banco de dados mais


populares que existe e, por ser otimizado para aplicações Web, é amplamente utilizado
na internet (inclusive aqui no InfoWester). É muito comum encontrar serviços de
hospedagem de sites que oferecem o MySQL e a linguagem PHP, justamente porque
ambos trabalham muito bem em conjunto.

Outro fator que ajuda na popularidade do MySQL é sua disponibilidade para


praticamente qualquer sistema operacional, como Linux, FreeBSD (e outros sistemas
baseados em Unix), Windows e Mac OS X. Além disso, o MySQL é um software livre
(sob licença GPL), o que significa que qualquer um pode estudá-lo ou alterá-lo
conforme a necessidade.

Entre as características técnicas do SGBD MySQL, estão:


- Alta compatibilidade com linguagens como PHP, Java, Python, C#, Ruby e C/C++;
- Baixa exigência de processamento (em comparação como outros SGBD);
- Vários sistemas de armazenamento de dados (batabase engine), como MyISAM,
MySQL Cluster, CSV, Merge, InnoDB, entre outros;
- Recursos como transactions (transações), conectividade segura, indexação de campos
de texto, replicação, etc;
- Instruções em SQL, como indica o nome.

Até o momento em que este artigo era escrito, o MySQL estava na versão 5.0 (mais
precisamente, 5.0.26). Em relação à versão 4.0, houve acréscimo de vários recursos e
melhorias importantes, como:

- Triggers;
- Stored procedures;
- Sub-selects;
- Suporte total ao Unicode;
- INFORMATION_SCHEMA (para armazenamento do dicionário de dados);
- Server side cursors;
- Suporte a SSL;
- Melhoria no tratamento de erros.

O MySQL surgiu na Suécia pelas mãos de três colegas: Allan Larsson, David Axmark e
Michael Monty Widenius. Trabalhando com base de dados, eles sentiram a necessidade
de fazer determinadas conexões entre tabelas e usaram o mSQL para isso. Porém, não
demorou para perceberem que essa ferramenta não lhes atendia conforme o necessário e
passaram a trabalhar em uma solução própria. Surgia então o MySQL, cuja primeira
versão foi lançada no ano de 1996.

Um fato importante a ser destacado sobre o MySQL é que esse SGBD também possui
uma licença comercial, isto é, paga. Neste caso, é possível obter suporte diferenciado
dos desenvolvedores.

Vale ressaltar também que, em fevereiro de 2008, o MySQL foi comprado pela Sun
Microsystems, que pagou a quantia de 1 bilhão de dólares pela aquisição. Mais
informações sobre essa transação neste link (em inglês).

O banco de dados PostgreSQL

PostgreSQLO sistema gerenciador de banco de dados PostgreSQL teve seu início na


Universidade de Berkeley, na Califórnia, em 1986. À época, um programador chamado
Michael Stonebraker liderou um projeto para a criação de um servidor de banco de
dados relacionais chamado Postgres, oriundo de um outro projeto da mesma instituição
denominado Ingres. Essa tecnologia foi então comprada pela Illustra, empresa
posteriormente adquirida pela Informix. Porém, mesmo diante disso, dois estudantes de
Berkeley (Jolly Chen e Andrew Yu) compatibilizaram o Postgres à linguagem SQL.
Este projeto recebeu o nome de Postgres95.

Em 1996, quando o projeto estava estável, o banco de dados recebeu o nome de


PostgreSQL. No entanto, enquanto ainda possuía o nome Postgres95, o banco de dados
teve várias mudanças. O seu código foi totalmente revisado e a linguagem SQL foi
definida como padrão.
Tecnicamente falando, o PostgreSQL é um banco de dados relacional e orientado a
objetos. Um de seus atrativos é possuir recursos comuns a banco de dados de grande
porte, o que o deixa apto a trabalhar, inclusive, com operações de missão crítica. Além
disso, trata-se de um banco de dados versátil, seguro, gratuito e de código aberto
(disponível sob uma licença BSD).

Entre suas características, tem-se:

- Compatibilidade multi-plataforma, ou seja, executa em vários sistema operacionais,


como Windows, Mac OS X, Linux e outras variantes de Unix;
- Compatibilidade com várias linguagens, entre elas, Java, PHP, Python, Ruby, e C/C+
+;
- Base de dados de tamanho ilimitado;
- Tabelas com tamanho de até 32 TB;
- Quantidade de linhas de até 1.6 TB ilimitada;
- Campos de até 1 GB;
- Suporte a recursos como triggers, views, stored procedures, SSL, MVCC, schemas,
transactions, savepoints, referential integrity e expressões regulares;
- Instruções em SQL, como indica o nome.

No momento em que este artigo era escrito, o PostgreSQL estava na versão 8.1.

MySQL x PostgreSQL

MySQL ou PostgreSQL, qual usar? Ambos são muito bons e não fazem feio diante das
alternativas pagas. Além disso, possuem recursos e vantagens em comum, o que
significa que, para a maioria das aplicações, ambos podem ser usados. Na verdade, o
correto não é tentar descobrir qual é o melhor, mas em que situação um ou outro deve
ser utilizado.

O PostgreSQL é otimizado para aplicações complexas, isto é, que envolvem grandes


volumes de dados ou que tratam de informações críticas. Assim, para um sistema de
comércio eletrônico de porte médio/alto, por exemplo, o PostGreSQL é mais
interessante, já que esse SGBD é capaz de lidar de maneira satisfatória com o volume de
dados gerado pelas operações de consulta e venda.

O MySQL, por sua vez, é focado na agilidade. Assim, se sua aplicação necessita de
retornos rápidos e não envolve operações complexas, o MySQL é a opção mais
adequada, pois é otimizado para proporcionar processamento rápido dos dados e tempo
curto de resposta sem exigir muito do hardware. Se você precisa, por exemplo, de um
banco de dados para armazenar o conteúdo do seu site, de seu fórum ou necessita
manter um cadastro de usuários de um portal, o MySQL "serve como uma luva", pois
tais aplicações não necessitam dos recursos avançados que o PostgreSQL oferece.

Para escolher um destes dois SGBD, procure entender bem quais recursos sua aplicação
precisa. Tente estimar o volume de dados, avalie o hardware disponível, certifique-se
das funcionalidades necessárias e, posteriormente, procure por informações mais
detalhadas do MySQL e do PostGreSQL. Se sua aplicação for simples - principalmente
se for algo ligado à internet -, não é preciso pensar muito: o MySQL é uma escolha
satisfatória, pois é facilmente encontrado em serviços de hospedagem.
.: Livros sugeridos :.
:: PostgreSQL - Técnicas Avançadas
:: PostgreSQL - Guia do Programador
:: MySQL - A Bíblia
:: MySQL 5 - Guia de Consulta Rápida
Via Shopping UOL
Todavia, há situações em que tanto o MySQL quanto o PostgreSQL serão boas
escolhas. Nesses casos, é recomendável fazer testes com ambos e avaliar qual oferece
mais vantagens à aplicação.

Finalizando

Um banco de dados pode ser a diferença entre ter e não ter um negócio, seja ele de
qualquer porte. Por isso, a escolha deve ser bem feita e aspectos como desempenho,
recursos, documentação e suporte devem ser considerados. Em todos esses pontos o
MySQL e o PostgreSQL são excelentes, por isso, a escolha entre um deles só depende
de sua aplicação.

Para saber mais sobre o PostgreSQL, visite: http://www.postgresql.org (em inglês) e


http://www.postgresql.org.br.

Para saber mais sobre o MySQL, visite: http://www.mysql.com (em inglês) e


http://www.mysqlbrasil.com.br.

Escrito por Emerson Alecrim - Publicado em 21/11/2006 - Atualizado em 20/04/2008


Voltar Página inicial
Versão para imprimir Indicar por e-mail
Adicionar ao Delicious
Anúncios Shopping UOL

InfoWester 2010 | Propagando conhecimento | Responsável: Emerson Alecrim | No ar


desde 2001

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

PostgreSQL x MySQL. Qual Escolher?

Kaui Aires Oliveira (e-mail) é Bacharelando em Sistemas de Informações. Possui larga


Experiência Profissional, cerca de 8 anos trabalhando com TI, é especialista em banco
de dados e segurança da informação. Experiências em Oracle, PostgreSQL,
MsSQLServer, MySQL, DW, BI e etc. Tendo trabalhado em grandes corporações,
como Microsoft (New York), TATA Consultancy Services do Brasil, IBM, Sebrae,
FGV e, atualmente, no MEC. Tendo ainda bastante vivência também na área acadêmica,
publicando artigos e ministrando cursos/palestras sobre banco de dados, business
intelligence, datawarehouse e segurança da informação. E tem um site de publicações de
matérias e trabalho pessoal (www.pinguinsdocerrado.com.br).

Olá caros amigos. Mais um artigo que estou publicando e gostaria desta vez de falar
sobre dois excelentes SGBDs, fazendo as devidas comparações.

São dois SGBDs, ambos gratuitos. O MySQL está disponível sob a GPL (Licença
Pública GNU), além de possuir uma licença convencional, para quem não quiser estar
limitado aos termos da GPL. Já o PostgreSQL está disponível sob a flexível licença
BSD.

O MySQL é o mais utilizado no desenvolvimento de aplicações onde a velocidade é


importante (porém isto tem mudado com versões mais recentes do PostgreSQL),
enquanto que o PostgreSQL se destaca por ser mais robusto e possuir muito mais
recursos que o MySQL. Esses recursos tornam o PostgreSQL um “banco de dados” no
conceito de muita gente.
Nas últimas versões do MySQL, os desenvolvedores acrescentaram diversos recursos
que já existiam no PostgreSQL como transações (confirmação e cancelamento de
operações realizadas COMMIT e ROLLBACK), triggers (gatilhos), Stored Procedures
(Procedimentos Armazenados), views (visões), lock line (bloqueio em nível de linha) e
constraints (cláusulas de integridade).

No entanto, o PostgreSQL continua sendo mais eficiente em vários aspectos. Possui um


sofisticado mecanismo de bloqueio (MVCC veremos a seguir), suporta tamanhos
ilimitados de linhas, bancos de dados e tabelas (até 16TB), aceita vários tipos de sub-
consultas, possui mais tipos de dados e conta com um bom mecanismo de FAILSAVE
(Segurança contra falhas, por exemplo no desligamento repentino do sistema).

Como já foi dito no início deste artigo, a vantagem do MySQL ainda é a velocidade de
acesso (que às vezes nem é notada pois está na escala de milésimos de segundo). Para
bases de dados muito grandes, complexas e que exige confiabilidade e escalabilidade
vale a pena usar o PostgreSQL. Para base de dados menores, não há diferença na
velocidade ou pode se desconsiderar os milésimos de segundos entre os dois SGBDs.

A Técnica MVCC – PostgreSQL

Multi-Version Concurrency Control (MVCC) é uma técnica avançada do PostgreSQL


que resolve aquele antigo problema de ambientes multiusuários de banco de dados, os
LOCKs (bloqueios) que fazem o usuário ficar esperando.

Ao contrário de outros SGBDs que utilizam que utilizam LOCKs para controle de
concorrência, o PostgreSQL mantém a consistência dos dados usando um modelo
multiversão. Neste modelo, cada transação terá sua versão do banco de dados, estando
protegidas de acessar dados inconsistentes que poderiam ser gerados por outras
transações. Portanto, o MVCC oferece o isolamento de transações, alem de garantir que
leituras nunca aguardarão escritas e vice-versa.

Isolamento das Transações

O Padrão SQL ANSI/ISSO define quatro níveis de isolamento de transações baseados


nas seguintes situações:

Dirty Reads: ocorre quando uma transação lê dados escritos por uma transação corrente
que ainda não foi confirmada (COMMIT).

Non-Repeatable Reads: uma transação lê um dado que ela já havia lido anteriormente, e
descobre que aqueles dados foram modificados por outra transação (confirmada após a
primeira leitura).

Phantom Read: uma transação lê um conjunto de linhas que satisfaça algum critério de
pesquisa. Outra transação insere uma linha que satisfaça o critério da anterior. Se a
primeira transação executar novamente o comando de pesquisa, ela receberá um
conjunto diferente de linhas.

Os quadros de níveis de isolamentos são descritos a seguir para você entender melhor.

Nível

Descrição
Read Uncommitted
Uma transação pode enxergar dados não confirmados por outra transação

Read Committed
Uma transação não pode enxergar dados não confirmados por outra transação, até que
estes dados sejam confirmados.

Repeatable Read
Uma transação neste nível garante que valores já lidos não possam ser alterados por
outra transação.

Serializable
Uma transação só poderá interagir com outras transações concorrentes no sentido de
produzir o mesmo efeito, como se cada transação estivesse sendo executada uma após a
outra.

A tabela a seguir mostra quais situações podem ocorrer em cada um dos níveis de
isolamento:

Nível

Dirty Reads

Non-Repeatable Reads

Phantom Read

Read Uncommitted

Possível

Possível

Possível

Read Committed

Impossível

Possível

Possível

Repeatable Read

Impossível

Impossível

Possível

Serializable

Impossível
Impossível

Impossível

Obs.: No PostgreSQL estão disponíveis os níveis de isolamento READ, COMMITTED


e SERIALIZABLE.

Para Finalizar um Bate–bola rápido...

Características do MySQL

Foco em facilidade de administração e baixo consumo de recursos do hardware.


Tornou-se popular graças à Internet, pois os bancos tradicionais tinham tempos de
conexão extremamente elevados, inadequados para aplicações CGI. Para atingir seus
objetivos, não implementava funções com grande overhead como integridade
referencial, commit, rollback e níveis de isolamento de transação.

a. Servidor multithreaded:
b. Um único processo mysqld atende a todos os clientes.
c. Tabelas e índices correspondem à arquivos físicos e bancos de dados correspondem à
diretórios.
d. Distribuição de dados em múltiplos discos deve ser feita manualmente, por meio de
links simbólicos.
e. Segurança via SSL
f. Com suporte à transações
g. Recursos SQL mais sofisticados, como agregados, COMMIT e ROLLBACK,
triggers (gatilhos), Stored Procedures (Procedimentos Armazenados), views (visões),
lock line (bloqueio em nível de linha) e constraints (cláusulas de integridade).
h. Maior compatibilidade com o padrão ANSI.

Plataformas Plataformas Suportadas pelo MySQL

a. Servidor
b. Sistemas Unix-Like:
c. GNU/Linux, FreeBSD, Solaris, AIX, HP-UX,...
d. Win32: Windows 95/98/ME, Windows NT/2000/XP/NET
e. OS/2 (em desenvolvimento para BeOS e LynxOS)
f. Cliente: Drivers ODBC e dbExpress para Unix e Windows Várias ofertas de drivers
JDBC 2.0 100% Java.

Quando Usar o MySQL

a. Back-end para geração de conteúdo de web sites


b. Aplicação envolvendo basicamente consultas e adição de dados. Sugiro não usar para
aplicações com fortes demandas transacionais, especialmente se houverem atualizações
concorrentes!
c. Empresas como o Yahoo Finance combinam o MySQL (aplicações web) com um
outro banco de dados (retaguarda financeira).

Características do PostgreSQL

O PostgreSQL é um sistema gerenciador de banco de dados objeto-relacional


(SGBDOR), baseado no PostgreSQL desenvolvido pelo Departamento de Ciência da
Computação da Universidade da Califórnia em Berkeley. O POSTGRES foi pioneiro
em vários conceitos que somente se tornaram disponíveis muito mais tarde em alguns
sistemas de banco de dados comerciais.

O PostgreSQL é um descendente de código fonte aberto deste código original de


Berkeley. É suportada grande parte do padrão SQL:2003, além de serem oferecidas
muitas funcionalidades modernas, como:

. comandos complexos
. chaves estrangeiras
. gatilhos
. visões
. integridade transacional
. controle de simultaneidade multiversão

Além disso, o PostgreSQL pode ser estendido pelo usuário de muitas maneiras como,
por exemplo, adicionando novos:

. tipos de dado
. funções
. operadores
. funções de agregação
. métodos de índice
. linguagens procedurais

Devido à sua licença liberal, o PostgreSQL pode ser utilizado, modificado e distribuído
por qualquer pessoa para qualquer finalidade, seja privada, comercial ou acadêmica,
livre de encargos.

g. Implementação completa dos padrões ANSI para o SQL, como selects aninhados,
integridade referencial, views, triggers,...
h. Extensões orientadas a objeto, como tipos abstratos de dados, herança, atributos
multivaluados...
i. Funções definidas pelo usuário, mas que não podem retornar registros, portanto não
tem ainda a mesma funcionalidade dos procedimentos armazenados em outros bancos
j. Servidor em múltiplos processos: um único processo postmaster recebe as conexões
de rede, e inicia um processo postgres para cada cliente
l. Uso intensivo de memória compartilhada e semáforos – pode ser necessário ajustar
parâmetros do kernel para melhorar o desempenho ou para atender a cargas de trabalho
maiores
m. Tabelas e índices correspondem à arquivos físicos e bancos de dados correspondem à
diretórios. Podem ser configurados vários diretórios diferentes para hospedar (arquivos
de) bancos de dados
n. Segurança via Kerberos e/ou SSL
o. Views funcionais
p. Funções definidas pelo usuário em TCL, Perl, C,...
q. Outer joins
r. Postgres file system, para suporte a raw devices
s. Máquina Virtual Java integrada ao banco
t. Backups on-line rápidos
u. Two-phase commit.

Plataformas Plataformas Suportadas Pelo PostgreSQL

a. Sistemas Unix-like
b. GNU/Linux, FreeBSD, Solaris, AIX, HP-UX,...
c. Windows NT/2000/XP/NET (Cygwin) e MacOS X
d. Cliente
e. Bibliotecas nativas C para Unix, Win95/NT e OS/2
f. Drivers ODBC (2.5) e dbExpress nativos para Unix e Windows Driver JDBC 1.0 (2.0
parcial) 100% Java

Quando Usar o PostgreSQL

Aplicações com fortes componentes transacionais. Aplicações que necessitem de tipos


de dados especializados, como Sistemas de Informações Geográficas (SIG) e
repositórios de meta-dados Projetos baseados em metodologias Orientadas Objeto –
perda de compatibilidade com o padrão ANSI SQL Aplicações OLAP “light”, que não
necessitem do nível de sofisticação de um DataWarehouse.

Agora é com você! Grande Abraço!

DevMedia Group - Tel: (21) 3382-5038 begin_of_the_skype_highlighting (21)


3382-5038 end_of_the_skype_highlighting - www.devmedia.com.br
2010 - Todos os Direitos Reservados a DevMedia Group

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Você também pode gostar