Vous êtes sur la page 1sur 56

UML: Diagramas de Classes

Desenho de Bases de Dados Relacionais com UML Fundamentos de Bases de Dados (FBD)
Licenciatura em

Engenharia de Telecomunicaes e Informtica (ETI)


Autoria:

Pedro Ramos, Jos Farinha


Docente:

Jos Farinha

Diagramas de Classes UML


ndice

Conceitos Bsicos Associaes Classes Associativas Agregaes Composies Generalizaes Atributos vs. Associaes N-para-1
2006 / 2007

Associaes n-rias Associaes singulares


(uma classe)

Relaes de Dependncia Roles Navegao Packages

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 2

Objectos
Objecto: Qualquer coisa ou acontecimento do universo que queremos registar e que tem:
Uma identificao
Valor que permite diferenciar o objecto de todos os outros

Um estado
Conjunto de valores que nos do informao acerca das caractersticas do objecto

Comportamento
Conjunto de aces que o objecto sabe realizar

distinto de todos os outros clientes da empresa pois tem o nmero 484848 Tem o nome Jos Silva, morada R. de cima, n contribuinte 8242424, ...
Objecto: Cliente Jos Silva
2006 / 2007

Operaes: encomendar produto, pagar factura, alterar morada, ...


Slide 3

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Objectos
No tm necessariamente que corresponder a entidades com representao fsica Um conceito abstracto (p.ex, um departamento) pode ser um objecto, desde que seja relevante para o domnio em causa.

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 4

Classes
Classe: conjunto de objectos que partilham o mesmo meio de identificao, propriedades de estado, comportamento, relaes e semntica.
Todos distintos uns dos outros Todos tm nome, morada, n contribuinte, ... Todos esto aptos para realizar as mesmas aces: encomendar produto, pagar factura, alterar morada, ... Todos se relacionam com os mesmos tipos de objectos (p.ex, com os produtos que adquirem).
Classe dos clientes
2006 / 2007

Representam a realidades da mesma natureza (tem a mesma semntica)


FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 5

Classe: Representao grfica

Cliente Nr. contribuinte Nome Morada Encomendar produto ( ) Pagar factura ( ) Mudar de morada ( )
Classe dos clientes
2006 / 2007

Nome (nico no domnio) Atributos

Operaes

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 6

Atributos
Um atributo numa classe representa uma caracterstica tpica dos objectos dessa classe Pode assumir qualquer valor, se no houver mais nenhuma especificao relativamente ao atributo Pode especificar-se um tipo de dados para um atributo
Neste caso, os valores que podem ser atribudos ao atributo esto condicionados compatibilidade com o tipo
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Factura Nr. Factura: Integer Data: Date Estado: String

Slide 7

Atributos: obrigatoriedade de preenchimento Em UML, um atributo de preenchimento opcional:


Em cada novo objecto que seja criado, o dito atributo poder ser ou no preenchido.

Em desenho de base de dados importante identificar a obrigatoriedade de preenchimento


Normalmente feito apenas sobre o modelo relacional Se for considerado muito relevante colocar essa informao no diagrama de classes UML, indicar em caixa de comentrio UML
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 8

Atributos: valor por omisso


Em UML pode especificar-se um valor por omisso (default value) para um atributo Mais adequado para aplicar em situaes em que existe um valor inicial
Segurado Nome Morada Tipo = Limpo Requisio Nr. requisio Data Estado = Por aprovar Uma requisio criada por um subordinado e mais tarde aprovada pela chefia Jogo de futebol Data Golos visitado = 0 Golos visitante = 0

Os novos segurados comeam por no ter participaes.

Neste caso, torna-se no necessrio fornecer o nmero de golos quando se cria o jogo.

No muito adequado para modelar o conceito de valor mais frequente


2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 9

Atributos de identificao 11
Ao definir os atributos de uma classe, dever incluirse sempre um (ou mais) atributo(s) que possa(m) funcionar como mecanismo de identificao dos objectos dessa classe. Isto , um (ou mais) atributo(s) para o(s) qual(is):
todos os objectos tm valor; o valor nesse atributo (ou conjunto de atributos) garantidamente no se repete em quaisquer dois objectos.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 10

Atributos de identificao 2 2
Em certas classes, no se conseguem apurar atributos naturais para este efeito. Especificamos um atributo adicional, cujos valores sero artificialmente atribudos a cada objecto, sem causar repeties; Este atributo diz-se um Identificador Interno, Identificador nico ou Identificador de Objecto (OI, Object Identifier) e frequente receber nomes do gnero:
Nmero [de ...] Cdigo [de ...] Id

Por razes de performance, no modelo lgico e/ou fsico da base de dados poder introduzir-se um atributo destes mesmo que exista uma forma de identificao natural na classe Num diagrama de classes UML um atributo deste gnero apenas dever ser indicado se no existir uma forma de identificao natural na classe

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 11

Atributos enumerados
Atributos que apenas podem assumir valores entre um certo conjunto de opes Ex de especificao na prpria classe
Pea de vesturio Cdigo de barras Designao Tamanho: {XL, L, M, S, XS} O tamanho de uma pea de vesturio apenas pode ser preenchida por um dos valores indicados

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 12

Atributos enumerados
Se o conjunto de opes usado em mais que uma classe
...ou mesmo se o conjunto de opes muito extenso, tornando a representao grfica da classe muito larga
Representao grfica:
Enumeration Tamanho de vesturio XL L M S XS

Pode definir-se um tipo de dados enumerado, que pode ser partilhado por vrios atributos
2006 / 2007

Pea de vesturio Cdigo de barras Designao Tamanho: Tamanho de vesturio

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 13

Desusos de UML para desenho de bases de dados relacionais


Para efeitos de desenho de base de dados relacional:
No se especificam as visibilidades pblico/protegido/privado dos atributos: todos se assumem pblicos;
Se pretendssemos desenhar uma base de dados orientada por objectos, tal j seria especificado;
Cliente + + Nome Morada Rua Porta

No se coloca

Relativamente a um atributo, no se faz especificao de multiplicidades superiores a 1, pois:


O modelo relacional no permite que, num registo, um atributo possua mais do que um valor No se pretende obter um modelo puramente orientado por objectos
2006 / 2007

Cliente Nome: String Morada: String Telefone [ 0 .. 3 ]: Int

No se usa
Slide 14

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Desusos de UML em FBD


No se especificam as operaes das classes
Mas poder fazer-se, para especificao de stored procedures ou triggers muito directamente relacionados com determinada classe
Cliente Nome Morada Encomendar_produto ( ) Pagar_factura ( ) Mudar_morada ( )

No se faz em FBD

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 15

Relaes 11
Em qualquer sistema existem objectos que se relacionam entre si.
Sistema universitrio
Objectos: alunos, cursos, exames; os alunos relacionam-se com os cursos que frequentam e com os exames que fazem.

Sistema bancrio
objectos clientes, contas, balces; os clientes relacionam-se com as contas que possuem e as contas com os balces em que esto sediadas.

As ligaes entre objectos relacionados tambm so informao Quando h interesse em conhecer as ligaes entre os objectos do sistema, especificam-se relaes entre as classes desses objectos

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 16

Relaes 2 2
Em UML existem os seguintes tipos de relaes, que expressam diferentes semnticas de interligao entre classes: Associao
Tem dois casos especiais:
Agregao Composio

Generalizao Relao de dependncia


2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 17

Associaes
Uma associao uma relao que permite especificar que objectos de uma dada classe se relacionam com objectos de outra classe, sendo importante saber para cada objecto quais os objectos que lhe esto associados.
Factura Cliente Nr contribuinte Nome 1 0* Nr factura Data Valor ...

Um cliente pode estar associado a vrias facturas ou a nenhuma. Uma factura est sempre associada a um cliente.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 18

Multiplicidade das Associaes


X 0 ... 3 Y

Indica quantos objectos da classe X... ...podem estar ligados a um objecto da classe Y

Algumas hipteses: 0...1 0...* 0...3 zero ou 1 zero ou vrios,


sem limitao de quantidade

1...1 1...* 1...3

um e apenas um
pode representar-se: 1

no mnimo 1 de 1 a 3

de zero a trs

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 19

Multiplicidade das Associaes


... infinitas combinaes possveis que so vulgar designarem-se como:

0 ... 1

0 ... *

Um-para-muitos
...ou Um-para-N

1 ... 1

0 ... 1

Um-para-um

0 ... *

0 ... *

Muitos-para-muitos
...ou M-para-N
Slide 20

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Associao um-para-muitos 11
Semntica
Curso Nome 0 ... 1 0* Aluno Nr aluno Nome

Gesto Informtica Direito Sociologia


2006 / 2007

Joo Ana Lus Joana

Um aluno pode estar associado a (inscrito em) um e apenas um curso A um curso podem-se associar vrios ou nenhum aluno.

Funcional
Dado um aluno possvel determinar em que curso est inscrito, e Dado um curso possvel identificar os seus alunos.
Slide 21

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Associao um-para-muitos 2 2
Semntica
Departamento Nome 1 0* Funcionrio Nr mecanogrfico Nome

Um funcionrio tem necessariamente que estar associado a um departamento No possvel introduzir um funcionrio no sistema sem que seja indicado o departamento a que pertence

Produo Comercial Financeiro Informtica


2006 / 2007

Joo Ana Lus Joana

Funcional
Dado um funcionrio possvel determinar em que departamento ele trabalha, e Dado um departamento possvel identificar os seus funcionrios.
Slide 22

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Associao muitos-para-muitos 3 3
Aluno Nr aluno Nome 0 ... * 0* Disciplina Nome

Um objecto no pode estar duplamente associado a outro objecto (Joana / Marketing).


semelhana das classes (em que os objectos so distintos), as associaes tambm tm que ter ocorrncias distintas. No h nada que distinga as duas ligaes entre Joana e Marketing; O sistema de base de dados dever considerar a 2 ligao como redundante: No interessa registar duas vezes que Joana e Marketing esto ligados Se interessa, ento a associao muitos-para-muitos no representao correcta
Slide 23

Joo Ana Lus Joana

Matemtica Direito Marketing Informtica


A mesma ligao

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Associao um-para-um
Factura Nr factura Data emisso Valor Nr recibo 1 01 Recibo Nr recibo Data pagamento Nr cheque Banco

Apesar de haver uma correspondncia um a um, no se deve especificar apenas uma classe, pois cada classe representa uma realidade
Inclusive, devia haver a classe Cheque. Mais alguma?

a associao que atribui um nmero de recibo factura.


Caso contrrio, uma factura poderia ficar associada a dois nmeros de recibo (o indicado no atributo da factura e o indicado no objecto Recibo ao qual a factura estivesse ligada). O atributo Nr de recibo na classe Factura redundante no deve ser especificado
2006 / 2007

Pelas multiplicidades percebese que uma factura ser necessariamente introduzida antes do respectivo recibo (quanto muito, simultaneamente)

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 24

Nomes de associaes 11
As associaes podem (e devem) ter nomes
Substantivo
Aluno Disciplina

inscrio
0 ... * 0 ... *

Verbo
Indicar sempre o sentido de leitura

Aluno

Disciplina

inscrito em
0 ... * 0 ... *

Indispensvel quando h duas associaes entre as mesmas classes


2006 / 2007

Cliente

0 ... *

titularidade

0 ... *

Conta

autorizao de movimentao 0 ... * 0 ... *


Slide 25

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Nomes de associaes 22
Em UML puro, duas associaes podem ter o mesmo nome desde que sejam entre classes diferentes Algumas ferramentas impem restries mesmo que as associaes sejam entre duas classes diferentes duas associaes no devem ter nome igual
o caso da ferramenta PowerDesigner, usada nos laboratrios: associaes com nomes iguais originam posteriormente duplicao de identificadores na base de dados.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 26

Seminrio

0 ... *

0 ... *

Professor

Inscrio
0 ... * Aluno 0 ... *

Inscrio

Atributo enumerado vs. Associao N-para-1


Problema:
Numa base de dados bancria, pretende-se guardar informao sobre cada conta, incluindo o seu tipo de conta.

Conta Tipo de conta: { ordem, A prazo, CPH, CPA }

Conta tipificao

Tipo de conta Designao

0 ... *

Atributo enumerado: Deve usar-se apenas se, previsivelmente, as opes sero sempre as mesmas

Associao: Deve usar-se se as opes podem mudar e queremos possibilitar que seja o utilizador a gerir essas opes
Se a quantidade de opes pode mudar. Se podem mudar de designao.

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 27

0... vs. 1...


Usar o 1...* quando, de todo, no se quer a informao do lado muitos sem a informao do lado 1. Quando no tem utilidade sem a informao do lado 1. Mesmo que na realidade a multiplicidade seja 1...*.
Exemplo:
Um curso tem pelo menos uma disciplina (portanto, na realidade: 1...*). Mas podemos querer manter informao acerca do curso sem ainda termos indicado as suas disciplinas logo: 0...*

Exemplo:
Uma receita mdica prescreve um ou mais medicamentos. O mdico no deve poder guardar a receita sem ter indicado um dos medicamentos. Sem pelo menos um medicamento, a informao sobre a receita no tem qualquer utilidade logo: 1...*.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 28

Classes associativas
So associaes que se transformam em classes quando :
necessrio colocar atributos na associao:
Encomenda Nr Encomenda Quantidade 0...* 0...* Produto Cdigo Quantidade

Item de encomenda Quantidade 0...* Entrega 1 Local Morada Contacto

necessrio associar uma classe a uma associao

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 29

Classes associativas
As classes associativas so mais frequentemente necessrias nas associaes muitos para muitos. Mas, em casos mais raros, fazem tambm sentido em associaes de outras cardinalidades.
Pessoa Nome Morada Nm. de beneficirio 0...* 0...1 Sistema de sade Nome

Pessoa Nome Morada 0...* 0...1

Sistema de sade Nome

Benefcirio Nm. de beneficirio

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 30

Classe associativa vs. Classe com duas associaes muitos-para-um


Classe associativa
No permite ligar duas vezes os mesmos dois objectos; No exemplo: Pode registar-se apenas umas vez que determinado colaborador participou em determinado projecto;
Projecto

0 ... *

0 ... *

Colaborador

Participao Data de incio Data de fim

Classe com duas associaes


Projecto Colaborador

Permite ligar vrias vezes os mesmos dois objectos; No exemplo: Podem registar-se vrias participaes do mesmo colaborador no mesmo projecto
2006 / 2007

Participao Data de incio Data de fim

1 0...*

0...*

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 31

Agregaes
As Agregaes so associaes que se utilizam quando se pretende representar a noo de Todo/Parte (um todo constitudo por partes).
Automvel Holding Nome 0...1 Empresa 0 * Nome Morada Matrcula Marca Modelo 1 4 Roda N de srie Tipo de pneu Tipo de jante

Volante 1 N de srie Material

Uma holding constituda por empresas. Uma empresa pode estar includa numa holding.

Um automvel inclui 4 rodas e 1 volante, nem mais nem menos.

As agregaes so representadas graficamente por uma linha adornada com losngulo branco no extremo correspondente ao todo.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 32

Composies
As composies so um caso especial de agregaes
Isto , tal como as agregaes, representam situaes em que um objecto de uma classe (composio) inclui um conjunto de objectos de outra classe (componentes)...

...mas tm semntica adicional:

Os componentes apenas existem no contexto do todo.


Factura Nmero Data 1 Linha de factura Produto 0 * Quantidade Preo unitrio

Uma factura uma composio de linhas: - A factura constituda por linhas; - As linhas no existem seno dentro da factura.
2006 / 2007

Graficamente, o losngulo preenchido a cheio quando a associao do tipo composio.

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 33

Composies
O facto de numa composio os objectos componentes apenas existirem no contexto do objecto composto significa:
Quando se remove o objecto composto, todos os seus componentes so automaticamente removidos Os objectos componente incluem no seu mecanismo de identificao o mecanismo de identificao do objecto composto
Uma linha de factura s se pode identificar univocamente se tambm mencionarmos a identificao da factura a que diz respeito Os nome dos departamentos podem repetir-se entre empresas se no juntarmos o nome da empresa no conseguiremos distinguir certos departamentos que possuam idntica designao em empresas distintas

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 34

Composies

Factura n 123 Cliente: Joo Silva Linha Produto 1 2 3 Total Produto A Produto B Produto X

Data: 12/12/1999 N Cont. 1234567 Quant. P. Unit 2 1 3 5000 3000 2000 Total 10000 3000 6000 19000

Factura n 100 Cliente: Ana Silva Linha Produto 1 2 3 Total Produto X Produto B Produto Y

Data: 12/10/1999 N Cont. 1234568 Quant. P. Unit 2 1 3 5000 3000 2000 Total 10000 3000 6000 19000

Linhas de factura diferentes, apesar de possurem os mesmo valores.

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 35

Composies
Problema:
Pretende-se base de dados para stio de Web com servio de reserva de bilhetes para vrios cinemas.
Cinema Nome 1 1* Sala Designao

No conseguimos identificar uma sala de cinema se no dissermos em que cinema est includa No conseguimos identificar uma fila se no dissermos a que sala pertence No conseguimos identificar uma cadeira se no dissermos a que fila pertence
Slide 36

Soluo:

1 1* Fila Cdigo

Reserva Data Hora da sesso Nome da pessoa 1 0* 1 1* Cadeira Nr. de cadeira

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Composies vs. Agregaes


Apesar da obrigatoriedade existir em ambas as associaes seguintes, so situaes com semnticas distintas:
Departamento Designao 1 0* Funcionrio BI Nome Salrio

Significa que um funcionrio que no trabalhe num departamento no relevante para o domnio em causa (se o seu departamento for removido ele ter que ser excludo ou reposicionado em outro departamento). No entanto, o funcionrio existe per si, no necessita de estar associado a um departamento para ser referido/identificado

Factura Nmero Data 1 0*

Linha de factura Produto Quantidade Preo unitrio

A Linha da factura s pode ser referida (distinguida das restantes) se for indicada a factura correspondente.

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 37

A Composio como conceito de identificao


Em desenho de base de dados, designam-se por entidades fracas aquelas entidades que dependem de outras para se identificar A composio a figura que em UML permite representar entidades fracas. Mesmo que no haja semntica de todo-parte, deve usar-se uma composio nas situaes em que haja semntica de entidade fraca.
2006 / 2007

Exemplo:
Pretende-se manter numa base de dados informao acerca de todas as cobranas de portagem nas auto-estradas nacionais. Como identificar cada uma das cobranas?

No h semntica de todoparte. Apenas de entidade fraca: as cobranas identificam-se atravs do dia e hora e da cabine onde ocorreram.
Slide 38

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Generalizao
Generalizao uma relao que permite representar a noo de subdiviso e especificidade em conjuntos de objectos Todos os scios partilham caractersticas comuns
Nome, morada, telefone, valor de quotizao, etc.

Scios

Individuais

Mas h subgrupos com especificidades


Individuais: Idade Organizaes: Nmero de elementos
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Organizaes

Slide 39

Generalizao

Porqu distingui-los?
Porque tm atributos especficos
ex: O CAE (Cdigo de Actividade Econmica) nas Organizaes, a Idade nos Individuais

Porque tm associaes especficas


ex: Mercados onde as Organizaes actuam

Ou apenas porque se quer dar relevo a um subconjunto do domnio


2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 40

Generalizao
O que comum a todos os scios
Scio Nome Morada Telefone Honorrio

O que especfico dos scios individuais

Individual Idade Profisso

Organizao CAE 0...* 1

Mercado Designao

So relaes um-para-um: um scio apenas pode corresponder a uma organizao scios organizao e uma organizao corresponde (obrigatoriamente) a um scio; Um Scio no pode ser simultaneamente Individual e Organizao; Um Scio pode no ser nem Individual nem Organizao; Um Scio pode ser Honorrio e Individual ou Honorrio e Organizao; As subclasses herdam todos os atributos da supraclasse/superclasse.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 41

O que especfico dos

Generalizao vs. associao N-para-1


Conta bancria NIB Saldo

ou
Conta bancria NIB Saldo 0...* 1 Tipo de conta Designao

Conta ordem

C. Poupana Habitao

...

C. Poupana Reforma

?
Se com alguma probabilidade podem surgir novas opes ou as existentes podem necessitar de alteraes Se no h especificidades Se todas as opes tm igual tratamento

Se o conjunto de opes imutvel

Se as diferentes opes tm especificidades (atributos ou associaes prprias) Se algumas opes iro ter um tratamento especial por exemplo, permisses de acesso especiais Se as opes realam conceitos importantes, por exemplo, se transmitem terminologia prpria do domnio aplicacional
2006 / 2007

Se as opes no correspondem a conceitos de grande relevncia no domnio aplicacional


Slide 42

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Associaes N-rias
Problema:
Empresa deseja efectuar divulgao atravs de anncios em vrios meios de comunicao social. Para controlo de custos e pagamentos necessita de registar as divulgaes.
Anncio Ttulo 1 0...* Divulgao Data 0...* Canal de divulgao Nome 1

Soluo 1: Permite a introduo de informao duplicada (mesmo anncio no mesmo canal no mesmo dia)
Soluo 2: Associao
Anncio Ttulo 0...* Dia Data 0...* Divulgao

ternria
Canal de divulgao Nome 0...*

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 43

Associaes N-rias
Anncio Ttulo Dia Data 0...* Divulgao Canal de divulgao Nome 0...* 0...*

No plano dos objectos, uma ligao N-ria envolve sempre N objectos


...um de cada classe argumento:
Dia Dia Dia 1-Out-2005 Anncio X cabea de cartaz Anncio X sabe bem Anncio X a escolha da seleco Canal de divulgao SIC Canal de divulgao Antena 3 7-Set-2005 Dia 8-Jul-2005 Canal de divulgao Expresso

3-Jan-2005

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 44

Multiplicidades em associaes N-rias


Definio de multiplicidades numa relao ternria
Anncio Ttulo Dia Data Canal de divulgao Nome

0...*
N de anncios possvel para um par {um dia, um canal}

0...*
Divulgao

0...*

N de canais possvel para um par {um anncio, um dia}

N de dias possvel para um par {um anncio, um canal}

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 45

Multiplicidade em associaes N-rias


Definio de multiplicidades numa relao ternria
Homem Mulher

0...1
N de homens possvel para um par {uma mulher, uma criana}. Adoptar o Joozinho com a Ana, apenas pode ter sido com um homem. Se o Joozinho no foi adoptado pela Ana, ento h zero homens associados ao par {Ana, Joozinho}. Logo: 0 ou 1 homens.
2006 / 2007

Adopo

0...1

N de mulheres possveis para um par {um homem, uma criana}.

0...*
Criana

N de crianas possveis para um par {um homem, uma mulher}. O Pedro e a ngela, juntos, podem ter 0 (zero) ou vrias crianas adoptadas. Ateno que no o n de crianas envolvidas numa adopo!
FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 46

Associaes N-rias vs. (N-1) associaes binrias Exemplos:


Inscrio: Aluno-disciplina-ano lectivo Docncia: Docente-disciplina-ano lectivo Adopo: Casal-criana Atribuio de scar: scar-Filme-Ano Reserva: Pessoa-Cadeira-Sesso-Dia Vendas

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 47

Associaes n-rias: notao alternativa


Ilustrar a notao losangular utilizada por vrias ferramentas (por exemplo: Visio).

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 48

Associaes reflexivas
Tambm chamadas associaes singulares

Funcionrio chefe 0...1

Um funcionrio pode ter 0 ou 1 chefe

subordinado 0...* Chefia

Um funcionrio pode ter 0 ou vrios funcionrios como subordinados

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 49

Associaes reflexivas
Problema:
Agncia de viagens pretende registar reservas de voo.
Soluo 1:
Aeroporto Nome

A uma reserva precisamos de poder associar vrios pares origem-destino Soluo 2:


Aeroporto Nome destino 0...* origem Ligao area

origem

0...*

0...*

Reserva Data Hora 0...*

destino

0...*

trajecto
0...* Reserva

No permite registar ligaes (areas) nem escalas.


Perguntas extra:

Data

Permite voos Lisboa-Lisboa? Onde dever ficar o atributo Hora?


2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 50

Relaes de dependncia
As relaes de dependncia permitem evidenciar dependncias que no tm expresso como relaes estruturais. Existe uma relao de dependncia quando uma alterao na especificao de uma classe origina uma alterao na especificao de outra classe.
Surgem quando alguma aco sobre os objectos de uma classe (a classe dependente) envolve a utilizao de objectos de outra S se especificam se no existir uma relao j definida entre essas duas classes esta, existindo, j d indicao de dependncia entre as classes
dependncia Disciplina Nome ... Inscrio 0...* 0...* Aluno Nome ... Folha de receitas Data

(classe dependente)

(classe de que dependente)

A inscrio de um aluno numa disciplina origina uma entrada de receitas a classe Aluno depende da classe Folha de receitas. No interessa manter registo das ligaes entre alunos e folhas de receitas no se especifica uma associao
Slide 51

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Constraint: subset
Usado para expressar que as ligaes estabelecidas no contexto de uma dada associao so um subconjunto das estabelecidas no contexto de outra associao

0...1 Clube Nome ...

plantel

0*

Jogador Nr de camisola ...

{ subset }
0...1 capito 0...1

O capito de uma equipa (de um clube) um dos elementos que figura no seu plantel. Este esquema indica que a base de dados no dever deixar apontar como capito de uma equipa um jogador que no faa tambm parte do seu plantel.

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 52

Constraint: xor
Usa-se quando duas associaes so exclusivas relativamente classe que tm em comum i. , cada objecto desta classe s pode estar associada a outro objecto por via de uma destas associaes, nunca por via das duas associaes simultaneamente; L-se: gzr.
Automvel Matrcula Marca Modelo 1 4 Roda

Caixa automtica 1

Um automvel ou tem mudanas automticas ou manuais. (Considere-se que aqueles carros que possibilitam a transio entre mudanas automticas e manuais possuem uma caixa automtica, a qual tambm possibilita uma conduo manual).
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

{xor}
Caixa manual 1

Slide 53

Constraint: redefines
Produto Cdigo Nome Preo Dimenses ... 1* 0* 0* Carro de compras

O domnio de aplicao um stio de vendas on-line. Os visitantes do stio colocam produtos no seu carro de compras. As encomendas so carros de compras que foram aprovados para compra (o cliente deu ordem de compra). Necessariamente, ao passar a encomenda, um carro de compras tem que ter pelo menos um produto notar o 1...* na associao de baixo

{redefines}
0* Encomenda

Homem

01 namorado

Namoro

01 namorada

Mulher

{redefines}
Homem casado 01 marido Casamento 01 esposa Mulher casada

O conceito representado por uma relao homemmulher muda quando estes passam a ser pessoas casadas. Uma ligao de casamento substitui sempre uma ligao de namoro. Pergunta: Porque que a cardinalidade da associao Casamento 0...1 e no 1...1?
Slide 54

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Constraint: ordered
Usa-se quando se pretende expressar que a base de dados deve manter uma ordenao quanto s ligaes estabelecidas para cada objecto
0...1 Clube Nome ... plantel 0* Jogador Nr de camisola ...

0...1

0... 3 capito

{ ordered }

Um clube pode ter at 3 jogadores designados para capites de equipa.

Um o 1 capito e este quem habitualmente desempenha a funo de chefia de equipa em campo. O 2 capito s desempenha esta funo se o 1 estiver ausente. O mesmo se passa entre o 3 e 2 capito. importante registar a ordem pela qual os 3 capites de uma equipa (clube) esto designados, pois o 1 capito quem desempenha.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos Slide 55

Outras notaes grficas comuns em modelao de dados Mostrar aqui que muitos dos conceitos apresentados existem em outros formalismos, sendo frequente encontrar estes mesmos conceitos representados de outras formas, nomeadamente:
Notao Crows foot Notao Chen-ERD (E-R original)

2006 / 2007

FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos

Slide 56