BANCO DE DADOS GEOGRÁFICOS E WEBMAPPING - PROJETO LÓGICO RELACIONAL Prof. Angelo Augusto Frozza, M.Sc. http://about.me/TilFrozza 1 PROJETO DE BANCO DE DADOS Atividade de modelagem de dados em diversos níveis de abstração Modelagem conceitual (projeto conceitual) abstração de mais alto nível objetivo: representação dos requisitos de dados do domínio independente de modelo de BD Modelagem lógica (projeto lógico) representação da modelagem conceitual em um modelo de BD ênfase na eficiência de armazenamento evitar: muitas tabelas (e junções); tabelas sub-utilizadas, ... Modelagem física (implementação) esquema SQL para a modelagem lógica dependente de SGBD ênfase na eficiência de acesso implementação de consultas, índices, ... ROTEIRO Regras para mapeamento E-R Regras para mapeamento OR PROJETO LÓGICO DE BD Mapeamento ER -> Relacional Para 1 esquema ER -> N esquemas relacionais Existem várias maneiras de “se implementar” uma modelagem conceitual abstrata PROJETO LÓGICO DE BD Compromisso entre: evitar um grande número de tabelas evitar atributos opcionais evitar um tempo longo de resposta nas consultas e atualizações de dados implica minimizar junções entre tabelas 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 (RG, Nome, 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 Itens (NroPedido, NroItem, Produto, Quantidade) MAPEAMENTO DE ATRIBUTOS Empregados (RG, Nome, Idade, PlanoSaúde, Rua, Número, Cidade) Telefone (RG, Número) ou Telefone (RG, Número) MAPEAMENTO DE ATRIBUTOS Empregados (RG, Nome, 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 (CPF, Nome, Tipo, Função, Titulação, Categoria) Tipo pode assumir mais de um valor se a especialização é nãoexclusiva ALTERNATIVA 2 Servidores (CPF, Nome) Funcionários (CPF, Função) Professores (CPF, Titulação, Categoria) ALTERNATIVA 3 Funcionários (CPF, Nome, Função) Professores (CPF, Nome, 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 (Sigla, Nome, DataInstCom, NroCom, EndereçoCom, eMailCom) RELACIONAMENTO 1-1 Opcional em um dos sentidos Pessoas (Código, Nome, NúmeroCarteiraMotorista, DataExpedição, Validade, Categoria, DataRetirada) RELACIONAMENTO 1-1 Opcional em um dos sentidos Pessoas (Código, Nome) CarteirasMotorista (Número, DataExpedição, Validade, Categoria, Código, DataRetirada) RELACIONAMENTO 1-1 Opcional em ambos os sentidos Homens (RG, Nome) Mulheres (RG, Nome) Casamento (RGh, RGm, Data) RELACIONAMENTO 1-1 Opcional em ambos os sentidos Homens (RG, Nome, [RGesposa]) Mulheres (RG, Nome, RGmarido, DataCasamento) RELACIONAMENTO 1-N Obrigatório/opcional no “lado N” Departamentos (Código, Nome) Empregados (CPF, Nome, CodDepto, DataLotação) RELACIONAMENTO 1-N Opcional no “lado 1” Pessoas (RG, Nome) Automóveis (Chassi, Modelo, Ano) Posse (RG, Chassi, DataCompra) RELACIONAMENTO 1-N Opcional no “lado 1” Pessoas (RG, Nome) Automóveis (Chassi, Modelo, Ano, RG, DataCompra) RELACIONAMENTO N-M Obrigatório/opcional em ambos os sentidos Empregados (RG, Nome) Projetos (Código, Nome) Participação (RG, Código, DataInício) AUTO-RELACIONAMENTO Valem as mesmas recomendações anteriores Alternativas: 1. Empregados (RG, Nome, Idade) Gerência (RGe, RGg) 2. Empregados (RG, Nome, Idade, RGg) RELACIONAMENTOS COM ENTIDADES ASSOCIATIVAS Valem as mesmas recomendações anteriores questão: “localizar”a entidade associativa 1 Livros (Código, ..., RGcli, DataDevolução, RGBibl) Clientes (RGcli, ...) Bibliotecárias (RGbibl, ...) RELACIONAMENTOS COM ENTIDADES ASSOCIATIVAS Outro exemplo Correntista (RG, Número) CartõesMagnéticos (Número, DataExp, RG, NroConta) RELACIONAMENTOS TERNÁRIOS Instituições (Sigla, ...) Projetos (Número, ...) Pesquisadores (RG, ...) Pesquisa (Sigla, Número, RG, DataInício) RELACIONAMENTOS TERNÁRIOS Produtos (Código, ...) Cidades (Código, ...) Distribuidores (RG, ...) Distribuição (CodProduto, CodCidade, RG) RELACIONAMENTOS TERNÁRIOS Bairros (Código, ...) Carteiros (RG, ...) Correspondências (CodCarta, Peso, CodBairro, RG, ...) ROTEIRO Regras para mapeamento E-R Regras para mapeamento OR REGRAS PARA MAPEAMENTO OR Objetos Encapsulam atributos e operações BDR Representam de maneira eficiente os atributos Tem limitações para representar operações Atributos de objeto -> colunas na tabela Nem sempre a regra pode ser aplicada Pode depender de Tipos de dados Tamanho dos campos etc. REGRAS PARA MAPEAMENTO OR Regra 1: Toda tabela deve ter uma chave-primária A unicidade do objeto é garantida por um identificador de objetos (OID) em cada tabela, gerado pelo sistema e que não é alterado pelo usuário REGRAS PARA MAPEAMENTO OR Regra 2: Mapeamento de atributos a) Atributos simples são mapeados para colunas b) Atributos compostos podem ser mapeados em várias colunas REGRAS PARA MAPEAMENTO OR Regra 2: Mapeamento de atributos c) Atributos multivalorados devem ser mapeados em tabelas, cuja chaveprimária é composta pela chave-primária da tabela que representa a classe mapeada e a chave que representa o atributo multivalorado REGRAS PARA MAPEAMENTO OR Regra 3: Herança a) Cria-se uma tabela para cada classe REGRAS PARA MAPEAMENTO OR Regra 3: Herança b) Cria-se uma única tabela para toda a hierarquia de classes REGRAS PARA MAPEAMENTO OR Regra 3: Herança c) Cria-se uma tabela para cada classe concreta REGRAS PARA MAPEAMENTO OR Regra 4: Associação N:M Cria-se uma tabela associativa em que a chave-primária é composta pelas chaves-primárias das tabelas associadas REGRAS PARA MAPEAMENTO OR Regra 5: Associação N:M com Classe de Associação A Classe de Associação tem atributos específicos da associação Cria-se uma tabela associativa em que a chave-primária é composta pelas chaves-primárias das tabelas associadas Os atributos da classe associativa permanecem na tabela que é gerada para mapear a associação REGRAS PARA MAPEAMENTO OR Regra 6: Associação 1:N A tabela do lado N herda a referência (chave-estrangeira) da tabela do lado 1 REGRAS PARA MAPEAMENTO OR Regra 7: Associação 1:N com Classe de Associação A tabela do lado N herda a referência (chave-estrangeira) da tabela do lado 1 Os atributos da classe associativa são herdados como atributos na tabela do lado N REGRAS PARA MAPEAMENTO OR Regra 8: Associação 1:1 É gerada uma única tabela com a junção dos atributos das duas classes REGRAS PARA MAPEAMENTO OR Regra 8: Associação 1:1 Pode-se gerar duas tabelas, mas pode-se perder em performance A tabela secundária deve herdar um atributo (chave-primária) como chave-estrangeira Facilita a manutenção das tabelas A estrutura do BD fica mais flexível As operações de consulta precisam de uma operação de Join ou pelo menos dois acessos ao BD Precisa implementar triggers ou rotinas especiais para manter a integridade (p.ex. na exclusão) EXERCÍCIO Crie o mapeamento para o esquema relacional apresentado em sala da aula. Use o brModelo 2.0 para gerar um diagrama lógico. Tipos de dados devem ser indicados no formato texto, na propriedade especifica para tal.