Armazenamento de Informação em HSQL LEIC-Tagus – TDB 05/06 Bruno Azenha nº 51377.

Slides:



Advertisements
Apresentações semelhantes
Triggers Renata Viegas.
Advertisements

Evolução dos SGBD’s.
Evolução dos SGBD’s (2ª Parte).
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
Imagens e elementos multimédia
SISTEMAS DE INFORMAÇÃO
1 LEIC, LBD 2002, Gabriel David, Ana Paiva, Luis Paulo Reis Geração da base de dados lógica n A ferramenta de transformação do modelo EA para o modelo.
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO - UFES CENTRO DE CIÊNCIAS AGRÁRIAS - CCA DISCIPLINA DE INFORMÁTICA - ENG05207 Aula 09 –a Banco de dados Profs: Dr.
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
[MO410A]–Banco de Dados I ImageDatabase - Relatório 1
Pesquisa em Memória Primária
Pesquisa em Memória Primária
Banco de Dados Oracle AESO.
Oficina sobre banco de dados
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Internet e Informação Electrónica INTERNET EXPLORER
Documentação da Neptus Framework
Administração de Sistemas de Informação Banco de Dados
Diagramas de Componentes
Sistema Operativo em Ambiente Gráfico
Acesso a Base de Dados JDBC Trabalho Realizado por:
Gestão de Redes e Sistemas Distribuídos Teresa Maria Vazão Fevereiro 2003 IST/INESC Contactos:IST/Tagus-Park Tel:
Gestão de Redes e Sistemas Distribuídos Teresa Maria Vazão Julho 2005 Ferramentas de Gestão Plataformas de Gestão IST/INESC-ID Contactos: IST/Tagus-Park.
ACCESS Introdução às Tecnologias de Informação II
É um conjunto de registos dispostos numa estrutura regular que possibilita a reorganização dos mesmos e a produção de informação com a menor redundância.
Design Patterns / Acesso ao banco de dados (java.sql)
ACESSO A BASE DE DADOS.
INTRODUÇÃO ÁS BASES DE DADOS
Sistema Operativo (S.O) em ambiente gráfico
Soluções de CTI • CRM • Contact Center • Call Center
DiTeD Dissertações e Teses Digitais. DiTeD Dissertações e Teses Digitais 1.Sistema de depósito pela Internet de literatura cinzenta em formato digital,
7 - Criação de Páginas Web
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Banco de dados.
Conceitos Programas Programação Linguagens de Programação SQL.
UNIDADE 2: Sistema Operativo em Ambiente Gráfico
SISTEMAS OPERACIONAIS I Gerenciamento de Arquivos
Usuários e Grupos Usuário: alguém que possui conta, internamente é tratado como um número (UID) que é a identificação do usuário (USER ID). Cada usuário.
Linguagem de Manipulação de Dados. 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados.
Introdução ao MS Access
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 10: Interface de Sistemas de Arquivos.
SQLite Banco de Dados II.
Ricardo Ferreira Schiavo
©Silberschatz, Korth and Sudarshan (Modificado)1.1Database System Concepts Capítulo 1: Introdução Função dos Sistemas de Bases de Dados Visão dos dados.
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
HSQL database engine Processamento e Optimização de Interrogações Vitor Silva.
1 Baseado em whitepapers/eclipse-overview.pdf Nelson Lago IME/USP 04/2003 A Plataforma Eclipse.
PostgreSQL Índices Nuno Campos N.º Nuno Campos - N.º Índice Introdução Tipos de Índices – B-Tree – R-Tree – Hash – GiST Classes de Operadores.
Objetos em Bancos de Dados Relacionais Alcides Calsavara.
Aula Prática 12 Listas Encadeadas Monitoria
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
Sistemas de Gestão de Bases de Dados Educação e Formação de Adultos (EFA) Operador de Informática Arcozelo 2009/2010 Curso Co-Financiado por:
UCSal – Bacharelado em Informática
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
Treinamento AJAX Waelson Negreiros Blog:
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Sistemas Operacionais Sistemas de Arquivos Prof. José Queiroz - ZEQUE.
Como criar uma apresentação em PowerPoint Aprender com a Biblioteca Escolar Agrupamento de Escolas Marquês de Marialva.
M Fernando Forte2005 TRANSACÇÕES HSQL - Hypersonic SQL TECNOLOGIA DE BASES DE DADOS.
Persistência de dados e padrão DAO
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Folha de cálculo - EXCEL. O que é a folha de cálculo Folha de cálculo integrada: – Funções de base de dados – Possibilidade de criação de gráficos – Ferramentas.
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

Armazenamento de Informação em HSQL LEIC-Tagus – TDB 05/06 Bruno Azenha nº 51377

Tópicos Introdução Introdução Interacção dos componentes Interacção dos componentes Suporte físico Suporte físico Tabelas Tabelas Conteúdo das tabelas Conteúdo das tabelas Armazenamento e acesso a dados Armazenamento e acesso a dados Acessos em memória Acessos em memória Metadados e scripts Metadados e scripts Tipos dados especiais Tipos dados especiais Aplicações Práticas Aplicações Práticas

Introdução SGBD implementado em Java que corre numa JVM SGBD implementado em Java que corre numa JVM Ligações ao SGBD através de interface JDBC Ligações ao SGBD através de interface JDBC OpenSource OpenSource Suporta um grande conjunto dos standards SQL 92 e 200n, acrescentado algumas extensões proprietárias Suporta um grande conjunto dos standards SQL 92 e 200n, acrescentado algumas extensões proprietárias Três modos de operação: “in-memory”, “standalone” e “client/server” Três modos de operação: “in-memory”, “standalone” e “client/server”

Interacção dos componentes As aplicações do utilizador só podem aceder através de uma interface JDBC As aplicações do utilizador só podem aceder através de uma interface JDBC Características dos modos de operação: Características dos modos de operação: Aplicação e BD na mesma JVM Aplicação e BD na mesma JVM Ligação HTTP através da Internet com recurso a um WebServer ou a uma Servlet Ligação HTTP através da Internet com recurso a um WebServer ou a uma Servlet Ligação TCP/IP (Intranet) usando um servidor dedicado Ligação TCP/IP (Intranet) usando um servidor dedicado

Suporte físico Cada BD consiste num conjunto de ficheiros: Cada BD consiste num conjunto de ficheiros: teste.properties – propriedades genéricas da BD teste.properties – propriedades genéricas da BD teste.script – contêm a definição em SQL das tabelas, dos dados e de outros objectos da BD, para as tabelas em memória teste.script – contêm a definição em SQL das tabelas, dos dados e de outros objectos da BD, para as tabelas em memória teste.log – contém as alterações recentes à BD teste.log – contém as alterações recentes à BD teste.data – contém os dados para as tabelas em disco teste.data – contém os dados para as tabelas em disco teste.backup – é uma cópia de segurança comprimida do último estado consistente conhecido para o ficheiro “.data” teste.backup – é uma cópia de segurança comprimida do último estado consistente conhecido para o ficheiro “.data” teste.lck – é usado para assinalar que a BD está aberta teste.lck – é usado para assinalar que a BD está aberta

Tabelas (1/3) O HSQL suporta tabelas temporárias (TEMP) e 3 tipos de tabelas persistentes: em memória (MEMORY) e em disco (CACHED) e de texto (TEXT) O HSQL suporta tabelas temporárias (TEMP) e 3 tipos de tabelas persistentes: em memória (MEMORY) e em disco (CACHED) e de texto (TEXT) As tabelas temporárias só duram enquanto a ligação está activa As tabelas temporárias só duram enquanto a ligação está activa Para as tabelas em memória: Para as tabelas em memória: Sempre que a BD é iniciada são lidos todos os dados existentes no ficheiro “.script” Sempre que a BD é iniciada são lidos todos os dados existentes no ficheiro “.script” Todos os dados são escritos de memória para disco quando é executado o comando de SHUTDOW Todos os dados são escritos de memória para disco quando é executado o comando de SHUTDOW Tempos de acesso menores que as tabelas em disco Tempos de acesso menores que as tabelas em disco Ideais para pequenos conjuntos de dados Ideais para pequenos conjuntos de dados

Tabelas (2/3) Para as tabelas em disco: Para as tabelas em disco: Os dados só são lidos do ficheiro “.data” quando a tabela é acedida Os dados só são lidos do ficheiro “.data” quando a tabela é acedida Só são mantidos em memória parte dos dados e dos índices Só são mantidos em memória parte dos dados e dos índices Ao se executar o SHUTDOW, são escritos os dados alterados e são efectuadas cópias de segurança de todas as tabelas em disco Ao se executar o SHUTDOW, são escritos os dados alterados e são efectuadas cópias de segurança de todas as tabelas em disco É possível configurar a quantidade de dados a serem mantidos em cache É possível configurar a quantidade de dados a serem mantidos em cache Ideais para tabelas contendo grandes conjuntos de dados Ideais para tabelas contendo grandes conjuntos de dados

Tabelas (3/3) Para as tabelas de texto: Para as tabelas de texto: Usam ficheiros CSV com fonte de dados Usam ficheiros CSV com fonte de dados O uso de memória é mais eficiente pois assenta no carregamento para memória da totalidade dos índices e apenas uma pequena parte dos dados O uso de memória é mais eficiente pois assenta no carregamento para memória da totalidade dos índices e apenas uma pequena parte dos dados Têm a vantagem da portabilidade e legibilidade do formato Têm a vantagem da portabilidade e legibilidade do formato Ficam a perder em termos de desempenho para os outros dois tipos de tabelas persistentes Ficam a perder em termos de desempenho para os outros dois tipos de tabelas persistentes

Conteúdo das tabelas Nome (não visível) Nome (não visível) Descrição da coluna (nome, tipo dados, …) Descrição da coluna (nome, tipo dados, …) Um ou mais índices (os túpulos só são acessíveis através de índices) Um ou mais índices (os túpulos só são acessíveis através de índices) Gestor de acesso a ficheiros se for uma tabela em disco (DataFileCache) Gestor de acesso a ficheiros se for uma tabela em disco (DataFileCache) Restrições de integridade (se existirem chaves estrangeiras) Restrições de integridade (se existirem chaves estrangeiras) Se o utilizador não criou uma chave primária, são criados automaticamente uma coluna e índices ocultos Se o utilizador não criou uma chave primária, são criados automaticamente uma coluna e índices ocultos

Armazenamento e acesso a dados O índice é uma AVL binary tree (uma árvore binária especial) O índice é uma AVL binary tree (uma árvore binária especial) Cada índice contém um nó raiz (que é “null” se a tabela estiver vazia) Cada índice contém um nó raiz (que é “null” se a tabela estiver vazia) Cada nó pode ter um nó pai e nós filhos esquerdo e direito Cada nó pode ter um nó pai e nós filhos esquerdo e direito Cada nó está ligado a um túpulo (a linha que contém os dados) Cada nó está ligado a um túpulo (a linha que contém os dados) Os dados são um array de objectos Os dados são um array de objectos

Acessos em memória A “cache” é uma hashtable A “cache” é uma hashtable Adicionalmente, os túpulos encontram-se ligados com listas duplamente ligadas Adicionalmente, os túpulos encontram-se ligados com listas duplamente ligadas Se existirem muitos registos em cache, os mais antigos são guardados (se necessário) e removidos de memória Se existirem muitos registos em cache, os mais antigos são guardados (se necessário) e removidos de memória

Metadados e scripts As tabelas de sistema são construídas dinâmicamente (só quando são necessárias e em memória) pela classe DatabaseInformation As tabelas de sistema são construídas dinâmicamente (só quando são necessárias e em memória) pela classe DatabaseInformation Chamadas às funções da DatabaseMetaData permitem obter dados das tabelas de sistema Chamadas às funções da DatabaseMetaData permitem obter dados das tabelas de sistema SYSTEM_CONNECTIONINFO retorna informação sobre a ligação actual SYSTEM_CONNECTIONINFO retorna informação sobre a ligação actual

Tipos de dados especiais Suporte para os tipos OTHER e OBJECT (são mapeados para java.lang.Object Suporte para os tipos OTHER e OBJECT (são mapeados para java.lang.Object Torna possível o armazenamento de dados binários nas colunas : fotografias, objectos Java serializados, músicas, entre outros Torna possível o armazenamento de dados binários nas colunas : fotografias, objectos Java serializados, músicas, entre outros Recurso à ferramenta “SQL Tool” e a prepared staments: Recurso à ferramenta “SQL Tool” e a prepared staments: \bl /tmp/favoritesong.mp3 \bp INSERT INTO musictbl (id, stream) VALUES(3112, ?); SELECT stream FROM musictbl WHERE id = 3112; \bd /tmp/favoritesong.mp3 O tamanho máximo do objecto é ditado pela memória disponível O tamanho máximo do objecto é ditado pela memória disponível Na prática, SGBDS de produção têm suportado com sucesso objectos até um megabyte Na prática, SGBDS de produção têm suportado com sucesso objectos até um megabyte

Aplicações Práticas OpenOffice.Org 2.0 OpenOffice.Org 2.0 JBoss JBoss JFox JFox Mathematica Mathematica TrackStudio TrackStudio Outros… Outros…

Bibliografia HSQL Development Group, Hypersonic SQL Arquitecture, HSQL Development Group, Hypersonic SQL Arquitecture, www.hsqldb.org HSQL Development Group, Hsqldb User Guide, HSQL Development Group, Hsqldb User Guide, Benoît Marchal, Hypersonic SQL: A Desktop Java Database, Benoît Marchal, Hypersonic SQL: A Desktop Java Database,