Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

BANCO DE DADOS OBJETO-RELACIONAL

No description
by

Fee Kosta

on 16 November 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of BANCO DE DADOS OBJETO-RELACIONAL

TÓPICOS
O QUE É?
PARA QUE SERVE?
IMPACTOS NA LINGUAGEM DE CONSULTA
RECURSOS DA SQL:99
MODELO DE DADOS OR
DETALHES DE IMPLEMENTAÇÃO
TIPOS DE DADOS
CHAVES
HERANÇA
ASSOCIAÇÃO ENTRE TUPLAS/OBJETOS
ESQUEMA
O QUE É?
Também conhecido por sistema de gerenciamento de banco de dados objeto-relacional (SGBDOR), do inglês object-relational database (ORD) ou object-relational database management system (ORDBMS).
PARA QUE SERVE?
O objetivo principal dos bancos de dados objeto-relacional, é fornecer uma ponte entre os bancos de dados relacionais e as aplicações orientadas a objetos, usadas em linguagens como C++, C#, Java, .NET, etc.
IMPACTOS NA LINGUAGEM DE CONSULTA
O SQL foi primeiramente especificado em 1970. A linguagem sofreu varias evoluções até chegar no padrão chamado de SQL3, o qual adiciona características como o objeto-relacional. ​
Um subconjunto do SQL3 é o SQL:99, o qual foi recentemente aprovado e também inclui características do objeto-relacional.
Caracterizada como "SQL Orientada a Objetos"
BANCO DE DADOS OBJETO-RELACIONAL
ESQUEMA DO BDOR
HERANÇA
CHAVES
TIPOS DE OBJETOS
Eles surgiram como um modo para melhorar os recursos dos bancos de dados relacionais.
Pode se dizer que é um meio termo entre um banco de dados relacional e um banco de dados orientado a objeto.
Combinam os benefícios do modelo Relacional com a capacidade de modelagem do modelo OO.​
Surgiram devido a pesquisas realizadas no começo dos anos 90. Foram conceitos que adicionaram ideias de objetos a bancos de dados relacionais existentes.
O objetivo era manter o SQL como centro da arquitetura. ​
Entretanto uma alternativa comum é usar um software mapeamento objeto-relacional (ORM), no qual irá converter os dados na aplicação orientada a objeto para uma base de dados relacional.
O diferencial dos SGBDs objeto-relacional está no fato de que ele permite o próprio desenvolvedor inserir no SGBD os métodos e tipos que ele achar necessário.
Assim como nos bancos de dados relacionais as chaves para identificação de tuplas devem possuir algumas características.​

As chaves devem:​
Serem únicas;​
Serem imutáveis;​
Não serem reaproveitadas.
CARACTERISTICAS DA SQL:99
Alguns tipos de construtores foram adicionados para especificar objetos complexos. Estão incluídos o row type que corresponde a uma estrutura de tupla. O array type para especificar coleções.
Um mecanismo para especificar a identidade do objeto.​
Encapsulamento de operações ​
Herança
GERAÇÃO DE CHAVES
Tendo em vista os pontos citados, como as chaves que identifiquem objetos podem ser gerada?​

Baseada em algum atributo do objeto​ =
NÃO
Baseada no endereço físico do objeto​ =
UTILIZADO ANTIGAMENTE
Através de um identificados e uma tabela de ligação com o endereço do objeto =
UTILIZADO ATUALMENTE
Tendo em vista os pontos citados, como as chaves que identifiquem objetos podem ser gerada?​

Baseada em algum atributo do objeto​
Baseada no endereço físico do objeto​
Através de um identificados e uma tabela de ligação com o endereço do objeto
IDENTIFICADORES DE OBJETOS (OID)
usando referências
no exemplo podemos ver como um usuário pode declarar um OID para as tuplas de uma tabela que será criada
sintaxe
IDENTIFICADORES DE OBJETOS (OID)
usando referências
<oid_attribute> é o nome do atributo que será utilizado para identificar as tuplas.

<value_generation_method> possui as opções ​
SYSTEM GENERATED​
DERIVED
IDENTIFICADORES DE OBJETOS (OID)
usando referências
A palavra chave
REF
especifica que um atributo é na verdade uma referência.​ Um ponteiro lógico para um objeto de um tipo.
Modelam relacionamentos de associação entre objetos evitando o uso de chaves estrangeiras.
A palavra chave
SCOPE
especifica para qual tabela o atributo faz referência.​
​O exemplo acima se assemelha ao uso de chaves estrangeiras dos bancos de dados relacionais.
IDENTIFICADORES DE OBJETOS (OID)
usando referências
É utilizada a notação de ponto para um atributo de uma tupla.​
Para acessar dados de um objeto passado como referência (REF) é necessário utilizar a notação ->.​
Um exemplo da utilização pode ser visto abaixo.
IDENTIFICADORES DE OBJETOS (OID)
Como pode ser visto acima, a identificação do objeto pode ser, também, declarada explicitamente na criação do tipo.​
O OID pode ser gerado automaticamente pelo gerenciador na criação da tabela .
Tipo de objeto é um tipo abstrato de dados (TAD)
TAD é um tipo de dado definido pelo usuário que encapsula propriedades e comportamentos
Molde do objeto
Não aloca espaço de armazenamento
Não pode armazenar dados
É um esquema de objeto com três componentes:
Nome
Atributos
Métodos
Sintaxe resumida:
CREATE [OR REPLACE] TYPE nome_tipo AS OBJECT (
[lista de atributos]
[lista de métodos]
);
Métodos
Funções ou procedimentos que são declarados na definição de um tipo de objeto
Exigem o uso de parênteses
Pode ser:
MEMBER ou STATIC
MAP ou ORDER (para ordenação)
Constructor
Ex: Chamada de método
SELECT c.contact.get_idno()
FROM contacts c;
De tipo:
Relacionamento supertipo/subtipo
Atributos e métodos herdados dos supertipos (polimorfismo)
Apenas herança simples.
De tabelas
Especialização/generalização do modelo ER
Tipos das tabelas filhas devem ser sub-tipos da tabela pai
Todas as tuplas das tabelas filhas estão implicitamente presentes na tabela pai
métodos MEMBER
Forma como aplicações acessam os dados dos objetos
Possui sempre parâmetro implícito SELF, logo trabalha com os atributos de um objeto específico.
É chamado da seguinte forma:
objeto.metodo()
métodos
STATIC
"métodos de classe"
trabalham com dados globais do tipo de objeto e não com o objeto específico
Não possuem o parâmetro SELF
É chamado da seguinte forma:
tipo.metodo()
métodos
Constructor
Responsável por criar o objeto e instanciar seus atributos
Definido pelo sistema
Existente em todos os tipos de objeto
métodos de Comparação
Para compação entre dois objetos, é necessário criar uma ordenação para o tipo usando métodos de mapeamento (map methods) ou métodos de ordenação (order methods)
Tipos
FINAL
e
NOT FINAL
NOT FINAL
Permite que um tipo possa possuir subtipos.
FINAL
Default. Não permite subtipos.
Métodos FINAL e NOT FINAL
NOT FINAL
Default. Permite que possa ser sobrescrito nos subtipos.
FINAL
Métodos não podem ser sobrescritos nos subtipos.
Tipos de Objetos Abstratos
Não há construtor
Não se pode instanciar estes objetos

Um método também pode ser declarado
NON INSTANTIABLE
para criar um método em um tipo de objeto sem implementação (esta irá se encontrar nos subtipos)
Somente em tipos de objetos
NON INSTANTIABLE
MODELO DE DADOS OR
Permite especificar e utilizar tipos abstratos de dados(TADs) da mesma forma que os tipos de dados pré-definidos
TADs são tipos de dados definidos pelo usuário que encapsulam comportamento e estrutura interna (atributos)
A tabela convencional é estendida para permitir a referência de objetos (referência de tipos), TADs e valores alfanuméricos como domínio de colunas
Utiliza referências para representar conexões inter-objetos tornando as consultas baseadas em caminhos de referência mais compactas do que as consultas feitas com junção
Herança é implementada organizando todos os tipos em hierarquias
Utiliza os construtores set, list, multiset ou array para organizar coleções de objetos

TIPO DE DADOS DEFINIDOS PELO USUÁRIO
UDT: User Defined Types
É um tipo que não é embutido em um SGBD ou linguagem de programação, mas que pode ser definido como parte de um desenvolvimento de uma ou mais aplicações, com possível comportamento definido em sua criação.
Três tipos de UDT
Distinct types
Structured types
Reference types
Distinct Types
Baseados em tipos embutidos
Exemplo:
CREATE TYPE tam_blusa AS INT FINAL;
CREATE TYPE num_sapato AS INT FINAL;
CREATE TABLE pessoas (
nome VARCHAR(30),
calca num_sapato,
veste tam_blusa
);
Consulta:
SELECT nome
FROM pessoas
WHERE calca > veste;
Consulta:
SELECT nome
FROM pessoas
WHERE CAST(calca TO INTEGER) >
CAST(veste TO INTEGER);
USO INCORRETO
USO CORRETO
Structured Types
Conhecidos como Tipos Abstratos de Dados
Pode conter uma estrutura arbitrariamemente complexa.
Possuem:
atributos:
Tipo embutido
Tipo definido pelo usuário.
metodos: notacao ponto .
Static: opera no tipo de dados
Instance: opera na instância de um tipo
funções: notação funcional ()
parâmetro de input
output retornado como valor da função
procedures
parâmetros de input e output
invocada usando o comando "CALL"
CREATE TYPE Filme AS (
título varchar (100),
descricao varchar (500),
duracaoMinutos int) NOT FINAL
METHOD duracaoEmHoras() RETURNS
INTERVAL HOUR(2) TO MINUTE

CREATE INSTANCE METHOD
duracaoEmHoras ( ) RETURNS INTERVAL
HOUR(2) TO MINUTE FOR Filme

RETURN CAST (CAST (SELF.duracao AS INTERVAL MINUTE(4)) AS INTERVAL HOUR(2) TO MINUTE)

Chamada a método
Recupere a duração em horas e
minutos do filme ‘Ghost’

SELECT mt.info.duracaoEmHoras( )
FROM tb_Filme AS mt
WHERE mt.info.titulo = ‘Ghost’

Sintaxe
CREATE TYPE name
[ UNDER supertype-name ]
AS ( attrib-name type,... )
[ [ NOT ] INSTANTIABLE ]
[ NOT ] FINAL
[ REF ref-options ]
[ method-spec,... ]

Reference Types
Permite uma variável referenciar uma outra.
Apenas instâncias de tipos estruturados podem ser referenciados
Referencia um valor de uma row/instance explicitamente representando uma linha

Alunos:
Felipe de Souza da Costa
Nildo Wilpert
Pedro Pacheco
Full transcript