terça-feira, 10 de outubro de 2017

Conceitos fundamentais em bancos de dados

Nesse post apresentarei alguns conceitos utilizados no estudo de bancos de dados. Farei isso de forma resumida, enxuta mas eficiente (assim espero) mas ainda serão apenas resumos então dependendo do seu apetite você terá que buscar em livros ou outros meios aprofundamento nos assuntos aqui resumidos.

Relacionamentos e Chaves


Chaves:


Primary key: A chave primária é uma coluna da tabela onde cada linha terá um valor único, ela será declarada formalmente no SGBD como sendo Primary Key e estará relacionada com outras colunas da tabela;

Foreign key: A chave estrangeira é a chave primária de uma tabela A em uma tabela B, através dela haverá ligação entre duas tabelas distintas;

Chave composta: A chave composta usa os mesmos conceitos apresentados acima, porém invés de ser representada com uma única coluna, é representada usando uma ou mais, um conjuntos de colunas da tabela. Ela pode ser útil quando não há uma única coluna que seja fiável para representar bem uma tabela. 

Obs.: Embora você possa escolher qualquer coluna de sua tabela (desde que se enquadre no que foi explicado) para que seja chave primária é altamente recomendado que você utilize colunas construídas com a utilidade única de servirem de Primary Key, isso evitará problemas que poderão aparecer com o uso do banco de dados.

Vejamos uma ilustração que mostra duas tabelas com suas chaves e relação:



Relacionamentos:


  • 1 para 1: Nesse tipo de relação para cada registro em uma determinada tabela A existe apenas 1 registro relacionado na tabela B. Podem haver registros em A sem relação em B;
  • 1 para muitos: Para cada registro de A podem haver um ou mais registros relacionados em B;
  • Muitos para Muitos: Para cada registro de A pode haver um ou mais correspondentes em B e o contrário também acontece.
Para representar os relacionamentos foram criados diagramas chamando  pé de galinha, isso por conta da semelhança. Vejamos na imagem abaixo como cada relacionamento é representado por diagramas pé de galinha:


Anomalias de dados


Anomalias de dados são problemas que podem ocorrer em tabelas que não tenham sido bem construídas, assim como na construção de um prédio se o projeto não tiver sido bem elaborado em algum momento da construção haverá problemas na implementação em projetos de bancos de dados isso também ocorre porém com a manipulação dos dados. Anomalias de dados são comuns em tabelas "faz tudo" tabelas muito grandes dedicadas a muitas finalidades.

Existem três tipos de anomalias:
  1. Anomalia de inserção;
  2. Anomalia de exclusão;
  3. Anomalia de alteração.

Normalização de Dados


A normalização de dados foi criada em 1970 e existem 5 formas normais, 5 princípios que devem ser seguidos para evitar problemas como as anomalias vistas anteriormente. Dentre as vantagens de se implementar essas técnicas estão:
  • Evitar anomalias;
  • Facilitar a manutenção;
  • Maximizar a performance;
  • Manter a integridade dos dados.
Segue abaixo as 5 formas normais:

   1 FN:
  • Cada linha da tabela deve representar um único registro;
  • Cada célula da tabela deve conter um único valor.
   2 FN:
  • Necessita que a 1FN tenha sido aplicada;
  • Atributos não chave devem depender de alguma chave da tabela.
   3FN:
  • Necessita que a 2FN já tenha sido aplicada;
  • Atributos não chave devem depender da chave primária da tabela.
   4FN e 5FN:
  • Separam em novas tabelas valores que ainda estejam redundantes;
  • Necessário que a tabela já esteja na 3FN.



FONTES:
Elmasri, Ramez: Sistemas de banco de dados ISBN: 978-85-7936-085-5

segunda-feira, 9 de outubro de 2017

Criando um banco de dados no PostgreSQL utilizando pgAdmin

Vimos em tutoriais anteriores como instalar o PostgreSQL e o pgAdmin no Ubuntu e similares, vimos também como criar conexões e tablespaces. Hoje nesse post veremos como criar um banco de dados no postgre utilizando o pgadmin.

No PostgreSQL o banco de dados armazena os dados de forma lógica enquanto o tablespace diz respeito a armazenagem física dos dados, assim para criar um BD (banco de dados) precisamos utilizar um tablespace. Se você deseja criar seu próprio tablespace acesse o link para nosso último tutorial ualaslimadev.blogspot.com/2017/10/criando-uma-tablespace-no-postgresql.html.

   1 - primeiro abra o pgadmin;

   2 - Realize a conexão com o servidor (Caso não saiba como fazer visite o link ualaslimadev.blogspot.com.br/2017/10/criando-uma-nova-conexao-com-o-pgadmin.html);

   3 - Clique com o botão direito do mouse sobre "Databases", localizado na coluna esquerda da tela do pgadmin. No menu que se abre clique sobre "New Database...";

   4 - na janela que se abriu na primeira guia "Properties" preencha os campos:

  • Name = "nome que você quer dar ao banco";
  • Owner = "Na seta no fim do campo clique e escolha o usuário dono do banco, se você não criou nenhum outro você certamente terá apenas o usuário "postgres" selecione-o".
   5 - Agora vá até a guia "Definition" e lá no campo "tablespace" escolha qual armazenará seu BD, caso você tenha nos acompanhando nos tutoriais que antecedem este, escolha o tablespace criado por você;

   6 - Caso deseje vá até a guia "SQL" e veja o código SQL gerado e em seguida clique em "OK".

Pronto, seu banco de dados foi criado. Caso ele ainda não esteja aparecendo clique com o botão direito do mouse sobre "Databases" e em seguida sobre "Refresh".



FONTES:
Canal no Youtube da Marta Talitha: https://www.youtube.com/channel/UCLzqxqYAetFnk0F0S_01Lag 

domingo, 8 de outubro de 2017

Criando uma tablespace no PostgreSQL

No PostgreSQL os bancos de dados utilizam tablespaces para armazenar seus dados. Há já tablespaces criadas  pelo próprio SGBD que podemos utilizar, aqui veremos como criar uma nova tablespace.

Vamos fazer isto utilizando o terminal do Ubuntu (ou similar) e o pgAdmin, se você ainda não instalou o pgAdmin e ou o postgre veja o post: https://ualaslimadev.blogspot.com.br/2017/10/instalacao-do-postgresql-no-ubuntu-e.html que ensina como fazer.


Para esse tutorial também é necessário que você tenha uma conexão estabelecida com o servidor, aprendemos a criar uma conexão no nosso último post https://ualaslimadev.blogspot.com/2017/10/criando-uma-nova-conexao-com-o-pgadmin.html .


Observados os parágrafos acima abra o pgadmin e observe na área de trabalho do programa  na coluna esquerda o "Server Groups", clique sobre ele ou sobre o botão "+" à sua frente para que uma árvore hierárquica se abra. Entre os "filhos" exibidos está "servers" que contém a conexão que criamos anteriormente. Abrindo essa conexão (de forma análoga ao feito com  "Server Groups") encontraremos entre outras "Databases" que já possui um BD criado automaticamente e um pouco abaixo temos "Tablespaces". Agora vamos passo a passo criar nosso novo tablespace:


   1 - O primeiro passo é criarmos um diretório e atribui-lo ao usuário postgres. Usaremos um exemplo aqui, você pode fazer os passos desse tutorial criando uma pasta em outro local com outro nome se assim desejar desde que nos comandos e passos mostrados aqui você faça as alterações necessárias. Criaremos nossa pasta pelo terminal, então minimize a janela do pgAdmin3 e abra o terminal do seu sistema:

  •  Agora com o terminal aberto use o comando a seguir para irmos até a pasta raiz do sistema:
    • cd \
  • Vamos criar nosso diretório onde ficará nosso tablespace dentro do diretório tmp, se você usar o comando "ls" os diretórios e arquivos dentro do diretório em que você está serão exibidos, entre eles o tmp. Para acessar, ou entrar no tmp use o comando:
    • cd tmp
  • Dentro de tmp vamos criar uma pasta chamada teste com o comando:
    • mkdir teste
  • Se usarmos o comando: ls -lart /tmp/teste serão listados os usuários com direito de acesso a pasta teste. Observe que o usuário "postgres" não aparece na relação;
  • Vamos alterar o usuário dono do diretório teste para postgres. Faremos isso com o seguinte comando:
    • sudo chown -c -R postgres: /tmp/teste      Se a senha for requisitada insira e confirme com enter. Você pode utilizar o comando do tópico anterior para confirmar que agora o usuário postgres tem acesso a pasta teste.
Agora com a pasta criada e pronta para uso do SGBD vamos voltar para o PgAdmin.

   2 - No PgAdmin clicando com o botão direito do mouse sobre "tablespaces" abrirá um pequeno menu, entre as opções exibidas está "New Tablespace" clique sobre ela;

3 - Uma nova janela é aberta, nela iremos criar de fato nosso novo tablespace. A janela é dividida em guias. a primeira delas é a guia "Properties", nela vamos preencher os campos:
  • Nome = "Nome que você deseja dar ao tablespace";
  • Owner = "Clique na seta no fim do campo e escolha o usuário que será o dono da tablespace, certamente se você é um usuário iniciante apenas o usuário "postgres" existe".
   4 - Ainda na mesma janela vamos agora clicar sobre a guia "Definition" nela há o campo "Location", nele colocamos o endereço da pasta que criamos para hospedar nosso tablespace /tmp/teste;

   5 - Se você desejar ver o código SQL gerado vá até a guia SQL. Confirme com "OK" e o tablespace estará criado pronto para uso. Caso ele não apareça imediatamente clique com o botão direito do mouse sobre "tablespaces" e em seguida clique sobre "refresh".

Pronto, criamos então um novo tablespace que poderá ser usado na criação de novos bancos de dados, e o assunto de nosso próximo post será justamente a criação de novos BDs, até lá!



FONTES:

sábado, 7 de outubro de 2017

Criando uma nova conexão com o pgAdmin no PostgreSQL

Nesse simples tutorial iremos utilizar o pgAdmin III, caso você não o tenha instalado, ou mesmo não tenha o PostgreSQL instalado dê uma olhada no nosso post anterior ualaslimadev.blogspot.com.br/2017/10/instalacao-do-postgresql-no-ubuntu-e.html.

Abra o pgadmin e após isso observe o primeiro ícone da barra de ícones "add a connection to a server" ele é representado por uma tomada. Clique nele para criar uma nova conexão com o SGBD e siga:

   1 - Na janela que se abre preencha os seguintes campos com os conteúdos apresentados:

  • Nome = "De sua escolha, será o nome da conexão";
  • Host = localhost;
  • Port = "Mantenha a que já está, certamente 5432";
  • Username = "Mantenha o usuário postgres ou altere para um que você tenha criado";
  • Password = "Use a senha de seu usuário, se você não sabe a senha no último tutorial vimos como troca-la";
      Obs.: Os campos não citados aqui deixe como estão e confirme com Ok.

E é isso, assim criamos uma conexão e podemos agora criar tablespaces e bancos de dados, mas esses são assuntos que virão em posts nos próximos dias, até lá :).



FONTES:

sexta-feira, 6 de outubro de 2017

Instalação do PostgreSQL no Ubuntu e semelhantes

Tive alguns problemas quando tentei instalar o PostgreSQL em meu Ubuntu 16.04, busquei tutoriais escritos e em vídeos mas mesmo assim continuava tendo problemas. Após muita busca encontrei tutoriais em vídeo (link no final do post em FONTES) que somados a muita quebra de cabeça me fizeram enfim conseguir realizar a instalação desse SGBD. Foi incrível ver que não era tão complicado como alguns tutoriais faziam parecer e dedico esse post à como instalar o Postgre no Ubuntu e sistemas semelhantes, em posts que virão em seguida falarei de como realizar uma conexão utilizando o pgAdmin3, criar tablespaces e um banco de dados.

Vamos lá, o primeiro passo é abrir o seu terminal (pode abri-lo usando as teclas de atalho ctrl+alt+t) pois faremos a instalação utilizando-o, não se assuste a instalação do postgre pelo terminal provavelmente será mais simples do que você pensa.

1 - Agora que temos o terminal aberto vamos primeiro atualizar os repositórios do nosso sistema, para isso utilize o comando abaixo:
   sudo apt-get update
Se você não estiver logado como root o sistema irá requerer sua senha, caso seja assim insira sua senha de root e confirme a operação com enter. Irá levar algum tempo, geralmente alguns segundos para que a lista de repositórios seja atualizada, aguarde;

2 - Agora vamos de fato instalar o SGBD PostgreSQL. Faça isso com o seguinte comando:
   sudo apt-get install postgresql postgresql-contrib
Aparecerá uma mensagem perguntando se você deseja continuar, digite "y" ou "s" o que seu sistema requeri e tecle enter para continuar com a instalação;

Após o fim da execução do comando anterior o postgre já está instalado em seu sistema! Fácil não foi? Mas ainda é necessário realizar algumas tarefas então nos acompanhe:

1 - Ainda utilizando o terminal, vamos logar utilizando o usuário postgres, este usuário vem já por padrão no postgre. Use o comando abaixo:
   sudo su - postgres

2 - Agora vamos acessar o nosso sistema gerenciador de banco de dados PostgreSQL com o comando a seguir:
   psql -d postgres -U postgres
(No comando acima o psql é a chamada a um programa de acesso ao postgre, o -d representa "data-base", -U "usuário ou user" e postgres o usuário com o qual vamos acessar o postgre);

3 - Observe que a interface do terminal mudou um pouco, isso porque agora estamos utilizando o programa psql dentro do terminal e os comando a serem dados não são neste momento para o sistema operacional mas para o nosso SGBD. Vamos usar esse primeiro acesso para trocar a senha do nosso  usuário postgres, use o comando abaixo para isso:
   alter user postgres with password 'nova_senha';
(No lugar de "nova_senha" insira a senha que você deseja criar, os sinais ' ' devem ser mantidos).

Após a execução do comando acima a mensagem "ALTER ROLE" deve ser exibida, se isso não ocorrer você deve ter errado o comando, então procure o erro e tente novamente.
após a mensagem de confirmação ser exibida utilize o comando "\q" (sem as aspas) para sair do psql e em seguida o comando "exit" para sair do usuário postgres.

Observe que acessamos o postgre utilizando o psql via linha de texto, vamos agora instalar um programa que nos permitirá ter acesso ao SGBD via interface gráfica este programa é o pgAdmin. Para instala-lo digite no terminal o comando que segue:
   sudo apt-get install pgadmin3.
Se a senha de root for solicitada insira e quando for pedido confirmação para continuar forneça "y" ou "s" e tecle enter, aguarde até o final da instalação.

Esse tutorial se encerra por aqui, agora basta que você abra o seu pgAdmin3 para trabalhar com o PostgreSQL. 



FONTES: