You are on page 1of 125

 

 
 
 



Composições de objetos, ações, pessoas, etc...







Sistemas de informação

 

 
 

 

Composições de objetos, ações, pessoas, etc...








É um modelo de uma célula

 

 
Uma representação abstrata e simplificada um sistema observado É uma representação abstrata da informação em um sistema

 Mas sistemas de computação também são bastante abstratos







By ferrugem - Pág 01
 





Analista de Informações



 




Facilita a comunicação

Desenvolve a compreensão



Define, especificando e limitando, a informação a ser tratada



Permite a verificação e validação

 




 

 Confirmar a correção de um modelo em relação a outro
  
 Compõe 
 
Confirmar a correção de um modelo em relação ao


 



 
   


By ferrugem - Pág 02
 

 


Progressivamente mais detalhada até a programação

 



 

 
Existem vários métodos 
 
 Não está sujeito às suas limitações
 Ideal para entendimento e conversação

Estável a longo prazo






 

 
Observação dos objetos 


Não adota um produto, dispositivo específico ou meio
 







Representação dos objetos

Verificação da fidelidade e coerência

Validação do Modelo

By ferrugem - Pág 03
 


Modelo Físico
O que é uma abstração

 Formas principais de abstrações

Representa os dados na aplicação Classificação

Composição
Totalmente dependente da solução adotada Formas adicionais de abstração
 Generalização

 Identificação






 


Métodos diferentes de descrever o modelo de informação

Algumas formas de usar esses métodos


 

 
 
  é o processo mental de separar um ou mais

sua compreensão



 Seleção de Detalhes Específicos

 Algo pode ser considerado abstrato se não existe em nenhum


lugar particular no tempo e espaço

 O que existe são suas instâncias (membros da abstração)


By ferrugem - Pág 04
 

Abstração: Mulher Abstração: Mulher

 

 

Abstração: Mulher Abstração: Mulher

 

 

Abstração: Mulher Abstração: Célula



By ferrugem - Pág 05
 

Abstração: Célula Abstração: diferentes formas




As abstrações formam modelos



 

Abstração: explicando (I) Diferentes Abstrações


Uma abstração é:

Uma idéia



Uma abstração não existe no mundo real



 

 Diferentes Abstrações (1)


Simplificação de Detalhe

Os detalhes são deixados







By ferrugem - Pág 06
 

Diferentes Abstrações (2) Resumo: Abstração


Abstração:



Utilizar detalhes que facilitam a compreensão



 

Diferentes Abstrações (3)

Tipos Básicos de Abstração



 

Diferentes Abstrações (4) Tipos Básicos de Abstração


Classificação

Agregação

By ferrugem - Pág 07
 

Classificação Classificação: Exemplo






Parte da individualidade do objeto ou sistema analisado é eliminada

Raça
Consideramos o objeto como um exemplar de uma "classe padrão"

 



 

Classificação: Explicação Classificação: Instanciação


Na classificação o que estamos fazendo é imaginar uma idéia Processo reverso da Classificação




simplificamos o problema em questão. Também poderia ser chamada de:

Individualização

 

Classificação: Exemplo Instanciação: Exemplo


  Instanciação

Fluminense, Vasco, Botafogo, América, São Paulo,


 
graduação



Brasil, Argentina, França, Estados Unidos 

 

Classificação

By ferrugem - Pág 08
 

Agregação ou Composição Mais Abstrações


É feito de Generalização

É composto de Identificação

 composição 


É como vemos uma bicicleta ou um carro. Ao eliminar a



compreensão do objeto analisado.

 

Composição: Exemplo (I) Generalização (é um, é como)


 generalização



O processo reverso da generalização é a especialização


 

Composição: Decomposição Generalização: Exemplos








Automóvel, Avião, Navio



Computador, Rádio, Televisão

By ferrugem - Pág 09
 

 Identificação
 Com a identificação nós somos capazes de entender como


 

Ao identificar unicamente um objeto podemos separá-lo de


Meios de Transporte Terrestres Públicos 
atributos e características que só pertencem a ela, e não

Meios de Transporte Terrestres Públicos em Vias Férreas



 

Generalização x Classificação 


Classificação: Há uma diferença entre instanciar e identificar.



Generalização Uma instância deve possuir uma identificação e uma identificação


se aplica a uma instância.
Classes são outras classes mais bem detalhadas

A identificação permite a que duas instâncias sejam reconhecidas
como distintas ou como representações de um mesmo objeto


 

Generalização: Efeito nos Objetos 


Com a generalização podemos compreender uma relação O mundo é muito complicado
muito comum entre classes, que é a que permite que qualquer

 Muitas coisas são feitas normalmente, ou idealmente, de um
modo fácil, porém permitem muitas exceções e tratamentos

Utilizando judiciosamente a generalização podemos simplificar
 Começamos sempre pelo modo mais fácil

"Cenário Feliz"

By ferrugem - Pág 10
 





 
para identificá-la 
Porém...

Porém....
Existem pessoas sem CPF, então vamos usar o nome próprio,
o nome do pai, o nome da mãe e mais um CPF identificador, 

Porém, assim já fica complicado demais... 
É melhor gerar um número de matrícula...

 

Conclusão

Abstrações permitem que os problemas e soluções sejam



Abstrações eliminam detalhes indesejados 


Abstrações reforçam detalhes importantes 











 

Conclusão

Abstrações Básicas
Classificação / Instanciação
 
Composição / Decomposição
 
Abstrações Mais Avançadas
Generalização / Especialização  
Identificação
 


 

 

 

By ferrugem - Pág 11
 

 
 

 

 Quem é o responsável por ela?






Em que parte do sistema será utilizada?

Por que ela é necessária?

Como ela é? (como será implementada, quais seus atributos?)

Quanto espaço ela ocupará (fator de custo)?



 

 
Em uma reunião de projeto, cada item deverá ser Essas perguntas são abertas, não exigem apenas uma
 resposta sim ou não, mas sim que pensemos sobre elas


 

 Vamos usá-las para verificar nossos modelos







 


  


Como explicá-la

 

Por que essa parte está presente? O que ela significa?







Quanto custará usar essa parte?

By ferrugem - Pág 12
 

 










 




 


 
 
  





  



 
   


 

 







By ferrugem - Pág 13
 

 
Entidades: Retângulos

Atributos: Listados no retângulo que possuem características próprias e que se relacionam




 

 O que são as coisas?





 



 





O que precisarmos para modelar a informação em um sistema

 

Qual notação adotaremos 


 


 Ou seja, devemos ser capazes de identificar as instâncias



By ferrugem - Pág 14
 

 
 Normalmente as entidades são modeladas como retângulos
organização ou outra idéia abstrata sobre a qual o sistema deve


 

Abstração de Classificação

Uma entidade é um conjunto não vazio de objetos



 

 
Cada instância de uma determinada entidade tem características
similares (mas não iguais), o mesmo comportamento e uma
identidade própria.

 não






 

 

Locadora de Vídeo
 que possuem características próprias



  que possuem características próprias e que


Características = Atributos
Empréstimo







By ferrugem - Pág 15
 

 
Características que toda instância possui, mas que variam Filme (atributos possíveis) 
de valor entre uma instância e outra  

Algumas características podem ser opcionais  


Data de Lançamento Data de Lançamento
  
 

 


Empresa de divulgação



 

 
 

 O valor deve ser de um domínio


 O domínio é o conjunto de valores possíveis para os atributos


Conhecido também como 

Data de Lançamento




 

 
 Números
Aqueles que são necessários e suficientes 

Lembrar das principais características das nossas abstrações Moeda (reais, dólares)

Eliminar detalhes que não são importantes

Reforçar os detalhes importantes 

Lógicos (Sim ou Não, Verdadeiro ou Falso)

By ferrugem - Pág 16
 

 Notação para Atributos


 


Salas de um prédio


 



 

Notação para Atributos Notação para Atributos


Nossos atributos serão 




 



 

Notação para Atributos Notação para Atributos


 Podemos também listar
os domínios de cada







By ferrugem - Pág 17
 

Notação Chen Para Atributos Representação dos Relacionamentos


Relacionamentos são representados por linhas

As linhas possuem símbolos que vamos explicar

 

 


possuem características próprias 


 uma relação, no sentido matemático do termo, entre os
 



 

 



Professores dão aula para uma turma 
 mais básicos de matemática:
Matemática


Também poderíamos usar uma
 notação mais "matemática" 

Turma = { Matemática, Português,


 

By ferrugem - Pág 18
 

 
 
instâncias de uma Entidade podem se relacionar, uma certa
quantidade de vezes, com instâncias da outra entidade
Também podemos descrever da 


 Matemática


 Português

 Ciências


 

 
 A pergunta sobre "quantas vezes as instâncias podem se
relacionar" é muito importante e deve ser modelada

As possibilidades são muitas A resposta é modelada na 





 

 


Matemática: Alice, Bruno e Carlos indicando-se quantas vezes, no máximo, uma instância pode
Português: Alice, Carlos e Daniela se relacionar com uma instância da outra entidade

Ciência: ninguém 



Matemática


Português


Ciências


By ferrugem - Pág 19
 

 
Cada instância de uma entidade só pode se relacionar com 
uma instância de outra entidade Entidade: Mãe, Filho/a



Em uma escola primária



Em uma universidade esse relacionamento não é mais 1xN

 

 
 Quando são possíveis quantos relacionamentos quantos



 

Entidades: Caminhão, Reboque



 

 

Cada instância de uma das entidades pode ser relacionar
com várias instâncias da outra entidade, mas essas só podem




By ferrugem - Pág 20
 

 

falamos não só da Cardinalidade Máxima, mas também
da Cardinalidade Mínima

A cardinalidade mínima é sempre 0 ou 1

A cardinalidade máxima é sempre 1 ou N

 

Cardinalidade Mínima = Obrigatoriedade 


Assim ficamos sabemos, basicamente, se o relacionamento é
obrigatório ou opcional

Isso é, se cada instância da entidade deve ter, ou não,


um relacionamento com instâncias da outra entidade

 

 Conclusão
possuem características próprias




By ferrugem - Pág 21
 

Conclusão 
Entidades são classes de objetos 


Entidades possuem características, descritas por Atributos

Atributos possuem valores de um Domínio 




Devem ser definidos um número mínimo e máximo de


relacionamentos entre as instâncias das Entidades

 



 






 

 
 

 

 



 




By ferrugem - Pág 22
 








Notação própria, ligada diretamente ao modelo relacional




 












 











CASE, desde visualização simples até modelagem completa

By ferrugem - Pág 23
 

 

 












 

 
 




 
 

 

 

 

 

 

 


 



By ferrugem - Pág 24
 

 

 


 


 





 

 







 

 

 






By ferrugem - Pág 25
 

 
Uma unidade está só em um condomínio, e está em algum 
condomínio obrigatoriamente alguém
 
posse é obrigatório
Linha contínua: o condomínio faz parte da identificação


alugada por alguém

não é obrigatório

 

 
 
 que a unidade não é identificada
por seu proprietário ou seu inquilino






 

 

alguém

posse é obrigatório




By ferrugem - Pág 26
 

 
 
 Para cada filme, é necessário saber seu título e sua categoria
(comédia, drama, aventura, ...).


Filmes longos, não duas cópias

 Não existem cópias de filmes



 

 

  
 
Por isso, é necessário manter a informação dos atores






 

 

 

  





Para cada cliente é necessário saber seu nome e sobrenome,
 

Além disso, cada cliente recebe um número de associado.


 

By ferrugem - Pág 27
 

 




Um cliente pode ter várias fitas em um instante no tempo.

Não são mantidos registros históricos de aluguéis.

 

 

  Cada Fita contém um filme








Empréstimo?

 

 

O Empréstimo é um relacionamento entre duas entidades Cada Fita contém um filme

Precisamos guardar algum dado sobre o empréstimo Cada Filme está em pelo menos 1 fita, possivelmente em mais

No caso, não foi pedido



By ferrugem - Pág 28
 

 

Por que um retângulo é de bordas retas e o outro de bordas 


 relacionamento não é identificador
Mais tarde veremos a questão da "dependência" Não há dependência

Indica que a fita não existe sem o filme 



 

 

 



 Uma fita pode não estar com



No ERWin, não é possível indicar a


 várias fitas

 

 

No ERWIN, o relacionamento 1:N só


representa a cardinalidade mínima



By ferrugem - Pág 29
 

 

 

 

 

 
O DBDesigner é uma adaptação direta do modelo relacional

Não são permitidos relacionamentos NxM



By ferrugem - Pág 30
 

 

 

 

 

 
Números que não sofrem operações não são verdadeiramente Se quisermos controlar bem as categorias possíveis

Se quisermos registrar que os filmes só podem ser de algumas

Usamos uma entidade para definir uma especificação


By ferrugem - Pág 31
 

 
 
 







 

 O Relacionamento de Herança


 
  







 

 
 Aluno: Aluno de Graduação, Aluno de Pós-Graduação,
Aluno de Extensão
 Animal: Carnívoro, Herbívoro, Onívoro

 

 





By ferrugem - Pág 32
 

 Herança Parcial


Na prática, nenhuma dificuldade no modelo conceitual Algumas instâncias pertencem a entidade mais geral e não
pertencem a nenhuma entidade mais específica

Na implementação futura, dificuldades de encaixá-lo nos 


SGDB disponíveis


Cliente VIP (classe mais específica)

 

Tipos de Herança Herança Exclusiva


 Se uma instâncias pertence a uma entidade mais específica,
não pertence a outra



Automóvel (classe mais geral)

Carro de Passeio (classe mais específica)

Utilitário (classe mais específica)


 

Herança Total Herança Sobreposta


 Uma instância pode pertencer a várias entidades específicas
pertencem a pelo menos uma das entidade mais específicas 

 
 

Aluno de Graduação, Aluno de Pós Graduação, Aluno de Graduação, Aluno de Pós Graduação,
Aluno de Extensão (classes mais específicas) Aluno de Extensão (classes mais específicas)

By ferrugem - Pág 33
 

 

 
A Herança sobreposta deve ser evitada 

Deve ser substituída por entidades que representem



Devemos privilegiar as heranças totais e exclusivas



 

Desenhando Herança - IE 



 



 

Desenhando Herança - IDEF1X 






By ferrugem - Pág 34
 

 
 No discurso fluente durante uma entrevista, entidades são


  

  

O aluno é identificado por seu CPF.

A escola é identificada por seu nome.






 

 

é o fato de algo que precisa ser lembrado representar um
conceito ou idéia completa.
Funcionário

Caminhão

Salário?



 

 Tipos Básicos de Entidade


Lembrando da Técnica Geral com Modelos 
Observação dos objetos
Papéis exercidos

 

 Interações

Especificações


Representação dos objetos


Verificação da fidelidade e coerência
Validação do Modelo

By ferrugem - Pág 35
 

 

Pessoas, Móveis, Veículos, Prédios, Documentos, etc...




 

 
Marcam a interação entre dois ou mais objetos




Também implicam em observar o tempo

 

 
Objetos podem assumir funções diferentes Um aluno faz uma Matrícula em uma certa data em uma escola
Papéis diferentes
Essa matrícula é identificada pela escola, pelo aluno e pela data


Principalmente Papéis assumidos por pessoas

Funcionário, Professor, Aluno

By ferrugem - Pág 36
 

 





 

Exemplo de Interação Observação


Acontece em um período de tempo Interação e eventos são semelhantes, pois nelas o
tempo é importante.
Exigem guardar data, hora, duração Não há necessidade de se preocupar em classificar os
objetos, basta encontrá-los
Reunião, Aula


 

 Especificações
Cada escola marca datas de reuniões de pais e filhos 

Cada reunião é identificada pela data e pela escola 


controlando os possíveis valores
Cada reunião deve informar o motivo 

fábrica
Fábrica


By ferrugem - Pág 37
 

 
Cada aluno pertencerá a um tipo 
se você não pode explicá-la, provavelmente não precisa

Cada tipo de aluno é identificado por um nome

Cada tipo de aluno dá direito a um desconto, é preferível que tenham vários.
que é explicado em um motivo


Entidades não possuem valores, apenas atributos



Entidades devem possuir instâncias unicamente identificáveis.

 

Exemplo de especificação 


Pessoas e organizações que interagem com o sistema
são candidatos a entidade quando:

Precisamos nos lembrar alguma coisa específica sobre elas



Devemos aplicar essa regra em relação à necessidade


Especificação de identificação e endereçamento, por exemplo.
Isso não se aplica a "logons" ou "passwords" utilizados
para a segurança do sistema, pois segurança é um
problema tratado no projeto físico.

 

Atenção para as Mudanças 


 Relatórios raramente são entidades.
 Normalmente eles são apenas os resultados de um
processo que acessa várias entidades.

Linhas de relatório geralmente são entidades.


Porém, nenhum valor calculado ou derivado é atributo




Substantivos em regras de negócio são normalmente entidades

By ferrugem - Pág 38
 

 
Produtos, quando não são únicos, são normalmente entidades.  Regras e exceções relacionadas
 
Papéis, como funcionário, atendente, apostador, etc., regras de negócio.

são bons candidatos para entidades. Outros comentários e
Definição observações

saída de dados é normalmente uma entidade (ou mais). Uma idéia da quantidade

esperada de instâncias no





Correlação, descrevendo outras partes


da análise que se referem a ela

 

 
Relatórios Sinônimo = palavras diferentes, conceito igual

Formulários de entrada de dados
Homônimo = palavras iguais, conceito diferente


Fichas, como fichas de cadastro, de empréstimo, etc. 

Pedidos, requisições e documentos do gênero.

Documentos contábeis e fiscais, como nota fiscal.

 

 
 
O que ela é?

 Quem é o responsável por ela?

Sistemas já existentes

Bancos de dados já existentes Em que parte do sistema será utilizada?

Outra forma de encontrar entidades é buscar sistemas Por que ela é necessária?
semelhantes já resolvidos e padrões de análise ou padrões
 Como ela é? (como será implementada, quais seus atributos?)

Quanto espaço ela ocupará (fator de custo)?




By ferrugem - Pág 39
 

 
Essas perguntas são abertas, não exigem apenas uma Permitem definir outro objeto que não é o sendo tratado
resposta sim ou não, mas sim que pensemos sobre elas Um exemplo de atributo referencial é "fábrica" para
"automóvel", referenciando a fábrica onde foi construído.
Elas cobrem grande parte das preocupações que
 É uma opção do analista criar entidades que permitem
a substituição de um atributo referencial por um relacionamento
Especificações

 

 
Todo atributo descreve de alguma forma a instância da entidade. Descrição

 Domínio (valores válidos, como inteiro, real, string ou








 

 Em uma conversação


Alguns atributos são especiais e definem a entidade 

Mesmo que não de forma única São substantivos



Definem qualidades, características, propriedades
Endereço
São conceitos incompletos, que não existem por si

By ferrugem - Pág 40
 

Onde encontrá-los? 


Colunas e Campos de relatórios, formulários e planilhas Compõe

 É um (herança)











 

 
A principal característica das entidades de um sistema é Os relacionamentos também
 
 Além dos atributos e até mesmo

Funcionário do departamento
Contrato do veículo

 

 
 
ativa (mãe gera filho) ou na voz passiva (filho é gerado por mãe).
 Algumas notações permitem que se usem os dois nomes

Máquina fabrica produto 
 
da linha (ou se dá preferência a esse nome quando apenas


By ferrugem - Pág 41
 

 
 

Função no sistema Com a evolução da análise, muitas vezes acontece de


trocarmos essa escolha por um mais fácil de usar

São estabelecidos
São destruídos


Comentários

 





No mínimo, o somatório de todos os atributos e relacionamentos
será essa identificação

forem iguais, as entidades são a mesma entidade

 

 
 Operações Top-Down

Operações Bottom-Up
Existem vários possíveis



Chave primária (na nomenclatura relacional)

By ferrugem - Pág 42
 

 
 Uma entidade pode ser dividida em vários tipos

Escola pode ser dividida em escola de ensino básico
 e escola de ensino médio











 

 

Uma entidade pode ser dividida em entidades que não
 
 Reunião pode ser dividida em reunião de pais e
professores e reuniões internas




 

 
 Um relacionamento pode ser dividido em vários


Nome do Pai, Nome da Mãe podem ser transformados
em uma entidade chamada Responsável Legal 

By ferrugem - Pág 43
 

 
Um relacionamento pode ser tão complexo que merece Ação mais normal no nosso caso

Sempre buscaremos criar as principais entidades desde o início
Tendência dos métodos atuais, influência do modelo relacional
Matrícula era um relacionamento, mas como precisa
guardar alguma informação (a data), virou entidade

 

 
 
 percebemos que há uma hierarquia
 Equivale a criar um relacionamento ou uma herança

 

Operações Bottom-Up 




Ação normal no nosso caso

 







By ferrugem - Pág 44
 

Conclusão 

Possuímos agora bastante ferramentas de trabalho com o 


 

 


 

 
 

 







 

 
 

Objetos tangíveis

Papéis exercidos
 

 



By ferrugem - Pág 45
 

 
 São pessoas, objetos, locais, 
 
organizações ou outra idéia
  
 Código do Centro

 
 

Objetos tangíveis
Código da Unidade
Papéis exercidos



Interações
Código do Departamento
Especificações

 

 
A UniPovo é dividida em centros universitários Descrevem um conceito como um todo, não possuem um valor
Exemplos de centros são: O Centro de Ciências Exatas (CCE), 



 
 
Cada centro universitário é composto de várias unidades. 
 Código do Centro
uma escola, e várias outras denominações que
são agregadas ao nome 
Por exemplo, a Escola Politécnica (EsPol) é uma unidade, Código da Unidade
como são também o Hospital Universitário (HU) 

Código do Departamento

 

 
 

 
identificação da Unidade
As unidades, como os centros, também só precisam ser 


Por sua vez, as unidades são também obrigatoriamente




Os departamentos também possuem um nome e um código São organizações cumprindo um 
(como Departamento de Ciência da Computação - DCC), organização maior



By ferrugem - Pág 46
 

 
Primeiro, só as entidades 
 das chaves estão definidas

 

Não esqueça que as chaves
Setas contínuas 




 

 
 Por que a UniPovo não é uma entidade?
 Porque é um objeto único
 
 
 Porque é um substantivo próprio, logo no máximo seria
tenham pelo menos uma divisão 
Por que Universidade não é uma entidade?
Porque só teríamos, por definição, uma instância, ou seja,
é um objeto único

 

 
 Na UniPovo, nos garantiram que só existiam centros,


Porém, em outras universidades (e talvez no futuro da UniPovo),

Escolhemos uma notação mais

Uma opcão é criar uma estrutura recursiva




By ferrugem - Pág 47
 

 
Uma pessoa é uma coisa tangível

O professor é um papel (função) que a pessoa toma




 

 

 

 
Os professores estão alocados nos departamentos, 
porém podem mudar de departamento CPF (que o identificará)
Não podem ser de nenhum departamento 
nome da mãe
É possível (mas não provável) que um departamento
não tenha professores Endereço, na forma rua ou


2 números de telefone

By ferrugem - Pág 48
 

 

 

 
Cada departamento pode ser responsável por um ou mais cursos Os cursos possuem um código e um nome e um grau.
O Departamento de Ciência da Computação, A UniPovo fornece vários graus de diploma, como
por exemplo, é responsável pelos cursos de graduação, pós-graduação, extensão, etc...
Bacharelado em Ciência da Computação e
Tecnólogo em Redes de Computadores
Um curso é equivalente a atribuição de um diploma

Manter cursos e formar pessoas nesses cursos é a
função mais importante da Universidade

 

 
Um curso é um conceito completo Para cada curso é importante conhecer:
a licença do MEC,


 

 avaliação corrente do MEC.


Possivelmente um curso também tem uma data de
Interpretação "entendida" de uma "coisa tangível"
encerramento, o que é raro na graduação mas
 bastante comum na extensão.

Interpretação "entendida" para um evento

By ferrugem - Pág 49
 

 
Assim, cada currículo deve ter anotado quantos créditos
são precisos em cadeiras optativas (no mínimo)

Sobre um currículo queremos saber:


data de início, que o identifica junto com o curso,

data de extinção

texto do currículo

 

 
Um detalhe importante é que durante sua existência um curso Um currículo é formado de cadeiras
pode ter vários currículos
As cadeiras não são propriedades dos currículos
Esses currículos, inclusive, podem estar valendo simultaneamente
Quando um currículo começa, os alunos já inscritos no As cadeiras podem estar associadas a vários currículos
curso ainda ficam no currículo anterior 
É possível criar uma nova inscrição do aluno no currículo Por exemplo, Cálculo I é parte de quase todos os
novo, mas isso não é obrigatório currículos de cursos de Ciências Exatas


 

 
As cadeiras de um currículo são divididas em
obrigatórias e optativas
As cadeiras optativas são muitas

Porém há um apenas requisito mínimo que precisa ser cumprido


Por exemplo, no currículo atual de Tecnólogo em

cada uma valendo 4 créditos, porém só são precisos 12 créditos

By ferrugem - Pág 50
 

 
Sempre que encontrarmos sentenças como: "Um curso
possui vários currículos", devemos preferir modelar como

Veremos mais tarde que isso nos ajudará a criar
Modelos de Entidades e Relacionamentos já
compatíveis com a Primeira Forma Normal do


 

 
Cuidado, algumas informações
desse desenho só aparecerão


pré-requisito



 

 

As cadeiras são fornecidas por um departamento,


Cada cadeira possui um código, um nome, uma data de


criação, uma data de extinção e várias ementas


Mas o significado é o mesmo

By ferrugem - Pág 51
 

 
 A ementa, porém, vai variando com o tempo, e é importante
cadeiras que são seus pré-requisitos. Uma cadeira pode 
ser pré-requisito de muitas cadeiras
Assim, cada cadeira possui, na verdade, um histórico

Cada ementa possui uma data de início de validade, uma

e um conjunto de livros de referência
A ementa também possui um número de horas e uma
quantidade de créditos

 

 

 

 
A cadeira é um conceito abstrato, que define muito pouco.
A definição mais detalhada é dada pela ementa

Mas a ementa também é um conceito abstrato. A cadeira/ementa


só existe realmente quando é criada uma turma que a implementa

By ferrugem - Pág 52
 

 
A turma tem um código e uma lotação permida




(mais tarde trataremos de matrículas)

 

 
Cada turma possui vários horários, sendo que cada horário
tem uma sala, uma hora de início, um dia da semana e uma
duração em minutos

 

 
A turma, então, implementa uma ementa válida de uma cadeira. 
Os horários indicam como a turma ocorre. Os professores são o título, o autor, a edição, o ano de edição e a editora.
responsáveis pela turma e os alunos se matriculam nela Cada livro é identificado por seu ISBN.
(e não nos horários, nas ementas ou nas cadeiras) Veja no glossário informações mais detalhadas sobre o ISBN


é uma dessas coisas que parecem bastante simples,




By ferrugem - Pág 53
 

 
Cada ementa pode usar vários livros e um livro pode ser
usado em várias ementas

Uma ementa pode não ter livro nenhum opcionalmente, porém





 

 




nome do pai, nome da mãe,


endereço completo (rua,




 

 
Se são vários autores, não deveríamos criar uma entidade autor? Um aluno faz inscrições em cursos

Nesse caso não parece importante para o sistema ficar Cada Inscrição tem:
 um número,

 uma data de inscrição,
uma data de conclusão (opcional),

um meio de inscrição (vestibular, transferência, etc.), e


By ferrugem - Pág 54
 

 
Cada matrícula possui:

uma identificação,



uma data de aprovação,





uma presença,

média, reprovado por falta, etc.) e
observações

 

 

 

 
Em cada inscrição o aluno pode fazer matrículas em turmas Veja outra complicação: no boletim de um aluno aparecem
as notas das matrículas da inscrição do aluno no curso,
Um aluno pode cursar cursos diferentes, com inscrições porém as notas não são identificadas pela matrícula, mas
 sim pela cadeira da ementa da turma da qual a matrícula pertence
Ele pode se inscrever várias vezes no mesmo curso O mundo real não é fácil para quem faz sistemas de informação
por exemplo, por ter a matrícula cancelada em algum

Em cada inscrição, se matricular muitas vezes em cada cadeira


By ferrugem - Pág 55
 

 

 

 
Finalmente, um aluno pode, em uma inscrição, aproveitar
notas de outra inscrição, isto é, aproveitar matrículas onde
foi aprovado em outra inscrição. Assim, uma aluno de
Computação que foi transferido da Engenharia pode
aproveitar a nota de Cálculo I, por exemplo

pedido, uma data de aprovação e um número de processo.

 

 

By ferrugem - Pág 56
 





Formalização

 

 
 




Academicamente, é usado o nome relação


Vem da noção de relação entre conjuntos



 

 
Introdução Prática

Formalização

By ferrugem - Pág 57
 

 
Uma tabela é um conjunto não-ordenado de linhas

As linhas são também chamadas de tuplas
  
Cada linha é composta por uma série de campos






 

 
Cada campo é identificado por um nome de campo As linhas não estão ordenadas
 A ordenação é conseqüência da necessidade de listar

Não sabemos qual a n-ésima linha



A ordem de recuperação é arbitrária

Porém

Em alguns SGDB a implementação ordena as linhas e


dão um número para elas...

 

Tabelas: Terminologia Prática 





Não podem ser divididos


 
Por exemplo, endereço











By ferrugem - Pág 58
 

 Sumário
 Introdução Prática

 
partir de critérios envolvendo campos de uma ou mais linhas




 

 
 


Esquemas de Relação





Relações

 

 

 é um conjunto de valores atômicos



Domínios são normalmente especificados definindo o




By ferrugem - Pág 59
 

 
 
pessoas possíveis

Datas : conjunto de todas as datas possíveis
Formato: o próprio número

combinações possíveis de 12 dígitos


combinações possíveis de 8 dígitos 0 significa não informado







 

 
Normalmente especificamos um formato para o Domínio 




 

Significa a letra mais, seguida de dois números, 


seguida de um espaço, seguida de dois números,
seguida de um espaço, seguida de quatro números, 
seguida de um traço, seguida de quatro números


 

 
 

 Tipo de Dados: Números Reais entre 0 e 200

 

Outras informações adicionais que auxiliam a interpretação 

By ferrugem - Pág 60
 

 

 

 


O grau da relação é o número de atributos (n) Não se aplica

Não é conhecido
O esquema de relação descreve uma relação, chamada R
Não existe

 

 
 Uma Relação R é um sub-conjunto do produto cartesiano
dos domínios que definem R
Cliente (Nome, CPF, Telefone, Endereço, Sexo)


O produto cartesiano define todas as possíveis
dom(Telefone) = Números de Telefone Locais combinações de valores dos domínios
 

  Você pode construir uma definição melhor?




By ferrugem - Pág 61
 

 
 
< Júlia, 15/3/1980, Feminino > }
O esquema da relação define os valores possíveis para


A relação é o conjunto de tuplas válido em algum momento






 

 

 
 

   


   
   
   Júlia
   Júlio

  
 
   
 
 
 

 

 
 Normalmente, cada linha de uma relação é interpretada
como um afirmação







By ferrugem - Pág 62
 

 
Intenção do esquema R 
É o esquema da relação

Extensão da Relação ou

Estado da Relação 
 Esquemas, Relações, Atributos e Tuplas

 

 

Como a Relação não é ordenada na Teoria de Conjunto,


 
então tuplas de uma relação não são ordenadas 


Como a lista de valores da tupla é ordenada, nossas os


atributos são ordenados dentro da tupla
É possível definir um modelo relacional onde isso 
não é necessário



 

 
Exigimos que os valores dos atributos sejam atômicos 

 

By ferrugem - Pág 63
 

 
 Uma Chave Candidata é uma coluna ou conjunto de colunas
 


 

 





 

 
Uma Chave é um conjunto de campos cujos valores A Chave Primária é a coluna ou combinação de colunas
 


A Chave Primária é escolhida entre as Chaves Candidatas



A escolha é obrigatória

 

 
 Uma Chave Alternativa é uma Chave Candidata que não
foi escolhida para ser Chave Primária



 Porém, em muitos BDs isso só pode ser feito definindo-se
um índice, o que afeta o desempenho


By ferrugem - Pág 64
 

 
A escolha da Chave Primária é uma escolha obrigatória
e também essencial

Veremos que as Chaves Primárias são usadas como Chave


Estrangeira, e isso é um fator importante na escolha

Então, melhor esperarmos um pouco...

 

 
Relação : tabela





Nome não é uma boa chave primária

Endereço? E se dois funcionários morarem juntos?

Chave Primária: CPF

 

 
Uma Chave Estrangeira é uma coluna ou conjunto de colunas Restrições de Integridade
de uma tabela que são Chave Primária em alguma tabela

Restrições de Chave Estrangeira
As Chaves Estrangeiras permitem a implementação de


Chaves Estrangeiras implicam em Restrições

By ferrugem - Pág 65
 

 
Chaves definem restrições de integridade 


No caso da Chave Primária, a integridade é a unicidade 



A princípio, um BD relacional não tem como saber nada em
relação a unicidade dos valores

A definição da Chave Primária define a restrição de integridade

 

 
Integridade de Domínio Trata-se da definição das chaves primárias e alternativas








 

 
O valor de um campo deve pertencer ao domínio 
Estrangeira devem aparecer na Chave Primária de


By ferrugem - Pág 66
 

 

Na inclusão e alteração de uma linha na tabela que contém


uma Chave Primária na tabela referenciada

Na alteração e exclusão de uma linha na tabela referenciada


Deve ser garantido que o valor da Chave Primária nessa
linha não apareça como Chave Estrangeira

 

 
Restrições do Modelo Relacional Q, R, S serão nomes de relações

Restrições de Domínio
q, r, s serão nomes de estados de relações
Restrições de Chave
t, u, v serão nomes de tuplas
Restrições de Integridade do Esquema Relacional

 

 
Um nome (como ALUNO) indicará o conjunto atual de
tuplas em uma relação (a instância ou estado atual)

Uma descrição como ALUNO(Nome,Nota) indicará um


esquema de relação

By ferrugem - Pág 67
 

 
 Uma super chave de R é um conjunto de atributos para
o qual não é possível encontrar duas tuplas com os


 Toda relação tem pelo menos uma super-chave
 
Já visto anteriormente

 

 
Uma relação é um conjunto de tuplas Uma Chave C de uma Relação R é uma Super Chave de R

Em um conjunto, todos os elementos são diferentes
(definição de conjunto)

Tuplas são diferentes que define C, o conjunto resultante não é uma Super-Chave de R

Nenhum par de tuplas pode ter a mesma comibão de Uma Chave é uma Super-Chave mínima, sem redundância


em um esquema de relação R com a propriedade que
nenhuma instância r de R possui a mesma combinação de



 

 
Todas as Chaves são consideradas Chaves Candidatas

Uma Chave Candidata é designada como Chave Primária


da Relação (PK, de Primary Key)

A Chave Primária é usada como identificador da relação

A escolha é arbitrária, porém favorecemos as menores Chaves

By ferrugem - Pág 68
 

 

 

 




 

 

By ferrugem - Pág 69
 

 
A restrição de integridade de entidade diz que nenhum valor
de chave primária pode ser nulo

Para ser possível identificar a entidade

 

 
A restrição de integridade referencial é especificada
entre duas relações

Mantém a consistência

Ela diz que uma tupla de uma relação que possui uma
chave estrangeira que referencia outra relação deve




 

 







By ferrugem - Pág 70
 

 
As relações de integridade vêm da existência de relacionamentos
entre as entidades representadas pelos esquemas de relações



 

 





 

 
Chaves são identificadores

Relacionamentos são mostrados como Chaves Estrangeiras

Ainda existem outras restrições, conhecidas como restrições


semânticas, e que serão tratadas bem mais tarde no curso

By ferrugem - Pág 71
 

 
 

 tabelas, obter uma tabela com os dados desejados pelo usuário











 

 
Restrição ou Seleção Projeção  
 
 
  
   


União Interseção Diferença




 Divisão

 Junção (Natural) 



    
  
   
   

 

  


   
    
       
        
        
       
       
       
    

      
       

        


      
       
       
   
   
   
  
   
    
        
        
        
        
    
    
    

By ferrugem - Pág 72
 

União Interseção
Retorna uma relação consistindo das tuplas aparecendo em Retorna uma relação consistindo de todas as tuplas que
quaisquer das relações especificadas aparecem em duas relações especificadas

 

União: Notação Interseção : Notação


Notação: A UNION B Notação: A INTERSECTION B

Notação: A B Notação: A B

 

União: Exemplo Interseção: Exemplo


 

 
         
           São Paulo    
   São Paulo      João      São Paulo
 João      São Paulo        
       



   
   
   
   São Paulo
 João  
   
   São Paulo
   

By ferrugem - Pág 73
 

Diferença 
Retorna uma relação consistindo das tuplas que aparecem na Retorna uma relação consistindo em todas as possíveis tuplas
primeira relação especificada e não aparecem na segunda relação 
uma das relações especificadas




 

 




 

Diferença : Notação Produto : Notação


Notação: A MINUS B Notação: A TIMES B

Notação: A  Notação: A 

 

Diferença : Exemplo 



 
   
 
 
 São Paulo
 
 
        
  
   São Paulo     
  
 João      São Paulo 
  São Paulo
        João
  
  

  
São Paulo
   São Paulo
    João 
   São Paulo João 
 João   João 
João São Paulo
 
 
 
 São Paulo

By ferrugem - Pág 74
 

Seleção (ou Restrição) Seleção : Exemplo 2



Retorna uma relação consistindo de um conjunto de tuplas de uma 
   
relação que satisfaz uma condição    
   
   
   
    
       
       
       
       
       
       
   
   
   
   
   
   
   
   
   
   
   

 

Seleção : Notação Seleção : Exemplo 3



Notação: A WHERE X op Y 
   
   
   
Notação:    
   
    
       
x e y são atributos do mesmo domínio (ou valores)        
       
   
    
   
   
   
   
   
   
   
   
   
   
   
   
   
   

 

Seleção : Exemplo 1 Projeção


 Retorna uma relação consistindo de um conjunto de tuplas que
remanescem em uma relação depois que alguns atributos são

    
   São Paulo
 João  
   
   São Paulo
   


   
 João  
   

By ferrugem - Pág 75
 

Projeção : Notação Junção (Natural) : Notação


Notação: A [X,Y,...,Z] 

Notação:

x,y,...,z são atributos da relação

 

Junção (Natural) : Exemplo 1


Projeção : Exemplo  
      
       São Paulo
    João  
 

       João  
   
   
    João  
        João  
   
      João  
   
              João  
   São Paulo  São Paulo         João  
        João  
 João   João     
         
    João  
   São Paulo  São Paulo           
   
            
   
          São Paulo
          São Paulo
          
   
   
      
          
   
      
   
          
      
       
   
   São Paulo
      
 João  
   
   São Paulo
   

 

Junção (Natural) Junção (Natural) : Exemplo 2



Retorna uma relação consistindo de todas as possíveis tuplas que
são uma combinação de duas duplas, tal que as duas duplas que 
     
contribuem para a combinação possuem um valor comum nos         São Paulo
atributos comum das duas relações    São Paulo     
 João       
        São Paulo
   São Paulo     
        São Paulo

   


          
   São Paulo    
 
 





São Paulo
São Paulo








 João      
       
 João      
       
   São Paulo    
   São Paulo    
   São Paulo    

By ferrugem - Pág 76
 

Divisão Divisão : Exemplo



    
    São Paulo 
     
     
    São Paulo São Paulo
    
    São Paulo


   
   
   

 

Divisão 
 


   Simplifica a notação

 


b e c não possuem todos os valores


da segunda relação

z não faz diferença em a

 

Divisão : Notação Renomear: Notação


 



By ferrugem - Pág 77
 

 
 

  




 
 


 
 

     
     
     
  São Paulo   São Paulo
  Niterói   Niterói
  São Paulo   São Paulo

 

 

       
     


       
      
      
      
      
      
      
      
      
       
      
       
      
      
      
      
      
      
      
      
      



 

 Solução do Exemplo 1 (Passo 2)


 


        
       

 

   




 

 

By ferrugem - Pág 78
 

Solução do Exemplo 1 (Passo 2,3) Solução do Exemplo 2 (Passo 2,3)



       
       São Paulo
        São Paulo
              São Paulo
              São Paulo
       São Paulo
       São Paulo
       São Paulo
       São Paulo





 


 
 


 

Solução do Exemplo 2 Solução do Exemplo 2 (Passo 4,5)


    
    São Paulo
   São Paulo
   

   


 






 


 

Solução do Exemplo 2 (Passo 1) Solução Alternativa do Exemplo 2





    
    São Paulo
    São Paulo
    São Paulo 





By ferrugem - Pág 79
 

Solução do Exemplo 3 Solução do Exemplo 4


 Números dos fornecedores que fornecem todas as partes
fornecidas pelo fornecedor de número 2

 
 

 

Solução do Exemplo 3 (Passo 1,2,3) Solução do Exemplo 4 (Passos)



     
 
     
 
     
 
     
 
     
 
     
  
     
  
     
  
      
  
  
  
 
  
 
  
 
 
 
 
 
  
 
   
 
   
    

 
    
 
 
 
 
  
 
 


 

Solução do Exemplo 3 (Passo 4,5) Solução dos Exemplos 5



   
   

  









  

By ferrugem - Pág 80
 

Solução do Exemplo 5 (Passos) 



  
       
    São Paulo     

 João    João   
        
   São Paulo  João   
        
   São Paulo 
   São Paulo 
     São Paulo 
  São Paulo    São Paulo 
 
  
 São Paulo
   
 
     
 
    
 
   São Paulo 




 

Solução dos Exemplos 6 


Nomes de fornecedores que não fornecem a parte número 2 




 







 

Solução do Exemplo 6 (Passos) 


 
        
      



 

 

     
    São Paulo 
  João   João
     
    São Paulo 





By ferrugem - Pág 81
 

 
 

Se apagamos a única tupla de um pedido para o

 
seu status e sua localização






 

 
    
    
    

    
     
     
     
    
    
    
    
    
    

 

 


Não podemos guardar a informação que um
fornecedor está em uma cidade se ele não fornece
 


    
  São Paulo  
  São Paulo  
  São Paulo  
  São Paulo  
  São Paulo  
  São Paulo  
    
    
    
  São Paulo  
  São Paulo  
  São Paulo  

By ferrugem - Pág 82
 

 

    




São Paulo
São Paulo



  
  São Paulo     




São Paulo
São Paulo




   devem possuir características, que são




São Paulo












    
    
  
  São Paulo     
  São Paulo  
  
  São Paulo  
   
  
   
     
  São Paulo    
     
   
  São Paulo
  

 

 
 Todas as relações
 Relações na 1FN

 Relações na 2FN


Relações na 3FN

 Relações na FNBC


 Relações na 4FN
 Relações na 5FN



 

 
Decomposição de esquemas para evitar as 


As anomalias são fruto da redundância de dados 




 Na implementação, muitas vezes


 



By ferrugem - Pág 83
 

 
Veremos até a 3FN + BCFN 
de perda de informação na
decomposição

 
  
  
   



 
Porém, você pode pesquisá-las se quiser    
   
   

 

 
 Que fornecedor está em que cidade?



 
    
   
    

 

 
Para partir do "Tabelão" para tabelas menores
 
onde não existem anomalias, diminuindo a    
   
    

Decompor a relação

Não perder informação A decomposição correta é aquela que permite


que a relação original seja recriada com um JOIN

Decomposição sem perda

By ferrugem - Pág 84
 

 
 Se R é uma relação e X e Y são subconjuntos
arbitrários do conjunto de atributos de R,
 dizemos que Y é funcionalmente dependente

  








os mesmos valores para os atributos de X então
    terão os mesmos valores para os atributos de Y
 com a notação
  
  
   

 



 









Decomposições são projeções 




 
  Y é função de X
 



 
 
 

 

 
Se R1 e R2 são projeções de uma relação R, 

de R, quais condições devem ser satisfeitas 
 







By ferrugem - Pág 85
 

  
 
  São Paulo  
  São Paulo  
  São Paulo  

 







São Paulo
São Paulo
São Paulo










    
    
  São Paulo  
No tabelão 



São Paulo
São Paulo




Auto-determinação:

 

 Decomposição:

 Se A BC então A BeA C



 União:
 Se A BeA C então A BC


 

 
Porém, algumas DF não são válidas no Composição
tabelão
Se A BeC D então AC BD








 

 
 O determinante é o lado esquerdo da equação



O dependente é o lado direito da equação


 
Se A B então AC BC



Se A BeB C então A C

By ferrugem - Pág 86
 

 
A dependência funcional é uma questão Uma relação está na segunda forma normal
 se e somente se ela está na 1FN e todos os
seus atributos que não pertencem a chave
Depende dos dados e não apenas do são dependentes funcionalmente de toda a
esquema da relação chave e não de um subconjunto da chave

Se a chave só tem um atributo,


automaticamente a tabela está na 2FN

 

 
A relação TABELÃO está na 1FN e não está
Uma relação está na Primeira Forma Normal


 

 


     
  São Paulo  
  São Paulo   
  São Paulo  




São Paulo
São Paulo









São Paulo






    
    
  São Paulo  
  São Paulo  
  São Paulo  

 


 
 A relação FORNECEDOR está na 2FN

 A chave só contém um atributo




 




São Paulo





São Paulo


 





   





São Paulo


 



São Paulo


   


By ferrugem - Pág 87
 

NÃO ESTÁ
  
A relação PEDIDO está na 2FN
 





  







  
  
  
A relação não está na 3FN
  
  
  
  
  
  
  

 

 

  
  



  
NÃO
  





 







 
   





      
  
  
   É Falso que { NUMP } 
  
   
  

É Falso que { NUMF }
 { PLACA } { FÁBRICA }

{ MODELO } { FÁBRICA }

 

 
 Esta relação está
Uma relação está na 3FN quando está na 2FN   
  

 
e todo atributo não-chave é dependente funcional    
   
apenas da chave e não é dependente funcional de    

   
     
   
    
Não é transitivamente dependente    
    
   
   


Não dependem


By ferrugem - Pág 88
 

 
 

 

Casos onde há mais de uma chave  


  
   
  
  
    

 Todos determinantes são chaves candidatas

Se isso não ocorre, é igual a 3FN

 

 
Uma relação está na BCNF se e somente 
se os únicos determinantes são as chaves 


Ou seja, dadas todas as equações de DF 


válidas para a relação, em todas elas os
determinantes são chaves candidatas Podemos e devemos fazer isso já no projeto


 


  
 






FÁBRICA

NÃO




 
 
ESTÁ
   
 
  



{ PLACA } { FÁBRICA }

{ MODELO } { FÁBRICA }

{ MODELO } NÃO É CHAVE CANDIDATA

By ferrugem - Pág 89
 

 













 

 
Orientação a Objetos surgiu na tentativa de solucionar


e manutenção

Abstração mais próxima da realidade

 


Organizar o mundo real como uma coleção de objetos que




Um conjunto de operações que manipulam estes dados.



(decomposição funcional), pois essa é mutável

Se essas abstrações tiverem uma expressão direta (ou próxima)


do mundo computacional, a complexidade da solução será


By ferrugem - Pág 90
 

 
Um objeto é uma "coisa"






 

Modelos e Abstrações 


Todo modelo é uma abstração de algo que existe ou se imagina 
 

Uma representação O estado de um objeto é caracterizado pelo valor dos seus



Abstração é o processo mental de separar um ou mais elementos
 O comportamento de um objeto é definido pelo seu conjunto de
métodos ou operações.
de forma a facilitar a sua compreensão por meio de um modelo.



ignorar propriedades acidentais ou não interessantes ao modelo

 

 
 Um conceito, abstração ou coisa com significado para a
aplicação e que pode ser bem caracterizada separadamente
É claro o "que é essa coisa" e o "que não é essa coisa"
Esforço cooperativo de diversos colaboradores

Reuniu as mais populares técnicas 


É uma linguagem para a especificação de grandes sistemas 
Representação uniforme e gradual do conhecimento sobre o 



By ferrugem - Pág 91
 

 
É uma entidade lógica que contém dados e código para 

Suas mudanças de estado

 Suas interações com outros objetos

 
a Eleição Presidencial
Definido pelo conjunto de operações que ele executa
Interação (transação/contrato)
Apenas as operações pré-definidas podem alterar o estado
o débito de R$100,00 na conta "0053" no dia 07/09/2005 

 

 
Um objeto é uma pessoa, objeto, local, animal, acontecimento, 
organização ou outra idéia abstrata sobre a qual o sistema deve
 A "coisa" onde você está sentado agora é um objeto

Cada instância de um determinado objeto tem características, 


um comportamento e uma identidade própria.
Possui características que permitem que você se sente



É únicamente identificável

 

 
É uma das condições em que o objeto pode existir 


 Uma classe é a descrição de um conjunto de objetos semelhantes
 


em função do comportamento


By ferrugem - Pág 92
 




classes estão conectados no modelo

Associação Simples

Agregação e Composição

Herança

 

 Associação Simples

Ao se modelar um sistema através de objetos é natural que


apareçam classes que descrevem conceitos e situações no Uma associação é uma "conexão" bidirecional entre duas classes.
domínio do problema.

Por exemplo, ao se modelar um sistema de administração Um exemplo: supondo que país e cidade são classes num sistema,
escolar, são usadas classes como estudante, curso, currículo, um país está associado a uma cidade que é a sua capital.
professor e matrícula, entre outras.

 

Representação de uma Classe 


um papel específico.

Esse papel, sempre que possível, deve ser explicitado no modelo.

Outras informações:





By ferrugem - Pág 93
 

Exemplo de Associação - 1 Exemplo de Composição


classes estão conectados no modelo

 

Exemplo de Associação - 2 Herança

Uma classe pode ser derivada de outra através da relação


de especialização.



Normalmente irá possuir atributos ou comportamento diferentes.

 

Agregação e Composição Generalização e Especialização

O processo reverso da especialização é a generalização.


 Com a generalização:

nós somos capazes de entender como uma classe pode ser


Na composição entendemos um objeto complexo formado 
de um conjunto de outros objetos como um só objeto.
podemos compreender uma relação muito comum entre
classes, que é a que permite que qualquer objeto de uma
Um objeto é descrito por suas partes. 


O processo reverso da composição é a decomposição. utilizando judiciosamente a generalização podemos




By ferrugem - Pág 94
 
Exemplo de Herança

A classe Pessoa possui atributos como nome, endereço, idade.

Iremos construir um diagrama de classes na notação da


Um Funcionário pode ser uma especialização de Pessoa 


Matrícula
A administradora trabalha tanto com administração de
 condomínios quanto com a administração de aluguéis.

Cliente também pode ser uma especialização de Pessoa.

 
Exemplo de Herança


nas seguintes informações:
 


 





 

 
 

 nas seguintes informações:
 


 
 

 
 

By ferrugem - Pág 95
 

 

Existem muitas unidades cada uma com características
 
Elas são possuídas e alugadas

 Cada unidade é identificada por seu endereço, número, etc.

A modelagem OO foi feita para suportar evoluções



 

 
 Existem várias pessoas, com nome, endereço, telefone...



 




 
: Na maioria dos sistemas haverá uma classe Pessoa
(ou equivalente: cliente, usuário, funcionario, aluno, etc. )

 

 
Existem vários condomínios 

 




Possuem nome, endereço
Na modelagem ER não seria uma entidade pelo fato

Há operações a serem realizadas em condominios:
 No mundo OO é diferente!



By ferrugem - Pág 96
 

 

 

 
Os condomínios são formados por unidades residenciais Uma unidade está só em um condomínio, e está em
algum condomínio obrigatoriamente
Composição é representada por um losango cheio
Composição significa que uma unidade não existe
sem um condomínio

 

 
 
 ser de alguém

 posse é obrigatório




By ferrugem - Pág 97
 


  


ser de alguém

posse é obrigatório



ser alugada por alguém

aluga não é obrigatório

 



 












 



Motivação

Regras de Negócio
Visão clássica de Sistemas de Informação

Visão Moderna
Dados, Processos e Regras de Negócio

Perspectiva de Negócio

Perspectiva de Sistemas de Informação

By ferrugem - Pág 98
 

 
Sistemas de Informação se tornaram complexos Abstraindo os outros aspectos para a manutenção da vida,

Maior poder de computação 
 

Força: músculos
Maior complexidade dos negócios
Competição acirrada 
Foco no serviço e não no produto



 

 
Para atender melhor os clientes as organizações se tornaram 
 funções distintas
Negócios mais complexos 

 


Músculos, conectados aos ossos, possibilitam a força para
Regras de negócio! a realização dos movimentos

Como estruturar os Sistemas para suportar organizações



estímulos, coordenando a ação dos músculos



 

 
Os seres humanos são um bom exemplo de organização 

são os termos e fatos, organizados e conectados em um
 
 Força
como modelo para a construção de sistemas complexos São os processos, que operam sobre os fatos do modelo


 


São as regras de negócio, que restringem e controlam


By ferrugem - Pág 99
 

 
Perspectiva de Negócio 
 Definições dos termos do negócio
comportamento do negócio, como suporte à política
de negócio que é formulada em resposta a uma oportunidade 
Descrevem as operações, definições e restrições que se 
aplicam a uma organização para a mesma atingir os do negócio
 
Definem como calcular algum aspecto do negócio


Restringem algum aspecto do negócio

 

 
Perspectiva de Sistemas de Informação 
É uma sentença que define ou restringe algum aspecto   é um conceito ou sentença que referencia um
do negócio conceito específico do negócio
Pretende-se garantir a estrutura do negócio ou controlar a 
 
 

Atributos, especialização-generalização, associação,
agregação e papéis

 

 
  é um termo
É um aspecto importante do negócio
"Saldos são expressos em Reais"
 também é um termo
"Clientes ouro são os que possuem saldo médio acima de 

 
"Se um cliente possuir saldo negativo então deve-se cobrar
 Isso é um fato: conecta dois termos
Clientes são Pessoas Físicas ou Jurídicas
Fato que representa uma especialização

By ferrugem - Pág 100


 

 
São algoritmos usado para calcular ou inferir um fato derivado Os clientes Pessoa Física devem ter mais de 18 anos ou serem


É uma restrição: não permitir que menores de idade sejam
A partir de outras derivações 

Uma regra de derivação especifica como fatos derivados Se um cliente possuir saldo negativo então deve-se cobrar
 juros diários sobre esse saldo e o cliente deve ser notificado"
 Define duas ações a serem tomadas se o saldo do cliente

Inferência lógica dedutiva ou indutiva

 

 

Saldo médio mensal é a média dos saldos de um cliente no
 Termos e fatos estão conectados ao modelo de dados

Define o que é o saldo médio mensal através de relações


matemáticas O modelo de dados reflete todas as informações que o sistema
possui a respeito do negócio
Clientes ouro são os que possuem saldo médio mensal acima
 Regras são sobre termos e fatos
É uma condição que, se for verdadeira, qualifica o cliente
 Logo, as regras de negócio devem estar ancoradas às

Todas as regras de negócio são sobre dados

 

 
São declarações que devem ser verdadeiras sempre Regras de Negócio não são Eventos!
 se uma restrição em um
Regras são sobre os dados
dado instante não for verdadeira
Eventos são coisas que acontecem
Adicionalmente, ações específicas podem ser estabelecidas
quando uma restrição for violada

Para corrigir e tornar verdadeira a restrição

  
Eventos podem disparar ações através das Regras
de Negócio

By ferrugem - Pág 101


 

 
 


 Padrão UML para a especificação de restrições

O que fazer se uma restrição for violada? Pode ser utilizada para a especificação formal de
regras de negócio
Ações definidas na regra Fácil de ser entendida por humanos
Mensagens de erro para o usuário
Fácil de ser entendida por sistemas
Uma boa alternativa é mostrar a própria regra


 




As regras de negócio devem valer para a organização, e não

 

Regras de negócio devem estar separadas das aplicações

As regras de negócio devem ser declaradas formalmente




Linguagens para a declaração de Regras de Negócio

Não-programadores devem ser capazes de entender as



regras de negócio



 



Permite a automatização de procedimentos
 OCL é a linguagem provida pela UML para a especificação
Gerar código SQL para bancos de dados existentes


Gerar código para testar dados legados



Avaliar o impacto de mudanças nas regras 

Fácil implementação




By ferrugem - Pág 102


 

 
Os diagramas da UML não são expressivos o suficiente para 

Em particular, não são suficientes para modelar as regras Impedem que uma atualização ocorra quando um valor falso
 é retornado
 Violação de uma restrição

 
Automatização de procedimentos


 

 
Uma restrição em OCL deve estar sempre relacionada a uma 
 
 
OCL usa apenas expressões
  são palavras reservadas
Não há comandos nem estruturas de controle
 
Não é permitido alterar valores de atributos
método e o tipo a ser retornado

As expressões podem ser derivativas ou restritivas  indica a expressão que será calculada

 é o valor retornado

 devem ser atributos ou métodos




 

 
 
 
Fórmulas matemáticas
Especificação de métodos
Uma restrição possui tipo implícito
  é utilizada para indicar restrições
Numérico, cadeias de caracteres, categoria, objetos ou  

A expressão após  é a restrição, e deve ser sempre verdadeira
Na expressão podemos usar qualquer atributo ou método


By ferrugem - Pág 103


 

 
"A duração de um contrato" deve ser maior ou igual a zero dias Podemos especificar que o proprietário de uma unidade
não pode ser o mesmo que a aluga
Uma restrição em OCL não especifica quando nem como
uma restrição deve ser observada



Usamos o nome do relacionamento na direção desejada e
 
 restrição ancorada a 
essa restrição deve ser verificada
Não é necessário se preocupar com a cardinalidade


 

 
OCL utiliza o conceito de navegação "por ponto" OCL possui uma série de operações predefinidas

  soma valores de uma coleção


do modelo em uma expressão simplesmente devemos
acrescentar um caminho através do modelo utilizando "pontos"

Esse caminho é formado pelos nomes dos relacionamentos 
 

 

 
Se quisermos especificar que uma pessoa não pode







By ferrugem - Pág 104


 

 

Na restrição anterior, para sermos mais completos, podemos


 
incluir na renda comprovada os aluguéis que essa pessoa 




 



 

 
Introdução
A restrição não especifica quando nem como ela deve ser avaliada


 Criação de tabelas
Criação de restrições
A pessoa alugar um imóvel

Menos óbvios: 
A pessoa deixar de ser proprietaria de um imóvel 
 





 

 
OCL é uma linguagem com uma grande quantidade de SQL é a linguagem de definição e consulta padrão para sistemas
operações predefinidas 

Mostramos apenas uma breve introdução a OCL 

Foco em regras de negócio 


Para maiores detalhes, consultar a especificação da linguagem: 
 




Arquivos, organização dos dados, leitura e escrita

By ferrugem - Pág 105


 

 
 Na tabela País, não especificamos a chave primária

Tabelas, restrições, índices, visões etc 





Possui um conjunto padrão de tipos de dados primitivos

 

Não especificamos que os outros atributos devem estar



Os comandos são separados por ";"


 

 
 









 é possível haver repetição de tuplas

 Há um comando específico evitar repetições

Restrições

 

 








Nome, do tipo string com até 80 caracteres, e que não pode








By ferrugem - Pág 106


 

 


tenha o nome de um continente válido, já cadastrado na base




Para isso, devemos criar uma restrição de integridade


Nome foi definido como chave primária da tabela País

Chaves primárias não podem ter valor nulo

Seu valor é único, ou seja, não podemos ter dois países 
 

 

  



   tenha o nome de um país válido

Somente podemos criar restrições de integridade sobre


chaves primárias ou atributos com valor único (chaves


Não é necessário dizer o nome do campo referenciado se
 ele for a chave primária

Índices, restrições e chaves primárias





 

 

 
 
 
 

 
 
 
 




By ferrugem - Pág 107


 

 
  



 

 









 

 
   







 Where Continente = ’América do Sul’



Não retorna nenhum valor

 

   


   na cláusula  é uma 
  
 


atendam algum critério de seleção
Serão retornadas pela consulta apenas as tuplas para
Podemos realizar operações estatísticas sobre os valores 


Somar, calcular a média, encontrar máximos e mínimos



By ferrugem - Pág 108


 


 
 

 
Aritméticos, relacionais (comparação) e lógicos



Expressão 



Expressão 



Expressão 



 

  Exemplo - Funções Estatísticas


 





 
 

As funções estatísticas retornam uma tabela com apenas



Também são chamadas de 

 

  


Principais funções  
Matemáticas
 Restrição



 A cláusula 
 
Quando ela é utilizada, apenas os campos que aparecerem
 
As funções variam muito de SGBD para SGBD Além deles, podemos retornar também funções agregadoras

É permitido criar funções novas e utilizá-las



By ferrugem - Pág 109


 

  


Select pais, sum(habitantes) as "População" from Unidade  

 Restrição



 Restrição sobre agregações



A cláusula 


 Não elimina nenhuma linha do resultado da consulta



 

 
  

 Restrição 



 Restrição sobre agregações

A cláusula  serve para criar restrições sobre as


agregações ou sobre os campos usados no agrupamento

Apenas as linhas do resultado que satisfizerem a restrição


serão retornadas 

 for omitida, o resultado é


 

  


Select pais, sum(habitantes) as "População" from Unidade 




 

Mas apenas os agrupamentos cuja soma de habitantes é
maior do que 100 milhões é retornada  

By ferrugem - Pág 110


 

Junções - Introdução Junções - Considerações


 
determinada unidade de um país 
 
Temos essa informação no banco: 
 

 A cláusula where não precisa ter, necessariamente, nenhuma


outra restrição além da condição de junção
Mas eles estão em tabelas diferentes Mesmo a condição de junção é opcional
Teria de descobrir primeiro o país da unidade, e depois o
Nesse caso o resultado seria bem diferente, não sendo
continente do país
uma junção mas sim um produto cartesiano



 

Junções Condição de Junção


 junção De uma forma geral, a condição de junção será na maioria das
 
 primária, candidata (unique) ou estrangeira (foreign key)

 Uma junção pode ter quantas tabelas se desejar

Para cada tabela extra na junção é necessário uma


É uma das operações mais importantes de um banco de dados condição de junção
Se tivermos 4 tabelas, em geral serão necessárias três
condições de junção
Podemos usar qualquer uma das outras cláusulas



 

Junções - Sintaxe Junções - Exemplo


  

 Restrição  Condição de Junção 


 





By ferrugem - Pág 111


 

 Alterações
Uma consulta pode ser utilizada dentro de uma espressão em SQL  
  

  Restriçao



 
Por exemplo em uma comparação 

expressão de restrição
Podemos substituir a expressão por uma subconsulta

Se não houver Restrição, todas as tuplas serão modificadas

 

 Remoções
 

WHERE Restriçao


 

É necessário pôr a subconsulta entre parênteses 



Poderíamos usar também o operador 
Remove as tuplas que satisfizerem a expressão de restrição
Não podemos usar os campos da subconsulta na consulta principal
Se não houver Restrição, todas as tuplas serão modificadas
Porém podemos usar campos da consulta principal
 A restrição pode envolver subconsultas

 

Inserções 
 Índices são estruturas de dados usadas apenas para




 
  


 

 

By ferrugem - Pág 112


 


 
 
As construções do Modelo ER serão mapeadas para tabelas,
 atributos, relacionamentos e restrições

Tabelas e atributos serão utilizados para representar as




Chaves primárias e candidatas serão utilizadas para


 

 Chaves estrangeiras serão utilizadas para os relacionamentos

Restrições serão utilizadas para repreentar as cardinalidades

 

 
Introdução Cada Entidade será mapeada

Conversão do Modelo ER para Relacional 

 chave primária da tabela


primária pode conter
 

 Os outros atributos serão




É necessário especificar
 

 

 
 
 

 
são semanticamente mais ricos 

 

Há vários padrões de conversão bem simples e diretos 





By ferrugem - Pág 113


 

 
 Uma tabela possui uma chave primária e a outra possui uma
 chave primária que também é chave estrangeira para a outra tabela

Cada tabela possui sua própria chave primária e uma 


 

Uma tabela possui uma chave primária e a outra possui A chave estrangeira deve ficar na tabela que é identificada
uma chave primária que também é chave estrangeira 

Uma tabela possui uma chave primária e a outra possui
uma chave primária composta com uma chave estrangeira


 

 
Cada tabela possui sua própria chave primária e uma das
 

 
não identificadores 




 
obrigatório é que deve conter a chave estrangeira 

A cardinalidade é garantida pelo uso das cláusulas 
 


 

 
Uma tabela possui uma chave primária e a outra possui uma
 chave primária composta com uma chave estrangeira para
 

 
 
A chave composta deve ficar na tabela que é identificada
 

 






By ferrugem - Pág 114


 

 

 
 
 
 
 


 
 
 
 
 
 
 

 

 
 
 primária e a tabela da parte N possui uma chave primária

Cada tabela possui sua própria chave primária e a tabela
 
 


primária e a tabela da parte N possui uma chave primária


 

 
Cada tabela possui sua própria chave primária e a tabela da
 
 

 
não identificadores 
Acrescentando uma restrição de integridade entre a chave
primária da tabela da parte 1 do relacionamento e a tabela N



 






By ferrugem - Pág 115


 



Os relacionamentos N para M serão mapeados da seguinte forma
 
Cada tabela possui sua própria chave primária 

Uma tabela é criada para representar o relacionamento,




 


 

 
Introdução


 Conversão do Modelo OO para Relacional
 

 

 
 

 

Relações - associação, agregação e composição

 





 

 
Normalmente não se modela relacionamentos onde ambas as 
partes sejam obrigatórias: 
 

Dificultam a inserção de dados

Em geral (1,1)(1,1) é um erro de modelagem
Há vários padrões de conversão bem simples e diretos
Algumas restrições devem ser implementadas por Há várias ferramentas que fazem essa conversão de forma
 
 




By ferrugem - Pág 116


 

 

Usaremos chaves primárias artificiais formadas por um atributo
As construções do Modelo OO serão mapeadas para tabelas, 
atributos, relacionamentos e restrições 
Chaves primárias artificiais serão utilizadas para os 
 estrangeira nas restrições de integridade
Os métodos serão mapeados para procedimentos Outras chaves alternativas são permitidas


Não se reaproveita IDs de objetos removidos

 

 
Cada classe simples será mapeada para uma tabela também

São aquelas cujos atributos podem ser diretamente mapeados
para os tipos básicos do SGBD;
Não fazem parte de nenhuma hierarquia de classes;
Não possuem atributos listas ou conjuntos (multivalorados)

 

 













Várias chaves alternativas

By ferrugem - Pág 117


 

 
Quatro características são muito importantes  

 Manutenção simples

 Facilita à aplicação

 
  

  
Requer uma junção a
 
 Proliferação de tabelas
 



 

 
  

 Manutenção simples

  Facilita à aplicação
 
Utilizar restrições do tipo check:  
 
 


 
  Requer uma junção
Campos alfanuméricos combinados com faixas  

Verificação de
 
consistência é mais



 

 
  
 de um (coleção)


Restrições 
 
 
  
 
  Se a coleção for sem repetição, restrição de unicidade com a
 chave primária e estrangeira na tabela auxiliar
 Prejudica a manutenção
 
 aplicação



By ferrugem - Pág 118


 

 
 Pouca diferença entre a técnica usada para converter o
 

Todas as tabelas possuem uma chave primária inteira, o ID

 Todos os relacionamentos irão utilizar uma chave estrangeira
 

 Não há diferença na implementação de associações,


 agregações e composições
 Mesmas soluções do mapeamento ER para a cardinalidade

 
 

 
 
 removido, sua coleção de
renovações também o será

 

 
 Três opções básicas diferentes

Alguns são calculados (derivados) 

Utilizar funções Várias tabelas com fragmentação vertical


Utilizar visões Várias tabelas com fragmentação horizontal

Não há alternativas satisfatórias em um SGBD relacional para 


a implementação de restrições de visibilidade
 





 

 
Não há muito o que fazer em relação aos métodos 

 

Funções auxiliares em bibliotecas compartilhadas 


pelas aplicações 


estarão nessa tabela

Desperdício de espaço
A verificação da consistência da classe com os atributos
é complexa
A verificação da consistência dos relacionamentos é mais


By ferrugem - Pág 119


 

 
Um objeto será "cortado" em duas ou mais partes




 
Não há necessidade do atributo 

A chave primária de cada subclasse será também chave





 

 


 
 
 
 
 

 
 
 
 
 

 
 



 

 

Várias restrições para verificar
a consistência dos atributos 

Não temos como garantir Fácil manutenção, alterações localizadas
 Não há necessidade de verificar a consistência dos atributos
estará ligada a uma 
Pessoa Física Posível representar os relacionamentos com as subclasses

A tabela é Pessoa
CNH irá possuir uma chave estrangeira para a tabela


Funções auxiliares 
na aplicação
Escrita de consultas envolve junções


By ferrugem - Pág 120


 

 
 As restrições do modelo de classes devem ser implementadas
 
Apenas as classes concretas serão representadas no modelo Restrições do próprio SGBD
 
Os atributos que existirem nas superclasses de cada classe serão Funções de biblioteca na aplicação


 

 


 sempre que possível
 



 Balanceado com a relação custo / benefício de cada
 

Nem todas as normalizações propostas pelo modelo

relacional devem ser realizadas para não distanciar o









 


 


 

Cada objeto está contido em uma única tabela

Não é necessário junções para escrever as consultas


A manipulação da superclasse se torna complicada

União de várias tabelas

Relacionamentos para a superclasse não podem ser
 


Manutenção trabalhosa

By ferrugem - Pág 121


 

 
 

Veículo
As multas aplicadas eletronicamente devem ter a indicação
 
 Tipo de Infração

 

 

Pessoa (física e jurídica)

Multa (eletrônica e com formulário)

Recurso (transferência e contestação)
Contestação da multa
Renovações


 

 
 
 
e o tipo de infração 

As multas somente podem ser pagas após a identificação 
 
Das pessoas físicas guardamos a CNH e as datas de
sua renovação
Os atributos principais estão no modelo

 

 














By ferrugem - Pág 122


 

 
 

Pessoa, pessoa física e pessoa jurídica 

Vimos três opções de modelagem: 
 

Fragmentação horizontal

Fragmentação vertical

Iremos adotar a fragmentação vertical


Mais fácil de controlar os relacionamentos que só existem
para pessoa física

 

Classes Pessoa Física e Jurídica 


 
 
 
 
 













 

Veículo 


 Nessa hierarquia há pouca diferença entre um tipo de multa
 

 Fácil manter os relacionamentos em qualquer abordagem

 Apenas o Equipamento está relacionado com a subclasse
 
 


By ferrugem - Pág 123


 

 



é o responsável




 



 
 












 

 


 da infração, as placas dos veículos e os nomes dos responsáveis,
ordenando pelo responsável
Atributos fáceis de implementar 




 

 


 Há um relacionamento entre Pessoa Juridica e Pessoa,
 

 O relacionamento entre Multa e Pessoa é o responsável
 


 
 
 
 
 
 




By ferrugem - Pág 124





















Incluir o tipo da infração
Usar o relacionamento entre Multa e Tipo de Infração















Incluir o responsável















By ferrugem - Pág 125

You might also like