1/6 Banco de Dados O que é um Banco de Dados ? “Uma coleção de dados relacionados” [ELMASRI/NAVATHE] “Conjunto de dados integrados que tem por objetivo atender a uma comunidade específica” [HEUSER] “Um conjunto de dados” [KORTH/SILBERCHATZ] O que são dados ? “São um conjunto de fatos distintos e objetivos, relativos a eventos. São registros estruturados de transações Ex: venda de gasolina gera alguns dados: data da compra, preço, qtde “ [DAVENPORT/PRUZAC] “São fatos conhecidos que podem ser registrados e que possuem significado implícito” [ELMASRI/NAVATHE] ¾ Geralmente, é feita distinção entre dados e informação: Ex: Dado: a temperatura é de 30 graus. Informação: está muito quente para esta época do ano. Sistema de Gerência de Banco de Dados (SGBD) O que é um SGBD ? “Em essência, um sistema de banco de dados é apenas um sistema computadorizado de armazenamento de registros” [DATE] “Uma coleção de dados inter-relacionados e um conjunto de programas para acessálos. [...] seu principal objetivo é prover um ambiente que seja adequado e eficiente para recuperar e armazenar informações de banco de dados. O SGBD deve fornecer meios para que seja feita a definição das estruturas para armazenamento, uma forma de manipulá-las e garantir a segurança e integridade dos dados.” [KORTH/SILBERCHATZ] “Uma coleção de programas que possibilita que os usuários criem e mantenham um banco de dados. O SGBD é portanto um sistema de software com finalidade genérica que facilita o processo de definição, construção e manipulação de banco de dados para várias aplicações” [ELMASRI/NAVATHE] “Software que incorpora as funções de definição, recuperação e alteração de dados em um banco de dados” [HEUSER] 2/6 Sistemas de arquivos X SGBD ¾ É possível armazenar os dados usando arquivos, e construindo programas para manipular estes arquivos ¾ A manipulação dos arquivos é parte da implementação... ¾ Vantagens no uso de SGBDs: a) Dados podem ser compartilhados b) Redundância pode ser controlada c) Inconsistência dos dados pode ser evitada (considerando dados redundantes) d) É fornecido suporte efetivo a transações e) Integridade pode ser mantida f) Segurança pode ser reforçada g) Acesso aos dados é facilitado h) Padrões podem ser reforçados i) Tempo de desenvolvimento de aplicações é reduzido j) Maior flexibilidade para realizar alterações (independência de dados) k) Maior economia, informações atualizadas, menor volume de papel.... Que características distinguem um SGBD de aplicações que utilizam processamento de arquivos ? 1) Catálogo - Um SGBD mantém não apenas o BD, mas também a definição e descrição das estruturas e restrições (catálogo – metadados). - A existência do catálogo permite que um mesmo SGBD possa ser utilizado para aplicações distintas (o catálogo indica a estrutura física utilizada) 2) Independência de dados - Um SGBD dá aos usuários uma visão abstrata dos dados, encobrindo detalhes não relevantes (o usuário-desenvolvedor não precisa saber como os dados são fisicamente armazenados). 3) Múltiplas Visões dos Dados - Cada usuário pode exigir uma visão diferenciada da base de dados 4) Compartilhamento & Transações - Controle de concorrência 3/6 ¾ Para obter e visualizar as 3 primeiras características foi proposta uma arquitetura de banco de dados (arquitetura ANSI/SPARC). ¾ A arquitetura ANSI/SPARC possui 3 níveis: 1) Nível Externo ou de Visões: descreve a parte de um BD que interessa a um grupo de usuários 2) Nível Conceitual: descreve a estrutura de todo o banco de dados (dados armazenados e a relações entre eles) 3) Nível Interno ou Físico: estrutura de armazenamento Visão 1 Visão 2 Visão 3 Conceitual Físico ¾ A descrição de um BD é denominada ESQUEMA do BD. ¾ Pode-se associar a ESQUEMA do BD a definição de uma variável em uma linguagem de programação Independência dos dados ¾ É a habilidade de modificar a definição de um esquema em nível mais baixo, sem atingir um nível mais alto. Existem 2 níveis: a) Independência física é a habilidade de modificar o esquema físico sem a necessidade de reescrever os programas aplicativos. b) Independência lógica é a habilidade de modificar o esquema conceitual sem a necessidade de reescrever os programas aplicativos (mais difícil de atingir) 4/6 Linguagens do SGBD ¾ Data Definition Language – DDL (normalmente usada para definir os 3 esquemas) ¾ Data Manipulation Language – DML ¾ Data Control Language - DCL Usuários de um SGBD: ¾ Projetistas: Identificam os dados a serem armazenados ¾ DBA – Administrador de Banco de Dados: Definição/Manutenção do esquema Definição das estruturas de armazenamento e métodos de acesso Concessão de autorização de acesso Monitora utilização Atividades de manutenção (Backups) ¾ Usuários Leigos Especializados (programadore, por ex) Classificação dos SGBDs ¾ Modelo: Hierárquico, Rede, Relacional, OO, Objeto-Relacional ¾ Número de usuários: Monousuário/Multiusuário ¾ Local de armazenamento: Centralizado/Distribuído 5/6 VISÃO GERAL DE UM SGBD Componentes principais de um SGBD 1) Compilador de DML: traduz comandos da linguagem de manipulação de dados em instruções que possam ser executadas 2) Compilador de DDL: traduz as instruções da DDL e faz o registro das modificações no catálogo 3) Gerenciador de segurança e integridade: verificam o cumprimento das regras de integridade e normas de segurança 4) Gerenciador de transações: garante a consistência do banco de dados mesmo quando da ocorrência de falhas de anomalias produzidas pela execução concorrente de transações 5) Componentes para o tratamento de consultas (KORTH et.al.): executam instruções de baixo nível geradas pelo compilador DML 6) Gerenciador de arquivos: gerencia a alocação de espaço em disco, a localização dos arquivos que contém e as estruturas de dados utilizadas. O gerenciador de arquivos responde as requisições do gerenciador de buffers 7) Gerenciador de buffers: gerencia a transferência de dados entra o disco e a memória principal 8) Arquivo de dados: conteúdo do banco de dados 9) Catálogo: descreve a estrutura e as restrições sobre o banco 10) Índices: estruturas que permitem acesso rápido aos dados 11) Estatísticas: são informações relacionadas ao conteúdo do banco de dados usadas na otimização de consultas 6/6 Usuário Consulta, Atualizações Compilador DML Analisa a instrução/gera plano otimizado Plano de consulta (sequência de operações) Mecanismo de execução Componentes para tratamento de consultas Executa as operações geradas solicitações de itens de dados (tuplas de uma relação) Gerenciador de índices/arquivos/registros Conhece a estrutura dos arquivos solicitação de páginas Gerenciador de Buffer Solicita páginas /Envia páginas para o disco páginas de leitura/gravação Gerenciador de arquivos (Gerenciador de armazenamento) Pode envolver comandos do SO, mas normalmente o SGBD emite comando diretamente para o controlador de disco Armazenamento em disco Durante a execução das transações (consultas/atualizações) existe a participação do Gerenciador de transações