Buscar

apresentação Banco de dados orientado a objeto

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

VISÃO GERAL DOS CONCEITOS DE BANCO DE DADOS DE OBJETO
Airam Lobato
Jirlon da Cunha
Kelvin Magalhães
Disciplina: Banco de Dados
Universidade Federal de Mato Grosso – Campus de Várzea Grande /Instituto de Engenharia
INTRODUÇÃO AOS CONCEITOS E RECURSOS ORIENTADOS A OBJETO
O termo orientado a objeto – abreviado com OO , tem suas origens nas linguagens de programação OO ou LPOO. Hoje, os conceitos de OO são aplicados nas áreas de bancos de dados, engenharia de software , inteligência artificial e sistemas de computação em geral.
O termo Programação Orientada a Objetos foi criado por Alan Kay, autor da linguagem de programação Smalltalk. Mas mesmo antes da criação do Smalltalk, algumas das ideias da POO já eram aplicadas, sendo que a primeira linguagem a realmente utilizar estas idéias foi a linguagem Simula 67, criada por Ole Johan Dahl e Kristen Nygaard em 1967. Note que este paradigma de programação já é bastante antigo, mas só agora vem sendo aceito realmente nas grandes empresas de desenvolvimento de Software. Alguns exemplos de linguagens modernas utilizadas por grandes empresas em todo o mundo que adotaram essas idéias: Java, C#, C++, Object Pascal (Delphi), Ruby, Python, Lisp.
BANCOS DE DADOS DE OBJETO
Um objeto de banco de dados se refere a qualquer objeto que é utilizado para armazenar ou referenciar dados.
Um objeto tipicamente possui dois componentes:
Estado (valor).
Comportamento (operações).
Objetos transientes – São objetos que existem apenas durante a execução de um programa.
Objetos persistentes – São objetos que podem existir permanentemente (armazenados).
Objetos complexos – objetos que podem ser construídos a partir de outros objetos.
INDENTIDADE DE OBJETO E OBJETOS VERSUS LITERAIS 
Um dos objetivos de um SGDB(Sistema de Gerenciamento de Dados de Objeto) é manter uma correspondência direta entra objetos do mundo real e do bancos de dados, de modo que os objetos não percam sua integridade e possam ser facilmente identificados e operados. Assim, um SGDO oferece um identidade única a cada objeto independente armazenado no banco de dados.
Cada objeto armazenado no BD possui um identificador único (OID).
Um OID é imutável , ou seja, o OID de um determinado objeto nunca é alterado, independente do seu estado.
OID são gerados internamente pelo sistema.
ESTRUTURA DE UM OBJETO
Um objeto pode ser representado como uma tripla(i,c,v) onde i é um oid , c é um construtor de tipo e v é o valor corrente (estado) do objeto.
O modelo orientado a objetos inclui vários construtores de tipo.
Básicos : átomos ,tupla(struct) , conjunto 
Outros : lista, arranjo , multi-conjunto
Lembrando que objetos complexo são construídos a partir de objetos mais simples através da aplicação sucessiva desses construtores.
CONSTRUTORES DE TIPO
Nos BDOS um tipo complexo pode ser construído com base em outros tipos pelo aninhamento de construtores de tipo. Existem 3 tipos mais básicos, os átomos ,struct ( ou tupla) e coleção.
Átomo - Usado para representar valores atômicos de um tipo básico (Inteiro , booleano,caractere , string e etc).
Struct ( ou tupla) – Pode criar tipos estruturados padrão,como tuplas(tipos de registros) no modelo relacional básico. Mais conhecido como gerador de tipos, pois muitos tipos estruturados diferentes podem ser criados, exemplo : struct Nome<primeiroNome> string, InicialMeio:char,sobrenome : string.
CONSTRUTORES DE TIPO
Coleção (multi- valores) – Incluem os construtores de tipo set(T), list(T),bag(T), array (T). 
SET (T) – Criará objetos de um conjuto de elementos distintos (i1,i2,....in)
List (T) – Criará uma lista ordenada 
Bag (T) – É semelhante a um conjuto, com execeção que os elementos não precisam ser distintos. 
Array(T)- Cria um vetor unidimensional de elementos do mesmo tipo.
 A principal característica de um tipo de coleção, é que seus objetos ou valores serão uma ‘’coleção de objetos’’ ou ‘’valores do mesmo tipo’’. Todos esses tipos são de uma linguagem de definição de objeto (ODL), que são usados para definir as estruturas de dados para um esquema de bancos de dados.
Encapsulamento de operações 
Esta relacionado aos conceitos de tipos abstratos de dados e ocultação de informações 
Onde ele esta presente?
São aplicados a objetos de banco de dados nos BDOs ao definir o comportamento de um tipo de objeto com base nas operações que podem ser aplicadas externamente a objetos desse tipo
Em geral, a implementação de uma operação pode ser especificada de uma linguagem de programação de uso geral que oferece flexibilidade e poder na definição das operações.
Os usuários externos do objeto só se tornam cientes da interface das operações que define o nome e os argumentos(parâmetros) de cada operação.
A implementação é escondida desses usuários.
Algumas operações
Construtor de objeto
Utilizada para criar um objeto
Destruidor 
Utilizada para excluir um objeto
Modificadoras de objeto
Utilizadas para modificar o estado de vários atributos de um objeto
Operações adicionais podem recuperar informações sobre o objeto
Exemplo:
Persistência de objetos
Objetos transientes
Existe no programa em execução e desaparecem quando o programa termina.
Objetos persistentes 
São armazenados no banco de dados e persistem após o termino do programa.
Hierarquias de tipo(classe)
Um tipo é definido atribuindo-lhe um nome e depois estabelecendo uma série de atributos e operações para ele.
É semelhante a um registro na linguagem C.
Na linguagem OO esse tipo é conhecido como classe.
A classe é um molde de algo físico ou abstrato.
Exemplo
PESSOA: Nome, Endereço, Data_nascimento, Idade, Cpf
Herança
Superclasse 
Subclasse
Polimorfismo 
As operações e nomes de métodos podem ser sobrecarregadas para que se apliquem a diferentes tipos de objetos com diversas implementações.
Tipos definidos pelo usuário e estruturas complexas para objetos.
UDT’s – User Defined Types : Permite a criação e dados complexos e separa a declaração de um tipo e criação de uma tabela
Create type nome_tipo as (<declarações dos componentes>)
 ou
Figura: Definição de UDT’S
Fonte: [1]
Tipos definidos pelo usuário e estruturas complexas para objetos.
Um UDT pode ser utilizado como um tipo para um atributo ou como um tipo para uma tabela.
Ao usar um UDT como tipo para um atributo pode dentro de outro UDT, podemos criar uma estrutura complexa para objetos em uma tabela. Ex: O UDT TIPO_END_RUA é utilizado como tipo para o atributo END_RUA no UDT TIPO_END_BRASIL. 
Figura: Tipo / atributo
Fonte: [1]
Encapsulamento de Operações
Figura: Encapsulamento
Fonte: [1]
Identificadores de objetos usando tipos de referencia
O Identificador mostra que sempre um objeto Tipo_Pessoa for criado, o sistema lhe atribuirá um Identificador único
Figura: Referência
Fonte: [1]
Identificadores de objetos usando tipos de referencia
Um atributo cujo o tipo é REF, o símbolo -> é utilizado.
Ex: Buscar os funcionários que trabalham na empresa chamada ‘ABCXYZ’ consultando a tabela emprego:
 
SELECT F.Funcionario  NOME from EMPREGO AS E WHERE E.Empresa NOME_EMP=‘ABCXYZ’
Exemplo de aplicação
Figura: Classe Pessoa
Fonte: [2]
Exemplo de aplicação
Figura: Funções principais
Fonte: [2]
Exemplo de aplicação
Figura: Operações SQL
Fonte: [2]
Exemplo de aplicação
Figura: Saída do Programa
Fonte: [2]
Bibliografia
[1] Elmasri, R. / Navathe, S. B. ; revisor técnico Figueiredo, L. R.; Sistema de banco de dados ; São Paulo: Pearson Addion Wesley, 2002.
[2] Machado, D. R ; COMPARAÇÃO ENTRE BANCO DE DADOS RELACIONAIS E BANCO DE DADOS ORIENTADO A OBJETOS: CARACTERÍSTICAS E IMPLEMENTAÇÃO DE UM PROTÓTIPO; Universidade São Francisco, Itatiba-Sp; 2009

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais