Programação / Banco de Dados

Os 5 passos que você deveria dar antes de começar a trabalhar com Banco de Dados

Neste artigo vamos abordar Os 5 passos que você deveria dar antes de começar a trabalhar com Banco de Dados. Tais como SGDB, Compatibilidade e Backup!

Por Gustavo Web

Publicado por Gustavo Web
em 22/02/2017 às 20h31

Lista VIP UpInside

Entre para nossa lista VIP e receba vídeo aulas, artigos e tutoriais exclusivos e com prioridade

  QUERO ENTRAR
Compartilhe:

Salve salve Galera, vamos começar uma serie de posts relacionados a banco de dados?

Estou preparando um conteúdo introdutório aqui para quem não está familiarizado ficar por dentro do que é e como funciona!

Nesse artigo você irá encontrar 5 itens importantes que você deve levar em consideração quando for trabalhar com banco de dados: 

A Primeira Grande Verdade sobre Banco de Dados:

Logo de cara, vamos para a primeira grande verdade sobre banco de dados, num âmbito geral: Nunca há somente uma única solução para o problema!

Calma, programação continua sendo lógica e a matemática ainda é exata… Mas isso quer dizer que a maneira de se pensar em resolver o problema, faz com que eu resolva de determinada forma, e você resolva de outra!

Isso não quer dizer que um de nós dois está errado ou certo, ou meio errado e meio certo!

“[...] Ainda não entendi o motivo dessas informações acima! [...]”

O motivo que digo isso é porque eu posso resolver o problema adicionando um CASE na query, outro pode adicionar uma coluna no banco de dados e outro ainda pode criar uma tabela para resolver o mesmo problema! Cada um pensou numa lógica para resolver, mas qual dessas soluções é a mais otimizada?

A mais otimizada é sempre a mais viável?

Tudo isso é questionável e a decisão de qual forma é a melhor é unica e exclusivamente do programador ou do time de desenvolvedores… Essa decisão não cabe ao cliente ou uma pessoa de fora do projeto que não conhece a sua modelagem ou não participa ativamente do negócio.

Óbvio que devemos prezar sempre pela segurança, confiabilidade das informações e disponibilidade dos dados!

[...]SGDB não é Banco de Dados[...]

Banco de Dados, SGDB e Interface Gráfica:

Para quem não sabe o que é a sigla SGDB (ou ainda SGBD), é Sistema de Gerenciamento de Banco de Dados (ou DataBase). Ou seja, é o sistema que você usa para executar suas consultas, manipular seus registros, criar seus relacionamentos, mapear e gerir toda estrutura do seu banco. Ou seja, o SGDB é o banco de dados propriamente dito!

Uma confusão que geralmente é feita (e até mesmo nós) é considerar o phpMyAdmin, o SequelPro o Navicat entre outros, como sendo o sistema de gerenciamento de banco de dados! Por mais que esses aplicativos gerenciem o banco de dados e você possa manipular os registros através deles, eles são apenas interfaces gráficas para trabalhar com o SGDB.

Os SGDB's comuns que encontramos hoje para se trabalhar é o Mysql, MariaDB e Postgres! Isso pensando no cenário web, para desktop há várias outras plataformas como Oracle, SQL Server, Firebird entre outras plataformas. Cada um tem sua particularidade, mas SQL é SQL!

Entre as várias interfaces gráficas do SGDB, podemos citar phpMyAdmin, SequelPro, Navicat, DbVisualizer, Mysql WorkBench entre outros… Notou algo em comum entre eles?

Você pode utilizar todos eles ao mesmo tempo e cada um trabalha independente do outro, ou seja, essas interfaces não são o banco de dados em si! O banco de dados é o core do serviço que roda todas as suas consultas, como por exemplo mysql, mariadb, postgres, sql server, oracle…

Esses sistemas (interfaces gráficas) apenas manipulam o banco de dados (SGDB).

Enquanto eu respondia os tickets, chegava inúmeras dúvidas como por exemplo:

“Executei a consulta no phpMyAdmin e deu erro, e fiz o mesmo procedimento no Navicat e no MySql WorkBench e também não funcionou… Não funcionou em nenhum dos 3!”

Umaaaa gaaaalera já reportou isso para mim, mas veja que se não funcionar em um aplicativo, nos demais também não vão funcionar pois eles só executam! Quem manda em tudo é o Banco de Dados em si. Em resumo, não importa qual programa você utilize, eu posso usar o Navicat e você o MySql WorkBench e tudo o que eu fizer no meu sistema você conseguirá reproduzir no seu... Apenas será em outro botão que estará em outro lugar da tela!

Compatibilidade entre versões:

Se você vem seguindo as trilhas aqui da Up, provavelmente já notou que no Curso PHP Orientado a Objetos o tio Rob usa PDO! O famoso PHP Data Object.

Pensa numa extensão simpática! Ela simplesmente torna sua aplicação multibanco, segura e leve. O motivo de lembrar o PDO aqui, é que você pode estar trabalhando com outro banco de dados e queira migrar para o MariaDB, ou ainda trabalhe com o MariaDB e queira testar outra plataforma…

Se você usar o SQL (linguagem de manipulação do banco de dados), as suas queries provavelmente vão funcionar em quase todos os bancos… É claro que cada banco de dados tem sua particularidade e sua vantagem e até mesmo sintaxes personalizadas, mas SQL é SQL!

E se você ainda trabalha com Mysql, acredito que você estará no máximo na versão 5.6! Recomendo fortemente que migre para a última versão do MariaDB, pois está bem leve, possui novas engines para trabalhar com tipos de dados e tem se mostrado bem estável.

Em host compartilhado essa migração pode ser um pouco complicada, mas acredito que vale a pena o upgrade de versão para o MariaDB, afinal se o Google usa, quem somos nós para discordar :)

Ter Backup é fácil, quero saber se ele funciona:

Já sabemos o que um UPDATE sem WHERE pode fazer… Imagina um DELETE? Quem nunca perdeu uma noite tranquila de sono por um desses motivos ou está começando agora ou é um programador Nutella!

Isso é o básico para qualquer um de TI, mas não ter backup de banco de dados é a treva! Não ter backup no mínimo de D-1 (ontem, hoje - 1), deve adorar viver perigosamente!

"[..] Rááá, dessa eu escapei! Eu tenho backup! [...]"

Você pode até ter o backup que o seu host fornece, mas por algum motivo já experimentou efetuar o restore do backup para saber se será importado de forma integral? Se importado, você já confrontou as informações (nem que seja um count nas tabelas) para saber se todos os registros de fato estão lá?

Sabia que no processo de restore, há uma opção [FOREIGN_KEY_CHECKS] que geralmente é desabilitada para que possa ser importado o dump e isso significa que as suas chaves estrangeiras (foreing keys) não foram verificadas?

O ideal é que você tenha uma aplicação na manga para validar e confrontrar seu banco de dados de produção com o seu restore para saber se ele está integro ou não!

[Se a galera curtir a ideia podemos até montar uma aplicação para fazer essa validação? Que tal? Me informe nos comentários aqui abaixo o que você acha da ideia]

Deus queira que você nunca precise contar com backup, maaaaas é melhor prevenir do que remediar! Pra quê arriscar, não?

O Tópico mais importante:

O último sempre é o mais importante né? Mas é bem simples! Os quatro itens que abordei acima, pode ser que você já soubesse a respeito mas agora eu quero que você me diga qual a dúvida que você tem, o que você gostaria de saber sobre banco de dados, modelagem, estruturação do banco…

Deixa aqui nos comentários sua dúvida, e eu vou preparar um conteúdo legal para responder sua questão :)

Assim como toda a galera aqui da up já conhece o padrão do tio Rob (a mão do $Read->ExeRead chega a tremer) eu vou criar esse relacionamento (foreing key? rs) com vocês por vários motivos:

Além disso, espero que eu possa contribuir com dicas e ideias para que possam implementar de imediato na sua modelagem e nas suas queries e fazer com que elas sejam mais otimizadas, rápidas e seguras.

Então fico por aqui nesse meu primeiro post na UP, comente aqui abaixo o que achou e...

$Read->FullRead(); //#BoraProgramar
Compartilhe:

Em Programação:

Deixe seu comentário: