300 likes | 452 Views
Projeto Lógico. Transformação ER para o Modelo Relacional (nÃvel lógico) Baseado em Regras São aplicáveis a maioria dos casos 1 esquema ER pode gerar N esquemas Relacionais Há várias maneiras de implementar (nÃvel lógico) uma representação abstrata (DER). Projeto Lógico.
E N D
Projeto Lógico • Transformação ER para o Modelo Relacional (nível lógico) • Baseado em Regras • São aplicáveis a maioria dos casos • 1 esquema ER pode gerar N esquemas Relacionais • Há várias maneiras de implementar (nível lógico) uma representação abstrata (DER)
Projeto Lógico • O mapeamento deve levar em conta: • A performance do BD • Evitar junções • Diminuir o Número de Chaves • Evitar criação de índices em excesso • Evitar Campos Opcionais • Simplificar o desenvolvimento das aplicações
Projeto Lógico Passos para transformação ER → Relacional: • Tradução inicial de Entidades e seus Atributos • Tradução de Generalizações/Especializações • Tradução de Relacionamentos e seus Atributos
Mapeamento de Entidades e Atributos • Regra Inicial: • Cada entidade é traduzida para uma tabela • Cada atributo da entidade gera uma coluna na tabela • Atributos identificadores das entidades serão as chaves primárias da tabela
Mapeamento de Entidades e Atributos ISBN Livros Titulo Edicao Livros (ISBN, Titulo, Edicao)
Mapeamento de Entidades Fracas • Identificador da entidade forte torna-se: • Parte da chave primária da Tabela Fraca • Chave estrangeira na Tabela Fraca Nome (1,1) (0,N) Dependentes Filiação Sócios NroSequencia Codigo Dependentes (Codigo, NroSequencia, Nome)
Mapeamento de Atributos CNH (0,1) Nome RG Clientes Endereço Email (1,N) Rua Bairro CEP Clientes (RG, Nome, CNH, Rua,Bairro,CEP) Email(RG, email) ou Email (RG, email)
Mapeamento de Especializações • Três alternativas: • Tabela única para toda hierarquia • Tabelas para entidade genérica e entidades especializadas • Tabelas somente para as entidades especializadas
Mapeamento de Especializações 1) Tabela única para toda hierarquia Endereço RG Nome Pessoas CNPJ CPF Jurídica Física Pessoas (RG, Nome, Endereco,Tipo, CPF, CNPJ)
Mapeamento deEspecializações 2) Tabelas para entidade genérica e entidades especializadas Endereço RG Nome Pessoas CPF CNPJ Jurídica Física Pessoas (RG, Nome, Endereço) Física (RG, CPF) Jurídica (RG, CNPJ)
Mapeamento de Especializações 3) Tabelas somente para as entidades especializadas * Não se aplica a especializações parciais Endereço RG Nome Pessoas CPF CNPJ Jurídica Física Física (RG, Nome, Endereço, CPF) Jurídica (RG, Nome, Endereço,CNPJ)
Mapeamento de Relacionamentos • Alternativas de Mapeamento de Relacionamentos: • Entidades relacionadas podem ser fundidas em uma única tabela • Criar tabela para o Relacionamento • Adição de colunas a uma das tabelas para representar o relacionamento (chave estrangeira) • Alternativa depende da cardinalidade mínima e máxima do relacionamento
Relacionamento 1:1 • Relacionamento obrigatório em ambos sentidos • Alternativa: Fusão das Entidades Nome Código Nome Número (1,1) (1,1) Eventos organização Comissões DataInstalacao Eventos (Código, Nome, DataInstCom, NroCom, NomeCom)
Relacionamento 1:1 • Relacionamento opcional em um dos sentidos • Alternativa1: Fusão das Entidades Nome Código Nome Código (0,1) (1,1) controle Bibliotecárias Áreas Periodicidade Bibliotecárias (Código, Nome, CodigoArea, NomeArea, Periodicidade)
Relacionamento 1:1 • Relacionamento opcional em um dos sentidos • Alternativa2: Chave Estrangeira em uma das tabelas Nome Código Nome Código (0,1) (1,1) controle Bibliotecárias Áreas Periodicidade Bibliotecárias (Código, Nome) Áreas (Código, Nome, CodBiblio, Periodicidade)
Relacionamento 1:1 • Relacionamento opcional em ambos os sentidos • Alternativa1: Criar tabela para o relacionamento Nome RG Nome RG (0,1) (0,1) casamento Homens Mulheres Regime Homens (RG, Nome) Mulheres (RG, Nome) Casamento (RGH, RGM, Regime)
Relacionamento 1:1 • Relacionamento opcional em ambos os sentidos • Alternativa2: Chaves estrangeiras em uma das tabelas Nome RG Nome RG (0,1) (0,1) casamento Homens Mulheres Regime Homens (RG, Nome, [RGM]) Mulheres (RG, Nome, RGH, Regime)
Relacionamento 1:N • Relacionamento obrigatório ou opcional no lado N Código ISBN (1,1) (0,N) Editoras Livros publicacao Nome Título Data Editoras (Código, Nome) Livros (ISBN, Título, CodEditora, DataPublicacao)
Relacionamento 1:N • Relacionamento opcional no lado 1 • Alternativa1: Criar tabela para relacionamento com chave primária da tabela do lado N Número ISBN (0,1) (0,N) Estante localização Livros Capacidade Título NumeroControle Estantes (Número, Capacidade) Livros (ISBN, Título) Localização (Número, ISBN, NumeroControle)
Relacionamento 1:N • Relacionamento opcional no lado 1 • Alternativa2: Chave estrangeira na tabela do lado N Número ISBN (0,1) (0,N) Estante localização Livros Capacidade Título NumeroControle Estantes (Número, Capacidade) Livros (ISBN, Título, Número, NumeroControle)
Relacionamento N:N • Relacionamento obrigatório ou opcional em ambos os sentidos ISBN Numero (0,N) (0,N) Livros Pedidos ItemPedido OrdemCompra Titulo Quantidade Livros (ISBN, Titulo) Pedidos (Número, OrdemCompra) ItemPedido (ISBN, Numero, Quantidade)
Auto-Relacionamento • Aplicar as mesmas regras para relacionamentos Nome Código Bibliotecárias (1,1) (0,N) Supervisionada Supervisora supervisão Bibliotecárias(Código, Nome) Supervisão(CodSupervisionada, CodSupervisora) ou Bibliotecárias(Código, Nome, CodSupervisora)
Relacionamentos com Entidades Associativas • Alternativa1: Empréstimos (0,N) (0,1) Clientes Livros empréstimo DataDevolução (0,N) (1,1) cadastro Bibliotecárias Livros (Código, ..., RGCliente, DataDevolução, RGBiblio) Clientes (RGCliente, ...) Bibliotecárias(RGBiblio, ...)
Relacionamentos com Entidades Associativas • Alternativa 2: (1,N) (1,N) Clientes Contas vínculo Número RG Correntistas (1,1) Número CartõesMagnéticos Concessão DataExp (0,1) Correntista(RG, Número) CartõesMagnéticos(Número, DataExp, RG, NroConta)
Relacionamentos Ternários • Caso N:N:N Sigla Número Instituições Projetos (0,N) (1,N) Pesquisa DataInício (1,N) RG Pesquisadores Instituições (Sigla, ...) Projetos (Número, ...) Pesquisadores (RG, ...) Pesquisa (Sigla, Número, RG, DataInício)
Relacionamentos Ternários • Caso 1:N:N Código Código Produtos Cidades (0,N) (0,N) Distribuição (0,1) RG Distribuidores Produtos (Código, ...) Cidades (Código, ...) Distribuidores (RG, ...) Distribuição (CodProduto, CodCidade, RG)
Relacionamentos Ternários • Caso 1:1:N Código Código Correspondências Bairros Peso (0,N) (1,1) Entrega (1,1) RG Carteiros Bairros (Código, ...) Carteiros (RG, ...) Correspondências (CodCarta, Peso, CodBairro, RG, ...)
Relacionamentos Ternários • Caso 1:1:1 Código Código Painéis Motores (1,1) Fabricante Peso (1,1) Veículo (1,1) Código Latarias Modelo Veículo (Código, PesoPainel, CodMotor, FabrMotor, CodLataria, ModLataria)