220 likes | 337 Views
Bases de Dados. Aula 3 Requisitos dos SGBD. Requisitos dos SGBD. Fundamentais: Segurança Integridade Controle da Concorrência Recuperação/Tolerância a falhas. Requisitos dos SGBD Segurança. Objectivo:
E N D
Bases de Dados Aula 3 Requisitos dos SGBD
Requisitos dos SGBD Fundamentais: • Segurança • Integridade • Controle da Concorrência • Recuperação/Tolerância a falhas
Requisitos dos SGBDSegurança Objectivo: • Proteger os dados de acessos não autorizados, garantindo que apenas os utilizadores autorizados acedem ao sistema de acordo com os privilégios definidos; Segurança Física - no passado implicava o fastamento físico das pessoas não autorizadas; hoje com a dispersão dos meios informáticos este tipo de segurança é infrutífera
Requisitos dos SGBDSegurança Segurança Lógica • Definição de quem tem acesso, mas também a que é que se tem acesso, através do que se designa a definição do perfil do utilizador; • Este perfil permite igualmente definir as views a que cada tipo de utilizador terá acesso; • Muitas vezes é utilizada a encriptação dos dados, o que sobrecarrega o sistema, que tem de proceder a encriptação/desencriptação em cada acesso
Requisitos dos SGBDIntegridade Garantia de que todos os dados contidos na Base de Dados são válidos e não contradizem a realidade; • A manutenção de integridade pressupõe proteger a Base de Dados de acessos menos válidos, impedindo os utilizadores menos autorizados de executar operações que ponham em risco a integridade (correcção) dos dados armazenados;
Requisitos dos SGBDIntegridade • Durante a sua existência uma Base de Dados vai evoluindo ao longo de estados de integridade; • Cada transacção (conceito posteriormente explicado) que envolva modificação do conteúdo da Base de Dados (inserção, alteração ou remoção de dados) e que seja finalizada com sucesso, faz passar a BD de um estado de integridade para outro estado de integridade;
Tempo Sucessivos estados da evolução de uma Base de Dados
Requisitos dos SGBDIntegridade • Para que a integridade não seja afectada, as actualizações estão dependentes de um conjunto de regras, designadas por restrições de integridades (rules), que definem o que é ou não válido; • Ex. de restrições • Um aluno não pode estar matriculado em mais do que um curso; • O preço de venda ao público tem de ser superior ao preço de custo;
Requisitos dos SGBDIntegridade As restrições de integridade podem ser: • Implícitas - próprias de cada modelo de Base de Dados; • Explícitas - impostas pela realidade modelada pela Base de Dados; podem-se subdividir em: • Estáticas - estabelecem restrições de validade entre estados (Ex: um aluno é aprovado com nota superior a 9 valores); • Dinâmicas - definem as transições de estado permitidas (Ex: o salário de um funcionário não pode decrescer);
Requisito dos SGBDControlo da Concorrência Sendo um dos pressupostos fundamentais dos Sistemas de Bases de Dados a partilha dos dados pelo nível aplicacional, nomeadamente em sistemas multi-utilizador, é importante garantir que cada aplicação ou utilizador, utilize o sistema como se fosse o único, evitando a ocorrência de conflitos entre transacções simultâneas. Nestes sistemas existem 2 formas de execução de transacções :
Requisito dos SGBDControlo da Concorrência • Execução em série - as transacções são executadas sequencialmente, só se iniciando uma quando a anterior tiver finalizado. Não existe concorrência, mas o desempenho do sistema é baixo; • Execução concorrente - as várias transacções são executas concorrentemente, sendo no entanto necessário garantir que p resultado é o mesmo que se obteria se as mesmas tivessem sido executadas sequencialmente. Assim é possível obter ganhos em termos dos tempos de execução
Requisito dos SGBDControlo da Concorrência • A execução concorrente de transacções sem qualquer coordenação pode originar resultados incorrectos: • lost update • dirty read • A coordenação da concorrência pode ser efectudada por:
Requisito dos SGBDControlo da Concorrência • Escalonamento (schedule) - sequência por que são executadas as operações de leitura/escrita de um conjunto de transacções concorrentes; • Para um conjunto de transacções existem vários escalonamentos possíveis, conduzindo uns a base a estados de integridade, mas podendo outros originar resultados incorrectos; • Para testar um escalonamento utilizam-se grafos de precedências, que são representações gráficas das dependências entre transacções,
Requisito dos SGBDControlo da Concorrência (E,n) Ti Tj Nodo Ti O elemento E da Base de Dados foi acedido pela transacção Ti e posteriormente pela transacção Tj. Se uma das transacções criar uma nova versão do elemento E há uma dependência I/O entre as duas transacções Arco Orientado
Requisito dos SGBDControlo da Concorrência • Os escalonamentos que podem originar problemas (lost update, dirty read, etc.), são representados por grafos de dependências com ciclos, o que mostra que esses escalonamentos não são seriados. Ti Ti
Requisito dos SGBDMétodos de Controlo da Concorrência • Locking • Etiquetagem • Optimistas Os 2 primeiros são métodos preventivos, que visam permitir a execução concorrente das transacções até onde for possível, evitando que estas interfiram entre si.
Requisito dos SGBDMétodos de Controlo da Concorrência Os métodos optimistas baseiam-se na ideia de que as interferências entre transacções são raras, pelo que não se justificará sobrecarregar o sistema com tarefas de gestão e sincronização das transacções; Nestes métodos as operações são realizadas sobre cópias dos dados e não sobre estes. As transacções processam-se livremente e a cada transacção associam-se 2 conjuntos (read-set e write-set) correspondentes a todas as actualizações efectuadas nos dados. No final existe um processo de certificação, que compara os read-set e os write-set das transacções concorrentes. Cajo não haja interferência as transacções podem finalizar e os dados são actualizados. Se houver interferência é efectuado um rollback e o processo reinicializa-se.
Requisito dos SGBDMétodos de Controlo da Concorrência Os métodos optimistas só são viáveis em sistemas em que as interferências entre transacções são, de facto, raras. Caso contrário o sistema acabará por ser sobre arregado com o constante desfazer e reiniciar das transacções; Nos métodos de etiquetagem há controlo da concorrência ao longo do decurso de cada transacção. Quando uma transacção se inicia recebe uma etiqueta com o número de ordem de chegada ao sistema e, durante a sua execução, marca cada elemento de dados a que acede, para leitura ou escrita, com a sua etiqueta.
Requisito dos SGBDMétodos de Controlo da Concorrência Os problemas só poderão surgir quando uma transacção tenta aceder a um elemento que já foi acedido por uma transacção que se iniciou mais tarde, ou seja, com uma etiqueta de valor superior. Neste caso esta última é desfeita e iniciada novamente. Este método permite uma maior precisão do controlo de concorrência através de refinamentos, como a utilização de etiquetas de leitura e etiquetas de escrita.
Requisito dos SGBDMétodos de Controlo da Concorrência De todos os métodos de controlo de concorrência os mais usados são os que usam mecanismos de locking. Os mais elementares usam locking binário e em cada momento, o lock de cada elemento da BD poderá assumir os valores 0( unlocked) ou 1(locked). Se o valor de lock de um elemento for 1 (locked) isso significa que não pode ser acedido e qualquer transacção que o deseje aceder terá de esperar que o lock passe a 0; Embora seja um tipo de acesso seguro, têm a desvantagem de só permitir acessos exclusivos, permitindo assim um baixo nível de concorrência. Os refinamentos existem através da utilização de locked para escrita (wlock) ou de leitura (rlock), além do unlock.
Requisito dos SGBDMétodos de Controlo da Concorrência A utilização de mecanismos de locking pode trazer, também, alguns problemas. É o caso do deadlock, em que os locks de duas transacções as bloqueiam mutuamente, impedindoas de progredir. Para evitar este tipo de problemas são definidas regras que definem claramente qm que condições uma transacção pode manter os seus locks.