1 / 59

Bancos de Dados Orientados a Objetos

Bancos de Dados Orientados a Objetos. Álvaro Vinícius de Souza Coêlho alvaro.degas@yahoo.com.br. Orientação a Objetos. O que é um objeto Alguma coisa que faz sentido no contexto da aplicação.

Download Presentation

Bancos de Dados Orientados a Objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bancos de Dados Orientados a Objetos Álvaro Vinícius de Souza Coêlho alvaro.degas@yahoo.com.br

  2. Orientação a Objetos • O que é um objeto • Alguma coisa que faz sentido no contexto da aplicação. • Podem ser definidos como um conceito, abstração ou simplesmente algo que tenha significado bem definido • Objetos servem a dois propósitos: Prover entendimento do mundo real e dar uma base prática para a implementação

  3. Orientação a Objetos • O que é um objeto • A decomposição de um problema em seus objetos depende de preferências e julgamentos pessoais • Todo objeto tem identidade e é distinguível dos seus semelhantes • Objeto: Uma Coisa. Classe: Conjunto de Coisas

  4. Orientação a Objetos • O que é um objeto • Classes: Árvores, Árvores Frutíferas, Árvores Ornamentais, Empregados, Fornecedores • Objetos:“A mangueira do quintal da minha avó”, “José da Silva, Professor, nascido em 14/07/1963” e “Microsoft Corporation”

  5. Orientação a Objetos • Classes • “É um conceito que descreve um grupo de objetos com propriedades (atributos) similares, comportamentos (métodos), relacionamentos (associações) comuns com outras classes e principalmente, semântica semelhante “ Rumbaugh • Parêntesis são notas minhas

  6. Orientação a Objetos • Classes • Se o foco da modelagem é objeto, porque perder tempo com classes? • O agrupamento de objetos em classes permite a abstração do problema! • Prerrogativa de generalizar a partir de poucos casos específicos

  7. Orientação a Objetos • Classes • As definições são armazenadas uma por classe, não uma por instância • As operações também são definidas para a classe, de forma que seus objetos possam reutilizá-las • Tomando por exemplo a classe Pessoa

  8. Orientação a Objetos • Classes • Pode ser necessário saber que uma pessoa (qualquer) possui: Idade, Nome, Endereço e, possivelmente Cônjuge, Emprego e Filhos • Qualquer pessoa, também, tem os comportamentos de Casar, Separar, Ter Filhos, Aniversariar, Se mudar ...

  9. Orientação a Objetos • Classes • Isso é verdade para todas as pessoas que eventualmente sejam inseridas nesta classe • Ainda que o valor de cada informação possa ser modificado a cada caso, a forma de descrição é a mesma

  10. Orientação a Objetos • Classes • José pode ter 34 anos, morar na Rua das Flores, não ter cônjuge, trabalhar como vendedor na Sapataria Vianna e ter uma filha, a Maria. • Antônio pode ter 51 anos, morar na Rua da Independência, ter uma esposa (Helena), trabalhar como gerente na Sapataria Vianna e ter dois filhos: Pedro e Ricardo

  11. Orientação a Objetos • Classes • José e João são, nesta abordagem, objetos de uma mesma Classe • Objetos de uma classe tem os mesmos atributos e comportamentos padronizados • não necessariamente iguais, como vai se ver

  12. Orientação a Objetos • Classes • Os objetos de uma classe normalmente se diferenciam pelos seus atributos e relações com outros objetos • Mas dois objetos podem ser idênticos em seus atributos e relações, mantendo ainda assim cada um a sua individualidade

  13. Orientação a Objetos • Classes • Por exemplo um sistema de pesquisa por amostragem • Cada pessoa entrevistada te seu nome mantido no anonimato. É um objeto da classe Entrevistado • Uma classe “Entrevistado” possui os atributos “Cor”, “Naturalidade”, “Idade”, “Faixa Salarial” e “Sexo”.

  14. Orientação a Objetos • Classes • Podem existir inúmeras instâncias de objetos com os mesmos valores (Negra, Itabuna/BA, 22, 0 a 300 Reais, Feminino) • Apesar disso, cada instância é única – e pode ser referida unicamente no sistema

  15. Orientação a Objetos • Classes • Os objetos de uma classe compartilham uma semântica comum, mais que atributos e métodos comuns

  16. Orientação a Objetos • Classes • Por exemplo, um objeto da classe Roupa e um objeto da classe Carro podem ter os atributos Cor e Fabricante. • Porém, olhados sob a perspectiva dos mais variados sistemas terão, certamente, que ser colocados em classes distintas • Exceto no caso de um sistema bastante excêntrico - não consegui pensar em nenhum caso que Cor e Fabricante fossem relevantes ao mesmo tempo em que roupas e carros pudessem ficar numa mesma classe.

  17. Orientação a Objetos • Classes • Cada objeto sabe a que classe pertence, • Isto é tão natural que muitas Linguagens Orientadas a Objeto implementam um atributo interno que informa a classe do objeto.

  18. Orientação a Objetos • Como identificar classes. Iniciando a modelagem • Classes são coisas que deverão existir dentro do sistema. Logo, devem representar coisas do mundo real • Normalmente aparecem como nomes nas sentenças que definem o mundo a ser modelado (a se ver em UML)

  19. Orientação a Objetos • Como identificar classes. Iniciando a modelagem • Deve-se observar que nem todos os nomes das sentenças são classes • É interessante ressaltar que a observância dessas regras pode resultar no surgimento/desaparecimento de classes no decorrer do processo

  20. Orientação a Objetos • Como identificar classes. Iniciando a modelagem • A orientação a objetos sugere que o processo de análise seja feito em espiral • cada etapa pode ser re-visitada inúmeras vezes, e a cada destas se acrescenta novas características

  21. Orientação a Objetos • Como identificar classes. Iniciando a modelagem • Lembrança Necessária: É necessário lembrar de alguma coisa sobre os objetos da classe? • Processamento Necessário: Há algum comportamento relevante dos objetos?

  22. Orientação a Objetos • Como identificar classes. Iniciando a modelagem • Atributos Múltiplos: Duvidar de classes que não tenham pelo menos dois atributos. • Mais de um objeto por classe: Duvidar de classes que tenham somente um objeto

  23. Orientação a Objetos • Como identificar classes. Iniciando a modelagem • Atributos sempre aplicáveis: Deve haver um conjunto de atributos possível de se imaginar para os mais diferentes objetos da classe. • Caso o conjunto seja sempre o mesmo ok. Caso contrário, deve se tratar de Generalização

  24. Pessoa Empresa Orientação a Objetos • Classes, no diagrama de casses, devem ser colocados num retângulo dividido em três partes, a primeira com seu nome

  25. Orientação a Objetos • Como identificar Atributos • Atributos são informações específicas de propriedades de um objeto que são relevantes para o sistema • Para identificar os atributos, deve-se olhar para as classes identificadas e imaginar as responsabilidades do sistema. • O que é necessário saber sobre quem, a qualquer tempo.

  26. Orientação a Objetos • Como identificar Atributos • Atributos devem ser um valor de dados puro • Não se pode permitir que um atributo seja um outro objeto • Mas podem ser multivalorados • Os atributos vão ser listados na segunda parte do retângulo da classe

  27. Orientação a Objetos • Identificadores Naturais e Artificiais • Existem atributos que são naturalmente identificadores únicos de objetos: Placa, CPF, etc. • Os BD Relacionais usam identificadores únicos, naturais ou artificiais, para reconhecer um objeto (uma tupla).

  28. Orientação a Objetos • Identificadores Naturais e Artificiais • Aqui se deve esquecer a questão: Atributos nunca são identificadores únicos • Ainda que não ocorram mais de uma vez e eventualmente sejam usados assim na implementação. • Chaves primárias são considerações de projeto. • E em BDs Relacionais

  29. Orientação a Objetos • Identificadores Naturais e Artificiais • Portanto, RG, Placa, Chassis são atributos perfeitamente válidos. • Mas Usuário_ID, CodPaciente NumCliente são erros

  30. Orientação a Objetos • Generalização • Uma classe deve ter atributos ou métodos específicos para objetos bem definidos • Por exemplo, uma classe “Figura Geométrica” • Atributos “Posição_Centro” • Métodos “Desenhar()” e “Área()”.

  31. Orientação a Objetos • Generalização • Mas para figuras diferentes, a forma de calcular a área muda de acordo com o tipo • Círculo e Retângulo • Além disso, atributos também sofrem mudanças • Círculos precisam de “Raio” e retângulos precisam de “Base” e “Altura”

  32. Orientação a Objetos • Generalização • “Círculo” e “Retângulo” são, portanto, candidatos naturais a serem generalizados na classe “Figura Geométrica” • Regra Geral: “Se duas (ou mais) classes tem semântica semelhante, e um ou mais atributo ou método e comum (mas não todos, pois seriam a mesa classe!), dêvem ser conjugadas como especialização de uma terceira”

  33. Orientação a Objetos • Generalização • Analogamente, “Se uma classe tem um (ou mais de um) conjunto de atributos ou métodos que são empregados apenas em ocasiões específicas, deve ser dividida em uma ou mais especialização”. • Em ambos os casos, os atributos ou métodos que forem comuns devem ser colocados na classe geral, restando para as especializações aqueles que forem do seu escopo

  34. Orientação a Objetos • Generalização • Generalização e Especialização provêem uma série de vantagens, ligadas à herança e reutilização de código – A se ver em UML

  35. Orientação a Objetos • Associações entre Classes • No levantamento das classes ou dos atributos, pode-se perceber que há relações entre duas ou mais classes • As associações complementam a informação do objeto com mapeamentos necessários para que ele possa de fato cumprir seu papel

  36. Orientação a Objetos • Associações entre Classes • São semelhantes aos relacionamentos do MER • Possuem cardinalidade • Um para Um • Um para muitos • Muitos para muitos

  37. Orientação a Objetos • Associações entre Classes • E opcionalidade • As associações podem ou não obrigar cada objeto a se associar com algum outro, de acordo com as regras da cardinalidade • A notação para cardinalidade e opcionalidade não será mostrada – A se ver em UML

  38. Orientação a Objetos • Associações entre Classes • As associações podem ser percebidas a partir dos atributos: • Por exemplo, uma classe “Filme” tem, entre outros, o atributo “Diretor”. • Há uma classe “Diretor”, aojando objetos deste tipo • A classe filme ganha uma associação com a classe diretor: “Dirigido por”.

  39. Orientação a Objetos • Associações entre Classes • No nosso exemplo, os atributos agora estão colocados. • As associações idem • Observá-las entre Pessoa e Empresa (“trabalha em”), e mesmo entre Pessoa e Pessoa (“filho de” e “Casado com”).

  40. Pessoa Empresa RazãoSocial Endereço Nome Idade Endereço Trabalha em Casado com Filho de Orientação a Objetos • Associações entre Classes

  41. Orientação a Objetos • Como identificar Métodos • Um método é uma função de transformação • Pode ser aplicada por ou para objetos em uma classe • Após a execução de um método, algum tem sempre seu estado alterado (ainda que para mesmo, mas houve a transformação)

  42. Orientação a Objetos • Como identificar Métodos • Exceto em três métodos especiais • Criar, que é um método específico da classe, e que especifica que uma nova instância passa a existir. • Destruir, que, similarmente, exclui uma instancia daquela casse • destruir deve ser aplicado ao objeto, ao contrário de criar

  43. Orientação a Objetos • Como identificar Métodos • Pegar_*, que são métodos que permitem o acesso aos atributos. • Dispensáveis, para efeito de desenvolvimento (para que usar X := Mostrar_Nome(Empregado) se se pode fazer X := Empregado.Nome?)

  44. Orientação a Objetos • Como identificar Métodos • Muitos autores recomendam o uso destes tipos de método para esconder a implementação interna do objeto • Em caso de modificações específicas, não estender alterações por outros objetos – enfraquecer o acoplamento

  45. Orientação a Objetos • Como identificar Métodos • Os métodos fica na terceira e última parte do retângulo • Em alguns casos, uma mesma operação pode ser aplicada, com adaptações específicas, a diferentes classes. Esta propriedade é chamada polimorfismo.

  46. Orientação a Objetos • Como identificar Métodos • O exemplo do cálculo da área de figuras geométricas é um cãs de polimorfismo • A área de um círculo, de um triângulo, de um retângulo e de um trapézio são calculadas, embora com semântica idêntica, de formas totalmente diferentes

  47. Orientação a Objetos • Como identificar Métodos • Para se identificar métodos, deve-se levantar as funções que altera o estado de um objeto • Isso sugere o uso de métodos Fazer_* para cada atributo modificável pelo sistema, o que normalmente é válido

  48. Orientação a Objetos • Como identificar Métodos • Há métodos que criam ou modificam uma associação com outros objetos • Estas associações precisarão respeitar a semântica de cardinalidade e opcionalidade que tenha sido definida entre as classes

  49. Orientação a Objetos • Como identificar Métodos • Finalmente, existem métodos que, para serem executados, recorrem a métodos de outros objetos. • Por exemplo, um objeto “CNH”, num sistema do Detran, tem o método “Emitir” • CNH se associa, um para um, com Condutor

  50. Orientação a Objetos • Como identificar Métodos • Este método verifica os resultados do exame do condutor e, caso esteja tudo em ordem, libera os dados para impressão. • Um Pedido, portanto, deve ser enviado ao objeto específico da classe “Exames” que armazena exames de condutores, solicitando o serviço (que deverá existir) “Verifica_Aprovação”.

More Related