banco de dados parte 4 profa. ana karina barbosa abril/2008

30
Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Upload: internet

Post on 22-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Banco de DadosParte 4

Profa. Ana Karina Barbosa

Abril/2008

Page 2: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R / Relacional

Modelo Conceitual Modelo Lógico

Page 3: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R / RelacionalEstas abordagens propõem modelar os dados em diferentes níveis de abstração

Abordagem E-R (Modelo Conceitual)• Independente do SGBD considerado

Abordagem Relacional (Modelo Lógico)• Modela os dados a nível de SGBD relacional

Um esquema relacional pode ser facilmente obtido a partir de um esquema conceitual E-RExistem algumas regras para realização desta tarefa que foram projetadas com dois objetivos:

Boa performanceDesenvolvimento simplificado

Page 4: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalImplementação de entidades

Para cada entidade no esquema E-R, criar uma tabela correspondente. Cada atributo da entidade define uma coluna desta tabela.Os atributos identificadores correspondem às colunas que compõem a chave primária da tabela

PESSOA

Esquema relacional simplificado correspondente:

Pessoa (CodPessoa, Nome, Endereco, DataNasc)

Data nascimento

Endereço

Nome

Código

(0,1)

Page 5: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/Relacional

CAMPO TIPO NOT NULL

DESCRIÇÂO

Codigo Integer Not Null Chave Primária

Nome Varchar(20) Not Null Nome do pessoa

Endereço Varchar(50) Not Null Endereço da pessoa

DataNasc Date Null Data de Nascimento

Implementação de entidadesEsquema Relacional completo Especificando a tabela Pessoa

Page 6: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/Relacional

Nomes de Atributos e Nomes de ColunasNão é aconselhável transcrever diretamente os nomes dos atributos para nomes de colunas.Nomes de colunas são referenciados em programas, por isso:• Devem ser curtos.• Não podem conter brancos.

A recomendação é que se use sempre a mesma abreviatura em todo o Banco de Dados.

Page 7: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalImplementando Relacionamentos (1:1)

Identificar as tabelas das entidades participando do relacionamento R.Escolher uma das tabelas e incluir como chave estrangeira, a chave primária da outra tabela.Incluir todos os atributos do relacionamento na relação escolhida.

HOMEM MULHERCASAMENTO1 1

Mulher (IdentM, Nome, IdentH, Data, Regime)

Homem (IdentH, Nome)

data regime

Identificador Identificador

nome nome

Page 8: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalImplementando Relacionamentos (1:1)

Especificação das tabelas Homem e Mulher

CAMPO TIPO NOT NULL DESCRIÇÂO

IdentM Integer Not Null Chave Primária.

Nome Varchar(50) Not Null Nome da Mulher

IdentH Integer Null Iden. do marido. FK tabela Homem

Data Date Null Data do casamento

Regime Varchar (50)

Null Regime: parcial, separação total, comunhão total

CAMPO TIPO NOT NULL DESCRIÇÂO

IdentH Integer Not Null Chave Primária.

Nome Varchar (50)

Not Null Nome do Homem

Page 9: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/Relacional

CLIENTECARTÃO

MAGNÉTICOTEM

1 0,1códigocódigo

nome Data Exp.

CAMPO TIPO NOT NULL DESCRIÇÂO

CodCliente Integer Not Null Chave Primária

Nome Varchar (50)

Not Null Nome

CodCartao Integer Null Codigo do Cartao

DataExp Date Null Data de Expiração

Page 10: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalImplementando Relacionamentos (1:N)

Identificar a tabela S que representa a entidade do lado N.Incluir como chave estrangeira a chave primária da tabela que representa a entidade do lado 1.Incluir todos os atributos do relacionamento em S.

FINANCEIRA VENDAFINANCIA1 N

Financeira (Codigo, Nome)

Venda (Id, data, CodFinan, NumParcelas, Txjuros)

Num parcelas Taxa juros

codigo Id

nome data

Page 11: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalRelacionamento com Entidade Fraca

Cria-se uma tabela para a entidade fraca e inclui os seus atributos como campos.Acrescenta na tabela o identificador da entidade “forte”.A chave primária da tabela será o identificador da entidade “fraca” + o identificador da entidade “forte”.

EMPREGADO DEPENDENTEtem1 N

código

nome

NumeroSequencia

nome

Page 12: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/Relacional

Entidade FracaEspecificação da Tabela Dependente

CAMPO TIPO NOT NULL

DESCRIÇÂO

CodEmp Integer Not Null Chave Primária. FK da Tabela

Empregado

NumSeq Integer Not Null Chave primária

Nome Varchar (50)

Not Null Nome do dependente

Page 13: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalImplementando Relacionamentos (N:N)

Criar uma nova tabela para representar relacionamento R.Incluir como chave estrangeira as chaves primárias das tabelas que participam em R, estas chaves combinadas formarão a chave primária da relação.Incluir também eventuais atributos de R.

ENGE-NHEIRO

codigo

titulocódigo

nomePROJETOATUAÇÃO

N N

Engenheiro (CodEng, Nome)

Projeto (CodProj, Titulo)

Atuação (CodEng, CodProj, Função)

função

Page 14: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalImplementando Relacionamentos - Quando existir dois ou mais relacionamentos entre as mesmas entidades

Utilizar as regras anteriores para cada relacionamento independente dos outros.

Engenheiro (CodEng, Nome)

Projeto (CodProj, Titulo, CodCoordenador)

Trabalha (CodEng, CodProj)

PROJETOENGENHEIROtrabalhaN N

coordena1 1

Código

Título

CódigoNome

Page 15: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/Relacional

Implementando Relacionamentos - Auto-Relacionamento

Utilizar as mesmas regras descritas anteriormente.

EMPREGADO supervisão

supervisor

supervisionado

1

N

Empregado (CodEmp, Nome, CodSupervisor)

Código

Nome

Page 16: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/Relacional

Implementando Relacionamentos - Auto-Relacionamento

PEÇA contém

compostaN

N

Peça (CodPeça, Nome)

Contém(CodPecaComposta, CodPecaComponente)

Código

Nomecomponente

Page 17: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/Relacional

Exercício 5Fazer o Modelo Relacional correspondente ao Modelo Entidade-Relacionamento de um banco de dados de suporte a uma Biblioteca Escolar.

Page 18: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalPara cada relacionamento com grau maior que dois (n-ário, n>2):

Criar uma nova tabela para representar o relacionamento n-ário R.Incluir como chaves estrangeiras as chaves primárias das tabelas que representam as entidades participantes.Incluir os eventuais atributos de R.A chave primária da nova tabela é normalmente a combinação das chaves estrangeiras.

Page 19: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalPara cada relacionamento com grau maior que dois (n-ário, n>2):

CIDADEDISTRI-BUIDOR

códigonome

PRODUTOcódigonome

DISTRI-BUIÇÃO

N

N 1

códigonome

Data início

Page 20: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalPara cada relacionamento com grau maior que dois (n-ário, n>2): (cont.)

Produto (CodProd, Nome)

Cidade (CodCid, Nome)

Distribuidor (CodDistr, Nome)

Distribuição (CodPod, CodCid, CodDistr, DataInicio)

Page 21: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/RelacionalPara cada atributo multivalorado

Criar uma nova tabela.Incluir nesta tabela um atributo correspondente a A.Incluir a chave primária R da tabela que tem A como atributo.A chave primária da nova tabela é a combinação de A e R.

CLIENTETelefones código

nome

Cliente (CodCli, Nome)

Telefone (CodCli, NumTelefone)

(1,N)

Page 22: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R / Relacional

Implementação de generalização/especialização:

Há três alternativas a considerar:• Uso de uma única tabela para toda hierarquia

de generalização/especialização.• Uso de uma tabela para cada entidade.• Uso de uma tabela para cada entidade

especializada.

Page 23: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R / RelacionalUma tabela por hierarquia:

Todas as tabelas referentes às especializações de uma entidade genérica são fundidas em uma única tabelaEsta tabela terá:

• Chave primária correspondente ao identificador da entidade mais genérica.

• Uma coluna Tipo, que identifica que tipo de entidade especializada está sendo representada por cada linha da tabela.

• Uma coluna para cada atributo da entidade genérica.• Colunas referentes aos relacionamentos dos quais

participa a entidade genérica e que sejam implementados pela alternativa de adicionar colunas à tabela da entidade genérica.

Page 24: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R / Relacional

Uma tabela por hierarquia:Esta tabela terá (Cont.):• Uma coluna para cada atributo de cada

entidade especializada (que devem ser definidas como opcionais, já que somente terão valores quando a linha for referente à entidade especializada em questão).

• Colunas referentes aos relacionamentos dos quais participa cada entidade especializada e que sejam implementados através da adição de colunas à tabela da entidade.

Page 25: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R / RelacionalUma tabela para cada entidade da hierarquia:

Cria-se uma tabela para cada entidade que compõe a hierarquia.Acrescentar o atributo TIPO à tabela referente à entidade genérica.Inclui-se a chave primária da tabela correspondente à entidade genérica, em cada tabela correspondente a uma entidade especializada .

Page 26: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R / RelacionalUma tabela para cada entidade especializada:

Cria-se uma tabela para cada entidade especializada que não possua outra especialização.Esta tabela contém tanto os dados da entidade especializada, quanto os de suas entidades genéricas.Esta alternativa pode ser utilizada quando a especialização for total.

Page 27: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R / RelacionalComparação entre as alternativas:

Vantagem da implementação com tabela única:• Todos os dados referentes a um ocorrência de entidade

genérica, bem como os dados eferentes a ocorrência de sua especialização estão em uma única linha.

• A chave primária é armazenada uma única vez.

Vantagem da implementação com uma tabela por entidade:

• As colunas opcionais que aparecem são aquelas referentes a atributos que podem ser vazios do ponto de vista da aplicação.

• O controle de colunas opcionais passa a ser feito pelo SGBD e não só pela aplicação como acontece na abordagem anterior utilizando o atributo TIPO.

Page 28: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R / RelacionalComparação entre as alternativas:

Vantagem da implementação com uma tabela por entidade especializada:• As colunas opcionais que aparecem são

aquelas referentes a atributos que podem ser vazios do ponto de vista da aplicação.

• Não possui chaves primárias redundantes.• A chave primária não é também chave

estrangeira, como na solução anterior.

OBS: O projetista deve ponderar os prós e contras de ambas soluções e optar por aquela que seja mais adequada ao problema.

Page 29: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/Relacional

Exercício 6Fazer o Modelo Relacional correspondente ao modelo Entidade-Relacionamento do banco de dados de suporte a uma empresa de engenharia.

Page 30: Banco de Dados Parte 4 Profa. Ana Karina Barbosa Abril/2008

Mapeamento E-R/Relacional

Exercício 7Fazer o Modelo Relacional correspondente ao modelo Entidade-Relacionamento do banco de dados de suporte a realização de Congressos.