Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados e usuários de Banco de Dados Disciplina: Banco de Dados Professor: Wandré Nunes de Pinho Veloso 2 Dados, informação e conhecimento • Dados – Fatos brutos, o fluxo infinito de coisas que estão acontecendo agora e que aconteceram no passado • Informação – Conjunto de dados aos quais seres humanos deram forma para torná-los significativos e úteis • Conhecimento – Conjunto de ferramentas conceituais e categorias usadas pelos seres humanos para criar, colecionar, armazenar e compartilhar informação – Pode ser armazenado como um artefato em uma biblioteca ou em um programa de computador, por exemplo 3 Dados • “Fatos conhecidos que podem ser registrados (codificados) e que têm significado implícito” – Ex: um valor “F” pode significar sexo Feminino em um contexto, mas pode significar Falso em outro contexto • Um Banco de Dados representa algum aspecto do mundo real • Os dados são organizados com lógica e coerência (dados aleatórios, mesmo relacionados, não constituem um Banco de Dados) • Uma coleção de dados relacionados entre si formam um Banco de Dados 4 Banco de Dados • Banco de Dados e sistemas de informação baseados em Bancos de Dados são cada vez mais essenciais para a vida moderna • Diversas de nossas atividades que envolvem relacionamento com empresas ou até com o governo usam alguma interação com um Banco de Dados • O baixo custo do armazenamento de dados em meio digital, somado à grande estabilidade dos sistemas de gerenciamento de bancos de dados atuais recomenda o uso de BD em grande parte dos SI informatizados 5 Banco de Dados • BD são projetados, construídos e populados com dados que possuem algum objetivo específico • Voltados para um grupo provável de usuários, que o utilizarão desses dados de acordo com o necessário • Banco de Dados nem precisam ser informatizados (ex: biblioteca, fichas) Banco de Dados • Para ser um Banco de Dados, as seguintes propriedades, normalmente, estão presentes: – Representação de algum aspecto do mundo real, às vezes chamado de mini-mundo ou universo de discurso (UoD - Universe of Discourse) – Coleção logicamente coerente de dados com algum significado inerente (dados aleatórios não são banco de dados) – Um BD é projetado, construído e populado com dados para uma finalidade específica 6 Banco de Dados • Exemplo: Receita Federal e Imposto de Renda – 100 milhões de contribuintes – 5 formulários por contribuinte – 400 caracteres por formulário • 100 * 106 * 400 * 5 caracteres (bytes) – Se a Receita Federal mantém registro dos 3 últimos anos de cada contribuinte, além do anual • 8 * 1011 bytes (800 gigabytes) 7 Banco de Dados • Exemplo: Amazon.com – Mais de 20 milhões de livros, CDs, vídeos, DVDs, jogos, eletrônicos, roupas e outros itens – Ocupa mais de 2 terabytes, armazenados em mais de 200 computadores diferentes – 15 milhões de visitantes todos os dias – Cerca de 100 pessoas são responsáveis por manter o BD da Amazon.com atualizado 8 9 10 Sistema de processamento de arquivos • É a forma de armazenar os dados de uma aplicação em um arquivo • Quem gerencia os acessos a esse arquivo é o Sistema Operacional (SO) • Cada usuário define e implementa os arquivos necessários para uma aplicação específica, como parte da programação da aplicação • Mudanças na estruturação dos dados exigem modificações em todos os programas que acessam aqueles dados • Tende a ser utilizado por apenas um usuário, o que induz à redundância de informações e desperdício de espaço de armazenamento • A estrutura dos arquivos pode ser mantida oculta de outros usuários, possibilitando a criação de arquivos e sistemas proprietários 11 Sistema de processamento de arquivos • Exemplo: Faculdade – Diversos grupos de usuários: secretaria, financeiro, contabilidade... – Cada grupo mantém seus arquivos de alunos de maneira independente (alguns até em sua própria máquina) – A secretaria e o financeiro guardam os dados de matrícula e dos cursos que cada aluno cursa (redundância) – Qualquer pessoa que tenha acesso ao arquivo de dados, tem acesso irrestrito aos dados dele, sem controle de permissões – Caso algum tesoureiro esteja realizando um pagamento e o sistema desligue, não há controle de que parte foi feita ou não – Caso o funcionário da informática deseje fazer backup de todos os dados da Faculdade, esses não podem estar sendo utilizados 12 Banco de Dados • Utilizando Banco de Dados é possível – Controlar alterações em todos os Dados • Permitindo somente aos usuários autorizados • Garantir que um dado será corretamente alterado, senão, ele será restaurado ao valor anterior • Não permitir que uma alteração de um usuário afete uma alteração de outro – Buscar Dados de forma mais rápida, pois estão organizados e ordenados – Backup realizado sem ter que esperar todos os sistemas pararem – Independência de programas específicos; isolamento entre dados e programas – Recursos para limitar a redundância – Múltiplas aplicações de linguagens diferentes acessando o mesmo Banco de Dados e até os mesmos Dados – Relacionamentos entre os dados (Exemplo: situação financeira-aluno-histórico) – Concentrar todos os Dados em um local 13 SGBD • Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas que permite aos usuários criar e manter um Banco de Dados. É um pacote de softwares com finalidade genérica • Finalidades de uso de um SGBD – Definição de BD: especificação e criação de tipos, estruturas de dados e restrições – Construção de BD: armazenamento de dados de acordo com a estrutura definida em algum meio de armazenamento controlado pelo SGBD – Manipulação de BD: realização de operações como consultas, alteração de dados, emissão de relatórios, etc. – Compartilhamento de dados: permite que diversos usuários e programas acessem o BD simultaneamente 14 SGBD • Exemplos: – DB2 – MySQL – Microsoft SQL Server – Oracle – Firebird – PostgreSQL – Microsoft Visual FoxPro – dBASE – SQLite 15 SBD • SBD: Sistema de Banco de Dados – Nome dado ao conjunto de recursos que é utilizado para suportar alguma aplicação usando apenas o BD – Corresponde ao conjunto formado pelo SGBD, programas desenvolvidos para facilitar o acesso ao SGBD (programas de aplicação, consultas, etc.) e os próprios dados 16 Exemplo: Universidade 17 Tipos de Dados • Definições – Tabela • Consiste em um conjunto de linhas e colunas – Linha • Também chamada de registro ou tupla • É onde colocamos as informações a serem armazenadas nas tabelas – Coluna • Também chamado de atributo • Um registro é composto de atributos 18 Tipos de Dados Acadêmicos Nome Sexo Altura Idade Curso 1 Mariana O. Kimo F 1,67 24 Serviço Social 2 Luis Fernando Moreno M 1,75 19 Sistemas de Informação 3 Maria Brígida Gomes Silva F 1,60 27 Farmácia 19 Tipos de atributos • Numéricos: números inteiros e ponto flutuante (reais) de diversas precisões • Cadeia de caracteres: conjunto de caracteres • Cadeia de bits: conjunto de bits • Booleano: possui os valores TRUE ou FALSE (caso não seja nenhum desses dois, o valor fica sendo UNKNOWN) • Date e time: representam data e horário e suas variações • Timestamp: engloba os campos date e time mais 6 dígitos para fração de segundo. Exemplo: ‘2009-05-16 14:43:12 758371’ 20 Características de Banco de Dados • Natureza autodescritiva dos dados – O banco de dados não contém apenas os dados em si, mas também uma definição completa da estrutura dos dados e de suas restrições – O Catálogo do sistema contém informações como: • a estrutura de cada arquivo• o tipo e formato de armazenamento de cada dado • restrições porventura existentes sobre cada dado – Os dados armazenados no catálogo são chamados de metadados – O catálogo é usado pelo SGBD, mas também pode ser acessado por programas do usuário que necessitem obter informações sobre a estrutura dos dados 21 Características de Banco de Dados • Natureza autodescritiva dos dados – Um SGBD tem finalidade genérica, ou seja, não é desenvolvido para funcionar com apenas um conjunto de dados ou uma aplicação específica – O SGBD precisa trabalhar com eficiência equivalente em situações variadas em termos do porte das aplicações e em termos da natureza das aplicações – Sistemas baseados em arquivos podem implementar estruturas de dados otimizadas para o problema que pretendem resolver, o que pode ser vantajoso apesar de significar perda de generalidade Exemplo de um Catálogo 22 Definições especificadas pelo Projetista antes da criação do BD 23 Características de Banco de Dados • Isolamento entre programas e dados – Como a estrutura dos dados está descrita no catálogo, o SGBD é desenvolvido para funcionar independentemente do conteúdo do banco – Alterações na estrutura dos dados não exigem a reescrita de código do SGBD, embora possam exigir mudanças no código do aplicativo e na interface com o usuário – Essa característica é usualmente chamada de independência de dados 24 Características de Banco de Dados • Isolamento entre programas e dados – Um típico usuário de Banco de Dados não está preocupado com a localização de cada item de dados dentro de um registro ou em seu tamanho, em vez disso, este se preocupa se o valor é retornado corretamente – O BD abstrai operações de acesso aos dados, simplificando este processo – Em BD orientados a objeto ou objeto-relacionais é possível associar operações às classes de objetos armazenadas no BD (também chamadas de funções ou métodos), porém a interface é separada da implementação 25 Características de Banco de Dados • Suporte a múltiplas visões dos dados – Nem todo usuário precisa ter acesso ou conhecer toda a estrutura do banco – Ocasionalmente, pode ser necessário fornecer a um usuário uma visão particular dos dados, derivada dos dados armazenados: dados virtuais – Os usuários não precisam saber se os dados que acessam são armazenados ou virtuais – Este também é um recurso de segurança Exemplo de uma Visão (View) 26 27 Características de Banco de Dados • Compartilhamento de dados e processamento de transações multiusuário – SGBD precisam permitir o compartilhamento de dados entre seus diversos usuários, e isso requer: • Controle de concorrência • Controle de acesso • Processamento de transações de múltiplos usuários simultaneamente – Transações simultâneas (processos ou programas em execução) precisam operar corretamente • Dois ou mais usuários não podem alterar simultaneamente o mesmo dado • Transações precisam ter garantia de término com execução integral das instruções nelas contidas 28 Usuários do Sistema • Administrador do Banco de Dados (DBA) – Responsável pelo autorização para o acesso ao banco, pela coordenação e monitoração de seu uso (segurança, desempenho), controlar modificações na estrutura de dados e por adquirir recursos de software e hardware – Responsável por problemas como brechas de segurança ou tempo de resposta ruim do sistema 29 Usuários do Sistema • Projetista do Banco de Dados – Responsável pela identificação dos dados que serão armazenados no Banco e também por escolher as estruturas apropriadas para representar e armazenar esses dados – Ele deve se comunicar com todos os prováveis usuários do Banco para conhecer suas necessidades e criar projetos que as atendam – Especifica restrições de integridade para os dados – Desenvolve visões do BD para usuários ou grupos específicos 30 Usuários do Sistema • Analista de Sistemas – Determinam as solicitações dos usuários finais, além de desenvolver as especificações das transações customizadas que atendam a essas solicitações • Programador de aplicações – Implementam essas especificações como programas, depois testam, documentam e mantém essas transações customizadas 31 Usuários do Sistema • Usuário final – É deles o principal conhecimento acumulado sobre o problema a ser resolvido – O grau de envolvimento com o projeto e com a implementação do SBD variam bastante • Casual – Aciona o BD ocasionalmente, precisando de informações diferentes a cada acesso (usa uma linguagem para consulta direta ao Banco de Dados) • Iniciante, leigo ou parametrizável – É envolvido nos atos de consulta e atualização do Banco de Dados. Exemplo: caixa de banco que chega saldo de contas • Sofisticado – Tem maior familiaridade com o BD, a ponto de desenvolver aplicações para si • Autônomo, individual ou isolado – Mantém um Banco de Dados pessoal, alimentado por programas próprios de sua função. Exemplo: setor de contábil 32 Vantagens de se utilizar um SGBD • Controle de redundância – O armazenamento redundante de dados é considerado danoso à estabilidade de um SI • Problemas na atualização: duplicidade de trabalho • Desperdício de espaço de armazenamento • Geração de inconsistências – Redundância introduzida de forma controlada pode ajudar a melhorar o desempenho do BD • Evita a navegação entre várias tabelas para se obter um dado • Restrições de integridade tem que ser implementadas e garantidas para proibir inconsistências entre os dados 33 Vantagens de se utilizar um SGBD • Controle de acesso – Como parte da especificação do BD, é possível determinar que usuários têm ou não acesso a cada dado – Alguns usuários também podem não ter permissão de modificar os dados, embora possam acessá-los – A configuração das permissões para acesso é realizada pelo DBA, usando seus privilégios de administrador do BD 34 Vantagens de se utilizar um SGBD • Armazenamento persistente de objetos de programa e estruturas de dados – Característica da orientação a objetos, inerente aos SGBD OO – Os dados de um objeto em C++ ou Java, por exemplo, podem ser armazenados diretamente no BD OO, sem necessitar de conversão – Nem sempre é o caso em Bancos de Dados Relacionais, em que ocorre o problema de incompatibilidade por impedância, ou seja, diferenças e incompatibilidades entre as estruturas de dados do SGBD com as estruturas das linguagens de programação, em especial, Orientadas a Objeto 35 Vantagens de se utilizar um SGBD • Prover estruturas de armazenamento para processamento eficiente de consultas – O SGBD deve prover estruturas de dados especializadas para acelerar a execução de consultas, otimizando o acesso ao disco – Recursos usuais: índices e buffers ou caches – O SGBD contém um módulo de otimização de consultas, que determina um “plano de execução” baseado em critérios objetivos e em parâmetros do banco de dados • Alguns SGBD permitem que o plano de execução seja inspecionado pelo usuário/analista e alterado 36 Vantagens de se utilizar um SGBD • Facilidades para execução de backups e recuperação de dados – Backups são essenciais ao longo da operação de sistemas de informação, já que os equipamentos de informática não possuem confiabilidade absoluta • Garantia da existência de cópias no caso de perda de dados – O subsistema de recuperação não apenas restaura os dados que foram “backupeados”, mas também é o responsável pela restauração do estado do sistema após a execução parcial de uma transação • Garantia da possibilidade de restauração da situação do banco de dados a um estado consistentee íntegro • Garantia de execução integral ou cancelamento integral de transações 37 Vantagens de se utilizar um SGBD • Representação de relacionamentos complexos entre dados – Recuperação de informação com base em relacionamentos – 1 registro pode estar relacionado a outros 4, que podem estar relacionados a uma série de outros registros – Exemplo: Quantas disciplinas determinado aluno cursa? 38 Vantagens de se utilizar um SGBD • Imposição de restrições de integridade – Também chamadas de regras de negócio – Especificação de tipo para cada dado – Especificação de domínio para cada dado – Restrições quanto ao relacionamento com outros dados – Restrições quanto à semântica dos dados (questões especificamente ligadas à lógica da aplicação) – Exemplos: • Tipo_aluno deve ser um valor entre 1 e 5 • Cada registro de uma turma deve estar associado a uma disciplina (integridade referencial) • Cada registro de uma disciplina deve ser único (restrição de chave ou singularidade) 39 Vantagens de se utilizar um SGBD • Permitir inferências e ações baseadas em regras – Definição de regras de dedução para inferir nova informação baseada nos fatos armazenados no SGBD – SGBD ativos oferecem regras que podem automaticamente iniciar uma operação quando certos eventos ou condições ocorrerem (através de gatilhos ou triggers) 40 Tipos de Banco de Dados • Banco de Dados Relacional – Armazena os dados unicamente na forma de tabelas • Banco de Dados Distribuídos – Conjunto de vários Bancos de Dados logicamente inter-relacionados, distribuídos por uma rede de computadores • Banco de Dados Geográficos – Banco de Dados que objetiva armazenar e gerenciar informações sobre espaço e fenômenos que nele ocorrem • Banco de Dados Orientado a Objetos – Cada informação é armazenada em um objeto, facilitando a integração com linguagens orientadas a objeto – Possui as mesmas propriedades das linguagens orientadas a objetos (herança, encapsulamento, polimorfismo, etc.) • Banco de Dados Multimídia – Trabalham com imagem, som e vídeo como seus dados 41 Quando não Utilizar um SGBD • Investimentos iniciais em hardware, software e treinamento são incompatíveis com o projeto – Obs.: Existem SGBDs livres/gratuitos • Generalidade “excessiva” gera dificuldades na programação de aplicações muito particulares • Custos de administração do ambiente de BD • Os dados são simples, e não se espera que sejam alterados • Exigências rigorosas de tempo de processamento que podem não ser atendidas devido a operações extras executadas pelo SGBD • Não é necessário ter acesso simultâneo por múltiplos usuários • Sistemas embarcados com capacidade de armazenamento limitada 42 Bibliografia • Capítulo 1: Elsmari Ramez; Navathe Shamkant B. Sistemas de Banco de Dados – Fundamentos e Aplicações. 6 ed. Pearson, São Paulo, 2011. • Date, C.J. Introdução a Sistema de Banco de Dados. 7 ed. Campus, Rio de Janeiro, 2000.
Compartilhar