técnicas de modelação de dados - wordpress.com · as operações ou métodos são um conceito...
TRANSCRIPT
Técnicas de Modelação de Dados
Diagrama de Classes
Curso Profissional Técnico de Gestão e Programação de Sistemas de Informáticos
Programação e Sistemas de Informação
Módulo 13 – Técnicas de Modelação de Dados
Professora: Sandra Soares
Diagramas de Classes
O diagrama de classes:
• é uma evolução dos diagramas ER;
• apresenta elementos dos diagramas ER com conceitos da POO;
• é constituídos por um conjunto de classes interligadas através derelacionamentos.
Classes
• Uma classe representa uma coleção de elementos, acerca dosquais é necessário guardar informação no sistema.
Classe EntidadeEquivalente
Atributos
• Tal como uma entidade no modelo ER, uma classe é constituídapor atributos.
• Atributo: é uma característica ou propriedade de uma entidadeou classe. Ex.: nome, morada, telefone, etc.
• Todos os atributos têm domínio, que corresponde ao conjunto devalores que esse atributo pode assumir. Ex.: string, data, numérico,etc.
Representação de Classes
Nome da Classe
Zona de atributos
Zona das operações ou métodos
Operações ou métodos
As operações ou métodos são um conceito que deriva da POO.
Na prática da modelação de dados a parte das operações ou métodos é
opcional, porque o que está em causa é modelar as estruturas de dados e
os seus relacionamentos.
Relacionamentos entre classes
À semelhança dos diagramas ER, classificam-se os relacionamento entre
classes nos diagramas de classes quanto ao número de classes envolvidas.
Assim, temos:
• Relacionamentos unários ou reflexivos;
• Relacionamentos binários;
• Relacionamentos ternários ou se ordem superior.
Grau do relacionamento
Nos diagramas de classes, por vezes, tomam-se os dois indicativos daquantidade máxima para dizer (à maneira dos diagramas ER) se orelacionamento é do tipo:
1:1 (um para um),1:M (um para muitos) ouM:N (muitos para muitos)
Notação nos diagramas de classes:
1:1 0..1 --- 1..1 ou 1..1 --- 1..11:M 0..1 --- 0..* ou 1..1 --- 0..*M:N 0..* -- 0..* ou 1..* --- 1..*
Relações representadas por classes associativas
• Este diagrama traduz que um Cliente pode encomendar 0 ou muitos artigos e um artigo pode ser encomendado por 0 ou muitos clientes.
• Mas interessa-nos representar dados relativos à encomenda como a data da encomenda e o valor total.
• Encomenda transforma-se, assim, numa classe (classe associativa).
Relações representadas por classes associativas
• O relacionamento foi transformado numa classe associativa.
Relações representadas por classes associativas
Em casos como este, poderíamos considerar,logo à partida, Encomenda como umaEntidade/Classe. O diagrama 1 representa umaalternativa ao diagrama do diapositivo anterior.
Diagrama 1
Contudo, uma encomenda pode ter mais doque um artigo! O Diagrama 2 representada estasituação!
Diagrama 2
Relações representadas por classes associativas
Há situações em que não faz sentido converter a classe associativa numaclasse.
Consideremos, por exemplo, a parte do SI de uma empresa em análiseque representa os funcionários e os diferentes departamentos em queeles trabalham.
Problema: interessa registar as datas de entrada e de saída de cadafuncionário em relação a cada departamento por onde passa.
Relações representadas por classes associativas
Classe associativa resultante do problema anterior:
Generalizações e especializações
Exemplo de uma generalização (classe Cliente) com duas especializações (Cliente_individual e Cliente_Empresa).
O conceito de herança é aplicado neste caso.
Agregações e composições
Uma outra situação especial que surge nos relacionamentos entre duas classes é aquela em que uma classe corresponde a uma parte de um todo que é a outra classe.
• A estas situações dá-se o nome genérico de agregação, mas distinguem-se dois tipo:
• Agregação fraca/simples ou somente agregação;
• Agregação forte ou composição.
Agregação simples
Numa agregação (simples ou fraca), um objeto de uma classe pertencea um objeto de outra classe, mas este último não tem exclusividade deposse sobre o primeiro.
Exemplo:
Um sistema de uma empresa regista os dados dos seus empregadoscomo: código, Nome, Data_Nasc e Endereço.
Os analistas, verificam que há endereços que são partilhados por mais doque um empregado (caso de pais, filhos, conjugues, etc.).
Endereço pode, então, ser considerado uma classe de agregação, emrelação à classe Empregado.
Agregação forte ou composição
No caso da agregação forte ou composição, temos a situação em que umobjeto de uma classe pertence, com exclusividade, a um objeto de outraclasse.
Consideremos de novo a classe Encomenda!
Analisando detalhadamente:
Uma Encomenda pode conter vários produtos e um produto pode ser encomendado várias vezes!
Nestes casos, é habitual criar-se uma classe de composição, por exemplo, Item_Encomenda, que fica agregada à classe Encomenda.
Neste caso, uma encomenda pode
conter um ou vários itens;
cada item pertence a uma
única encomenda.