MySQL Workbench: Aprenda a criar Bases de dados e tabelas
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.
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 “+”
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.
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
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
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
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
Em seguida devem arrastar as duas tabelas para o diagrama.
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.
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.
Este artigo tem mais de um ano
Por acaso estou agora começando na escola a aprender um bocado sobre base-de-dados e esse tutorial ajudou-me! Obrigado Pplware 😀
Sempre às ordens Fábio.
É necessário alguns prerequisitos, certo?
Microsoft .NET Framework 4 Client Profile
Visual C++ Redistributable for Visual Studio 2013
e mais…
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
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.
Podem ajudar-me em aprender base de dados?
Tenho muitas dificuldades na Minha Universidade
Em vez “passa a secundária” talvez devesse ficar “passa a chave estrangeira”
3 de Abril de 2018 às 10:27
Tenho muita dificuldade em Base de Dados e quero tanto aprender, pessoal.
Podem disponibilizar alguns videos?
Obrigado pela ajuda. Podíamos elaborar um projecto tipo.
Queria saber qual é a diferenca em usar a cardinalidade com linhas desse tipo “—-” e o tipo continuo..?
Fiz a conexão como administrador no workbench só que não apareceu as base que foram criadas como faço para listar..?
Mais ou menos, temos que observar os seguintes fatores. nada em comum as multifuncionalidades estão ligadas ao mesmo tempo.
Tenho muita dificuldade em Base de Dados e quero tanto aprender, pessoal.
Podem disponibilizar alguns videos?
Muito bom, mas preciso de mais detalhes
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?