Академический Документы
Профессиональный Документы
Культура Документы
danielcanedo@redes.unb.br
Sumrio
Ementa
Tcnicas de modelagem de classes por meio da UML (Unified Modeling Language). Tcnicas de elaborao do MER (Modelo Entidade Relacionamento). Normalizao. Camada de persistncia. Performance do modelo: desnormalizao. Ferramenta CASE
Objetivos
Representar os dados de uma organizao, utilizando tcnicas de modelagem implementadas em ferramentas CASE
Avaliao
Exerccios Prova NF = Exerccios * 0,3 + Prova * 0,6 + Presena * 0,1 Quadro de Presenas
Faltas 0 2 4
6
8
4,0
2,0
10
2,0
Contrato Didtico
Aulas
de 08 horas aula). No presenciais: sextas 02 horas aula - os materiais para os trabalhos a serem desenvolvidos nestas aulas estaro disponveis no site http://www.redes.unb.br/daniel/Disciplinas/Uneb/t ecnica_modelagem/ Total: 10 horas semanais
Contrato Didtico
Horrios
Chamada
Contrato Didtico
Reposio de Aulas
Dia 13/06 (tera-feira) Reposio dia 09/06(Sexta-feira) Dia 15/06(Quinta-feira) Reposio dia 23/06(Sexta-feira) Devido ao recesso do dia 16/06/2006, as aulas referentes a esta data sero repostas no dia 03/07/2006 (segunda-feira). Dia 22/06(Quinta-feira) Reposio dia 30/06(Sexta-feira)
Contrato Didtico
Contato
danielcanedo@redes.unb.br
Notas
Contrato Didtico
Recuperao
O aluno que obtiver nota igual ou inferior a 4.74 estar reprovado automaticamente sem direito a recuperao. O aluno que obtiver nota entre 4.75 e 6.74 dever realizar a prova de recuperao na primeira sextafeira aps o trmino do bloco. A prova ser terica ou prtica conforme definio do professor. A prova de recuperao compreende todo o contedo abordado na disciplina.
Contrato Didtico
Consideraes Gerais
nas aulas podero ser modificados conforme a necessidade do professor Faltas: O mximo de faltas admitidas de 25% do total de aulas, ou seja, 10 faltas para esta matria. Abono de Faltas: No existe. Casos especiais sero analisados parte
Contrato Didtico
aluno a interao de avisos, trabalhos ou qualquer outra atividade em sala, em funo de suas faltas. No ser aceita nem reconhecida afirmativa eu no sabia Celular: Os celulares no precisam estar desligados, mas sim estar em modo silencioso. Quando for preciso atender o celular retire-se da sala afim de no perturbar o andamento da aula
Contrato Didtico
Ler revistas e/ou jornais; Vender objetos; Entrar e sair da sala com freqncia e sem autorizao, bem como qualquer outra atitude que no seja conveniente ao ambiente de uma sala de aula e local de ensino e aprendizagem. Visitar sites que no tenham vnculo com a matria, em aulas de laboratrio
Contrato Didtico
Postura e avaliao:
contraveno escolar, vale a interpretao do professor, sendo a avaliao inutilizada para os envolvidos e a nota atribuda ser ZERO. Aps a sada do primeiro aluno de uma avaliao, no ser permitida a entrada de mais nenhum outro.
Contrato Didtico
entre os alunos, porm, a conversa excessiva, alm de atrapalhar o ensinoaprendizagem, pela distrao e/ou perturbao daqueles que esto interessados no assunto em discusso, pode gerar situaes constrangedoras, como a solicitao para que um aluno retire-se de sala.
Contrato Didtico
O aluno que por motivos relevantes no puder estar em sala de aula no horrio conforme o item chamada, dever procurar o professor no primeiro dia de aula para tratar do assunto. O mesmo procedimento deve ser adotado pelo aluno que necessitar se ausentar antes do trmino da aula
Orientao a Objetos
Basicamente duas maneiras de desenvolvimento de software: - Baseado no software (funes). Foco nos procedimentos - Baseado em objetos. Foco nos dados
Mudana de enfoque : em vez de processo sobre dados, objetos interagindo entre si Objeto
Blocos de construo autocontidos (Dados e operaes protegidos) Apresentam baixa dependncia externa e alta coeso interna de seus componentes
Razes
Mapeamenteo mais realista : objetos esto presentes na natureza, antes de sofrerem a influncia do negcio Negcio apresenta caractersticas peculiares que podem comprometer a evoluo natural Conceitos inerentes humanos : Classificao, Composio, Comunicao, Conscincia(comportamento e propriedade) e Relacionamento Coerncia entre modelos(anlise, projeto e implementao) e o mundo real Baseados no espao do problema/soluo Oferece suporte(decomposio e modelagem) aos dados (elementos mais estveis) do Sistema de Informao
Razes
Facilidade incremental entre as fases sem a necessidades de reorganizao dos modelos Atualmente : Linguagens, ambientes operacionais e ferramentas de modelagem so baseados em objetos
Benefcios Esperados
Aumento de produtividade Diminuio do custo de desenvolvimento/manuteno Maior portabilidade e reutilizao de cdigo Classes bem escritas hoje reduzem o tempo/custo de desenvolvimento amanh Investir o tempo em evoluo/desenvolvimento e no em correes Manuteno evolutiva e no corretiva
Objetivos
Compreender os conceitos associados ao paradigma de orientao a objeto, bem como implicaes metodolgicas e organizacionais da mudana para OO Conhecer a amplitude do paradigma OO aplicados em vrias reas da Computao, especialmente no Desenvolvimento de Sistema
Paradigma O.O
Viso geral : Conjunto de princpios computacionais que definem a base comum e o conjunto de caractersticas essenciais dos Sistemas Orientados a Objetos Viso de Implementao : Criao de programa tendo como elemento fundamental um tipo abstrato de dado ou conceito de classes, e essas classes gerando os objetos que contero os recursos a serem manipulados pelo sistema
Comportamento(Operaes) Mtodos
Propriedades (Atributos)
Utilizao de recursos para permitir a abstrao, tendo como objetivo principal a simplificao do processo de desenvolvimento. Criao de uma hierarquia de classes, de tal maneira que uma classe herde a funcionalidade de outra e possibilite a particularizao dessa nova classe gerada
CLASSE
Gabarito(molde ou modelo) para definio de objetos, atravs da criao de classes, descreve-se o comportamento(atravs de seus mtodos) e seu estado(atravs de suas propriedades) Separa a especificao(classe) da implementao (instncia/objeto) Atravs da especificao de classes (mtodos e atributos/propriedades), define-se as funcionalidades que podem ser aplicados aos objetos resultantes(instanciados) As classes podero herdar variveis e mtodos de outras classes
Objeto
Instncea/realizao de uma classe Os objetos herdam a funcionalidade (mtodos e variveis) de classe que o gerou, podendo agregar novs funcionalidades (comportamento) especializando a classe que o gerou
Instncia
Mtodo
Operao que define o comportamento dos objetos resultantes da(s) classe(s) que o gerou(raram). So anlogos aos subprogramas(subrotinas) do paradigma procedural, porm, devem estar localizados dentro da classe que o implementa (objetivo)
Interface
Especificao de um comportamento abstrato (assinatura) que as classes individuais podem implementar. Contrato firmado entre o provedor da funcionalidade(classe) e os usurios(objetos cliente) daquele servio
Pacote
- Coleo de classes e interfaces, promove uma espcie de agrupamento, possibilitando uma melhor organizao de acordo com o propsito especfico (demonstrao de arquitetura ou visando uma agregao de conceitos)
Subclasses
Classe d nvel mais baixo ( em relao a sua superclasse), de acordo com a hierarquia de classes. Resultante da especializao de uma classe me(superclasse), atravs do mecanismo de herana. Uma classe pode gerar inmeras subclasses
Superclasse
Classe superior (em relao a sua subclasse), de acordo com a hierarquia de classes
Atributos
Herana
Mecanismo que permite a criao (especializao) de novas classes, contribuindo para a reutilizao, atravs do aproveitamento da funcionalidade da superclasse geradora de outras subclasses Pode ocorrer herana simples(somente uma superclasse participante) e herana mltipla (vrias superclasses geradoras) A maioria das linguagens implementa somente a herana simples devido a complexidade adicional inserida, quando necessrio gerenciar vrias subclasses
Mensagem
Os objetos interagem entre si atravs de troca de mensagem Promove a comunicao (invocao de mtodos funes/subrotinas encapsuladas) entre os objetos que disponibilizam as operaes atravs de suas interfaces
Polimorfismo
o principio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar mtodos que tem a mesma identificao mas comportamentos distintos, especializados para cada classe derivada A deciso de qual mtodo deve ser selecionado tomada em tempo de execuo, atravs do mecanismo de ligao tardia necessrio que os mtodos tenham exatamente a mesma identificao Quando se utiliza polimorfismo o comportamento adotado pelo mtodo definido durante a execuo Exemplo - O mtodo Abrir , para janela tem comportamento diferente do que Abrir em um arquivo
Encapsulao
Cpsula: membrana que reveste uma subastncia Em orientao a objetos significa uma membrana opaca e indestrutvel que protege a essncia do objeto Isola um conceito(Information Hiding), representado pelo objeto, do restante do contexto Quanto mais isolado, menor o impacto de sua mudana no restante do contexto Benefcio: Isola e reduz impacto com o meio Malefcio : Impede que haja interao com o meio Soluo: Violao de parte da encapsulao, definida atravs de interface Interface: Permissividade disciplinada e controlada, permitindo a interao com o meio Contm o comportamento externamente visvel do objeto(assinatura)
Controle de Acesso
Comunicao
Atravs de troca de mensagem solicitao de um objeto cliente para a execuo de uma operao da interface de um objeto servidor O servidor escolhe o mtodo a ser executado, pois a comunicao realizada atravs de interfaces
Classificao
Processo que consiste em identificar caractersticas comuns a um grupo de objetos, reunindo-as em uma estrutura que agrega as funcionalidades inerentes a algum conceito Abstrai todas as caractersticas que no so compartilhadas pelos objetos considerados A classe o elemento resultante da aplicao do conceito de classificao
Relacionamentos
Diagrama de Classes
Em UML, uma classe representada por um retngulo com o nome da classe. Uma classe descreve os objetos atravs de atributos e operaes.
Habitualmente escreve-se o nome da classe no singular (nome de uma instncia), com a 1 letra em maiscula .
Para representar o fato de que objetos podem se relacionar uns com os outros, utiliza-se a associao. Representa que duas classes possuem uma ligao (link), significando por exemplo que elas "conhecem uma a outra. Pode haver mais de uma associao (com nomes diferentes) entre o mesmo par de classes. Possui um nome (junto linha que representa a associao), normalmente um verbo.
Representada atravs de um segmento de reta ligando as classes cujos objetos se relacionam. Exemplos:
Cliente Produto
ContaCorrente
HistricoTransaes
Hspede
Quarto
Para melhor esclarecer o significado de uma associao no diagrama de classes, a UML define trs recursos de notao: Nome da associao: fornece algum significado semntico a mesma. Direo de leitura: indica como a associao deve ser lida. Papel: para representar um papel especfico em uma associao.
Contrata
contratado Indivduo *
Pessoa
uma classe que est ligada a uma associao, ao invs de estar ligada a outras classes. normalmente necessria quando duas ou mais classes esto associadas, e necessrio manter informaes sobre esta associao (histrico).
Emprego salrio dataContratao Pessoa nome telefone endereo
* empregado
* empregador
Cada associao em um diagrama de classes possui duas multiplicidades, uma em cada extremo da linha de associao.
efetua
1
Um ou Muitos
Zero ou Um Intervalo Especfico Pedido 0..*
1..*
0..1 li..ls
Cliente
Agregao
um caso especial da associao. conseqentemente, multiplicidades, nome da associao e papis, podem ser usados igualmente. Utilizada para representar conexes que guardam uma relao todo-parte entre si. Em uma agregao, um objeto est contido no outro, ao contrrio de uma associao. Onde se puder utilizar uma agregao, uma associao tambm poder ser utilizada.
Agregao
Caractersticas particulares: Agregaes so assimtricas: se um objeto A parte de um objeto B, B no pode ser parte de A. Agregaes propagam comportamento, no sentido de que um comportamento que se aplica a um todo automaticamente se aplica as suas partes.
Empresa 1
Todo
Representada como uma linha conectando as classes relacionadas, com losango branco perto da classe que representa o todo. Exemplo:
Afiliada * * membro Equipe * * Jogador
AssociaoEsportiva
Diagrama de Classes
Demonstra a estrutura esttica das classes de um sistema. Na fase de anlise, tendo em mos o diagrama de use-case, podemos definir o diagrama de classes do sistema. O modelo de classes evolui durante o desenvolvimento do sistema. medida que o sistema desenvolvido, o modelo de classes incrementado com novos detalhes.
Diagrama de Classes
abstrao:
Diagrama de Classes
Modelagem Conceitual
Modela classes do domnio do problema; utilizada na anlise; No leva em considerao restries inerentes tecnologia a ser utilizada na soluo de um problema. Descreve o problema a ser desenvolvido, sem considerar caractersticas da soluo a ser utilizada.
Diagrama de Classes
Modelagem Conceitual
Mtodos e atributos de acesso a banco de dados, estrutura de mensagens entre objetos, no aparecem no diagrama, apenas os tipos de objetos bsicos do sistema.
Diagrama de Classes
Modelo de especificao
Obtido atravs da adio de detalhes ao modelo anterior conforme a soluo de software escolhida. Procura-se tipos sem pensar em implementao. Pensa-se em interfaces e no na implementao. Concentra-se no comportamento das coisas e no o que elas so; Prefervel durante a fase de projeto.
Diagrama de Classes
O modelo de Implementao
Corresponde implementao das classes em alguma linguagem de programao. Classes representam estritamente conceitos de implementao.
Categorias de responsabilidades
Costuma-se categorizar os objetos de um sistema de acordo com o tipo de responsabilidade a ele atribuda. objetos de entidade; objetos de controle; objetos de fronteira/Interface. Esta categorizao foi proposta por Ivar Jacobson (Jacobson et al, 1992) em uma tcnica denominada Anlise de Robustez.
Objetos de Fronteira/Interface
Esses objetos traduzem os eventos gerados por um ator em eventos relevantes ao sistema. Tambm so responsveis por apresentar os resultados de uma interao dos objetos em algo inteligvel pelo ator. Um objeto de fronteira existe para que o sistema se comunique com o mundo exterior. Classes de fronteira realizam a comunicao do sistema com atores, sejam eles outros sistemas, equipamentos ou seres humanos.
Objetos de Controle
So a ponte de comunicao entre objetos de Interface e objetos de entidade. Responsveis por controlar a lgica de execuo correspondente a um caso de uso. Decidem o que o sistema deve fazer quando um evento externo relevante ocorre. Eles realizam o controle do processamento; Agem como gerentes (coordenadores, controladores) dos outros objetos para a realizao de um ou mais caso de uso.
Objetos de Entidade
Um objeto de entidade um repositrio para alguma informao manipulada pelo sistema. Normalmente esses objetos armazenam informaes persistentes. Atores no tm acesso direto a estes objetos. Objetos de entidade se comunicam com o exterior do sistema por intermdio de outros objetos. Objetos de entidade normalmente participam de vrios casos de uso e tm um ciclo de vida longo.
Categorias de responsabilidades
entidade
fronteira
controle
entidade
entidade
em
Objeto de Interface
Objeto de Controle
Objeto de controle (controla seqncia de funcionamento, transaes, estabelece ligao entre objetos de fronteira e entidades). Coordena a realizao de um caso de uso (controle).
Objeto entidade: que mantm informaes do sistema (entidade). as
Objeto de Entidade
Diagrama de Objeto
Alm do diagrama de classes, A UML define um segundo tipo de diagrama estrutural, o diagrama de objetos. Pode ser visto com uma instncia de diagramas de classes.
Diagrama de Objeto
Representa uma fotografia do sistema em um certo momento. exibe as ligaes formadas entre objetos conforme estes interagem e os valores dos seus atributos. Ilustram estruturas de dados. Construdo durante a anlise e design.
Exemplo:Diagrama de Objeto
Exemplo:Diagrama de Objeto
Exemplo:Diagrama de Objeto
produto20 : Produto nome = "Caderno M" descrio = "Caderno em espiral tamanho mdio" preoUnitrio = 4,50 desconto = 15 produto12 : Produto nome = "Caneta ESF" descrio = "Caneta esferogrfica 5mm" preoUnitrio = 1,20 desconto = 2 produto07 : Produto nome = "Esquadro" descrio = "Esquadro de acrlico 20 cm" preoUnitrio = 2,35 desconto = 10
item1 : ItemPedido quantidade = 6 Pedido1 : Pedido ItemPedido Pedido data Produto = 13/09/2002 hora = 10:00am
Diagramas de Interao
Somente aps a construo de diagramas de interao para os cenrios de um caso de uso, pode-se ter certeza de que todas as responsabilidades que os objetos devem cumprir foram identificadas. Ivar Jacobson, 1995
Diagramas de Interao
Interao
uma especificao comportamental que inclui uma seqncia de trocas de mensagens entre um conjunto de objetos dentro de um contexto, para realizar um propsito especfico.
Representa
as mensagens trocadas entre os objetos para a execuo de cenrios dos casos de uso do sistema.
Diagramas de Interao
Caso de Uso
Ator Evento de Entrada
Objeto A
Mensagem
Objeto B
Diagramas de Interao
Enfatizam as interaes de objetos. Representam como o sistema age internamente
para que um ator atinja seu objetivo na realizao de um caso de uso. A modelagem de um sistema de OO normalmente contm diversos diagramas de interao.
Diagramas de Interao
Existem dois tipos de diagramas de interao:
Diagrama de Seqncia; Diagrama de Colaborao.
Diagramas de Interao
Diagrama de seqncia: mensagens enviadas no decorrer do tempo. Diagrama de colaborao: mensagens enviadas entre objetos que esto relacionados.
Diagramas de Seqncia
Um diagrama de Seqncia mostra uma interao, isto , uma seqncia de mensagens trocadas entre vrios objetos em um determinado contexto. Enfatiza a comunicao e passagem de controle entre objetos ao longo do tempo. O diagrama de seqncia consiste em um nmero de objetos mostrado em linhas verticais.
Diagramas de Seqncia
O decorrer do tempo visualizado observando-se o diagrama no sentido vertical de cima para baixo. As mensagens enviadas por cada objeto so simbolizadas por setas entre os objetos que se relacionam. Possuem dois eixos: vertical, que mostra o tempo e horizontal, que mostra os objetos envolvidos na seqncia de uma certa atividade.
Diagramas de Seqncia
Cada objeto representado por um retngulo ao
topo de uma linha vertical a trao interrompido (linha de vida).
Diagramas de Seqncia
Objeto1:Classe1 Objeto2 Objeto3
Tipos de mensagens
Mensagem
Mensagem
sncrona: indica que o objeto remetente espera que o objeto receptor processe a mensagem antes de recomear o seu processamento.
Tipos de mensagens
Mensagem
assncrona: objeto remetente no espera a resposta para prosseguir com o seu processamento.
Mensagem
representada por mensagem dirigida prpria caixa que representa o objeto (em vez de ser dirigida linha de vida) Mensagem de criao pode ter esteretipo create.
ob1:C1
Diagramas de Seqncia
Ator Objeto Classe
Objeto2
Objeto3
Classe
mensagem2
Linha de vida
mensagem3
Foco de controle
Mensagem
Diagramas de Seqncia
: Administrador
: Form_Principal
: Tratar_Dados
: Tab_Administrador
: Form_Curso
: Tratar_Dados
: Tab_Curso
Inf ormar Dados Curso (Criar) Validar Dados Inserir Curso (cri...
Validar Dados
Alterar Curso
Validar Dados
Consultar Dados
Funcionario
Form_Funcionario
Tratar_Dados
Funcionario
Informar Dados Funcionario Consultar VerificarDados() ConsultarFuncionario() Exibir Dados dos Funcionarios Exibir exibir
Funcionario
Form_Aluno
Tratar_Dados
Aluno
Informar Dados do Aluno(Inserir) VerificarDados() InserirAluno() Informar Dados do Aluno(Alterar) VerificarDados() AlterarAluno() Informar Dados do Aluno(Consultar) VerificarDados() RecuperaPorCodigo()
Exibir
Exibir
Diagrama de Colaborao
Um diagrama de colaborao mostra de maneira semelhante ao diagrama de seqncia, a colaborao dinmica entre os objetos. Normalmente pode-se escolher entre utilizar o diagrama de colaborao ou o diagrama de seqncia. O diagrama de seqncia equivalente ao diagrama de colaborao.
Diagrama de Colaborao
Estruturalmente, bastante semelhante a um diagrama de objetos. A diferena que so adicionados setas e rtulos de mensagens nas ligaes entre esses objetos.
Diagrama de Colaborao
Janela de Entrada de Pedido
1:preparar( )
Um Pedido
2:preparar( )
Um Item de Pedido
Diagrama de Colaborao
: Form_Principal 2: Verificar Dados : Tratar_Dados 3: Autenticar Dados : Tab_Administrador
1: Informar Login e Senha : Form_Curso 4: Informar Dados Curso (Criar) 7: Informar Dados_Curso (Alterar) : Administrador 10: Informar Dados_Curso (Consulta) 14: Informar Dados Curso (Excluir) 5: Validar Dados 8: Validar Dados 11: Validar Dados 15: Validar Dados : Tratar_Dados
6: Inserir Curso (criar) 12: Consultar Dados 13: Exibir Dados do Curso
: Tab_Curso
Diagrama de Colaborao
MER
Motivao
Modelagem semntica permite aproximar o modelo obtido do mundo real Exemplo de modelos:
MER UML (linguagem de modelagem universal)
Representao semntica das estruturas de dados mantidas num banco de dados Foi proposto por Peter Chen em 1976 Possui vrias notaes:
-
como
simples
Entidades
Uma entidade tudo aquilo sobre o qual se deseja manter informaes. Podendo representar:
objetos concretos: pessoas, livros, carros, conceitos abstratos: embarques, empresas, eventos,
Entidade
Possui propriedades que a distingue de outras entidades. um subconjunto de objetos (instncias) que:
Entidades
Ex.:
Conjunto de todas as contas correntes de um banco Conjunto de todos os empregados de uma empresa Conjunto de todos os filmes de um produtor
Entidades
Entidade: EMPREGADO Descrio: Pessoa que mantm vnculo empregatcio com a Empresa atravs de um contrato de trabalho de acordo com a legislao trabalhista
Entidades
Entidade: ENCOMENDA Descrio: Instrumento contratual de emisso unilateral pela empresa e aceitao, expressa ou tcita, pelo fornecedor do material.
Entidades
Instncia: objeto de uma entidade com suas respectivas propriedades que distinguvel dos outros objetos. Ex.: A entidade Empregado poderia ter a seguinte instncia: Maria dos Anjos, 31 anos, Secretria, Solteira, R$ 800,00
Atributos
Ex.: A entidade CARRO poderia ter os seguintes atributos: Placa, fabricante, modelo, ano de fabricao, cor, preo O relaciomento TRABALHA entre EMPREGADO e PROJETO pode ter o atributo: horasTrabalhadas.
Atributos
Cada atributo possui um domnio que identifica o conjunto de valores permitidos para aquele atributo.
no Dicionrio de Dados:
Entidade: EMPREGADO Atributo: Data de Admisso Descrio: data na qual foi assinado o contrato de trabalho entre a empresa e o empregado Domnio: data posterior a 03/01/78 (data de criao da empresa) e a data de nascimento do empregado
Atributos
Simples: atmico.
Ex. Idade: numrico Nome: cadeia de caracteres contm sub-atributos que compem o atributo. Ex.: Endereo(rua, nmero, bairro, CEP, cidade, )
Composto:
Atributos
valor para uma instncia de uma entidade. Ex.: PESSOA: Idade Multivalorados: possuem vrios valores numa instncia de uma entidade. PESSOA:TitulaoSuperior(nenhum, Bel. MSc., PhD) Atributos derivados: podem ser determinados a partir de outros atributos/entidades. Ex. Idade e dataAniversrio
Relacionamentos
So funes que mapeiam um conjunto de instncias de uma entidade em um outro conjunto de instncias de outra entidade (ou da mesma entidade: auto relacionamento). Em outras palavras, so associaes entre diversas entidades.
Ex.: Um empregado trabalha num projeto Um cliente possui conta bancria Um filme possui vrios atores
Relacionamentos
1..N
Empregado
trabalha
1..N
Projeto
horas
matricula
nome
salrio
Relacionamentos
0..N
Empregado
0..1
supervisiona
Relacionamentos
OBS.1: No modelo UML, em que entidades so classes, os relacionamentos so implementados com o conceito de papel. Por exemplo, no diagrama de Empregado Trabalho em Departamento, trabalha o papel do relacionamento. Ex.
Empregado
trabalha possui
Departamento
Departamento Trabalha
horas codigo nome gerente
Restries de Integridade
Caracterizam as restries nas quais os relacionamentos entre entidades esto submetidos (regras do negcio). Ex.: Todo empregado deve estar lotado num departamento Existe Cliente que no foi recomendado por Cliente Toda NotaFiscal deve ter pelo menos um item discriminado Toda multa deve estar associada a um carro Existe carro sem multa asociada
Restries de Integridade
Podemos caracterizar um relacionamento em termos de: 1. Cardinalidade: quantidade instncias que podem participar relacionamento de do
Restries de Integridade
Tipos de Cardinalidade
Um_para_Um (1:1): uma instncia de uma entidade A est associada a no mximo a uma instncia de uma entidade B, e vice-versa. Um_para_Muitos (1:N): uma instncia de uma entidade A est associada a qualquer nmero de instncias da entidade B. Porm, uma instncia da entidade B pode estar associada, no mximo, a uma instncia da entidade A.
Restries de Integridade
Tipos de Cardinalidade
Muitos_para_Um (N:1): uma instncia da entidade A est associada a uma instncia de B. Porm, uma instncia de B pode estar associada a qualquer nmero de instncias de A. Muitos_para_Muitos(M:N): uma instncia da entidade A est associada a qualquer nmero de instncias da entidade B, e vice-versa.
Restries de Integridade
A
a1 a2 a3 a4 a5
B
b1 b2 b3 b4 b5
A
a1 a2 a3 A a1 a2 a3 a4 a5
B
b1 b2 b3 b4 b5
1:1
A a1 a2 a3 a4 a5 B b1 b2 b3
1:N
B b1 b2 b3 b4 b5
N:1
N:M
1 N
N M
0..1
1..N 0..N 0..1
0..N
0..M
Observao
Obs.: Diagramas ER dizem quantas instncias fazem parte de um relacionamento, mas no dizem quais instncias.
de uma Locadora de Filmes que armazena todas as informaes do seu acervo, funcionrios, clientes, emprstimos e pagamentos. A locadora mantm o registro de todas as distribuidoras do seu acervo. Construa um DER contendo todas as informaes da locadora.
Construa o DER para uma rede de locadora de carros que possui vrias filiais. Cada filial possui diversos carros para alugar. Existem vrios tipos de carro, popular, luxo, utilitrio, etc. Os carros possuem cdigo (chapa do carro), tipo, modelo, ano, cor, chassis, km, valor do aluguel. Os clientes da locadora alugam carros. Existem clientes especiais e clientes comuns. Os especiais possuem uma taxa de desconto e um valor de km extra para seus aluguis. Para cada aluguel emitida uma nota fiscal com a km percorrida e o valor do aluguel. Locadora possui funcionrios que trabalham nas filiais. As filiais so identificadas por cdigo, nome da cidade, endereo e telefones. Os clientes so identificados por cdigo, nome, CPF, telefone, endereo, cidade. E os funcionrios so identificados por cdigo, nome, endereo, telefone, cidade. Acrescente os atributos que achar
Exerccio - 02
Exerccio - 03
Construa o DER para o controle de reservas de passagens areas de uma empresa. A empresa dispe de vrios tipos de aeronaves, onde cada tipo tem cdigo, modelo, ano de fabricao e capacidade. Os vos possuem n e hora de incio. Um vo pode ser realizado em um tipo de aeronave. Cada vo tem uma cidade como origem, uma cidade como destino e escala em vrias cidades. Cada cidade tem cdigo, nome, capacidade do aeroporto. As reservas possuem cdigo, data, status e valor. Uma reserva pode ser de vrios passageiros. Cada passageiro tem nome, endereo, telefone. Cada reserva confirmada em um ponto de venda. Cada ponto de venda tem cdigo, nome, endereo e telefones. Os funcionrios da empresa possuem cdigo, nome e endereo e trabalham em vrios postos de venda, cada posto de venda possui um funcionrio atuando como gerente.
Entidades Fracas
So entidades que so dependentes de existncia ou de identificao de um outra entidade. outra classe de restrio. Se a existncia de uma instncia x depende da existncia de uma outra instncia y, ento x (instncia subordinada) dependente de existncia de y (instncia dominante), e, portanto, a entidade que contm x fraca com relao entidade que contm y. Ento, se y for removido, x tambm o ser.
Entidades Fracas
1 Empregado tem
0..N
Dependente
Chaves
Como distinguir as instncias de uma entidade? Num Banco de Dados, isto feito atravs dos atributos das entidades que formam as chamadas chaves de identificao. Toda instncia de uma entidade deve ter uma chave de identificao, que deve ter algum valor no nulo.
Chaves
Superchave
o conjunto de atributos que identificam uma instncia. Se K uma superchave ento todo superconjunto de K tambm ser uma superchave. Ex.: Seja o esquema Empregado(matricula, nome, endereco, funcao, salario) Ento: matricula uma superchave; (matricula, nome) uma superchave; (matricula, nome, funcao) uma
Chaves
chaves candidatas.
(nome,
A chave candidata escolhida pelo projetista para identificar as instncias chamada de chave primria. Ex. Empregado: matricula
Chaves
Chave de identificao composta: uma chave formada por mais de um atributo. Ex.: Cenrio: sistema de controle de multas de trnsito. Premissas: toda multa est relacionada a um carro, carros devem ser de propriedades de pessoas que tenham carteira de habilitao, carteiras de habilitao so emitidas pelo DETRAN de cada estado.
Chaves Entidade
Chave Sigla do estado Estado Motorista Sigla do estado + nmero da carteira de habilitao Sigla do Estado Carro Nmero da carteira de motorista Placa do Carro Sigla do Estado Multa Nmero da carteira de motorista Placa do Carro Nmero de sequncia da multa
Chaves
Chaves de identificao definidas pelo usurio concorrem entre si como chaves candidatas e so sujeitas mudanas.
Ex.: Entidade : Departamento Chaves candidatas: 1. Sigla do Departamento 2. Cdigo do Centro de Custo 3. Cdigo da Diretoria + Cdigo da Superintendncia + Cdigo do Departamento
Chaves
O que fazer quando: um departamento mudar de nome? for modificada a estrutura de codificao de Centros de Custos? um departamento mudar de diretoria?
Chaves
Surrogates(chave primria):
-
criados para cada entidade (chave primria) identifica univocamente cada instncia da entidade no precisa ser percebida pelos usurios no controlado pelos usurios (gerado automaticamente pelo SGBD)
Chaves
Surrogates:
Entidade = Identidade + Propriedades
Identidade: chave de identificao prpria Propriedades:
Chaves
Integridade de Entidade:
Toda instncia de uma entidade possui um valor para chave de identificao prpria da entidade O valor da chave de identificao prpria para uma instncia nico e no nulo dentro da entidade O valor da chave de identificao prpria de uma instncia no pode ser modificado Obs.: Surrogates reutilizados!!! no devem ser
MER Estendido
Superclasses e Subclasses
Vimos que uma entidade usada para representar um conjunto de instncias do mesmo tipo (Ex. Empregado). Porm, muitas vezes uma entidade tem subentidades que necessitam ser representadas explicitamente. Ex. Empregado pode ser agrupado em: Secretria, Engenheiro e Tcnico
MER Estendido
Superclasses e Subclasses
Estas sub-entidades so subconjuntos da entidade Empregado, ou seja, cada instncia de uma sub-entidade tambm uma instncia da entidade Empregado. Ento dizemos que Secretria _uma Empregada, Engenheiro _um Empregado e Tcnico _um Empregado. Este relacionamento _um caracteriza a herana. Ou seja, a sub-entidade (subclasse) herda todos os atributos e relacionamentos da superentidade (superclasse).
MER Estendido
Superclasses e Subclasses
importante notar, que nem toda instncia da superentidade membro de uma sub-entidade. Por exemplo, podemos ter empregados que no so nem secretria, nem engenheiro, nem tcnico.
MER Estendido
Empregado
_um
Secretria
Engenheiro
Tcnico
Especializao
o processo de definir um conjunto de subclasses de uma entidade (superentidade). Podem-se ter vrias especializaes de uma mesma entidade, baseado em caractersticas distintas. Por exemplo, a entidade Empregado pode tambm ser especializada nas subentidades Assalariado e Horista.
Especializao
Funcionrio trabalha Setor
Mdico
Recepcionista
atende
Cliente
Generalizao
o processo inverso Especializao, isto ; um processo de sntese em que suprimimos as diferenas entre vrias entidades (subclasses), identificamos suas caractersticas comuns e as generalizamos numa superclasse.
Generalizao
Micro
monitor
mouse
teclado
gabinete
CPU
RAM
fonte
Cobertura Total: cada instncia da superentidade deve ser uma instncia de alguma subentidade. Ex.: Todo Empregado deve ser Engenheiro, Secretria ou Motorista Cobertura Parcial: uma instncia de uma superentidade pode no ser membro de nenhuma subclasse. Pode existir empregado que no seja Engenheiro, Secretria nem Motorista.
Especializao Total
Cliente
Pessoa Fsica
Pessoa Jurdica
Indica que todo Cliente necessariamente ou uma pessoa fsica ou uma pessoa jurdica. Na especializao total, existe a obrigatoriedade de uma ocorrncia da entidade genrica corresponder a uma ocorrncia em uma das entidades especializadas.
Especializao Parcial
Funcionrio
Mdico
Enfermeiro
Indica que nem todo Funcionrio necessariamente um Mdico ou um Enfermeiro. Pode ser um Faxineiro, por exemplo. Na especializao parcial, no existe a obrigatoriedade de uma ocorrncia da entidade genrica corresponder a uma ocorrncia em uma das entidades especializadas.
Disjuno: uma dada instncia pode ser membro de no mximo uma subentidade. Ex. Empregado secretria ou engenheiro ou tcnico. Sobreposio: uma mesma instncia pode ser membro de mais de uma subentidade Ex. Empregado pode ser engenheiro e tcnico.
Uma academia oferece vrias opes de prtica de esportes a seus Alunos. Para este fim, ela conta com uma equipe de professores, e com uma infra-estrutura de locais adequados para prticas esportivas diversas. Os Alunos so caracterizados pelo RG, nome, sexo, estado civil, filiao, naturalidade, nacionalidade e endereo. As diferentes opes de contrato permitem ao aluno efetuar matricula em aulas com horrios diferenciados (por exemplo, opes mais baratas no permitem a freqncia do aluno em horrios noturnos). Cada professor caracterizado por seu nome, sexo, filiao, telefone, endereo, RG ou por sua carteira de trabalho. Cada professor est apto a orientar pelo menos uma modalidade esportiva (exemplo: vlei, basquete, aerbica, musculao, etc). Eventualmente o professor tem uma qualificao especfica para a orientao de uma dada modalidade (exemplo: mestrado em voleibol pela ESEF, especializao em capoeira com Mestre Dad, etc), podendo possuir mais de uma (exemplo: mestrado em voleibol pela ESEF e especializao em voleibol para terceira idade). Ao ser contratado, o professor informa todas as modalidades que pode orientar, e sua qualificao (ou qualificaes) para cada uma delas, caso exista(m). A academia oferece um elenco de modalidades esportivas, de acordo com a infra-estrutura existente. Uma mesma modalidade pode ser orientada por um ou mais vrios professores, ou mesmo por nenhum (por exemplo, as aulas de aerbica so orientadas por um professor, mas pode ser praticado por clientes da academia). A qualquer momento, a academia quer saber (Imprimindo relatrios) quais modalidades esportivas oferece, quais professores podem atuar em quais modalidades esportivas, e quais aulas esto previstas para uma mesma modalidade (com seus respectivos professores). A academia mantm um cadastro de todo o tipo de equipamento/acessrio que possui (exemplo: bicicleta, esteira, step, rede de vlei). Cada tipo identificado por seu nome, e caracterizado por um ou mais nomes de fornecedores daquele tipo de equipamento/acessrio. Cada equipamento/acessrio especfico adquirido identificado por seu tipo, junto com um nmero seqencial (exemplo: bicicleta 1, bicicleta 2, esteira 1, esteira 2).
Contedo
3FN
Benefcios da Normalizao
capacidade de um modelo manter-se inalterado face a mudanas que venham a ser percebidas ou introduzidas no ambiente modelado. diminuio do nmero de repeties. diz respeito a qualidade do dado. redundncia de dados controlada.
Integridade.
Economia.
Definir chaves candidatas. A partir das chaves candidatas escolher a chave primria da tabela. Em cada tabela eliminar grupos repetitivos gerando novas linhas, uma para cada ocorrncia do item repetitivo, mantendo os valores dos demais itens.
1FN
Ex.: Empregado
Matr cula 120 120 121 121 121 270 270 273 274 279 279 279 301 306 Nome Joo Joo Hlio Hlio Hlio Gabriel Gabriel Silva Abrao Carla Carla Carla Ana Manoel Cod Cargo 1 1 1 1 1 2 2 3 2 1 1 1 1 3 NomeCargo Programador Programador Programador Programador Programador Analista Analista Projetista Analista Programador Programador Programador Programador Projetista CodProj 01 08 01 08 12 08 12 01 12 01 08 12 12 17 DataFim 17/07/95 12/01/96 17/07/95 12/01/96 21/03/96 12/01/96 21/03/96 17/07/95 21/03/96 17/07/96 12/01/96 21/03/96 21/03/96 21/03/96 Horas 37 12 45 21 107 10 38 22 31 27 20 51 16 67
Identificar as colunas que no participam da chave primria da tabela. Para cada coluna, analisar se seu valor dependente em parte ou na totalidade da chave. Para colunas dependentes parcialmente, criar novas tabelas e excluir as dependncias parciais.
2FN - A tabela Empregado aps passarmos para 2FN resultaria em trs tabelas:
Empregado Empregado Matrcula 120 121 270 273 274 279 301 306
CodCargo 1 1 2 3 2 1 1 3
2FN
Projeto
Projeto CodProj 01 08 12
Alocao Alocao Matrcula CodProj 01 120 08 120 01 121 08 121 12 121 08 270 12 270 01 273 12 274 01 279 08 279 12 279 01 301 12 301 12 306
Horas 37 12 45 21 107 10 78 22 31 27 20 51 16 85 67
Identificar as colunas que no participam da chave primria da tabela Para cada coluna, analisar se seu valor dependente de alguma coluna que no seja chave. Para colunas dependentes transitivamente, criar novas tabelas e excluir as dependncias transitivas
NomeCargo dependente transitivo de Matrcula. Removendo esta dependncia transitiva, obteremos, alm das tabelas Projeto e Alocao, as seguintes tabelas
Empregado Empregado Matrcula 120 121 270 273 274 279 301 306 Nome Joo Hlio Gabriel Silva Abrao Carla Ana Manuel CodCargo 1 1 2 3 2 1 1 3
Cargo Cargo CodCargo 1 2 3
UF_c idade
EstadoCivil
Us uri o_es tc ivil
Cod_estado_civil Desc_estado_civil
Escolaridade Usurio Cod_Usurio Nome_Usurio Endere o_Us urio Login Senha Email_Usurio DataNasc Nome_pai Nome_mae RG CPF Cod_Escolaridade Desc_Escolaridade
Es colaridade_Al uno T elefone_ti po_telefone
T itul o_profes s or
Professor Mat_Professor
Aluno_AluT es tapt
Administrador Desc_LocalAdmin
Admin_Cria
Profes s or_Materi al
Aluno_AlunoExerc
Curs o_Aluno
Exerc_Alunoexerc
Profes s or_Exerc c io
Profes s or_Avalia o
T este_Apti doAluno
Exerc_Ques tao