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

Post on 07-Apr-2016

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Banco de Dados I

Modelo Relacional

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

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)

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)

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

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

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

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

9

Regras de Mapeamento

Transformação do DER em DR

Clientes

codigo nome fone*

Pedidos

número data

possui N1

Tabelas Tabelas

10

Entidade: ?

Clientes

codigo nome fone

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

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

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

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)

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

16

Cardinalidade: 1:N

Departamento

codigo nome ramall

possui N1

d1 f1

d2 f2

d3 f31

f4

Funcionário

codigo nome salario

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???

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)

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

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

21

Cardinalidade: N:N

Peças

codigo descrição preço

Fornecedores

codigo nome

possui NN

p1 f1

p2 f2

p3 f31

f4

CGC*

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)

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)

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.

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

26

Unário ou Auto-relacionamento

DER 1Funcionário

codigo nome salario

chefia

N

subordinado

superior

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

28

Relacionamento: ternário ou n-ário

Funcionário

codigo nome salario

LinguagemPro

codigo nome

Projeto

codigo nome

participa NN

Ndescrição

DER

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

30

Atendimento

Agregação

nome

Medico

codigo nome especialidade

Pacienteatende NN

gera

Exame

codigo preço

N

N

codigo nome nacimento

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)

32

GeneralizaçãoGeneralização

Contanumerosaldo

Conta_Poupança

juros dt_niv

Conta_Corrente

limite tarifa

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

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)

35

Atributo Multivalorado

Clientes

codigo nome fone*

Clientescodigo nome fone

521001 José 123333 54321 432211

521002 Ana 85256 , 4342423

Atributos atômico

36

Atributo Multivalorado

Clientes

codigo nome fone*

PossuiClientes

codigo nome fone

codigo(cliente)

Possuicliente fone

521001 325144

521002 01997877

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

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

39

Exercício

1. Locadora de Vídeo (Mapeamento)

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

(Mapeamento)

40

FIM!!!!

41

Próxima aula

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

top related