modelo relacional profa. rosemary...

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

Upload: others

Post on 15-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

MODELAGEM DE DADOS

MODELO RELACIONAL

Profa. Rosemary Melo

Page 2: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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 a partir de 1987, devido sua simplicidade e performance.

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

Uma tabela representa um conjunto de valores que pode implicar numa coleção de relacionamentos entre conjunto de valores.

2

MODELO LÓGICO RELACIONAL

Page 3: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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)

Page 4: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

4

CONTEMPLA TRÊS ASPECTOS:

Aspecto estrutural - dados são percebidos como tabelas

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

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

4

MODELO RELACIONAL

Page 5: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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 40K

E2 Cheng D1 42K

E3 Finzi D2 30K

E4 Saito D2 35K

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 40K

D1 Marketing 10M E2 Cheng 42K

D2 Desenvolvimento 12M E3 Finzi 30K

D2 Desenvolvimento 12M E4 Saito 35K

Page 6: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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

Page 7: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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 valores possíveis, denotado de domínio (dom(Ai)).

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

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

7

MODELO RELACIONAL

Page 8: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

8

Características das Relações:

Cada tabela terá um nome, que será único e um conjunto de atributos 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 é único dentro da relação.

8

MODELO RELACIONAL

Page 9: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

9

Características das Relações:

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

Atributos que representam diferentes conceitos podem ter mesmo nome.

Ex.:

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

Departamento(CodDepart, Nome, Gerente, DataInicio)

9

MODELO RELACIONAL

1 2

1

2

Page 10: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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

Page 11: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

11

Restrições de Integridade:

Integridade de chave

Toda tupla tem um conjunto de atributos (chave primá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ém valores com mesmo domínio de um conjunto de atributos que forma a chave primária de uma outra relação (chave estrangeira).

11

MODELO RELACIONAL

Page 12: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

12

12

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ópria relação (auto-relacionamento).

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

Exemplo:

Page 13: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

13

Regras para definição de chaves estrangeiras:

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

Regra 1 :

Os atributos da chave estrangeira tem o mesmo domínio dos atributos da chave primária de outra relação R2.

Regra 2:

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

13

MODELO RELACIONAL

Page 14: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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

F3 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

Page 15: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

15

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

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

Oriunda da álgebra original que consistia em sete operadores divididos 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

Page 16: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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.

Page 17: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

Operadores

17

a b c

x y

a a b b c c

x y x y x y

a1 a2 a3

b1 b1 b3

b1 b2 b3

c1 c1 c3

a1 a2 a3

b1 b1 b3

c1 c1 c3

Restrição Projeção Produto União

Interseção Diferença Junção

Page 18: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

18

OPERADORES RELACIONAIS:

UNIÃO

18

ÁLGEBRA RELACIONAL

Page 19: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

19

OPERADORES RELACIONAIS:

INTERSEÇÃO

19

ÁLGEBRA RELACIONAL

Page 20: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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 tabelas contenham a mesma estrutura das colunas (mesmo grau e mesmo domínio).

20

ÁLGEBRA RELACIONAL

Page 21: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

21

OPERADORES RELACIONAIS:

PRODUTO CARTESIANO

21

ÁLGEBRA RELACIONAL

Page 22: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

22

OPERADORES RELACIONAIS:

SELEÇÃO

22

ÁLGEBRA RELACIONAL

Page 23: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

23

OPERADORES RELACIONAIS:

PROJEÇÃO

23

ÁLGEBRA RELACIONAL

Page 24: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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

Page 25: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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

Page 26: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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

Page 27: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

27

Permite traduzir os esquemas concebidos de um BD em um nível de abstração mais alto (MER) para o nível de implementaçã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

Page 28: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

28

Regras para efetuar o mapeamento: Regra 1 - Entidades Regulares Regra 2 - Atributo Multivalorado Regra 3 - Entidades Fracas

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

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

28

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 29: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

29

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

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

As regras foram definidas tendo em vista dois objetivos básicos:

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

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

29

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 30: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

30

Regra 1 – Entidades Regulares

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

Para cada atributo composto de E inclua somente os seus atributos simples.

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

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

30

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 31: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

31

Regra 1 – Entidades Regulares Exemplo: MER

Modelo Relacional

31

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 32: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

32

Regra 2 – Atributo Multivalorado

Criar uma nova relação R que inclua o atributo multivalorado A mais a chave primária K da relação que representa a entidade (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 os atributos simples que o compõe.

32

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 33: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

33

Regra 2 – Atributo Multivalorado Exemplo: MER

Modelo Relacional

33

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 34: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

34

Regra 3 – Entidades Fracas

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

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

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

34

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 35: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

35

Regra 3 – Entidades Fracas Exemplo: MER

Modelo Relacional

35

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 36: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

36

Regra 4 – Relacionamento Binário 1:1

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

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

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

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

36

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 37: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

37

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

Modelo Relacional

37

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 38: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

38

Regra 5 – Relacionamento Binário 1:N

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

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

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

38

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 39: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

39

Regra 5 – Relacionamento Binário 1:N Exemplo: MER

Modelo Relacional

39

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 40: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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 das relações que participam do relacionamento.

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

Inclua qualquer atributo do relacionamento N:M em S.

Dica: Pode-se mapear o relacionamento 1:1 ou 1:N de maneira similar ao M:N. Isto é usado quando poucas instâncias do relacionamento existe, evitando valores nulos nas chaves estrangeiras.

40

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 41: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

41

Regra 6 – Relacionamento Binário N:M Exemplo: MER

Modelo Relacional

41

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 42: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

42

Regra 7 – Relacionamentos Ternários

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

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

Incluir qualquer atributo simples do relacionamento R (ou componentes simples dos atributos compostos) como atributo de S.

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

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 43: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

43

Regra 7 – Relacionamentos Ternários Exemplo: MER

Modelo Relacional

43

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 44: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

44

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

Converta cada especialização E e sua generalização G, cujos atributos são {k, a1, a2,...,na} e k é a chave primária, em esquemas 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 Li para cada especialização Ei, com os seguintes atributos:

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

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

Page 45: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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

Page 46: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

46

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

Opção 2:

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

Exemplo:

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

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

Engenharia(Matr, Nome, Salário, Endereço, Tipo, CREA)

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 47: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

47

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

Opção 2: Exemplo: MER

Modelo Relacional

47

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 48: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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 chave primária k.

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

Exemplo:

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

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 49: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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

Page 50: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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} e chave primária k.

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

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 51: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

51

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

Opção 4:

Exemplo:

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

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Page 52: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

MAPEAMENTO DO MODELO E-R PARA RELACIONAL

Regra 9 – Agregação

Page 53: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

Exercício

• Considere o cenário abaixo e elabore o diagrama de entidades e relacionamentos correspondente, em seguida mapeie para o modelo relacional (MR).

Um restaurante deseja desenvolver um sistema para controle de vendas de comidas e bebidas. Quando o cliente chega ao restaurante é recepcionado por um garçom e conduzido a uma mesa. Neste momento o garçom abre a conta da mesa e começa a lançar os pedidos do cliente. Os pedidos são sempre consumo de produtos que podem ser bebidas ou comida. Existem produtos que estão em promoção então são oferecidos ao cliente quando ele consome outro produto (ex. na compra de uma rosca ganhe outra). Ao final do serviço, o garçom encerra a conta e o sistema calcula o valor. É acrescida na conta o valor correspondente a comissão do garçom. O sistema deverá fornecer o faturamento do restaurante em um dia e um relatório com a comissão a ser paga para cada garçom no dia.

Page 54: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

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

OBJETIVOS GERAIS

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

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

NORMALIZAÇÃO

Page 55: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

NORMALIZAÇÃO

• ANOMALIAS DE MODIFICAÇÃO

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

Anomalia de Eliminação Eliminando a linha do aluno José, perdemos as informações referentes a atividade Musculação, bem como seu valor. Anomalia de Inserção Quando 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ção Para modificar o texto da modalidade Judô, teremos que modificá-lo em duas linhas.

Page 56: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

NORMALIZAÇÃO

A Normalização tem como objetivo avaliar a qualidade do esquema relacional e transformá-lo, se for o caso, em um esquema relacional equivalente, menos redundante 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

Page 57: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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?

Page 58: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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}

Page 59: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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

Page 60: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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 ?

Page 61: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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?

Page 62: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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.

Page 63: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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_aluno cod_discip -> carga_horar_discip (mat_aluno,cod_discip) -> nota Existem atributos que contêm dependência parcial da chave?

Page 64: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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.

Page 65: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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_aluno cod_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}

Page 66: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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_proj cod_func -> nome, categoria, salario Solução: projeto_funcionario = {cod_proj, cod_func, data_ini, temp_proj} Funcionario = {cod_func, nome, categoria, salario}

Page 67: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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 transitiva dos atributos, ou seja, todos os atributos da entidade dependam única e exclusivamente 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_compra cod_cliente -> nome_cliente, tel_cliente Existem atributos que contêm dependência funcional transitiva?

Page 68: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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

Page 69: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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_compra cod_cliente -> nome_cliente, tel_cliente Solução: compra = {cod_compra, cod_cliente, valor_compra} cliente = {cod_cliente, nome_cliente, tel_cliente}

Page 70: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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_chamada rg_funcion -> nome_funcion cod_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}

Page 71: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

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.

Page 72: MODELO RELACIONAL Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000257-3a5903b53d/Aula-02... · 2014-11-15 · Modelagem de Dados 15 Coleção de operadores que tomam relações

Modelagem de Dados

Exercício

• Considere o cenário a seguir: Uma biblioteca precisa automatizar seus processos. A biblioteca

trabalha com títulos que podem ser livros, revistas e artigos. Estes títulos são emprestados aos seus associados que tem um prazo para devolução. Os associados podem pegar ate 3 livros de cada vez e caso não devolvam no prazo pagam uma multa de R$ 2.00 por dia de atraso. Os livros são catalogados por área e assunto. Ex. Para informática existem livros de SO, BD, LP, etc.

O sistema deve fornecer os seguintes relatórios: a lista de associados. Lista de títulos, lista de títulos em atraso, gerar boleto de pagamento de multas e a lista dos títulos mais locados no mês.

• Para o cenário acima, desenvolver – Modelo de entidades e relacionamentos – Mapeamento do modelo físico do banco – Definição das tabelas normalizadas na 3FN.