Baixe o app para aproveitar ainda mais
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
Compartilhar