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

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

PostGres: Um Banco de Dados Orientado a Objetos

Apresentações semelhantes


Apresentação em tema: "PostGres: Um Banco de Dados Orientado a Objetos"— Transcrição da apresentação:

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


Carregar ppt "PostGres: Um Banco de Dados Orientado a Objetos"

Apresentações semelhantes


Anúncios Google