Depois de modelar o banco utilizando o modelo conceitual entidade-relacionamento (ER), partimos para o mapeamento do modelo para o modelo relacional. Nesta página, temos um step by step para isso.
Step 1. Traduzir as entidades e seus respectivos atributos
No diagrama ER que representa as entidades no banco de dados aqui abordado, temos as entidades: Estudante, Disciplina e Docente. No processo de tradução do MER para o MR, as entidades são traduzidas para tabelas do banco de dados.
Os atributos das entidades, respectivamente, são convertidos em colunas das tabelas. Note que, nas representações das tabelas, as figuras têm uma espécie de losango pintado em azul claro. Isso quer dizer que essas colunas não podem receber valores nulos — isto é, tem a propriedade NN (NOT NULL). Quando as colunas podem receber valores nulos (NULL), essa figura fica em branco.
Inicialmente, mantivemos os tipos padrões definidos no Workbench. Entretanto, precisaremos aplicar os tipos de dados adequados para cada atributo/coluna mapeado, conforme vimos anteriormente. Sabemos que existe um tipo mais adequado que o VARCHAR para representar uma data armazenada no banco, certo?
Representando as chaves primárias (PK)
Na representação ilustrada acima, também podemos perceber as chaves primárias (PRIMARY KEY) das nossas tabelas referentes às entidades. Forçamos uma coluna cujo padrão de nomenclatura é id + <nome da tabela>. Por exemplo:
a tabela Estudante tem como 🔑 chave primária (PK) o idEstudante;
a tabela Docente tem como 🔑 PK a coluna idDocente;
e a tabela Disciplina tem como 🔑 PK a coluna idDisciplina.
Representando os atributos compostos e multivalorados
Pelas regras de conversão do MER para o modelo relacional, atributos compostos e atributos multivalorados são convertidos em tabelas do banco de dados. Logo, a representação da figura 2, acima, não é capaz de representar, de fato, os requisitos de tal mini-mundo. Neste caso, precisaremos:
Converter o atributo em uma tabela do banco de dados, cujas colunas podem ser representadas pelo ddd e o numero do telefone.
Converter o atributo em uma tabela contendo as colunas: logradouro, numero, complemento, bairro e cep.
Step 2. Mapear os relacionamentos
Ao modelar o banco de dados, definimos que o relacionamento entre um docente e uma disciplina é uma associação representada pelo diário de classe — uma turma virtual, com data de início e conclusão da disciplina.
Sabe-se também que os estudantes cursam várias disciplinas e estas, por sua vez, são lecionadas pelos docentes. É daí que vem a associação entre docente e disciplina — formando uma entidade associativa.
🚧
♻️
Descrição da declaração de uma tabela usando a representação do MySQL Workbench.
Representação das tabelas Estudante, Docente e Disciplina, correspondentes à entidades representados no diagrama entidade-relacionamento.
Tabelas Estudante, Docente e Disciplina mapeadas a partir das entidades representadas no diagrama ER, agora com seus respectivos atributos.