Opções de persistência

Documentos relacionados
Análise e Projeto de Sistemas (Cont.) Profª Rafaella Matos

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Conceitos Básicos Sistemas de banco de dados; Sistemas de gerência de banco de dados.

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Sistemas da Informação. Banco de Dados I. Edson Thizon

Banco de Dados. Perspectiva Histórica dos Bancos de Dados. Prof. Walteno Martins Parreira Jr

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 2. Prof. Leonardo Vasconcelos

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Características de Sistemas Distribuídos

Características de Sistemas Distribuídos

Aula 01. Introdução aos sistemas de informação Conceitos de banco de dados Modelos de BD Linguagens de Banco de Dados Usuários de um Banco de Dados

Engenharia de Software II

Reuso de Software Aula Maio 2012

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

INE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago

Unidade 1 Introdução

Aula 2 BD Introdução. Profa. Elaine Faria UFU

Modelagem Conceitos e arquitetura do SBD; Modelo de dados entidade-relacionamento modelo ER; Modelo de dados relacional; Mapeamento ER para o

Curso: Banco de Dados I. Conceitos Iniciais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Padrão Camadas. Talvez o mais importante padrão arquitetural Merece detalhamento

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

Conceitos de Sistemas de Banco de Dados INE 5323

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

3 Tecnologias Relacionadas

Banco de Dados. SGBDs. Professor: Charles Leite

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

1. Conceitos de Bancos de Dados

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 1. Prof. Leonardo Vasconcelos

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

SSC0611 Arquitetura de Computadores

Introdução aos Sistemas Operacionais

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

1 o Período Administração 24/11/2015

Banco de Dados. Banco de Dados II. Característica fundamental de SGBDs. Abordagem SGBD x Processamento de Arquivos Tradicional

Sistemas de Gerência de Bancos de Dados. Módulo 1 - Armazenamento

Hibernate Anotations

Data Warehouse ETL. Rodrigo Leite Durães.

Banco de Dados Relacional

MATA60 BANCO DE DADOS Aula 2- Sistema Gerenciador de Banco de Dados. Prof. Daniela Barreiro Claro

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Módulo III Camada de Persistência

Sistema Gestor de Bancos de Dados (SGBD)

Sumário. Recuperação de Falhas

Organização e Arquitetura de Computadores I

Sistema de Banco de Dados. UNIDADE 1 Introdução aos Sistemas de Bancos de Dados Professor: Armando Hage

Banco de Dados. Introdução. Profa. Flávia Cristina Bernardini

Acadêmico: Samuel Y. Deschamps Orientador: Prof. Jacques R. Heckmann

Banco de Dados e Aplicações em Negócios: Introdução.

Organização e Arquitetura de Computadores I

Arquitetura de Aplicações em 2, 3, 4 ou N camadas

ara entender os Sistemas Gerenciadores de Banco de Dados é importante conhecer

Banco de Dados. Introdução e Definições

Adriano Maranhão PROFISSIONAIS E ATIVIDADES ENVOLVIDAS EM UM SGBD

Carlos S. Rodrigues Leonardo Lino Vieira Eric Felipe Barboza Antonio Vasconcellos

LINGUAGEM, TIPOS DE USUÁRIOS DE SGBD E MODELOS DE DADOS

BANCO DE DADOS 2 TRANSAÇÃO

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

[versão para impressão] Link original: comp=24763 Conhecendo o PL/SQL

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Arquitetura de um Ambiente de Data Warehousing

Banco de Dados I. Prof. Edson Thizon

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

DDL). O resultado da compilação dos parâmetros DDLs é

Estilos Arquiteturais

Agenda do Curso. Reuso de Software. Agenda da Aula. Tipos de Reuso. Vantagens de Reuso. Reuso de Software. Eduardo Figueiredo

Banco de Dados - Conceitos. Baseado no material da Profa. Vania Bogorny (UFSC)

ALUNO: RONI FABIO BANASZEWSKI

SISTEMAS DISTRIBUÍDOS

O que é um banco de dados? Banco de Dados. Banco de dados

Linguagens de Programação 10 Avaliação de Linguagens

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

BANCO DE DADOS ORIENTADO A OBJETOS

Banco de Dados I. Sejam bem-vindos! Prof. Fred Lucena. 1

Conceitos Básicos. Fundação Centro de Análise, Pesquisa e Inovação Tecnológica Instituto de Ensino Superior - FUCAPI. Disciplina: Banco de Dados

Banco de Dados II. Administrador de Banco de Dados - DBA. Portela

Organização de Computadores II. Arquiteturas MIMD

Bancos de Dados Distribuídos

ARQUITETURA DE SISTEMAS OPERACIONAIS. VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI

SISTEMAS OPERACIONAIS

Introdução. Qual é a importância dos bancos de dados no nosso dia a dia? Imaginem como seria as grandes empresas sem os bancos de dados?

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Introdução a Sistemas Operacionais. Adão de Melo Neto

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Processos de Software

MODELAGEM DE DADOS UNIDADE 1 Visão Geral. Luiz Leão

ANÁLISE E PROJETO DE BANCO DE DADOS

Resolução dos exercícios da lista BD01

Introdução a Banco de Dados

Transcrição:

Opções de Persistência Tratamos aqui apenas dos aspectos arquiteturais da persistência Não tratamos do mapeamento de projetos OO para esquemas de BD relacionais Três grandes pontos devem ser tratados com respeito à persistência de objetos: Escolha da forma básica de persistência (na memória, em arquivos, usando um SGBD) Escolha do paradigma de SGBD (se usar um SGBD) Determinação da estratégia de interação entre a aplicação e os dados Escolha da forma básica de persistência As alternativas básicas são: Dados na memória Dados em arquivos Dados sob controle de um BD Muitas aplicações requerem necessariamente os serviços de um BD, mas algumas podem funcionar bem com uma alternativa mais simples Os seguintes pontos devem ser avaliados para tomar a decisão sobre a forma de persistência: Persistência de dados Arquivos e SGBDs são fortes Ficar com os dados na memória requer um suporte especial de memória e fontes de alimentação para prevenir a perda de informação Frequente para software embarcado (em celulares,...) Custo de aquisição Um SGBD pode ser muito caro Se houver um site license já em uso, o custo Página 1 de 10

incremental pode ser pequeno O hardware para manter dados na memória pode ser caro Arquivos nada custam pois são inerentemente suportados pelo sistema operacional Custo total de posse (Total Cost of Ownership) Custos incluem a aquisição, treinamento, desenvolvimento, implantação, operação e manutenção Qualquer uma das 3 alternativas pode ganhar aqui Exemplo: SGBD pode reduzir custos de desenvolvimento mas aumenta custos de operação (incluindo recursos humanos) Exemplo: arquivos não têm custo de aquisição mas têm um alto custo de manutenção Quantidade de dados SGBDs podem armazenar gigantescas quantidades de informação Recursos de hardware limitam a quantidade de dados que pode ser armazenada na memória Arquivos são limitados em tamanho pelo sistema operacional Cuidado com sistemas que limitam arquivos a 32 bits (4 GBytes) Desempenho Dados na memória são acessados mais rapidamente SGBDs têm algoritmos e estruturas de dados especiais para lidar com grandes quantidades de dados Arquivos podem ser rápidos se couberem na memória ou se forem eficientemente acessados seqüencial ou randomicamente Extensibilidade SGBDs oferecem independência de dados de forma que o desenvolvedor pode se concentrar nos aspectos Página 2 de 10

lógicos dos dados, sem preocupação imediata com detalhes de implementação física Acesso concorrente A granularidade de travamento pode afetar o desempenho Tipicamente, arquivos são travados por completo Travamento de registros de arquivos requer muita programação A granularidade é melhor com dados na memória SGBDs podem ter boa granularidade (record locking) ou pior (page locking) Além do mais, SGBDs podem escalonar travamentos e resolver conflitos automaticamente sem programação adicional Recuperação de crash Arquivos: Arquivos de backup são necessários SGBDs: têm lógica sofisticada para recuperação de crash Memória: requer o uso de shadow memory Integridade Apenas SGBDs oferecem o suporte a regras de integridade (definidas pelo programador) Suporte a transações Apenas SGBDs oferecem suporte a transações Distribuição Apenas (alguns) SGBDs oferecem suporte à distribuição de dados e vários sites Linguagem de consulta SGBDs oferecem linguagens de consulta para facilitar o manuseio de dados Alguns produtos do mercado oferecem linguagens de Página 3 de 10

consulta simples para dados em arquivos Segurança Arquivos podem ser protegidos pelo sistema operacional (mas sem sofisticação) SGBDs podem implementar segurança com passwords, views, etc. Metadados SGBDs permitem a manipulação da estrutura dos dados (metadados) em tempo de execução Um sumário segue: Persistência de dados Custo de aquisição Custo total de posse Quantidade de dados Desempenho Dados na memória Requer hardware especial Custo do hardware especial Arquivos Bom suporte Não há SGBDs Bom suporte Pode ser caro Variável Variável Variável Limitado pelo hardware Muito rápido Limitado pelo sistema operacional; A memória limita arquivos em cache Rápido para acesso sequencial, certos acessos randômicos e para arquivos em cache Essencialmente sem limite Rápido Estensibilidade Limitada Limitada Excelente Acesso concorrente Recuperação de crash Locking de objetos Locking de arquivos Locking de objetos ou de registros; Alguns SGBDs só têm locking de páginas Shadow memory Arquivos de backup Bom suporte Integridade Não há Não há Suporte a transações Projetista pode especificar regras Não há Não há Transações curtas Distribuição Não há Não há Às vezes Linguagem de Página 4 de 10

consulta Não há Parcial Poderosa Segurança Em suma, algumas aplicações naturalmente se beneficiam de cada alternativa de persistência: Dados na memória Dados para dispositivos eletrônicos (celulares, PDAs,...) Dados para smart cards, cartuchos de jogos Dados para aplicações que não podem tolerar o custo ou falta de confiabilidade de um disco Arquivos Dados de grande volume, com pouca densidade de informação (archival files, registros históricos detalhados, logs,...) Dados crus que devem ser sumarizados num BD (exe.: aquisição de dados, telemetria,...) Quantidades modestas de dados com estrutura simples (quando não tem SGBD ou este seria complexo demais para a empresa manter) Dados acessados sequencialmente Dados que são lidos por inteiro na memória SGBDs Não há Proteção simples do sistema operacional Metadados Não há Não há Sim Pode ser simples ou sofisticado Dados que requerem atualização com níveis finos de granularidade por múltiplos usuários Dados que devem ser acessados por várias aplicações Grandes quantidades de dados que devem ser eficientemente manipulados Dados de longa duração e muito valiosos a uma organização Dados que devem ser acessados com sofisticado controle de segurança Dados sujeitos a análise sofisticada para o apoio à decisão Finalmente, observe que é comum utilizar mais do que uma única alternativa para dados diferentes Página 5 de 10

Escolha do paradigma de SGBD Se usar um SGBD, ainda deve-se escolher entre SGBDs relacionais, objeto-relacionais e orientados a objeto Os detalhes fogem do escopo desta disciplina Resumindo: SGBDRs são maduros mas sofrem de um problema sério: impedance mismatch entre objetos e relações As grandes desvantagens são: Navegação lenta (usando joins de tabelas) Protocolos de travamento inflexíveis (por serem automáticos) Poucos tipos de dados Tudo tem que ser uma tabela SGBDOOs não são tão maduros mas não sofrem de impedance mismatch e apresentam recursos avançados (evolução de esquema, controle de versões, long transactions, notificações de mudanças,...) Oferecem navegação rápida mas ainda carecem até de uma teoria completa! Há ainda a alternativa de SGBDs Objeto-Relacionais que mantêm o paradigma relacional mas resolvem algumas questões (tais como melhor suporte a tipos de dados) Determinação da estratégia de interação entre a aplicação e os dados Quais são as estratégias para conectar sua aplicação a um SGBD? Pré-processador e pós-processador batch Em alguns casos, é melhor que a aplicação não acesse o BD Aplicações batch existentes podem fazer uso de um Página 6 de 10

BD de forma indireta Pode ser útil em alguns (raros?) casos em que se usa software legado ou sem código fonte dentro de uma aplicação (como subsistema) Arquivos de script Para certas aplicações simples, basta executar um ou mais arquivos contendo comandos de uma linguagem de consulta (SQL, OQL,...) Bom para certas situações tais como criar esquemas, popular um BD, prototipagem Comandos embutidos da linguagem de manipulação de dados de um SGBDOO Neste caso, a aplicação acessa o BD diretamente Parece natural devido ao casamento entre a linguagem hospedeira (digamos Java) e um SGBDOO Cuidado! Ao proceder assim, o acoplamento com o SGBDOO fica muito forte e pode ser difícil mudar de SGBD posteriormente Comandos SQL estáticos embutidos Código SQL estático é conhecido em tempo de compilação Página 7 de 10

É relativamente simples de usar, mas: Sem muitos cuidados (batching, etc.), pode resultar numa execução lenta Acopla muito o código da aplicação ao esquema do BD Resulta em código difícil de se ler Em suma, tenta-se desta forma resolver o impedance mismatch com código estático Implementar uma API customizada de acesso aos dados Os acessos ao BD são encapsulados em poucos métodos da aplicação Ajuda a manter a consistência dos dados Ajuda a manter o escopo de transações Ajuda a não contaminar a aplicação com um monte de código de acesso ao BD Técnica muito usada Métodos armazenados no BD Stored procedures Boa forma de reuso para várias aplicações Cuidado! Stored Procedures não são implementados de forma transportável pelos vários SGBDs do mercado O padrão SQL não é obedecido pelos fabricantes Linguagem de quarta geração SGBDRs normalmente vêm com uma linguagem 4GL Podem reduzir o esforço de desenvolvimento, mas não são transportáveis Camada Genérica Orientada a Objeto Uma camada OO é escrita para completamente esconder o BD Ela pode ser genérica (para qualquer objeto, qualquer aplicação) com bastante esforço Geralmente sofre com desempenho Página 8 de 10

Interação baseada em Metamodelo A camada de acesso ao BD acessa o metamodelo e constrói a consulta dinamicamente A consulta resultante acessa o BD Solução freqüentemente usada com frameworks Cuidado! Essa técnica requer muito esforço! É melhor usar uma solução pronta, tal como Toplink ou CocoBase Uso de Middleware Os serviços de persistência podem ser obtidos automaticamente usando Middleware J2EE/Enterprise JavaBeans.NET (ex-mts, ex-com+) Vantagem: muitos serviços são obtidos além da persistência: Gerência de transações distribuídas Directory/Naming Segurança Tolerância a falha com Failover Balanceamento de carga Página 9 de 10

Resource pooling Monitoring, logging,... programa Página 10 de 10