Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma unidade valor passível de processamento. Dados transientes são dados que devem ser descartados após a execução do software que o manipula. Dados persistentes são dados que não devem ser descartados após a execução do software que o manipula, esta informação deve ser retida no ambiente computacional para uso posterior. Um registro é uma estrutura composta de um ou mais unidade de dados. Uma Aplicação é um sistema de software criado por meio de uma linguagem de programação para atender a uma demanda. Um Banco de Dados é um conjunto de dados persistentes que estão relacionados de forma a contextualizar um mini-mundo. Um Sistema de banco de dados sistema que tem objetivo armazenar dados persistentes para serem utilizados por uma ou mais aplicações Um Sistema Gerenciador de Banco de Dados – SGBD (do inglês DBMS – Database Management System) é um conjunto de programas destinados a controlar banco de dados. De forma que possibilite: 1.Definir os tipos e estruturas dos dados de um BD 2.Construir por meio de armazenagem dos dados no BD 3.Manipular ou seja, recupera, insere, apaga e atualiza os dados no BD 4 Garantir a segurança dos dados retidos no BD Um Esquema de banco de dados é a definição da estrutura do conjunto de dados de um banco de dados. Uma Instância de Banco de Dados é a situação de um banco de dados em um determinado momento. Ela é variável com o passar do tempo pois dados podem ser eliminados e criados. Nota de Aula Prof. Sidney Vieira 1 2. Componentes básicos de um SGBD Em uma analise preliminar pode-se ver o Sistema Gerenciador de Banco de Dados como um programa composto de dois componentes; o processador de consultas e o Gerenciador de memória. Processador de consultas SGBD Gerenciador de memória BD O processador de consultas tem por finalidade controlar o aceso externo, realizado por usuários e aplicações. Já o gerenciador de memória, tem por objetivo controlar o espaço físico dos dados , a organizados destes dados em arquivos e a busca, o armazenamento e a eliminação de dados destes arquivos. 2.1 Aplicação com uso de arquivos de dados e Sistemas de Banco de Dados Nota de Aula Prof. Sidney Vieira 2 3. Abstração de Dados A ANSI (Americam National Standards Institute) propõe três níveis de abstração para um sistema gerenciador de banco de dados: • Nível externo • Nível conceitual • Nível interno Nível Externo – São visões para usuários individuais e grupos de usuários, este nível também é referenciado como visão externa ou nível lógico do usuário, estas visões são criadas para que as diversas categorias de usuários e aplicações manipulem as estruturas de dados definidas no nível conceitual. Nível Conceitual – é a visão geral do Banco de dados, também referenciada como visão conceitual ou nível lógico comunitário, ela tem a função de descrever os diversos conjuntos de dados, entidades, que são armazenados e suas relações. Nível físico - é a visão do meio de armazenamento, também referenciada como visão interna ou nível físico, descreve como os dados são realmente armazenados fisicamente em disco. Nível Externo ... Nível conceitual Nível Interno 3.1 Independência de Dados A Independência de Dados diz respeito ao fato de ser possível uma mudança no que concerne aos dados em um nível sem afetar outro nível. Ela pode ser: • Física • Lógica Independência Física Nota de Aula Prof. Sidney Vieira 3 Diz respeito ao fato de se efetuar mudanças no nível físico sem afetar as aplicações do nível externo Ex: criação de um novo índice para uma relação não deve afetar as aplicações existentes. Independência Lógica Diz respeito ao fato de se efetuar mudanças no nível lógico sem afetar as aplicações do nível externo Ex: criação de um novo campo de dado para uma relação não deve afetar as aplicações já existentes. 4. Usuário de Banco de Dados Os usuários de um SGBD podem ser agrupados em quatro categorias: • • • • Usuário Navegante Usuário Expert - especialista Usuário Programador/ Analista Administrador O usuário navegante é a categoria de usuários que acessa dados de um banco de dados por meio de aplicações (um programa criado em uma linguagem de programação). O usuário expert é o usuário que tem conhecimentos específicos e consegue interagir com o BD, por meio de linguagem especifica, denominada linguagem de consulta – exemplo SQL. O usuário programador é um profissional de desenvolvimento que gera aplicações manipulando linguagem de programação e comando de linguagem de consulta a banco de dados. O Administrador, denominador Administrador de banco de dados - DBA (DataBase Administrator) é a categoria de usuário do banco de dados que tem a função de administrar o banco de dados para uso das demais categorias. Compete ao DBA: • • • • • • Criar usuários para acesso ao Banco de Dados Definir o esquema do Banco de Dados Definir a estrutura de dados e o método de acesso aos dados Definir domínios para o Banco de Dados Modificar o esquema do Banco de Dados Especificar restrições para manter a integridade do Banco de Dados Nota de Aula Prof. Sidney Vieira 4 5. Esquema de um Sistema de Banco de Dados DBA USUÁRIO SOFISTICADO ISQL PROGRAMADOR Software para ge rar aplicação ISQL USUARIO NAVEGANTE Inte rface de aplicação PROCESSADOR DE CONSULTAS INTERPRETAD OR DE DDL PRÉCOMPILADO R DE DML COMPILADO R DE DML CONTROLADOR DE APLICAÇÕES COMPONENTE DE EXECUÇÃO DE CONSULTA SGBD GERENCIADOR DE TRANSAÇÃO GERENCIADOR DE MEMÓRIA GERENCIADOR DE BUFFER GERENCIADOR DE ARQUIVOS DADOS ESTÁTICOS Nota de Aula Prof. Sidney Vieira DICIONARIO DE DADOS INDICES ARMAZENAGEM EM DISCO ARQUIVO S DE DADOS 5 5.1 Componentes de um SGBD: • • • • • • • • • • • • Interpretador de DDL Pré-compilador de DML Compilador de DML Controlador de aplicações Componente de execução de consulta Gerenciador de buffer Gerenciador de transação Gerenciador de arquivos Índices Arquivos de dados Dicionário de dados Dados estáticos 6. Problemas ocasionados em decorrência do não uso de um SGBD: • • • • Redundância de dados Inconsistência de dados Dificuldade de acesso Falta de controle centralizado 7. Características básicas de um SGBD • • • • • • Integridade Segurança Backup e recuperação de dados Concorrência Monitoração Compartilhamento de dados 8- Requisitos de um Sistema Gerenciador de Banco de Dados Para ser classificado como um SGBD o Sistema deve atender aos seguintes requisitos: • • Auto-contenção – O SGBD deve contém os dados em si, e toda a descrição dos dados, seus relacionamentos e formas de acesso. Independência de dados - Nenhuma definição dos dados deverá estar contida nos programas da aplicação. Quando se cria uma nova forma de acesso, um novo índice, isto não deve afetar os codigos dos aplicativos existentes. Com isto as aplicações estão imunes a mudanças na estrutura de armazenamento ou na estratégia de acesso aos dados. Nota de Aula Prof. Sidney Vieira 6 • • • • Abstração de dados - Um SGBD deve fornecer ao usuário somente uma representação conceitual dos dados, o que não inclui maiores detalhes sobre sua forma real de armazenamento dos dados. O chamado Modelo de Dados é um tipo de abstração utilizada para fornecer esta representação conceitual. Neste modelo, um esquema das tabelas, seus relacionamentos e suas chaves de acesso são exibidas ao usuário, porém nada apresentado sobre a criação dos índices, ou como serão mantidos, ou qual a relação existente entre as tabelas que deverá ser mantida íntegra. Visões - Um SGBD deve permitir que cada usuário visualize os dados de forma diferente daquela existente previamente no Banco de Dados. Uma visão consiste de um subconjunto de dados do Banco de Dados, necessariamente derivados dos existentes no Banco de Dados. Transações - Um SGBD deve gerenciar completamente a integridade referencial definida em seu esquema, sem precisar auxílio do programa aplicativo. Com isto o SGBD deve possuir estruturas internas que permitam a gravação de uma série modificações simultâneas e permitam de cancelar um série modificações. Por exemplo, imaginemos que estejamos cadastrando um pedido para um cliente, que envolva 100 itens disponíveis no estoque, que ficaram retidos para o pedido. Porém caso existe um bloqueio financeiro por falta de pagamentos de compras anteriores e isto impeça a venda. A transação deverá ser desfeita com apenas uma instrução ao Banco de Dados, sem qualquer modificações suplementares nos dados. Acesso automático – UM SGBD não deve permitir o chamado Dead-Lock. Esta situação ocorre em situações nas quais um usuário trava um registro em uma tabela e seu próximo passo será travar um registro em uma tabela relacionada à primeira, porém se este registro estiver previamente travado por outro usuário, o primeiro usuário ficará paralisado, pois, estará esperando o segundo usuário liberar o registro em uso, para que então possa travá-lo e prosseguir sua tarefa. Se por hipótese o segundo usuário necessitar travar o registro travado pelo primeiro usuário , afirmamos que ocorreu um Dead-Lock, pois cada usuário travou um registro e precisa travar um outro, justamente o registro anteriormente travado pelo outro. Nota de Aula Prof. Sidney Vieira 7