Modelagem Lógica de BD Foco mapeamento ER->relacional Para 1 esquema ER N esquemas relacionais existem várias maneiras de se implementar uma modelagem conceitual abstrata
Prática de Modelagem Lógica Compromisso entre evitar um grande número de tabelas evitar um tempo longo de resposta nas consultas e atualizações de dados implica minimizar junções entre tabelas evitar atributos opcionais evitar tabelas sub-utilizadas implica evitar desperdício de espaço evitar muitos controles de integridade no BD evitar organizações de dados em tabelas que gerem muitos controles de integridade implica evitar muitas dependências entre dados
Processo de Mapeamento 1. Mapeamento preliminar de entidades e seus atributos 2. Mapeamento de especializações 3. Mapeamento de relacionamentos e seus atributos
Mapeamento de Entidades Empregados Idade Empregados (,, Idade)
Mapeamento de Entidades Fracas Identificador da entidade forte torna-se parte da chave primária na tabela correspondente à entidade fraca (tabelafraca) chave estrangeira na tabelafraca (1,1) (1,N) Pedidos Composição Itens Quantidade Número Número Produto Itens (NroPedido, NroItem, Produto, Quantidade)
Mapeamento de Atributos PlanoSaúde (0,1) Telefone (1,N) Rua Número Cidade Endereço Empregados Idade Empregados (,, Idade, PlanoSaúde, Rua, Número, Cidade) Telefone(, Número) ou Telefone (, Número)
Mapeamento de Atributos PlanoSaúde (0,1) Telefone (1,3) Rua Número Cidade Endereço Empregados Idade Empregados (,, Idade, PlanoSaúde, Rua, Número, Cidade, FoneRes, FoneCom, Celular)
Processo de Mapeamento 1. Mapeamento preliminar de entidades e seus atributos 2. Mapeamento de especializações 3. Mapeamento de relacionamentos e seus atributos
Mapeamento de Especializações Três alternativas são geralmente adotadas 1. tabela única para entidade genérica e suas especializações 2. tabelas para a entidade genérica e as entidades especializadas 3. tabelas apenas para as entidades especializadas
Alternativa 1 Servidores Função Funcionários Professores Titulação Categoria Servidores (,, Tipo, Função, Titulação, Categoria) Tipo pode assumir mais de um valor se a especialização é não-exclusiva
Alternativa 2 Servidores Função Funcionários Professores Titulação Categoria Servidores (, ) Funcionários (, Função) Professores (, Titulação, Categoria)
Alternativa 3 Servidores Função Funcionários Professores Titulação Categoria Funcionários (,, Função) Professores (,, Titulação, Categoria) Não se aplica a especializações parciais
Processo de Mapeamento 1. Mapeamento preliminar de entidades e seus atributos 2. Mapeamento de especializações 3. Mapeamento de relacionamentos e seus atributos
Mapeamento de Relacionamentos Recomendações de mapeamento baseiam-se na análise da cardinalidade dos relacionamentos com base nesta análise, algumas alternativas de mapeamento podem ser adotadas 1. entidades relacionadas podem ser fundidas em uma única tabela 2. tabelas podem ser criadas para o relacionamento 3. chaves estrangeiras podem ser criadas em tabelas a fim de representar adequadamente o relacionamento
Relacionamento 1-1 Obrigatório em ambos os sentidos Conferências (1,1) Organização (1,1) Número Endereço Comissões email Sigla DataInstalação Conferências (Sigla,, DataInstCom, NroCom, EndereçoCom, emailcom)
Relacionamento 1-1 Opcional em um dos sentidos Pessoas (1,1) Posse (0,1) Número CarteirasMotorista Código DataRetirada DataExpedição Validade Categoria alternativa 1 Pessoas (Código,, NúmeroCarteiraMotorista, DataExpedição, Validade, Categoria, DataRetirada)
Relacionamento 1-1 Opcional em um dos sentidos Pessoas (1,1) Posse (0,1) CarteirasMotorista Número Código DataRetirada DataExpedição Validade Categoria alternativa 2 Pessoas (Código, ) CarteirasMotorista (Número, DataExpedição, Validade, Categoria, Código, DataRetirada)
Relacionamento 1-1 Opcional em ambos os sentidos Homens (0,1) Casamento (0,1) Mulheres Data alternativa 1 Homens (, ) Casamento (h, m, Data) Mulheres (, )
Relacionamento 1-1 Opcional em ambos os sentidos Homens (0,1) Casamento (0,1) Mulheres Data alternativa 2 Homens (,, [esposa]) Mulheres (,, marido, DataCasamento)
Relacionamento 1-N Obrigatório/opcional no lado N Empregados (1,N) (0,N) Lotação (1,1) Data Código Departamentos Departamentos (Código, ) Empregados (,, CodDepto, DataLotação)
Relacionamento 1-N Opcional no lado 1 Ano Automóveis Chassi Modelo (1,N) (0,N) (0,1) Posse DataCompra Pessoas alternativa 1 Pessoas (, ) Automóveis (Chassi, Modelo, Ano) Posse (, Chassi, DataCompra)
Relacionamento 1-N Opcional no lado 1 Ano Automóveis Chassi Modelo (1,N) (0,N) (0,1) Posse DataCompra Pessoas alternativa 2 Pessoas (, ) Automóveis (Chassi, Modelo, Ano,, DataCompra)
Relacionamento N-M Obrigatório/opcional em ambos os sentidos Empregados (1,N) (1,N) Participação (0,N) (0,N) DataInício Código Projetos Empregados (, ) Projetos (Código, ) Participação (, Código, DataInício)
Auto-Relacionamento Valem as mesmas recomendações anteriores Empregados Idade (0,1) (0,N) gerente gerência subordinado Alternativas: 1) Empregados(,, Idade) Gerência(e, g) 2) Empregados(,, Idade, g)
Relacionamentos com Entidades Associativas Valem as mesmas recomendações anteriores questão: localizar a entidade associativa Empréstimos Livros (0,N) empréstimo (0,1) Clientes alternativa 2 DataDevolução (0,N) (1,1) cadastro Bibliotecárias Livros (Código,..., cli, DataDevolução, bibl) Clientes (cli,...) Bibliotecárias(bibl,...)
Relacionamentos com Entidades Associativas Outro exemplo Número DataExp Clientes Correntistas (1,N) vínculo CartõesMagnéticos alternativa 1 (1,N) Contas Concessão (1,1) (0,1) Número Correntista(, NroCta, NroCartão, DataExp)
Relacionamentos Ternários Gera uma tabela para o relacionamento Sigla Instituições (1,N) Pesquisa (1,N) Projetos DataInício Número Caso N:N:N (1,N) Pesquisadores Instituições (Sigla,...) Projetos (Número,...) Pesquisadores (,...) Pesquisa (Sigla, Número,, DataInício)
Relacionamentos Ternários Código Produtos (1,N) Cidades Código (1,N) Distribuição Caso 1:N:N (1,1) Distribuidores Produtos (Código,...) Cidades (Código,...) Distribuidores (,...) Distribuição (CodProduto, CodCidade, )
Relacionamentos Ternários Empregados Atividades Código Descrição (1,N) (1,1) Remuneração Caso 1:1:N (1,1) ID Salários Valor Empregados (, ) Atividades (Código, Descrição) Salários (ID, valor) Remuneração (CodAtiv,, ID-Salario) Uma das RIs pode ser chave primária
Relacionamentos Ternários Código Peso Painéis (1,1) Motores Código Fabricante (1,1) Veículo Caso 1:1:1 (1,1) Latarias Painéis (Código, Peso) Motores (Código, Fabricante) Latarias (Código, Modelo) Veículo (CodP, CodM, CodL) Código Modelo Uma das RIs pode ser chave primária