Você está na página 1de 17

Olá, estudante!

Nesta revisão serão abordados os seguintes temas:


1. Projeto Conceitual: Modelo Entidade-Relacionamento
2. Projeto Lógico: Modelo Relacional
3. Normalização
4. MySQL Workbench

Projeto Conceitual: Modelo Entidade-


Relacionamento

Modelo Entidade-Relacionamento (MER): é um modelo de dados utilizado na


fase de projeto conceitual do Banco de Dados.

Entidade: é algo do mundo real que possui uma existência própria. Cada
Entidade tem propriedades particulares que são chamadas de atributos.
Tipos de entidade (retângulo no diagrama entidade-relacionamento) são os que
têm a mesma "estrutura". Os tipos de entidade se escrevem com maiúscula no
singular no DER (diagrama entidade-relacionamento). Um tipo de entidade
define uma coleção, ou conjunto de entidades, que tem os mesmos atributos.
Atributo: é uma propriedade que descreve uma entidade. A Figura 1 apresenta
os atributos do tipo de entidade Funcionário: ident, nome, endereço, salário e
dt_nasc, que é a data de nascimento.

Figura 1: Atributos do tipo de entidade Funcionário.

Instância: a coleção de todas as entidades de um tipo de entidade (elipses).


Na Figura 2 temos o tipo de entidade FUNCIONÁRIO com os atributos nome e
salário.

As entidades individuais func1 e func2.

Figura 2. Conceitos de tipo de entidade, entidade e instância.

Atributo-chave: todo tipo de entidade deve ter um atributo-chave, que pode ser
simples ou composto, e os valores devem ser distintos. Por exemplo, o CPF é o
atributo-chave para o tipo de entidade FUNCIONÁRIO, não pode ser o atributo
nome porque pode ter o mesmo nome para mais de um funcionário ou entidade,
e isso viola a restrição de unicidade que proíbe que duas entidades, em um
mesmo conjunto entidade, tenham os mesmos valores no seu atributo-chave.
Atributos-chave são sinalizados com sublinhado.
A Figura 3 apresenta o tipo de entidade Carro. Neste exemplo tem dois atributos
cujos valores são distintos (Registro e Cod_veiculo) para cada entidade
individual no conjunto, eles estão sublinhados indicando que são atributos-
chave, cada um por si só. Depois, no modelo lógico, só será eleito um deles
como chave. O atributo-chave Registro é também composto por subpartes:
Estado e Número, isso significa que é necessária uma combinação de atributos
para poder ser única. É o caso do RG, que, por não ser único, necessita da
indicação do estado para poder compor um valor único para cada pessoa.
Atributo multivalorado: o atributo Cor, da Figura 3, está destacado com linha
dupla indicando que ele é multivalorado, isto é, atributos que podem ter um
conjunto de valores. Exemplo: Cor={verde, branco, azul}.
Figura 3. Carro com dois atributos-chave, Registro e Cod_veiculo (atributos-
chave por separado) e um atributo multivalorado (Cor).

Tipo de relacionamento: um tipo relacionamento R entre n entidades, E1, E2,...,


En, define um conjunto de associações – ou um conjunto relacionamento – entre
entidades desses tipos de entidade. A Figura 4 apresenta três tipos de
relacionamentos: FORNECE, USA e PODE FORNECER, ambos são binários ou
de grau 2, que significa que associa dois tipos de entidades.

Figura 4. Tipos de relacionamento: FORNECE, USA e PODE


FORNECER.

Restrições

Os tipos de relacionamento costumam ter certas restrições que limitam as


combinações de entidades que podem participar no conjunto de relacionamentos
correspondentes e que depende do minimundo. A Figura 5 apresenta a regra da
empresa onde cada funcionário precisa trabalhar exatamente em um
departamento. Isso é uma restrição do esquema.

Figura 5: Associação entre uma ou mais entidades dos tipos de entidade


EMPREGADO e DEPARTAMENTO.

Existem as seguintes restrições sobre tipos de relacionamento:


1. Razão de cardinalidade: especifica a quantidade de instâncias (máxima)
de relacionamentos que uma entidade pode participar: uma para um (1:1)
um para muitos (1:N ou N:1), e muitos para muitos (N:N ou M:N).
2. Participação: especifica se a existência de uma entidade depende de ela
estar relacionada com outra entidade através de um relacionamento.
Sendo que ela é total quando ela é obrigatória (dependência existencial)
e é apresentada com linha dupla no DER. A participação parcial ela é
opcional e é apresentada no DER com linha simples.
3. Restrição estrutural, chamada de min max: define o mínimo e o máximo
que uma entidade pode participar de um relacionamento.

Tipo de Entidade Fraca

São tipos de entidades que não têm atributos-chaves. Segundo Elmasri e


Navathe (2003, p. 64), um tipo de entidade pode não ter chave, nesse caso ela
é chamada de tipo de entidade fraca. Um tipo de entidade fraca pode ter uma
chave parcial. A Figura 6 apresenta a modelagem de uma biblioteca com tipo de
entidade Livro, com os dados do Livro, mas na biblioteca o que são emprestados
são os exemplares do livro. O tipo de entidade fraca exemplar não tem chave
por si só, ela tem que ser identificada através da associação com outro tipo de
entidade, que neste caso é o Livro, chamada de tipo de entidade proprietário
da identificação, e o tipo de relacionamento entre elas é tipo de
relacionamento de identificação (repare que ele é um losango com linha
dupla). Um tipo de entidade fraca sempre tem participação total (obrigatória, linha
dupla) com respeito ao seu tipo de relacionamento de identificação (no exemplo,
TEM), uma vez que não é possível identificar uma entidade fraca sem o
correspondente tipo de entidade proprietária (LIVRO). A chave parcial do tipo de
entidade fraca é sequência.

Figura 6. Tipo de entidade fraca Exemplar.

Projeto Lógico: Modelo Relacional

O modelo relacional é um modelo de dados lógico utilizado para desenvolver


projetos lógicos de bancos de dados. Os SGBDs que utilizam o modelo relacional
são denominados SGBDs Relacionais.
É o modelo de dados que representa um banco de dados como uma coleção de
relações. Uma relação remete a uma tabela de valores, na qual cada linha
representa uma coleção de valores (colunas) relacionados.

Mapear o modelo conceitual para o modelo lógico relacional

O mapeamento do modelo conceitual para o modelo lógico relacional é feito


seguindo em uma série de passos descritos a seguir.

• Passo 1:
• Para cada tipo de entidade normal E no DER (empregado na Figura
7), crie uma relação R que inclua todos os atributos simples de E.
• Inclua também os atributos simples dos atributos compostos.
• Escolha um dos atributos-chave de E como a chave primária de R.
• Se a chave escolhida é composta, então o conjunto de atributos
simples que o compõem formarão a chave primária de R.

Figura 7. Tipo de entidade Empregado.


Assim, a relação EMPREGADO é criada seguindo o passo 1.

EMPREGADO(Nss, Pnome, Mnome, Snome, Sexo, Endereço, DataNasc,


Salário)

• Passo 2:
• Para cada tipo de entidade fraca W do DER (DEPENDENTE na
Figura 8) com o tipo de relacionamento de identificação E, crie uma
relação R e inclua todos os atributos simples (ou os atributos
simples de atributos compostos) de W como atributos de R.
• Além disso, inclua como a chave estrangeira de R a chave primária
da relação que corresponde ao tipo de entidade proprietário da
identificação.
• A chave primária de R é a combinação da chave primária do tipo
de entidade proprietário da identificação e a chave parcial do tipo
de entidade fraca W.
Figura 8. Tipo de entidade fraca Dependente.
Assim a relação DEPENDENTE é criada seguindo o passo 2.

DEPENDENTE(NssEmpregado, Nome, Sexo, DataNsc, TipoRelação)


Em que NssEmpregado é chave estrangeira para a relação Empregado.

• Passo 3:
• Para cada tipo de relacionamento binário 1:1, R, do DER,
identifique as relações S e T que correspondem aos tipos de
entidade que participam da relação R.
• Escolha uma das relações, por exemplo S, e inclua como chave
estrangeira de S a chave primária de T.
• É melhor escolher o tipo de entidade com participação total (linha
dupla no DER) em R como sendo a relação S. Na figura 9, S foi
escolhida como sendo DEPARTAMENTO ela tem participação
total no tipo de relacionamento GERENCIA.
• Inclua todos os atributos simples (ou os atributos simples de
atributos compostos) do tipo de relacionamento 1:1, R, como
atributos de S.
Figura 9. Relacionamento binário 1:1.

Assim, a relação DEPARTAMENTO é completa seguindo o passo 3.

DEPARTAMENTO (Nome, Número, Número_de_empregados,NSSEmpregado,


Data_inicio_gerencia)
NSSEmpregado é chave estrangeira da Relação de Empregado, Data início
gerencia é atributo do relacionamento GERENCIA que é colocado na relação
DEPARTAMENTO.

Note que o atributo multivalorado Localização não é colocado ainda na relação,


porque ele será mapeado no passo 6.

• Passo 4:
• Para cada tipo de relacionamento binário regular 1:N, R, identificar
a relação S que representa o tipo de entidade que participa do lado
N (muitos) de R.
• Inclua como chave estrangeira de S a chave primária de T que
representa o outro tipo de entidade que participa em R; isso porque
cada entidade do lado 1 está relacionada a mais de uma entidade
no lado N.
• Na Figura 10, S será escolhido como sendo a relação Empregado
e T será escolhido como sendo a relação Departamento. Assim, a
relação EMPREGADO deverá ter a chave estrangeira de
DEPARTAMENTO.
• Inclua também quaisquer atributos simples (ou atributos simples de
atributos compostos) do tipo de relacionamento 1:N como atributos
de S. No caso da Figura 10, não tem atributos no tipo de
relacionamento.
Figura 10. Relacionamento binário N:1.

Assim, a relação EMPREGADO é completada seguindo o passo 4.


EMPREGADO(Nss, Pnome, Mnome, Snome, Sexo, Endereço,
DataNasc,Salário, Nome_Departamento)

NomeDepertamento é chave estrangeira que mapeia o tipo de relacionamento:


TRABALHA_PARA.
Passo 5:

• Para cada tipo de relacionamento binário M:N, R, crie uma nova


relação S para representar R.
• Inclua como chave estrangeira de S as chaves primárias das
relações que representam os tipos de entidade participantes; sua
combinação irá formar a chave primária de S.
• Inclua também qualquer atributo simples do tipo de relacionamento
M:N (ou atributos simples dos atributos compostos) como atributos
de S.

Figura 11. Relacionamento binário N:N ou N:M.

Assim, seguindo o mapeamento da Figura 11 e considerando já ter a relação


Projeto, a relação Trabalha_em é criada seguindo o passo 5.
PROJETO(Número, Nome, Localização)

TRABALHA_EM(NssEmpregado,NúmeroProjeto, Horas)
NssEmpregado é chave estrangeira para Empregado e NúmeroProjeto é chave
estrangeira para Projeto. O atributo horas que é do tipo de relacionamento e é
incluído na relação TRABALHA_EM.

• Passo 6:
• Para cada atributo A multivalorado, crie uma nova relação R que
inclua o atributo A e a chave primária, K, da relação que representa
o tipo de entidade ou o tipo de relacionamento que tem A como
atributo.
• A chave primária de R é a combinação de A e K.
• A Figura 12 apresenta o atributo multivalorado Localização.
• Se o atributo multivalorado é composto, inclua os atributos simples
que o compõem.

Figura 12. Atributo multivalorado Localização.

Assim, a relação LOCALIZAÇÃO é criada seguindo o passo 6.


LOCALIZAÇÃO(DNome, DLocalização)

Normalização
Primeira Forma Normal

A primeira forma normal proíbe que relações tenham:

• Atributos compostos
• Atributos multivalorados
• Relações aninhadas

O único valor permitido pela 1FN (Forma Normal) é o valor atômico.


O esquema da tabela DEPTO não está na 1FN por ter o atributo Localizações
que é multivalorado (Figura 13).

Figura 13. Exemplo de relação que não está na 1FN.

Normalizando, é criada duas relações (veja o passo 6 do mapeamento conceitual


para lógico). A Figura 14 apresenta as duas relações que já estão na 1FN:
DEPTO_B e DEPTO_LOCS desmembrando o atributo multivalorado.

Figura 14. Processo de normalização da relação que não está na 1FN para duas
relações em 1FN.

Segunda Forma Normal


Na segunda forma normal, se a relação só tem um atributo-chave, ela já está na
segunda forma normal. Se a chave é composta por mais atributos, a relação R
está na 2FN se também estiver na 1FN e todos os atributos não primos A de R
forem totalmente dependentes da chave primária.

Na Figura 15, a relação FUNC_PROJ não está na 2FN, ela tem dois atributos
que compõem a chave e existem atributos que dependem de parte da chave, e
não de toda a chave, por exemplo o atributo fuc_nome, que depende de parte
da chave que é func_ident.

Figura 15. Relação FUNC_PROJ não está na 2FN.

Na relação FUNC_PROJ existem três dependências funcionais:


DF1 func__ident e proj_numero determinam juntos as horas.

DF2 func_ident determina func_nome.


DF3 proj_numero determina proj_nome e proj_localização.

Então não está na 2FN.

Normaliza e cria relações para cada dependência funcional encontrada, como é


possível observar na Figura 16.
Figura 16. Processo de normalização da relação FUNC_PROJ.

Terceira Forma Normal

A Figura 17 apresenta uma relação FUNC_DEPTO que não se encontra na 3FN.


Foram identificadas duas dependências funcionais: DF1 e DF2 na Figura 17.

Figura 17. Relação FUNC_DEPTO que não se encontra na 3FN.

func_ident depto_g_ident é uma dependência transitiva por depto_numero.

Normalizando, são criadas duas relações, a FD1 da Figura 18, com os dados de
Funcionário e a chave estrangeira para Departamento, e a relação
Departamento com depto_número como chave primária e depto_nome e
depto_g_ident como atributos.
Figura 18. Processo de normalização da relação FUNC_DEPTO.

BOYCE-CODD NORMAL FORM (BCNF)

Uma relação esquema R está na BCNF se sempre que houver uma DF X->A

em R, então X é uma superchave de R.


No exemplo da Figura 19 vemos que existem duas DF:

DF1: em que {estudante, curso} determina instrutor.


DF2: em que instrutor determina curso.

Se a relação tivesse apenas DF1, a relação estaria na BCNF. Mas em DF2,


instrutor não é uma superchave, portanto, viola a BCNF, mas não a 3FN, pois
curso é primo (faz parte da chave primária).
Figura 19. Exemplo de relação na 3FN e não na BCNF.
Para normalizar, a relação deve ser decomposta para atender a essa
propriedade, mas abdica da preservação das dependências funcionais nas
relações decompostas. No exemplo, a normalização correta é a apresentada na
Figura 20, na qual a DF1 ela é perdida na decomposição, mas é possível
reconstruir a relação originar com join sem ter tuplas espúrias.
Figura 20. Normalização para BCNF do exemplo da Figura 19.

Resumindo, cada forma normal engloba a forma normal anterior:

• Toda relação em 2FN está na 1FN.


• Toda relação em 3FN está na 2FN.
• Toda relação em BCNF está na 3FN.

Existem relações que estão na 3FN, mas não em BCNF.

MYSQL

É bom sempre ver a documentação da ferramenta que se encontra em:


https://dev.mysql.com/doc/workbench/en/.

Para instalação: Como instalar o MySQL e o WorkBench - Passo a Passo.


Para modelagem: https://dev.mysql.com/doc/workbench/en/wb-getting-started-
tutorial-creating-a-model.html.
Há diferentes vídeos, conforme as dúvidas que você tenha sobre o
funcionamento da ferramenta, disponíveis em:
https://www.youtube.com/mysqlchannel.

Você também pode gostar