Baixe o app para aproveitar ainda mais
Prévia do material em texto
Resumo Cap 1 - Banco de Dados e os Usuários de Bancos de Dados Aplicações tradicionais de banco de dados - a maioria das informações que são armazenadas e acessadas apresenta-se em formatos textual ou numérico. 1.1. Introdução Um banco de dados é uma coleção de dados relacionados. Os dados são fatos que podem ser gravados e que possuem um significado implícito. ● Representa alguns aspectos do mundo real, sendo chamado, às vezes, de minimundo ou de universo de discurso (UoD); ● É uma coleção lógica e coerente de dados com algum significado inerente; ● É projetado, construído e povoado por dados, atendendo a uma proposta específica; ● Possui um grupo de usuários definido e algumas aplicações pré concebidas. Um banco de dados pode ser gerado e mantido manualmente ou pode ser automatizado (computadorizado). Um sistema gerenciador de banco de dados (SGBD) é uma coleção de programas que permite aos usuários criar e manter um banco de dados. Um sistema de software de propósito geral que facilita os processos de definição, construção, manipulação e compartilhamento de bancos de dados entre vários usuários e aplicações. ● A definição de um banco de dados implica especificar os tipos de dados, as estruturas e as restrições para os dados a serem armazenados em um banco de dados; ● A construção de um banco de dados é o processo de armazenar os dados em alguma mídia apropriada controlada pelo SGBD; ● A manipulação inclui algumas funções, como pesquisas, atualizações e gerar relatórios; ● O compartilhamento permite aos múltiplos usuários e programas acessar, de forma concorrente, o banco de dados; ● A proteção inclui a proteção do sistema contra o mau funcionamento ou falhas (crashes) no hardware ou software; ● A segurança é para evitar acessos não autorizados ou maliciosos. O banco de dados e o software SGBD, juntos, são chamados de sistema de banco de dados. 1.3. Características do Emprego de Banco de Dados Banco de Dados x Processamento de Arquivos: ● Natureza autodescritiva do sistema de banco de dados. (1) ● Isolamento entre os programas e os dados, e a abstração dos dados. (2) ● Suporte para as múltiplas visões dos dados. (3) ● Compartilhamento de dados e processamento de transações de multiusuários. (4) (1) O sistema de banco de dados possui não apenas o banco de dados, mas também uma completa definição ou descrição da estrutura desse banco de dados e suas restrições. Essa definição está armazenada no catálogo do SGBD, é chamada de metadados e descreve a estrutura do banco de dados primário. (2) A estrutura dos arquivos de dados é armazenada no catálogo do SGBD separadamente do programa de acesso. Denominaremos essa propriedade independência programa-dados. A característica que permite a independência programa-dados e programa-operação é intitulada abstração de dados. (3) Um banco de dados típico tem muitos usuários, e cada qual pode solicitar diferentes perspectivas ou visões do banco de dados. Um SGBD multiusuários, cujos usuários têm várias aplicações distintas, deve proporcionar facilidades para a definição de múltiplas visões. (4) O SGBD deve incluir um software de controle de concorrência para garantir que muitos usuários, ao tentar atualizar o mesmo dado, o façam de um modo controlado, para assegurar que os resultados das atualizações sejam corretos, garantindo que as transações concorrentes operem corretamente. Uma transação é um programa em execução ou processo que inclui um ou mais acessos ao banco de dados, como a leitura ou a atualização de registros. ● A propriedade de isolamento garante que cada transação possa ser efetuada de forma isolada de outras transações; ● A propriedade de atomicidade garante que todas as operações em um banco de dados, em uma transação, sejam executadas ou nenhuma seja. 1.6. Vantagens da Utilização da Abordagem SGBD 1.6.1. Controle de Redundância A redundância em armazenar os mesmos dados várias vezes gera muitos problemas, como: ● Duplicação de esforços; ● Desperdício de espaço de armazenamento; ● Possibilidade de gerar inconsistência nos dados armazenados; A redundância controlada oferece mecanismos para o controle de informações replicadas. O SGBD deve ter a capacidade de controlar essas redundâncias, impedindo as inconsistências entre os arquivos. 1.6.2. Restringindo Acesso Não Autorizado O SGBD deve garantir a segurança e um subsistema de autorização usado pelo DBA para criar contas e definir as restrições de cada uma. O SGBD deve, então, garantir essas restrições automaticamente. Os usuários parametrizáveis podem ter permissão para acessar o banco de dados somente por meio de transações específicas, desenvolvidas para seu uso. 1.6.3. Garantindo o Armazenamento Persistente para Objetos Programas Os bancos de dados podem ser usados para oferecer um armazenamento persistente aos objetos programas e estruturas de dados. Os sistemas tradicionais de banco de dados geralmente possuem o chamado problema de separação por impedância, quando as estruturas de dados fornecidas pelo SGBD são incompatíveis com as estruturas de dados da linguagem de programação. 1.6.4. Garantindo o Armazenamento de Estruturas para o Processamento Eficiente de Consultas Os sistemas de banco de dados devem fornecer funcionalidades para a execução de atualizações e consultas eficientemente. Os indexes são baseados em estruturas de dados árvores (tree) ou estruturas de dados hash, adequadamente adaptados para a pesquisa em disco. Os SGBD em geral têm um módulo de armazenamento temporário (buffering) que mantém partes do banco de dados armazenado na memória principal. 1.6.5. Garantindo Backup e Restauração Um SGBD deve prover facilidades para a restauração de falhas de hardware ou de software. O subsistema de backup e recuperação dos subsistemas do SGBD é responsável pela recuperação dessas falhas. 1.6.6. Fornecendo Múltiplas Interfaces para os Usuários Como diversos tipos de usuários com níveis de conhecimento técnico diferentes utilizam o banco de dados, o SGBD deve fornecer interfaces diferentes para esses usuários. 1.6.7. Representando Relacionamentos Complexos Entre os Dados Um banco de dados pode incluir uma grande variedade de dados que estão inter-relacionados de muitas maneiras. O SGBD deve ter a capacidade de representar a variedade de relacionamentos complexos entre os dados, bem como recuperar e atualizar os dados relacionados fácil e eficientemente. 1.6.8. Forçando as Restrições de Integridade A maioria das aplicações de um banco de dados tem certas restrições de integridade que devem complementar os dados. O SGBD deve prover funcionalidades para a definição e a garantia dessas restrições. 1.6.9. Permitindo Inferências e Ações Usando as Regras Alguns sistemas de banco de dados oferecem capacidades para definir as regras de dedução por inferência gerando novas informações de fatos armazenados no banco de dados. Esses sistemas são chamados sistemas de banco de dados dedutivos. Os sistemas de banco de dados ativos oferecem funcionalidades mais potentes, pois permitem regras ativas que podem disparar automaticamente ações quando certos eventos e condições ocorrerem. 1.6.10. Implicações Adicionais do Uso da Abordagem de um Banco de Dados Algumas implicações adicionais da utilização da abordagem do uso de um banco de dados que beneficiam a maioria das organizações: ● Potencial para Garantir Padrões; ● Redução no Tempo de Desenvolvimento de Aplicações; ● Flexibilidade; ● Disponibilidade para Atualizar as Informações; ● Economias de Escala; 1.7. Uma Breve História da Aplicação dos Bancos de Dados 1.7.1 Primeiras Aplicações de Bancos de Dados Usando Sistemas Hierárquicos e de Rede Um dos principais problemas com os sistemas de banco de dados pioneiros era a mistura entre os relacionamentos conceituais, o armazenamento físico e a localização de registros no disco. As novas consultas que precisavam de uma organização diferente de armazenamento para a eficiência no processamento eram muito difíceis de serem implementadas. Outradeficiência desses sistemas era que forneciam somente as interfaces para a linguagem de programação. Os principais tipos desses sistemas iniciais foram baseados em três paradigmas principais: os sistemas hierárquicos, aqueles baseados em modelo de rede, e os de arquivos invertidos. 1.7.2 Obtendo Flexibilidade de Aplicação com o Banco de Dados Relacional Os bancos de dados relacionais foram originalmente projetados com o objetivo de separar o armazenamento físico dos dados da sua representação conceitual e prover uma fundamentação matemática para os bancos de dados. Introduziu as linguagens de consulta de alto nível como uma alternativa às interfaces para as linguagens de programação. Os primeiros sistemas relacionais experimentais desenvolveram-se no fim dos anos 70 e os SGBDRs (sistemas de gerenciamento de banco de dados relacional) introduzidos no início dos anos 80 eram muito lentos, pois não usavam ponteiros. Com o desenvolvimento de novas técnicas para melhoria de desempenho, os bancos de dados relacionais tornaram-se os tipos dominantes de sistemas para as aplicações tradicionais de banco de dados. 1.7.3 Aplicações Orientadas a Objeto e a Necessidade de Bancos de Dados Mais Complexos O aparecimento das linguagens de programação orientadas a objeto nos anos 80 e a necessidade de armazenar e partilhar os objetos complexos estruturados conduziram ao desenvolvimento dos bancos de dados orientados a objeto. A complexidade do modelo e a falta de um padrão inicial contribuíram para seu uso limitado. Hoje são usados principalmente em aplicações especializadas. 1.7.4 Trocando Dados na Web para o Comércio Eletrônico (E-commerce) Nos anos 90, o comércio eletrônico (e-commerce) surgiu como a principal aplicação da Web. Tornou-se rapidamente visível que partes das informações do comércio eletrônico nas páginas Web eram, muitas vezes, dados extraídos dinamicamente dos SGBDs. A XML (extended Markup Language) é considerada o principal padrão para o intercâmbio de dados entre os vários tipos de banco de dados e as páginas Web, pois combina os conceitos de modelos empregados nos sistemas de documentos com os conceitos de modelos de bancos de dados. 1.7.5 Ampliando as Funcionalidades dos Bancos de Dados para as Novas Aplicações O sucesso dos sistemas de banco de dados em aplicações tradicionais encorajou os desenvolvedores de outros tipos de aplicações a se esforçarem para usá-los: ● Aplicações científicas; ● Armazenamento e restauração de imagens; ● Armazenamento e recuperação de filmes; ● Aplicações para data mining; ● Aplicações espaciais; ● Aplicações referentes a séries temporais. Os sistemas relacionais básicos não eram adequados para muitas dessas aplicações,por uma ou mais das razões a seguir: ● As estruturas de dados mais complexas eram necessárias para a modelagem da aplicação do que uma representação relacional simples; ● Os novos tipos de dados eram imprescindíveis, além dos tipos numéricos básicos e as cadeias de caracteres (strings); ● As novas operações e construtores de linguagens de consulta eram essenciais para manipular os novos tipos de dados; ● As novas estruturas de armazenamento e indexação eram necessárias. 1.8. Quando Não Usar o SGBD Esse sistema pode envolver custos altos e desnecessários, que normalmente não ocorreriam no processamento tradicional de arquivos devido a: ● Investimentos iniciais altos em hardware, software e treinamento; ● Generalidade que o SGBD fornece para a definição e processamento dos dados; ● Custos elevados para oferecer segurança, controle de concorrência, recuperação e funções de integridade. Pode-se indicar o uso de arquivos convencionais nas seguintes circunstâncias: ● O banco de dados e suas aplicações são simples, bem definidas e sem previsão de mudanças; ● Há requisitos de tempo real (real-time) para alguns programas difíceis de serem atendidos por causa da sobrecarga (overhead) do SGBD. ● O acesso de múltiplos usuários aos dados não é necessário.
Compartilhar