banco de dados i modelo relacional. 2 conteúdo parada técnica...onde estamos... de onde viemos.....

42
Banco de Dados I Modelo Relacional

Upload: gabriela-taveira-zagalo

Post on 07-Apr-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

Banco de Dados I

Modelo Relacional

Page 2: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

2

ConteúdoParada técnica

...onde estamos...de onde viemos..

e para onde vamos.. Modelo Relacional

Características do Modelo RelacionalRegras de Integridade Regras de Mapeamento

Exercício

Page 3: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

3

Parada técnica Ciclo de vida do Proj. de Banco de

Dados ou Engenharia de Software

Projeto Conceitual

(Análise) Projeto Lógico (Projeto)

Projeto Físico (Implementação)

Page 4: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

4

Parada técnica Ciclo de vida do Proj. de Banco de

Dados ou Engenharia de SoftwareProjeto Conceitual

(Análise)

(de onde viemos) Projeto Lógico

(Projeto)

(estamos aqui) Projeto Físico (Implementação)

(para onde vamos)

Page 5: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

5

Parada técnicaMundo Real

Diag. Entidade Relacionamento(de onde viemos)

Modelode

Dados

Diagrama Relacional(estamos aqui)

Modelo Lógico

SQL(para onde vamos)

Projeto Conceitual

Projeto Lógico

Projeto Físico

Page 6: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

6

Projeto Lógico

Diag. R(Modelo Relacional)

Modelode

Dados

Projeto Lógico

O esquema Conceitual de alto nível- DER - é mapeado para modelo de implementação de dados do SGBD que será usado, no caso, modelo Relacional.

Conceitos:SGBDRelacional •notação gráfica

Diag. E-R( Modelo ER)

Modelo Lógico

Page 7: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

7

Projeto LógicoBaseado no Modelo* Relacional .

Conjunto de 12 Regras, estabelecida por Edgard F Codd, 1977.

Estas regras é que definem se um sistema pode ser chamada de Relacional ou não

Toda coluna deve somente conter valores atômico (regra)

Baseado na teoria de Conjunto: Álgebra Relacional

Os modelos comerciais: Rede, Hieráquico, Relacional, Relacional Extendido, OO

* O modelo é o que define as características e funcionalidades que o SGBD oferece

Page 8: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

8

Modelo Relacional: regrasRegras de Integridade

Integridade identidade: chave primária: – única e– não nula ... identifica um único elemento num

conjunto

Integridade referencial: chave estrangeira: – pode ser nula– ou existir uma chave primária

Page 9: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

9

Regras de Mapeamento

Transformação do DER em DR

Clientes

codigo nome fone*

Pedidos

número data

possui N1

Tabelas Tabelas

Page 10: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

10

Entidade: ?

Clientes

codigo nome fone

Page 11: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

11

1. Entidade:

Toda entidade vira tabela seus atributos serão colunas, cuidado com os atributos

composto* e multivalorado** atributo determinante = chave primária segue a mesma notação

Clientes

codigo nome foneClientes

codigo nome fone

521001 José 123333

521002 Ana 85256

Clientes

codigo nome fone

DER DR

Page 12: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

12

2. Relacionamento

Clientes

codigo nome fone

Pedidos

número data

possui N1

O que determina a estrutura de uma tabela:• cardinalidade• restrições de totalidade no relacionamento

Page 13: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

13

Cardinalidade: 1:1

Motorista

codigo nome fone*

CNHabilitação

número data_expedição

possui 11

m1 cnh1

m2 cnh2

m3 cnh3

m4 cnh4

Page 14: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

14

Cardinalidade: 1:1

Motorista

codigo nome fone

CNHabilitação

número data_expedição

possui 11

Motorista

codigo nome fone

CNHabilitação

número data_expedição

DER

DRcódigo

(motorista)

CNHHabilitaçãonumero data_expedicao

521001 12/05/2000

521002 15/07/1974

Motoristacodigo nome fone

521001 José 123333

521002 Ana 85256

cnh (CE)

521001

521002

Motorista (CE)

Page 15: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

15

Cardinalidade: 1:1

Motorista

codigo nome fone*

CNHabilitação

número data_expedição

possui 11

Estratégias:1. Chave estrangeira: Qualquer dos lados pode absorver a chave estrangeira, preferência do lado da totalidade, garante nunca vazia. ( em CNH)2. Agrupar Tabelas: quando os dois relacioanmentos são totais.3. Criar uma relação para o relacionamento, com cada uma das chaves

•Evitar colocar a chave em ambos os lados, dificuldade no gerenciamento

Page 16: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

16

Cardinalidade: 1:N

Departamento

codigo nome ramall

possui N1

d1 f1

d2 f2

d3 f31

f4

Funcionário

codigo nome salario

Page 17: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

17

Cardinalidade: 1:N

Departamento

codigo nome ramall

possui N1 Funcionário

codigo nome salario

Duas alternativas:1: Departamento ter várias colunas para indicar os funcionários. ???

2: Funcionário ter uma coluna adicionar para indicar o departamento???

Page 18: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

18

Cardinalidade: 1:N

Departamento

codigo nome ramall

possui N1 Funcionário

codigo nome salario

Departamento

codigo nome ramall

Funcionário

codigo nome salario

codigo

(departamento)

DER

DR

departamento(CE)

Page 19: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

19

Cardinalidade: 1:N

Departamento

codigo nome ramall

possui N1 Funcionário

codigo nome salario

Alternativas:2: Funcionário ter uma coluna adicionar para indicar o departamento:

o lado n absorve o lado 1

Page 20: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

20

Cardinalidade: 1:N

Particularidade:1. Quando não há totalidade, pode-se criar uma tabela para representar o relacionamento:• vantagem:

não terá coluna nula para representar informação ganho de desempenho em determinadas consultas

• desvantagem: uma tabela a mais perda de desempenho na consultas (join)

2. Atributos do relacionamento?

Sócio

codigo nome ramall

aluga N1 Fita

codigo dt_aquisiçãodt_retradadt_prov_dev

Page 21: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

21

Cardinalidade: N:N

Peças

codigo descrição preço

Fornecedores

codigo nome

possui NN

p1 f1

p2 f2

p3 f31

f4

CGC*

Page 22: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

22

Cardinalidade: N:N

Peças

codigo descrição preço

Fornecedores

codigo nome

possui NN

CGC*

Peças

codigo descrição preço

Fornecedores

codigo nome CGC*

Possui codigo(fornecedor)

codigo(peca)

DER

DR

peca(CE) fornecedor(CE)

Page 23: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

23

Cardinalidade: N:N

Peças

codigo descrição preço

Fornecedores

codigo nome CGC*

Possui codigo(fornecedor)

codigo(peca)

DR

Pecas Posssui Fornecedores pc forn01 porca 1,0 01 01 01 Rei da Porca02 parafuso 0,5 02 01 02 Rei do Parafuso03 prego 0,1 01 02 02 02 03 01

peca(CE) fornecedor(CE)

Page 24: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

24

Cardinalidade: N:N

Peças

codigo descrição preço

Fornecedores

codigo nome

possui NN

CGC*

Sempre gera tabela, novo símbolo para indicar que a tabela é originada de um relacionamento.

Os atributos do relacionamento se mantém na tabela do relacionamento.

As chaves primárias é no mínimo a combinação da chaves estrangeiras, e dependendo do negócio, é mais algum outra atributo.

Page 25: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

25

Restrição de Totalidade

Indica se uma determinada chave estrangeira poderá ser nula ou nãoTotalidade indica que a chave estrangeira não poderá ser NULAOu seja, o codigo de departamento em funcionário deverá ser definido como nunca receber um valor NULO

Departamento

codigo nome ramall

possui N1 Funcionário

codigo nome salario

Page 26: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

26

Unário ou Auto-relacionamento

DER 1Funcionário

codigo nome salario

chefia

N

subordinado

superior

Page 27: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

27

Unário ou Auto-relacionamento

• O determina é a cardinalidade, portanto neste caso a tabela Fucnionário ganha uma nova coluna com o nome do papel (superior).• Daí a importância dos nomes dos papéis nos auto-relacionamentos.

1Funcionário

codigo nome salario

chefia

N

subordinado

superior

1Funcionário

(superior)codigo

codigo nome salario superior (CE)

DER DR

Page 28: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

28

Relacionamento: ternário ou n-ário

Funcionário

codigo nome salario

LinguagemPro

codigo nome

Projeto

codigo nome

participa NN

Ndescrição

DER

Page 29: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

29

Relacionamento: ternário ou n-ário

LinguagemPro

codigo nome

Projeto

codigo nome

codigocodigo

descrição

participa(linguagem)

Funcionário

codigo nome salario

codigo

(projeto)

(funcionário)

linguagem(CE)

funcionário(CE)

projeto(CE)

• Relacionamentos ternários ou de grau maior (n-ários), sempre geram tabela. • A chave primária desta nova tabela é a combinação de todas as chaves estrangeiras.• Os atributos que existirem nete relacionamento mantém nesta tabela

DR

Page 30: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

30

Atendimento

Agregação

nome

Medico

codigo nome especialidade

Pacienteatende NN

gera

Exame

codigo preço

N

N

codigo nome nacimento

Page 31: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

31

Agregação

Medico

codigo nome especialidade

Paciente

codigo nome nacimento

nome

Exame

codigo preço

atendecodigo

(medico)

geramedico (CE)

exame (CE)

paciente (CE)

codigo(paciente)

medico (CE) paciente (CE)

codigo (exame)

medico,paciente

(medico, paciente)

Page 32: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

32

GeneralizaçãoGeneralização

Contanumerosaldo

Conta_Poupança

juros dt_niv

Conta_Corrente

limite tarifa

Page 33: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

33

GeneralizaçãoGeneralizaçãoConta

numerosaldo

Conta_Poupança

juros dt_niv

Conta_Corrente

limite tarifa

numeronumero (numero)(numero)

numero (CE) numero (CE)

• As Entidades filhas recebem a chave primária da entidade pai

Page 34: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

34

GeneralizaçãoGeneralizaçãocuidadoscuidados

Deleção/remoção remover um elemento da classePai implica

em remover um elemento da classeFilha (total), vários (sobreposto) ou nenhum (parcial)

inserção na classePai implica em incluir em 1(total e não sobreposto) na classeFilha ou mais de um (sobreposição)

Page 35: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

35

Atributo Multivalorado

Clientes

codigo nome fone*

Clientescodigo nome fone

521001 José 123333 54321 432211

521002 Ana 85256 , 4342423

Atributos atômico

Page 36: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

36

Atributo Multivalorado

Clientes

codigo nome fone*

PossuiClientes

codigo nome fone

codigo(cliente)

Possuicliente fone

521001 325144

521002 01997877

Page 37: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

37

Entidade Fraca

Funcionário

codigo nome endereço

possui N1 Dependente

nome data_nas

Funcionário

codigo nome endereço

Dependente

funcionário (CE) nome data_nas

codigo

(funcionário)

DR

DER

Chave estrangeira na tabela Dependente: funcionárioChave Primaria na tabela Dependente: funcionário e nome

Page 38: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

38

Descrição da Tabela Nome_da_Tabela

nome_col1 nome_col2 nome_colN

tipo Chave (CP/CE)Nulo (NN)tipo da coluna*tamanhoexemplo

* Tipos: numérico, caracter, data

Page 39: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

39

Exercício

1. Locadora de Vídeo (Mapeamento)

2. João de Barro (Mapeamento)3. Exercício 4 da prova

(Mapeamento)

Page 40: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

40

FIM!!!!

Page 41: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

41

Próxima aula

Page 42: Banco de Dados I Modelo Relacional. 2 Conteúdo  Parada técnica...onde estamos... de onde viemos.. e para onde vamos..  Modelo Relacional Características

42

Bibliografia 1. ELMASRI, R e NAVATHE S. Fundamentos de Sistemas de Banco

de Dados. 3 ed. Rio de Janeiro: LTC 2002. Capítulo 7 2. MACHADO, Felipe Nery Rodrigues, ABREU, Maurício Pereira de.

Projetos de Banco de Dados: uma visão prática. 4ed. São Paulo: Érica, 1998. 298p. Capítulo 13

3. KORTH, Henry F. , Silberschatz , Abraham, Sistemas de Banco de Dados. 3ed. São Paulo: Makron Books 1999. 806p. Capítulo 2 – tópico 2.9