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

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

Modelo de objectos - 1 Exemplo dos Internamentos Considere o seguinte esquema de uma BD de um hospital. O hospital organiza-se em serviços, cada qual com.

Apresentações semelhantes


Apresentação em tema: "Modelo de objectos - 1 Exemplo dos Internamentos Considere o seguinte esquema de uma BD de um hospital. O hospital organiza-se em serviços, cada qual com."— Transcrição da apresentação:

1 Modelo de objectos - 1 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.

2 Modelo de objectos - 2 Resolução Equipa

3 Modelo de objectos - 3 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)

4 Modelo de objectos - 4 Modelo Objecto m Modelo Objecto ODMG q objecto: primitiva base q tipo: definição das propriedades e comportamento comuns a um conjunto de objectos q propriedades: estado (atributos ou associações) q operações: comportamento q herança: hierarquias de generalização

5 Modelo de objectos - 5 Métodos m BDOO: integração linguagem de dados e linguagem hospedeira m ODL suporta definição de assinaturas de métodos q implementação na linguagem hospedeira (Smalltalk, C++, Java); na interface fica só a assinatura, i.e., nomes e tipos dos parâmetros e da função q ligação forte entre ODL e a linguagem hospedeira, com tradução directa e acesso às mesmas variáveis q OQL define as interrogações mais baseadas em conjuntos (relacionais) e os métodos são mais virados para o objecto individual q métodos sempre definidos numa classe e executados relativamente a um objecto dessa classe que funciona como parâmetro implícito q métodos podem ser vistos como atributos especiais m Métodos q estilo declaração de função C++ (suporta polimorfismo) q parâmetros são declarados in (entrada), out (saída) ou inout (entrada-saída) -- dois últimos passados por referência q levantamento de excepções, para tratamento de situações anormais ou inesperadas que são tratadas pelo chamador fora da sequência normal de chamada resposta

6 Modelo de objectos - 6 Exemplo de declaração de métodos interface Filme (extent Filmes key (titulo, ano)) { 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; float comprimentoHoras() raises(semDuracao); nomesActores( out Set ); outrosFilmes( in string, out Set ) raises (estrelaInexistente); }; m a declaração extent nomeia o conjunto de instâncias da classe existentes no momento - funciona como uma relação q as perguntas em OQL referem-se à extensão e não ao nome da classe

7 Modelo de objectos - 7 Estender LPOO com capacidades BD m Extensões à linguagem: OPAL é uma extensão do Smalltalk com classes e primitivas de gestão de BD q colecções com restrições para armazenar grandes quantidades de dados q blocos de selecção especiais com capacidade para usar índices, onde os haja m Fornecimento de bibliotecas de gestão de BD para uso de linguagem standard (C++) q Ontos, Objectivity, Object Store usa compiladores standard q distinção entre preprocessamento e uso de bibliotecas é ténue m Objectivos: q eliminar a impedância entre as linguagens especializadas de BD e as de uso geral q reduzir o abismo semântico para a especificação do problema m Resultado ainda é mais navegacional e menos declarativo do que o modelo relacional forneceu


Carregar ppt "Modelo de objectos - 1 Exemplo dos Internamentos Considere o seguinte esquema de uma BD de um hospital. O hospital organiza-se em serviços, cada qual com."

Apresentações semelhantes


Anúncios Google