Prévia do material em texto
10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 1/14 CURSO: Ciência da Computação e Sistemas de Informação DISCIPLINA: Banco de Dados - Módulo 1 Introdução aos Sistemas Gerenciadores de Bancos de Dados Os sistemas informatizados, que estão relacionados com praticamente todas as atividades envolvendo pessoas ou organizações, podem ser vistos como formados por dois componentes principais: os programas, que executam os processos, e os dados, que constituem a memória dos sistemas e que são o propósito da existência dos próprios sistemas. Para qualquer organização, o que pode ser mais importante do que as informações que possui sobre os seus clientes, seus estoques, suas contas por receber. Se uma organização perder um dos programas de seus sistemas, em algumas horas, ou dias, seguramente poderá refazê-lo. Porém se perder um conjunto de dados de um sistema, dificilmente terá como reconstruí-lo. Imagine o que seria de um Banco comercial se perdesse apenas parte dos movimentos de seus clientes, de uma Instituição de Ensino se perdesse parte do histórico escolar de seus alunos, de uma Operadora de Cartão de Crédito se perdesse a movimentação de 15 minutos de um dia. Dado com significado se traduz em informação, que vem a ser um dos bens mais valiosos das organizações. Mas para que a informação tenha realmente valor ela precisa estar disponível, ou seja, precisa poder ser compartilhada por diferentes sistemas, e precisa ser confiável, ou seja, o valor de uma informação visto em um sistema será exatamente o mesmo visto em outros sistemas. Para obter esse nível de qualidade dos dados é necessário que todo os processos que atuem sobre os dados sejam centralizados, o que pode ser feito utilizando um SGBS – Sistema Gerenciador de Bancos de Dados, que é um software construído com a função específica de guardar e gerenciar conjuntos integrados de dados, que são os bancos de dados. Tipos de SGBDs De acordo com a arquitetura de organização física dos dados, o SGBDs podem ser dos seguintes tipos: - Hierárquico Foram o primeiros SGBDs produzidos comercialmente. Datam da década de 1960 (IBM IMS/DB ainda em uso em muitas empresas em todo o mundo). 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 2/14 Utilizam representação de dados de forma hierárquica (pai-filho), com apontadores armazenados fisicamente junto com os dados - Em Redes (Network) Foi um padrão estabelecido por grupo de normatização (CODASYL) em 1969, utilizando representação de dados em redes, também utilizando apontadores armazenados fisicamente junto com os dados. - Relacional Surgiu a partir de uma proposta teórica feita em 1970 por E.F.Codd. As primeiras implementações datam da década 1980. Os dados são organizados em tabelas do tipo linha x coluna e não existem apontadores físicos entre os dados. Toda a organização está baseada nos valores dos dados, independente de onde estejam armazenados. Características dos SGBDs Os SGBDs em geral, independente do modelo de arquitetura de dados que implementem, possuem as seguintes características: Independência de Dados Garante invisibilidade ou transparência dos detalhes para o usuário, que não precisa conhecer a organização, estrutura de armazenamento física ou a estratégia de acesso aos dados As aplicações são isoladas da maneira que os dados são estruturados e armazenados Uma mudança na estrutura dos dados não afeta programas ou sistemas que não utilizam a estrutura alterada. Controle de Concorrência O Controle da concorrência de processos é essencial para uma boa performance do SGBD. Os acessos a discos são freqüentes e lentos, então é importante deixar a CPU alocada a diversos processos concorrentemente. Executar ações de diferentes processos sobre os mesmos dados poderia levar a contradições. Por exemplo: o cheque compensado enquanto é feito um depósito ou um saque na mesma conta corrente. 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 3/14 O SGBD evita tais problemas: cada usuário pode atuar como se fosse o único usuário do sistema. Esse controle de concorrência feito pelo SGBD simplifica o processo de programação dos sistemas, por que o programador não tem que escrever código para controle de acesso concorrente por outro usuário ou programa. Controle de Transações Também denominada Transação Lógica de Atualização, uma Transação é um conjunto de várias solicitações do usuário que é tratado pelo SGBD como uma seqüência atômica de ações no BD (unidade de leituras/gravações). Uma transação pode conter uma ou múltiplas operações. Cada transação, executada completamente, deve deixar o BD em um estado consistente (se o BD é consistente quando a transação começa) O controle de transações garante transparência na concorrência, permitindo que múltiplos usuários acessem o mesmo banco de dados e até os mesmos dadas, cada um com uma visão pessoal e única dos dados. O controle de transações garante transparência nas falhas. Se ocorrer uma falha durante a execução de uma transação, o SGBD reconstituirá o banco de dados para situação que estava antes dela ter iniciado. Propriedades das Transações - Atomicidade: Propriedade do tudo-ou-nada. Ou a transação inteira é executada com sucesso ou nenhuma de suas ações é executada. - Consistência: Cada transação está correta e não viola a consistência da base de dados - Isolamento: Transações concorrentes não interferem umas com as outras. As modificações que uma transação faz no banco de dados somente são visíveis para o usuário que a está executando. Somente no seu encerramento é que as modificações (todas) passam as vistas por outros usuários. - Durabilidade: 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 4/14 Uma vez que a transação completa seu trabalho, seus efeitos têm garantia de serem refletidos no banco de dados, independente do que possa ocorrer com o mesmo a seguir. Integridade do Banco de Dados O SGBD assegura a Integridade Física do Banco de Dados registrando um Log (história) de todas as ações realizadas O LOG é um arquivo onde fica registrada a imagem (cópia fiel) do que mudou no BD. Numa operação de Inserir, o log registra a imagem depois. Numa operação de Excluir, o log registra a imagem antes. Numa operação de Alterar, o logo registra as imagens antes e depois. Antes da mudança ser feita no BD é feito o registro no LOG. Log é seguro e freqüentemente duplicado Todas as atividades relacionadas ao log são gerenciadas transparentemente pelo SGBD Em caso de um problema com o BD, os efeitos das transações parcialmente executadas são desfeitos usando o Log, garantindo a integridade do banco de dados. Bibliografia Cap 1, HEUSER, C. A. Projeto de bancos de dados. Porto Alegre: Sagra-Luzzatto, 2000. Cap 1, SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistemas de bancos de dados. São Paulo: Makron Books, 1999. Exercícios resolvidos Considere um sistema bancário simplificado e a execução das transações T1 e T2 conforme o quadro abaixo 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 5/14 Transação T1 Transação T2 1 Consulta Saldo Conta X 2 Grava Conta X com Saldo = Saldo +500 3 Consulta Saldo ContaX 4 Encerra T1 5 Consulta Saldo ContaX Ex.1) Se em (1) a consulta do saldo da Conta X resultar 1.000, pode-se afirmar que: a) Em (3) a Consulta de Saldo resultará 1.500 b) Em (3) a Consulta de Saldo resultará 1.000 c) Em (3) a Consulta de Saldo resultará 500 d) Em (3)a Transação 2 entrará em espera da conclusão da Transação 1 e) Em (5) a Consulta de Saldo resultará 500 Resp b): Nos momentos (1), (2) e (3), em que a transação T1 está sendo executada, a transação T2 não tem acesso ao que a transação T1 está modificando (isolamento) e tem acesso de consulta aos dados conforme estavam antes do início de T1. Assim, em (3) a consulta de saldo será 1.000. Em (5) a transação T2 já estará encerrada e a consulta de saldo resultará 1.500. Ex.2) Se em (1) a consulta do saldo da Conta X resultar 500 e em (4) ocorrer uma falha da transação T2, pode-se afirmar que: a) Em (3) a Consulta de Saldo resultará 1.500 b) Em (3) a Consulta de Saldo resultará 1.000 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 6/14 c) Em (5) a Consulta de Saldo resultará 1.000 d) Em (5) a Transação 2 também será cancelada e) Em (5) a Consulta de Saldo resultará 500 Resp e): Nos momentos (1), (2) e (3), em que a transação T1 está sendo executada, a transação T2 não tem acesso ao que a transação T1 está modificando (isolamento) e tem acesso de consulta aos dados conforme estavam antes do início de T1. Assim, em (3) a consulta de saldo será 500. Em (5) a transação T2 já estará encerrada de forma anormal, portanto todas as suas modificações serão desfeitas, e a consulta de saldo resultará 500. Exercício 1: São modelos de Sistemas Gerenciadores de Bancos de Dados: A) Modelo relacional, rede e hierárquico B) Modelo de rede, abstrato e referencial C) Modelo relacional, abstrato e referencial D) Modelo orientado a objetos, referencial e orientado a eventos E) Modelo orientado a objetos, de atributos e referencial O aluno respondeu e acertou. Alternativa(A) Comentários: 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 7/14 A) Exercício 2: Independência de dados é a característica do uso SGBD que permite que: A) A estrutura física dos dados possa ser alterada sem alterar o desempenho do banco de dados B) A estrutura dos dados no banco de dados possa ser alterada sem afetar programas ou sistemas que não utilizam a estrutura modificada C) A estrutura dos dados no banco de dados possa ser alterada sem afetar nenhum programa ou sistema, independentemente de usarem ou não a estrutura alterada D) Os programas alterem dados no banco de dados de forma independente entre si E) Os programas alterem dados no banco de dados de forma independente entre si O aluno respondeu e acertou. Alternativa(B) Comentários: B) Exercício 3: Considere as seguintes afirmações sobre as propriedades das transações de atualização de banco de dados: 1- A propriedade de Atomicidade das transações garante que uma transação ou será integralmente executada ou nenhum de seus comandos será executado. 2- A propriedade de Isolamento das transações garante que cada usuário atue sobre o banco de dados como se fosse um usuário único 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 8/14 3- A propriedade de Acessibilidade das transações garante que todos os dados do banco de dados podem ser acessados por todos os usuários a qualquer tempo Escolha a opção correta: A) Todas as afirmações são verdadeiras B) Todas as afirmações são falsas C) Somente a afirmação 2 é verdadeira D) Somente a afirmação 3 é falsa E) Somente a afirmação 1 é verdadeira O aluno respondeu e acertou. Alternativa(D) Comentários: D) Exercício 4: Considere um sistema bancário simplificado e a execução das transações T1 e T2 conforme o quadro abaixo Transação T1 Transação T2 1 Consulta Saldo Conta X 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 9/14 2 Grava Conta X com Saldo = Saldo + 500 3 Grava Conta X com Saldo = Saldo + 500 4 Encerra T1 5 Consulta Saldo Conta X 6 Encerra T2 Se em (1) a consulta do saldo da Conta X resultar 2.000, considere as seguintes afirmações sobre as transações T1 e T2: 1) Em (3) a Transação T2 será cancelada por tentar modificar o mesmo dado que a T1 2) Em (3) a Transação T2 entrará em espera da conclusão da Transação T1 3) Em (5) a Consulta de Saldo resultará 2.500 4) Em (5) a Consulta de Saldo resultará 3.000 Escolha a opção correta: A) Todas as afirmações são falsas B) Todas as afirmações são falsas C) Somente as afirmações 2 e 3 são verdadeiras D) Somente as afirmações 2 e 4 são verdadeiras 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 10/14 E) Somente a afirmação 1 é verdadeira O aluno respondeu e acertou. Alternativa(D) Comentários: D) Exercício 5: Uma das propriedades das transações executadas por um Sistema de Gerenciamento de Bancos de Dados é: A) Autenticação: os usuários do BD devem ser identificados antes do acesso B) Ativação: as transações devem ser ativadas antes de serem executadas C) Análise: as transações devem ser analisadas antes de executadas D) Atomicidade: a transação ou é executada inteiramente ou não é executada E) Anterior: todas as transações anteriores devem ser executadas O aluno respondeu e acertou. Alternativa(D) Comentários: D) 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 11/14 Exercício 6: Uma das propriedades das transações executadas por um Sistema de Gerenciamento de Bancos de Dados é: A) Concorrência: uma transação só pode ser executada em concorrência com outra transação B) Controle: uma transação controla a execução da próxima C) Consistência: a execução de uma transação (sem a execução concorrente de outra transação) preserva a consistência do banco de dados D) Corretude: as transações devem ser corrigidas antes de serem executadas E) Cooperação: as transações devem ser executadas em conjunto O aluno respondeu e acertou. Alternativa(C) Comentários: C) Exercício 7: Para assegurar a integridade dos dados, o SGBD deve garantir as seguintes propriedades das transações: A) Autenticação, concorrência, isolamento, durabilidade B) Ativação, controle, isolamento, durabilidade 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 12/14 C) Atomicidade, consistência, isolamento, durabilidade D) Análise, corretude, isolamento, durabilidade E) Anterior, cooperação, isolamento, durabilidade O aluno respondeu e acertou. Alternativa(C) Comentários: C) Exercício 8: Sobre as propriedades das transações, é INCORRETO afirmar que: A) A propriedade de Durabilidade garante que se a transação se completar com sucesso, todas as atualizações realizadas no banco de dados persistirão, até mesmo se houver falhas no sistema B) A propriedade de Atomicidade garante que ou toda a transação será executada com sucesso ou nenhum dos seus comandos será executado C) A propriedade de Isolamento garante que o resultado da execução concorrente de duas transações que alterem os mesmos dados no banco de dados seja diferente do resultado que seria obtido caso as transações fossem executadas em momentos diferentes D) As propriedades das transações asseguram a integridade dos dados E) 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 13/14 A propriedade de Consistência garante que após a conclusão de uma transação, independentemente de ter sido encerrada com sucesso ou tersido cancelada, o banco de dados estará em um estado de consistência O aluno respondeu e acertou. Alternativa(C) Comentários: C) Exercício 9: Analise as afirmações abaixo: I - Transação é uma unidade de execução de programa definida para garantir a integridade dos dados II - Uma transação, após ser iniciada, tem sempre que ser efetivada III - Uma transação pode estar em diferentes estados, inclusive cancelada Escolha a alternativa correta abaixo: A) Todas as afirmações apresentadas são verdadeiras B) Todas as afirmações apresentadas são falsas C) Apenas a afirmação I é verdadeira D) Apenas a afirmação II é falsa E) Apenas a afirmação III é falsa O aluno respondeu e acertou. Alternativa(D) Comentários: 10/11/2020 UNIP - Universidade Paulista : DisciplinaOnline - Sistemas de conteúdo online para Alunos. https://online.unip.br/imprimir/imprimirconteudo 14/14 D) Exercício 10: Analise as afirmações abaixo: I - Várias transações distintas podem estar em execução simultânea no sistema II - O controle de concorrência de um SGBD (Sistema Gerenciador de Banco de Dados) garante que nenhuma transação seja abortada durante sua execução III - Uma transação só se inicia quando as outras forem concluídas Escolha a alternativa correta abaixo: A) Todas as afirmações apresentadas são verdadeiras B) Todas as afirmações apresentadas são falsas C) Apenas a afirmação I é verdadeira D) Apenas a afirmação II é verdadeira E) Apenas a afirmação III é verdadeira O aluno respondeu e acertou. Alternativa(C) Comentários: E) B) A) D) C)