MODELO RELACIONAL Profa. Rosemary Melo · 2017-11-03 · Exemplo: banco de dados de departamento e...

74
Modelagem de Dados MODELAGEM DE DADOS MODELO RELACIONAL Profa. Rosemary Melo

Transcript of MODELO RELACIONAL Profa. Rosemary Melo · 2017-11-03 · Exemplo: banco de dados de departamento e...

Modelagem de Dados

MODELAGEM DE DADOS

MODELO RELACIONAL

Profa. Rosemary Melo

Modelagem de Dados

2

Conceitos Básicos

Criado por Edgar Codd, nos anos 70.

Tornou-se um padrão de fato para aplicações comerciais apartir de 1987, devido sua simplicidade e performance.

Representa os dados num BD como uma coleção de relações(tabelas).

Uma relação representa um conjunto de valores que podeimplicar numa coleção de relacionamentos entre conjuntode valores.

2

MODELO LÓGICO RELACIONAL

Modelagem de Dados

Exemplo: banco de dados de departamento e empregados

DEPTO# NOMEDEPTO ORÇAMENTO

D1 Marketing 10M

D2 Desenvolvimento 12M

D3 Pesquisa 5M

EMP# NOMEEMP DEPTO# SALÁRIO

E1 Lopez D1 40K

E2 Cheng D1 42K

E3 Finzi D2 30K

E4 Saito D2 35K

Depto

Emp

Nome da tabela

Tabela

Linhas (registros), uma ocorrência de

Depto

Colunas (campos), dado da tabela (associado a um

tipo de dado)

Modelagem de Dados

4

CONTEMPLA TRÊS ASPECTOS:

Aspecto estrutural - dados são percebidos como tabelas

Aspecto de integridade - suas tabelas satisfazem restrições deintegridade (mudanças feitas no banco de dados nãoacarretam inconsistência nos dados).

Aspecto manipulador – uso de operações para que o usuáriopossa manipular essas tabelas (derivam tabelas a partir deoutras tabelas, ex.: restrição, projeção e junção)

4

MODELO RELACIONAL

Modelagem de Dados

Exemplo: banco de dados de departamento e empregados

5

DEPTO# NOMEDEPTO ORÇAMENTO

D1 Marketing 10M

D2 Desenvolvimento 12M

D3 Pesquisa 5M

EMP# NOMEEMP DEPTO# SALÁRIO

E1 Lopez D1 4000

E2 Cheng D1 4200

E3 Finzi D2 3000

E4 Saito D2 3500

Depto

Emp

Restrição: Depto onde Orçamento>8M

DEPTO# NOMEDEPTO ORÇAMENTO

D1 Marketing 10M

D2 Desenvolvimento 12M

Projeção: DEPTO sobre DEPTO#, Orçamento

DEPTO# ORÇAMENTO

D1 10M

D2 12M

D3 5M

Junção: DEPTOs e EMPs sobre DEPTO#

DEPTO# NOMEDPTO ORÇAMENTO EMP# NOMEEMP SALÁRIO

D1 Marketing 1oM E1 Lopez 4000

D1 Marketing 10M E2 Cheng 4200

D2 Desenvolvimento 12M E3 Finzi 3000

D2 Desenvolvimento 12M E4 Saito 3500

Modelagem de Dados

6

Na terminologia de BD Relacional:

Tabela é chamada de Relação.

Linha é chamada de Tupla.

Coluna é chamada de Atributo.

6

MODELO RELACIONAL

Modelagem de Dados

7

Definições:

Um esquema de relação R, denotado por R(A1, A2, ..., An)é usado para descrever uma relação.

Ex.: Empregado (Matr, Nome, Endereço, Função, Depart)

Cada atributo Ai pertence a um conjunto de valorespossíveis, denotado de domínio (dom(Ai)).

O grau de uma relação é o número de atributos que seuesquema contém.

Ex.: Estudante(matr, nome, fone, idade, curso) => grau = 5

7

MODELO RELACIONAL

Modelagem de Dados

8

Características das Relações:

Cada tabela terá um nome, que será único e um conjunto deatributos com seus respectivos nomes e tipos.

Todos os valores de um atributo são do mesmo tipo de dados(domínio).

Cada atributo numa relação tem um nome que é únicodentro da relação.

8

MODELO RELACIONAL

Modelagem de Dados

9

Características das Relações:

Um mesmo atributo pode ter nomes diferentes nas diversasrelações em que participa.

Atributos que representam diferentes conceitos podem termesmo nome.

Ex.:

Empregado (Matr, Nome, End, Função, Salário, Dep)

Departamento(CodDepart, Nome, Gerente, DataInicio)

9

MODELO RELACIONAL

12

1

2

Modelagem de Dados

10

Características das Relações:

A ordem dos atributos e das tuplas não têm importância.

Todo atributo possui valor atômico.

Todas as tuplas devem ser únicas (conjuntos).

EMP# NOMEEMP DEPTO# SALÁRIO

E1 Lopez D1 40K

E2 Cheng D1 42K

E3 Finzi D2 30K

E4 Saito D2 35K

MODELO RELACIONAL

Modelagem de Dados

11

Restrições de Integridade:

Integridade de chave

Toda tupla tem um conjunto de atributos (chaveprimária) que a identifica de maneira única na relação.

Integridade de Entidade:

Nenhum valor de chave primária poderá ser NULO.

Integridade referencial:

Relação pode ter um conjunto de atributos que contémvalores com mesmo domínio de um conjunto de atributosque forma a chave primária de uma outra relação (chaveestrangeira).

11

MODELO RELACIONAL

Modelagem de Dados

1212

MODELO RELACIONAL

DEPTO# NOMEDEPTO ORÇAMENTO

D1 Marketing 10M

D2 Desenvolvimento 12M

D3 Pesquisa 5M

EMP# NOMEEMP DEPTO# SALÁRIO

E1 Lopez D1 40K

E2 Cheng D1 42K

E3 Finzi D2 30K

E4 Saito D2 35K

Depto

Emp

Observação:

Uma chave estrangeira pode referenciar-se a sua própriarelação (auto-relacionamento).

Ex.: Empregado(matrícula, nome, salário, matr_supervisor)

Exemplo:

Modelagem de Dados

13

Regras para definição de chaves estrangeiras:

Um conjunto de atributos de uma relação R1 é uma chaveestrangeira se satisfaz as seguintes regras:

Regra 1 :

Os atributos da chave estrangeira tem o mesmodomínio dos atributos da chave primária de outrarelação R2.

Regra 2:

Um valor da chave estrangeira numa tupla t1 de R1possui o mesmo valor da chave primária para algumatupla t2 em R2 ou é NULO.

13

MODELO RELACIONAL

Modelagem de Dados

Exemplos

F# FNOME STATUS CIDADE

F1 Smith 20 Londres

F2 Jones 10 Paris

F3 Blake 30 Paris

F4 Clark 20 Londres

F5 Adams 30 Atenas

P# PNOME COR PESO CIDADE

P1 Porca Vermelho 12 Londres

P2 Pino Verde 17 Paris

P3 Parafuso Azul 17 Oslo

P4 Parafuso Vermelho 14 Londres

P5 Came Azul 12 Paris

P6 Tubo Vermelho 19 Londres

F# P# QDE

F1 P1 300

F1 P2 200

F1 P3 400

F1 P4 200

F1 P5 100

F1 P6 100

F2 P1 300

F2 P2 400

F3 P2 200

F4 P2 200

F4 P4 300

F4 P5 400

Fornecedor

Peça

FornecedorPeca

Chave primária

Chave candidata

Chave primária

Chave estrangeira

Chave estrangeira

F# e P# Chave primária

Modelagem de Dados

15

Coleção de operadores que tomam relações como seusoperandos e retornam uma relação como seu resultado.

Sua função é oferecer uma fundamentação teórica parabanco de dados relacional, particularmente linguagem deconsulta para tais banco de dados.

Oriunda da álgebra original que consistia em sete operadoresdivididos em dois grupos:

Operadores de conjunto :

União, Interseção, Diferença e Produto Cartesiano.

Operadores relacionais :

Restrição (Seleção), Projeção e Junção.

15

ÁLGEBRA RELACIONAL

Modelagem de Dados

Para que serve a álgebra?

16

Definir os dados que deverão ser obtidos como resultado de uma consulta.

Definir os dados que deverão ser inseridos, alterados ou eliminados.

Definir os dados que deverão ser visualizados através de uma visão.

Modelagem de Dados

Operadores

17

a b c

x y

a ab bc c

x y x y x y

a1 a2 a3

b1 b1b3

b1 b2 b3

c1 c1c3

a1 a2 a3

b1 b1b3

c1 c1c3

Restrição ProjeçãoProduto

Cartesiano União

Interseção Diferença Junção

Modelagem de Dados

18

OPERADORES RELACIONAIS:

UNIÃO

18

ÁLGEBRA RELACIONAL

Modelagem de Dados

19

OPERADORES RELACIONAIS:

INTERSEÇÃO

19

ÁLGEBRA RELACIONAL

Modelagem de Dados

20

OPERADORES RELACIONAIS:

DIFERENÇA

Operação de União e Interseção são comutativas, mas a Diferença não é.

Os operadores de União, Interseção e Diferença requerem que as tabelascontenham a mesma estrutura das colunas (mesmo grau e mesmodomínio).

20

ÁLGEBRA RELACIONAL

Modelagem de Dados

21

OPERADORES RELACIONAIS:

PRODUTO CARTESIANO

21

ÁLGEBRA RELACIONAL

Modelagem de Dados

22

OPERADORES RELACIONAIS:

SELEÇÃO

22

ÁLGEBRA RELACIONAL

Modelagem de Dados

23

OPERADORES RELACIONAIS:

PROJEÇÃO

23

ÁLGEBRA RELACIONAL

Modelagem de Dados

24

OPERADORES RELACIONAIS:

JUNÇÃO

Na junção, quando a comparação é uma igualdade (ex.: Depto=CodDep)=> é chamada equijoin.

Junção Natural: é uma equijoin onde uma das colunas idênticas éeliminada.

24

ÁLGEBRA RELACIONAL

Modelagem de Dados

Exercícios

• Para as Relações acima– Quantas tuplas?– Qual o grau?– Quais os atributos?– Quais os tipos?– Quais os valores?

• Qual o resultado da– União de A e B– Diferenca de A e B– Interseção entre A e B

• Defina uma projeção para A• Defina uma restrição para B

A

F# FNOME STATUS CIDADE

F1 Smith 20 Londres

F2 Jones 10 Paris

F5 Adams 30 Atenas

B

F# FNOME STATUS CIDADE

F3 Blake 30 Paris

F4 Clark 20 Londres

F5 Adams 30 Atenas

Modelagem de Dados

Exercícios

26

• Dada as tabelas Funcionário e Dependente abaixo:

F# FNOME FSALARIO FCARGO

1 Maria da Silva 2000,00 Programador

2 Jose Santos 3000,00 Analista

3 Carla Costa 3500,00 Gerente

4 Antônio Souza 2200,00 Programador

5 Marcelo Duarte 2800,00 Analista

F# D# DNOME PARENTESCO

1 1 Mariana da Silva Filho

1 2 Jorge da Silva Cônjuge

2 3 Ana Santos Cônjuge

3 4 Antônia Costa Mãe

4 5 Maria Souza Filho

4 6 Paulo Souza Filho

Qual o resultado das seguintes expressões:

FUNCIONARIO WHERE FCARGO = “Programador”

DEPENDENTE {NOME,PARENTESCO}

FUNCIONARIO JOIN DEPENDENTE WHERE F#=F# (1) {DNOME}

Qual a expressão para as seguintes necessidades:

Fornecer nome dos funcionários que possuem cônjuge como dependente

Fornecer nome dos funcionários com salário acima de 3000,00

Modelagem de Dados

27

Permite traduzir os esquemas concebidos de um BD em umnível de abstração mais alto (MER) para o nível deimplementação.

Principais conceitos do MER:

Tipos de entidades (regular, fraca)

Graus de relacionamentos (binário, n-ário)

Atributos (simples, compostos, multivalorados)

Restrições (chave, cardinalidade, etc)

27

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

28

Regras para efetuar o mapeamento:

Regra 1 - Entidades RegularesRegra 2 - Atributo MultivaloradoRegra 3 - Entidades Fracas

Regra 4 - Relacionamento Binário 1:1Regra 5 - Relacionamento Binário 1:NRegra 6 - Relacionamento Binário N:M

Regra 7 - Relacionamentos TernáriosRegra 8 - Generalização/EspecializaçãoRegra 9 - Agregação

28

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

29

O modelo gerado a partir das noves regras executadas podeser considerado o modelo relacional inicial.

Nos casos em que este modelo relacional inicial não atendeaos requisitos de performance do BD, há um processo derefinamento e melhoria do modelo, até ser atingido o modelorelacional satisfatório.

As regras foram definidas tendo em vista dois objetivosbásicos:

Obter um banco de dados que permita boa performancede instruções de consulta e alteração do banco de dados.

Obter um banco de dados que simplifique odesenvolvimento e manutenção de aplicações.

29

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

30

Regra 1 – Entidades Regulares

Para cada entidade regular E no esquema E-R, criar umarelação R que inclua todos os atributos simples e derivados deE.

Para cada atributo composto de E inclua somente os seusatributos simples.

Escolha um dos atributos identificadores de E para ser a chaveprimária de R.

Se a chave escolhida de E for composta, então o conjuntode atributos simples que o compõem irão formar a chaveprimária de R.

30

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

31

Regra 1 – Entidades RegularesExemplo: MER

Modelo Relacional

31

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

32

Regra 2 – Atributo Multivalorado

Criar uma nova relação R que inclua o atributo multivaloradoA mais a chave primária K da relação que representa aentidade (ou relacionamento) que tem A como atributo.

A chave primária de R é a combinação de A e K.

Se o atributo multivalorado é composto, inclua apenas osatributos simples que o compõe.

32

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

33

Regra 2 – Atributo MultivaloradoExemplo: MER

Modelo Relacional

33

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

34

Regra 3 – Entidades Fracas

Para cada entidade fraca W, com entidade forte E, noesquema E-R, criar uma relação R e incluir todos os atributossimples de W como atributo de R.

Incluir como atributos da chave estrangeira de R, os atributosque compõem à chave primária da entidade forte E.

A chave primária de R é a combinação da chave primária daentidade forte E e a chave da entidade fraca W.

34

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

35

Regra 3 – Entidades FracasExemplo: MER

Modelo Relacional

35

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

36

Regra 4 – Relacionamento Binário 1:1

Identifique as relações S e T que correspondem às entidadesque participam do relacionamento.

Escolha uma das relações, digamos S, e inclua como chaveestrangeira em S a chave primária de T.

É melhor escolher para desempenhar o papel de S, a entidadeque tenha participação total no relacionamento.

Inclua todos os atributos simples do relacionamento 1:1 comoatributo de S.

36

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

37

Regra 4 – Relacionamento Binário 1:1Exemplo: MER

Modelo Relacional

37

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

38

Regra 5 – Relacionamento Binário 1:N

Identifique as relações S que represente a entidade queparticipa do lado N do relacionamento.

Inclua como chave estrangeira em S, a chave primária darelação T que representa a outra entidade (lado 1) queparticipa do relacionamento.

Inclua qualquer atributo simples do relacionamento 1:N em S.

38

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

39

Regra 5 – Relacionamento Binário 1:NExemplo: MER

Modelo Relacional

39

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

40

Regra 6 – Relacionamento Binário N:M

Crie uma nova relação S para representar o relacionamento.

Inclua como chave estrangeira em S as chaves primárias dasrelações que participam do relacionamento.

A combinação destas chaves formará a chave primária darelação S.

Inclua qualquer atributo do relacionamento N:M em S.

Dica: Pode-se mapear o relacionamento 1:1 ou 1:N de maneirasimilar ao M:N. Isto é usado quando poucas instâncias dorelacionamento existe, evitando valores nulos nas chavesestrangeiras.

40

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

41

Regra 6 – Relacionamento Binário N:MExemplo: MER

Modelo Relacional

41

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

42

Regra 7 – Relacionamentos Ternários

Para cada relacionamento n-ário R, criar uma nova relação Spara representar R.

Incluir como chave estrangeira em S, as chaves primárias dasrelações que representam as entidades participantes em R.

Incluir qualquer atributo simples do relacionamento R (oucomponentes simples dos atributos compostos) comoatributo de S.

A chave primária de S é a combinação de todas as chavesestrangeiras de S.

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

43

Regra 7 – Relacionamentos TernáriosExemplo: MER

Modelo Relacional

43

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

44

Regra 8 – Generalização/Especialização

Converta cada especialização E e sua generalização G, cujosatributos são {k, a1, a2,...,na} e k é a chave primária, emesquemas de relações usando uma das seguintes opções:

Opção 1:

Criar uma relação L para G com os atributos Atrib(L)= {k,a1,...,an} e chave primária k. Criar também uma relação Lipara cada especialização Ei, com os seguintes atributos:

Atrib(Li) = {k} U {atributos de Ei}, k será a chave primária de G

Exemplo:

Empregado(Matr, Nome, Salario, TipoTrab)

Secretária(Matr, VelocDigit)

Técnico(Matr, Especialidade)

Engenheiro(Matr, Tipo, CREA)

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

45

Regra 8 – Generalização/Especialização

Opção 1: Exemplo: MER

Modelo Relacional

45

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

46

Regra 8 – Generalização/Especialização

Opção 2:

Criar uma relação Li para cada especialização Ei, com osatributos Atrib(Li)= {atributos de Ei} U {k,a1,a2,...,an} e chaveprimária (Li)=k

Exemplo:

Secretária(Matr, Nome, Salário, VelDigitação)

Técnico(Matr, Nome, Salário, Especialidade)

Engenharia(Matr, Nome, Salário, CREA)

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

47

Regra 8 – Generalização/Especialização

Opção 2: Exemplo: MER

Modelo Relacional

Atenção ! O atributo Tipotrab não precisa neste caso.47

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

48

Regra 8 – Generalização/Especialização

Opção 3:

Criar uma única relação L com atributos Atrib(L) = {k,a1,...,na}U {atributos de E1} U ... U {atributos de Em} U {t} e chaveprimária k.

Onde t é um atributo de tipo que indica a especialização aqual a tupla pertence (opção usada para especializaçãocujas especializações são disjuntas)

Exemplo:

Empregado(Matr, Nome, Salário, Endereco, TipoEmp,VelDigitação, EspTec, TipoEng, CREA)

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

49

Regra 8 – Generalização/Especialização

Opção 3: Exemplo: MER

Modelo Relacional

49

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

50

Regra 8 – Generalização/Especialização

Opção 4:

Criar uma única relação L com atributos Atrib(L) = {k,a1,...,an}U {atributos de E1} U ... U {atributos de Em} U {t1,t2,...,tm} echave primária k.

Onde cada ti é um atributo booleano que indica se umatupla pertence a uma especialização Ei (opção usada paraespecializações sobrepostas)

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

51

Regra 8 – Generalização/Especialização

Opção 4:

Exemplo:

Peça(Código, Descrição, Mflag, Desenho, Data, Lote, Cflag,Fornecedor, Preço)

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Modelagem de Dados

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Regra 9 – Agregação

Modelagem de Dados

Exercício1) Fazer o mapeamento do seguinte modelo ER abaixo para o relacional

Modelagem de Dados

Exercício2) Considere o cenário a seguir:

• Uma empresa de TI precisa construir um sistema para gerenciar sua fabrica de software de acordo com o seguinte cenário:

• Todo funcionário da empresa possui um nome, CPF, telefone, email e salário. Os analistas de sistemas são responsáveis por definir o que será desenvolvido junto com o usuário e, portanto, seu cadastro deve conter a descrição da sua formação superior e o nome do idioma que ele mais conhece. Os programadores devem informar o nome da linguagem que tem mais domínio. A Fábrica de Software é chefiada por um funcionário é dividida em equipes de trabalho. Uma equipe está dedicada a uma área, é composta por diversos funcionários e é responsável por uma lista de sistemas.

• Cada sistema desenvolvido na empresa possui um nome, é desenvolvido em uma linguagem e possui uma versão. Os sistemas desktop são desenvolvidos para uma plataforma e contêm a lista dos programas que o compõe. Cada programa possui um nome e uma quantidade de linhas. Os sistemas Web devem indicar o servidor onde estão instaladas e contem uma lista com o nome a URL das páginas que o compõe.

• Para o cenário acima construa o modelo conceitual de dados utilizando os conceitos vistos em sala de aula, em seguida faça o mapeamento deste modelo para o Relacional.

Modelagem de Dados

Teoria formal que auxilia no projeto de um BD, de modo aavaliar a qualidade do esquema relacional.

OBJETIVOS GERAIS

Organizar os dados de modo que eles possam serrepresentados em tabelas, onde cada atributo seja atômico.

Garantir que os itens de dados estejam associados com aschaves corretas, minimizando a redundência dos dados.

NORMALIZAÇÃO

Modelagem de Dados

NORMALIZAÇÃO

• ANOMALIAS DE MODIFICAÇÃO

Relação: cliente = {nome, atividade, taxa}Tabela

Anomalia de EliminaçãoEliminando a linha do aluno José, perdemos as informações referentes a atividade Musculação, bem como seu valor.

Anomalia de InserçãoQuando a academia implanta um novo curso, não podemos inseri-lo até que um aluno tenha a disposição de fazê-lo.

Anomalia de AlteraçãoPara modificar o texto da modalidade Judô, teremos que modificá-lo em duas linhas.

Modelagem de Dados

NORMALIZAÇÃO

A Normalização tem como objetivo avaliar a qualidade do esquema relacional etransformá-lo, se for o caso, em um esquema relacional equivalente, menosredundante e mais estável.

Codd identificou 3 tipos de formas normais:• Primeira Forma Norma (1FN)• Segunda Forma Normal (2FN)• Terceira Forma Normal (3FN)

Outros pesquisadores acrescentaram outros tipos:• Forma Normal Boyce-Codd (FNBC)• Quarta Forma Normal (4FN)• Quinta Forma Normal (5FN)

Uma relação é dita estar em determinada forma normal se ela satisfizer a um conjunto específico de restrições.Normalizar demais diminui a eficiência dos aplicativos. Normalizar pouco abre brechas para inconsistências.

• FORMAS NORMAIS

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Primeira Forma Norma (1FN)

Uma entidade está na primeira forma normal quando não possuir grupos repetitivos, ou seja, quando todos os seus atributos são Atômicos e Monovalorados.

Um atributo atômico é aquele que não é tratado em partes separadas.Um atributo monovalorado é aquele que possui somente um valor (não uma lista).

Relação cliente: cliente={CPF, nome, endereço, (telefone)}Qual o atributo multivalorado?

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Primeira Forma Norma (1FN)

A aplicação da 1FN consiste em:• Substituir o atributo composto pelas partes que o compõem.• Eliminar da entidade os atributos multivalorados, criando uma entidade para

os mesmos, conforme seu agrupamento.• Definir como chave primária desta nova entidade: a chave da entidade

origem + o atributo da nova entidade.

Exemplo:Relação Cliente: cliente={CPF, nome, endereço, (telefone)}

Solução:cliente={CPF, nome, rua, bairro, número, cep}fone_cliente={CPF, telefone}

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Dependência Funcional

Dados dois conjuntos de atributos A e B de uma entidade, diz-se que:• B é funcionalmente dependente de A ou• A determina B ou• B depende de A,Se a cada valor de A estiver associado um, e só um, valor de B.

Uma dependência funcional é representada por: A → B Onde A é denominado Determinante

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Dependência Funcional

Exemplo1 - identificação de dependências funcionais:

Departamento → N_funcionário ?N_funcionário → Departamento ?Nome_próprio → N_funcionário ?N_funcionário → Apelido ?

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Dependência Funcional

Exemplo2 - identificação de dependências funcionais:

O preço é funcionalmente dependente de artigo (Artigo → Preço) ?O preço é funcionalmente dependente de papelaria (Papelaria → Preço) ? Preço depende funcionalmente de quem?

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Segunda Forma Norma (2FN)

Uma tabela encontra-se na segunda forma normal quando, além de estar na 1FN, não contém Dependências Funcionais Parciais, ou seja, todos atributos não chave devem depender funcionalmente da chave primária composta.

Podemos observar então que se aplica a segunda forma normal, apenas em entidades que possuem chave primária composta

Entidades com apenas um atributo na chave primária, já estão na segunda forma normal.

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Segunda Forma Norma (2FN)

Exemplo – Identificar dependências funcionais

Relação Alunos/Disciplinas: aluno_disciplina = {mat_aluno, cod_discip, nome_aluno, carga_horar_discip, nota}

Dependências Funcionais:mat_aluno -> nome_alunocod_discip -> carga_horar_discip(mat_aluno,cod_discip) -> nota

Existem atributos que contêm dependência parcial da chave?

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Segunda Forma Norma (2FN)

A aplicação da 2FN consiste em:• Eliminar da entidade os atributos que não dependam de todos os atributos

da chave primária.• Criar uma nova entidade com os atributos excluídos mais os atributos da

chave primária que causam a dependência dos atributos excluídos na entidade origem.

• Definir como chave primária desta nova entidade, os atributos herdados da chave primária da entidade de origem.

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Segunda Forma Norma (2FN)

Exemplo1 - Aplicação da 2FN

Relação Alunos/Disciplinas:aluno_disciplina = {mat_aluno, cod_discip, nome_aluno, carga_horar_discip, nota}

Onde:mat_aluno -> nome_alunocod_discip -> carga_horar_discip(mat_aluno,cod_discip) -> nota

Solução:aluno_disciplina = {mat_aluno, cod_discip, nota}disciplina = {cod_discip, carga_horar_discip}aluno = {mat_aluno, nome_aluno}

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Segunda Forma Norma (2FN)

Exemplo2 - Aplicação da 2FN

Relação Projeto/Funcionário:projeto_funcionario = {cod_proj, cod_func, nome, categoria, salario, data_ini, temp_proj}

Onde:(cod_proj, cod_func) -> data_ini, temp_projcod_func -> nome, categoria, salario

Solução:projeto_funcionario = {cod_proj, cod_func, data_ini, temp_proj}Funcionario = {cod_func, nome, categoria, salario}

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Terceira Forma Norma (3FN)

Uma Relação está na 3FN quando estiver na 2FN e não existir dependência transitivados atributos, ou seja, todos os atributos da entidade dependam única eexclusivamente dos atributos da chave primária.

Exemplo – Identificar dependências funcionais

Relação Compra:compra = {cod_compra, cod_cliente, nome_cliente, valor_compra, tel_cliente}

Dependências Funcionais:cod_compra-> cod_cliente, valor_compracod_cliente -> nome_cliente, tel_cliente

Existem atributos que contêm dependência funcional transitiva?

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Terceira Forma Norma (3FN)

A aplicação da 3FN consiste em:• Eliminar da entidade os atributos que dependam de atributos que não

pertencem a chave primária.• Criar uma nova entidade com os atributos excluídos mais o atributo

causador da dependência transitiva dos atributos excluídos• Definir como chave primária desta nova entidade, o atributo herdado da

entidade de origem e que causou a dependência transitiva

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Terceira Forma Norma (3FN)

Exemplo1 - Aplicação da 3FN

Relação Compra:compra = {cod_compra, cod_cliente, nome_cliente, valor_compra, tel_cliente}

Onde:cod_compra-> cod_cliente, valor_compracod_cliente -> nome_cliente, tel_cliente

Solução:compra = {cod_compra, cod_cliente, valor_compra}cliente = {cod_cliente, nome_cliente, tel_cliente}

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Terceira Forma Norma (3FN)

Exemplo2 - Aplicação da 2FN e 3FN

Relação Chamada/Funcionario :chamada_funcionario = {rg_funcion, num_chamado, duracao_chamada, nome_funcion, cod_cidade_chamada, nome_cidade_chamada}

Onde:rg_funcion, num_chamado -> duracao_chamada, cod_cidade_chamadarg_funcion -> nome_funcioncod_cidade -> nome_cidade

Solução:chamada_funcionario = {rg_funcion, num_chamado, duracao_chamada, cod_cidade_chamada}funcionario = {rg_funcion, nome_funcion}cidade = {cod_cidade, nome_cidade}

Modelagem de Dados

NORMALIZAÇÃO

• FORMAS NORMAIS

Considerações Finais

Uma entidade estará normalizada se estiver atendendo até a terceira forma normal, ou seja, uma entidade estará normalizada se:

• Não possuir grupos repetitivos (1 FN)• Os atributos dependem de todos e unicamente de todos os atributos da

chave primária (2FN e 3FN)

Um modelo de dados está normalizado se todas as suas entidades estão normalizadas até a terceira forma normal.

Modelagem de Dados

Exercício• Considere o cenário a seguir:

• Uma empresa de fornecimento de energia elétrica precisa construir um sistema para controlar as contas de energia dos seus clientes que funcione da seguinte maneira. O sistema deverá ter todos os clientes cadastrados com nome e telefone. Os clientes podem ser pessoa física ou jurídica. Para pessoa física também é cadastrado o CPF e para pessoa jurídica o CNPJ. O valor do Kw /h cobrado depende do tipo de cliente. Além disso, pessoa jurídica paga um adicional de 5% de imposto sobre o valor da conta. Clientes possuem contas mensais geradas a partir do seu consumo de energia. Desta forma, quando um cliente solicita a ligação da energia para a sua casa, é instalado um relógio (medidor) na residência. As residências são cadastradas com rua, número, bairro, cidade e estado. É possível que um cliente tenha mais de uma residência. Todos os meses um funcionário da empresa vai às casa dos clientes para fazer uma leitura no medidor. Assim, o sistema deve guardar os registros mensais de leitura do medidor realizados em cada residência (mês, ano, consumo no mês em kW). Este consumo é utilizado para calcular o valor da conta naquele mês.

Modelagem de Dados

Exercício• O sistema deverá prover os seguintes relatórios: gráfico com o consumo

mensal de um cliente ao longo do ano; Relatório de faturamento total da empresa em venda de energia; Relatório com a quantidade de energia mensalmente vendida pela empresa a seus clientes.

Para o cenário acima, desenvolver

– Modelo de entidades e relacionamentos

– Mapeamento do modelo de entidade e relacionamento para relacional

– Definição das tabelas normalizadas na 3FN.