SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
UML: Diagramas de Classes
Desenho de Bases de Dados Relacionais com UML
UML: Diagramas de Classes
Desenho de Bases de Dados Relacionais com UML
Fundamentos de Bases de Dados
(FBD)
Licenciatura em
Engenharia de Telecomunicações e Informática (ETI)
Autoria:
Pedro Ramos, José Farinha
Docente:
José Farinha
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 2
Diagramas de Classes UML
Índice
Diagramas de Classes UML
Índice
 Conceitos Básicos
 Associações
 Classes Associativas
 Agregações
 Composições
 Generalizações
 Atributos vs. Associações
N-para-1
 Associações n-árias
 Associações singulares
(uma classe)
 Relações de Dependência
 Roles
 Navegação
 Packages
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 3
Objectos
Objectos
 Objecto: Qualquer coisa ou acontecimento do universo que queremos
registar e que tem:
– Uma identificação
• Valor que permite diferenciar o objecto de todos os outros
– Um estado
• Conjunto de valores que nos dão informação acerca das características do objecto
– Comportamento
• Conjunto de acções que o objecto sabe realizar
 É distinto de todos os outros clientes da
empresa pois tem o número 484848
 Tem o nome “José Silva”, morada “R. de
cima…”, nº contribuinte “8242424”, ...
 Operações: encomendar produto, pagar
factura, alterar morada, ...
Objecto: Cliente José Silva
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 4
Objectos
Objectos
 Não têm necessariamente que corresponder a
entidades com representação física
 Um conceito abstracto (p.ex, um departamento)
pode ser um objecto, desde que seja relevante para
o domínio em causa.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 5
Classes
Classes
Classe: conjunto de objectos que partilham o mesmo
meio de identificação, propriedades de estado,
comportamento, relações e semântica.
 Todos distintos uns dos outros
 Todos têm nome, morada, nº contribuinte, ...
 Todos estão aptos para realizar as mesmas acções:
encomendar produto, pagar factura, alterar morada, ...
 Todos se relacionam com os mesmos tipos de
objectos (p.ex, com os produtos que adquirem).
 Representam a realidades da mesma natureza (tem a
mesma semântica)
Classe dos clientes
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 6
Classe: Representação gráfica
Classe: Representação gráfica
Cliente
Nr. contribuinte
Nome
Morada
Encomendar produto ( )
Pagar factura ( )
Mudar de morada ( )
Nome (único no domínio)
Atributos
Operações
Classe dos clientes
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 7
Atributos
Atributos
 Um atributo numa classe representa uma
característica típica dos objectos dessa classe
 Pode assumir qualquer valor, se não houver mais
nenhuma especificação relativamente ao atributo
Factura
Nr. Factura: Integer
Data: Date
Estado: String
 Pode especificar-se um tipo de
dados para um atributo
– Neste caso, os valores que podem
ser atribuídos ao atributo estão
condicionados à compatibilidade
com o tipo
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 8
Atributos: obrigatoriedade de preenchimento
Atributos: obrigatoriedade de preenchimento
 Em UML, um atributo é de preenchimento opcional:
– Em cada novo objecto que seja criado, o dito atributo
poderá ser ou não 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
informação no diagrama de classes UML, indicar em
caixa de comentário UML
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 9
Atributos: valor por omissão
Atributos: valor por omissão
 Em UML pode especificar-se um valor por omissão (default value)
para um atributo
 Mais adequado para aplicar em situações em que existe um valor
inicial
Os novos segurados começam
por não ter participações.
Segurado
Nome
Morada
Tipo = “Limpo”
 Não é muito adequado para modelar o conceito de valor mais
frequente
Uma requisição é criada por um
subordinado e mais tarde aprovada
pela chefia
Requisição
Nr. requisição
Data
Estado = “Por aprovar”
Neste caso, torna-se não
necessário fornecer o número de
golos quando se cria o jogo.
Jogo de futebol
Data
Golos visitado = 0
Golos visitante = 0
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 10
Atributos de identificação 1
Atributos de identificação 1
 Ao definir os atributos de uma classe, deverá incluir-
se sempre um (ou mais) atributo(s) que possa(m)
funcionar como mecanismo de identificação dos
objectos dessa classe.
 Isto é, um (ou mais) atributo(s) para o(s) qual(is):
– todos os objectos têm valor;
– o valor nesse atributo (ou conjunto de atributos)
garantidamente não se repete em quaisquer dois
objectos.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 11
Atributos de identificação 2
Atributos de identificação 2
 Em certas classes, não se conseguem apurar atributos naturais para este efeito.
 Especificamos um atributo adicional, cujos valores serão “artificialmente” atribuídos a
cada objecto, sem causar repetições;
 Este atributo diz-se um Identificador Interno, Identificador Único ou Identificador
de Objecto (OI, Object Identifier) e é frequente receber nomes do género:
Número [de ...]
Código [de ...]
Id
 Por razões de performance, no modelo lógico e/ou físico da base de dados poderá
introduzir-se um atributo destes mesmo que exista uma forma de identificação
natural na classe
 Num diagrama de classes UML um atributo deste género apenas deverá ser
indicado se não existir uma forma de identificação natural na classe
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 12
Atributos enumerados
Atributos enumerados
 Atributos que apenas podem assumir valores entre
um certo conjunto de opções
 Exº de especificação na própria classe
O tamanho de uma peça de vestuário apenas pode ser
preenchida por um dos valores indicados
Peça de vestuário
Código de barras
Designação
Tamanho: {“XL”, “L”, “M”, “S”, “XS”}
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 13
Atributos enumerados
Atributos enumerados
 Se o conjunto de opções é
usado em mais que uma
classe
...ou mesmo se o conjunto
de opções é muito
extenso, tornando a
representação gráfica da
classe muito larga
 Pode definir-se um tipo de
dados enumerado, que
pode ser partilhado por
vários atributos
Representação gráfica:
Peça de vestuário
Código de barras
Designação
Tamanho: Tamanho de vestuário
«Enumeration»
Tamanho de vestuário
XL
L
M
S
XS
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 14
Desusos de UML para desenho de bases de
dados relacionais
Desusos de UML para desenho de bases de
dados relacionais
Para efeitos de desenho de base de
dados relacional:
– Não se especificam as visibilidades –
público/protegido/privado – dos atributos:
todos se assumem públicos;
Se pretendêssemos desenhar uma base de
dados orientada por objectos, tal já seria
especificado;
– Relativamente a um atributo, não se faz
especificação de multiplicidades
superiores a 1, pois:
• O modelo relacional não permite que, num
registo, um atributo possua mais do que um
valor
• Não se pretende obter um modelo puramente
orientado por objectos
Cliente
Nome: String
Morada: String
Telefone [ 0 .. 3 ]: Int
Cliente
+ Nome
+ Morada
- Rua
- Porta
Não se coloca
Não se usa
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 15
Desusos de UML em FBD
Desusos de UML em FBD
Não se especificam as operações das classes
Mas poderá fazer-se, para especificação de stored procedures ou
triggers muito directamente relacionados com determinada classe
Cliente
Nome
Morada
Encomendar_produto ( )
Pagar_factura ( )
Mudar_morada ( )
Não se faz em FBD
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 16
Relações 1
Relações 1
 Em qualquer sistema existem objectos que se relacionam entre si.
– Sistema universitário
• Objectos: alunos, cursos, exames;
• os alunos relacionam-se com os cursos que frequentam e com os exames que
fazem.
– Sistema bancário
• objectos – clientes, contas, balcões;
• os clientes relacionam-se com as contas que possuem e as contas com os balcões
em que estão sediadas.
 As ligações entre objectos relacionados também são informação
Quando há interesse em conhecer as ligações entre os objectos
do sistema, especificam-se relações entre as classes desses
objectos
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 17
Relações 2
Relações 2
 Em UML existem os seguintes tipos de relações, que
expressam diferentes semânticas de interligação
entre classes:
– Associação
Tem dois casos especiais:
– Agregação
– Composição
– Generalização
– Relação de dependência
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 18
Associações
Associações
Uma associação é uma relação 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 estão
associados.
Um cliente pode estar associado a várias facturas ou a nenhuma.
Uma factura está sempre associada a um cliente.
Cliente
Nr contribuinte
Nome
1 0…*
Factura
Nr factura
Data
Valor
...
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 19
Multiplicidade das Associações
Multiplicidade das Associações
X
0 ... 3
Y
...podem estar ligados a um objecto da classe Y
Indica quantos objectos da classe X...
Algumas hipóteses:
1...3  de 1 a 3
0...3  de zero a três
1...*  no mínimo 1
0...*  zero ou vários,
sem limitação de quantidade
1...1  um e apenas um
pode representar-se: 1
0...1  zero ou 1
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 20
Multiplicidade das Associações
Multiplicidade das Associações
... infinitas combinações possíveis que são vulgar designarem-se como:
 Um-para-muitos
...ou Um-para-N
 Um-para-um
 Muitos-para-muitos
...ou M-para-N
X
0 ... 1
Y
0 ... *
X
1 ... 1
Y
0 ... 1
X
0 ... *
Y
0 ... *
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 21
Associação um-para-muitos 1
Associação um-para-muitos 1
 Semântica
– Um aluno pode estar
associado a (inscrito em)
um e apenas um curso
– A um curso podem-se
associar vários ou nenhum
aluno.
 Funcional
– Dado um aluno é possível
determinar em que curso
está inscrito, e
– Dado um curso é possível
identificar os seus alunos.
João
Ana
Joana
Luís
Gestão
Informática
Direito
Sociologia
Curso
Nome 0 ... 1 0 … *
Aluno
Nr aluno
Nome
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 22
Associação um-para-muitos 2
Associação um-para-muitos 2
 Semântica
– Um funcionário tem
necessariamente que estar
associado a um departamento
Não é possível introduzir um
funcionário no sistema sem que
seja indicado o departamento a
que pertence
 Funcional
– Dado um funcionário é possível
determinar em que
departamento ele trabalha, e
– Dado um departamento é
possível identificar os seus
funcionários.
João
Ana
Joana
Luís
Produção
Comercial
Financeiro
Informática
Departamento
Nome 1 0 … *
Funcionário
Nr mecanográfico
Nome
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 23
Associação muitos-para-muitos 3
Associação muitos-para-muitos 3
Um objecto não pode estar
duplamente associado a outro
objecto (Joana / Marketing).
À semelhança das classes (em que
os objectos são distintos), as
associações também têm que ter
ocorrências distintas.
–Não há nada que distinga as duas
ligações entre Joana e Marketing;
–O sistema de base de dados deverá
considerar a 2ª ligação como
redundante: Não interessa registar
duas vezes que Joana e Marketing
estão ligados
–Se interessa, então a associação
muitos-para-muitos não é
representação correcta
Aluno
Nr aluno
Nome
0 ... * 0 … *
Disciplina
Nome
João
Ana
Joana
Luís
Matemática
Direito
Marketing
Informática
A mesma ligação
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 24
Associação um-para-um
Associação um-para-um
 É a associação que atribui um
número de recibo à factura.
– Caso contrário, uma factura
poderia ficar associada a dois
números 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 – não deve
ser especificado
 Apesar de haver uma
correspondência um a um, não
se deve especificar apenas
uma classe, pois cada classe
representa uma realidade
– Inclusive, devia haver a classe
Cheque.
– Mais alguma?
 Pelas multiplicidades percebe-
se que uma factura será
necessariamente introduzida
antes do respectivo recibo
(quanto muito,
simultaneamente)
1 0…1
Recibo
Nr recibo
Data pagamento
Nr cheque
Banco
Factura
Nr factura
Data emissão
Valor
Nr recibo
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 25
Nomes de associações 1
Nomes de associações 1
 As associações podem (e devem) ter nomes
– Substantivo
– Verbo
Indicar sempre o
sentido de leitura
Aluno
0 ... *
Disciplina
0 ... *
inscrição
Cliente
0 ... *
Conta
0 ... *
autorização de movimentação
titularidade
0 ... * 0 ... *
Aluno
0 ... *
Disciplina
0 ... *
inscrito em
 Indispensável quando há
duas associações entre as
mesmas classes
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 26
Nomes de associações 2
Nomes de associações 2
 Em UML puro, duas
associações podem ter o
mesmo nome desde que sejam
entre classes diferentes
 Algumas ferramentas impõem
restrições mesmo que as
associações sejam entre duas
classes diferentes ⇒ duas
associações não devem ter
nome igual
– É o caso da ferramenta
PowerDesigner, usada nos
laboratórios: associações com
nomes iguais originam
posteriormente duplicação de
identificadores na base de
dados.
Seminário
0 ... *
Professor
0 ... *
Aluno
0 ... *
Inscrição
Inscrição
0 ... *
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 27
Atributo enumerado vs. Associação N-para-1
Atributo enumerado vs. Associação N-para-1
Associação: Deve usar-se se as opções podem
mudar e queremos possibilitar que seja o
utilizador a gerir essas opções
– Se a quantidade de opções pode mudar.
– Se podem mudar de designação.
Conta
0 ... *
Tipo de conta
Designação
1
tipificação
Conta
Tipo de conta: { À ordem, A prazo, CPH, CPA }
Atributo enumerado: Deve usar-se
apenas se, previsivelmente, as
opções serão sempre as mesmas
 Problema:
Numa base de dados bancária, pretende-se guardar informação sobre cada
conta, incluindo o seu tipo de conta.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 28
0... vs. 1...
0... vs. 1...
 Usar o 1...* quando, de todo, não se quer a informação do
lado muitos sem a informação do lado 1. Quando não tem
utilidade sem a informação 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 informação acerca do curso sem ainda
termos indicado as suas disciplinas – logo: 0...*
– Exemplo:
• Uma receita médica prescreve um ou mais medicamentos.
• O médico não deve poder guardar a receita sem ter indicado um dos
medicamentos.
• Sem pelo menos um medicamento, a informação sobre a receita não tem
qualquer utilidade – logo: 1...*.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 29
Classes associativas
Classes associativas
São associações que se
“transformam” em classes…
… quando :
– É necessário colocar atributos
na associação:
– É necessário associar uma
classe a uma associação
1
Local
Morada
Contacto
0...*
Entrega
Encomenda
Nr Encomenda
Quantidade
Produto
Código
Quantidade
0...* 0...*
Item de encomenda
Quantidade
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 30
Classes associativas
Classes associativas
 As classes associativas
são mais frequentemente
necessárias nas
associações muitos para
muitos.
 Mas, em casos mais raros,
fazem também sentido em
associações de outras
cardinalidades.
Pessoa
Nome
Morada
Sistema de saúde
Nome
0...*
Benefíciário
Núm. de beneficiário
0...1
Pessoa
Nome
Morada
Núm. de beneficiário
Sistema de saúde
Nome
0...* 0...1
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 31
Classe associativa vs.
Classe com duas associações muitos-para-um
Classe associativa vs.
Classe com duas associações muitos-para-um
 Classe associativa
– Não 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 ... *
Colaborador
0 ... *
Participação
Data de início
Data de fim
Projecto
0...*
Colaborador
0...*
Participação
Data de início
Data de fim
1 1
 Classe com duas associações
– Permite ligar várias vezes os
mesmos dois objectos;
– No exemplo: Podem registar-se
várias participações do mesmo
colaborador no mesmo projecto
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 32
Agregações
Agregações
 As Agregações são associações que se utilizam quando se
pretende representar a noção de Todo/Parte (um todo
constituído por partes).
Uma holding é constituída por empresas.
Uma empresa pode estar incluída numa holding.
Holding
Nome 0...1 0 … *
Empresa
Nome
Morada
Um automóvel inclui 4 rodas e 1 volante,
nem mais nem menos.
Automóvel
Matrícula
Marca
Modelo
1 4
1
Volante
Nº de série
Material
Roda
Nº de série
Tipo de pneu
Tipo de jante
 As agregações são representadas graficamente por uma linha
adornada com losângulo branco no extremo correspondente ao todo.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 33
Composições
Composições
As composições são um caso especial de agregações
Isto é, tal como as agregações, representam situações em que um objecto de uma
classe (composição) inclui um conjunto de objectos de outra classe (componentes)...
...mas têm semântica adicional:
Os componentes apenas existem no contexto do todo.
Uma factura é uma composição de linhas:
- A factura é constituída por linhas;
- As linhas não existem senão dentro da factura.
Factura
Número
Data
1 0 … *
Linha de factura
Produto
Quantidade
Preço unitário
Graficamente, o losângulo é
preenchido a cheio quando a
associação é do tipo
composição.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 34
Composições
Composições
O facto de numa composição os objectos componentes apenas
existirem no contexto do objecto composto significa:
– Quando se remove o objecto composto, todos os seus componentes
são automaticamente removidos
– Os objectos componente incluem no seu mecanismo de identificação
o mecanismo de identificação do objecto composto
• Uma linha de factura só se pode identificar univocamente se também
mencionarmos a identificação da factura a que diz respeito
• Os nome dos departamentos podem repetir-se entre empresas – se não
juntarmos o nome da empresa não conseguiremos distinguir certos
departamentos que possuam idêntica designação em empresas distintas
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 35
Composições
Composições
Factura nº 123 Data: 12/12/1999
Cliente: João Silva Nº Cont. 1234567
Linha Produto Quant. P. Unit Total
1 Produto A 2 5000 € 10000 €
2 Produto B 1 3000 € 3000 €
3 Produto X 3 2000 € 6000 €
Total 19000 €
Factura nº 100 Data: 12/10/1999
Cliente: Ana Silva Nº Cont. 1234568
Linha Produto Quant. P. Unit Total
1 Produto X 2 5000 € 10000 €
2 Produto B 1 3000 € 3000 €
3 Produto Y 3 2000 € 6000 €
Total 19000 €
Linhas de factura diferentes, apesar de
possuírem os mesmo valores.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 36
Composições
Composições
 Problema:
Pretende-se base de
dados para sítio de Web
com serviço de reserva de
bilhetes para vários
cinemas.
 Solução:
Não conseguimos identificar uma
sala de cinema se não dissermos
em que cinema está incluída
Reserva
Data
Hora da sessão
Nome da pessoa
1 0 … *
Cadeira
Nr. de cadeira
1
1…*
Fila
Código
1
1…*
Sala
Designação
1
1…*
Cinema
Nome
Não conseguimos identificar
uma fila se não dissermos a que
sala pertence
Não conseguimos identificar
uma cadeira se não dissermos
a que fila pertence



2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 37
Composições vs. Agregações
Composições vs. Agregações
 Apesar da obrigatoriedade existir em ambas as associações
seguintes, são situações com semânticas distintas:
• Significa que um funcionário que não trabalhe num
departamento não é relevante para o domínio em causa
(se o seu departamento for removido ele terá que ser
excluído ou reposicionado em outro departamento).
• No entanto, o funcionário existe per si, não necessita
de estar associado a um departamento para ser
referido/identificado
Departamento
Designação
1 0…*
Funcionário
BI
Nome
Salário
A Linha da factura só pode ser referida (distinguida das
restantes) se for indicada a factura correspondente.
Factura
Número
Data
1 0…*
Linha de factura
Produto
Quantidade
Preço unitário
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 38
A Composição como conceito de identificação
A Composição como conceito de identificação
 Em desenho de base de
dados, designam-se por
entidades fracas aquelas
entidades que dependem de
outras para se identificar
 A composição é a figura que
em UML permite representar
entidades fracas.
 Mesmo que não haja
semântica de todo-parte, deve
usar-se uma composição nas
situações em que haja
semântica de entidade fraca.
 Exemplo:
Pretende-se manter numa base de
dados informação acerca de todas
as cobranças de portagem nas
auto-estradas nacionais.
Como identificar cada uma das
cobranças?
Não há semântica de todo-
parte.
Apenas de entidade fraca: as
cobranças identificam-se
através do dia e hora e da
cabine onde ocorreram.
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 39
Generalização
Generalização
 Generalização é uma relação
que permite representar a
noção de subdivisão e
especificidade em conjuntos de
objectos
 Todos os sócios partilham
características comuns
– Nome, morada, telefone, valor
de quotização, etc.
 Mas há subgrupos com
especificidades
– Individuais: Idade
– Organizações: Número de
elementos
Sócios
Organizações
Individuais
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 40
Generalização
Generalização
Porquê distingui-los?
 Porque têm atributos específicos
exº: O CAE (Código de Actividade Económica) nas Organizações, a Idade nos Individuais
 Porque têm associações específicas
exº: Mercados onde as Organizações actuam
 Ou apenas porque se quer dar relevo a um subconjunto do domínio
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 41
Generalização
Generalização
 São relações um-para-um: um sócio apenas pode corresponder a uma organização
e uma organização corresponde (obrigatoriamente) a um sócio;
 Um Sócio não pode ser simultaneamente Individual e Organização;
 Um Sócio pode não ser nem Individual nem Organização;
 Um Sócio pode ser Honorário e Individual ou Honorário e Organização;
 As subclasses herdam todos os atributos da supraclasse/superclasse.
Sócio
Nome
Morada
Telefone
Individual
Idade
Profissão
Organização
CAE
Honorário
Mercado
Designação
0...* 1
O que é
comum a
todos os
sócios
O que é
específico
dos sócios
individuais
O que é específico dos
sócios organização
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 42
Generalização vs. associação N-para-1
Generalização vs. associação N-para-1
 Se o conjunto de opções é imutável
Conta bancária
NIB
Saldo
Tipo de conta
Designação
0...* 1
ou
?
Conta bancária
NIB
Saldo
C. Poupança
Reforma
...
C. Poupança
Habitação
Conta à
ordem
 Se com alguma probabilidade podem surgir novas
opções ou as existentes podem necessitar de
alterações
 Se as diferentes opções têm especificidades
(atributos ou associações próprias)
 Se não há especificidades
 Se algumas opções irão ter um tratamento especial –
por exemplo, permissões de acesso especiais
 Se todas as opções têm igual tratamento
 Se as opções realçam conceitos importantes, por
exemplo, se transmitem terminologia própria do
domínio aplicacional
 Se as opções não correspondem a conceitos de
grande relevância no domínio aplicacional
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 43
Associações N-árias
Associações N-árias
Problema:
Empresa deseja efectuar
divulgação através de
anúncios em vários
meios de comunicação
social. Para controlo de
custos e pagamentos
necessita de registar as
divulgações.
 Solução 1: Permite a introdução de informação
duplicada (mesmo anúncio no mesmo canal no
mesmo dia)
 Solução 2: Associação ternária








Anúncio
Título
Canal de divulgação
Nome
1
1
0...*
Divulgação
Data 0...*
0...* 0...*
Dia
Data
Divulgação
0...*
Anúncio
Título
Canal de divulgação
Nome
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 44
Associações N-árias
Associações N-árias
 No plano dos objectos, uma ligação N-ária envolve sempre N objectos
...um de cada classe argumento:
0...* 0...*
Dia
Data
Divulgação
0...*
Anúncio
Título
Canal de divulgação
Nome
3-Jan-2005
Dia
“X é cabeça de cartaz”
Anúncio
SIC
Canal de divulgação
“X sabe bem”
Anúncio
“X é a escolha da selecção”
Anúncio
8-Jul-2005
Dia
7-Set-2005
Dia
1-Out-2005
Dia
Expresso
Canal de divulgação
Antena 3
Canal de divulgação
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 45
Multiplicidades em associações N-árias
Multiplicidades em associações N-árias
 Definição de multiplicidades numa relação ternária
0...* 0...*
Dia
Data
Divulgação
0...*
Anúncio
Título
Canal de divulgação
Nome
Nº de anúncios possível para
um par {um dia, um canal} Nº de dias possível para um
par {um anúncio, um canal}
Nº de canais possível
para um par {um
anúncio, um dia}
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 46
Multiplicidade em associações N-árias
Multiplicidade em associações N-árias
 Definição de multiplicidades numa relação ternária
0...1
Adopção
Homem
Nº de homens possível para um
par {uma mulher, uma criança}.
Adoptar o Joãozinho com a
Ana, apenas pode ter sido com
um homem. Se o Joãozinho
não foi adoptado pela Ana,
então há zero homens
associados ao par {Ana,
Joãozinho}. Logo: 0 ou 1
homens.
Nº de mulheres possíveis para um
par {um homem, uma criança}.
Criança
Mulher
0...*
Nº de crianças possíveis para um par
{um homem, uma mulher}.
O Pedro e a Ângela, juntos, podem ter
0 (zero) ou várias crianças adoptadas.
0...1
Atenção que não é o nº de crianças
envolvidas numa adopção!
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 47
Associações N-árias vs. (N-1) associações
binárias
Associações N-árias vs. (N-1) associações
binárias
 Exemplos:
– Inscrição: Aluno-disciplina-ano lectivo
– Docência: Docente-disciplina-ano lectivo
– Adopção: Casal-criança
– Atribuição de óscar: Óscar-Filme-Ano
– Reserva: Pessoa-Cadeira-Sessão-Dia
– Vendas
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 48
Associações n-árias: notação alternativa
Associações n-árias: notação alternativa
 Ilustrar a notação losangular utilizada por várias
ferramentas (por exemplo: Visio).
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 49
Associações reflexivas
Associações reflexivas
 Também chamadas associações singulares
Funcionário
0...*
0...1
Chefia
chefe
subordinado
Um funcionário pode ter 0 ou vários
funcionários como subordinados
Um funcionário pode ter 0 ou 1 chefe
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 50
 Solução 1:
Não permite registar ligações
(aéreas) nem escalas.
 A uma reserva precisamos de poder
associar vários pares origem-destino
 Solução 2:
Associações reflexivas
Associações reflexivas
Problema:
Agência de viagens pretende
registar reservas de voo.
origem
1 0...*
destino
1 0...*
Aeroporto
Nome
0...*
0...*
destino
origem
Ligação aérea
Reserva
Data
trajecto
0...*
0...*




Aeroporto
Nome
Reserva
Data
Hora




Perguntas extra:
 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 51
Relações de dependência
Relações de dependência
 As relações de dependência permitem evidenciar dependências que
não têm expressão como relações estruturais.
 Existe uma relação de dependência quando uma alteração na
especificação de uma classe origina uma alteração na especificação
de outra classe.
– Surgem quando alguma acção sobre os objectos de uma classe (a classe
dependente) envolve a utilização de objectos de outra
– Só se especificam se não existir uma relação já definida entre essas duas
classes – esta, existindo, já dá indicação de dependência entre as classes
• A inscrição de um aluno numa disciplina
origina uma entrada de receitas – a classe
Aluno depende da classe Folha de
receitas.
• Não interessa manter registo das
ligações entre alunos e folhas de receitas –
não se especifica uma associação
Disciplina
Nome
...
0...* 0...*
Inscrição
dependência
Aluno
Nome
...
Folha de receitas
Data
(classe dependente)
(classe de que é
dependente)
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 52
Constraint: subset
Constraint: subset
 Usado para expressar que as ligações estabelecidas no
contexto de uma dada associação são um subconjunto das
estabelecidas no contexto de outra associação
O capitão de uma equipa (de um clube) é um dos elementos que figura no
seu plantel.
Este esquema indica que a base de dados não deverá deixar apontar como
capitão de uma equipa um jogador que não faça também parte do seu
plantel.
0...1 0…*
plantel
Clube
Nome
...
Jogador
Nr de camisola
...
capitão
0...1 0...1
{ subset }
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 53
Constraint: xor
Constraint: xor
 Usa-se quando duas associações são exclusivas relativamente à classe que têm em
comum – i. é, cada objecto desta classe só pode estar associada a outro objecto por
via de uma destas associações, nunca por via das duas associações
simultaneamente;
 Lê-se: “égzór”.
Um automóvel ou tem mudanças
automáticas ou manuais.
(Considere-se que aqueles carros
que possibilitam a transição entre
mudanças automáticas e manuais
possuem uma caixa automática, a
qual também possibilita uma
condução manual).
Automóvel
Matrícula
Marca
Modelo
1 4
1
Caixa manual
1
{xor}
Caixa automática
Roda
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 54
Constraint: redefines
Constraint: redefines
O domínio de aplicação é um sítio de vendas on-line.
• Os visitantes do sítio colocam produtos no seu carro de
compras.
• As encomendas são 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 associação de baixo
Produto
Código
Nome
Preço
Dimensões
...
Carro de compras
Encomenda
0 … * 0 … *
0 … *
1 … *
{redefines}
O conceito representado por uma relação homem-
mulher muda quando estes passam a ser pessoas
casadas.
Uma ligação de casamento substitui sempre uma
ligação de namoro.
• Pergunta: Porque é que a cardinalidade da
associação Casamento é 0...1 e não 1...1?
Homem Mulher
Mulher casada
0…1 0…1
{redefines}
Homem casado
Namoro
0…1 0…1
Casamento
namorado namorada
marido esposa
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 55
Constraint: ordered
Constraint: ordered
 Usa-se quando se pretende expressar que a base de dados
deve manter uma ordenação quanto às ligações
estabelecidas para cada objecto
• Um clube pode ter até 3 jogadores designados para capitães de equipa.
• Um é o 1º capitão e é este quem habitualmente desempenha a função
de chefia de equipa em campo. O 2º capitão só desempenha esta função se
o 1º estiver ausente. O mesmo se passa entre o 3º e 2º capitão.
É importante registar a ordem pela qual os 3 capitães de uma equipa
(clube) estão designados, pois é o 1º capitão quem desempenha.
0...1 0…*
plantel
Clube
Nome
...
Jogador
Nr de camisola
...
capitão
0...1 0... 3
{ ordered }
2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 56
Outras notações gráficas comuns em
modelação de dados
Outras notações gráficas comuns em
modelação de dados
 Mostrar aqui que muitos dos conceitos apresentados
existem em outros formalismos, sendo frequente
encontrar estes mesmos conceitos representados de
outras formas, nomeadamente:
– Notação Crow’s foot
– Notação Chen-ERD (E-R original)

Mais conteúdo relacionado

Semelhante a UML Diagramas de Classes para Bases de Dados Relacionais

Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologiaselliando dias
 
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoSérgio Souza Costa
 
Modelagem De Banco De Dados
Modelagem De Banco De DadosModelagem De Banco De Dados
Modelagem De Banco De Dadosmgoberto
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosjulianaveregue
 
TI para Concursos: Modelagem Conceitual de Bancos de Dados
TI para Concursos: Modelagem Conceitual de Bancos de DadosTI para Concursos: Modelagem Conceitual de Bancos de Dados
TI para Concursos: Modelagem Conceitual de Bancos de DadosEstratégia Concursos
 
Minicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosMinicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosSérgio Souza Costa
 
Bancos de Dados para Bibliotecários
Bancos de Dados para BibliotecáriosBancos de Dados para Bibliotecários
Bancos de Dados para BibliotecáriosLuciano Ramalho
 
Banco de Dados _ Modelagem Conceitual.pdf
Banco de Dados _ Modelagem Conceitual.pdfBanco de Dados _ Modelagem Conceitual.pdf
Banco de Dados _ Modelagem Conceitual.pdfPauloVictor415128
 
04 modelagem de dados introdução
04  modelagem de dados   introdução04  modelagem de dados   introdução
04 modelagem de dados introduçãoCentro Paula Souza
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Mario Sergio
 
Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)marcondes da luz barros
 
02 2 - modelagem er
02   2 - modelagem er02   2 - modelagem er
02 2 - modelagem erElton Costa
 
Desenvolvimento Delphi
Desenvolvimento DelphiDesenvolvimento Delphi
Desenvolvimento Delphihildebertomelo
 
Aula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdfAula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdfCelestino24
 
Object Oriented Programming
Object Oriented Programming Object Oriented Programming
Object Oriented Programming Alexandre Schmidt
 

Semelhante a UML Diagramas de Classes para Bases de Dados Relacionais (20)

Introdução ao Entity Framework 4
Introdução ao Entity Framework 4Introdução ao Entity Framework 4
Introdução ao Entity Framework 4
 
Metadados - Totvs RM.pdf
Metadados - Totvs RM.pdfMetadados - Totvs RM.pdf
Metadados - Totvs RM.pdf
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologias
 
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de Encerramento
 
Modelagem De Banco De Dados
Modelagem De Banco De DadosModelagem De Banco De Dados
Modelagem De Banco De Dados
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
TI para Concursos: Modelagem Conceitual de Bancos de Dados
TI para Concursos: Modelagem Conceitual de Bancos de DadosTI para Concursos: Modelagem Conceitual de Bancos de Dados
TI para Concursos: Modelagem Conceitual de Bancos de Dados
 
Minicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosMinicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficos
 
Bancos de Dados para Bibliotecários
Bancos de Dados para BibliotecáriosBancos de Dados para Bibliotecários
Bancos de Dados para Bibliotecários
 
Banco de Dados _ Modelagem Conceitual.pdf
Banco de Dados _ Modelagem Conceitual.pdfBanco de Dados _ Modelagem Conceitual.pdf
Banco de Dados _ Modelagem Conceitual.pdf
 
04 modelagem de dados introdução
04  modelagem de dados   introdução04  modelagem de dados   introdução
04 modelagem de dados introdução
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Aula1
Aula1Aula1
Aula1
 
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)
 
Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)
 
02 2 - modelagem er
02   2 - modelagem er02   2 - modelagem er
02 2 - modelagem er
 
Desenvolvimento Delphi
Desenvolvimento DelphiDesenvolvimento Delphi
Desenvolvimento Delphi
 
Aula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdfAula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdf
 
Object Oriented Programming
Object Oriented Programming Object Oriented Programming
Object Oriented Programming
 
UMLIntro.pptx
UMLIntro.pptxUMLIntro.pptx
UMLIntro.pptx
 

Mais de JoberthSilva

AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptJoberthSilva
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdfJoberthSilva
 
A função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosA função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosJoberthSilva
 
A CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptA CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptJoberthSilva
 
Apocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxApocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxJoberthSilva
 
5 - Resistores.ppt
5 - Resistores.ppt5 - Resistores.ppt
5 - Resistores.pptJoberthSilva
 
Problemas de Carater.pptx
Problemas de Carater.pptxProblemas de Carater.pptx
Problemas de Carater.pptxJoberthSilva
 
Herança e Polimorfismo.ppt
Herança e Polimorfismo.pptHerança e Polimorfismo.ppt
Herança e Polimorfismo.pptJoberthSilva
 
Materiais Semicondutores
Materiais SemicondutoresMateriais Semicondutores
Materiais SemicondutoresJoberthSilva
 
Algoritmos - Modificado.ppt
Algoritmos - Modificado.pptAlgoritmos - Modificado.ppt
Algoritmos - Modificado.pptJoberthSilva
 
actividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfactividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfJoberthSilva
 
Rede sem fio 2.ppt
Rede sem fio 2.pptRede sem fio 2.ppt
Rede sem fio 2.pptJoberthSilva
 

Mais de JoberthSilva (20)

AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.ppt
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
 
A função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosA função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcados
 
A CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptA CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.ppt
 
Apocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxApocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptx
 
PHP.ppt
PHP.pptPHP.ppt
PHP.ppt
 
Aula_1.pptx
Aula_1.pptxAula_1.pptx
Aula_1.pptx
 
5 - Resistores.ppt
5 - Resistores.ppt5 - Resistores.ppt
5 - Resistores.ppt
 
Problemas de Carater.pptx
Problemas de Carater.pptxProblemas de Carater.pptx
Problemas de Carater.pptx
 
capacitores1.ppt
capacitores1.pptcapacitores1.ppt
capacitores1.ppt
 
Herança e Polimorfismo.ppt
Herança e Polimorfismo.pptHerança e Polimorfismo.ppt
Herança e Polimorfismo.ppt
 
Materiais Semicondutores
Materiais SemicondutoresMateriais Semicondutores
Materiais Semicondutores
 
Algoritmos - Modificado.ppt
Algoritmos - Modificado.pptAlgoritmos - Modificado.ppt
Algoritmos - Modificado.ppt
 
Fibra Óptica
Fibra ÓpticaFibra Óptica
Fibra Óptica
 
actividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfactividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdf
 
50524(1).ppt
50524(1).ppt50524(1).ppt
50524(1).ppt
 
Rede sem fio 2.ppt
Rede sem fio 2.pptRede sem fio 2.ppt
Rede sem fio 2.ppt
 
bom-1.pdf
bom-1.pdfbom-1.pdf
bom-1.pdf
 
PHP.ppt
PHP.pptPHP.ppt
PHP.ppt
 

UML Diagramas de Classes para Bases de Dados Relacionais

  • 1. UML: Diagramas de Classes Desenho de Bases de Dados Relacionais com UML UML: Diagramas de Classes Desenho de Bases de Dados Relacionais com UML Fundamentos de Bases de Dados (FBD) Licenciatura em Engenharia de Telecomunicações e Informática (ETI) Autoria: Pedro Ramos, José Farinha Docente: José Farinha
  • 2. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 2 Diagramas de Classes UML Índice Diagramas de Classes UML Índice Conceitos Básicos Associações Classes Associativas Agregações Composições Generalizações Atributos vs. Associações N-para-1 Associações n-árias Associações singulares (uma classe) Relações de Dependência Roles Navegação Packages
  • 3. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 3 Objectos Objectos Objecto: Qualquer coisa ou acontecimento do universo que queremos registar e que tem: – Uma identificação • Valor que permite diferenciar o objecto de todos os outros – Um estado • Conjunto de valores que nos dão informação acerca das características do objecto – Comportamento • Conjunto de acções que o objecto sabe realizar É distinto de todos os outros clientes da empresa pois tem o número 484848 Tem o nome “José Silva”, morada “R. de cima…”, nº contribuinte “8242424”, ... Operações: encomendar produto, pagar factura, alterar morada, ... Objecto: Cliente José Silva
  • 4. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 4 Objectos Objectos Não têm necessariamente que corresponder a entidades com representação física Um conceito abstracto (p.ex, um departamento) pode ser um objecto, desde que seja relevante para o domínio em causa.
  • 5. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 5 Classes Classes Classe: conjunto de objectos que partilham o mesmo meio de identificação, propriedades de estado, comportamento, relações e semântica. Todos distintos uns dos outros Todos têm nome, morada, nº contribuinte, ... Todos estão aptos para realizar as mesmas acções: encomendar produto, pagar factura, alterar morada, ... Todos se relacionam com os mesmos tipos de objectos (p.ex, com os produtos que adquirem). Representam a realidades da mesma natureza (tem a mesma semântica) Classe dos clientes
  • 6. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 6 Classe: Representação gráfica Classe: Representação gráfica Cliente Nr. contribuinte Nome Morada Encomendar produto ( ) Pagar factura ( ) Mudar de morada ( ) Nome (único no domínio) Atributos Operações Classe dos clientes
  • 7. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 7 Atributos Atributos Um atributo numa classe representa uma característica típica dos objectos dessa classe Pode assumir qualquer valor, se não houver mais nenhuma especificação relativamente ao atributo Factura Nr. Factura: Integer Data: Date Estado: String Pode especificar-se um tipo de dados para um atributo – Neste caso, os valores que podem ser atribuídos ao atributo estão condicionados à compatibilidade com o tipo
  • 8. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 8 Atributos: obrigatoriedade de preenchimento Atributos: obrigatoriedade de preenchimento Em UML, um atributo é de preenchimento opcional: – Em cada novo objecto que seja criado, o dito atributo poderá ser ou não 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 informação no diagrama de classes UML, indicar em caixa de comentário UML
  • 9. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 9 Atributos: valor por omissão Atributos: valor por omissão Em UML pode especificar-se um valor por omissão (default value) para um atributo Mais adequado para aplicar em situações em que existe um valor inicial Os novos segurados começam por não ter participações. Segurado Nome Morada Tipo = “Limpo” Não é muito adequado para modelar o conceito de valor mais frequente Uma requisição é criada por um subordinado e mais tarde aprovada pela chefia Requisição Nr. requisição Data Estado = “Por aprovar” Neste caso, torna-se não necessário fornecer o número de golos quando se cria o jogo. Jogo de futebol Data Golos visitado = 0 Golos visitante = 0
  • 10. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 10 Atributos de identificação 1 Atributos de identificação 1 Ao definir os atributos de uma classe, deverá incluir- se sempre um (ou mais) atributo(s) que possa(m) funcionar como mecanismo de identificação dos objectos dessa classe. Isto é, um (ou mais) atributo(s) para o(s) qual(is): – todos os objectos têm valor; – o valor nesse atributo (ou conjunto de atributos) garantidamente não se repete em quaisquer dois objectos.
  • 11. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 11 Atributos de identificação 2 Atributos de identificação 2 Em certas classes, não se conseguem apurar atributos naturais para este efeito. Especificamos um atributo adicional, cujos valores serão “artificialmente” atribuídos a cada objecto, sem causar repetições; Este atributo diz-se um Identificador Interno, Identificador Único ou Identificador de Objecto (OI, Object Identifier) e é frequente receber nomes do género: Número [de ...] Código [de ...] Id Por razões de performance, no modelo lógico e/ou físico da base de dados poderá introduzir-se um atributo destes mesmo que exista uma forma de identificação natural na classe Num diagrama de classes UML um atributo deste género apenas deverá ser indicado se não existir uma forma de identificação natural na classe
  • 12. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 12 Atributos enumerados Atributos enumerados Atributos que apenas podem assumir valores entre um certo conjunto de opções Exº de especificação na própria classe O tamanho de uma peça de vestuário apenas pode ser preenchida por um dos valores indicados Peça de vestuário Código de barras Designação Tamanho: {“XL”, “L”, “M”, “S”, “XS”}
  • 13. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 13 Atributos enumerados Atributos enumerados Se o conjunto de opções é usado em mais que uma classe ...ou mesmo se o conjunto de opções é muito extenso, tornando a representação gráfica da classe muito larga Pode definir-se um tipo de dados enumerado, que pode ser partilhado por vários atributos Representação gráfica: Peça de vestuário Código de barras Designação Tamanho: Tamanho de vestuário «Enumeration» Tamanho de vestuário XL L M S XS
  • 14. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 14 Desusos de UML para desenho de bases de dados relacionais Desusos de UML para desenho de bases de dados relacionais Para efeitos de desenho de base de dados relacional: – Não se especificam as visibilidades – público/protegido/privado – dos atributos: todos se assumem públicos; Se pretendêssemos desenhar uma base de dados orientada por objectos, tal já seria especificado; – Relativamente a um atributo, não se faz especificação de multiplicidades superiores a 1, pois: • O modelo relacional não permite que, num registo, um atributo possua mais do que um valor • Não se pretende obter um modelo puramente orientado por objectos Cliente Nome: String Morada: String Telefone [ 0 .. 3 ]: Int Cliente + Nome + Morada - Rua - Porta Não se coloca Não se usa
  • 15. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 15 Desusos de UML em FBD Desusos de UML em FBD Não se especificam as operações das classes Mas poderá fazer-se, para especificação de stored procedures ou triggers muito directamente relacionados com determinada classe Cliente Nome Morada Encomendar_produto ( ) Pagar_factura ( ) Mudar_morada ( ) Não se faz em FBD
  • 16. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 16 Relações 1 Relações 1 Em qualquer sistema existem objectos que se relacionam entre si. – Sistema universitário • Objectos: alunos, cursos, exames; • os alunos relacionam-se com os cursos que frequentam e com os exames que fazem. – Sistema bancário • objectos – clientes, contas, balcões; • os clientes relacionam-se com as contas que possuem e as contas com os balcões em que estão sediadas. As ligações entre objectos relacionados também são informação Quando há interesse em conhecer as ligações entre os objectos do sistema, especificam-se relações entre as classes desses objectos
  • 17. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 17 Relações 2 Relações 2 Em UML existem os seguintes tipos de relações, que expressam diferentes semânticas de interligação entre classes: – Associação Tem dois casos especiais: – Agregação – Composição – Generalização – Relação de dependência
  • 18. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 18 Associações Associações Uma associação é uma relação 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 estão associados. Um cliente pode estar associado a várias facturas ou a nenhuma. Uma factura está sempre associada a um cliente. Cliente Nr contribuinte Nome 1 0…* Factura Nr factura Data Valor ...
  • 19. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 19 Multiplicidade das Associações Multiplicidade das Associações X 0 ... 3 Y ...podem estar ligados a um objecto da classe Y Indica quantos objectos da classe X... Algumas hipóteses: 1...3 de 1 a 3 0...3 de zero a três 1...* no mínimo 1 0...* zero ou vários, sem limitação de quantidade 1...1 um e apenas um pode representar-se: 1 0...1 zero ou 1
  • 20. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 20 Multiplicidade das Associações Multiplicidade das Associações ... infinitas combinações possíveis que são vulgar designarem-se como: Um-para-muitos ...ou Um-para-N Um-para-um Muitos-para-muitos ...ou M-para-N X 0 ... 1 Y 0 ... * X 1 ... 1 Y 0 ... 1 X 0 ... * Y 0 ... *
  • 21. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 21 Associação um-para-muitos 1 Associação um-para-muitos 1 Semântica – Um aluno pode estar associado a (inscrito em) um e apenas um curso – A um curso podem-se associar vários ou nenhum aluno. Funcional – Dado um aluno é possível determinar em que curso está inscrito, e – Dado um curso é possível identificar os seus alunos. João Ana Joana Luís Gestão Informática Direito Sociologia Curso Nome 0 ... 1 0 … * Aluno Nr aluno Nome
  • 22. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 22 Associação um-para-muitos 2 Associação um-para-muitos 2 Semântica – Um funcionário tem necessariamente que estar associado a um departamento Não é possível introduzir um funcionário no sistema sem que seja indicado o departamento a que pertence Funcional – Dado um funcionário é possível determinar em que departamento ele trabalha, e – Dado um departamento é possível identificar os seus funcionários. João Ana Joana Luís Produção Comercial Financeiro Informática Departamento Nome 1 0 … * Funcionário Nr mecanográfico Nome
  • 23. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 23 Associação muitos-para-muitos 3 Associação muitos-para-muitos 3 Um objecto não pode estar duplamente associado a outro objecto (Joana / Marketing). À semelhança das classes (em que os objectos são distintos), as associações também têm que ter ocorrências distintas. –Não há nada que distinga as duas ligações entre Joana e Marketing; –O sistema de base de dados deverá considerar a 2ª ligação como redundante: Não interessa registar duas vezes que Joana e Marketing estão ligados –Se interessa, então a associação muitos-para-muitos não é representação correcta Aluno Nr aluno Nome 0 ... * 0 … * Disciplina Nome João Ana Joana Luís Matemática Direito Marketing Informática A mesma ligação
  • 24. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 24 Associação um-para-um Associação um-para-um É a associação que atribui um número de recibo à factura. – Caso contrário, uma factura poderia ficar associada a dois números 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 – não deve ser especificado Apesar de haver uma correspondência um a um, não se deve especificar apenas uma classe, pois cada classe representa uma realidade – Inclusive, devia haver a classe Cheque. – Mais alguma? Pelas multiplicidades percebe- se que uma factura será necessariamente introduzida antes do respectivo recibo (quanto muito, simultaneamente) 1 0…1 Recibo Nr recibo Data pagamento Nr cheque Banco Factura Nr factura Data emissão Valor Nr recibo
  • 25. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 25 Nomes de associações 1 Nomes de associações 1 As associações podem (e devem) ter nomes – Substantivo – Verbo Indicar sempre o sentido de leitura Aluno 0 ... * Disciplina 0 ... * inscrição Cliente 0 ... * Conta 0 ... * autorização de movimentação titularidade 0 ... * 0 ... * Aluno 0 ... * Disciplina 0 ... * inscrito em Indispensável quando há duas associações entre as mesmas classes
  • 26. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 26 Nomes de associações 2 Nomes de associações 2 Em UML puro, duas associações podem ter o mesmo nome desde que sejam entre classes diferentes Algumas ferramentas impõem restrições mesmo que as associações sejam entre duas classes diferentes ⇒ duas associações não devem ter nome igual – É o caso da ferramenta PowerDesigner, usada nos laboratórios: associações com nomes iguais originam posteriormente duplicação de identificadores na base de dados. Seminário 0 ... * Professor 0 ... * Aluno 0 ... * Inscrição Inscrição 0 ... *
  • 27. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 27 Atributo enumerado vs. Associação N-para-1 Atributo enumerado vs. Associação N-para-1 Associação: Deve usar-se se as opções podem mudar e queremos possibilitar que seja o utilizador a gerir essas opções – Se a quantidade de opções pode mudar. – Se podem mudar de designação. Conta 0 ... * Tipo de conta Designação 1 tipificação Conta Tipo de conta: { À ordem, A prazo, CPH, CPA } Atributo enumerado: Deve usar-se apenas se, previsivelmente, as opções serão sempre as mesmas Problema: Numa base de dados bancária, pretende-se guardar informação sobre cada conta, incluindo o seu tipo de conta.
  • 28. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 28 0... vs. 1... 0... vs. 1... Usar o 1...* quando, de todo, não se quer a informação do lado muitos sem a informação do lado 1. Quando não tem utilidade sem a informação 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 informação acerca do curso sem ainda termos indicado as suas disciplinas – logo: 0...* – Exemplo: • Uma receita médica prescreve um ou mais medicamentos. • O médico não deve poder guardar a receita sem ter indicado um dos medicamentos. • Sem pelo menos um medicamento, a informação sobre a receita não tem qualquer utilidade – logo: 1...*.
  • 29. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 29 Classes associativas Classes associativas São associações que se “transformam” em classes… … quando : – É necessário colocar atributos na associação: – É necessário associar uma classe a uma associação 1 Local Morada Contacto 0...* Entrega Encomenda Nr Encomenda Quantidade Produto Código Quantidade 0...* 0...* Item de encomenda Quantidade
  • 30. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 30 Classes associativas Classes associativas As classes associativas são mais frequentemente necessárias nas associações muitos para muitos. Mas, em casos mais raros, fazem também sentido em associações de outras cardinalidades. Pessoa Nome Morada Sistema de saúde Nome 0...* Benefíciário Núm. de beneficiário 0...1 Pessoa Nome Morada Núm. de beneficiário Sistema de saúde Nome 0...* 0...1
  • 31. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 31 Classe associativa vs. Classe com duas associações muitos-para-um Classe associativa vs. Classe com duas associações muitos-para-um Classe associativa – Não 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 ... * Colaborador 0 ... * Participação Data de início Data de fim Projecto 0...* Colaborador 0...* Participação Data de início Data de fim 1 1 Classe com duas associações – Permite ligar várias vezes os mesmos dois objectos; – No exemplo: Podem registar-se várias participações do mesmo colaborador no mesmo projecto
  • 32. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 32 Agregações Agregações As Agregações são associações que se utilizam quando se pretende representar a noção de Todo/Parte (um todo constituído por partes). Uma holding é constituída por empresas. Uma empresa pode estar incluída numa holding. Holding Nome 0...1 0 … * Empresa Nome Morada Um automóvel inclui 4 rodas e 1 volante, nem mais nem menos. Automóvel Matrícula Marca Modelo 1 4 1 Volante Nº de série Material Roda Nº de série Tipo de pneu Tipo de jante As agregações são representadas graficamente por uma linha adornada com losângulo branco no extremo correspondente ao todo.
  • 33. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 33 Composições Composições As composições são um caso especial de agregações Isto é, tal como as agregações, representam situações em que um objecto de uma classe (composição) inclui um conjunto de objectos de outra classe (componentes)... ...mas têm semântica adicional: Os componentes apenas existem no contexto do todo. Uma factura é uma composição de linhas: - A factura é constituída por linhas; - As linhas não existem senão dentro da factura. Factura Número Data 1 0 … * Linha de factura Produto Quantidade Preço unitário Graficamente, o losângulo é preenchido a cheio quando a associação é do tipo composição.
  • 34. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 34 Composições Composições O facto de numa composição os objectos componentes apenas existirem no contexto do objecto composto significa: – Quando se remove o objecto composto, todos os seus componentes são automaticamente removidos – Os objectos componente incluem no seu mecanismo de identificação o mecanismo de identificação do objecto composto • Uma linha de factura só se pode identificar univocamente se também mencionarmos a identificação da factura a que diz respeito • Os nome dos departamentos podem repetir-se entre empresas – se não juntarmos o nome da empresa não conseguiremos distinguir certos departamentos que possuam idêntica designação em empresas distintas
  • 35. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 35 Composições Composições Factura nº 123 Data: 12/12/1999 Cliente: João Silva Nº Cont. 1234567 Linha Produto Quant. P. Unit Total 1 Produto A 2 5000 € 10000 € 2 Produto B 1 3000 € 3000 € 3 Produto X 3 2000 € 6000 € Total 19000 € Factura nº 100 Data: 12/10/1999 Cliente: Ana Silva Nº Cont. 1234568 Linha Produto Quant. P. Unit Total 1 Produto X 2 5000 € 10000 € 2 Produto B 1 3000 € 3000 € 3 Produto Y 3 2000 € 6000 € Total 19000 € Linhas de factura diferentes, apesar de possuírem os mesmo valores.
  • 36. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 36 Composições Composições Problema: Pretende-se base de dados para sítio de Web com serviço de reserva de bilhetes para vários cinemas. Solução: Não conseguimos identificar uma sala de cinema se não dissermos em que cinema está incluída Reserva Data Hora da sessão Nome da pessoa 1 0 … * Cadeira Nr. de cadeira 1 1…* Fila Código 1 1…* Sala Designação 1 1…* Cinema Nome Não conseguimos identificar uma fila se não dissermos a que sala pertence Não conseguimos identificar uma cadeira se não dissermos a que fila pertence   
  • 37. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 37 Composições vs. Agregações Composições vs. Agregações Apesar da obrigatoriedade existir em ambas as associações seguintes, são situações com semânticas distintas: • Significa que um funcionário que não trabalhe num departamento não é relevante para o domínio em causa (se o seu departamento for removido ele terá que ser excluído ou reposicionado em outro departamento). • No entanto, o funcionário existe per si, não necessita de estar associado a um departamento para ser referido/identificado Departamento Designação 1 0…* Funcionário BI Nome Salário A Linha da factura só pode ser referida (distinguida das restantes) se for indicada a factura correspondente. Factura Número Data 1 0…* Linha de factura Produto Quantidade Preço unitário
  • 38. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 38 A Composição como conceito de identificação A Composição como conceito de identificação Em desenho de base de dados, designam-se por entidades fracas aquelas entidades que dependem de outras para se identificar A composição é a figura que em UML permite representar entidades fracas. Mesmo que não haja semântica de todo-parte, deve usar-se uma composição nas situações em que haja semântica de entidade fraca. Exemplo: Pretende-se manter numa base de dados informação acerca de todas as cobranças de portagem nas auto-estradas nacionais. Como identificar cada uma das cobranças? Não há semântica de todo- parte. Apenas de entidade fraca: as cobranças identificam-se através do dia e hora e da cabine onde ocorreram.
  • 39. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 39 Generalização Generalização Generalização é uma relação que permite representar a noção de subdivisão e especificidade em conjuntos de objectos Todos os sócios partilham características comuns – Nome, morada, telefone, valor de quotização, etc. Mas há subgrupos com especificidades – Individuais: Idade – Organizações: Número de elementos Sócios Organizações Individuais
  • 40. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 40 Generalização Generalização Porquê distingui-los? Porque têm atributos específicos exº: O CAE (Código de Actividade Económica) nas Organizações, a Idade nos Individuais Porque têm associações específicas exº: Mercados onde as Organizações actuam Ou apenas porque se quer dar relevo a um subconjunto do domínio
  • 41. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 41 Generalização Generalização São relações um-para-um: um sócio apenas pode corresponder a uma organização e uma organização corresponde (obrigatoriamente) a um sócio; Um Sócio não pode ser simultaneamente Individual e Organização; Um Sócio pode não ser nem Individual nem Organização; Um Sócio pode ser Honorário e Individual ou Honorário e Organização; As subclasses herdam todos os atributos da supraclasse/superclasse. Sócio Nome Morada Telefone Individual Idade Profissão Organização CAE Honorário Mercado Designação 0...* 1 O que é comum a todos os sócios O que é específico dos sócios individuais O que é específico dos sócios organização
  • 42. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 42 Generalização vs. associação N-para-1 Generalização vs. associação N-para-1 Se o conjunto de opções é imutável Conta bancária NIB Saldo Tipo de conta Designação 0...* 1 ou ? Conta bancária NIB Saldo C. Poupança Reforma ... C. Poupança Habitação Conta à ordem Se com alguma probabilidade podem surgir novas opções ou as existentes podem necessitar de alterações Se as diferentes opções têm especificidades (atributos ou associações próprias) Se não há especificidades Se algumas opções irão ter um tratamento especial – por exemplo, permissões de acesso especiais Se todas as opções têm igual tratamento Se as opções realçam conceitos importantes, por exemplo, se transmitem terminologia própria do domínio aplicacional Se as opções não correspondem a conceitos de grande relevância no domínio aplicacional
  • 43. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 43 Associações N-árias Associações N-árias Problema: Empresa deseja efectuar divulgação através de anúncios em vários meios de comunicação social. Para controlo de custos e pagamentos necessita de registar as divulgações. Solução 1: Permite a introdução de informação duplicada (mesmo anúncio no mesmo canal no mesmo dia) Solução 2: Associação ternária Anúncio Título Canal de divulgação Nome 1 1 0...* Divulgação Data 0...* 0...* 0...* Dia Data Divulgação 0...* Anúncio Título Canal de divulgação Nome
  • 44. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 44 Associações N-árias Associações N-árias No plano dos objectos, uma ligação N-ária envolve sempre N objectos ...um de cada classe argumento: 0...* 0...* Dia Data Divulgação 0...* Anúncio Título Canal de divulgação Nome 3-Jan-2005 Dia “X é cabeça de cartaz” Anúncio SIC Canal de divulgação “X sabe bem” Anúncio “X é a escolha da selecção” Anúncio 8-Jul-2005 Dia 7-Set-2005 Dia 1-Out-2005 Dia Expresso Canal de divulgação Antena 3 Canal de divulgação
  • 45. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 45 Multiplicidades em associações N-árias Multiplicidades em associações N-árias Definição de multiplicidades numa relação ternária 0...* 0...* Dia Data Divulgação 0...* Anúncio Título Canal de divulgação Nome Nº de anúncios possível para um par {um dia, um canal} Nº de dias possível para um par {um anúncio, um canal} Nº de canais possível para um par {um anúncio, um dia}
  • 46. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 46 Multiplicidade em associações N-árias Multiplicidade em associações N-árias Definição de multiplicidades numa relação ternária 0...1 Adopção Homem Nº de homens possível para um par {uma mulher, uma criança}. Adoptar o Joãozinho com a Ana, apenas pode ter sido com um homem. Se o Joãozinho não foi adoptado pela Ana, então há zero homens associados ao par {Ana, Joãozinho}. Logo: 0 ou 1 homens. Nº de mulheres possíveis para um par {um homem, uma criança}. Criança Mulher 0...* Nº de crianças possíveis para um par {um homem, uma mulher}. O Pedro e a Ângela, juntos, podem ter 0 (zero) ou várias crianças adoptadas. 0...1 Atenção que não é o nº de crianças envolvidas numa adopção!
  • 47. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 47 Associações N-árias vs. (N-1) associações binárias Associações N-árias vs. (N-1) associações binárias Exemplos: – Inscrição: Aluno-disciplina-ano lectivo – Docência: Docente-disciplina-ano lectivo – Adopção: Casal-criança – Atribuição de óscar: Óscar-Filme-Ano – Reserva: Pessoa-Cadeira-Sessão-Dia – Vendas
  • 48. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 48 Associações n-árias: notação alternativa Associações n-árias: notação alternativa Ilustrar a notação losangular utilizada por várias ferramentas (por exemplo: Visio).
  • 49. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 49 Associações reflexivas Associações reflexivas Também chamadas associações singulares Funcionário 0...* 0...1 Chefia chefe subordinado Um funcionário pode ter 0 ou vários funcionários como subordinados Um funcionário pode ter 0 ou 1 chefe
  • 50. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 50 Solução 1: Não permite registar ligações (aéreas) nem escalas. A uma reserva precisamos de poder associar vários pares origem-destino Solução 2: Associações reflexivas Associações reflexivas Problema: Agência de viagens pretende registar reservas de voo. origem 1 0...* destino 1 0...* Aeroporto Nome 0...* 0...* destino origem Ligação aérea Reserva Data trajecto 0...* 0...* Aeroporto Nome Reserva Data Hora Perguntas extra: Permite voos Lisboa-Lisboa? Onde deverá ficar o atributo Hora?
  • 51. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 51 Relações de dependência Relações de dependência As relações de dependência permitem evidenciar dependências que não têm expressão como relações estruturais. Existe uma relação de dependência quando uma alteração na especificação de uma classe origina uma alteração na especificação de outra classe. – Surgem quando alguma acção sobre os objectos de uma classe (a classe dependente) envolve a utilização de objectos de outra – Só se especificam se não existir uma relação já definida entre essas duas classes – esta, existindo, já dá indicação de dependência entre as classes • A inscrição de um aluno numa disciplina origina uma entrada de receitas – a classe Aluno depende da classe Folha de receitas. • Não interessa manter registo das ligações entre alunos e folhas de receitas – não se especifica uma associação Disciplina Nome ... 0...* 0...* Inscrição dependência Aluno Nome ... Folha de receitas Data (classe dependente) (classe de que é dependente)
  • 52. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 52 Constraint: subset Constraint: subset Usado para expressar que as ligações estabelecidas no contexto de uma dada associação são um subconjunto das estabelecidas no contexto de outra associação O capitão de uma equipa (de um clube) é um dos elementos que figura no seu plantel. Este esquema indica que a base de dados não deverá deixar apontar como capitão de uma equipa um jogador que não faça também parte do seu plantel. 0...1 0…* plantel Clube Nome ... Jogador Nr de camisola ... capitão 0...1 0...1 { subset }
  • 53. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 53 Constraint: xor Constraint: xor Usa-se quando duas associações são exclusivas relativamente à classe que têm em comum – i. é, cada objecto desta classe só pode estar associada a outro objecto por via de uma destas associações, nunca por via das duas associações simultaneamente; Lê-se: “égzór”. Um automóvel ou tem mudanças automáticas ou manuais. (Considere-se que aqueles carros que possibilitam a transição entre mudanças automáticas e manuais possuem uma caixa automática, a qual também possibilita uma condução manual). Automóvel Matrícula Marca Modelo 1 4 1 Caixa manual 1 {xor} Caixa automática Roda
  • 54. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 54 Constraint: redefines Constraint: redefines O domínio de aplicação é um sítio de vendas on-line. • Os visitantes do sítio colocam produtos no seu carro de compras. • As encomendas são 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 associação de baixo Produto Código Nome Preço Dimensões ... Carro de compras Encomenda 0 … * 0 … * 0 … * 1 … * {redefines} O conceito representado por uma relação homem- mulher muda quando estes passam a ser pessoas casadas. Uma ligação de casamento substitui sempre uma ligação de namoro. • Pergunta: Porque é que a cardinalidade da associação Casamento é 0...1 e não 1...1? Homem Mulher Mulher casada 0…1 0…1 {redefines} Homem casado Namoro 0…1 0…1 Casamento namorado namorada marido esposa
  • 55. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 55 Constraint: ordered Constraint: ordered Usa-se quando se pretende expressar que a base de dados deve manter uma ordenação quanto às ligações estabelecidas para cada objecto • Um clube pode ter até 3 jogadores designados para capitães de equipa. • Um é o 1º capitão e é este quem habitualmente desempenha a função de chefia de equipa em campo. O 2º capitão só desempenha esta função se o 1º estiver ausente. O mesmo se passa entre o 3º e 2º capitão. É importante registar a ordem pela qual os 3 capitães de uma equipa (clube) estão designados, pois é o 1º capitão quem desempenha. 0...1 0…* plantel Clube Nome ... Jogador Nr de camisola ... capitão 0...1 0... 3 { ordered }
  • 56. 2006 / 2007 FBD - Desenho de Bases de Dados com UML. (c) José Farinha, Pedro Ramos Slide 56 Outras notações gráficas comuns em modelação de dados Outras notações gráficas comuns em modelação de dados Mostrar aqui que muitos dos conceitos apresentados existem em outros formalismos, sendo frequente encontrar estes mesmos conceitos representados de outras formas, nomeadamente: – Notação Crow’s foot – Notação Chen-ERD (E-R original)