Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouManuella Candelaria Alterado mais de 9 anos atrás
1
PostGres: Um Banco de Dados Orientado a Objetos
Álvaro Vinícius de Souza Coêlho
2
PostGres Desenvolvido na Universidade de Berkeley Sucessor do INGRES
Atualmente: Miro (Comercial)
3
PostGres Versão não comercial disponível no site da universidade
Escrito em C linhas de código
4
PostGres Relacional Estendido Objetos OIDs “tradicionais”
Objetos Compostos Herança Múltipla Versões
5
PostGres Dados históricos Linguagem de consulta
PostQUEL – extensão da linguagem QUEL do INGRES
6
PostGres Dados históricos:
Pode-se consultar sobre o estado do banco em um determinado momento Armazena o estado do BD depois de cada alteração
7
PostGres Modelo de dados baseado no relacional
ADT (Abstract Data Type) – disponível para que se possa definir um novo tipo no Banco de Dados Todos os demais são derivados deste
8
PostGres Fornece um OID para cada elemento da relação – “mapeando” tabelas em objetos Como criar classes e objetos?
9
PostGres O projeto: Pessoa Nome Idade Endereço Casar(Pessoa) Separar()
TerFilho(Nome) Aniversaria() Mudar(NovEnd) Empresa RazãoSocial Contrata(Pessoa) Demite(Pessoa) Trabalha em Filho de Casado com
10
PostGres Declaração: Create empresa (CNPJ char [15],
razaosocial = char[25], Endereço = char[30], Pessoas = postquel) Key (CNPJ)
11
PostGres Declaração: Create pessoa ( RG (char[11], nome = char[25],
Idade = int, endereco = char [50], empregador = empresa, Filhode = pessoa Casadocom = pessoa) Key (RG)
12
PostGres Herança Create PrestServico (precohora = float)
Inrerits (pessoa)
13
PostGres Herança múltipla
Caso se ponha mais de uma classe no comando inherits Caso haja conflito de nomes de atributos retorna um erro.
14
PostGres Tipos de dados PostQuel
Servem para executar um método que faz o acesso ao relacionamento Uma consulta feita em PostQuel
15
PostGres Key define um atributo como OID
Pode haver mais de um atributo Nenhum pode ser nulo e eles não irão se repetir Implementação quase idêntica à de chave primária do modelo relacional
16
PostGres Onde está a diferença?
Pode-se usar um tipo definido pelo usuário Por exemplo, usar o par (empregador, matricula) Empregador é do tipo empresa Como comparar empresa? Como saber se uma empresa é igual a outra?
17
PostGres Cria-se uma função Key empregador using há_emp, matricula)
Define function há_emp(e = empresa) Return int as Retrieve any(empresa.all Where empresa.cnpj = e.cnpj Key empregador using há_emp, matricula)
18
PostGres Manipulação de Dados
PostQUEL contem os comandos append, replace e delete Append to pessoa (nome = ...) Delete pessoa where ... Replace pessoa (nome= ... ) where ... Qualquer semelhança com QUEL NÃO terá sido mera coincidência!
19
PostGres Percurso do fecho transitivo de um esquema
Característica do postquel em extensão a quel Mostrar todos os ancestrais de José
20
PostGres A consulta Retrieve * into classeresposta (pessoa.filhode) from a in classeresposta Where pessoa.nome = “José” Or pessoa.nome = getnome(a.filhode)) * obriga que a consulta será executada até não retornar mais dados Observar que a sintaxe do getnome não é OO
21
PostGres A consulta Retrieve (e.nome) from e in pessoa* Where e.nome = “José” * aqui obriga que a consulta seja executada em todas as subclasses da classe pessoa
22
PostGres A consulta Retorna o salário de José na data D
Retrieve func.salario From func[D] Where func.nome = “José” Retorna o salário de José na data D
23
PostGres Regras Ação executada no banco sob ordem de determinado evento On evento to objeto where condição Then do [instead] comandos
24
PostGres Evento pode ser Retrieve Replace Delete Append
New (replace ou append) Old (delete ou replace)
25
PostGres Objeto é o nome de uma classe, ou do atributo de uma classe
Condição é um qualificador qualquer usado em PostQUEL Instead indica que o comando deve substituir, e não acompanhar o evento que gerou a regra
26
PostGres Podem se referenciar a new e current em lugar do nome da classe New é o novo valor (caso de inclusões ou alterações) Current é o valor atual (caso de exclusões ou alterações) Refuse: indica o cancelamento do evento (Rollback)
27
PostGres Exemplo: O Salário de um funcionário no cargo de professor deve ser o que está determinado para este emprego na tabela Cargos On new funcionario.salario where funcionario.cargo = “Professor” Then do replace new.salario = c.salario From c in cargos Where c.nome = “Professor”
28
PostGres Críticas Métodos implementados em funções – não nas classes
Não implementa OIDs naturais Relacionamentos se confundem com variáveis de instância Padrão proprietário Viola o encapsulamento
29
PostGres Qualidades Herança e Herança múltipla
Versões de dados ao longo do tempo Completeza implementada em PostQuel Aceita tipos definidos pelo usuário É baratinho...
30
PostGres. FIM! “Numa democracia, o direito de ser ouvido não inclui automaticamente o direito de ser levado a sério” Hubert Humphrey Degas
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.