22
Banco de Dados Web 4º TSI Jonathan de Matos

4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Banco de Dados Web

4º TSI

Jonathan de Matos

Page 2: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Diferenças e Semelhanças

Page 3: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Porque escolher MySQL ou PostgreSQL?

●São os SGBDs 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 SGBDs livres:● Firebird (fork do Interbase da Borland)● MSDE (versão limitada do Microsoft SQL Server)

● HSQLDB (desenvolvido em Java)3

Page 4: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Principais características

Page 5: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Teste de desempenho

Page 6: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Teste de desempenho

Page 7: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Teste de desempenho

Page 8: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Qual escolher: MySql ou Postgres?

●Um tipo de Banco de Dados faz a diferença entre ter ou não uma aplicação eficiente, seja ela de qualquer porte.●Para escolher um destes dois SGBDs, procure entender bem mais recursos que sua aplicação necessita.●Na escolha de um Banco de Dados devem ser considerados aspectos como:▫ Recursos▫ Complexidade▫ Desempenho

Page 9: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Organização: Diretórios e arquivos

●Os banco de dados MyISAM no MySQL ficam no diretório home do MySQL (normalmente /var/lib/mysql) com um subdiretório para cada banco de dados. Os bancos de dados InnoDB databases ficam no diretório home do MySQL e todas compartilham arquivos de tablespace chamados ibdataN.

●Os bancos de dados do PostgreSQL ficam no diretório de dados do PostgreSQL (normalmente /var/lib/pgsql/data) e todos compartilham os subdiretórios base e global. Quando um novo banco de dados é criado, o PostgreSQL cria um subdiretório em /var/lib/pgsql/data/base/, porém onome do diretório é o OID (Object Identifiers Registry) do banco de dados.

Page 10: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Configuração

●O arquivo de configuração do MySQL é /etc/my.cnf.

●O PostgreSQL tem três arquivos de configuração, todos em /var/lib/pgsql/data:▫ postgresql.conf -- O principal arquivo de configuração, contém a maior parte das opções▫ pg_hba.conf -- segurança e autenticação, deve ser alterado para permitir acesso pela rede▫ pg_ident.conf -- mapeamento de usuários do postgresql para o unix, nem sempre necessário

Page 11: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Arquivos de Log

●O arquivo de log do MySQL é o /var/log/mysqld.log.

●As mensagens de log do PostgreSQL ficam em /var/lib/pgsql/data/pg_log/, mas a localização pode ser alterada no postgresql.conf.

Page 12: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Administração do banco●Para gerenciar o MySQL, muitas pessoas gostam de usar o pacote web phpMyAdmin.●Para o PostgreSQL, há um pacote similar chamado PhpPgAdmin.

●O superusuário padrão do MySQL é o root.●O superusuário padrão do PostgreSQL é o postgres.

●O aplicativo de linha de comando do MySQL é o mysql.●O aplicativo de linha de comando do PostgreSQL é o psql.

Page 13: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Operação e processos●O MySQL ouve na porta TCP 3306 e normalmente tem três processos rodando: mysqldsafe, (shell script) , mysqld●O MySQL lança uma thread(linha de execução) para cada Conexão.

●O PostgreSQL ouve na porta TCP 5432 e tem um processo chamado postmaster executando:●O postmaster lança quatro processos auxiliares: logger, writer, stats buffer, stats collector.

●O postgreSQL dispara um processo para cada conexão.

Page 14: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Tipos de dados●Os tipos de dados mais comuns e semelhantes entre o MySQL e o PostgreSQL são:

● INTEGER, FLOAT, DECIMAL, TEXT, DATE, TIMESTAMP.

●O MySQL usa o tipo de dados AUTO_INCREMENT para criar Ids únicos como chave primária:

● CREATE TABLE (id INTEGER AUTO_INCREMENT PRIMARY KEY);

●O postgreSQL usa o tipo de dados SERIAL para criar implicitamente uma sequência para IDs únicos usados como chave primária:

● CREATE TABLE (id SERIAL);

Page 15: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Tipos de dados●O MySQL tem esses tipos de dados adicionais:

● BLOB, ENUM, SET.

●O PostgreSQL tem esses tipos de dados adicionais:

● Geométricos (BOX, POLYGON, etc.), Rede(CIDR, MACADDR, etc.), OID, XID.

●O postgreSQL tem suporte a funções de objetos grandes para BLOBs, mas somente uma referência para o BLOB é salva no banco de dados.

Page 16: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Transações e chaves estrangeiras

●O banco de dados do tipo InnoDB suporta transações, enquanto o MyISAM não suporta.

●No PostgreSQL, cada comando SQL é uma transação (a menos que desabilitado para carga de tabela ou mais que um comando esteja empacotado dentro de declarações de transação).

●O PostgreSQL também usa o Controle de Concorrência Multi Versão(MVCC), considerado por muitos como sendo mais granular que o lock em nível de linha.

Page 17: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Clustering (alta disponibilidade)

●O MySQL possui suporte para clustering por meio de um aplicativo chamado “NDB table Manager”

●O PostgreSQL suporta clusterização através de um projeto separado chamado “Slony”.

Page 18: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Recursos avançados●O MySQL 5.0+ adicionou procedimentos armazenados, funções, gatilhos, e visualizações. A implementação dessas características é relativamente nova, e podem haver algumas questões a serem tratadas.

●O PostgreSQL tem suporte maduro para procedimentos armazenados, funções, gatilhos, e visualizações.

●Procedimentos armazenados e funções podem ser escritas em diversas linguagens, incluindo PL/PGSQL, SQL,TCL, PL/Perl,e C.

Page 19: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Backup e Restore●O utilitário de backup do MySQL é o mysqldump.●Restores podem ser feitos usando o comando mysql.

●O utilitário de backup do postgresql é o pg_dump.●Restores podem ser feitos usando o pg_restore ou o psql.●O postgreSQL suporta backups quentes (hot backups).

Page 20: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Características únicas (MySQL)

●Os bancos de dados MyISAM tem uma característica de “full text indexing feature” que podem ser usadas em buscas em campos de texto.

●O MySQL suporta consultas entre bancos diferentes.

Page 21: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Características únicas (Postgres)

●O postgreSQL permite a herança, de forma que uma tabela pode herdar de uma tabela mãe e adicionar novos atributos.●Suporta esquemas para prover namespace e segurança em tabelas no banco de dados.●O postgreSQL reforça a integriadade em campos de data.

● Por exemplo, ele irá retornar um erro se você tentar gravar 2008-02-30 em um campo de data, enquanto o MySQL permite isso.

●Usa o utilitário vacuumdb para liberar espaço de registros apagados e otimizar índices.

● O vacuum deve ser agendado para executar via cron pelo menos uma vez por semana.

Page 22: 4º TSI Jonathan de Matos - eventos.uepg.breventos.uepg.br/jonathan/bdw_2013_1/aula02.pdf · Jonathan de Matos. Diferenças e Semelhanças. Porque escolher MySQL ou PostgreSQL?

Administração do banco