Professional Documents
Culture Documents
Desenho de Bases de Dados Relacionais com UML Fundamentos de Bases de Dados (FBD)
Licenciatura em
Jos Farinha
Conceitos Bsicos Associaes Classes Associativas Agregaes Composies Generalizaes Atributos vs. Associaes N-para-1
2006 / 2007
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
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
Cliente Nr. contribuinte Nome Morada Encomendar produto ( ) Pagar factura ( ) Mudar de morada ( )
Classe dos clientes
2006 / 2007
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
Slide 7
Neste caso, torna-se no necessrio fornecer o nmero de golos quando se cria o jogo.
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
FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos
Slide 13
No se coloca
No se usa
Slide 14
FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos
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
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
Indica quantos objectos da classe X... ...podem estar ligados a um objecto da classe Y
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
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
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
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
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?
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 ... *
Cliente
0 ... *
titularidade
0 ... *
Conta
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
Conta tipificao
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
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
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
2006 / 2007
FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos
Slide 30
0 ... *
0 ... *
Colaborador
Permite ligar vrias vezes os mesmos dois objectos; No exemplo: Podem registar-se vrias participaes do mesmo colaborador no mesmo projecto
2006 / 2007
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
Uma holding constituda por empresas. Uma empresa pode estar includa numa holding.
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)...
Uma factura uma composio de linhas: - A factura constituda por linhas; - As linhas no existem seno dentro da factura.
2006 / 2007
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
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
2006 / 2007
FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos
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
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
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
Organizaes
Slide 39
Generalizao
Porqu distingui-los?
Porque tm atributos especficos
ex: O CAE (Cdigo de Actividade Econmica) nas Organizaes, a Idade nos Individuais
Generalizao
O que comum a todos os scios
Scio Nome Morada Telefone Honorrio
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
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 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
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...*
3-Jan-2005
2006 / 2007
FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos
Slide 44
0...*
N de anncios possvel para um par {um dia, um canal}
0...*
Divulgao
0...*
2006 / 2007
FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos
Slide 45
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
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
2006 / 2007
FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos
Slide 47
2006 / 2007
FBD - Desenho de Bases de Dados com UML. (c) Jos Farinha, Pedro Ramos
Slide 48
Associaes reflexivas
Tambm chamadas associaes singulares
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
origem
0...*
0...*
destino
0...*
trajecto
0...* Reserva
Data
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)
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
plantel
0*
{ 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 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