1 / 190

Bancos de Dados Orientados a Objetos

Bancos de Dados Orientados a Objetos. Álvaro Vinícius de Souza Coêlho degas@uesc.br. Roteiro. Orientação a Objetos Conceitos Como Identificar Classes e Objetos UML Casos de Uso Objetos e Classes. Roteiro. UML (cont) Atributos Associações Diagramas de Colaboração

maren
Télécharger la présentation

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 degas@uesc.br

  2. Roteiro • Orientação a Objetos • Conceitos • Como Identificar Classes e Objetos • UML • Casos de Uso • Objetos e Classes

  3. Roteiro • UML (cont) • Atributos • Associações • Diagramas de Colaboração • Diagramas de Seqüência • Métodos

  4. Roteiro • BDOO • Histórico • Relacional X Redes • SQL • BDOO – Objetos (apontadores?) • Estendidos • Ling. de Prog. Em BD

  5. Roteiro • Definição • Persistência • Objetos Complexos • Encapsulamento • Classes • Herança • Ling. de Programação e Consulta

  6. Roteiro • Definição (cont) • Completeza computacional • Controle de Transações • Extensibilidade • Relacionamentos • Controle de Concorrência • Recuperação de Falhas

  7. Roteiro • Análise Geral • Relacionamentos • Linguagens DDL e DML • Falta de Padrão • Violação do Encapsulamento • Modo Formal Incompleto

  8. Roteiro • O PostGres • Relacional Estendido • Objetos, OIDs, Herança (simples e múltipla) • PostQuel (Quel OO) • ADT (Abstract Data Type) • Declarações de Dados

  9. Roteiro • O PostGres (cont) • Manipulação de Dados • Regras • Conclusão

  10. 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

  11. 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

  12. 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”

  13. 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

  14. 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

  15. 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

  16. 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 ...

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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”.

  22. 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

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

  24. 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.

  25. 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.

  26. 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)

  27. 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

  28. 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

  29. 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?

  30. 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

  31. 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

  32. 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

  33. 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.

  34. 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

  35. 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).

  36. 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

  37. 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

  38. 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()”.

  39. 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”

  40. 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”

  41. 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

  42. 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

  43. 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

  44. 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

  45. 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

  46. 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”.

  47. 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”).

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

  49. 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)

  50. 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

More Related