Este documento apresenta conceitos básicos de diagramas de classes UML para modelagem de bases de dados relacionais, incluindo classes, atributos, associações entre classes e seus tipos. Discutem-se conceitos como identificação de objetos, atributos enumerados, relações entre classes e multiplicidade de associações.
O documento discute os conceitos fundamentais de modelagem de dados, incluindo:
1) Entidades, atributos e chaves primárias definem as tabelas e campos do banco de dados.
2) Relacionamentos entre entidades representam como os dados serão ligados entre tabelas.
3) A normalização organiza os dados em tabelas separadas para evitar duplicação e inconsistências.
O documento descreve o uso da ferramenta DBDesigner para modelagem de dados, incluindo como criar entidades, relacionamentos, salvar e atualizar modelos, além de realizar engenharia reversa a partir de um banco de dados existente.
Este documento fornece instruções sobre modelos de banco de dados em três níveis de abstração: modelo conceitual, modelo lógico e modelo físico. Explica como cada modelo descreve os dados de forma independente da implementação e fornece exemplos de como representar entidades, atributos e relacionamentos entre dados.
O documento descreve os principais elementos de um diagrama de classes no UML:
1) Um diagrama de classes mostra a estrutura estática das classes de um sistema, seus atributos e operações, e o relacionamento entre as classes.
2) As classes representam objetos do mundo real ou conceitos, possuem identidade, atributos e comportamentos. Podem ser agrupadas em categorias como entidades, controles e fronteiras.
3) Os relacionamentos entre classes como associação, agregação e generalização demonstram como as classes interagem.
Este documento resume os principais modelos de banco de dados: conceitual, lógico e físico. Explica o que cada modelo representa e como eles são usados para projetar e implementar um banco de dados, desde a descrição abstrata dos dados até a estrutura física no SGBD.
O documento discute diferentes abordagens para modelagem de data warehouse, comparando as metodologias de Kimball e Moody & Kortink. A metodologia de Moody & Kortink propõe derivar modelos dimensionais a partir de modelos ER, classificando entidades e identificando hierarquias para projetar esquemas estrela e constelação.
O documento descreve os principais componentes de um Modelo Entidade-Relacionamento (MER), incluindo entidades, atributos, relacionamentos e chaves primárias. Discute como as entidades representam objetos do mundo real e como os atributos definem suas características. Também explica os diferentes tipos de atributos e relacionamentos.
Mapeamento de Objetos para o Modelo Relacional.pptJoberthSilva
O documento discute o mapeamento de objetos para o modelo relacional, introduzindo os conceitos de objetos persistentes e transientes e as diferenças entre o modelo de classes e o modelo entidade-relacionamento. Também aborda os procedimentos para mapeamento de classes, atributos, associações, agregações, generalizações e classes associativas.
O documento discute os conceitos fundamentais de modelagem de dados, incluindo:
1) Entidades, atributos e chaves primárias definem as tabelas e campos do banco de dados.
2) Relacionamentos entre entidades representam como os dados serão ligados entre tabelas.
3) A normalização organiza os dados em tabelas separadas para evitar duplicação e inconsistências.
O documento descreve o uso da ferramenta DBDesigner para modelagem de dados, incluindo como criar entidades, relacionamentos, salvar e atualizar modelos, além de realizar engenharia reversa a partir de um banco de dados existente.
Este documento fornece instruções sobre modelos de banco de dados em três níveis de abstração: modelo conceitual, modelo lógico e modelo físico. Explica como cada modelo descreve os dados de forma independente da implementação e fornece exemplos de como representar entidades, atributos e relacionamentos entre dados.
O documento descreve os principais elementos de um diagrama de classes no UML:
1) Um diagrama de classes mostra a estrutura estática das classes de um sistema, seus atributos e operações, e o relacionamento entre as classes.
2) As classes representam objetos do mundo real ou conceitos, possuem identidade, atributos e comportamentos. Podem ser agrupadas em categorias como entidades, controles e fronteiras.
3) Os relacionamentos entre classes como associação, agregação e generalização demonstram como as classes interagem.
Este documento resume os principais modelos de banco de dados: conceitual, lógico e físico. Explica o que cada modelo representa e como eles são usados para projetar e implementar um banco de dados, desde a descrição abstrata dos dados até a estrutura física no SGBD.
O documento discute diferentes abordagens para modelagem de data warehouse, comparando as metodologias de Kimball e Moody & Kortink. A metodologia de Moody & Kortink propõe derivar modelos dimensionais a partir de modelos ER, classificando entidades e identificando hierarquias para projetar esquemas estrela e constelação.
O documento descreve os principais componentes de um Modelo Entidade-Relacionamento (MER), incluindo entidades, atributos, relacionamentos e chaves primárias. Discute como as entidades representam objetos do mundo real e como os atributos definem suas características. Também explica os diferentes tipos de atributos e relacionamentos.
Mapeamento de Objetos para o Modelo Relacional.pptJoberthSilva
O documento discute o mapeamento de objetos para o modelo relacional, introduzindo os conceitos de objetos persistentes e transientes e as diferenças entre o modelo de classes e o modelo entidade-relacionamento. Também aborda os procedimentos para mapeamento de classes, atributos, associações, agregações, generalizações e classes associativas.
Este documento apresenta um treinamento sobre metadados, ensinando o que são metadados, como criar projetos de metadados para cadastros como veículos, e os principais passos para definir tabelas, tipos de dados, relacionamentos e formulários para esses projetos.
1) O documento discute a integração entre as tecnologias UML, CORBA e Java para o desenvolvimento de sistemas.
2) A UML pode ser usada para modelar a análise, projeto e implementação, integrando-se com CORBA e Java.
3) Um método é proposto utilizando UML para modelagem, CORBA para a arquitetura distribuída e Java para a implementação.
Este documento discute arquitetura de sistemas de informação geográfica e modelagem de dados geográficos, incluindo níveis de abstração e extensões de modelagem de dados como OMT-G. Também aborda linguagem de consulta SQL e suas extensões espaciais para manipulação de dados geográficos em bancos de dados.
O documento apresenta os sete passos para modelagem de banco de dados, incluindo definir entidades, dados, tipos de dados, normalização, relacionamentos, revisão por pares e nomenclatura.
Modelagem relacional e normalização de dadosjulianaveregue
1) O documento discute modelagem relacional de dados e normalização para evitar anomalias.
2) A normalização divide tabelas com múltiplos assuntos em tabelas separadas com um único assunto cada.
3) Isso minimiza redundâncias, inconsistências e facilita manutenção do banco de dados.
Aula Grátis de TI para Concursos sobre Modelagem Conceitual de Bancos de Dados pelo Prof. Thiago Cavalcanti.
Leia mais sobre TI para Concursos no blog: https://www.estrategiaconcursos.com.br/blog
1) O documento introduz os conceitos de banco de dados geográfico, apresentando as principais arquiteturas de sistemas de informação geográfica, desde a primeira geração baseada em arquivos proprietários até a terceira geração integrada.
2) A modelagem de dados e a linguagem de consulta SQL são abordadas, incluindo extensões para dados espaciais em sistemas como PostGIS.
3) Exemplos demonstram a criação de tabelas espaciais e o uso de funções espaciais em consultas SQL.
Este documento apresenta os conceitos básicos de bancos de dados relacionais, comparando-os com sistemas de arquivos tradicionais. Explica termos como entidade, atributo e registro e descreve a estrutura e vantagens do modelo relacional, incluindo a linguagem SQL. Finalmente, discute tendências atuais e referências bibliográficas.
Este documento apresenta os conceitos fundamentais de modelagem de dados, incluindo:
- O que é modelagem de dados e porque é importante modelar os dados de uma empresa;
- Os principais elementos de um modelo de dados, como entidades, atributos e relacionamentos;
- Os principais tipos de modelos na modelagem de dados, como modelo conceitual, lógico e físico.
O documento discute os conceitos fundamentais de modelagem de dados, incluindo o objetivo de representar o ambiente observado, documentar e normalizar os dados. Apresenta as três perspectivas de modelagem: modelo conceitual, lógico e físico, descrevendo as características de cada um.
O documento discute conceitos fundamentais de bancos de dados, incluindo razões para armazenar informações, história do armazenamento de dados, modelos de banco de dados, modelagem de dados usando o modelo entidade-relacionamento, e componentes-chave de bancos de dados como entidades, atributos e relacionamentos.
O documento descreve um curso intermediário de C# que aborda padrões de projeto como Transfer Object, Data Access Object, Singleton e MVC. Também apresenta tópicos como tipos primitivos, estruturas de dados, acesso a dados, formulários, relatórios e projetos de instalação. Explica alguns padrões de projeto com exemplos como TO para transferência de dados, DAO para acesso a dados e Singleton para garantir uma única instância de uma classe. Por fim, descreve os passos para desenvolver um sistema de cadastro de produtos e vendas
Transformação conceitual para Lógico
Tabelas, Campos, Registros
Restrições de Integridade
Chaves Primaria / Estrangeira
SQL para Definição de dados: DDL
O documento apresenta os passos para desenvolvimento de um sistema web para compra de filmes, incluindo diagrama de casos de uso, modelo de banco de dados normalizado e código SQL para implementação no MySQL.
O documento descreve os principais conceitos e elementos da modelagem conceitual utilizando o modelo Entidade-Relacionamento (ER), incluindo entidades, atributos, relacionamentos, cardinalidades, generalização e herança.
O documento descreve um curso de desenvolvimento de aplicações desktop, abordando competências como instalação e configuração de aplicações, interface gráfica, acesso a bancos de dados e geração de relatórios. Também define critérios de avaliação, regras de conduta, material necessário e conteúdo programático incluindo Delphi, componentes, conexão com bancos e exercícios.
Este documento discute os principais modelos de bases de dados, incluindo:
1) O modelo conceitual representa os dados de forma independente de restrições técnicas;
2) O modelo lógico leva em conta limitações e define chaves;
3) O modelo físico adapta o conceitual às características do sistema.
UML é uma linguagem padrão para modelagem de sistemas orientados a objetos. Apresenta diagramas para visualizar, especificar, construir e documentar aspectos estruturais e comportamentais de um sistema, incluindo classes, relacionamentos, casos de uso e sequências de eventos.
AULA 1 - Classes e Objetos com codigicação Java.pptJoberthSilva
O documento resume os principais conceitos de classe e objeto na programação orientada a objetos. Ele define classe como uma denominação para um conjunto de objetos que compartilham atributos e operações, e objeto como uma instância de uma classe. Também descreve como classes e objetos são representados em UML e como são declaradas em Java.
Curso Completo de Linguagem de Programação CJoberthSilva
O documento fornece uma introdução à linguagem de programação C, abordando tópicos como:
1) Breve histórico da linguagem C e suas características;
2) Estrutura básica de um programa C, incluindo variáveis, tipos de dados e instruções de entrada e saída;
3) Operadores aritméticos e lógicos, além de estruturas de decisão e repetição.
Este documento apresenta um treinamento sobre metadados, ensinando o que são metadados, como criar projetos de metadados para cadastros como veículos, e os principais passos para definir tabelas, tipos de dados, relacionamentos e formulários para esses projetos.
1) O documento discute a integração entre as tecnologias UML, CORBA e Java para o desenvolvimento de sistemas.
2) A UML pode ser usada para modelar a análise, projeto e implementação, integrando-se com CORBA e Java.
3) Um método é proposto utilizando UML para modelagem, CORBA para a arquitetura distribuída e Java para a implementação.
Este documento discute arquitetura de sistemas de informação geográfica e modelagem de dados geográficos, incluindo níveis de abstração e extensões de modelagem de dados como OMT-G. Também aborda linguagem de consulta SQL e suas extensões espaciais para manipulação de dados geográficos em bancos de dados.
O documento apresenta os sete passos para modelagem de banco de dados, incluindo definir entidades, dados, tipos de dados, normalização, relacionamentos, revisão por pares e nomenclatura.
Modelagem relacional e normalização de dadosjulianaveregue
1) O documento discute modelagem relacional de dados e normalização para evitar anomalias.
2) A normalização divide tabelas com múltiplos assuntos em tabelas separadas com um único assunto cada.
3) Isso minimiza redundâncias, inconsistências e facilita manutenção do banco de dados.
Aula Grátis de TI para Concursos sobre Modelagem Conceitual de Bancos de Dados pelo Prof. Thiago Cavalcanti.
Leia mais sobre TI para Concursos no blog: https://www.estrategiaconcursos.com.br/blog
1) O documento introduz os conceitos de banco de dados geográfico, apresentando as principais arquiteturas de sistemas de informação geográfica, desde a primeira geração baseada em arquivos proprietários até a terceira geração integrada.
2) A modelagem de dados e a linguagem de consulta SQL são abordadas, incluindo extensões para dados espaciais em sistemas como PostGIS.
3) Exemplos demonstram a criação de tabelas espaciais e o uso de funções espaciais em consultas SQL.
Este documento apresenta os conceitos básicos de bancos de dados relacionais, comparando-os com sistemas de arquivos tradicionais. Explica termos como entidade, atributo e registro e descreve a estrutura e vantagens do modelo relacional, incluindo a linguagem SQL. Finalmente, discute tendências atuais e referências bibliográficas.
Este documento apresenta os conceitos fundamentais de modelagem de dados, incluindo:
- O que é modelagem de dados e porque é importante modelar os dados de uma empresa;
- Os principais elementos de um modelo de dados, como entidades, atributos e relacionamentos;
- Os principais tipos de modelos na modelagem de dados, como modelo conceitual, lógico e físico.
O documento discute os conceitos fundamentais de modelagem de dados, incluindo o objetivo de representar o ambiente observado, documentar e normalizar os dados. Apresenta as três perspectivas de modelagem: modelo conceitual, lógico e físico, descrevendo as características de cada um.
O documento discute conceitos fundamentais de bancos de dados, incluindo razões para armazenar informações, história do armazenamento de dados, modelos de banco de dados, modelagem de dados usando o modelo entidade-relacionamento, e componentes-chave de bancos de dados como entidades, atributos e relacionamentos.
O documento descreve um curso intermediário de C# que aborda padrões de projeto como Transfer Object, Data Access Object, Singleton e MVC. Também apresenta tópicos como tipos primitivos, estruturas de dados, acesso a dados, formulários, relatórios e projetos de instalação. Explica alguns padrões de projeto com exemplos como TO para transferência de dados, DAO para acesso a dados e Singleton para garantir uma única instância de uma classe. Por fim, descreve os passos para desenvolver um sistema de cadastro de produtos e vendas
Transformação conceitual para Lógico
Tabelas, Campos, Registros
Restrições de Integridade
Chaves Primaria / Estrangeira
SQL para Definição de dados: DDL
O documento apresenta os passos para desenvolvimento de um sistema web para compra de filmes, incluindo diagrama de casos de uso, modelo de banco de dados normalizado e código SQL para implementação no MySQL.
O documento descreve os principais conceitos e elementos da modelagem conceitual utilizando o modelo Entidade-Relacionamento (ER), incluindo entidades, atributos, relacionamentos, cardinalidades, generalização e herança.
O documento descreve um curso de desenvolvimento de aplicações desktop, abordando competências como instalação e configuração de aplicações, interface gráfica, acesso a bancos de dados e geração de relatórios. Também define critérios de avaliação, regras de conduta, material necessário e conteúdo programático incluindo Delphi, componentes, conexão com bancos e exercícios.
Este documento discute os principais modelos de bases de dados, incluindo:
1) O modelo conceitual representa os dados de forma independente de restrições técnicas;
2) O modelo lógico leva em conta limitações e define chaves;
3) O modelo físico adapta o conceitual às características do sistema.
UML é uma linguagem padrão para modelagem de sistemas orientados a objetos. Apresenta diagramas para visualizar, especificar, construir e documentar aspectos estruturais e comportamentais de um sistema, incluindo classes, relacionamentos, casos de uso e sequências de eventos.
AULA 1 - Classes e Objetos com codigicação Java.pptJoberthSilva
O documento resume os principais conceitos de classe e objeto na programação orientada a objetos. Ele define classe como uma denominação para um conjunto de objetos que compartilham atributos e operações, e objeto como uma instância de uma classe. Também descreve como classes e objetos são representados em UML e como são declaradas em Java.
Curso Completo de Linguagem de Programação CJoberthSilva
O documento fornece uma introdução à linguagem de programação C, abordando tópicos como:
1) Breve histórico da linguagem C e suas características;
2) Estrutura básica de um programa C, incluindo variáveis, tipos de dados e instruções de entrada e saída;
3) Operadores aritméticos e lógicos, além de estruturas de decisão e repetição.
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdfJoberthSilva
O documento fornece quatro exercícios para praticar operadores ternários e estruturas condicionais if/else em programação. Os exercícios incluem: (1) dizer se um número é par ou ímpar, (2) comparar dois números e dizer se são iguais ou quem é maior, (3) usar operadores ternários para dizer qual de três números é o maior, e (4) usar if/else para dizer quem é maior, menor ou iguais entre números.
A função scanf na programção para dispositivos embarcadosJoberthSilva
Comentando a linha 22 do arquivo new_handler.cpp permite compilar o programa ao ajeitar um bug. O operador ternário é usado para avaliar uma condição e retornar um de dois valores possíveis.
O documento discute a existência de Deus. Afirma que as coisas vivas mostram evidência de um projeto inteligente devido à sua complexidade molecular, e que isso aponta para um Criador. Também menciona a visão dos evolucionistas de que a complexidade biológica surgiu por acaso e seleção natural ao longo do tempo.
A carta se dirige à igreja de Éfeso, elogiando sua perseverança contra falsos mestres, mas repreendendo-a por abandonar seu primeiro amor. Jesus pede que se lembre de onde caiu, se arrependa e volte ao amor inicial, com fé, trabalho e zelo pela verdade.
O documento discute a linguagem de programação PHP, incluindo sua história, características e sintaxe básica. PHP foi criada em 1994 por Rasmus Lerdorf para facilitar a publicação de informações em seu site pessoal e se tornou popular entre comunidades de código aberto. É uma linguagem interpretada, multiplataforma e gratuita que permite a criação de aplicações web dinâmicas executadas no servidor.
JavaScript pode ser incluído em páginas HTML usando tags <script> para especificar o código. O script pode ser colocado em arquivos externos, no cabeçalho do documento, dentro de tags usando tratadores de eventos ou no corpo do documento. É importante que o código JavaScript respeite maiúsculas e minúsculas e evite caracteres especiais.
O documento discute os resistores elétricos, que são componentes que convertem energia elétrica em calor. Existem diferentes tipos de resistores, como resistores de carbono, película metálica e bobinados, que variam em termos de precisão, tolerância, custo e outros fatores. O documento também explica como medir e identificar valores de resistores usando códigos de cores.
Este documento lista vários traços de personalidade negativos e positivos, dividindo-os em quatro categorias principais de temperamento: coléricos, melancólicos, fleumáticos e sanguíneos. Coléricos tendem a ser dominadores e líderes, mas têm dificuldade em aceitar opiniões contrárias. Melancólicos são perfeccionistas e dedicados, porém se cobram demais e se culpam quando erram. Fleumáticos são pacientes, mas podem ser passivos demais e dependentes. Já os sanguí
O documento apresenta os principais conceitos sobre capacitores, incluindo sua estrutura composta por duas placas condutoras separadas por material isolante, sua função de armazenar cargas elétricas e energia potencial elétrica. Também descreve o processo de carregamento de um capacitor e fatores que definem sua capacitância, além de abordar associação de capacitores em circuitos paralelo e série.
O documento discute herança e polimorfismo em Java. Ele apresenta exemplos de como criar uma subclasse Caminhão que herda da superclasse Veículo, com atributos e métodos específicos de Caminhão. Também explica como sobrecarga e polimorfismo funcionam, ilustrando com um exemplo de uma frota de veículos que podem ser de diferentes tipos. Por fim, discute classes abstratas e interfaces, mostrando como definí-las e implementá-las.
O documento descreve a física dos semicondutores em uma aula sobre eletrônica 1. Cobre tópicos como a estrutura atômica de semicondutores, a formação de cristais semicondutores intrínsecos e extrínsecos, e a formação e polarização de diodos a partir da junção de materiais tipo P e tipo N.
1. O documento discute conceitos básicos de algoritmos, incluindo definições, características, formas de representação e estruturas.
2. São apresentados exemplos de algoritmos para fritar um ovo e fazer mousse de maracujá para ilustrar características como recebimento de dados, geração de saída e tempo finito.
3. As formas de representação de algoritmos incluem descrição narrativa, fluxograma e linguagem algorítmica, sendo esta última detalhada com exemplos de entrada de dados
A fibra óptica transmite luz através de filamentos de vidro ou polímeros usando reflexões contínuas. Pode ser usada em cabos com três fibras e conectores. Existem dois modos de propagação - multimodo e monomodo - e a largura de banda depende da tecnologia, podendo atingir até THz. A fibra óptica oferece vantagens como imunidade a interferências, dimensões reduzidas e maior banda de transmissão, mas também desvantagens como alto custo de instalação e manutenção e
O documento discute a história da engenharia ao longo dos tempos, desde os egípcios, mesopotâmicos, gregos e romanos até a era moderna. Também aborda o desenvolvimento da engenharia de computação e telecomunicações e a importância das tecnologias de informação e comunicação em Angola.
O documento discute os principais meios de transmissão de dados, incluindo fios de cobre, fibras ópticas e rádio. Explica como cada um funciona e suas características, vantagens e desvantagens. Também aborda tópicos como atenuação, categorias de cabos e espectro eletromagnético.
O documento descreve os principais meios de transmissão de dados em redes de comunicação, divididos em meios guiados (cabos) e não guiados (transmissão por rádio/microondas). Detalha os tipos de cabos, como cabos de par trançado (UTP, STP, SSTP), coaxiais e fibras ópticas, e seus usos. Também explica a transmissão por rádio/microondas, satélites e infravermelho, ressaltando suas vantagens para comunicação a longas distâncias.
O documento descreve os principais componentes e funções da Unidade Central de Processamento (CPU). A CPU é responsável por controlar a execução de instruções e realizar operações de processamento. Ela é composta por unidades funcionais, registradores e barramentos. Os registradores armazenam informações temporárias como dados, endereços de memória e a próxima instrução a ser executada. A CPU utiliza diferentes modos de endereçamento como imediato, direto e indexado para acessar dados na memória durante a execução de instruções.
O documento discute a linguagem de programação PHP, incluindo sua história, características e sintaxe básica. PHP foi criada em 1994 por Rasmus Lerdorf para facilitar a publicação de informações em seu site pessoal e se tornou popular entre comunidades de código aberto. PHP é uma linguagem interpretada, gratuita e multiplataforma usada para desenvolver aplicações web que geram conteúdo dinâmico.
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)