Baixe o app para aproveitar ainda mais
Prévia do material em texto
IF64A-Banco de Dados 1 pbugatti@utfpr.edu.br Prof. Dr. Pedro Henrique Bugatti Tópicos da aula ! ! Evolução dos Sistemas de Informação ! ! Conceitos Básicos ! ! SGBDs �2 Evolução dos Sistemas de Informação ! ! ! Sistemas de Informação baseados em gerenciamento de arquivos ! programas e arquivos orientados a cada unidade organizacional ! rotinas específicas para tarefas específicas ! dados armazenados em disco, usando uma determinada estrutura de dados �3 Aplicações Arquivo 1 Arquivo 2 Arquivo 3 Dados Aplicações Arquivo 1 Arquivo 2 Arquivo 3 Dados PROBLEMA????? Aplicações Arquivo 1 Arquivo 2 Arquivo 3 Dados • Definiam-se novas estruturas de dados e programas por cada aplicação. ! • Os mesmos dados são armazenados em arquivos diferentes. ! • Dados são atualizados independentemente o que leva a incoerências. Problemas dos Sistemas de Arquivos Tradicionais �7 ! ! Redundância ! Inconsistência ! Dificuldade no acesso a dados ! Isolamento dos dados ! Múltiplos usuários ! Segurança ! Integridade ! Atomicidade Problemas dos Sistemas de Arquivos Tradicionais �8 ! ! Redundância ! Arquivos e aplicações criados e mantidos por diferentes programadores → arquivos com formatos diferentes e programas escritos em diversas linguagens de programação. ! Informação repetida em diversos lugares (arquivos). ! ! Inconsistência ! Decorrência da redundância. ! Várias cópias dos dados poderão divergir ao longo do tempo. �9 �10 Consistência de Dados ! ! Dados em estado inconsistente ! ! informações incorretas ou contraditórias são fornecidas aos usuários �11 Consistência de Dados ! ! Consistência é “estado ou caráter do que é coerente, do que tem solidez, veracidade, credibilidade, estabilidade, realidade”. ! ! ! Consistência: se determinada informação é replicada (redundância), seu valor é sempre o mesmo �12 SIs baseados em arquivos ! ! Problemas? ! Redundância e inconsistência de dados �13 ! Dificuldade de acesso aos dados ! Isolamento de dados ! Anomalias no acesso concorrente ! Segurança Problemas dos Sistemas de Arquivos Tradicionais �14 ! Dificuldade no acesso aos dados ! Necessidade de construir programas para obter qualquer informação solicitada. ! ! EXEMPLO: Uma empresa precisa dos nomes de todos os clientes que fazem aniversário no mês de fevereiro, mas esta solicitação não foi prevista no projeto do sistema → existe somente uma aplicação para gerar a relação de todos os clientes da empresa. Alternativas: 1) separar manualmente da lista de todos os clientes aqueles que necessita 2) requisitar um programador para escrever o programa necessário. Ambas alternativas são insatisfatórias. ! ...Mais tarde a empresa precisa saber os clientes que têm saldo negativo. Problemas dos Sistemas de Arquivos Tradicionais �15 ! ! ! Isolamento dos dados ! Dados dispersos em vários arquivos e arquivos em diferentes formatos → difícil escrever novas aplicações para recuperação apropriada dos dados. Problemas dos Sistemas de Arquivos Tradicionais �16 ! Múltiplos usuários ! Atualizações concorrentes podem resultar em inconsistências. ! ! EXEMPLO ! Conta corrente com saldo = R$500,00 ! ! Dois clientes debitam da conta A simultaneamente ($50 e $100, respectivamente) ! ! Na execução dos programas, ambos lêem o saldo antigo, retiram, cada um seu valor correspondente, sendo o resultado armazenado. ! ! Dependendo de qual deles registre seu resultado primeiro, o saldo da conta A será $450 ou $400, ao invés do valor correto de $350. Problemas dos Sistemas de Arquivos Tradicionais �17 ! Segurança ! Definir autorizações de acesso a diferentes usuários. ! ! Integridade ! Valores dos dados armazenados devem satisfazer a certas restrições para manutenção da consistência. ! ! O valor da nota final de um aluno deve estar entre 0 e 10. Os programadores determinam o cumprimento desta restrição através da adição de código apropriado aos vários programas aplicativos. ! ! Entretanto, quando aparecem novas restrições, é difícil alterar todos os programas para incrementá-las. O problema é ampliado quando as restrições atingem diversos itens de dados em diferentes arquivos. EXEMPLO Problemas dos Sistemas de Arquivos Tradicionais �18 ! Atomicidade ! Algumas operações devem ser feitas de forma única, atômica, a fim de assegurar a integridade e consistência dos dados. ! ! um programa para transferir R$50,00 da conta A para uma conta B. Se ocorrer falha no sistema durante sua execução, é possível que os 50 reais sejam debitados da conta A sem serem creditados na conta B, criando um estado inconsistente no banco de dados. ! ! É essencial para a consistência do banco de dados que ambos, débito e crédito ocorram, ou nenhum deles seja efetuado. Isto é, a transferência de fundos deve ser uma operação atômica – deve ocorrer por completo, ou não ocorrer. EXEMPLO Além disso.... �19 ! Sistemas de Arquivos → Aplicações utilizam dados gravados em disco usando ESTRUTURA DE DADOS ! ! Acesso requer conhecimento destas estruturas → DEPENDÊNCIA DE DADOS Dependência de Dados �20 ! ! Vários programas compartilhando os mesmos dados → todos devem conhecer e manipular as mesmas estruturas ! ! E se houver uma alteração na estrutura de dados? Independência de Dados �21 ! ! Como tornar os programas INDEPENDENTES da estrutura de dados? Independência de Dados �22 SGBD �23 ! ! Sistema de Gerenciamento de Bases de Dados ! ! Conjunto de Dados ! Base (banco) de dados ! ! ! Conjunto de programas para acesso e manipulação dos dados SGBD �24 ! ! Sistema de propósito geral ! Armazenar grandes volumes de dados ! Permitir busca e atualização dos dados ! Eficiência ! ! Manutenção de um conjunto lógico e organizado de dados ! Completamente autônomo em relação às aplicações Esquema - Definição da base de dados Instância – Base de dados SGBD Aplicação Aplicação Aplicação Instâncias e Esquemas �26 ! ! ! Esquema → projeto geral do BD mudados com pouca freqüência. ! ! ! Instância → conjunto de informações contidas em determinado BD em um dado momento. Regras para que um sistema de manipulação de dados seja um SGBD �27 ! ! Descrição auto-contida da natureza do banco de dados (metadados) – conter dados, suas descrições, relacionamentos e formas de acesso. ! ! Independência dos Dados – aplicações imunes a mudanças na estrutura de armazenamento e à estratégia de acesso a dados. ! ! Abstração dos Dados – usuário não precisa saber detalhes sobre armazenamento real. ! ! Suporte a múltiplas visões dos dados – formas diferentes de ver os dados de acordo com necessidade dos usuários. ! ! Transações – gerenciar integridade sem precisar de aplicativos. ! ! Controle automático de acesso – vários usuários, travamento eficiente. Características de um SGBD �28 ! ! Controle de Redundâncias – informações armazenadas em um único lugar. ! ! Compartilhamento de dados em um ambiente multi-usuário – garantir concorrência ao acesso dos dados, sem erro. ! ! Controle de Acesso – seleção de permissões por usuário. ! ! Interfaceamento – facilidade para recuperação de informação. ! ! Esquematização – mecanismos que possibilitem a compreensão do relacionamento entre as tabelas e sua manutenção. ! ! Controle de Integridade – aplicações e acessos não podem comprometer integridade dos dados. ! ! Backups – facilidade para recuperar falhas de hardware e software. Porque usar SGBDs? �29 ! ! Vantagens ! INDEPENDÊNCIA DE DADOS ! CONSISTÊNCIA DE DADOS ! Acesso compartilhado (multiusuário e concorrente) à informação ! Segurança ! Controle de armazenamento, com estruturas para processamento eficiente de operações ! Backup e recuperação de falhas ! Múltiplas interfaces com os usuários ! Definição e manutenção de restrições de integridade Quando usar um SGBD? �30 ! ! Vale a pena o investimento inicial em hardware, software e treinamento? ! ! Os dados e relacionamentos são inerentemente simples ou estáticos? ! ! Há concorrência no acesso aos dados? ! ! Segurança, recuperação e integridade dos dados compensam o overhead do banco? ! Aplicações de tempo real ! ! Os dados são compartilhados entre várias aplicações? Quando não usar um SGBD? �31 ! ! Não é necessário ! Se o banco de dados e as aplicações são simples, bem definidas e não sujeitas a atualizações ! Se existem restrições de tempo (por exemplo, sistemas de tempo-real) que não podem estar sujeitas ao overhead do SGBD ! Acesso de múltiplos usuários não é necessário ! ! Não é suficiente ! Se as aplicações exigem operações especiais não suportadas pelo SGBD Componentes de um SGBD ! Os componentes funcionais do SGBD: ! componentes de processamento de consultas ! componentes de gerenciamento de armazenamento �32 Dados e Metadados Processador de Consultas Gerenciador de Armazenamento SGBD Banco de Dados Linguagem de Definição de Dados (DDL) �33 ! ! Data-definition language (DDL) ! conjunto de comandos para definição do esquema da base de dados ! ! Especificação do esquema de dados ! ! resultado da compilação de instruções DDL → ! conjunto de tabelas que constituem o dicionário de dados, diretório de dados ou catálogo de dados ! ! dicionário de dados: arquivo de metadados (dados a respeito de dados) Linguagem de Definição de Dados (DDL) �34 ! ! ! ! create table alter table drop table create view, drop view EXEMPLOS Linguagem de Definição de Dados (DDL) �35 ! Conceito Importante: ! ! Dicionário de Dados: ! Banco de dados do sistema ! Armazena descrição do esquema ! Armazena metadados ! Armazena restrições de segurança e integridade ! outras denominações: catálogo de dados, diretório de dados Linguagem de Manipulação de Dados (DML) �36 ! ! Data-manipulation language (DML) ! manipulação de dados: ! recuperação das informações armazenadas no BD - select ! inserção de novas informações no BD - insert ! remoção de informações do BD – delete ! modificação das informações do BD – update ! ! Objetivo: proporcionar interação humana eficiente com o sistema. ! ! DML viabiliza o acesso (manipulação) aos dados organizados por um modelo de dados apropriado. Linguagem de Manipulação de Dados (DML) �37 ! Dois tipos de DML: ! ! Procedural: exige especificação de quais dados são necessários, e como obtê-los ! Requer uma seqüência especifica de operações a serem executadas ! Exemplo: Álgebra Relacional ! ! Não-procedural (Declarativa): exige apenas a especificação de quais dados são necessários, e não de como obtê-los ! Exemplo: SQL Gerenciador do Banco de Dados �38 ! ! BD grandes quantidades de espaço de armazenamento ! ! Dados transportados entre discos e memória principal, conforme a necessidade → Sistema de BD deve minimizar necessidade de movimentação ! ! Performance (tempo de resposta) depende da eficiência das estruturas de dados usadas e das operações entre elas. Gerenciador do Banco de Dados �39 ! ! Responsabilidades do Gerenciador: ! Interação com o gerenciador de arquivos (tradução instruções DML para baixo nível) ! Garantia de integridade ! Garantia de segurança ! Recuperação e backup ! Controle de concorrência Administrador do Banco de Dados �40 ! controle centralizado dos dados e dos programas que acessam os dados ! ! Responsável → administrador de dados ! ! Funções: ! Definição do esquema ! Definição da estrutura de dados e método de acesso ! Modificações da organização física do esquema ! Concessão de autorização para acesso aos dados ! Especificação de regras de integridade Usuários do Banco de Dados �41 ! ! Programadores de aplicações → interagem com o sistema através de chamadas DML, envolvidas por programas escritos na linguagem hospedeira (por exemplo, C, C++, Java) ! ! Usuários ocasionais → sofisticados, que interagem sem escrever programas. Formulam suas solicitações ao BD através de linguagens de consultas. ! ! Usuários simples → interagem com o sistema através de programas de aplicação. ! ! Usuários especializados → escrevem aplicações especializadas de BD que não podem ser classificadas como aplicações tradicionais em processamento de dados - esquemas CAD, bases de conhecimento, sistemas especialistas, que armazenam dados com tipos complexos (gráficos e som, por exemplo) Estrutura Geral do Sistema �42 Exercícios �43 1. Quais são as principais diferenças entre um sistema de processamento de arquivos e um SGBD? ! 2. Foram listadas algumas vantagens mais importantes de um sistema de banco de dados. Há alguma desvantagem? ! 3. Dê um exemplo (diferente do fornecido) de atomicidade ! 4. Explique e dê um exemplo de controle de redundância ! 5. Diferencie instância de esquema ! 6. Explique independência de dados ! 7. Quais as responsabilidades do Gerenciador do Banco de Dados? ! 8. Diferencie DDL e DML IF64A-Banco de Dados 1 pbugatti@utfpr.edu.br Prof. Dr. Pedro Henrique Bugatti
Compartilhar