Buscar

Aula 05 Transformacoes entre Modelos

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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando