A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelo de objectos - 1 Apoiantes da norma m Object Database Management Group representa 90 % do mercado existente de SGBDOs: –Object Design –Objectivity.

Apresentações semelhantes


Apresentação em tema: "Modelo de objectos - 1 Apoiantes da norma m Object Database Management Group representa 90 % do mercado existente de SGBDOs: –Object Design –Objectivity."— Transcrição da apresentação:

1 Modelo de objectos - 1 Apoiantes da norma m Object Database Management Group representa 90 % do mercado existente de SGBDOs: –Object Design –Objectivity –O2 –Versant –Ontos –Servio –Itasca e liderado por Rick Cattell da SunSoft

2 Modelo de objectos - 2 Modelo de objectos m Modelo proposto pela ODMG (Object Database Management Group dirigido por Rick Cattell) para servir como norma (versão 2.0) para BDOO m Modelo abstracto existem mapeamentos para C++, Smalltalk e Java m Arquitectura com três componentes q ODL - Object Definition Language interesse para o projecto q OQL - Object Query Language extracção de informação q OML - Object Manipulation Language alteração dos dados; pouco desenvolvida na norma por ser específica de cada linguagem m ODL é uma extensão da IDL (Interface Description Language), a componente da CORBA que descreve as interfaces entre objectos

3 Modelo de objectos - 3 CORBA m Common Object Request Broker Architecture q norma desenvolvida pelo OMG (Object Management Group) para sistemas de objectos distribuídos q pretende tornar a distribuição transparente q e aumentar a interoperabilidade q fornece uma infraestrutura que permite encontrar um determinado objecto para lhe solicitar um serviço e que faz as conversões necessárias q cada objecto apresenta ao sistema uma interface com a sua descrição feita em IDL (Interface Description Language) q as aplicações ligam-se através dessa interface a uma espécie de barramento de dados q houve a preocupação de garantir que o modelo de objectos ODMG fosse um superconjunto do modelo de objectos OMG IDL CORBA

4 Modelo de objectos - 4 m em ODL o Mundo é constituído por objectos, com identidade, agrupados em classes m uma classe agrupa objectos que q correspondem a conceitos do mundo real semelhantes q têm todos as mesmas propriedades m propriedades: q atributos - têm tipos baseados em tipos primitivos, que não envolvam classes q associações - referência ou colecção de referências para objectos q métodos - funções aplicáveis aos objectos da classe m declaração de uma classe (muito ao estilo C++) interface { } Linguagem de Definição de Objectos

5 Modelo de objectos - 5 Exemplo m As definições de classe em rigor têm uma interface e uma implementação (daí a designação) interface Filme { attribute string titulo; attribute integer ano; attribute integer comprimento; attribute enum Filme {cor, pretoBranco} tipoFilme; } o quarto atributo é do tipo enumerado Filme, o qual é um conjunto com dois literais cor, pretoBranco interface Estrela { attribute string nome; attribute Struct Morada {string rua, string cidade} endereco; } m neste exemplo existe um atributo composto, mas sem referência

6 Modelo de objectos - 6 Associações m Representar as participações de estrelas em filmes q acrescenta uma linha a Filme com um conjunto (Set) de referências para Estrelas relationship Set estrelas; q ou acrescenta uma linha a Estrela, com uma referência para o Filme de que é a estrela principal relationship Set filmes; nometitulo Filme Estrela morada rua filmes cidade ano comprimento estrelas tipoFilme

7 Modelo de objectos - 7 Associação inversa m é natural que se no objecto Jack Nicholson, no conjunto dos filmes constar o objecto Shinning, se espere ir encontrar no objecto Shinning uma referência ao Jack Nicholson m a manutenção da coerência em ambos os lados de uma associação pode ser feita automaticamente, desde que, numa classe, se indique qual o atributo que faz par na outra e é usado para garantir o inverso. interface Estrela { attribute string nome; attribute Struct Morada {string rua, string cidade} endereco; relationship Set filmes inverse Filme::estrelas; } m em ODL, por ser abstracta, insiste-se na existência de inversa q permite percorrer os dados arbitrariamente nos vários sentidos q uma concretização numa linguagem OO, pode levar a só criar inversos em associações que o justifiquem.

8 Modelo de objectos - 8 Multiplicidade das associações m Muitos-para-muitos: é o caso da estrelas nos filmes; implementada com conjuntos de ambos os lados m Muitos-para-um: proprietário de um filme; implementada com um conjunto de um lado mais uma referência simples do outro interface Filme { attribute string titulo; attribute integer ano; attribute integer comprimento; attribute enum Filme {cor, pretoBranco} tipoFilme; relationship Set estrelas inverse Estrela::filmes; relationship Estudio proprietario inverse Estudio::possui; } interface Estudio { attribute string nome; attribute string endereco; relationship Set possui inverse Filme::proprietario; } m Um-para-um: caso dos presidentes dos estúdios; implementada com uma referência simples quer de um lado quer do outro

9 Modelo de objectos - 9 Tipos em ODL m Tipos atómicos integer, float, character, string, boolean, enumeration q enumerações são listas de constantes vistas como sinónimos dos inteiros m Tipos interface na realidade são estruturas com componentes para os atributos e para as associações mas, uma vez definidos, podem também ser vistos como tipos base m Construtores de tipos q Set (conjunto) - sem repetidos e sem ordem{1, 2} q Bag (multiconjunto) - com repetidos e sem ordem{1,2,1}={2,1,1} q List (lista) - com repetidos e com ordem; string = List (1,2,1) (2,1,1) q Array (vector) - com repetidos e com ordem, com dimensão definida; Array denota as cadeias de caracteres de comprimento 10 q Struct (estrutura) - se T 1, T 2, …, T n forem tipos e F 1, F 2, …, F n nomes de campos Struct N{ T 1 F 1, T 2 F 2, …, T n F n } é uma estrutura m Colecções: Set, Bag, List, Array

10 Modelo de objectos - 10 Regras de uso dos tipos m Atributos - começam em tipos atómicos ou estruturas só com tipos atómicos e podem ser envolvidos por uma colecção (4 casos possíveis) q integer q Struct N {string campo1, integer campo2} q List q Array m Associações - tipo interface ou um tipo colecção aplicado a um tipo interface q possível: Filme; Bag q impossível: Struct N {Filme campo1, Estrela campo2} - envolve uma estrutura Set - envolve só tipos atómicos Set > - envolve colecção de colecções

11 Modelo de objectos - 11 Princípios de projecto m Fidelidade às especificações m evitar a redundância q cada facto da realidade deve estar representado num único sítio no sistema q as relações inversas, se automaticamente mantidas, não implicam redundância m parcimónia e simplicidade q KISS (keep it simple, stupid) m escolha do elemento apropriado para representar a realidade m Declaração de chave (objectos continuam a ter identidade) q interface filme key( titulo, ano) {…}

12 Modelo de objectos - 12 Subclasses m por vezes ocorre que, numa dada classe, parte dos seus objectos tem, para além das características comuns a todos os outros, algumas propriedades específicas. Nesse caso faz sentido usar o conceito de subclasse. m Notação: pôr a seguir ao nome da classe a ser definida, dois pontos e respectiva superclasse interface Cartoon : Filme { relationship Set vozes; // inverse Estrela::personagensAnimação; } m a subclasse herda todas as propriedades de todos os que estão para cima na hierarquia herança múltipla: se existir interface Policial : Filme {attribute string arma} interface Cartoon-policial : Cartoon, Policial {}; herda dos dois lados, mas para uma classe acessível por mais do que um caminho só herda uma vez (Filme que é superclasse duplamente)

13 Modelo de objectos - 13 Exemplo dos Internamentos Considere o seguinte esquema de uma BD de um hospital. O hospital organiza-se em serviços, cada qual com a designação da respectiva especialidade e o número de camas onde pode internar doentes. Os doentes são pessoas adicionalmente descritas pelo organismo de segurança social e respectivo número. Relativamente a cada internamento, regista-se o momento de entrada no serviço, o motivo, o respectivo momento de alta, o estado à saída e o médico responsável; uma transferência de serviço corresponde a uma alta do primeiro em simultâneo com um novo internamento no segundo. Os funcionários são pessoas com um vencimento e o serviço a que estão adstritos. Os médicos são funcionários com uma especialidade e os enfermeiros são também funcionários com uma categoria e que pertencem a uma equipa. q Obtenha o modelo de objectos (em ODL) da situação descrita.

14 Modelo de objectos - 14 Resolução Equipa

15 Modelo de objectos - 15 Algumas classes interface Servico { attribute string designacao; attribute int camas; relationship Set pessoal inverse Funcionario::serviço; relationship Set internados } q a associação pessoal tem uma inversa na classe de Funcionarios chamada serviço de forma a garantir a consistência da sua representação em ambas as classes, i.e., que se um funcionário indica a pertença a um serviço, então esse serviço tem que o referir como parte do seu pessoal (idem para Internamento::internado) interface Internamento { relationship Doente internado inverse Doente::internamentos; attribute date entrada; attribute date alta; attribute string motivo; attribute string estado; relationship Servico servico; relationship Medico medico; } q a associação Serviço::internados não tem inversa; no conjunto só se incluem os internamentos correntes; do lado dos internamentos, mantém-se o registo completo, incluindo o histórico, dos internamentos, pelo que há referências a objectos serviço sem que nestes existam as correspondentes ligações a internamentos (apagadas quando o doente teve alta)


Carregar ppt "Modelo de objectos - 1 Apoiantes da norma m Object Database Management Group representa 90 % do mercado existente de SGBDOs: –Object Design –Objectivity."

Apresentações semelhantes


Anúncios Google