Como é feita a tradução dos atributos multivalorados e compostos do DER para o MER (sem colocar tudo na mesma tabela)?
Como é feita a tradução dos atributos multivalorados e compostos do DER para o MER (sem colocar tudo na mesma tabela)?
Oi, Thiago! Tudo bem?
Peço desculpas por demorar a te responder.
Uma outra maneira de traduzir atributos multivalorados e compostos do modelo conceitual para o modelo lógico é por meio da criação de novas relações, as quais serão criadas a partir do próprio atributo.
Durante a modelagem do banco de dados do Clube do Livro, percebemos que a entidade CLIENTE
possui um atributo multivalorado chamado telefone
. Caso quiséssemos traduzi-lo de uma maneira diferente para o modelo lógico, teríamos que criar uma nova relação chamada TELEFONE
, adicionando uma chave primária cod_telefone
, uma chave estrangeira referente à CLIENTE
e as possíveis ocorrências de telefone (como só podemos ter, no máximo, dois telefones, iremos adicionar dois campos para isso).
Esta organização será a mesma com a tradução dos atributos compostos, ou seja, iremos criar uma nova relação. Continuando com o exemplo do Clube do Livro, o atributo endereco
de CLIENTE
se tornará uma relação no modelo lógico.
Para uma melhor compreensão, observe a imagem abaixo:
A partir da relação CLIENTE
, surgiram duas novas relações: TELEFONE
e ENDERECO
:
TELEFONE
, que era o antigo atributo multivalorado, agora será uma relação com os campos cod_telefone
(chave primária), cod_cliente
(chave estrangeira), telefone_1
e telefone_2
. Ademais, há uma relação com CLIENTE
: um cliente pode ter um ou dois telefones (o que foi representado pela cardinalidade 1:N), enquanto um telefone só pertence a no mínimo e no máximo um cliente.
ENDERECO
, que era o antigo atributo composto, agora será uma relação com os campos cod_cliente
(chave estrangeira), rua
, bairro
, cidade
e estado
. Além disso, há um relacionamento com CLIENTE
: ao passo que um cliente só pode conter um endereço, um endereço pode conter várias pessoas.
Existem diferentes maneiras de trabalhar com atributos multivalorados e compostos durante a modelagem de banco de dados. A escolha de qual forma utilizar dependerá, por exemplo, das regras de negócio da empresa.
As etapas que vimos durante a explicação (parte conceitual e lógica) fazem parte do DER (diagrama entidade-relacionamento). Elas acontecem antes da elaboração do MER (modelo entidade-relacionamento), o qual é utilizado para descrever alguns itens do mundo real. Como dica de leitura, deixo abaixo um artigo da Alura que aborda esse tema:
Espero ter ajudado, Thiago! Caso surja alguma outra dúvida, conte com o fórum.
Até!