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

Slides:



Advertisements
Apresentações semelhantes
T I  C Módulo 2 Base de dados
Advertisements

Base de Dados para a Gestão de Informação de Natureza Pedagógica
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Object Query Language - OQL
Object Definifion Language - ODL
Princípios da Orientação a Objetos e a Linguagem UML
Estudo de Caso, modelo Oracle 10g
Modelo de Objetos ODMG.
Paulo Marques Hernâni Pedroso
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Evolução dos SGBD’s (2ª Parte).
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
Objectivos Objectivos
Exemplo dos Internamentos
Conjuntos disjuntos Objectivo
Modelo Objecto Modelo Objecto ODMG objecto: primitiva base
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Modelo Entidade-Relacionamento
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Modelagem Orientada a Objetos
Repositório de Interfaces em CORBA
Análise Orientada a Objetos
Profa. Aline Vasconcelos
Bancos de Dados com Objetos
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
Comunicação Entre Objetos Distribuídos
Linguagem de Programação II
Linguagem de Programação II
Herança e Polimorfismo
Conceitos Básicos.
O.O.H.D.M. Modelagem Conceitual
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Administração de Sistemas de Informação Banco de Dados
Modelo Relacional Uma base de dados é Uma relação é
JAVA: Conceitos Iniciais
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
1 Fundamentos de SIG. - Sistemas de Informação
Arquitetura CORBA e Objetos Distribuídos
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Banco de Dados de Objetos
CORBA e Desenvolvimento Baseado em Componentes
Classes, Objetos, Atributos e Métodos JAVA
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
Análise de Sistemas de Informação
UML Diagrama de classes.
Análise Orientado aos Objetos Prof. Wolley W. Silva
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
Java Kickstart, day 2 Semelhanças com linguagem C.
Laboratório de Programação II Pacotes Visibilidade Referências a Objetos.
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto
GESTOR: TIC/TIC-E&P/GIDSEP versão 1 - julho/2013 Tecgraf PUC-Rio Fevereiro de 2014 IDL.
Faculdade Pernambucana - FAPE Setembro/2007
Banco de dados 1 Modelagem de Dados Utilizando MER
II- Padrão ODMG Object Definifion Language - ODL.
 SGBDOO Funções SGBD persistência transacções
Linguagem BD + capacidades OO qVariante da representação OO das encomendas EncomTipo = RECORDOF( e#: int, inclui: SETOF( IQTipo ), cliente: ClienteTipo.
Projeto de BD Análise de Requisitos Projeto Conceitual Projeto Lógico
ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades.
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
Módulo II Capítulo 1: Orientação a Objetos
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 IDL.
Diagrama de Classes Herança Dependências.
Bancos de Dados Orientados a Objetos
Aula Prática de Corba ® Aula de Monitoria: Bruno Pereira - bpe Davi Pires - dpr Guilherme Barros – gbs2 Thiago Cavalcanti - trc.
 O Modelo E-R (Entidade-Relação)
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Transcrição da apresentação:

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

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

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

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

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

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

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.

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

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

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

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) {…}

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)

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.

Modelo de objectos - 14 Resolução Equipa

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)