Buscar

Aula06 (1)

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Prof. Victor Ströele
victor.stroele@ice.ufjf.br
Universidade Federal de Juiz de Fora
Departamento de Ciência da Computação
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Uma empresa trabalha com o desenvolvimento de projetos e necessita controlar a distribuição de seus funcionários nesses projetos. Para tal, ela contrata os seus serviços para elaborar um modelo conceitual que reflita o seu cenário atual. Ela precisa armazenar o salário, o número, o nome e o endereço de seus funcionários. A empresa adota o critério de que sempre existirá um supervisor para um grupo de funcionários.
Os seus funcionários trabalham em um departamento da empresa e esse departamento é gerenciado por apenas um desses funcionários. Sempre que um funcionário é definido como gerente de um departamento é mantida a data de início da sua gerência. 
Cada departamento possui um número único e um nome. Além disso, um departamento atende a várias localizações. Um departamento tem o dever de controlar um conjunto de projetos.
Além disso, os funcionários podem trabalhar em vários projetos da empresa sendo necessário saber quantas horas cada funcionário trabalha em cada projeto. Dos projetos é preciso saber o número e o nome deles.
A empresa deseja saber também quais são os dependentes de seus funcionários para futuras políticas de benefícios e, para isso, precisa armazenar seus nomes, data de aniversário e parentesco.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Mapear todos os conjuntos de entidades regulares (que não são fracas)
Para cada conjunto de entidade E no esquema ER cria-se uma relação R que inclui todos os atributos de E. 
Caso exista atributo composto, inclua todos os atributos elementares que compõem o atributo composto. Escolha um dos atributos chave de E como chave primária para a relação R.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Funcionário = {FNúmero, FNome, Endereço, Salário} 
Departamento = {DNúmero, DNome} 
Projeto = {PNúmero, PNome} 
Obs.: 
O atributo “Localização” não foi representado na relação “Departamento” pois é um atributo multivalorado e será tratado no 6º passo
O conjunto de entidade “Dependente”, é um conjunto de entidade fraco e será tratado no próximo passo.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Mapear conjuntos de entidades fracas
Para cada conjunto de entidade fraca F no esquema ER cria-se uma relação R formada por todos os atributos do conjunto de entidade fraca, mais os atributos que são chave das relações que mapeiam os conjuntos de entidades envolvidos. 
É importante notar que um conjunto de entidade fraca só pode ser mapeado quando os demais conjuntos de entidades envolvidos no conjunto de relacionamento total, que torna esse conjunto de entidade fraca, já estiverem mapeados. 
Só é possível criar uma nova relação quando o relacionamento
entre a entidade principal e a entidade fraca NÃO for 1:1 com 
cardinalidade mínima OBRIGATÓRIA!!!
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Funcionário = {FNúmero, FNome, Endereço, Salário} 
Dependente = {DependNome, FNúmero, 
		 DataNiver, Parentesco}
	FNúmero Referencia Funcionário
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Mapear conjuntos de relacionamentos binários 1:1
Temos três opções:
Fusão de Tabelas
Tanto a tabela de “Funcionário” quanto de “Departamento” devem existir separadamente, não faz sentido unir as duas
Criar tabela própria
A criação de tabela própria depende do relacionamento ser opcional em ambos os lados
Adicionar Colunas
Só nos resta essa opção.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Mapear conjuntos de relacionamentos binários 1:1
O mapeamento de conjuntos de relacionamentos (CR) nem sempre resultam em uma nova relação, como é o caso dos conjuntos de relacionamento binário 1:1. Deve-se identificar os conjuntos de entidades S e T que participam do relacionamento. 
Para adição de colunas, um dos conjuntos de entidades deve ser escolhido, por exemplo S, e acrescenta-se a ele os atributos do conjunto de relacionamento e ainda os atributos chave da relação que mapeia o outro conjunto de entidade. 
Deve-se ressaltar que os atributos chave do conjunto de entidade T são incluídos como atributos não chave no conjunto de entidade S.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Primeiro Passo: 
 Funcionário = {FNúmero, FNome, Endereço, Salário} 
 Departamento = {DNúmero, DNome, FNúmero, DataIni} 
	FNúmero Referencia Funcionário
 Projeto = {PNúmero, PNome} 
Segundo Passo: 
 Dependente = {DependNome, FNúmero, DataNiver, Parentesco} 
	 FNúmero Referencia Funcionário
Terceiro Passo: 
Os atributos FNúmero e DataIni são adicionados à relação “Departamento”, definida no primeiro passo. Note que o atributo FNúmero é adicionado como um atributo não chave na relação “Departamento”.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Mapear conjuntos de relacionamentos binários 1:N
Os conjuntos de relacionamento binário regular (não fraco) 1:N também não são representados como novas relações. 
Primeiro identifica-se o conjunto de entidade que participa da relação com cardinalidade máxima 1 que será chamada de S e o outro conjunto de entidade chamada de T. 
Os atributos do conjunto de relacionamento são acrescentados no conjunto de entidade S, ou seja, o conjunto de entidade com cardinalidade máxima 1. Os atributos chave da relação que mapeia o conjunto de entidade representado por T são também acrescentados no conjunto de entidade S como atributos não chave.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Funcionário = {FNúmero, FNome, Endereço, Salário, SupervNúmero, 
		DNum} 
	 SupervNúmero Referencia Funcionário
	 Dnum Referencia Departamento
Departamento = {DNúmero, Dnome, FNúmero, DataIni} 
Projeto = {PNúmero, Pnome, DNum} 
	 Dnum Referencia Departamento
Dependente = {DependNome, FNúmero, DataNiver, Parentesco} 
Quarto Passo: 
 Neste passo são mapeados: supervisionar, trabalhar e controlar;
 Avaliando o relacionamento supervisionar, nota-se que este relacionamento não possui atributos, logo, apenas o atributo SuperNúmero foi adicionado a relação “Funcionário”, definida no primeiro passo.
 O mesmo acontece com o relacionamento trabalhar; apenas o atributo DNum foi adicionado a relação “Funcionário”
 No relacionamento controlar, que também não possui atributos, foi adicionado o atributo DNro na relação Projeto que já havia sido definida no primeiro passo.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Mapear conjuntos de relacionamentos binários N:N
Para cada relacionamento binário N:N cria-se uma nova relação. 
Os atributos da relação são os atributos do conjunto de relacionamento juntamente com os atributos chave das relações que mapeiam os conjuntos de entidades envolvidos. 
A chave da relação é a concatenação dos atributos chave das relações que mapeiam os conjuntos de entidades envolvidos.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Cria-se uma nova relação:
	Participar = {FNum, PNum, horas}
		FNum Referencia Funcionário
		PNum Referencia Projeto
Apenas um relacionamento muitos para muitos
O relacionamento participar que envolve os conjuntos de entidades “Funcionário” e “Projeto”
Funcionário  Chave: FNum
Projeto  Chave: PNum
Atributos da relação: horas
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Mapear atributos multivalorados
Existem duas maneiras de mapear atributos multivalorados:
A primeira maneira não leva em conta conhecimento adicional sobre o atributo que está sendo mapeado. Para cada atributo multivalorado cria-se uma nova relação que tem como chave os atributos chave da relação a qual pertencia juntamente com o atributo multivalorado tomado como um atributo mono-valorado.
A segunda forma de mapear atributos multivalorados leva em conta o conhecimento adicional
sobre o atributo que está sendo mapeado. Em alguns casos é possível determinar a quantidade de ocorrências de valores nos atributos. Quando isso acontece e essa quantidade é pequena, pode-se instanciar essa quantidade de atributos como mono-valorados na mesma relação que mapeia o conjunto de entidade ou conjunto de relacionamento ao qual o atributo multivalorado está associado.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
 Cria-se uma nova relação:
	LocalDep = {DNúmero, Localização}
		DNúmero Referencia Departamento
	
Usaremos sempre a primeira opção
Opção mais abrangente
Mesmo procedimento de criar uma entidade fraca com relacionamento 1:N
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Funcionário = {FNúmero, FNome, Endereço, Salário, SupervNúmero, 
		DNum} 
	 SupervNúmero Referencia Funcionário
	 Dnum Referencia Departamento
Departamento = {DNúmero, Dnome, FNúmero, DataIni} 
	 FNúmero Referencia Funcionário
Projeto = {PNúmero, Pnome, DNum} 
	 Dnum Referencia Departamento
Dependente = {DependNome, FNúmero, DataNiver, Parentesco} 
	 FNúmero Referencia Funcionário
Participar = {FNum, PNum, horas}
		FNum Referencia Funcionário
		PNum Referencia Projeto
LocalDep = {DNúmero, Localização}
		DNúmero Referencia Departamento
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Relacionamentos Mutuamente Exclusivos
Significa que uma ocorrência da entidade que participa de um dos relacionamentos em questão, não participa de nenhum dos demais relacionamentos.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Relacionamentos Mutuamente Exclusivos
Modelo Conceitual
Modelo Lógico
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Relacionamentos Mutuamente Exclusivos
Modelo Conceitual
Modelo Lógico Alternativo
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Colocando as colunas CIC e CGC separadamente, elas são definidas como opcionais. Inconsistências:
As duas podem ficar vazias
As duas podem ser preenchidas
Criando as duas colunas como uma única CIC/CGC
Deve ser criada a coluna Tipo
Evita-se o uso de colunas opcionais
Problema: não é possível especificar que o campo CIC/CGC é chave estrangeira.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Atributo Multivalorado
Modelo Conceitual
Modelo Lógico Alternativo
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Atributo Multivalorado: PROBLEMAS!!
São raros os clientes que possuem mais que dois telefones. Quando isso ocorrer, é suficiente armazenarmos apenas dois números.
Não há consultas ao banco de dados usando o número de telefone como critério de seleção. Os números de telefone são apenas exibidos ou impressos juntos às demais informações de cliente.
Neste caso, uma implementação “desnormalizada” pode permitir maior performance
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Informações Redundantes:
podem ser obtidas a partir de outras informações existentes no banco de dados e devem ser eliminadas do modelo conceitual.
Por questões de performance, muitas vezes, informações redundantes são reinseridas no esquema.
Caso o valor destes atributos calculados tenha que ser obtido com freqüência, pode ser mais eficiente, do ponto de vista da performance global do sistema, armazenar o atributo derivado redundantemente.
Prof. Victor Ströele (victor.stroele@ice.ufjf.br)
*
Exemplo
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Teste o Premium para desbloquear

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

Continue navegando