Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

trabalho banco de dados II, Trabalhos de Informática

banco de dados 2

Tipologia: Trabalhos

2015

Compartilhado em 19/06/2015

adriano-oliveira-53
adriano-oliveira-53 🇧🇷

1

(1)

1 documento

1 / 15

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
xj
INSTITUTO DE ENSINO E PESQUISA DO PLANALTO CENTRAL
SISTEMAS DE INFORMAÇÃO 6º PERÍODO
Adriano Oliveira Fernandes
Luana da Silva Fernandes
Lucas Morais Amaro
Ilsomar Nunes Da Silva
Rodney
Rodrigo
Banco de dados II
Profº: Fernando Costa
Águas Lindas de Goiás GO, 2015.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe trabalho banco de dados II e outras Trabalhos em PDF para Informática, somente na Docsity!

xj

INSTITUTO DE ENSINO E PESQUISA DO PLANALTO CENTRAL

SISTEMAS DE INFORMAÇÃO – 6º PERÍODO

Adriano Oliveira Fernandes

Luana da Silva Fernandes

Lucas Morais Amaro

Ilsomar Nunes Da Silva

Rodney

Rodrigo

Banco de dados II

Profº: Fernando Costa

Águas Lindas de Goiás – GO, 2015.

Banco de dados

Bancos de dados (português^ brasileiro)^ ou bases de dados (português^ europeu)^ são coleções organizadas de dados que se relacionam de forma a criar algum sentido (Informação) e dar mais eficiência durante uma pesquisa ou estudo.^1 São de vital importância para empresas e há duas décadas se tornaram a principal peça dos sistemas de informação. Normalmente existem por vários anos sem alterações em sua estrutura.

São operados pelos Sistemas Gerenciadores de Bancos de Dados ( SGBD ), que surgiram na década de 70. Antes destes, as aplicações usavam sistemas de arquivos do sistema operacional para armazenar suas informações. Na década de 80, a tecnologia de SGBD relacional passou a dominar o mercado, e atualmente utiliza-se praticamente apenas ela. Outro tipo notável é o SGBD Orientado a Objetos, para quando sua estrutura ou as aplicações que o utilizam mudam constantemente.

A principal aplicação de Banco de Dados é controle de operações empresariais. Outra aplicação também importante é gerenciamento de informações de estudos, como fazem os Bancos de Dados Geográficos, que unem informações convencionais com espaciais.^1

Modelos de base de dados

Composição de cinco modelos de banco de dados.

Existem vários Modelos de Base de Dados: Modelo Plano, Modelo em Rede, Modelo Hierárquico,Modelo Relacional, Orientado a objetos, e Objeto-Relacional.

 O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de dados: inteiros, números reais, etc. Este modelo plano é a base das planilhas eletrônicas.

 O modelo em rede permite que várias tabelas sejam usadas simultaneamente através do uso de apontadores (ou referências). Algumas colunas contêm apontadores para outras tabelas ao invés de dados. Assim, as tabelas são ligadas por referências, o que pode ser visto como uma rede.

É um conjunto de procedimentos que é executado num banco de dados, que para o usuário é visto como uma única ação.

A integridade de uma transação depende de 4 propriedades, conhecidas como ACID.

 Atomicidade  Todas as ações que compõem a unidade de trabalho da transação devem ser concluídas com sucesso, para que seja efetivada. Se durante a transação qualquer ação que constitui unidade de trabalho falhar, a transação inteira deve ser desfeita (rollback). Quando todas as ações são efetuadas com sucesso, a transação pode ser efetivada e persistida em banco (commit).  Consistência  Todas as regras e restrições definidas no banco de dados devem ser obedecidas. Relacionamentos por chaves estrangeiras, checagem de valores para campos restritos ou únicos devem ser obedecidos para que uma transação possa ser completada com sucesso.  Isolamento  Cada transação funciona completamente à parte de outras estações. Todas as operações são parte de uma transação única. O principio é que nenhuma outra transação, operando no mesmo sistema, possa interferir no funcionamento da transação corrente(é um mecanismo de controle). Outras transações não podem visualizar os resultados parciais das operações de uma transação em andamento (ainda em respeito à propriedade da atomicidade).  Durabilidade  Significa que os resultados de uma transação são permanentes e podem ser desfeitos somente por uma transação subseqüente.Por exemplo: todos os dados e status relativos a uma transação devem ser armazenados num repositório permanente, não sendo passíveis de falha por uma falha de hardware.

Controle de Concorrência

Controle de concorrência é um método usado para garantir que as transações sejam executadas de uma forma segura e sigam as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ação de transações completadas com sucesso ( committed transactions ) seja perdida ao desfazer transações abortadas ( rollback ).

Uma transação é uma unidade que preserva consistência. Requeremos, portanto, que qualquer escalonamento produzido ao se processar um conjunto de transações concorrentemente seja computacionalmente equivalente a um escalonamento produzido executando essas transações serialmente em alguma ordem. Diz-se que um sistema que garante esta propriedade assegura a seriabilidade ou também serialização^12.

Segurança em banco de dados

Os bancos de dados são utilizados para armazenar diversos tipos de informações, desde dados sobre uma conta de e-mail até dados importantes da Receita Federal. A segurança do banco de dados herda as mesmas dificuldades que a segurança da informação enfrenta, que é garantir a integridade, a disponibilidade e a confidencialidade. Um Sistema gerenciador de banco de dados deve fornecer mecanismos que auxiliem nesta tarefa.

Uma forma comum de ataque à segurança do banco de dados, é a injeção de SQL, em bancos de dados que façam uso desta linguagem, mas bancos de dadosNoSQL também podem ser vítimas. Para evitar estes ataques, o desenvolvedor de aplicações deve garantir que nenhuma entrada possa alterar a estrutura da consulta enviada ao sistema.

Os bancos de dados SQL implementam mecanismos que restringem ou permitem acessos aos dados de acordo com papeis ou roles fornecidos pelo administrador. O comando GRANT concede privilégios específicos para um objeto (tabela, visão, banco de dados, função, linguagem procedural, esquema ou espaço de tabelas) para um ou mais usuários ou grupos de usuários.^13

Recuperação de bancos de dados

Existem alguns mecanismos capazes de permitir a recuperação de um banco de dados de alguma inconsistência causada por falhas internas (erros de consistência, como recuperação de um estado anterior à uma transação que deu erro) e externas (queda de energia, catástrofe ambiental).^12.

Os mecanismos mais comuns são o Log de dados, no qual é usado em conjunto dos outros métodos; utilização de Buffer no qual, apesar de normalmente ser feito pelo próprio sistema operacional, é controle por rotinas de baixo nível pelo Sistema de gerenciamento de banco de dados. Possui também o as possibilidades deen:Write-ahead logging e informações das transações possibilitando o REDO (refazer) e o UNDO (desfazer), assim sempre possibilitando a volta do banco de dados à um estado anterior consistente, além de cópias de sombra dos logs e dos últimos dados alterados do banco de dados.

Funções internas comuns em BDs

 Tabelas  Regras  Procedimentos armazenados (mais conhecidos como stored procedures)  Gatilho  Default  Visão  Índice  Generalizadores

A transação lê novamente dados lidos anteriormente, e descobre que os dados foram alterados por outra transação (que os efetivou após ter sido feita a leitura anterior). [2]  phantom read (leitura fantasma) A transação executa uma segunda vez uma consulta que retorna um conjunto de linhas que satisfazem uma determinada condição de procura, e descobre que o conjunto de linhas que satisfazem a condição é diferente por causa de uma outra transação efetivada recentemente. Os quatro níveis de isolamento de transação, e seus comportamentos correspondentes, estão descritos na tabela abaixo:

Níveis de isolamento da transação no SQL

Nível de isolamento Dirty Read Nonrepeatable Read Phantom Read

Read uncommitted Possível Possível Possível

Read committed Impossível Possível Possível

Repeatable read Impossível Impossível Possível

Serializable Impossível Impossível Impossível

Controle de concorrência entre transações em bancos de dados

Figura 1: Controle de transações em bancos de dados

Qualquer banco de dados que seja utilizado por mais de um usuário, terá que administrar o controle de concorrência entre as informações que estão sendo acessadas pelos usuários. Controle de concorrência é quando, em um banco de dados, usuários distintos tentam acessar a mesma informação e então é feito um controle entre essas transações. E para a solução deste problema existem diversas técnicas de controle de concorrência que são utilizadas como forma de assegurar a propriedade de não interferência entre uma operação e outra, ou o isolamento das transações executadas ao mesmo tempo. Grande parte dessas técnicas garante a serialização, que é a execução das transações de forma serial. Para isso, é necessário saber que transações são todas as operações executadas entre o início e o fim da transação, e para gerenciar as transações é necessário conhecer as propriedades comumente chamadas de ACID (acrônimo de Atomicidade, Consistência, Isolamento e Durabilidade) que devem ser usadas pelos métodos de controle de concorrência e recuperação do SGBD:

 A Atomicidade é o princípio de que uma transação é uma unidade de processamento atômica, ou seja, a transação deve ser realizada por completo ou ela não deve ser realizada de forma alguma. Caso haja alguma falha durante a transação, os efeitos parciais desta transação no banco devem ser desfeitos. Para que essa transação onde teve a falha seja desfeita, é necessário que o banco de dados emita o comando que desfaça tal transação, garantindo assim a integridade do banco.  A preservação da Consistência permite que uma transação seja executada desde o início até o fim sem que haja a interferência de outras transações durante sua execução, ou seja, é a execução de uma transação isolada, levando o banco de um estado consistente para outro.  O Isolamento garante que uma transação possa parecer isoladamente de outras transações, mesmo tendo várias transações sendo executadas simultaneamente, o sistema irá dar garantias de que, para cada conjunto de transações, uma transação seja encerrada antes do início da outra, ou seja, a execução de uma

compartilhado de um item de dado, logo em seguida a transação B faz uma requisição de bloqueio exclusivo do mesmo item de dado, como a transação A está usando o bloqueio compartilhado do item, logo a transação B não poderá deter o acesso, o que faz com que ela fique na fila de espera, até a liberação do mesmo. Enquanto a transação B está na fila, chega a transação C com o pedido de compartilhamento do mesmo item, como é possível fazer o compartilhamento do item que A está usando, então, a transação C passa na frente de B e consegue o compartilhamento do item de dado da transação A. Quando a transação A terminar de desocupar, o item de dado continuará ocupado pela transação C, enquanto isso, a transação B continuará aguardando a liberação total do item de dado para que ela possa fazer o bloqueio exclusivo. Caso as próximas transações sejam sempre de acesso compartilhado deste mesmo item, a transação B nunca conseguirá fazer um progresso, e então, ela é considerada estagnada.

Teoria do processamento das transações em banco de dados

Uma transação e um unidade logica de processamento em um banco de dados, incluindo duas ou mais operações em um banco de dados que devem obrigatoriamente ocorre para que toda a unidade tenha suas motificações estabelecidas de forma permanente.se uma transação apenas recupera dados e chamada de transação de somente leitura ,senão, a transação e chamada de transação de leitura-gravação.

E importante estabelecer um controle de execução das transações,pois quando transações simultâneas ocorrem, diversos problemas podem ocorrer, assim diversos mecanismos e ferramentas são mantidos por um SGBD para garantir que as transações ocorram de forma eficiente.

ACID

Os modelos de ocorrência e controle de um SGBD deve garantir que as transações adequada as propriedade ACID:

 Atomicidade: a transação deve ocorrer de forma integral.  Consistência: se a transação for completada.deve levar o banco de dados de um estado consistente para outro estado consistente.  Isolamento: uma transação não deve sofre interferência de outras transações.  Durabilidade: as mudanças provocadas por uma transação concluída devem permitir no banco de dados.

Modelo de estudo para transações.

Utilizaremos um conceito simples para estudos o processamento de transações. Consideraremos uma item de dados qualquer elemento de um BD que utilizaremos

como unidade, este item pode variar de um bloco de disco,passando por um registro ,ate um atributo de um registro.cada item terá um nome especifico e chamamos de BD a um conjunto de itens nomeados.

As operações básicas de acessos ao BD,neste modelo são.

Red-item(nome):le um item do banco de dados com um determinado nome para uma variável de programa.

Write-item(nome): grava o valor de uma variável de programa no item do banco de dados como um nome determindo.

Log de sistema

Para poder recuperar-se de falhas que afetam transações SGBDs mantem um log para registrar todas as operações de transações que manipulam dos dados e outras informações que permitem recuperar informações da transação caso ocorra alguma falha .o log e um arquivo sequencial,apenas de inserção mantido no disco, independente das falhas de banco de dados.quanddo transações são executadas .o log armazena:

Start_transaction,nome]: indica que uma transação “nome” iniciou a execução.

[ write_item ,nome ,valor_antigo, valor_novo]: indica a transação “nome”modificou o valor antigo pela valor novo.

[read_item,nome item]: indica que a transação “nome” leu o valor de “nome ”item no banco de dados.

[ commit,nome]: indica que a transação “nome” foi comcluida com sucesso e seus efeitos podem ser tornados permanentes no banco.

[abort, nome]: indica que a transação “nome” foi abortada.

Schedule

Quando duas ou mais transações estão ocorrendo de forma concorrente,deve ser definida uma ordem de execução.

Esta ordenação de operações e conhecida como schedule.

Dizemos que duas operações estão em comflito se eslas pertencem a diferentes transações, acessam um mesmo item e pelo menos,uma operações e write_item.

P.ex.

Transação 1 transação 2

Para escolher o modelo de recuperação ideal para um determinado banco de dados, você deve considerar as metas de recuperação e os requisitos para o banco de dados e se você pode gerenciar backups de log. Identificando metas e requisitos de recuperação Para selecionar o melhor modelo de recuperação, considere as metas e os requisitos de recuperação do banco de dados. Responder às seguintes perguntas pode ajudar a determinar os requisitos de disponibilidade e a sensibilidade à perda de dados.

Requisitos de recuperação

 Qual a importância de nunca perder uma alteração?  Seria fácil recriar dados perdidos?  Você tem dois ou mais bancos de dados que devem ser logicamente consistentes? Se isso for verdadeiro, considere o uso de transações do MS DTC (Coordenador de Transações Distribuídas da Microsoft). Para obter mais informações, consulte Transações distribuídas MS DTC.

Observações

No modelo de recuperação completa, se as transações foram marcadas em cada um dos bancos de dados relacionados, você poderá recuperar o banco de dados até um ponto consistente. Isso exige a restauração de cada um dos bancos de dados com a mesma marca de transação do ponto de recuperação. Porém, usar uma marca para um ponto de recuperação acarreta perda de qualquer transação confirmada depois desse ponto. Para obter mais informações, consulte Usando transações marcadas (modelo de recuperação completa)

Considerações sobre pessoal

Sua organização usa administradores de sistema ou de banco de dados? Caso não use, quem será responsável pela execução de operações de backup e recuperação, e como os indivíduos serão treinados?

Padrões de uso de Dados

Para cada banco de dados, considere as seguintes perguntas:  Com que freqüência são alterados os dados no banco de dados?  Algumas tabelas são modificadas significativamente com mais freqüência que outras?  Há períodos de produção críticos? Se houver, quais serão os padrões de uso durante esses períodos? O banco de dados tem períodos de pico para inserção e outras operações de atualização? É aconselhável programar os backups de dados para horas de pouca atividade. Quando o sistema de E/S está em pleno uso, geralmente só devem ser usados backups de log.  O banco de dados está sujeito a atualizações arriscadas ou erros de aplicativo que podem não ser detectados imediatamente?

Em caso positivo, considere usar o modelo de recuperação completa. Isso permite usar backups de log para recuperar o banco de dados a um point-in-time específico. Quando usar o modelo de recuperação simples Use o modelo de recuperação simples se o seguinte for verdadeiro:  A recuperação de ponto de falha não é necessária. Se o banco de dados for perdido ou danificado, você estará propenso a perder todas as atualizações entre a falha e o backup anterior.  Você está disposto a arriscar a perda de alguns dados no log.  Você não quer fazer backup e restaurar o log de transações, preferindo confiar exclusivamente nos backups diferenciais e completos. Para obter mais informações, consulte Backup com o modelo de recuperação simples. Quando usar o modelo de recuperação completa Use o modelo de recuperação completa e, opcionalmente, também o modelo de recuperação bulk-logged se qualquer uma das seguintes condições for verdadeira:  Você deve ser capaz de recuperar todos os dados.  Se o banco de dados contiver diversos grupos de arquivos, e você quiser a restauração por etapas de grupos de arquivos secundários de leitura/gravação e, opcionalmente, grupos de arquivos somente leitura.  Você deve ser capaz de recuperar até o ponto de falha.  Você quer fazer a restauração de páginas individuais.  Você está disposto a incorrer em despesas administrativas de backups de log de transações. Para obter mais informações, consulte Backup com o modelo de recuperação completa. Quando usar o modelo de recuperação bulk-logged O modelo de recuperação bulk-logged é estritamente planejado como um suplemento para o modelo de recuperação completa. Recomendamos que você só o utilize durante períodos em que esteja executando grandes operações em massa, nas quais não é necessária uma recuperação pontual do banco de dados.  O banco de dados está sujeito a operações em massa periódicas no banco de dados? Nesse modelo de recuperação, a maioria das operações em massa é minimamente registrada. Se você usar o modelo de recuperação completa, você poderá alternar temporariamente para o modelo de recuperação bulk-logged antes de executar tais operações em massa. Para obter mais informações sobre quais operações são registradas de forma mínima no modelo de recuperação bulk-logged, consulte Operações que podem ser minimamente registradas em log. Geralmente, o modelo de recuperação bulk-logged se assemelha ao modelo de recuperação completa, a não ser por registrar minimamente a maioria das operações em massa. Uma transação de backup de log capta o log e também os resultados de qualquer operação minimamente registrada concluída desde o último backup. Isso pode tornar os backups de log muito grandes. Portanto, o modelo de recuperação bulk-logged só se destina ao uso durante operações em massa que permitem registro mínimo. Recomendamos que você use o modelo de recuperação completa no restante do tempo. Assim que um conjunto de operações em massa terminar, recomendamos que você alterne imediatamente para o modelo de recuperação completa. Para obter mais informações sobre o modelo de recuperação bulk-logged, inclusive suas restrições, consulte Backup no modelo de recuperação com log de operações em massa.