Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 CURSO CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: BANCO DE DADOS I TEMA 3: - SISTEMA GERENCIADOR DE BANCO DE DADOS (SGBD) TEXTO PARA APOIO AO ESTUDO PRINCIPAIS CARACTERÍSTICAS DE UM BANCO DE DADOS Natureza de autodescrição de um sistema de BD • sistema de banco de dados contém definição completa de sua estrutura e restrições. • Metadados: descrevem as estruturas do banco de dados. • catálogo é usado pelos usuários do banco de dados que precisam de informações sobre a estrutura do banco de dados. Independência de dados do programa • A estrutura dos arquivos de dados é armazenada no catálogo do SGBD separadamente dos programas de acesso (cliente). 2 Suporte para múltiplas visões dos dados • Visão inclui um subconjunto do banco de dados, contendo dados virtuais derivados dos arquivos do banco de dados, mas que não estão armazenados da forma que são visualizados. Compartilhamento de dados e processamento de transação multiusuário • Permite que múltiplos usuários acessem o banco de dados ao mesmo tempo. • O compartilhamento significa não apenas que as aplicações existentes podem compartilhar os dados do banco de dados, mas também que podem ser desenvolvidas novas aplicações para operar sobre os mesmos dados. • Software de controle de concorrência garante que vários usuários tentando atualizar o mesmo dado faça isso de uma maneira controlada e o resultado dessas atualizações seja correto. Compartilhamento de dados e processamento de transação multiusuário • Uma transação é uma unidade lógica de trabalho de banco de dados, em geral envolvendo diversas operações de banco de dados - em particular, várias operações de atualização. • Propriedade de isolamento: o Cada transação parece executar isoladamente das outras transações. • Propriedade de atomicidade: o Todas as operações em uma transação são executadas ou nenhuma será. • Exemplo: ▪ O exemplo padrão envolve a transferência de uma quantia de dinheiro de uma conta A para outra conta B. 3 ▪ É claro que são exigidas duas atualizações nesse caso, (1) uma para retirar o dinheiro da conta A, e (2) outra para depositá-lo na conta B. ▪ Se o usuário declarar que as duas atualizações são parte da mesma transação, então o sistema poderá efetivamente garantir que ambas serão realizadas ou nenhuma delas - ainda que, por exemplo, o sistema venha a falhar (digamos, devido a uma queda de energia) em meio ao processo. Controle de Redundância • A redundância nos dados armazenados gera um desperdício no espaço de armazenamento. • Às vezes, há motivos comerciais ou técnicos plausíveis para manter cópia(s) distinta(s) do(s) dados. • Porém, sugere-se que toda redundância deve ser cuidadosamente controlada; isto é, o SGBD deve estar ciente dela (caso exista) e deve assumir a responsabilidade pela "propagação de atualizações". Manutenção da Integridade • O problema da integridade é o problema de assegurar que os dados no banco de dados estão corretos. 4 • A inconsistência entre duas entradas que deveriam representar o mesmo "fato" é um exemplo de falta de integridade (redundância). • Contudo, mesmo que não haja qualquer redundância, o banco de dados ainda poderá conter informações incorretas. • Por exemplo, um empregado poderia ser mostrado como tendo trabalhado 400 horas na semana em vez de 40, ou como pertencendo a um departamento que não existe. • Sem a existência de controles apropriados, seria possível um usuário atualizar o banco de dados de forma incorreta, gerando assim dados errados. Reforço na Segurança • Tendo jurisdição completa sobre o banco de dados, o DBA pode assegurar que o único meio de acesso ao banco de dados seja através dos canais apropriados e, em consequência, pode definir restrições de segurança a serem verificadas sempre que houver uma tentativa de acesso a dados. • Podem ser estabelecidas diferentes restrições para cada tipo de acesso (busca, inserção, exclusão etc.) a cada item de informação no banco de dados. • A natureza centralizada de um sistema de banco de dados de certo modo exige que um bom sistema de segurança seja implantado. Requisitos contraditórios podem ser equilibrados • Conhecendo os requisitos globais da empresa, em oposição aos requisitos de usuários individuais, o DBA (mais uma vez sob a orientação do AD) pode estruturar o sistema de modo a oferecer um serviço global que seja "o melhor para a empresa". • Por exemplo, pode ser escolhida uma representação física para os dados no meio de armazenamento que proporcione acesso rápido para as aplicações 5 mais importantes (possivelmente ao custo de acesso mais lento para outras aplicações). Os padrões podem ser impostos • Com o controle central do banco de dados, o DBA (sob orientação do AD) pode garantir que todos os padrões aplicáveis sejam observados na representação dos dados, tais como padrões departamentais, da instalação, da empresa, etc. • Da mesma forma, os padrões de nomenclatura e documentação de dados também são muito desejáveis como auxílio ao compartilhamento e à compreensão dos dados. SGBD O Sistema Gerenciador de Banco de Dados (SGBD) é o software que trata de todo o acesso ao banco de dados (Date). Principais funções Definição de dados • O SGBD deve ser capaz de aceitar definições de dados, o que inclui esquemas externos, o esquema conceitual, o esquema interno e todos os mapeamentos associados. Manipulação de dados • O SGBD deve ser capaz de lidar com requisições do usuário para buscar, atualizar ou excluir dados existentes no banco de dados, ou para acrescentar novos dados ao banco de dados - CRUD. • Em outras palavras, o SGBD deve incluir um componente processador de DML ou compilador de DML para lidar com a linguagem de manipulação de dados (DML - Data Manipulation Language). 6 • Em geral, as requisições de DML podem ser "planejadas" ou "nãoplanejadas“. Manipulação de dados • Requisição planejada é aquela para a qual a necessidade foi prevista com bastante antecedência em relação ao momento em que a requisição é executada. O DBA provavelmente terá ajustado, o projeto de banco de dados físico de modo a garantir um bom desempenho para requisições planejadas. • Requisição não-planejada é uma consulta ad hoc, isto é, uma requisição cuja necessidade não foi prevista com antecedência mas, em vez disso, surgiu na última hora, sendo características de aplicações para apoio à decisão. • As requisições planejadas em geral serão emitidas a partir de programas de aplicação escritos com antecedência, enquanto as requisições não-planejadas serão, por definição, emitidas de modo interativo por meio de algum processador de linguagem de consulta. Otimização e execução • As requisições de DML, planejadas ou não-planejadas, devem ser processadas pelo componente otimizador, cuja finalidade é determinar um modo eficiente de implementar a requisição. • As requisições otimizadas são executadas sob o controle do gerenciador em tempo de execução (run time). Dicionário de dados. • O dicionário de dados pode ser considerado um banco de dados isolado (mas um banco de dados do sistema, não um de dados banco de dados do usuário). • Contém "dados sobre os dados" (também chamados metadados ou descritores) - ou seja, definições de outros objetos do sistema, em vez de somente "dados crus". 7 • Todos os vários esquemas e mapeamentos (externos, conceituais etc.) e todas as diversas restrições de segurança e integridade estarão armazenados no dicionário. Controle de Redundância • Problemas com a redundância: ▪ duplicação de esforço para manter os dados atualizados; ▪ desperdício de espaço de armazenamento; ▪ possibilidade de inconsistência dos dados. Compartilhamento de Dados • Sistemas multiusuários incluem controle de Acesso • Subsistema de segurança e autorização.• Mecanismos usuais de controle de acesso: ▪ senhas para usuários e para grupos de usuários; ▪ restrição de acesso a parte do banco de dados; ▪ proibição de executar certas operações, por exemplo atualização; ▪ acesso de usuários paramétricos restrito apenas a transações “enlatadas”; ▪ proibição de uso de software privilegiado, a ex. do software de criação de contas. Persistência para Objetos e Estruturas de Dados • Capacidade dos Banco de Dados de se integrarem a linguagens de programação de alto nível de forma a permitir que as estruturas criadas pelas LPs fiquem armazenadas definitivamente no BD. 8 Inferência através de Regras de Dedução • Capacidade de permitir a definição de regras no SGBD que permitam deduzir novas informações a partir dos fatos armazenados. • Regras: ▪ jovens são todos aqueles que têm entre 18 e 29 anos. ▪ carioca: cidadão natural do RJ. ▪ engenheiros: todo aquele que tem diploma de curso de Engenharia. ▪ Consulta: ▪ Quais os jovens cariocas que são engenheiros? Múltiplas Interfaces • Um SGBD deve prover uma variedade de interfaces de usuário. • Tipos de interfaces: ▪ linguagens de consulta para usuários casuais; ▪ linguagens de programação para programadores de aplicações; ▪ formulários (telas) para usuários paramétricos. Representação de Relacionamentos • O SGBD deve ter a capacidade de representar uma variedade de relacionamentos complexos entre os dados, bem como recuperar e atualizar dados relacionados de uma maneira fácil e eficiente. Cumprimento das Restrições de Integridade • Restrições: forma de verificação da consistência dos dados no BD. ▪ Integridade semântica: o dado de uma coluna sempre será do tipo de dado definido na criação da coluna. 9 ▪ Integridade de chave (entidade): cada linha de uma tabela possui um indicador que garanta a unicidade da mesma. ▪ Integridade referencial: os relacionamentos lógicos entre as entidades serão forçados pelos SGDB. ▪ Integridade de domínio: domínio é um conjunto de valores previamente definido no qual uma coluna só poderá conter valores pertencentes a esse domínio. Impede que uma chave primária receba como valor NULL (nulo). ▪ Integridade de vazio: Verifica se um campo pode ou não receber valor NULL. Subitem da integridade de domínio. Capacidade de Backup e Restauração • O SGBD deve prover facilidades para restaurar o banco de dados em caso de falha de hardware ou de software. • Sub-sistema de backup e restauração: responsável por assegurar que o banco de dados é restaurado para seu estado anterior.
Compartilhar