Banco de Dados - Senado Exercícios SGBD - CESPE Material preparado: Prof. Marcio Vitorino a) Quando uma regra de integridade referencial é violada, o procedimento normal a ser adotado é rejeitar a ação que ocasionou essa violação. b) Regras de datalog podem ser classificadas como sendo um tipo de gatilho (trigger) utilizado, geralmente, para o tratamento na definição de visões no banco de dados. c) Duas exigências devem ser satisfeitas para a definição de um mecanismo de gatilho: especificar as condições nas quais o gatilho deve ser executado; e especificar as ações que devem ser tomadas quando um gatilho for disparado. d) A execução de transações de maneira concorrente possibilita o surgimento de inconsistências dos dados armazenados em um banco de dados. A responsabilidade pela consistência dos dados é única e exclusiva do banco de dados, mais especificamente, do componente de controle de concorrência. Ilka Kawashita [email protected] 2 2 a) O protocolo de falha do coordenador é executado em um sistema de banco de dados distribuídos quando um nó participante do sistema, por alguma razão, não recebe uma resposta do coordenador do sistema por determinado período de tempo. b) Um dos problemas inerentes a uma arquitetura distribuída de banco de dados é o problema de tolerância a falhas, causado pelo fato de os dados estarem distribuídos entre os nós pertencentes ao banco distribuído. Entretanto, esse problema é resolvido mantendo-se uma cópia de cada dado pertencente ao banco em um único nó, conhecido como coordenador. c) Em um sistema de banco de dados distribuídos, a comunicação entre nós pertencentes ao sistema é feita de maneira não-transparente para o usuário do banco. Ilka Kawashita [email protected] 3 3 a)Na utilização de um banco de dados relacional, cabe exclusivamente ao sistema gerenciador de banco de dados (SGBD) o controle das restrições de integridade dos dados. b)A função do catálogo de um SGBD é a de armazenar os esquemas, ou descrições, das bases de dados que o SGBD mantém. c) Uma linguagem de definição de visões (view definition language) serve para especificar o modo como o usuário vê os dados e como essa visão é mapeada para o esquema conceitual da base de dados. Ilka Kawashita [email protected] 4 a) O administrador de dados tem capacidade para criar o esquema conceitual, depois que o DBA definir o projeto lógico contendo as definições conceituais do banco de dados como um todo. b) O catálogo do SGBD contém especificação de esquema, restrições de integridade, autorizações de acesso, visões, localização de arquivos do BD, configurações e estimativas. c) No controle de transações, é desnecessário que a atomicidade de cada transação tome conhecimento de outras transações concorrentes no sistema. d) Na criação de uma trigger, é necessária a ligação da constraints de integridade, para que o resultado obtido seja otimizado. Ilka Kawashita [email protected] 5 a) Um índice é um artifício usado para se encontrar, rapidamente, linhas (registros) com valores específicos. Sem um índice, o gerenciador precisará sempre procurar determinados valores da primeira até a última linha do banco de dados. Esse processo de busca, em tabelas muito grandes (com muitos registros), pode demandar elevado tempo e causar até mesmo perdas significativas de informação. b) Considerando uma variável de relação R, diz-se que K é uma chave candidata de R se ela apresentar as propriedades de unicidade e irredutibilidade. A primeira propriedade garante que não há duas tuplas de R com o mesmo valor de K. Já a segunda, que nenhum subconjunto de K apresenta a propriedade de unicidade. c) Consistência é considerada uma propriedade das transações para os sistemas de bancos de dados. Ilka Kawashita [email protected] 6 a) Um escalonamento é considerado correto quando se pode encontrar um escalonamento serial que seja equivalente a ele. Dado um conjunto de transações T1, ... ,Tn, dois escalonamentos S1 e S2 são equivalentes se existe sincronização read-write e sincronização write-write. b) No two-phase locking, os locks de dados supõem que a transação está dividida em uma fase de crescimento, na qual os locks são feitos, e em uma fase de encolhimento, na qual os locks são confirmados. c) As transações aninhadas devem ter a propriedade de ser serializáveis em relação aos seus pares, ou seja, o acesso a recursos compartilhados entre essas transações deve obedecer as regras de sincronização de read-write e write-write. Ilka Kawashita [email protected] 7 a) Na situação em questão, a transação T2 pode ver os writes incrementais de T1. Esse enfoque diminui a concorrência do sistema. b) Se, por alguma razão, a transação T1 for abortada, o requerimento de atomicidade implicará que também sejam abortadas as transações como T2, aquelas que igualmente tenham visto os resultados de T1, transações que tenham visto os writes dessas transações e assim por diante. Esse problema é conhecido como rollback em cascata. Ilka Kawashita [email protected] 8 1) No processamento de uma consulta expressa em uma linguagem de alto nível, como a SQL, o SGBD deve planejar uma estratégia de execução para recuperar o resultado da consulta, a partir dos arquivos do banco de dados. 2) Para o SGBD viabilizar a execução de transações concomitantemente existem diversas técnicas de controle de concorrência que são utilizadas para garantir propriedade de não-interferência ou isolamento de transações. Uma dessas técnicas é o controle de concorrência baseado em ordenamento de registro de timestamp que utiliza o bloqueio combinado com o Protocol Two-Phase locking (L). Ilka Kawashita [email protected] 9 Gabarito Material preparado: Prof. Marcio Vitorino a) C Quando uma regra de integridade referencial é violada, o procedimento normal a ser adotado é rejeitar a ação que ocasionou essa violação. b) E Regras de datalog podem ser classificadas como sendo um tipo de gatilho (trigger) utilizado, geralmente, para o tratamento na definição de visões no banco de dados. c) C Duas exigências devem ser satisfeitas para a definição de um mecanismo de gatilho: especificar as condições nas quais o gatilho deve ser executado; e especificar as ações que devem ser tomadas quando um gatilho for disparado. d) C A execução de transações de maneira concorrente possibilita o surgimento de inconsistências dos dados armazenados em um banco de dados. A responsabilidade pela consistência dos dados é única e exclusiva do banco de dados, mais especificamente, do componente de controle de concorrência. Ilka Kawashita [email protected] 11 11 C O protocolo de falha do coordenador é executado em um a) sistema de banco de dados distribuídos quando um nó participante do sistema, por alguma razão, não recebe uma resposta do coordenador do sistema por determinado período de tempo. b) E Um dos problemas inerentes a uma arquitetura distribuída de banco de dados é o problema de tolerância a falhas, causado pelo fato de os dados estarem distribuídos entre os nós pertencentes ao banco distribuído. Entretanto, esse problema é resolvido mantendo-se uma cópia de cada dado pertencente ao banco em um único nó, conhecido como coordenador. c) E Em um sistema de banco de dados distribuídos, a comunicação entre nós pertencentes ao sistema é feita de maneira não-transparente para o usuário do banco. Ilka Kawashita [email protected] 12 12 a)Na utilização de um banco de dados relacional, cabe exclusivamente ao sistema gerenciador de banco de E dados (SGBD) o controle das restrições de integridade dos dados. b)A função do catálogo de um SGBD é a de armazenar C os esquemas, ou descrições, das bases de dados que o SGBD mantém. c) Uma linguagem de definição de visões (view definition language) serve para especificar o modo C como o usuário vê os dados e como essa visão é mapeada para o esquema conceitual da base de dados. Ilka Kawashita [email protected] 13 a) O administrador de dados tem capacidade para criar o esquema conceitual, depois que o DBA definir o projeto E lógico contendo as definições conceituais do banco de dados como um todo. b) O catálogo do SGBD contém especificação de esquema, restrições de integridade, autorizações de acesso, visões, C localização de arquivos do BD, configurações e estimativas. c) No controle de transações, é desnecessário que a atomicidade de cada transação tome conhecimento de E outras transações concorrentes no sistema. d) Na criação de uma trigger, é necessária a ligação da constraints de integridade, para que o resultado obtido seja E otimizado. Ilka Kawashita [email protected] 14 a) Um índice é um artifício usado para se encontrar, rapidamente, linhas (registros) com valores específicos. Sem C um índice, o gerenciador precisará sempre procurar determinados valores da primeira até a última linha do banco de dados. Esse processo de busca, em tabelas muito grandes (com muitos registros), pode demandar elevado tempo e causar até mesmo perdas significativas de informação. b) Considerando uma variável de relação R, diz-se que K é uma chave candidata de R se ela apresentar as propriedades de C unicidade e irredutibilidade. A primeira propriedade garante que não há duas tuplas de R com o mesmo valor de K. Já a segunda, que nenhum subconjunto de K apresenta a propriedade de unicidade. c) Consistência é considerada uma propriedade das transações para os sistemas de bancos de dados. C Ilka Kawashita [email protected] 15 a) Um escalonamento é considerado correto quando se pode encontrar um escalonamento serial que seja equivalente a C ele. Dado um conjunto de transações T1, ... ,Tn, dois escalonamentos S1 e S2 são equivalentes se existe sincronização read-write e sincronização write-write. b) No two-phase locking, os locks de dados supõem que a transação está dividida em uma fase de crescimento, na qual C os locks são feitos, e em uma fase de encolhimento, na qual os locks são confirmados. c) As transações aninhadas devem ter a propriedade de ser serializáveis em relação aos seus pares, ou seja, o acesso a C recursos compartilhados entre essas transações deve obedecer as regras de sincronização de read-write e writewrite. Ilka Kawashita [email protected] 16 a) Na situação em questão, a transação T2 pode ver os writes incrementais de T1. Esse E enfoque diminui a concorrência do sistema. b) Se, por alguma razão, a transação T1 for bortada, o requerimento de atomicidade implicará que também sejam abortadas as transações como C T2, aquelas que igualmente tenham visto os resultados de T1, transações que tenham visto os writes dessas transações e assim por diante. Esse problema é conhecido como rollback em cascata. Ilka Kawashita [email protected] 17 1) C No processamento de uma consulta expressa em uma linguagem de alto nível, como a SQL, o SGBD deve planejar uma estratégia de execução para recuperar o resultado da consulta, a partir dos arquivos do banco de dados. E Para o SGBD viabilizar a execução de transações 2) concomitantemente existem diversas técnicas de controle de concorrência que são utilizadas para garantir propriedade de não-interferência ou isolamento de transações. Uma dessas técnicas é o controle de concorrência baseado em ordenamento de registro de timestamp que utiliza o bloqueio combinado com o Protocol Two-Phase locking (L). Ilka Kawashita [email protected] 18