UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ – EAJ - PRONATEC / REDE eTec MÓDULO III – DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA – CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS 1. INTRODUÇÃO Na aula anterior estudamos a parte conceitual de bancos de dados e entendemos como criar diagramas exemplificando o banco de dados, chamados de DER (Diagramas EntidadeRelacionamento). Para executar o próximo passo dessa aula, você deverá ter em mãos um DER completo, isto é, com o nome de todas as tabelas, nome e tipo de dados de todos os atributos, identificação dos relacionamentos, cardinalidades, chaves primárias e estrangeiras. 2. SOFTWARE GERENCIADOR DE BANCO DE DADOS (SGDB) O banco de dados é armazenado no computador. Para isso é preciso um software próprio, onde usaremos o MySQL, porém manipular o banco de dados apenas com este software seria cansativo por não ter interface gráfica. Assim, utilizamos o software phpMyAdmin, uma interface gráfica para utilizar o banco de dados MySQL. Para utilizar essa ferramenta, encontrada facilmente em sites de hospedagem na web, é indicado o uso do Hostinger, disponível em <www.hostinger.com.br>. Após criar login e acessar pela primeira vez, clique em “Hospedagem → Nova Conta → Gratuito → Comprar”. A tela abaixo surgirá. Figura 1: Compra de Domínio Gratuito Tipo de Domínio deve permanecer como subdomínio, pois caso opte por um domínio é preciso registrar o domínio, o que é feito em outros sites e é geralmente pago. No campo de texto subdomínio, escolha o nome do seu site (o que for de sua preferência) e na caixa ao lado escolha o final do nome do site. Abaixo a senha (de sua preferência, não é necessário memorizar). Após este passo você deverá marcar uma caixinha informando que você não é um robô e finalize a compra. Após feito o passo anterior, você deverá recarregar a janela e clicar em “Hospedagem → SEU_ENDEREÇO → Bases de Dados MySQL” e surgirá a tela abaixo. Figura 2: Criação do Banco de Dados Na tela acima, deve-se criar o banco de dados, para isso escolha um nome para o banco de dados, um nome de usuário e senha (tudo de sua preferência, nenhuma dessas informações é necessário memorizar). Após feito este passo, aparecerá o banco de dados na lista exibida na parte inferior da Figura 2, clique no sinal de “+” para mostrar as opções vistas acima e clique em phpMyAdmin. Ao carregar o phpMyAdmin, de início apareçerá a opção criar nova tabela. De posso do DER, preencha o nome da tabela e quantidade de atributos. A tela seguinte surgirá. Figura 3: Criação de Tabela EVITE UTILIZAR PARA NOME DE TABELA E/OU ATRIBUTO QUALQUER ACENTUAÇÃO, ESPAÇOS EM BRANCO OU MAIÚSCULO. O USO DESTES É POSSÍVEL PORÉM NÃO SERÁ COBERTO POR ESTE RESUMO DE AULA. Para criação da tabela deve-se informar o nome e tipo de dados de cada atributo, respectivamente nas duas primeiras colunas a preencher. Caso seja chave primária, deve-se escolher na coluna chamada “index” a opção PRIMARY. Caso seja uma chave estrangeira, deve-se escolher na coluna “index” a opção INDEX, isso para informar que trata-se de uma chave, apesar de não termos ainda informado que trata-se de uma chave estrangeira. No caso de chaves primárias, iremos querer que elas sejam preenchidas automaticamente pelo software, pois é necessário simplesmente que seja um valor que não pode se repetir. Para que não tenhamos de digitar o valor da chave primária, o software irá calcular esse valor automaticamente, mas para isso o tipo de dados deve ser inteiro (INT) e a coluna “A_I” (auto incremento) deve estar marcada, assim o valor será sempre um número auto incrementado. Após o passo anterior, volte para a tela inicial, por exemplo clicando no nome do banco de dados exibido no topo da tela e clique em Designer. Será visualizado a tela abaixo. Figura 4: Visão Designer do banco de dados Na figura 4, podemos ver que o software gerou uma visualização do banco de dados semelhante ao nosso DER, porém caso você esteja seguindo esse resumo de aula, não deverá ver os traços que indicam os relacionamentos, isso porquê não foi informado ainda quais chaves estrangeiras armazenarão cópia de quais chaves primárias. Para isso, clique na ferramenta Criar relação na barra de ferramentas acima do diagrama, com desenho de um relacionamento. A ferramenta criar relação funciona da seguinte forma. Após clicar na ferramenta, clique primeiro na chave primária (valor que será copiado) e depois na chave estrangeira (local onde será mantido a cópia). Após isto, será criado os relacionamentos, finalizando a construção do nosso banco de dados. 3. MANIPULAÇÃO DO BANCO DE DADOS Existe 4 comandos para utilizar o banco de dados. O select, insert, update e delete, utilizados respectivamente para consultar, inserir, atualizar e apagar registros do banco de dados. Abaixo segue uma descrição de como usá-los. Para estudarmos esses comandos vamos usar um banco de dados de exemplo, visualizado na figura abaixo. Figura 5: DER - Usuários e Endereços 3.1 Select A sintaxe básica do comando select pode ser visto abaixo na sentença I, onde as lacunas devem ser substituídas pelo que se deseja consultar. Para exemplo desse comando, vamos imaginar que desejamos consultar o(s) endereço(s) onde joão mora. select ATRIBUTOS from TABELAS where RESTRICOES (I) Em ATRIBUTOS, deve-se informar quais atributos são desejados para ser consultados, por exemplo, desejamos no exemplo acima consultar o nome da rua, assim, deve-se preencher o nome do atributo que tem essa informação que é o atributo “Rua”. Lembre-se que existe diferença entre maiúsculo, minusculo e/ou acentuação. Deve-se preencher igual a como está no nome do atributo. Caso deseje-se consultar mais de uma informação, pode-se preencher o nome de vários atributos separados por “,” (Vírgula). Caso deseje-se consultar todos os atributos, deve-se informar apenas um “*” (Asterisco). Nesse caso, por já estar consultando todos os atributos, não pode-se colocar nada mais além do asterisco. Em TABELAS, deve-se preencher o nome de todas as tabelas envolvidas na consulta, por exemplo, desejamos obter o nome da(s) rua(s) onde joão mora, para isso precisamos do nome da rua, que está na tabela “Endereços” e precisamos verificar o nome de quem mora lá, que está na tabela “Usuários”, além disso deve-se informar também o nome de todas as tabelas no caminho entre elas (note que não necessariamente serão todas as tabelas do banco de dados, e sim apenas as que estão no caminho, para isso basta seguir os relacionamentos como se fosse um caminho). Em RESTRICOES, deve-se informar os relacionamentos entre as tabelas listadas e além disso, alguma outra condição que desejamos buscar, por exemplo, existem dois relacionamentos entre as tabelas que desejamos, o primeiro entre a tabela “Usuarios” e “Auxiliar”, e o segundo entre a tabela “Auxiliar” e “Enderecos”, além desses dois relacionamentos, devemos dizer também nessa área que desejamos apenas endereços de João (para o nosso exemplo). Para informar um relacionamento deveremos colocar a informação de qual chave estrangeira faz cópia de qual chave primária, por exemplo, a chave estrangeira “fk_usuarios” deve ser igual a chave primária da tabela “Usuarios”, ou seja, fk_usuarios = Usuarios.pk e para o segundo relacionamento, fk_enderecos = Enderecos.pk. Para identificar apenas os endereços de João, temos ainda que o atributo “Nome” deve ser igual a João, isto é, Nome = 'João' (note o uso das aspas simples que é obrigatório sempre que usamos texto, mas não no nome do atributo. Assim, o código para executar a consulta deve ficar como segue abaixo: select Rua from Usuarios, Auxiliar, Enderecos where fk_usuarios = Usuarios.pk and fk_enderecos = Enderecos.pk and Nome = 'João' Quadro 1: Exemplo de código para consulta 3.2 Insert A sintaxe básica do comando insert pode ser visto abaixo na sentença II, onde as lacunas devem ser substituídas pelo que se deseja inserir. Para exemplo desse comando, vamos imaginar que desejamos inserir um novo usuário no banco de dados. insert into TABELA (ATRIBUTOS) values (VALORES) (II) Em TABELA, devemos preencher o nome de uma única tabela onde será inserido os dados, para nosso exemplo o nome da tabela é Usuarios. Em ATRIBUTOS, preencheremos o nome de um atributo ou vários atributos (separados por vírgula) que se deseja inserir para um registro (uma linha). Em VALORES, ficam os valores para os atributos descritos na seção anterior, na mesma ordem e também separados por vírgula no caso de mais de um atributo estar especificado na seção anterior. No caso de valor textual deve ficar entre aspas simples, número deve ser colocado sem aspas, número com casas decimais estas devem ser separadas usando o caractere “.” (ponto final) e no caso do tipo de dados para datas, deve ser colocado entre aspas na sequencia ano (quatro dígitos), mês (dois dígitos) e dia (dois dígitos), como por exemplo, '20150512'. Assim, o código para executar esta inserção seria como o exemplo abaixo. insert into Usuarios (Nome,Telefone) values ('Joaquim','(00) 1234-5678') Quadro 2: Exemplo de código para inserção Sugestão de exercícios: No resumo de aula de nossa primeira aula existe propostas de bancos de dados a criar o diagrama entidade-relacionamento. Após gerar os diagramas, crie o banco de dados utilizando o phpMyAdmin e pratique os comandos de inserção e consulta.