Roteiro BCC321 - Banco de Dados I Conceitos Básicos Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto Banco de Dados versus Processamento de Arquivos [email protected] www.decom.ufop.br/luiz Usuários de Banco de Dados Conceitos Básicos Conceitos Básicos O que é um banco de dados (BD)? I É uma coleção de dados relacionados [Elmasri & Navathe,2011]. I É uma coleção de dados operacionais usados pelas aplicações de uma determinada organização [Date,1975]. Um banco de dados possui as seguintes propriedades implícitas: I Representa alguns aspectos do mundo real → minimundo ou universo de discurso. I É uma coleção lógica e coerente de dados com algum significado inerente. I É projetado, construído e povoado por dados (instanciado) para uma finalidade específica. O que são esses dados? Os dados são fatos que podem ser gravados e que possuem um significado implícito. Exemplo: nomes, números de telefones, endereços → agenda telefônica. Os Bancos de Dados no Cotidiano... I Aplicações: Engenharia, Economia, Medicina, Direito, Educação ... I Um banco de dados pode ter qualquer tamanho e complexidade. Exemplo: Banco de Dados da Amazon.com. I I I I I I I Contém dados de livros, CDs, DVDs, jogos eletrônicos, roupas etc. Ocupa mais de 2 terabytes e está armazenado em 200 servidores. Cerca de 15 milhões de visitantes acessam a Amazon.com todos os dias. O banco de dados é continuamente atualizado com novos itens. O banco é atualizado à medida que compras são efetuadas. Aprox. 100 pessoas são responsáveis por manter o banco de dados atualizado. SGBD I I I Um banco de dados pode ser gerado e mantido manualmente ou pode ser automatizado (computadorizado). I Um banco de dados computadorizado precisa ser criado e mantido: Sistema Gerenciador de Banco de Dados - SGBD SGBD Um sistema gerenciador de banco de dados (SGBD) é uma coleção de programas que permite criar e manter (manipular) um banco de dados. O SGBD é um sistema de software de propósito geral que facilita os processos de: I I I I I Os Bancos de Dados no Cotidiano... Definição: especificação dos tipos, estruturas e as restrições para os dados a serem armazenados. Construção: processo de armazenar os dados em alguma mídia controlada pelo SGBD. Manipulação: inclui funções como pesquisas em banco de dados, atualização do banco e geração de relatórios. Compartilhamento: permite aos múltiplos usuários e programas acessar, de forma concorrente, o banco de dados. BD + SGBD = Sistema de Banco de Dados. Outras funções importantes do SGBD são a proteção e a manutenção do banco de dados por longos períodos. I Proteção: compreende a proteção do sistema contra o mau funcionamento (hardware ou software) e segurança contra acessos não autorizados. I Manutenção: os SGBDs devem ser capazes de manter um sistema de banco de dados que permita a evolução dos requisitos que se alteram ao longo do tempo. Exemplo de um Banco de Dados de uma Universidade Sistema de Banco de Dados Simplificado Banco de Dados versus Processamento de Arquivos Natureza Autodescritiva de um Sistema de Banco de Dados Principais características da abordagem de um banco de dados: I Natureza autodescritiva de um sistema de banco de dados. I Isolamento entre os programas e os dados e abstração de dados. I Suporte para múltiplas visões dos dados. I Compartilhamento de dados e processamento de transação multiusuário. I Catálogo do SGBD → metadados. I Possibilidade de acessar diversos bancos de dados. I Processamento de arquivos: a definição dos dados faz parte dos próprios programas da aplicação. Isolamento entre os Programas e os Dados e Abstração de Dados I I Alterações na estrutura dos arquivos não exige alterações dos programas de acesso (independência programa-dados). Suporte para Múltiplas Visões dos Dados I Um banco de dados pode ter vários usuários e cada um pode solicitar diferentes visões do banco de dados. I Uma visão pode ser um subconjunto de um banco de dados ou conter uma visão virtual dos dados (derivados dos arquivos do banco de dados). O sistema de banco de dados deve garantir uma visão totalmente abstrata do banco de dados para o usuário. Compartilhamento de Dados e Processamento de Transação Multiusuário Usuários de Banco de Dados I Administrador (DBA) I I I I O SGBD multiusuário deve permitir que diversos usuários acessem o banco de dados ao mesmo tempo (software de controle de concorrência). I O SGBD multiusuário deve garantir que as transações concorrentes operem corretamente. I Projetista I I I Responsável por identificar os dados e escolher estruturas apropriadas para representá-los e armazená-los. Essas tarefas são realizadas antes que o BD seja implementado e instanciado (alimentado com os dados). Analista de Sistemas e Programador de Aplicações I I I Administra BD e SGBD Responsável pela autorização para acesso ao BD, pela coordenação e monitoração de seu uso e por adquirir recursos de software e hardware. Resolver problemas como: violação de segurança e tempos de resposta ruim. Analista: identifica as necessidades dos usuários finais e desenvolve as especificações das transações customizadas que atendam a essas solicitações. Programador: implementam essas especificações como programas, realizam testes, manutenção e documentação. Usuário Final I Acessa o BD: consultas, atualizações, relatórios... Vantagens de Usar um Banco de Dados Quando Não Usar um SGBD I Controle de redundância. I Controle de acesso (segurança). I Armazenamento persistente dos dados. I I Existência de múltiplas interfaces para os usuários. BD e suas aplicações são simples, bem definidas e sem previsão de mudanças. I Representação de relacionamentos complexos entre os dados. I Há requisitos de tempo real para alguns programas difíceis de serem atendidos por causa da sobrecarga do SGBD. I Manutenção de restrições de integridade. I Acesso de múltiplos usuários aos dados não é necessário. I Estrutura de armazenamento e técnicas de pesquisa para o processamento de consultas. I Recursos para recuperação de falhas. I Permissão de ações usando regras. Atividade... Perguntas? I Ler o item 1.7 - “Uma breve história das aplicações de um banco de dados”(pág. 15, NAVATHE). FIM