Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Banco de Dados I Aula 05 – Transformações entre Modelos Prof. Joélcio Rigue jprigue@yahoo.com.br 1 2 Introdução A abordagem ER é voltada para modelagem de dados de forma independente do SGBD, é adequada para construção do modelo conceitual. Já a abordagem relacional modela dados a nível de SGBD relacional, ou seja, abrange o nível lógico. Introdução 3 Modelo ER Modelo Relacional Projeto Lógico de BD Relacional Engenharia Reversa de BD Relacional 4 Introdução Projeto Lógico de BD Relacional Transformação de um modelo ER em um modelo lógico, que implementa a nível de SGBD relacional, os dados representados abstratamente no modelo ER. Engenharia Reversa de BD Relacional A partir de um modelo lógico (esquema), obtém-se um diagrama ER, que representa de forma abstrata os dados armazenados no BD. 5 Projeto Lógico de BD Relacional Um determinado modelo ER pode ser transformado em diferentes modelos relacionais, esses diferentes modelos podem resultar em: diferentes desempenhos do sistema construído, maior (ou menor) facilidade no desenvolvimento e/ou manutenção do sistema, etc. 6 Projeto Lógico de BD Relacional Não existem regras padrão, as utilizadas em nosso curso foram definidas tendo em vista dois objetivos: bom desempenho de consulta e alteração do banco de dados e, que o banco de dados simplifique o desenvolvimento e a manutenção das aplicações. Passos: Tradução inicial de entidades e respectivos atributos; Tradução de relacionamentos e respectivos atributos; Tradução de generalizações/especializações 7 Projeto Lógico de BD Relacional Implementação inicial das entidades Cada entidade é traduzida para uma tabela; Cada atributo da entidade define uma coluna desta tabela; Os atributos identificadores corresponderão às colunas que compõe a chave primária da tabela. LIVRO(ISBN, Titulo, Autor, Categoria) 8 Projeto Lógico de BD Relacional Existe uma situação onde a tradução de uma entidade para uma tabela não é trivial, trata-se do caso onde uma entidade possui um relacionamento identificador. A regra de tradução de identificadores externos é que, para cada identificador externo, seja criada uma coluna que fará parte da chave primária da tabela. 9 Projeto Lógico de BD Relacional Cliente(codigo, nome) Telefone(codigocliente, numero, operadora) codigocliente referencia Cliente 10 Projeto Lógico de BD Relacional Implementação de relacionamentos O fator responsável pela determinação de qual tradução utilizar no caso dos relacionamentos é a cardinalidade máxima e mínima das entidades que participam do relacionamento. Existem três formas: tabela própria, adição de coluna, fusão de tabelas. 11 Projeto Lógico de BD Relacional Implementação de relacionamentos Tabela Própria O relacionamento é implementado através de uma tabela própria, cujas colunas são: identificadores das entidades relacionadas atributos do relacionamento A PK da tabela é formada pelas colunas correspondentes aos identificadores das entidades relacionadas e pelos atributos identificadores do relacionamento. Cada identificador de entidade relacionada será FK da tabela. Empregada em relacionamentos n:n 12 Projeto Lógico de BD Relacional Medico(CRM, Nome, Especialidade) Paciente(CPF, Nome, Nascimento) Consulta(CRM, CPF, Data, Hora) CRM referencia Medico CPF referencia Paciente 13 Projeto Lógico de BD Relacional Implementação de relacionamentos Adição de Colunas Inserção de colunas em uma tabela correspondente a uma das entidades pertencentes ao relacionamento. Somente é possível quando uma das entidades tem cardinalidade máxima um. A tradução consta em: inserir na tabela de cardinalidade máxima um as seguintes colunas: colunas correspondentes ao identificador da outra entidade, serão chaves estrangeiras colunas correspondentes aos atributos do relacionamento 14 Projeto Lógico de BD Relacional Turma(Codigo, Descricao, Sala) Aluno(Matricula, Nome, Nascimento, CodigoTurma) CodigoTurma referencia Turma 15 Projeto Lógico de BD Relacional Implementação de relacionamentos Fusão de Tabelas Fundir as tabelas referentes às entidades envolvidas no relacionamento. Somente pode ser aplicada quando o relacionamento é de 1:1 A tradução consta em implementar todos atributos de ambas entidades e atributos do relacionamento em uma única entidade. 16 Projeto Lógico de BD Relacional Correntista(CodCorrent, Nome, CodCartao, Data_Val) Projeto Lógico de BD Relacional 17 Homem(CPFH, Nome) Mulher(CPFM, Nome, CPFH, Data, Regime) CPFH referencia Homem Homem(CPFH, Nome) Mulher(CPFM, Nome) Casamento(CPFH, CPFM, Data, Regime) CPFH referencia Homem CPFM referencia Mulher OU 18 Projeto Lógico de BD Relacional Regra de Implementação Tabela Própria Adiçãode Coluna Fusão de Tabelas Relacionamentos 1:1 + /– V X –/+ + /– V 19 Projeto Lógico de BD Relacional Regra de Implementação Tabela Própria Adiçãode Coluna Fusão de Tabelas Relacionamentos 1:n + /– V X + /– V X –/+ V X 20 Projeto Lógico de BD Relacional Regra de Implementação Tabela Própria Adiçãode Coluna Fusão de Tabelas Relacionamentos n:n V X X V X X 21 Projeto Lógico de BD Relacional Implementação de generalizações/especializações Uma tabela por hierarquia (“tabelão”) Todas as tabelas referentes às especializações de uma entidade genérica são fundidas em uma única tabela, a qual conterá: Chave primária correspondente ao identificador da entidade genérica. Caso não exista, 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. 22 Projeto Lógico de BD Relacional Colunas referentes aos relacionamentos que a entidade genérica participa e que sejam classificados em adicionar colunas à tabela genérica. Uma coluna para cada atributo da entidade especializada. Colunas referentes aos relacionamentos que as entidades especializadas participem e que sejam classificados em adição de colunas. Uma entidade especializada pode não gerar nenhuma coluna. Isto ocorrerá quando esta não possuir atributos e seus relacionamentos são implementados por tabelas próprias. Projeto Lógico de BD Relacional 23 Projeto Lógico de BD Relacional Departamento(CodigoD, Nome) Projeto(CodigoP, Nome) RamoEng(CodigoR, Nome) ProcessTexto(CodigoPT, Nome) Empregado(CodigoE, Nome, CPF, Tipo, CodigoD, CNH, CREA, CodigoR) CodigoD referencia Departamento CodigoR referencia RamoEng Dominio(CodigoE, CodigoPT) CodigoE referencia Empregado CodigoPT referencia ProcessTexto Participacao(CodigoE, CodigoP) CodigoE referencia Empregado CodigoP referencia Projeto 24 25 Projeto Lógico de BD Relacional Implementação de generalizações/especializações Uma tabela por entidade especializada Criar uma tabela para cada entidade que compõe a hierarquia, aplicando as regras correspondentes à implementação de entidades e relacionamentos vistas anteriormente. O único acréscimo que deve ser feito às regras é a inclusão da chave primária da tabela correspondente a entidade genérica, em cada tabela correspondente a uma entidade especializada Projeto Lógico de BD Relacional Departamento(CodigoD, Nome) Projeto(CodigoP, Nome) RamoEng(CodigoR, Nome) ProcessTexto(CodigoPT, Nome) Empregado(CodigoE, Nome, CPF, Tipo, CodigoD) CodigoD referencia Departamento Motorista(CodigoE, CNH) CodigoE referencia Empregado Engenheiro(CodigoE, CREA, CodigoR) CodigoE referencia Empregado CodigoR referencia Ramo Dominio(CodigoE, CodigoPT) CodigoE referencia Empregado CodigoPT referencia ProcessTexto Participacao(CodigoE, CodigoP) CodigoE referencia Empregado CodigoP referencia Projeto 26 Engenharia Reversa de Modelos Relacionais Nesta seção estudaremos como, a partir de um modelo lógico de um banco de dados relacional, obter um modelo conceitual (diagrama ER). Ou seja, o processo inverso ao de projeto lógico de banco de dados relacional. 27 Engenharia Reversa de Modelos Relacionais Passos: Identificação da construção ER correspondente a cada tabela; Definição dos relacionamentos 1:1 e 1:n Definição dos atributos (entidades/relacionamentos) Definição de identificadores (entidades/relacionamentos) 28 Engenharia Reversa de Modelos Relacionais Disciplina(CodD, NomeD) Curso(CodC, NomeC) Curric(CodC, CodD, Obr_Opc) CodC referencia Curso CodD referencia Disciplina Predio(CodP, Endereco) Sala(CodP, CodSl, Capacidade) CodP referencia Predio Turma(AnoSem, CodD, SiglaTur, Capacidade, CodP, CodSl) CodD referencia Disciplina (CodP, CodSl) referencia Sala Laboratorio(CodP, CodSl, Equipam) (CodP, CodSl) referencia Sala 29 Engenharia Reversa de Modelos Relacionais Identificação da construção ER correspondente a cada tabela; Inicialmente, devemos definir para cada tabela do modelo relacional qual é a correspondentes construção a nível de modelo ER Uma tabela pode ser: Uma entidade Um relacionamento n:n Uma entidade especializada O fator determinante é a composição de sua chave primária. 30 Engenharia Reversa de Modelos Relacionais Composição da PK Construção ER correspondente Múltiplaschaves estrangeiras Relacionamento n:n Toda chave primária é uma chave estrangeira Especialização Demais casos Entidade 31 Engenharia Reversa de Modelos Relacionais Disciplina(CodD, NomeD) ENTIDADE Curso(CodC, NomeC) ENTIDADE Curric(CodC, CodD, Obr_Opc) RELACIONAMENTO N:N CodC referencia Curso CodD referencia Disciplina Predio(CodP, Endereco) ENTIDADE Sala(CodP, CodSl, Capacidade) ENTIDADE CodP referencia Predio Turma(AnoSem, CodD, SiglaTur, Capacidade, CodP, CodSl) ENTIDADE CodD referencia Disciplina (CodP, CodSl) referencia Sala Laboratorio(CodP, CodSl, Equipam) ESPECIALIZAÇÃO (CodP, CodSl) referencia Sala 32 Engenharia Reversa de Modelos Relacionais 33 Engenharia Reversa de Modelos Relacionais Definição dos relacionamentos 1:1 e 1:n Toda chave estrangeira que não se enquadra nas regras anteriores representa: Um relacionamento 1:n ou Um relacionamento 1:1 O esquema não tem poder para definir se é 1:n ou 1:1 34 Engenharia Reversa de Modelos Relacionais Disciplina(CodD, NomeD) Curso(CodC, NomeC) Curric(CodC, CodD, Obr_Opc CodC referencia Curso CodD referencia Disciplina Predio(CodP, Endereco) Sala(CodP, CodSl, Capacidade) CodP referencia Predio Turma(AnoSem, CodD, SiglaTur, Capacidade, CodP, CodSl) CodD referencia Disciplina (CodP, CodSl) referencia Sala Laboratorio(CodP, CodSl, Equipam (CodP, CodSl) referencia Sala 35 Em vermelho estão as chaves estrangeiras a serem tratadas Engenharia Reversa de Modelos Relacionais 36 Engenharia Reversa de Modelos Relacionais Definição dos atributos Cada coluna que não seja chave estrangeira é um atributo na entidade/relacionamento correspondente à tabela; As colunas representadas por chaves estrangeiras NÃO correspondem a atributos, portanto, NÃO são representadas no ER Estas colunas correspondem a relacionamentos que já foram tratados nas etapas anteriores. 37 Engenharia Reversa de Modelos Relacionais 38 Engenharia Reversa de Modelos Relacionais Definição dos identificadores Cada coluna da chave primária que não é chave estrangeira corresponde a um atributo identificador da entidade ou relacionamento; A coluna da chave primária que é chave estrangeira corresponde a um relacionamento identificador da entidade. 39 Engenharia Reversa de Modelos Relacionais 40
Compartilhar