Professional Documents
Culture Documents
Sistemas de informação
Uma representação abstrata e simplificada um sistema observado É uma representação abstrata da informação em um sistema
By ferrugem - Pág 01
Analista de Informações
Facilita a comunicação
Desenvolve a compreensã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
Observação dos objetos
Não adota um produto, dispositivo específico ou meio
Validação do Modelo
By ferrugem - Pág 03
Modelo Físico
O que é uma abstraçã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
By ferrugem - Pág 04
By ferrugem - Pág 05
Uma idéia
By ferrugem - Pág 06
Agregação
By ferrugem - Pág 07
Raça
Consideramos o objeto como um exemplar de uma "classe padrão"
Individualização
Classificação
By ferrugem - Pág 08
É composto de Identificação
composição
By ferrugem - Pág 09
Identificação
Com a identificação nós somos capazes de entender como
"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 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
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
Como explicá-la
Por que essa parte está presente? O que ela significa?
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
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
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
O valor deve ser de um domínio
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
By ferrugem - Pág 16
By ferrugem - Pág 17
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"
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
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
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
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
By ferrugem - Pág 22
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
By ferrugem - Pág 27
Empréstimo?
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
By ferrugem - Pág 29
O DBDesigner é uma adaptação direta do modelo relacional
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
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
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
By ferrugem - Pág 34
No discurso fluente durante uma entrevista, entidades são
é o fato de algo que precisa ser lembrado representar um
conceito ou idéia completa.
Funcionário
Caminhão
Salário?
Interações
Especificações
By ferrugem - Pág 35
Pessoas, Móveis, Veículos, Prédios, Documentos, etc...
Marcam a interação entre dois ou mais objetos
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
By ferrugem - Pág 36
Especificações
Cada escola marca datas de reuniões de pais e filhos
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
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
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.
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?)
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
By ferrugem - Pág 40
É 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
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
By ferrugem - Pág 44
Conclusã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
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
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,
By ferrugem - Pág 49
Assim, cada currículo deve ter anotado quantos créditos
são precisos em cadeiras optativas (no mínimo)
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
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,
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
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
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 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
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
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
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
By ferrugem - Pág 60
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
By ferrugem - Pág 61
< Júlia, 15/3/1980, Feminino > }
O esquema da relação define os valores possíveis para
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
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
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
Relação : tabela
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
By ferrugem - Pág 65
Chaves definem restrições 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
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)
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
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
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
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
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
Notação: A B Notação: A B
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
By ferrugem - Pág 74
João
By ferrugem - Pág 75
Notação:
By ferrugem - Pág 76
Divisão
Simplifica a notação
By ferrugem - Pág 77
By ferrugem - Pág 78
By ferrugem - Pág 79
By ferrugem - Pág 80
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
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
Decomposição de esquemas para evitar as
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
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:
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
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
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
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
Uma relação está na BCNF se e somente
se os únicos determinantes são as chaves
FÁBRICA
NÃO
ESTÁ
{ PLACA } { FÁBRICA }
{ MODELO } { FÁBRICA }
By ferrugem - Pág 89
Orientação a Objetos surgiu na tentativa de solucionar
e manutenção
Organizar o mundo real como uma coleção de objetos que
(decomposição funcional), pois essa é mutável
By ferrugem - Pág 90
Um objeto é uma "coisa"
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
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
É ú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
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.
um papel específico.
Outras informações:
By ferrugem - Pág 93
classes estão conectados no modelo
By ferrugem - Pág 94
Exemplo de Herança
A classe Pessoa possui atributos como nome, endereço, idade.
Matrícula
A administradora trabalha tanto com administração de
condomínios quanto com a administração de aluguéis.
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.
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
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
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
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
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
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
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
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
"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
Se quisermos especificar que uma pessoa não pode
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
Arquivos, organização dos dados, leitura e escrita
Na tabela País, não especificamos a chave primária
Possui um conjunto padrão de tipos de dados primitivos
é possível haver repetição de tuplas
Restrições
tenha o nome de um continente válido, já cadastrado na base
Seu valor é único, ou seja, não podemos ter dois países
Where Continente = ’América do Sul’
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
Aritméticos, relacionais (comparação) e lógicos
Expressão
Expressão
Expressão
A cláusula
Não elimina nenhuma linha do resultado da consulta
Restrição
Mas apenas os agrupamentos cuja soma de habitantes é
maior do que 100 milhões é retornada
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
Remoções
WHERE Restriçao
Inserções
Índices são estruturas de dados usadas apenas para
As construções do Modelo ER serão mapeadas para tabelas,
atributos, relacionamentos e restrições
Introdução Cada Entidade será mapeada
Conversão do Modelo ER para Relacional
chave primária da tabela
primária pode conter
são semanticamente mais ricos
Há vários padrões de conversão bem simples e diretos
Uma tabela possui uma chave primária e a outra possui uma
chave primária que também é chave estrangeira para a outra tabela
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
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
Os relacionamentos N para M serão mapeados da seguinte forma
Cada tabela possui sua própria chave primária
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
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
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
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
Três opções básicas diferentes
Não há muito o que fazer em relação aos métodos
Um objeto será "cortado" em duas ou mais partes
Não há necessidade do atributo
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
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
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
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
Pessoa, pessoa física e pessoa jurídica
Vimos três opções de modelagem:
Fragmentação horizontal
Fragmentação vertical
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
é 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
Incluir o tipo da infração
Usar o relacionamento entre Multa e Tipo de Infração
Incluir o responsável