MySQL Workbench: Aprenda a criar Bases de dados e tabelas

15 Comentários

Para quem se dedica à concepção de base de dados é importante que possua uma ferramenta que facilite todo o processo. Uma das ferramentas mais usadas para este efeito é sem dúvida o MySQL WorkBench que disponibiliza as mais diversas funcionalidades.

No passado demos aqui uma visão geral de como criar um Diagrama EER mas hoje vamos detalhar a parte de criar a Bases de dados e tabelas.

mysql_14


A criação de uma bases de dados e tabelas não é algo difícil de definir no MySQL Workbench. O mais difícil é mesmo “desenhar” a estrutura da base de dados.

Como Criar a Base de Dados?

Uma base de dados pode ser criada de várias formas. No entanto, para este tutorial, vamos criá-la através do modelo EER. Para isso vamos aos Modelos e carregamos em “+”

work_00

Em seguida damos duplo clique na zona indicada pela primeira seta e mudamos o nome na caixa de texto mais abaixo. E está criada (no modelo EER) a base de dados db_Pplware.

work_01

Como criar tabelas?

Depois de criada a base de dados vamos proceder à criação das tabelas. Para este tutorial vamos considerar um exemplo muito simples com apenas duas tabelas. Uma tabela autores e outra com o nome editoras. Para isso carregamos em Add Table

work_02

Tabela autores

Para esta tabela vamos considerar os seguintes campos:

  • id_autores, que será a chave da tabela (PK), o campo não poderá ser nulo (NN) e a cada registo o valor da chave é incrementado + 1 (AI – AutoIncrement)
  • nome – Nome do autor que será do tipo VARCHAR, com 45 caracteres
  • dataNascimento, campo do tipo data
  • Morada que será do tipo VARCHAR, igualmente com 45 caracteres

autores

Tabela editora

Para esta tabela vamos considerar os seguintes campos:

  • id_editora, que será a chave da tabela (PK), o campo não poderá ser nulo (NN) e a cada registo o valor da chave é incrementado + 1 (AI – AutoIncrement)
  • Nome Editora – Nome da editora que será do tipo VARCHAR, com 45 caracteres

 

work_03

Relações entre tabelas

Numa base de dados relacional, as relações permitem-lhe impedir a existência de dados redundantes. Existem 3 tipos de relações:

1) 1 para 1
Tal como o nome indica uma relação do tipo 1 para 1, é uma relação em que a uma ocorrência da tabela A, corresponde uma e só uma ocorrência da tabela B e vice-versa.

Exemplo: Uma pessoa só pode ter um número de BI, e um BI só pode pertencer a uma pessoa.

Numa relação do tipo um para um, cabe ao “criador” do modelo entidade-relação a escolha de qual a tabela que irá receber a chave estrangeira.

2) 1 para N (em que N significa vários)
Uma relação do tipo 1 para n, é uma relação de um para vários, ou seja, entre duas tabelas A e B, a uma ocorrência da tabela A podem corresponder várias ocorrências da tabela B, enquanto que a uma ocorrência da tabela B corresponde só uma da tabela A.

Exemplo: Um leitor pode fazer várias requisições, mas uma requisição só pode ser feita por um leitor, quer isto dizer que entre a tabela Leitor e a tabela Requisições existe uma relação do tipo 1 para n.

A chave principal é adicionada ao lado que tem n, transformando-se assim numa chave estrangeira.

3. N para M (em que N e M significam vários)
Uma relação do tipo n para m, é uma relação de vários para vários, ou seja, entre duas tabelas A e B, a várias ocorrências da tabela A podem corresponder várias ocorrências da tabela B, e vice-versa.

Exemplo: Uma moeda pode ser emitida durante vários anos, mas um ano pode emitir várias moedas, quer isto dizer que entre a tabela Moeda e a tabela Ano existe uma relação do tipo n para m.

Para toda e qualquer relação do tipo n para m, há que decompor a relação em duas do tipo 1 para n, ou seja, irá ser necessário criar uma nova tabela, com o nome que o “criador” do modelo entidade-relação bem entender, onde a mesma irá conter as chaves principais das tabelas envolvidas, chaves estas que se irão tornar numa chave composta da nova tabela.

Decomposição final:

Para saber mais sobre a estruturação de uma base de dados pode consultar este artigo.

Criar Relações entre tabelas no Workbench

Para criar relações entre tabelas no Workbench devem carregar em Add Diagram

work_04

 

Em seguida devem arrastar as duas tabelas para o diagrama.

work_05

O próximo passo é definir a relação entre tabelas. Neste caso estamos perante uma relação 1:N ou seja, uma linha da tabela editora pode ter várias linhas correspondentes na tabela autores, mas uma linha da tabela autores só pode ter uma linha correspondente na tabela editora.

Para definir a relação basta carregar no botão da barra lateral, carregar sobre a tabela autores e arrastar para a tabela editora.

Nota: Como podem ver, nessa barra lateral há dois tipos de botões para definir uma relação de 1:N. O — significa que a chave primária da tabela com que vamos fazer a relação passa a estrangeira na outra tabela. No caso de escolher o botão com  ___ essa chave fica também como primária da tabela para onde vamos fazer a relação.

work_06

Esperamos que este artigo ajude quem está agora a começar a perceber de base de dados. Alguma dúvida ou questão temos todo o gosto de ajudar.

Comentários

15

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Fábio Dobrev
    Fábio Dobrev

    Por acaso estou agora começando na escola a aprender um bocado sobre base-de-dados e esse tutorial ajudou-me! Obrigado Pplware 😀

    1. Avatar de Pedro Pinto

      Sempre às ordens Fábio.

      1. Avatar de Carlos
        Carlos

        É necessário alguns prerequisitos, certo?

        Microsoft .NET Framework 4 Client Profile
        Visual C++ Redistributable for Visual Studio 2013

        e mais…

      2. Avatar de Benjamim Quelhas
        Benjamim Quelhas

        Muito interessante. Porem tenho uma questão que talvez me possam ajudar.
        Criei uma Tabela de preços em access para poder criar notas de pagamento com base nela (ex. Artigo A = Valor X). Até que funcionava bem e podia passado algum tempo saber qual o valor que o cliente Y tinha adquirido durante o período, porem cada vez que altero a tabela de preços altera também o valor do período. Partindo desta permuta como posso obter um registo ligado mas que não altera aquando altero a Tabela de preços?
        Obrigado se puder ajudar

        1. Avatar de Carlos Amorim
          Carlos Amorim

          Ola Benjamim,

          Esta e uma questao pertinente e bastante comum em bases de dados operacionais. O correto para manter o historico sem alteracao e criar um data warehouse, que e um banco de dados separado de banco de dados operacional e voltado a guardar o historico das informacoes sem deixar que alteracoes na base operacional interfiram no historico do que ja ocorreu, desta forma voce consegue alterar seu banco de dados operacional quando necessario e manter o historico da informacao para gerar relatorios corretos das informacoes passadas.

      3. Avatar de Emerson Da Silva Jubano
        Emerson Da Silva Jubano

        Podem ajudar-me em aprender base de dados?
        Tenho muitas dificuldades na Minha Universidade

  2. Avatar de José Fonseca
    José Fonseca

    Em vez “passa a secundária” talvez devesse ficar “passa a chave estrangeira”

    1. Avatar de Emerson Da Silva Jubano
      Emerson Da Silva Jubano

      3 de Abril de 2018 às 10:27
      Tenho muita dificuldade em Base de Dados e quero tanto aprender, pessoal.
      Podem disponibilizar alguns videos?

  3. Avatar de Antonio Castro
    Antonio Castro

    Obrigado pela ajuda. Podíamos elaborar um projecto tipo.

  4. Avatar de Aristoeles
    Aristoeles

    Queria saber qual é a diferenca em usar a cardinalidade com linhas desse tipo “—-” e o tipo continuo..?

  5. Avatar de nilson
    nilson

    Fiz a conexão como administrador no workbench só que não apareceu as base que foram criadas como faço para listar..?

  6. Avatar de Antonio Carlos
    Antonio Carlos

    Mais ou menos, temos que observar os seguintes fatores. nada em comum as multifuncionalidades estão ligadas ao mesmo tempo.

  7. Avatar de Emerson Da Silva Jubano
    Emerson Da Silva Jubano

    Tenho muita dificuldade em Base de Dados e quero tanto aprender, pessoal.
    Podem disponibilizar alguns videos?

  8. Avatar de Ângelo
    Ângelo

    Muito bom, mas preciso de mais detalhes

  9. Avatar de Marcelo Nunes Aguiar
    Marcelo Nunes Aguiar

    Muito bem explicado, sobre esse assunto que se trata em questão.
    Teria como fazer uma explicação sobre controle de obras, no mesmo nível deste artigo?